rtlanal.c (canonicalize_condition): Return 0 if final rtx does not have a conditional...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2018-01-02  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
2
3         * rtlanal.c (canonicalize_condition): Return 0 if final rtx
4         does not have a conditional at the top.
5
6 2018-01-02  Richard Biener  <rguenther@suse.de>
7
8         * ipa-inline.c (big_speedup_p): Fix expression.
9
10 2018-01-02  Jan Hubicka  <hubicka@ucw.cz>
11
12         PR target/81616
13         * config/i386/x86-tune-costs.h: Increase cost of integer load costs
14         for generic 4->6.
15
16 2018-01-02  Jan Hubicka  <hubicka@ucw.cz>
17
18         PR target/81616
19         Generic tuning.
20         * x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17,
21         cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14
22         and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase
23         cond_taken_branch_cost 3->4.
24
25 2018-01-01  Jakub Jelinek  <jakub@redhat.com>
26
27         PR tree-optimization/83581
28         * tree-loop-distribution.c (pass_loop_distribution::execute): Return
29         TODO_cleanup_cfg if any changes have been made.
30
31         PR middle-end/83608
32         * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of
33         convert_modes if target mode has the right side, but different mode
34         class.
35
36         PR middle-end/83609
37         * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg
38         last argument when extracting from CONCAT.  If either from_real or
39         from_imag is NULL, use expansion through memory.  If result is not
40         a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg
41         the parts directly to inner mode, if even that fails, use expansion
42         through memory.
43
44         PR middle-end/83623
45         * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT,
46         check for bswap in mode rather than HImode and use that in expand_unop
47         too.
48
49 2017-12-31  Jakub Jelinek  <jakub@redhat.com>
50
51         PR target/83536
52         * config/i386/i386.c (ix86_attribute_table): Remove excess
53         initializer for "shared" attribute.
54
55 2017-12-30  Tom de Vries  <tom@codesourcery.com>
56
57         PR libgomp/83046
58         * omp-expand.c (expand_omp_target): If in_lto_p, mark offload_funcs with
59         DECL_PRESERVE_P.
60         * lto-streamer-out.c (prune_offload_funcs): New function.  Remove
61         offload_funcs entries that no longer have a corresponding cgraph_node.
62         Mark the remaining ones as DECL_PRESERVE_P.
63         (output_lto): Call prune_offload_funcs.
64
65 2017-12-30  Jakub Jelinek  <jakub@redhat.com>
66
67         * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
68         vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>,
69         vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>,
70         vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz,
71         vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask,
72         vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1, vpdpbusd_<mode>,
73         vpdpbusd_<mode>_mask, vpdpbusd_<mode>_maskz, vpdpbusd_<mode>_maskz_1,
74         vpdpbusds_<mode>, vpdpbusds_<mode>_mask, vpdpbusds_<mode>_maskz,
75         vpdpbusds_<mode>_maskz_1, vpdpwssd_<mode>, vpdpwssd_<mode>_mask,
76         vpdpwssd_<mode>_maskz, vpdpwssd_<mode>_maskz_1, vpdpwssds_<mode>,
77         vpdpwssds_<mode>_mask, vpdpwssds_<mode>_maskz,
78         vpdpwssds_<mode>_maskz_1, vaesdec_<mode>, vaesdeclast_<mode>,
79         vaesenc_<mode>, vpclmulqdq_<mode>,
80         avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Formatting fixes.
81
82 2017-12-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
83
84         * builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add
85         _Float<N> and _Float<N>X variants for rounding built-in
86         functions.
87         (_Float<N> and _Float<N>X BUILT_IN_FLOOR): Likewise.
88         (_Float<N> and _Float<N>X BUILT_IN_NEARBYINT): Likewise.
89         (_Float<N> and _Float<N>X BUILT_IN_RINT): Likewise.
90         (_Float<N> and _Float<N>X BUILT_IN_ROUND): Likewise.
91         (_Float<N> and _Float<N>X BUILT_IN_TRUNC): Likewise.
92         * builtins.c (mathfn_built_in_2): Likewise.
93         * internal-fn.def (CEIL): Likewise.
94         (FLOOR): Likewise.
95         (NEARBYINT): Likewise.
96         (RINT): Likewise.
97         (ROUND): Likewise.
98         (TRUNC): Likewise.
99         * convert.c (convert_to_integer_1): Likewise.
100         * fold-const.c (tree_call_nonnegative_warnv_p): Likewise.
101         (integer_valued_real_call_p): Likewise.
102         * fold-const-call.c (fold_const_call_ss): Likewise.
103         * gencfn-macros.c (print_case_cfn): Change CFN and operator
104         printers to take a const char * suffix instead of a bool.
105         (print_define_operator_list): Likewise.
106         (fltall_suffixes): New list of suffixes, that include the
107         traditional suffixes as well as all of the _Float<N> and
108         _Float<N>X suffixes.
109         (main): For _Float<N> and _Float<N>X functions, emit both
110         <name>_FN and <name>_ALL variants.  The <macro>_FN variant only
111         has the _Float<N> and _Float<N>X case names or operators.  The
112         <name>_ALL variant has both the traditional and the
113         _Float<N>/_Float<N>X case names or operators.
114         * match.pd (COPYSIGN optimizations): Provide optimizations for
115         _Float<N> and _Float<N>X types where possible.
116         (MIN/MAX optimizations): Likewise.
117         (sqrt optimizations): Likewise.
118         (rounding optimizations): Likewise.
119
120 2017-12-28  Richard Sandiford  <richard.sandiford@linaro.org>
121
122         * config/powerpcspe/powerpcspe.md (ieee_128bit_negative_zero): Use
123         gen_int_mode rather than GEN_INT.
124         * config/rs6000/rs6000.md (ieee_128bit_negative_zero): Likewise.
125
126 2017-12-28  Richard Sandiford  <richard.sandiford@linaro.org>
127
128         * emit-rtl.c (gen_const_vec_series): Use valid_for_const_vector_p
129         instead of CONSTANT_P.
130         (gen_vec_series): Likewise.
131         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
132
133 2017-12-28  Andreas Schwab  <schwab@linux-m68k.org>
134
135         * config/m68k/m68k.md (ashrdi3_const1, lshrdi3_const1): Add
136         CC_STATUS_INIT.
137
138 2017-12-27  Kugan Vivekanandarajah  <kuganv@linaro.org>
139
140         * config/aarch64/aarch64-simd.md (aarch64_ld1x2<VQ:mode>): New.
141         (aarch64_ld1x2<VDC:mode>): Likewise.
142         (aarch64_simd_ld1<mode>_x2): Likewise.
143         (aarch64_simd_ld1<mode>_x2): Likewise.
144         * config/aarch64/arm_neon.h (vld1_u8_x2): New.
145         (vld1_s8_x2): Likewise.
146         (vld1_u16_x2): Likewise.
147         (vld1_s16_x2): Likewise.
148         (vld1_u32_x2): Likewise.
149         (vld1_s32_x2): Likewise.
150         (vld1_u64_x2): Likewise.
151         (vld1_s64_x2): Likewise.
152         (vld1_f16_x2): Likewise.
153         (vld1_f32_x2): Likewise.
154         (vld1_f64_x2): Likewise.
155         (vld1_p8_x2): Likewise.
156         (vld1_p16_x2): Likewise.
157         (vld1_p64_x2): Likewise.
158         (vld1q_u8_x2): Likewise.
159         (vld1q_s8_x2): Likewise.
160         (vld1q_u16_x2): Likewise.
161         (vld1q_s16_x2): Likewise.
162         (vld1q_u32_x2): Likewise.
163         (vld1q_s32_x2): Likewise.
164         (vld1q_u64_x2): Likewise.
165         (vld1q_s64_x2): Likewise.
166         (vld1q_f16_x2): Likewise.
167         (vld1q_f32_x2): Likewise.
168         (vld1q_f64_x2): Likewise.
169         (vld1q_p8_x2): Likewise.
170         (vld1q_p16_x2): Likewise.
171         (vld1q_p64_x2): Likewise.
172
173 2017-12-27  Martin Liska  <mliska@suse.cz>
174
175         PR tree-optimization/83552
176         * tree-ssa-strlen.c (fold_strstr_to_strncmp): Assign result
177         of get_string_lenth to a SSA_NAME if not a GIMPLE value.
178
179 2017-12-27  Tom de Vries  <tom@codesourcery.com>
180
181         * config/nvptx/nvptx.c (nvptx_option_override): Disable
182         -gstatement-frontiers.
183
184 2017-12-26  Alexander Monakov  <amonakov@ispras.ru>
185
186         PR rtl-optimization/83513
187         * sel-sched.c (sel_rank_for_schedule): Order by non-zero usefulness
188         before priority comparison.
189
190 2017-12-25  Jakub Jelinek  <jakub@redhat.com>
191
192         PR target/83488
193         * config/i386/i386.opt (-mavx512vpopcntdq, -mmavx512bitalg): Move from
194         ix86_isa_flags2 to ix86_isa_flags.
195         * config/i386/i386-c.c (ix86_target_macros_internal): Test
196         OPTION_MASK_ISA_AVX512BITALG and OPTION_MASK_ISA_AVX512VPOPCNTDQ in
197         isa_flags rather than isa_flags2.
198         * config/i386/i386.c (ix86_target_string): Move -mavx512vpopcntdq
199         and -mavx512bitalg from isa2_opts to isa_opts.
200         (ix86_option_override_internal): Test OPTION_MASK_ISA_AVX512VPOPCNTDQ
201         in x_ix86_isa_flags_explicit rather than x_ix86_isa_flags2_explicit
202         and set it in x_ix86_isa_flags rather than x_ix86_isa_flags2.
203         Formatting fixes.
204         (def_builtin): Treat OPTION_MASK_ISA_AVX512BW or
205         OPTION_MASK_ISA_AVX512F ored with another option similarly to
206         OPTION_MASK_ISA_AVX512VL.  Even for OPTION_MASK_ISA_AVX512VL don't
207         clear it if mask is just OPTION_MASK_ISA_AVX512VL itself.
208         (ix86_expand_builtin): Don't handle OPTION_MASK_ISA_GFNI and
209         OPTION_MASK_ISA_VPCLMULQDQ specially, instead handle
210         OPTION_MASK_ISA_AVX512BW and OPTION_MASK_ISA_AVX512F that way.
211         * config/i386/i386-builtin.def: Move AVX512VPOPCNTDQ and AVX512BITALG
212         builtins from bdesc_args2 to bdesc_args section.
213         (__builtin_ia32_compressstoreuqi512_mask,
214         __builtin_ia32_compressstoreuhi512_mask,
215         __builtin_ia32_compressstoreuqi256_mask,
216         __builtin_ia32_expandloadqi512_mask,
217         __builtin_ia32_expandloadqi512_maskz,
218         __builtin_ia32_expandloadhi512_mask,
219         __builtin_ia32_expandloadhi512_maskz,
220         __builtin_ia32_compressqi512_mask, __builtin_ia32_compresshi512_mask,
221         __builtin_ia32_compressqi256_mask, __builtin_ia32_expandqi512_mask,
222         __builtin_ia32_expandqi512_maskz, __builtin_ia32_expandhi512_mask,
223         __builtin_ia32_expandhi512_maskz, __builtin_ia32_expandqi256_mask,
224         __builtin_ia32_expandqi256_maskz, __builtin_ia32_vpshrd_v32hi_mask,
225         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshrdv_v32hi_mask,
226         __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshldv_v32hi_mask,
227         __builtin_ia32_vpshldv_v32hi_maskz,
228         __builtin_ia32_vpopcountb_v64qi_mask,
229         __builtin_ia32_vpopcountw_v32hi_mask,
230         __builtin_ia32_vpshufbitqmb512_mask,
231         __builtin_ia32_vpshufbitqmb256_mask): Add
232         " | OPTION_MASK_ISA_AVX512BW".
233         (__builtin_ia32_expandloadqi256_mask,
234         __builtin_ia32_expandloadqi256_maskz,
235         __builtin_ia32_vpopcountb_v32qi_mask): Add
236         " | OPTION_MASK_ISA_AVX512VL | OPTION_MASK_ISA_AVX512BW".
237         (__builtin_ia32_expandloadhi256_mask,
238         __builtin_ia32_expandloadhi256_maskz,
239         __builtin_ia32_expandloadqi128_mask,
240         __builtin_ia32_expandloadqi128_maskz,
241         __builtin_ia32_expandloadhi128_mask,
242         __builtin_ia32_expandloadhi128_maskz,
243         __builtin_ia32_vpshrd_v16hi, __builtin_ia32_vpshrd_v16hi_mask,
244         __builtin_ia32_vpshrd_v8hi, __builtin_ia32_vpshrd_v8hi_mask,
245         __builtin_ia32_vpshrd_v8si, __builtin_ia32_vpshrd_v8si_mask,
246         __builtin_ia32_vpshrd_v4si, __builtin_ia32_vpshrd_v4si_mask,
247         __builtin_ia32_vpshrd_v4di, __builtin_ia32_vpshrd_v4di_mask,
248         __builtin_ia32_vpshrd_v2di, __builtin_ia32_vpshrd_v2di_mask,
249         __builtin_ia32_vpshld_v16hi, __builtin_ia32_vpshld_v16hi_mask,
250         __builtin_ia32_vpshld_v8hi, __builtin_ia32_vpshld_v8hi_mask,
251         __builtin_ia32_vpshld_v8si, __builtin_ia32_vpshld_v8si_mask,
252         __builtin_ia32_vpshld_v4si, __builtin_ia32_vpshld_v4si_mask,
253         __builtin_ia32_vpshld_v4di, __builtin_ia32_vpshld_v4di_mask,
254         __builtin_ia32_vpshld_v2di, __builtin_ia32_vpshld_v2di_mask,
255         __builtin_ia32_vpshrdv_v16hi, __builtin_ia32_vpshrdv_v16hi_mask,
256         __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi,
257         __builtin_ia32_vpshrdv_v8hi_mask, __builtin_ia32_vpshrdv_v8hi_maskz,
258         __builtin_ia32_vpshrdv_v8si, __builtin_ia32_vpshrdv_v8si_mask,
259         __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si,
260         __builtin_ia32_vpshrdv_v4si_mask, __builtin_ia32_vpshrdv_v4si_maskz,
261         __builtin_ia32_vpshrdv_v4di, __builtin_ia32_vpshrdv_v4di_mask,
262         __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di,
263         __builtin_ia32_vpshrdv_v2di_mask, __builtin_ia32_vpshrdv_v2di_maskz,
264         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
265         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
266         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
267         __builtin_ia32_vpshldv_v8si, __builtin_ia32_vpshldv_v8si_mask,
268         __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si,
269         __builtin_ia32_vpshldv_v4si_mask, __builtin_ia32_vpshldv_v4si_maskz,
270         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
271         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
272         __builtin_ia32_vpshldv_v2di_mask, __builtin_ia32_vpshldv_v2di_maskz,
273         __builtin_ia32_vpopcountb_v32qi, __builtin_ia32_vpopcountb_v16qi,
274         __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v16hi,
275         __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi,
276         __builtin_ia32_vpopcountw_v8hi_mask): Add
277         " | OPTION_MASK_ISA_AVX512VL".
278         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
279         _mm512_shrdi_epi32, _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32,
280         _mm512_shrdi_epi64, _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64,
281         _mm512_shldi_epi16, _mm512_shldi_epi32, _mm512_mask_shldi_epi32,
282         _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, _mm512_mask_shldi_epi64,
283         _mm512_maskz_shldi_epi64, _mm512_shrdv_epi16, _mm512_shrdv_epi32,
284         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
285         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64, _mm512_shldv_epi16,
286         _mm512_shldv_epi32, _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32,
287         _mm512_shldv_epi64, _mm512_mask_shldv_epi64,
288         _mm512_maskz_shldv_epi64): Don't require avx512bw for these intrinsics.
289         * config/i386/avx512bitalgintrin.h (_mm_bitshuffle_epi64_mask,
290         _mm_mask_bitshuffle_epi64_mask): Likewise.
291         * common/config/i386/i386-common.c
292         (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
293         OPTION_MASK_ISA_AVX512BITALG_SET): Or in OPTION_MASK_ISA_AVX512F_SET.
294         (OPTION_MASK_ISA_AVX512F_UNSET): Or in
295         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET and
296         OPTION_MASK_ISA_AVX512BITALG_UNSET.
297         (OPTION_MASK_ISA2_AVX512F_UNSET,
298         OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Define.
299         (ix86_handle_option): For -mno-general-regs-only, clear from
300         ix86_isa_flags2 OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET rather than
301         just OPTION_MASK_ISA_MPX.  For -mno-sse{,2,3,4,4.1,4.2,avx,avx2} and
302         -mno-ssse3 clear OPTION_MASK_ISA2_AVX512F_UNSET bits from
303         ix86_isa_flags2.  For -mno-avx512f likewise, instead of masking
304         individually listed ISAs.  For -m{,no-}avx512{vpopcntdq,bitalg} adjust
305         for moving from ix86_isa_flags2 to ix86_isa_flags.
306
307 2017-12-23  Jakub Jelinek  <jakub@redhat.com>
308
309         PR c++/83553
310         * fold-const.c (struct contains_label_data): New type.
311         (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless
312         inside of a SWITCH_BODY seen during the walk.
313         (contains_label_p): Use walk_tree instead of
314         walk_tree_without_duplicates, prepare data for contains_label_1 and
315         provide own pset.
316
317 2017-12-22  Jakub Jelinek  <jakub@redhat.com>
318
319         PR debug/83547
320         * tree-iterator.c (alloc_stmt_list): Start with cleared
321         TREE_SIDE_EFFECTS regardless whether a new STATEMENT_LIST is allocated
322         or old one reused.
323
324         PR target/83488
325         * config/i386/avx512vnniintrin.h: Don't check for __AVX512F__ nor
326         enable avx512f explicitly in #pragma GCC target.
327         * config/i386/i386-builtin.def (__builtin_ia32_vpdpbusd_v8si,
328         __builtin_ia32_vpdpbusd_v8si_mask, __builtin_ia32_vpdpbusd_v8si_maskz,
329         __builtin_ia32_vpdpbusd_v4si, __builtin_ia32_vpdpbusd_v4si_mask,
330         __builtin_ia32_vpdpbusd_v4si_maskz, __builtin_ia32_vpdpbusds_v8si,
331         __builtin_ia32_vpdpbusds_v8si_mask,
332         __builtin_ia32_vpdpbusds_v8si_maskz, __builtin_ia32_vpdpbusds_v4si,
333         __builtin_ia32_vpdpbusds_v4si_mask,
334         __builtin_ia32_vpdpbusds_v4si_maskz, __builtin_ia32_vpdpwssd_v8si,
335         __builtin_ia32_vpdpwssd_v8si_mask, __builtin_ia32_vpdpwssd_v8si_maskz,
336         __builtin_ia32_vpdpwssd_v4si, __builtin_ia32_vpdpwssd_v4si_mask,
337         __builtin_ia32_vpdpwssd_v4si_maskz, __builtin_ia32_vpdpwssds_v8si,
338         __builtin_ia32_vpdpwssds_v8si_mask,
339         __builtin_ia32_vpdpwssds_v8si_maskz, __builtin_ia32_vpdpwssds_v4si,
340         __builtin_ia32_vpdpwssds_v4si_mask,
341         __builtin_ia32_vpdpwssds_v4si_maskz): Use
342         OPTION_MASK_ISA_AVX512VNNI | OPTION_MASK_ISA_AVX512VL instead of
343         just OPTION_MASK_ISA_AVX512VNNI.
344
345 2017-12-22  Martin Jambor  <mjambor@suse.cz>
346
347         PR lto/82027
348         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former
349         clones.
350
351 2017-12-22  Julia Koval  <julia.koval@intel.com>
352             Sebastian Peryt  <sebastian.peryt@intel.com>
353
354         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BITALG_SET,
355         OPTION_MASK_ISA_AVX512BITALG_UNSET): New.
356         (ix86_handle_option): Handle -mavx512bitalg, fix 4VNNIW formatting.
357         * config.gcc: Add avx512vpopcntdqvlintrin.h and avx512bitalgintrin.h.
358         * config/i386/avx512bitalgintrin.h (_mm512_popcnt_epi8, _mm512_popcnt_epi16,
359         _mm512_mask_popcnt_epi8, _mm512_maskz_popcnt_epi8, _mm512_mask_popcnt_epi16,
360         _mm512_maskz_popcnt_epi16, _mm512_bitshuffle_epi64_mask, _mm256_popcnt_epi8,
361         _mm512_mask_bitshuffle_epi64_mask, _mm256_mask_popcnt_epi8, _mm_popcnt_epi8,
362         _mm256_maskz_popcnt_epi8, _mm_bitshuffle_epi64_mask, _mm256_popcnt_epi16,
363         _mm_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask,
364         _mm256_mask_bitshuffle_epi64_mask, _mm_popcnt_epi16, _mm_maskz_popcnt_epi8,
365         _mm256_mask_popcnt_epi16, _mm256_maskz_popcnt_epi16, _mm_mask_popcnt_epi8,
366         _mm_mask_popcnt_epi16, _mm_maskz_popcnt_epi16): New intrinsics.
367         * config/i386/avx512vpopcntdqvlintrin.h (_mm_popcnt_epi32, _mm_popcnt_epi64,
368         _mm_mask_popcnt_epi32, _mm_maskz_popcnt_epi32, _mm256_popcnt_epi32,
369         _mm256_mask_popcnt_epi32, _mm256_maskz_popcnt_epi32, _mm_mask_popcnt_epi64,
370         _mm_maskz_popcnt_epi64, _mm256_popcnt_epi64, _mm256_mask_popcnt_epi64,
371         _mm256_maskz_popcnt_epi64): New intrinsics.
372         * config/i386/cpuid.h (bit_AVX512BITALG): New bit.
373         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mavx512bitalg.
374         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI, V64QI_FTYPE_V64QI,
375         V4DI_FTYPE_V4DI, UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI,
376         V4SI_FTYPE_V4SI_V4SI_UHI, V8SI_FTYPE_V8SI_V8SI_UHI): New types.
377         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountq_v4di,
378         __builtin_ia32_vpopcountq_v4di_mask, __builtin_ia32_vpopcountq_v2di,
379         __builtin_ia32_vpopcountq_v2di_mask, __builtin_ia32_vpopcountd_v4si,
380         __builtin_ia32_vpopcountd_v4si_mask, __builtin_ia32_vpopcountd_v8si,
381         __builtin_ia32_vpopcountd_v8si_mask, __builtin_ia32_vpopcountb_v64qi,
382         __builtin_ia32_vpopcountb_v64qi_mask, __builtin_ia32_vpopcountb_v32qi,
383         __builtin_ia32_vpopcountb_v32qi_mask, __builtin_ia32_vpopcountb_v16qi,
384         __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v32hi,
385         __builtin_ia32_vpopcountw_v32hi_mask, __builtin_ia32_vpopcountw_v16hi,
386         __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi,
387         __builtin_ia32_vpopcountw_v8hi_mask, __builtin_ia32_vpshufbitqmb128_mask,
388         __builtin_ia32_vpshufbitqmb256_mask,
389         __builtin_ia32_vpshufbitqmb512_mask): New builtins.
390         * config/i386/i386-c.c (__AVX512BITALG__): New.
391         * config/i386/i386.c (isa2_opts): Add -mavx512bitalg.
392         (ix86_valid_target_attribute_inner_p): Ditto.
393         (ix86_expand_args_builtin): Handle new types.
394         * config/i386/i386.h (TARGET_AVX512BITALG, TARGET_AVX512BITALG_P): New.
395         * config/i386/i386.opt: Add -mavx512bitalg.
396         * config/i386/immintrin.h: Add avx512vpopcntdqvlintrin.h and
397         avx512bitalgintrin.h.
398         * config/i386/sse.md (VI48_AVX512VLBW): New iterator.
399         (vpopcount<mode><mask_name>): Add more types.
400         (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): New.
401         * doc/invoke.texi: Add -mavx512bitalg and -mavx512vpopcntdq.
402
403 2017-12-22  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
404
405         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET):
406         Or in OPTION_MASK_ISA_AVX512F_SET.
407         (OPTION_MASK_ISA_AVX512F_UNSET): Or in
408         OPTION_MASK_ISA_AVX512VNNI_UNSET.
409         (ix86_handle_option): Adjust for
410         OPTION_MASK_ISA_AVX512VNNI_*SET being in ix86_isa_flags.
411         * config/i386/i386-builtin.def: Move VNNI builtins from ARGS2
412         section to ARGS.
413         * config/i386/i386-c.c: Check for OPTION_MASK_ISA_AVX512VNNI in
414         isa_flag instead of isa_flag2.
415         * config/i386/i386.c (ix86_target_string): Move -mavx512vnni from
416         isa_opts2 to isa_opts.
417         * config/i386/i386.opt (mavx512vnni): Move from ix86_isa_flags2
418         to ix86_isa_flags.
419
420 2017-12-22  Mike Stump  <mikestump@comcast.net>
421             Eric Botcazou  <ebotcazou@adacore.com>
422
423         * doc/extend.texi (Loop-Specific Pragmas): Document pragma GCC unroll.
424
425 2017-12-21  Jakub Jelinek  <jakub@redhat.com>
426
427         PR middle-end/83487
428         * config/i386/i386.c (ix86_function_arg_boundary): Return
429         PARM_BOUNDARY for TYPE_EMPTY_P types.
430
431         PR c/83448
432         * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index
433         if navail is >= dir.len.
434
435 2017-12-21  Steve Ellcey  <sellcey@cavium.com>
436
437         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Fix
438         triplet for ilp32.
439
440 2017-12-21  Jakub Jelinek  <jakub@redhat.com>
441
442         PR rtl-optimization/80747
443         PR rtl-optimization/83512
444         * cfgrtl.c (force_nonfallthru_and_redirect): When splitting
445         succ edge from ENTRY, copy partition from e->dest to the newly
446         created bb.
447         * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is
448         ENTRY, use BB_PARTITION of its successor block as current_partition.
449         Don't copy partition when splitting succ edge from ENTRY.
450
451         PR tree-optimization/83523
452         * tree-ssa-math-opts.c (is_widening_mult_p): Return false if
453         for INTEGER_TYPE TYPE_OVERFLOW_TRAPS.
454         (convert_mult_to_fma): Likewise.
455
456         PR tree-optimization/83521
457         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use
458         gimple_build_assign without code on result of
459         fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create
460         a VIEW_CONVERT_EXPR.
461
462 2017-12-21  Andrew Pinski  <apinski@cavium.com>
463             Steve Ellcey  <sellcey@cavium.com>
464
465         * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Handle
466         multi-arch for ilp32.
467
468 2017-12-21  Uros Bizjak  <ubizjak@gmail.com>
469
470         PR target/83467
471         * config/i386/i386.md (*ashl<mode>3_mask): Add operand
472         constraints to operand 2.
473         (*ashl<mode>3_mask_1): Ditto.
474         (*<shift_insn><mode>3_mask): Ditto.
475         (*<shift_insn><mode>3_mask_1): Ditto.
476         (*<rotate_insn><mode>3_mask): Ditto.
477         (*<rotate_insn><mode>3_mask_1): Ditto.
478
479 2017-12-21  Alexandre Oliva  <aoliva@redhat.com>
480
481         * reorg.c (make_return_insns): Reemit each insn with its own location.
482
483 2017-12-21  James Greenhalgh  <james.greenhalgh@arm.com>
484
485         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code
486         generation for cases where splatting a value is not useful.
487         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
488         across a vec_duplicate and a paradoxical subreg forming a vector
489         mode to a vec_concat.
490
491 2017-12-21  James Greenhalgh  <james.greenhalgh@arm.com>
492
493         * combine.c (simplify_set): Do not transform subregs to zero_extends
494         if the destination is not a scalar int mode.
495
496 2017-12-21  Eric Botcazou  <ebotcazou@adacore.com>
497
498         PR c++/82872
499         * convert.c (convert_to_integer_1) <POINTER_TYPE>: Do not return the
500         shared zero if the input has overflowed.
501
502 2017-12-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
503
504         * config/arm/driver-arm.c (arm_cpu_table): Specify dotprod
505         support for Cortex-A55 and Cortex-A75.
506
507 2017-12-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
508
509         * common/config/arm/arm-common.c (compare_opt_names): Add function
510         comment.  Use strcmp instead of manual loop.
511
512 2017-12-21  Martin Liska  <mliska@suse.cz>
513
514         PR gcov-profile/83509
515         * gcov-dump.c (dump_gcov_file): Do not read info about
516         support_unexecuted_blocks for gcda files.
517
518 2017-12-21  Jakub Jelinek  <jakub@redhat.com>
519
520         PR rtl-optimization/82973
521         * emit-rtl.h (valid_for_const_vec_duplicate_p): Rename to ...
522         (valid_for_const_vector_p): ... this.
523         * emit-rtl.c (valid_for_const_vec_duplicate_p): Rename to ...
524         (valid_for_const_vector_p): ... this.  Adjust function comment.
525         (gen_vec_duplicate): Adjust caller.
526         * optabs.c (expand_vector_broadcast): Likewise.
527         * simplify-rtx.c (simplify_const_unary_operation): Don't optimize into
528         CONST_VECTOR if some element isn't simplified valid_for_const_vector_p
529         constant.
530         (simplify_const_binary_operation): Likewise.  Use CONST_FIXED_P macro
531         instead of GET_CODE == CONST_FIXED.
532         (simplify_subreg): Use CONST_FIXED_P macro instead of
533         GET_CODE == CONST_FIXED.
534
535         PR target/83488
536         * config/i386/i386.c (ix86_target_string): Move -mavx512vbmi2 and
537         -mshstk entries from isa_opts2 to isa_opts and -mhle, -mmovbe,
538         -mclzero and -mmwaitx entries from isa_opts to isa_opts2.
539         (ix86_option_override_internal): Adjust for
540         OPTION_MASK_ISA_{HLE,MOVBE,CLZERO,MWAITX} moving to ix86_isa_flags2
541         and OPTION_MASK_ISA_SHSTK moving to ix86_isa_flags.
542         (BDESC_VERIFYS): Remove SPECIAL_ARGS2 related checks.
543         (ix86_init_mmx_sse_builtins): Remove bdesc_special_args2 handling.
544         Use def_builtin2 instead of def_builtin for OPTION_MASK_ISA_MWAITX
545         and OPTION_MASK_ISA_CLZERO builtins.  Use def_builtin instead of
546         def_builtin2 for CET builtins.
547         (ix86_expand_builtin): Remove bdesc_special_args2 handling.  Fix
548         up formatting in IX86_BUILTIN_RDPID code.
549         * config/i386/i386-builtin.def: Move VBMI2 builtins from SPECIAL_ARGS2
550         section to SPECIAL_ARGS and from ARGS2 section to ARGS.
551         * config/i386/i386.opt (mavx512vbmi2, mshstk): Move from
552         ix86_isa_flags2 to ix86_isa_flags.
553         (mhle, mmovbe, mclzero, mmwaitx): Move from ix86_isa_flags to
554         ix86_isa_flags2.
555         * config/i386/i386-c.c (ix86_target_macros_internal): Check for
556         OPTION_MASK_ISA_{CLZERO,MWAITX} in isa_flag2 instead of isa_flag.
557         Check for OPTION_MASK_ISA_{SHSTK,AVX512VBMI2} in isa_flag instead
558         of isa_flag2.
559         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET):
560         Or in OPTION_MASK_ISA_AVX512F_SET.
561         (OPTION_MASK_ISA_AVX512F_UNSET): Or in
562         OPTION_MASK_ISA_AVX512VBMI2_UNSET.
563         (ix86_handle_option): Adjust for
564         OPTION_MASK_ISA_{SHSTK,AVX512VBMI2}_*SET being in ix86_isa_flags
565         and OPTION_MASK_ISA_{MOVBE,MWAITX,CLZERO}_*SET in ix86_isa_flags2.
566
567 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
568             Alan Hayward  <alan.hayward@arm.com>
569             David Sherwood  <david.sherwood@arm.com>
570
571         * tree-data-ref.h (prune_runtime_alias_test_list): Take the
572         factor as a poly_uint64 rather than an unsigned HOST_WIDE_INT.
573         * tree-data-ref.c (prune_runtime_alias_test_list): Likewise.
574         Track polynomial offsets.
575
576 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
577             Alan Hayward  <alan.hayward@arm.com>
578             David Sherwood  <david.sherwood@arm.com>
579
580         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
581         Treat drb->init as a poly_int.  Fail if its misalignment wrt
582         vector_alignment isn't known.
583
584 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
585             Alan Hayward  <alan.hayward@arm.com>
586             David Sherwood  <david.sherwood@arm.com>
587
588         * tree-vectorizer.h (_loop_vec_info): Add a versioning_threshold
589         field.
590         (LOOP_VINFO_VERSIONING_THRESHOLD): New macro
591         (vect_loop_versioning): Take the loop versioning threshold as a
592         separate parameter.
593         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
594         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
595         versioning_threshold.
596         (vect_analyze_loop_2): Compute the loop versioning threshold
597         whenever loop versioning is needed, and store it in the new
598         field rather than combining it with the cost model threshold.
599         (vect_transform_loop): Update call to vect_loop_versioning.
600         Try to combine the loop versioning and cost thresholds here.
601
602 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
603             Alan Hayward  <alan.hayward@arm.com>
604             David Sherwood  <david.sherwood@arm.com>
605
606         * tree-ssa-loop-ivopts.h (strip_offset): Return the offset as
607         poly_uint64_pod rather than an unsigned HOST_WIDE_INT.
608         * tree-loop-distribution.c (classify_builtin_st): Update accordingly.
609         * tree-ssa-loop-ivopts.c (iv_use::addr_offset): Change from
610         an unsigned HOST_WIDE_INT to a poly_uint64_pod.
611         (group_compare_offset): Update accordingly.
612         (split_small_address_groups_p): Likewise.
613         (record_use): Take addr_offset as a poly_uint64 rather than
614         an unsigned HOST_WIDE_INT.
615         (strip_offset): Return the offset as a poly_uint64 rather than
616         an unsigned HOST_WIDE_INT.
617         (record_group_use, split_address_groups): Track polynomial offsets.
618         (add_iv_candidate_for_use): Likewise.
619         (addr_offset_valid_p): Take the offset as a poly_int64 rather
620         than a HOST_WIDE_INT.
621         (strip_offset_1): Return the offset as a poly_int64 rather than
622         a HOST_WIDE_INT.
623
624 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
625             Alan Hayward  <alan.hayward@arm.com>
626             David Sherwood  <david.sherwood@arm.com>
627
628         * tree.h (get_binfo_at_offset): Take the offset as a poly_int64
629         rather than a HOST_WIDE_INT.
630         * tree.c (get_binfo_at_offset): Likewise.
631
632 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
633             Alan Hayward  <alan.hayward@arm.com>
634             David Sherwood  <david.sherwood@arm.com>
635
636         * ipa-prop.h (build_ref_for_offset): Take the offset as a poly_int64
637         rather than a HOST_WIDE_INT.
638         * tree-sra.c (build_ref_for_offset): Likewise.
639
640 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
641             Alan Hayward  <alan.hayward@arm.com>
642             David Sherwood  <david.sherwood@arm.com>
643
644         * fold-const.h (mem_ref_offset): Return a poly_offset_int rather
645         than an offset_int.
646         * tree.c (mem_ref_offset): Likewise.
647         (build_simple_mem_ref_loc): Treat MEM_REF offsets as poly_ints.
648         * builtins.c (get_object_alignment_2): Likewise.
649         * expr.c (get_inner_reference, expand_expr_real_1): Likewise.
650         * gimple-fold.c (get_base_constructor): Likewise.
651         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
652         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
653         Likewise.
654         * ipa-polymorphic-call.c
655         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
656         * ipa-prop.c (compute_complex_assign_jump_func): Likewise.
657         (get_ancestor_addr_info): Likewise.
658         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Likewise.
659         * match.pd: Likewise.
660         * tree-data-ref.c (dr_analyze_innermost): Likewise.
661         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
662         * tree-eh.c (tree_could_trap_p): Likewise.
663         * tree-object-size.c (addr_object_size): Likewise.
664         * tree-ssa-address.c (copy_ref_info): Likewise.
665         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
666         (indirect_refs_may_alias_p): Likewise.
667         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
668         * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise.
669         (non_rewritable_mem_ref_base): Likewise.
670         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
671         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
672         * varasm.c (decode_addr_const): Likewise.
673
674 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
675             Alan Hayward  <alan.hayward@arm.com>
676             David Sherwood  <david.sherwood@arm.com>
677
678         * gimple-ssa-stor-merging.c (find_bswap_or_nop_load): Track polynomial
679         offsets for MEM_REFs.
680
681 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
682             Alan Hayward  <alan.hayward@arm.com>
683             David Sherwood  <david.sherwood@arm.com>
684
685         * tree-ssanames.h (adjust_ptr_info_misalignment): Take the increment
686         as a poly_uint64 rather than an unsigned int.
687         * tree-ssanames.c (adjust_ptr_info_misalignment): Likewise.
688
689 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
690             Alan Hayward  <alan.hayward@arm.com>
691             David Sherwood  <david.sherwood@arm.com>
692
693         * varasm.c (addr_const::offset): Change from HOST_WIDE_INT
694         to poly_int64.
695         (decode_addr_const): Update accordingly.
696
697 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
698             Alan Hayward  <alan.hayward@arm.com>
699             David Sherwood  <david.sherwood@arm.com>
700
701         * tree.h (bit_field_size, bit_field_offset): New functions.
702         * hsa-gen.c (gen_hsa_addr): Use them.
703         * tree-ssa-forwprop.c (simplify_bitfield_ref): Likewise.
704         (simplify_vector_constructor): Likewise.
705         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
706         * tree-cfg.c (verify_expr): Require the sizes and offsets of a
707         BIT_FIELD_REF to be poly_uint64s rather than uhwis.
708         * fold-const.c (fold_ternary_loc): Protect tree_to_uhwi with
709         tree_fits_uhwi_p.
710
711 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
712             Alan Hayward  <alan.hayward@arm.com>
713             David Sherwood  <david.sherwood@arm.com>
714
715         * expr.h (emit_group_load, emit_group_load_into_temps)
716         (emit_group_store): Take the size as a poly_int64 rather than an int.
717         * expr.c (emit_group_load_1, emit_group_load): Likewise.
718         (emit_group_load_into_temp, emit_group_store): Likewise.
719
720 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
721             Alan Hayward  <alan.hayward@arm.com>
722             David Sherwood  <david.sherwood@arm.com>
723
724         * ira-int.h (ira_spilled_reg_stack_slot::width): Change from
725         an unsigned int to a poly_uint64.
726         * ira.h (ira_reuse_stack_slot, ira_mark_new_stack_slot): Take the
727         sizes as poly_uint64s rather than unsigned ints.
728         * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot):
729         Likewise.
730
731 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
732             Alan Hayward  <alan.hayward@arm.com>
733             David Sherwood  <david.sherwood@arm.com>
734
735         * lra-constraints.c (emit_inc): Change inc_amount from an int
736         to a poly_int64.
737
738 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
739             Alan Hayward  <alan.hayward@arm.com>
740             David Sherwood  <david.sherwood@arm.com>
741
742         * cfgexpand.c (stack_var::size): Change from a HOST_WIDE_INT
743         to a poly_uint64.
744         (add_stack_var, stack_var_cmp, partition_stack_vars)
745         (dump_stack_var_partition): Update accordingly.
746         (alloc_stack_frame_space): Take the size as a poly_int64 rather
747         than a HOST_WIDE_INT.
748         (expand_stack_vars, expand_one_stack_var_1): Handle polynomial sizes.
749         (defer_stack_allocation, estimated_stack_frame_size): Likewise.
750         (account_stack_vars, expand_one_var): Likewise.  Return a poly_uint64
751         rather than a HOST_WIDE_INT.
752
753 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
754             Alan Hayward  <alan.hayward@arm.com>
755             David Sherwood  <david.sherwood@arm.com>
756
757         * target.def (return_pops_args): Treat both the input and output
758         sizes as poly_int64s rather than HOST_WIDE_INTS.
759         * targhooks.h (default_return_pops_args): Update accordingly.
760         * targhooks.c (default_return_pops_args): Likewise.
761         * doc/tm.texi: Regenerate.
762         * emit-rtl.h (incoming_args): Change pops_args, size and
763         outgoing_args_size from int to poly_int64_pod.
764         * function.h (expr_status): Change x_pending_stack_adjust and
765         x_stack_pointer_delta from int to poly_int64.
766         (args_size::constant): Change from HOST_WIDE_INT to poly_int64.
767         (ARGS_SIZE_RTX): Update accordingly.
768         * calls.c (highest_outgoing_arg_in_use): Change from int to
769         unsigned int.
770         (stack_usage_watermark, stored_args_watermark): New variables.
771         (stack_region_maybe_used_p, mark_stack_region_used): New functions.
772         (emit_call_1): Change the stack_size and rounded_stack_size
773         parameters from HOST_WIDE_INT to poly_int64.  Track n_popped
774         as a poly_int64.
775         (save_fixed_argument_area): Check stack_usage_watermark.
776         (initialize_argument_information): Change old_pending_adj from
777         a HOST_WIDE_INT * to a poly_int64_pod *.
778         (compute_argument_block_size): Return the size as a poly_int64
779         rather than an int.
780         (finalize_must_preallocate): Track polynomial argument sizes.
781         (compute_argument_addresses): Likewise.
782         (internal_arg_pointer_based_exp): Track polynomial offsets.
783         (mem_overlaps_already_clobbered_arg_p): Rename to...
784         (mem_might_overlap_already_clobbered_arg_p): ...this and take the
785         size as a poly_uint64 rather than an unsigned HOST_WIDE_INT.
786         Check stored_args_used_watermark.
787         (load_register_parameters): Update accordingly.
788         (check_sibcall_argument_overlap_1): Likewise.
789         (combine_pending_stack_adjustment_and_call): Take the unadjusted
790         args size as a poly_int64 rather than an int.  Return a bool
791         indicating whether the optimization was possible and return
792         the new adjustment by reference.
793         (check_sibcall_argument_overlap): Track polynomail argument sizes.
794         Update stored_args_watermark.
795         (can_implement_as_sibling_call_p): Handle polynomial argument sizes.
796         (expand_call): Likewise.  Maintain stack_usage_watermark and
797         stored_args_watermark.  Update calls to
798         combine_pending_stack_adjustment_and_call.
799         (emit_library_call_value_1): Handle polynomial argument sizes.
800         Call stack_region_maybe_used_p and mark_stack_region_used.
801         Maintain stack_usage_watermark.
802         (store_one_arg): Likewise.  Update call to
803         mem_overlaps_already_clobbered_arg_p.
804         * config/arm/arm.c (arm_output_function_prologue): Add a cast to
805         HOST_WIDE_INT.
806         * config/avr/avr.c (avr_outgoing_args_size): Likewise.
807         * config/microblaze/microblaze.c (microblaze_function_prologue):
808         Likewise.
809         * config/cr16/cr16.c (cr16_return_pops_args): Update for new
810         TARGET_RETURN_POPS_ARGS interface.
811         (cr16_compute_frame, cr16_initial_elimination_offset): Add casts
812         to HOST_WIDE_INT.
813         * config/ft32/ft32.c (ft32_compute_frame): Likewise.
814         * config/i386/i386.c (ix86_return_pops_args): Update for new
815         TARGET_RETURN_POPS_ARGS interface.
816         (ix86_expand_split_stack_prologue): Add a cast to HOST_WIDE_INT.
817         * config/moxie/moxie.c (moxie_compute_frame): Likewise.
818         * config/m68k/m68k.c (m68k_return_pops_args): Update for new
819         TARGET_RETURN_POPS_ARGS interface.
820         * config/vax/vax.c (vax_return_pops_args): Likewise.
821         * config/pa/pa.h (STACK_POINTER_OFFSET): Add a cast to poly_int64.
822         (EXIT_IGNORE_STACK): Update reference to crtl->outgoing_args_size.
823         * config/arm/arm.h (CALLER_INTERWORKING_SLOT_SIZE): Likewise.
824         * config/powerpcspe/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
825         * config/powerpcspe/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
826         * config/powerpcspe/powerpcspe.h (STACK_DYNAMIC_OFFSET): Likewise.
827         * config/rs6000/aix.h (STACK_DYNAMIC_OFFSET): Likewise.
828         * config/rs6000/darwin.h (STACK_DYNAMIC_OFFSET): Likewise.
829         * config/rs6000/rs6000.h (STACK_DYNAMIC_OFFSET): Likewise.
830         * dojump.h (saved_pending_stack_adjust): Change x_pending_stack_adjust
831         and x_stack_pointer_delta from int to poly_int64.
832         * dojump.c (do_pending_stack_adjust): Update accordingly.
833         * explow.c (allocate_dynamic_stack_space): Handle polynomial
834         stack_pointer_deltas.
835         * function.c (STACK_DYNAMIC_OFFSET): Add a cast to poly_int64.
836         (pad_to_arg_alignment): Track polynomial offsets.
837         (assign_parm_find_stack_rtl): Likewise.
838         (assign_parms, locate_and_pad_parm): Handle polynomial argument sizes.
839         * toplev.c (output_stack_usage): Update reference to
840         current_function_pushed_stack_size.
841
842 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
843             Alan Hayward  <alan.hayward@arm.com>
844             David Sherwood  <david.sherwood@arm.com>
845
846         * function.c (in_arg_offset, var_offset, dynamic_offset)
847         (out_arg_offset, cfa_offset): Change from int to poly_int64.
848         (instantiate_new_reg): Return the new offset as a poly_int64_pod
849         rather than a HOST_WIDE_INT.
850         (instantiate_virtual_regs_in_rtx): Track polynomial offsets.
851         (instantiate_virtual_regs_in_insn): Likewise.
852
853 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
854             Alan Hayward  <alan.hayward@arm.com>
855             David Sherwood  <david.sherwood@arm.com>
856
857         * rtl.h (get_args_size, add_args_size_note): New functions.
858         (find_args_size_adjust): Return a poly_int64 rather than a
859         HOST_WIDE_INT.
860         (fixup_args_size_notes): Likewise.  Make the same change to the
861         end_args_size parameter.
862         * rtlanal.c (get_args_size, add_args_size_note): New functions.
863         * builtins.c (expand_builtin_trap): Use add_args_size_note.
864         * calls.c (emit_call_1): Likewise.
865         * explow.c (adjust_stack_1): Likewise.
866         * cfgcleanup.c (old_insns_match_p): Update use of
867         find_args_size_adjust.
868         * combine.c (distribute_notes): Track polynomial arg sizes.
869         * dwarf2cfi.c (dw_trace_info): Change beg_true_args_size,
870         end_true_args_size, beg_delay_args_size and end_delay_args_size
871         from HOST_WIDE_INT to poly_int64.
872         (add_cfi_args_size): Take the args_size as a poly_int64 rather
873         than a HOST_WIDE_INT.
874         (notice_args_size, notice_eh_throw, maybe_record_trace_start)
875         (maybe_record_trace_start_abnormal, scan_trace, connect_traces): Track
876         polynomial arg sizes.
877         * emit-rtl.c (try_split): Use get_args_size.
878         * recog.c (peep2_attempt): Likewise.
879         * reload1.c (reload_as_needed): Likewise.
880         * expr.c (find_args_size_adjust): Return the adjustment as a
881         poly_int64 rather than a HOST_WIDE_INT.
882         (fixup_args_size_notes): Change end_args_size from a HOST_WIDE_INT
883         to a poly_int64 and change the return type in the same way.
884         (emit_single_push_insn): Track polynomial arg sizes.
885
886 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
887             Alan Hayward  <alan.hayward@arm.com>
888             David Sherwood  <david.sherwood@arm.com>
889
890         * expr.h (push_block, emit_push_insn): Change the "extra" parameter
891         from HOST_WIDE_INT to poly_int64.
892         * expr.c (push_block, emit_push_insn): Likewise.
893
894 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
895             Alan Hayward  <alan.hayward@arm.com>
896             David Sherwood  <david.sherwood@arm.com>
897
898         * function.h (frame_space): Change start and length from HOST_WIDE_INT
899         to poly_int64.
900         (get_frame_size): Return the size as a poly_int64 rather than a
901         HOST_WIDE_INT.
902         (frame_offset_overflow): Take the offset as a poly_int64 rather
903         than a HOST_WIDE_INT.
904         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
905         (assign_stack_temp): Likewise for the size.
906         * function.c (get_frame_size): Return a poly_int64 rather than
907         a HOST_WIDE_INT.
908         (frame_offset_overflow): Take the offset as a poly_int64 rather
909         than a HOST_WIDE_INT.
910         (try_fit_stack_local): Take the start, length and size as poly_int64s
911         rather than HOST_WIDE_INTs.  Return the offset as a poly_int64_pod
912         rather than a HOST_WIDE_INT.
913         (add_frame_space): Take the start and end as poly_int64s rather than
914         HOST_WIDE_INTs.
915         (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type)
916         (assign_stack_temp): Likewise for the size.
917         (temp_slot): Change size, base_offset and full_size from HOST_WIDE_INT
918         to poly_int64.
919         (find_temp_slot_from_address): Handle polynomial offsets.
920         (combine_temp_slots): Likewise.
921         * emit-rtl.h (rtl_data::x_frame_offset): Change from HOST_WIDE_INT
922         to poly_int64.
923         * cfgexpand.c (alloc_stack_frame_space): Return the offset as a
924         poly_int64 rather than a HOST_WIDE_INT.
925         (expand_one_stack_var_at): Take the offset as a poly_int64 rather
926         than a HOST_WIDE_INT.
927         (expand_stack_vars, expand_one_stack_var_1, expand_used_vars): Handle
928         polynomial frame offsets.
929         * config/m32r/m32r-protos.h (m32r_compute_frame_size): Take the size
930         as a poly_int64 rather than an int.
931         * config/m32r/m32r.c (m32r_compute_frame_size): Likewise.
932         * config/v850/v850-protos.h (compute_frame_size): Likewise.
933         * config/v850/v850.c (compute_frame_size): Likewise.
934         * config/xtensa/xtensa-protos.h (compute_frame_size): Likewise.
935         * config/xtensa/xtensa.c (compute_frame_size): Likewise.
936         * config/pa/pa-protos.h (pa_compute_frame_size): Likewise.
937         * config/pa/pa.c (pa_compute_frame_size): Likewise.
938         * explow.h (get_dynamic_stack_base): Take the offset as a poly_int64
939         rather than a HOST_WIDE_INT.
940         * explow.c (get_dynamic_stack_base): Likewise.
941         * final.c (final_start_function): Use the constant lower bound
942         of the frame size for -Wframe-larger-than.
943         * ira.c (do_reload): Adjust for new get_frame_size return type.
944         * lra.c (lra): Likewise.
945         * reload1.c (reload): Likewise.
946         * config/avr/avr.c (avr_asm_function_end_prologue): Likewise.
947         * config/pa/pa.h (EXIT_IGNORE_STACK): Likewise.
948         * rtlanal.c (get_initial_register_offset): Return the offset as
949         a poly_int64 rather than a HOST_WIDE_INT.
950
951 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
952             Alan Hayward  <alan.hayward@arm.com>
953             David Sherwood  <david.sherwood@arm.com>
954
955         * reload1.c (elim_table): Change initial_offset, offset and
956         previous_offset from HOST_WIDE_INT to poly_int64_pod.
957         (offsets_at): Change the target array's element type from
958         HOST_WIDE_INT to poly_int64_pod.
959         (set_label_offsets, eliminate_regs_1, eliminate_regs_in_insn)
960         (elimination_costs_in_insn, update_eliminable_offsets)
961         (verify_initial_elim_offsets, set_offsets_for_label)
962         (init_eliminable_invariants): Update after above changes.
963
964 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
965             Alan Hayward  <alan.hayward@arm.com>
966             David Sherwood  <david.sherwood@arm.com>
967
968         * reload.h (reload::inc): Change from an int to a poly_int64_pod.
969         * reload.c (combine_reloads, debug_reload_to_stream): Likewise.
970         (decomposition): Change start and end from HOST_WIDE_INT
971         to poly_int64_pod.
972         (decompose, immune_p): Update accordingly.
973         (find_inc_amount): Return a poly_int64 rather than an int.
974         * reload1.c (inc_for_reload): Take the inc_amount as a poly_int64
975         rather than an int.
976
977 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
978             Alan Hayward  <alan.hayward@arm.com>
979             David Sherwood  <david.sherwood@arm.com>
980
981         * tree.h (get_inner_reference): Return the bitsize and bitpos
982         as poly_int64_pods rather than HOST_WIDE_INT.
983         * fold-const.h (ptr_difference_const): Return the pointer difference
984         as a poly_int64_pod rather than a HOST_WIDE_INT.
985         * expr.c (get_inner_reference): Return the bitsize and bitpos
986         as poly_int64_pods rather than HOST_WIDE_INT.
987         (expand_expr_addr_expr_1, expand_expr_real_1): Track polynomial
988         offsets and sizes.
989         * fold-const.c (make_bit_field_ref): Take the bitpos as a poly_int64
990         rather than a HOST_WIDE_INT.  Update call to get_inner_reference.
991         (optimize_bit_field_compare): Update call to get_inner_reference.
992         (decode_field_reference): Likewise.
993         (fold_unary_loc): Track polynomial offsets and sizes.
994         (split_address_to_core_and_offset): Return the bitpos as a
995         poly_int64_pod rather than a HOST_WIDE_INT.
996         (ptr_difference_const): Likewise for the pointer difference.
997         * asan.c (instrument_derefs): Track polynomial offsets and sizes.
998         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
999         * dbxout.c (dbxout_expand_expr): Likewise.
1000         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref)
1001         (loc_list_from_tree_1, fortran_common): Likewise.
1002         * gimple-laddress.c (pass_laddress::execute): Likewise.
1003         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Likewise.
1004         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
1005         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1006         * tree-affine.c (tree_to_aff_combination): Likewise.
1007         (get_inner_reference_aff): Likewise.
1008         * tree-data-ref.c (split_constant_offset_1): Likewise.
1009         (dr_analyze_innermost): Likewise.
1010         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
1011         * tree-sra.c (ipa_sra_check_caller): Likewise.
1012         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
1013         * ubsan.c (maybe_instrument_pointer_overflow): Likewise.
1014         (instrument_bool_enum_load, instrument_object_size): Likewise.
1015         * gimple-ssa-strength-reduction.c (slsr_process_ref): Update call
1016         to get_inner_reference.
1017         * hsa-gen.c (gen_hsa_addr): Likewise.
1018         * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
1019         * tsan.c (instrument_expr): Likewise.
1020         * match.pd: Update call to ptr_difference_const.
1021
1022 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
1023             Alan Hayward  <alan.hayward@arm.com>
1024             David Sherwood  <david.sherwood@arm.com>
1025
1026         * fold-const.c (fold_comparison): Track sizes and offsets as
1027         poly_int64s rather than HOST_WIDE_INTs when folding address
1028         comparisons.
1029
1030 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
1031             Alan Hayward  <alan.hayward@arm.com>
1032             David Sherwood  <david.sherwood@arm.com>
1033
1034         * expr.h (get_bit_range): Return the bitstart and bitend as
1035         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Return the bitpos
1036         as a poly_int64 rather than a HOST_WIDE_INT.
1037         * expr.c (get_bit_range): Likewise.
1038         (expand_assignment): Update call accordingly.
1039         * fold-const.c (optimize_bit_field_compare): Likewise.
1040
1041 2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
1042             Alan Hayward  <alan.hayward@arm.com>
1043             David Sherwood  <david.sherwood@arm.com>
1044
1045         * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): New enum.
1046         (aarch64_legitimate_address_p): Use it instead of an rtx code,
1047         as an optional final parameter.
1048         * config/aarch64/aarch64.c (aarch64_classify_address): Likewise.
1049         (aarch64_legitimate_address_p): Likewise.
1050         (aarch64_print_address_internal): Take an aarch64_addr_query_type
1051         instead of an rtx code.
1052         (aarch64_address_valid_for_prefetch_p): Update calls accordingly.
1053         (aarch64_legitimate_address_hook_p): Likewise.
1054         (aarch64_print_ldpstp_address): Likewise.
1055         (aarch64_print_operand_address): Likewise.
1056         (aarch64_address_cost): Likewise.
1057         * config/aarch64/constraints.md (Uml, Umq, Ump, Utq): Likewise.
1058         * config/aarch64/predicates.md (aarch64_mem_pair_operand): Likewise.
1059         (aarch64_mem_pair_lanes_operand): Likewise.
1060
1061 2017-12-20  Richard Biener  <rguenther@suse.de>
1062
1063         * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Call
1064         update_stmt_if_modified.
1065
1066 2017-12-20  Wilco Dijkstra  <wdijkstr@arm.com>
1067
1068         PR tree-optimization/83491
1069         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Check for SSA_NAME
1070         before walking uses.  Improve coding style and comments.
1071
1072 2017-12-20  Tom de Vries  <tom@codesourcery.com>
1073
1074         * gimple-fold.c (fold_internal_goacc_dim): Simplify.
1075
1076 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
1077
1078         PR ipa/83506
1079         * ipa-fnsummary.c (pass_data_ipa_free_fn_summary): Use 0 for
1080         todo_flags_finish.
1081         (pass_ipa_free_fn_summary): Add small_p private data member,
1082         initialize to false in the ctor.
1083         (pass_ipa_free_fn_summary::clone,
1084         pass_ipa_free_fn_summary::set_pass_param,
1085         pass_ipa_free_fn_summary::gate): New methods.
1086         (pass_ipa_free_fn_summary::execute): Return TODO_remove_functions
1087         | TODO_dump_symtab if small_p.
1088         * passes.def: Add true parm for the existing pass_ipa_free_fn_summary
1089         entry and add another instance of the pass with false parm after
1090         ipa-pure-const.
1091         * ipa-pure-const.c (pass_ipa_pure_const): Don't call
1092         ipa_free_fn_summary here.
1093
1094 2017-12-20  Paolo Carlini  <paolo.carlini@oracle.com>
1095
1096         * gimplify.c (gimplify_return_expr): Remove dead error_mark_node check.
1097
1098 2017-12-20  Martin Sebor  <msebor@redhat.com>
1099
1100         PR testsuite/83131
1101         * builtins.c (expand_builtin_strlen): Use get_callee_fndecl.
1102         (expand_builtin_strcmp): Call maybe_warn_nonstring_arg.
1103         (expand_builtin_strncmp): Same.
1104
1105 2017-12-20  Alexandre Oliva  <aoliva@redhat.com>
1106
1107         PR bootstrap/83396
1108         * cfgexpand.c (label_rtx_for_bb): Revert SFN changes that
1109         allowed debug stmts before labels.
1110         (expand_gimple_basic_block): Likewise.
1111         * gimple-iterator.c (gimple_find_edge_insert_loc): Likewise.
1112         * gimple-iterator.h (gsi_after_labels): Likewise.
1113         * tree-cfgcleanup (remove_forwarder_block): Likewise, but
1114         rename reused variable, and simplify using gsi_move_before.
1115         * tree-ssa-tail-merge.c (find_duplicate): Likewise.
1116         * tree-cfg.c (make_edges, cleanup_dead_labels): Likewise.
1117         (gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise.
1118         (gimple_verify_flow_info, gimple_block_label): Likewise.
1119         (make_blocks): Move debug markers after adjacent labels.
1120         * cfgrtl.c (skip_insns_after_block): Revert SFN changes that
1121         allowed debug insns outside blocks.
1122         * df-scan.c (df_insn_delete): Likewise.
1123         * lra-constraints.c (update_ebb_live_info): Likewise.
1124         * var-tracking.c (get_first_insn, vt_emit_notes): Likewise.
1125         (vt_initialize, delete_vta_debug_insns): Likewise.
1126         (reemit_marker_as_note): Drop BB parm.  Adjust callers.
1127
1128 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1129             Alan Hayward  <alan.hayward@arm.com>
1130             David Sherwood  <david.sherwood@arm.com>
1131
1132         * poly-int-types.h (round_down_to_byte_boundary): New macro.
1133         (round_up_to_byte_boundary): Likewise.
1134         * expr.h (get_bit_range): Add temporary shim.
1135         * gimple-ssa-store-merging.c (store_operand_info): Change the
1136         bitsize, bitpos, bitregion_start and bitregion_end fields from
1137         unsigned HOST_WIDE_INT to poly_uint64.
1138         (merged_store_group): Likewise load_align_base.
1139         (compatible_load_p, compatible_load_p): Update accordingly.
1140         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
1141         (split_group, imm_store_chain_info::output_merged_store): Likewise.
1142         (mem_valid_for_store_merging): Return the bitsize, bitpos,
1143         bitregion_start and bitregion_end as poly_uint64s rather than
1144         unsigned HOST_WIDE_INTs.  Track polynomial offsets internally.
1145         (handled_load): Take the bitsize, bitpos,
1146         bitregion_start and bitregion_end as poly_uint64s rather than
1147         unsigned HOST_WIDE_INTs.
1148         (pass_store_merging::process_store): Update call to
1149         mem_valid_for_store_merging.
1150
1151 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1152             Alan Hayward  <alan.hayward@arm.com>
1153             David Sherwood  <david.sherwood@arm.com>
1154
1155         * builtins.c (get_object_alignment_2): Track polynomial offsets
1156         and sizes.  Update the alignment handling.
1157
1158 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1159             Alan Hayward  <alan.hayward@arm.com>
1160             David Sherwood  <david.sherwood@arm.com>
1161
1162         * tree.h (get_inner_reference): Add a version that returns the
1163         offset and size as poly_int64_pods rather than HOST_WIDE_INTs.
1164         * cfgexpand.c (expand_debug_expr): Track polynomial offsets.  Simply
1165         the case in which bitpos is not associated with the first byte.
1166
1167 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1168             Alan Hayward  <alan.hayward@arm.com>
1169             David Sherwood  <david.sherwood@arm.com>
1170
1171         * tree-affine.h (get_inner_reference_aff): Return the size as a
1172         poly_widest_int.
1173         * tree-affine.c (get_inner_reference_aff): Likewise.
1174         * tree-data-ref.c (dr_may_alias_p): Update accordingly.
1175         * tree-ssa-loop-im.c (mem_refs_may_alias_p): Likewise.
1176
1177 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1178             Alan Hayward  <alan.hayward@arm.com>
1179             David Sherwood  <david.sherwood@arm.com>
1180
1181         * fold-const.c (pointer_may_wrap_p): Take the offset as a
1182         HOST_WIDE_INT rather than a poly_int64.
1183
1184 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1185             Alan Hayward  <alan.hayward@arm.com>
1186             David Sherwood  <david.sherwood@arm.com>
1187
1188         * gimple-ssa-store-merging.c (symbolic_number::bytepos): Change from
1189         HOST_WIDE_INT to poly_int64_pod.
1190         (perform_symbolic_merge): Update accordingly.
1191         (bswap_replace): Likewise.
1192
1193 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1194             Alan Hayward  <alan.hayward@arm.com>
1195             David Sherwood  <david.sherwood@arm.com>
1196
1197         * tree-affine.h (aff_tree::offset): Change from widest_int
1198         to poly_widest_int.
1199         (wide_int_ext_for_comb): Delete.
1200         (aff_combination_const, aff_comb_cannot_overlap_p): Take the
1201         constants as poly_widest_int rather than widest_int.
1202         (aff_combination_constant_multiple_p): Return the multiplier
1203         as a poly_widest_int.
1204         (aff_combination_zero_p, aff_combination_singleton_var_p): Handle
1205         polynomial offsets.
1206         * tree-affine.c (wide_int_ext_for_comb): Make original widest_int
1207         version static and add an overload for poly_widest_int.
1208         (aff_combination_const, aff_combination_add_cst)
1209         (wide_int_constant_multiple_p, aff_comb_cannot_overlap_p): Take
1210         the constants as poly_widest_int rather than widest_int.
1211         (tree_to_aff_combination): Generalize INTEGER_CST case to
1212         poly_int_tree_p.
1213         (aff_combination_to_tree): Track offsets as poly_widest_ints.
1214         (aff_combination_add_product, aff_combination_mult): Handle
1215         polynomial offsets.
1216         (aff_combination_constant_multiple_p): Return the multiplier
1217         as a poly_widest_int.
1218         * tree-predcom.c (determine_offset): Return the offset as a
1219         poly_widest_int.
1220         (split_data_refs_to_components, suitable_component_p): Update
1221         accordingly.
1222         (valid_initializer_p): Update call to
1223         aff_combination_constant_multiple_p.
1224         * tree-ssa-address.c (addr_to_parts): Handle polynomial offsets.
1225         * tree-ssa-loop-ivopts.c (get_address_cost_ainc): Take the step
1226         as a poly_int64 rather than a HOST_WIDE_INT.
1227         (get_address_cost): Handle polynomial offsets.
1228         (iv_elimination_compare_lt): Likewise.
1229         (rewrite_use_nonlinear_expr): Likewise.
1230
1231 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1232             Alan Hayward  <alan.hayward@arm.com>
1233             David Sherwood  <david.sherwood@arm.com>
1234
1235         * tree-dfa.h (get_addr_base_and_unit_offset_1): Return the offset
1236         as a poly_int64_pod rather than a HOST_WIDE_INT.
1237         (get_addr_base_and_unit_offset): Likewise.
1238         * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise.
1239         (get_addr_base_and_unit_offset): Likewise.
1240         * doc/match-and-simplify.texi: Change off from HOST_WIDE_INT
1241         to poly_int64 in example.
1242         * fold-const.c (fold_binary_loc): Update call to
1243         get_addr_base_and_unit_offset.
1244         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
1245         (maybe_canonicalize_mem_ref_addr): Likewise.
1246         (gimple_fold_stmt_to_constant_1): Likewise.
1247         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
1248         Likewise.
1249         * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
1250         * match.pd: Likewise.
1251         * omp-low.c (lower_omp_target): Likewise.
1252         * tree-sra.c (build_ref_for_offset): Likewise.
1253         (build_debug_ref_for_model): Likewise.
1254         * tree-ssa-address.c (maybe_fold_tmr): Likewise.
1255         * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
1256         * tree-ssa-ccp.c (optimize_memcpy): Likewise.
1257         * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise.
1258         (constant_pointer_difference): Likewise.
1259         * tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
1260         * tree-ssa-phiopt.c (jump_function_from_stmt): Likewise.
1261         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
1262         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
1263         (vn_reference_maybe_forwprop_address, vn_reference_lookup_3): Likewise.
1264         (set_ssa_val_to): Likewise.
1265         * tree-ssa-strlen.c (get_addr_stridx, addr_stridxptr)
1266         (maybe_diag_stxncpy_trunc): Likewise.
1267         * tree-vrp.c (vrp_prop::check_array_ref): Likewise.
1268         * tree.c (build_simple_mem_ref_loc): Likewise.
1269         (array_at_struct_end_p): Likewise.
1270
1271 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1272             Alan Hayward  <alan.hayward@arm.com>
1273             David Sherwood  <david.sherwood@arm.com>
1274
1275         * tree-dfa.h (get_ref_base_and_extent): Return the base, size and
1276         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
1277         (get_ref_base_and_extent_hwi): Declare.
1278         * tree-dfa.c (get_ref_base_and_extent): Return the base, size and
1279         max_size as poly_int64_pods rather than HOST_WIDE_INTs.
1280         (get_ref_base_and_extent_hwi): New function.
1281         * cfgexpand.c (expand_debug_expr): Update call to
1282         get_ref_base_and_extent.
1283         * dwarf2out.c (add_var_loc_to_decl): Likewise.
1284         * gimple-fold.c (get_base_constructor): Return the offset as a
1285         poly_int64_pod rather than a HOST_WIDE_INT.
1286         (fold_const_aggregate_ref_1): Track polynomial sizes and offsets.
1287         * ipa-polymorphic-call.c
1288         (ipa_polymorphic_call_context::set_by_invariant)
1289         (extr_type_from_vtbl_ptr_store): Track polynomial offsets.
1290         (ipa_polymorphic_call_context::ipa_polymorphic_call_context)
1291         (check_stmt_for_type_change): Use get_ref_base_and_extent_hwi
1292         rather than get_ref_base_and_extent.
1293         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
1294         * ipa-prop.c (ipa_load_from_parm_agg, compute_complex_assign_jump_func)
1295         (get_ancestor_addr_info, determine_locally_known_aggregate_parts):
1296         Likewise.
1297         * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Update
1298         call to get_ref_base_and_extent.
1299         * tree-sra.c (create_access, get_access_for_expr): Likewise.
1300         * tree-ssa-alias.c (ao_ref_base, aliasing_component_refs_p)
1301         (stmt_kills_ref_p): Likewise.
1302         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1303         * tree-ssa-scopedtables.c (avail_expr_hash, equal_mem_array_ref_p):
1304         Likewise.
1305         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
1306         Use get_ref_base_and_extent_hwi rather than get_ref_base_and_extent
1307         when calling native_encode_expr.
1308         * tree-ssa-structalias.c (get_constraint_for_component_ref): Update
1309         call to get_ref_base_and_extent.
1310         (do_structure_copy): Use get_ref_base_and_extent_hwi rather than
1311         get_ref_base_and_extent.
1312         * var-tracking.c (track_expr_p): Likewise.
1313
1314 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1315             Alan Hayward  <alan.hayward@arm.com>
1316             David Sherwood  <david.sherwood@arm.com>
1317
1318         * ipa-param-manipulation.h (ipa_parm_adjustment::offset): Change from
1319         HOST_WIDE_INT to poly_int64_pod.
1320         * ipa-param-manipulation.c (ipa_modify_call_arguments): Track
1321         polynomail parameter offsets.
1322
1323 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1324             Alan Hayward  <alan.hayward@arm.com>
1325             David Sherwood  <david.sherwood@arm.com>
1326
1327         * gengtype.c (main): Handle poly_int64_pod.
1328         * dwarf2out.h (dw_cfi_oprnd_cfa_loc): New dw_cfi_oprnd_type.
1329         (dw_cfi_oprnd::dw_cfi_cfa_loc): New field.
1330         (dw_cfa_location::offset, dw_cfa_location::base_offset): Change
1331         from HOST_WIDE_INT to poly_int64_pod.
1332         * dwarf2cfi.c (queued_reg_save::cfa_offset): Likewise.
1333         (copy_cfa): New function.
1334         (lookup_cfa_1): Use the cached dw_cfi_cfa_loc, if it exists.
1335         (cfi_oprnd_equal_p): Handle dw_cfi_oprnd_cfa_loc.
1336         (cfa_equal_p, dwarf2out_frame_debug_adjust_cfa)
1337         (dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_expr)
1338         (initial_return_save): Treat offsets as poly_ints.
1339         (def_cfa_0): Likewise.  Cache the CFA in dw_cfi_cfa_loc if either
1340         offset is nonconstant.
1341         (reg_save): Take the offset as a poly_int64.  Fall back to
1342         DW_CFA_expression for nonconstant offsets.
1343         (queue_reg_save): Take the offset as a poly_int64.
1344         * dwarf2out.c (dw_cfi_oprnd2_desc): Handle DW_CFA_def_cfa_expression.
1345
1346 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1347             Alan Hayward  <alan.hayward@arm.com>
1348             David Sherwood  <david.sherwood@arm.com>
1349
1350         * rtl.h (operand_subword, operand_subword_force): Take the offset
1351         as a poly_uint64 an unsigned int.
1352         * emit-rtl.c (operand_subword, operand_subword_force): Likewise.
1353
1354 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1355             Alan Hayward  <alan.hayward@arm.com>
1356             David Sherwood  <david.sherwood@arm.com>
1357
1358         * doc/rtl.texi: Update documentation of SUBREG_BYTE.  Document the
1359         'p' format code.  Use INT_LIST rather than SUBREG as the example of
1360         a code with an XINT and an XEXP.  Remove the implication that
1361         accessing an rtx field using XINT is expected to work.
1362         * rtl.def (SUBREG): Change format from "ei" to "ep".
1363         * rtl.h (rtunion::rt_subreg): New field.
1364         (XCSUBREG): New macro.
1365         (SUBREG_BYTE): Use it.
1366         (subreg_shape): Change offset from an unsigned int to a poly_uint16.
1367         Update constructor accordingly.
1368         (subreg_shape::operator ==): Update accordingly.
1369         (subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather
1370         than an unsigned int.
1371         (subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return
1372         a poly_uint64 rather than an unsigned int.
1373         (subreg_lsb_1): Likewise.  Take the offset as a poly_uint64 rather
1374         than an unsigned int.
1375         (subreg_size_offset_from_lsb, subreg_size_lowpart_offset)
1376         (subreg_size_highpart_offset): Return a poly_uint64 rather than
1377         an unsigned int.  Take the sizes as poly_uint64s.
1378         (subreg_offset_from_lsb): Return a poly_uint64 rather than
1379         an unsigned int.  Take the shift as a poly_uint64 rather than
1380         an unsigned int.
1381         (subreg_regno_offset, subreg_offset_representable_p): Take the offset
1382         as a poly_uint64 rather than an unsigned int.
1383         (simplify_subreg_regno): Likewise.
1384         (byte_lowpart_offset): Return the memory offset as a poly_int64
1385         rather than an int.
1386         (subreg_memory_offset): Likewise.  Take the subreg offset as a
1387         poly_uint64 rather than an unsigned int.
1388         (simplify_subreg, simplify_gen_subreg, subreg_get_info)
1389         (gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a
1390         poly_uint64 rather than an unsigned int.
1391         * rtl.c (rtx_format): Describe 'p' in comment.
1392         (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'.
1393         * emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg
1394         offset as a poly_uint64 rather than an unsigned int.
1395         (byte_lowpart_offset): Return the memory offset as a poly_int64
1396         rather than an int.
1397         (subreg_memory_offset): Likewise.  Take the subreg offset as a
1398         poly_uint64 rather than an unsigned int.
1399         (subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the
1400         mode sizes as poly_uint64s rather than unsigned ints.  Return a
1401         poly_uint64 rather than an unsigned int.
1402         (subreg_lowpart_p): Treat subreg offsets as poly_ints.
1403         (copy_insn_1): Handle 'p'.
1404         * rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s.
1405         (subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than
1406         an unsigned int.  Return the shift in the same way.
1407         (subreg_lsb): Return the shift as a poly_uint64 rather than an
1408         unsigned int.
1409         (subreg_size_offset_from_lsb): Take the sizes and shift as
1410         poly_uint64s rather than unsigned ints.  Return the offset as
1411         a poly_uint64.
1412         (subreg_get_info, subreg_regno_offset, subreg_offset_representable_p)
1413         (simplify_subreg_regno): Take the offset as a poly_uint64 rather than
1414         an unsigned int.
1415         * rtlhash.c (add_rtx): Handle 'p'.
1416         * genemit.c (gen_exp): Likewise.
1417         * gengenrtl.c (type_from_format, gendef): Likewise.
1418         * gensupport.c (subst_pattern_match, get_alternatives_number)
1419         (collect_insn_data, alter_predicate_for_insn, alter_constraints)
1420         (subst_dup): Likewise.
1421         * gengtype.c (adjust_field_rtx_def): Likewise.
1422         * genrecog.c (find_operand, find_matching_operand, validate_pattern)
1423         (match_pattern_2): Likewise.
1424         (rtx_test::SUBREG_FIELD): New rtx_test::kind_enum.
1425         (rtx_test::subreg_field): New function.
1426         (operator ==, safe_to_hoist_p, transition_parameter_type)
1427         (print_nonbool_test, print_test): Handle SUBREG_FIELD.
1428         * genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled.
1429         * genpeep.c (match_rtx): Likewise.
1430         * print-rtl.c (print_poly_int): Include if GENERATOR_FILE too.
1431         (rtx_writer::print_rtx_operand): Handle 'p'.
1432         (print_value): Handle SUBREG.
1433         * read-rtl.c (apply_int_iterator): Likewise.
1434         (rtx_reader::read_rtx_operand): Handle 'p'.
1435         * alias.c (rtx_equal_for_memref_p): Likewise.
1436         * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise.
1437         * caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets
1438         as poly_ints.
1439         * calls.c (expand_call): Likewise.
1440         * combine.c (combine_simplify_rtx, expand_field_assignment): Likewise.
1441         (make_extraction, gen_lowpart_for_combine): Likewise.
1442         * loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p):
1443         Likewise.
1444         * cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64
1445         rather than an unsigned int.  Treat subreg offsets as poly_ints.
1446         (exp_equiv_p): Handle 'p'.
1447         (hash_rtx_cb): Likewise.  Treat subreg offsets as poly_ints.
1448         (equiv_constant, cse_insn): Treat subreg offsets as poly_ints.
1449         * dse.c (find_shift_sequence): Likewise.
1450         * dwarf2out.c (rtl_for_decl_location): Likewise.
1451         * expmed.c (extract_low_bits): Likewise.
1452         * expr.c (emit_group_store, undefined_operand_subword_p): Likewise.
1453         (expand_expr_real_2): Likewise.
1454         * final.c (alter_subreg): Likewise.
1455         (leaf_renumber_regs_insn): Handle 'p'.
1456         * function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack):
1457         Treat subreg offsets as poly_ints.
1458         * fwprop.c (forward_propagate_and_simplify): Likewise.
1459         * ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise.
1460         * ira.c (get_subreg_tracking_sizes): Likewise.
1461         * ira-conflicts.c (go_through_subreg): Likewise.
1462         * ira-lives.c (process_single_reg_class_operands): Likewise.
1463         * jump.c (rtx_renumbered_equal_p): Likewise.  Handle 'p'.
1464         * lower-subreg.c (simplify_subreg_concatn): Take the subreg offset
1465         as a poly_uint64 rather than an unsigned int.
1466         (simplify_gen_subreg_concatn, resolve_simple_move): Treat
1467         subreg offsets as poly_ints.
1468         * lra-constraints.c (operands_match_p): Handle 'p'.
1469         (match_reload, curr_insn_transform): Treat subreg offsets as poly_ints.
1470         * lra-spills.c (assign_mem_slot): Likewise.
1471         * postreload.c (move2add_valid_value_p): Likewise.
1472         * recog.c (general_operand, indirect_operand): Likewise.
1473         * regcprop.c (copy_value, maybe_mode_change): Likewise.
1474         (copyprop_hardreg_forward_1): Likewise.
1475         * reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs)
1476         (record_subregs_of_mode): Likewise.
1477         * rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise.
1478         * reload.c (operands_match_p): Handle 'p'.
1479         (find_reloads_subreg_address): Treat subreg offsets as poly_ints.
1480         * reload1.c (alter_reg, choose_reload_regs): Likewise.
1481         (compute_reload_subreg_offset): Likewise, and return an poly_int64.
1482         * simplify-rtx.c (simplify_truncation, simplify_binary_operation_1):
1483         (test_vector_ops_duplicate): Treat subreg offsets as poly_ints.
1484         (simplify_const_poly_int_tests<N>::run): Likewise.
1485         (simplify_subreg, simplify_gen_subreg): Take the subreg offset as
1486         a poly_uint64 rather than an unsigned int.
1487         * valtrack.c (debug_lowpart_subreg): Likewise.
1488         * var-tracking.c (var_lowpart): Likewise.
1489         (loc_cmp): Handle 'p'.
1490
1491 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1492             Alan Hayward  <alan.hayward@arm.com>
1493             David Sherwood  <david.sherwood@arm.com>
1494
1495         * ira.c (get_subreg_tracking_sizes): New function.
1496         (init_live_subregs): Take an integer size rather than a register.
1497         (build_insn_chain): Use get_subreg_tracking_sizes.  Update calls
1498         to init_live_subregs.
1499
1500 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1501             Alan Hayward  <alan.hayward@arm.com>
1502             David Sherwood  <david.sherwood@arm.com>
1503
1504         * expr.c (store_constructor_field): Change bitsize from a
1505         unsigned HOST_WIDE_INT to a poly_uint64 and bitpos from a
1506         HOST_WIDE_INT to a poly_int64.
1507         (store_constructor): Change size from a HOST_WIDE_INT to
1508         a poly_int64.
1509         (store_field): Likewise bitsize and bitpos.
1510
1511 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1512             Alan Hayward  <alan.hayward@arm.com>
1513             David Sherwood  <david.sherwood@arm.com>
1514
1515         * expmed.h (store_bit_field): Change bitregion_start and
1516         bitregion_end from unsigned HOST_WIDE_INT to poly_uint64.
1517         * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p)
1518         (store_bit_field_1, store_integral_bit_field, store_bit_field)
1519         (store_fixed_bit_field, store_split_bit_field): Likewise.
1520         * expr.c (store_constructor_field, store_field): Likewise.
1521         (optimize_bitfield_assignment_op): Likewise.  Make the same change
1522         to bitsize and bitpos.
1523         * machmode.h (bit_field_mode_iterator): Change m_bitregion_start
1524         and m_bitregion_end from HOST_WIDE_INT to poly_int64.  Make the
1525         same change in the constructor arguments.
1526         (get_best_mode): Change bitregion_start and bitregion_end from
1527         unsigned HOST_WIDE_INT to poly_uint64.
1528         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
1529         Change bitregion_start and bitregion_end from HOST_WIDE_INT to
1530         poly_int64.
1531         (bit_field_mode_iterator::next_mode): Update for new types
1532         of m_bitregion_start and m_bitregion_end.
1533         (get_best_mode): Change bitregion_start and bitregion_end from
1534         unsigned HOST_WIDE_INT to poly_uint64.
1535
1536 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1537             Alan Hayward  <alan.hayward@arm.com>
1538             David Sherwood  <david.sherwood@arm.com>
1539
1540         * rtl.h (simplify_gen_subreg): Add a temporary overload that
1541         accepts poly_uint64 offsets.
1542         * expmed.h (extract_bit_field): Take bitsize and bitnum as
1543         poly_uint64s rather than unsigned HOST_WIDE_INTs.
1544         * expmed.c (lowpart_bit_field_p): Likewise.
1545         (extract_bit_field_as_subreg): New function, split out from...
1546         (extract_bit_field_1): ...here.  Take bitsize and bitnum as
1547         poly_uint64s rather than unsigned HOST_WIDE_INTs.  For vector
1548         extractions, check that BITSIZE matches the size of the extracted
1549         value and that BITNUM is an exact multiple of that size.
1550         If all else fails, try forcing the value into memory if
1551         BITNUM is variable, and adjusting the address so that the
1552         offset is constant.  Split the part that can only handle constant
1553         bitsize and bitnum out into...
1554         (extract_integral_bit_field): ...this new function.
1555         (extract_bit_field): Take bitsize and bitnum as poly_uint64s
1556         rather than unsigned HOST_WIDE_INTs.
1557
1558 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1559             Alan Hayward  <alan.hayward@arm.com>
1560             David Sherwood  <david.sherwood@arm.com>
1561
1562         * expmed.h (store_bit_field): Take bitsize and bitnum as
1563         poly_uint64s rather than unsigned HOST_WIDE_INTs.
1564         * expmed.c (simple_mem_bitfield_p): Likewise.  Add a parameter
1565         that returns the byte size.
1566         (store_bit_field_1): Take bitsize and bitnum as
1567         poly_uint64s rather than unsigned HOST_WIDE_INTs.  Update call
1568         to simple_mem_bitfield_p.  Split the part that can only handle
1569         constant bitsize and bitnum out into...
1570         (store_integral_bit_field): ...this new function.
1571         (store_bit_field): Take bitsize and bitnum as poly_uint64s rather
1572         than unsigned HOST_WIDE_INTs.
1573         (extract_bit_field_1): Update call to simple_mem_bitfield_p.
1574
1575 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1576             Alan Hayward  <alan.hayward@arm.com>
1577             David Sherwood  <david.sherwood@arm.com>
1578
1579         * lra-int.h (lra_reg): Change offset from int to poly_int64.
1580         (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT
1581         to poly_int64.
1582         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
1583         update_sp_offset from a HOST_WIDE_INT to a poly_int64.
1584         (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the
1585         offset as a poly_int64 rather than an int.
1586         * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets.
1587         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
1588         * lra-constraints.c (equiv_address_substitution): Track offsets
1589         as poly_int64s.
1590         (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P.
1591         (curr_insn_transform): Handle the new form of sp_offset.
1592         * lra-eliminations.c (lra_elim_table): Change previous_offset
1593         and offset from HOST_WIDE_INT to poly_int64.
1594         (print_elim_table, update_reg_eliminate): Update accordingly.
1595         (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod.
1596         (get_elimination): Update accordingly.
1597         (form_sum): Check poly_int_rtx_p instead of CONST_INT_P.
1598         (lra_eliminate_regs_1, eliminate_regs_in_insn): Change
1599         update_sp_offset from a HOST_WIDE_INT to a poly_int64.  Handle
1600         poly_int64 offsets generally.
1601         (curr_sp_change): Change from HOST_WIDE_INT to poly_int64.
1602         (mark_not_eliminable, init_elimination): Update accordingly.
1603         (remove_reg_equal_offset_note): Return a bool and pass the new
1604         offset back by pointer as a poly_int64.
1605         * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64
1606         rather than a HOST_WIDE_INT.
1607         (do_remat): Track offsets poly_int64s.
1608         * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise.
1609
1610 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1611             Alan Hayward  <alan.hayward@arm.com>
1612             David Sherwood  <david.sherwood@arm.com>
1613
1614         * rtl.h (mem_attrs): Add a default constructor.  Change size and
1615         offset from HOST_WIDE_INT to poly_int64.
1616         * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1)
1617         (adjust_automodify_address_1, set_mem_attributes_minus_bitpos)
1618         (widen_memory_access): Take the sizes and offsets as poly_int64s
1619         rather than HOST_WIDE_INTs.
1620         * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET.
1621         (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs
1622         and ints.
1623         (adjust_offset_for_component_ref): Change the offset from a
1624         HOST_WIDE_INT to a poly_int64.
1625         (nonoverlapping_memrefs_p): Track polynomial offsets and sizes.
1626         * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes.
1627         * dce.c (find_call_stack_args): Likewise.
1628         * dse.c (record_store): Likewise.
1629         * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise.
1630         * print-rtl.c (rtx_writer::print_rtx): Likewise.
1631         * read-rtl-function.c (test_loading_mem): Likewise.
1632         * rtlanal.c (may_trap_p_1): Likewise.
1633         * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
1634         * var-tracking.c (int_mem_offset, track_expr_p): Likewise.
1635         * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise.
1636         (mem_attrs::mem_attrs): New function.
1637         (set_mem_attributes_minus_bitpos): Change bitpos from a
1638         HOST_WIDE_INT to poly_int64.
1639         (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr)
1640         (clear_mem_offset, clear_mem_size, change_address)
1641         (get_spill_slot_decl, set_mem_attrs_for_spill): Directly
1642         initialize mem_attrs.
1643         (set_mem_offset, set_mem_size, adjust_address_1)
1644         (adjust_automodify_address_1, offset_address, widen_memory_access):
1645         Likewise.  Take poly_int64s rather than HOST_WIDE_INT.
1646
1647 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1648             Alan Hayward  <alan.hayward@arm.com>
1649             David Sherwood  <david.sherwood@arm.com>
1650
1651         * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size
1652         as poly_int64s rather than HOST_WIDE_INTs.  Use a size of -1
1653         rather than 0 to represent an unknown size.  Assert that the size
1654         is known when the mode isn't BLKmode.
1655         (may_trap_p_1): Use -1 for unknown sizes.
1656         (rtx_addr_can_trap_p): Likewise.  Pass BLKmode rather than VOIDmode.
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         * dse.c (store_info): Change offset and width from HOST_WIDE_INT
1663         to poly_int64.  Update commentary for positions_needed.large.
1664         (read_info_type): Change offset and width from HOST_WIDE_INT
1665         to poly_int64.
1666         (set_usage_bits): Likewise.
1667         (canon_address): Return the offset as a poly_int64 rather than
1668         a HOST_WIDE_INT.  Use strip_offset_and_add.
1669         (set_all_positions_unneeded, any_positions_needed_p): Use
1670         positions_needed.large to track stores with non-constant widths.
1671         (all_positions_needed_p): Likewise.  Take the offset and width
1672         as poly_int64s rather than ints.  Assert that rhs is nonnull.
1673         (record_store): Cope with non-constant offsets and widths.
1674         Nullify the rhs of an earlier store if we can't tell which bytes
1675         of it are needed.
1676         (find_shift_sequence): Take the access_size and shift as poly_int64s
1677         rather than ints.
1678         (get_stored_val): Take the read_offset and read_width as poly_int64s
1679         rather than HOST_WIDE_INTs.
1680         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle
1681         non-constant offsets and widths.
1682
1683 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1684             Alan Hayward  <alan.hayward@arm.com>
1685             David Sherwood  <david.sherwood@arm.com>
1686
1687         * inchash.h (inchash::hash::add_poly_int): New function.
1688         * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size):
1689         Use poly_int64 rather than HOST_WIDE_INT.
1690         (ao_ref::max_size_known_p): New function.
1691         * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod
1692         rather than HOST_WIDE_INT.
1693         * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent
1694         to temporaries until its interface is adjusted to match.
1695         (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes.
1696         (aliasing_component_refs_p, decl_refs_may_alias_p)
1697         (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take
1698         the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs.
1699         (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to
1700         ao_ref fields.
1701         * alias.c (ao_ref_from_mem): Likewise.
1702         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise.
1703         * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref)
1704         (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims)
1705         (maybe_trim_complex_store, maybe_trim_constructor_store)
1706         (live_bytes_read, dse_classify_store): Likewise.
1707         * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq):
1708         (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference)
1709         (fully_constant_vn_reference_p, valueize_refs_1): Likewise.
1710         (vn_reference_lookup_3): Likewise.
1711         * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
1712
1713 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1714             Alan Hayward  <alan.hayward@arm.com>
1715             David Sherwood  <david.sherwood@arm.com>
1716
1717         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p)
1718         (indirect_refs_may_alias_p): Use ranges_may_overlap_p
1719         instead of ranges_overlap_p.
1720
1721 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1722             Alan Hayward  <alan.hayward@arm.com>
1723             David Sherwood  <david.sherwood@arm.com>
1724
1725         * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and
1726         sizes as poly_int64s rather than HOST_WIDE_INTs.
1727
1728 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1729             Alan Hayward  <alan.hayward@arm.com>
1730             David Sherwood  <david.sherwood@arm.com>
1731
1732         * gimple-fold.h (fold_ctor_reference): Take the offset and size
1733         as poly_uint64 rather than unsigned HOST_WIDE_INT.
1734         * gimple-fold.c (fold_ctor_reference): Likewise.
1735
1736 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1737             Alan Hayward  <alan.hayward@arm.com>
1738             David Sherwood  <david.sherwood@arm.com>
1739
1740         * target.def (dwarf_poly_indeterminate_value): New hook.
1741         * targhooks.h (default_dwarf_poly_indeterminate_value): Declare.
1742         * targhooks.c (default_dwarf_poly_indeterminate_value): New function.
1743         * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document.
1744         * doc/tm.texi: Regenerate.
1745         * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the
1746         offset as a poly_int64.
1747         * dwarf2out.c (new_reg_loc_descr): Move later in file.  Take the
1748         offset as a poly_int64.
1749         (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc):
1750         Take the offset as a poly_int64.
1751         (build_cfa_loc): Likewise.  Use loc_descr_plus_const.
1752         (frame_pointer_fb_offset): Change to a poly_int64.
1753         (int_loc_descriptor): Take the offset as a poly_int64.  Use
1754         targetm.dwarf_poly_indeterminate_value for polynomial offsets.
1755         (based_loc_descr): Take the offset as a poly_int64.
1756         Use strip_offset_and_add to handle (plus X (const)).
1757         Use new_reg_loc_descr instead of an open-coded version of the
1758         previous implementation.
1759         (mem_loc_descriptor): Handle CONST_POLY_INT.
1760         (compute_frame_pointer_to_fb_displacement): Take the offset as a
1761         poly_int64.  Use strip_offset_and_add to handle (plus X (const)).
1762
1763 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1764             Alan Hayward  <alan.hayward@arm.com>
1765             David Sherwood  <david.sherwood@arm.com>
1766
1767         * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64.
1768         (gen_rtx_REG_offset): Take the offset as a poly_int64.
1769         * inchash.h (inchash::hash::add_poly_hwi): New function.
1770         * gengtype.c (main): Register poly_int64.
1771         * emit-rtl.c (reg_attr_hasher::hash): Use inchash.  Treat the
1772         offset as a poly_int.
1773         (reg_attr_hasher::equal): Use must_eq to compare offsets.
1774         (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the
1775         offset as a poly_int64.
1776         (set_reg_attrs_from_value): Treat the offset as a poly_int64.
1777         * print-rtl.c (print_poly_int): New function.
1778         (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as
1779         a poly_int.
1780         * var-tracking.c (track_offset_p, get_tracked_reg_offset): New
1781         functions.
1782         (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them.
1783         (same_variable_part_p, track_loc_p): Take the offset as a poly_int64.
1784         (vt_get_decl_and_offset): Return the offset as a poly_int64.
1785         Enforce track_offset_p for parts of a PARALLEL.
1786         (vt_add_function_parameter): Use const_offset for the final
1787         offset to track.  Use get_tracked_reg_offset for the parts
1788         of a PARALLEL.
1789
1790 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1791             Alan Hayward  <alan.hayward@arm.com>
1792             David Sherwood  <david.sherwood@arm.com>
1793
1794         * target.def (truly_noop_truncation): Take poly_uint64s instead of
1795         unsigned ints.  Change default to hook_bool_puint64_puint64_true.
1796         * doc/tm.texi: Regenerate.
1797         * hooks.h (hook_bool_uint_uint_true): Delete.
1798         (hook_bool_puint64_puint64_true): Declare.
1799         * hooks.c (hook_bool_uint_uint_true): Delete.
1800         (hook_bool_puint64_puint64_true): New function.
1801         * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s
1802         instead of unsigned ints.
1803         * config/spu/spu.c (spu_truly_noop_truncation): Likewise.
1804         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise.
1805
1806 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1807             Alan Hayward  <alan.hayward@arm.com>
1808             David Sherwood  <david.sherwood@arm.com>
1809
1810         * optabs.h (expand_operand): Add an int_value field.
1811         (create_expand_operand): Add an int_value parameter and use it
1812         to initialize the new expand_operand field.
1813         (create_integer_operand): Replace with a declaration of a function
1814         that accepts poly_int64s.  Move the implementation to...
1815         * optabs.c (create_integer_operand): ...here.
1816         (maybe_legitimize_operand): For EXPAND_INTEGER, check whether
1817         the mode preserves the value of int_value, instead of calling
1818         const_int_operand on the rtx.  Use gen_int_mode to generate
1819         the new rtx.
1820
1821 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1822             Alan Hayward  <alan.hayward@arm.com>
1823             David Sherwood  <david.sherwood@arm.com>
1824
1825         * dumpfile.h (dump_dec): Declare.
1826         * dumpfile.c (dump_dec): New function.
1827         * pretty-print.h (pp_wide_integer): Turn into a function and
1828         declare a poly_int version.
1829         * pretty-print.c (pp_wide_integer): New function for poly_ints.
1830
1831 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1832             Alan Hayward  <alan.hayward@arm.com>
1833             David Sherwood  <david.sherwood@arm.com>
1834
1835         * doc/generic.texi (POLY_INT_CST): Document.
1836         * tree.def (POLY_INT_CST): New tree code.
1837         * treestruct.def (TS_POLY_INT_CST): New tree layout.
1838         * tree-core.h (tree_poly_int_cst): New struct.
1839         (tree_node): Add a poly_int_cst field.
1840         * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros.
1841         (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref
1842         instead of a wide_int_ref.
1843         (build_int_cst, build_int_cst_type): Take a poly_int64 instead
1844         of a HOST_WIDE_INT.
1845         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1846         instead of an unsigned HOST_WIDE_INT.
1847         (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p)
1848         (ptrdiff_tree_p): Declare.
1849         (tree_to_poly_int64, tree_to_poly_uint64): Likewise.  Provide
1850         extern inline implementations if the target doesn't use POLY_INT_CST.
1851         (poly_int_tree_p): New function.
1852         (wi::unextended_tree): New class.
1853         (wi::int_traits <unextended_tree>): New override.
1854         (wi::extended_tree): Add a default constructor.
1855         (wi::extended_tree::get_tree): New function.
1856         (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs.
1857         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them.
1858         (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref)
1859         (wi::tree_to_poly_wide_ref): New typedefs.
1860         (wi::ints_for): Provide overloads for extended_tree and
1861         unextended_tree.
1862         (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset)
1863         (wi::to_wide): New functions.
1864         (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints.
1865         * tree.c (poly_int_cst_hasher): New struct.
1866         (poly_int_cst_hash_table): New variable.
1867         (tree_node_structure_for_code, tree_code_size, simple_cst_equal)
1868         (valid_constant_size_p, add_expr, drop_tree_overflow): Handle
1869         POLY_INT_CST.
1870         (initialize_tree_contains_struct): Handle TS_POLY_INT_CST.
1871         (init_ttree): Initialize poly_int_cst_hash_table.
1872         (build_int_cst, build_int_cst_type, build_invariant_address): Take
1873         a poly_int64 instead of a HOST_WIDE_INT.
1874         (build_int_cstu, build_array_type_nelts): Take a poly_uint64
1875         instead of an unsigned HOST_WIDE_INT.
1876         (wide_int_to_tree): Rename to...
1877         (wide_int_to_tree_1): ...this.
1878         (build_new_poly_int_cst, build_poly_int_cst): New functions.
1879         (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref.
1880         (wide_int_to_tree): New function that takes a poly_wide_int_ref.
1881         (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64)
1882         (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions.
1883         * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle
1884         TS_POLY_INT_CST.
1885         * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise.
1886         (streamer_read_tree_body): Likewise.
1887         * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise.
1888         (streamer_write_tree_body): Likewise.
1889         * tree-streamer.c (streamer_check_handled_ts_structures): Likewise.
1890         * asan.c (asan_protect_global): Require the size to be an INTEGER_CST.
1891         * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST.
1892         * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise.
1893         * gimple-expr.h (is_gimple_constant): Likewise.
1894         * gimplify.c (maybe_with_size_expr): Likewise.
1895         * print-tree.c (print_node): Likewise.
1896         * tree-data-ref.c (data_ref_compare_tree): Likewise.
1897         * tree-pretty-print.c (dump_generic_node): Likewise.
1898         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
1899         * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise.
1900         * tree-vrp.c (compare_values_warnv): Likewise.
1901         * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of)
1902         (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1)
1903         (force_expr_to_var_cost): Likewise.
1904         * tree-ssa-loop.c (for_each_index): Likewise.
1905         * fold-const.h (build_invariant_address, size_int_kind): Take a
1906         poly_int64 instead of a HOST_WIDE_INT.
1907         * fold-const.c (fold_negate_expr_1, const_binop, const_unop)
1908         (fold_convert_const, multiple_of_p, fold_negate_const): Handle
1909         POLY_INT_CST.
1910         (size_binop_loc): Likewise.  Allow int_const_binop_1 to fail.
1911         (int_const_binop_2): New function, split out from...
1912         (int_const_binop_1): ...here.  Handle POLY_INT_CST.
1913         (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT.
1914         * expmed.c (make_tree): Handle CONST_POLY_INT_P.
1915         * gimple-ssa-strength-reduction.c (slsr_process_add)
1916         (slsr_process_mul): Check for INTEGER_CSTs before using them
1917         as candidates.
1918         * stor-layout.c (bits_from_bytes): New function.
1919         (bit_from_pos): Use it.
1920         (layout_type): Likewise.  For vectors, multiply the TYPE_SIZE_UNIT
1921         by BITS_PER_UNIT to get the TYPE_SIZE.
1922         * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow
1923         MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST.
1924
1925 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1926             Alan Hayward  <alan.hayward@arm.com>
1927             David Sherwood  <david.sherwood@arm.com>
1928
1929         * doc/rtl.texi (const_poly_int): Document.  Also document the
1930         rtl sharing behavior.
1931         * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT.
1932         * rtl.h (const_poly_int_def): New struct.
1933         (rtx_def::u): Add a cpi field.
1934         (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT.
1935         (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros.
1936         (wi::rtx_to_poly_wide_ref): New typedef
1937         (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64)
1938         (poly_int_rtx_p): New functions.
1939         (trunc_int_for_mode): Declare a poly_int64 version.
1940         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1941         (immed_wide_int_const): Take a poly_wide_int_ref rather than
1942         a wide_int_ref.
1943         (strip_offset): Declare.
1944         (strip_offset_and_add): New function.
1945         * rtl.def (CONST_POLY_INT): New rtx code.
1946         * rtl.c (rtx_size): Handle CONST_POLY_INT.
1947         (shared_const_p): Use poly_int_rtx_p.
1948         * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a
1949         HOST_WIDE_INT.
1950         (gen_int_shift_amount): Likewise.
1951         * emit-rtl.c (const_poly_int_hasher): New class.
1952         (const_poly_int_htab): New variable.
1953         (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1.
1954         (const_poly_int_hasher::hash): New function.
1955         (const_poly_int_hasher::equal): Likewise.
1956         (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT.
1957         (immed_wide_int_const): Rename to...
1958         (immed_wide_int_const_1): ...this and make static.
1959         (immed_wide_int_const): New function, taking a poly_wide_int_ref
1960         instead of a wide_int_ref.
1961         (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT.
1962         (gen_lowpart_common): Handle CONST_POLY_INT.
1963         * cse.c (hash_rtx_cb, equiv_constant): Likewise.
1964         * cselib.c (cselib_hash_rtx): Likewise.
1965         * dwarf2out.c (const_ok_for_output_1): Likewise.
1966         * expr.c (convert_modes): Likewise.
1967         * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise.
1968         * rtlhash.c (add_rtx): Likewise.
1969         * explow.c (trunc_int_for_mode): Add a poly_int64 version.
1970         (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT.
1971         Handle existing CONST_POLY_INT rtxes.
1972         * expmed.h (expand_shift): Take a poly_int64 instead of a
1973         HOST_WIDE_INT.
1974         * expmed.c (expand_shift): Likewise.
1975         * rtlanal.c (strip_offset): New function.
1976         (commutative_operand_precedence): Give CONST_POLY_INT the same
1977         precedence as CONST_DOUBLE and put CONST_WIDE_INT between that
1978         and CONST_INT.
1979         * rtl-tests.c (const_poly_int_tests): New struct.
1980         (rtl_tests_c_tests): Use it.
1981         * simplify-rtx.c (simplify_const_unary_operation): Handle
1982         CONST_POLY_INT.
1983         (simplify_const_binary_operation): Likewise.
1984         (simplify_binary_operation_1): Fold additions of symbolic constants
1985         and CONST_POLY_INTs.
1986         (simplify_subreg): Handle extensions and truncations of
1987         CONST_POLY_INTs.
1988         (simplify_const_poly_int_tests): New struct.
1989         (simplify_rtx_c_tests): Use it.
1990         * wide-int.h (storage_ref): Add default constructor.
1991         (wide_int_ref_storage): Likewise.
1992         (trailing_wide_ints): Use GTY((user)).
1993         (trailing_wide_ints::operator[]): Add a const version.
1994         (trailing_wide_ints::get_precision): New function.
1995         (trailing_wide_ints::extra_size): Likewise.
1996
1997 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
1998             Alan Hayward  <alan.hayward@arm.com>
1999             David Sherwood  <david.sherwood@arm.com>
2000
2001         * emit-rtl.h (gen_int_shift_amount): Declare.
2002         * emit-rtl.c (gen_int_shift_amount): New function.
2003         * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount
2004         instead of GEN_INT.
2005         * calls.c (shift_return_value): Likewise.
2006         * cse.c (fold_rtx): Likewise.
2007         * dse.c (find_shift_sequence): Likewise.
2008         * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1)
2009         (expand_shift, expand_smod_pow2): Likewise.
2010         * lower-subreg.c (shift_cost): Likewise.
2011         * optabs.c (expand_superword_shift, expand_doubleword_mult)
2012         (expand_unop, expand_binop, shift_amt_for_vec_perm_mask)
2013         (expand_vec_perm_var): Likewise.
2014         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
2015         (simplify_binary_operation_1): Likewise.
2016         * combine.c (try_combine, find_split_point, force_int_to_mode)
2017         (simplify_shift_const_1, simplify_shift_const): Likewise.
2018         (change_zero_ext): Likewise.  Use simplify_gen_binary.
2019
2020 2017-12-20  Richard Sandiford  <richard.sandiford@linaro.org>
2021
2022         * poly-int.h (multiple_p): Fix handling of two non-poly_ints.
2023
2024 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2025
2026         * doc/invoke.texi (ARM Options): Document accepted extension options
2027         for -march=armv8.3-a.
2028
2029 2017-12-20  Richard Earnshaw  <rearnsha@arm.com>
2030
2031         PR target/83105
2032         * config.gcc (arm*-*-linux*): When configured with --with-float=hard
2033         or --with-float=softfp, set the default CPU to arm10e.
2034
2035 2017-12-20  Eric Botcazou  <ebotcazou@adacore.com>
2036
2037         * config/visium/constraints.md (J, K, L): Use IN_RANGE macro.
2038         * config/visium/predicates.md (const_shift_operand): Likewise.
2039         * config/visium/visium.c (visium_legitimize_address): Fix oversight.
2040         (visium_legitimize_reload_address): Likewise.
2041
2042 2017-12-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2043
2044         PR target/82975
2045         * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
2046
2047 2017-12-20  Jakub Jelinek  <jakub@redhat.com>
2048
2049         PR c++/83490
2050         * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments.
2051
2052 2017-12-20  Julia Koval  <julia.koval@intel.com>
2053
2054         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET,
2055         OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New.
2056         (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2.
2057         * config.gcc: Include vpclmulqdqintrin.h.
2058         * config/i386/cpuid.h: Handle bit_VPCLMULQDQ.
2059         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
2060         -mvpclmulqdq.
2061         * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di,
2062         __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New.
2063         * config/i386/i386-c.c (__VPCLMULQDQ__): New.
2064         * config/i386/i386.c (isa2_opts): Add -mcx16.
2065         (isa_opts): Add -mpclmulqdq, remove -mcx16.
2066         (ix86_option_override_internal): Move mcx16 to flags2.
2067         (ix86_valid_target_attribute_inner_p): Add vpclmulqdq.
2068         (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ.
2069         * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New.
2070         * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2.
2071         * config/i386/immintrin.h: Include vpclmulqdqintrin.h.
2072         * config/i386/sse.md (vpclmulqdq_<mode>): New pattern.
2073         * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128,
2074         _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics.
2075         * doc/invoke.texi: Add -mvpclmulqdq.
2076
2077 2017-12-20  Tom de Vries  <tom@codesourcery.com>
2078
2079         PR middle-end/83423
2080         * config/i386/i386.c (ix86_static_chain): Move
2081         DECL_STATIC_CHAIN test ...
2082         * calls.c (rtx_for_static_chain): ... here.  New function.
2083         * calls.h (rtx_for_static_chain): Declare.
2084         * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain
2085         instead of targetm.calls.static_chain.
2086         * df-scan.c (df_get_entry_block_def_set): Same.
2087
2088 2017-12-19  Tom de Vries  <tom@codesourcery.com>
2089
2090         PR tree-optimization/83493
2091         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub
2092         and lb.
2093
2094 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
2095
2096         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
2097         inform with hardcoded english plural handling.
2098
2099 2017-12-18  Jeff Law  <law@redhat.com>
2100
2101         PR tree-optimization/83477
2102         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For
2103         a non-virtual PHI, always push a new range.
2104
2105 2017-12-19  Martin Sebor  <msebor@redhat.com>
2106
2107         PR middle-end/77608
2108         * builtins.c (compute_objsize): Handle non-constant offsets.
2109
2110 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
2111
2112         PR tree-optimization/83444
2113         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the
2114         character load case, if get_stridx on MEM_REF's operand doesn't
2115         look usable, retry with get_addr_stridx.
2116
2117 2017-12-19  Alexandre Oliva  <aoliva@redhat.com>
2118
2119         PR debug/83422
2120         * var-tracking.c (vt_debug_insns_local): Do not drop markers.
2121         (variable_tracking_main_1): Keep markers even when VTA fails.
2122
2123         PR bootstrap/83396
2124         * cfgexpand.c (expand_gimple_basic_block): Expand label first,
2125         even if there are markers before it.
2126         * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs.
2127
2128 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
2129
2130         * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with
2131         typical order conditions.
2132         * sel-sched.c (extract_new_fences_from): Likewise.
2133         * config/visium/constraints.md (J, K, L): Likewise.
2134         * config/visium/predicates.md (const_shift_operand): Likewise.
2135         * config/visium/visium.c (visium_legitimize_address,
2136         visium_legitimize_reload_address): Likewise.
2137         * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise.
2138         * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise.
2139         * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise.
2140         * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log,
2141         SET_DUMP_DETAIL): Likewise.
2142         * config/avr/predicates.md (const_8_16_24_operand): Likewise.
2143         * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte,
2144         avr_is_casesi_sequence, avr_casei_sequence_check_operands,
2145         avr_set_core_architecture, avr_set_current_function,
2146         avr_legitimize_reload_address, avr_asm_len, avr_print_operand,
2147         output_movqi, output_movsisf, avr_out_plus, avr_out_bitop,
2148         avr_out_fract, avr_adjust_insn_length, avr_encode_section_info,
2149         avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf,
2150         avr_map_decompose, avr_fold_builtin): Likewise.
2151         * config/avr/driver-avr.c (avr_devicespecs_file): Likewise.
2152         * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise.
2153         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise.
2154         * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise.
2155         * config/m32c/m32c.c (m32c_conditional_register_usage,
2156         m32c_address_cost): Likewise.
2157         * config/m32c/predicates.md (shiftcount_operand,
2158         longshiftcount_operand): Likewise.
2159         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
2160         * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option,
2161         can_use_cdx_ldstw): Likewise.
2162         * config/nios2/nios2.h (CDX_REG_P): Likewise.
2163         * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P):
2164         Likewise.
2165         * config/cr16/cr16.md (*mov<mode>_double): Likewise.
2166         * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
2167         * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise.
2168         * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise.
2169         * config/vax/vax.c (adjacent_operands_p): Likewise.
2170         * config/ft32/constraints.md (L, b, KA): Likewise.
2171         * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue):
2172         Likewise.
2173         * cfgexpand.c (expand_stack_alignment): Likewise.
2174         * gcse.c (insert_expr_in_table): Likewise.
2175         * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise.
2176         * cgraphunit.c (cgraph_node::expand): Likewise.
2177         * ira-build.c (setup_min_max_allocno_live_range_point): Likewise.
2178         * emit-rtl.c (add_insn): Likewise.
2179         * input.c (dump_location_info): Likewise.
2180         * passes.c (NEXT_PASS): Likewise.
2181         * read-rtl-function.c (parse_note_insn_name,
2182         function_reader::read_rtx_operand_r, function_reader::parse_mem_expr):
2183         Likewise.
2184         * sched-rgn.c (sched_rgn_init): Likewise.
2185         * diagnostic-show-locus.c (layout::show_ruler): Likewise.
2186         * combine.c (find_split_point, simplify_if_then_else, force_to_mode,
2187         if_then_else_cond, simplify_shift_const_1, simplify_comparison):
2188         Likewise.
2189         * explow.c (eliminate_constant_term): Likewise.
2190         * final.c (leaf_renumber_regs_insn): Likewise.
2191         * cfgrtl.c (print_rtl_with_bb): Likewise.
2192         * genhooks.c (emit_init_macros): Likewise.
2193         * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise.
2194         * tree-data-ref.c (conflict_fn): Likewise.
2195         * selftest.c (assert_streq): Likewise.
2196         * expr.c (store_constructor_field, expand_expr_real_1): Likewise.
2197         * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor,
2198         fold_binary_loc, multiple_of_p): Likewise.
2199         * reload.c (push_reload, find_equiv_reg): Likewise.
2200         * et-forest.c (et_nca, et_below): Likewise.
2201         * dbxout.c (dbxout_symbol_location): Likewise.
2202         * reorg.c (relax_delay_slots): Likewise.
2203         * dojump.c (do_compare_rtx_and_jump): Likewise.
2204         * gengtype-parse.c (type): Likewise.
2205         * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational,
2206         simplify_const_relational_operation): Likewise.
2207         * reload1.c (do_output_reload): Likewise.
2208         * dumpfile.c (get_dump_file_info_by_switch): Likewise.
2209         * gengtype.c (type_for_name): Likewise.
2210         * gimple-ssa-sprintf.c (format_directive): Likewise.
2211
2212 2017-12-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2213
2214         PR target/82975
2215         * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before
2216         accessing it.  Adjust comment.
2217
2218 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
2219
2220         PR middle-end/81914
2221         * predict.c (zero_one_minusone): New function.
2222         (apply_return_prediction): Avoid return prediction for functions
2223         returning only -1, 0 and 1 values, unless they only return -1 and 0
2224         or 0 and 1.
2225
2226 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
2227
2228         * config/arc/arc.c (legitimate_scaled_address_p): Clean
2229         fall-through warning.
2230         (arc_compute_frame_size): Remove unused variables.
2231         (arc_print_operand): Fix fprintif format.
2232         (arc_can_follow_jump): Clean fall-through warning.
2233
2234 2017-12-19  Marek Polacek  <polacek@redhat.com>
2235
2236         PR c++/83489
2237         * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P
2238         on an error node.
2239
2240 2017-12-19  Claudiu Zissulescu  <claziss@synopsys.com>
2241
2242         * config/arc/arc.c (overriderregs): New variable.
2243         (arc_override_options): Track fixed/call saved/call options.
2244         (arc_conditional_register_usage): Check against overrideregs
2245         variable whenever we change register properties.
2246
2247 2017-12-19  Nathan Sidwell  <nathan@acm.org>
2248
2249         * opts.c (finish_options): Don't prefix dump_base_name if it
2250         already contains directories.
2251
2252 2017-12-19  Martin Liska  <mliska@suse.cz>
2253
2254         PR rtl-optimization/82675
2255         * loop-unroll.c (unroll_loop_constant_iterations): Allocate one
2256         more element in sbitmap.
2257
2258 2017-12-19  Paolo Carlini  <paolo.carlini@oracle.com>
2259
2260         * gimplify.c (gimplify_expr): Use error_operand_p.
2261
2262 2017-12-19  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2263
2264         PR target/83387
2265         * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
2266         multilib.
2267
2268 2017-12-19  Daniel Cederman  <cederman@gaisler.com>
2269
2270         * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
2271         the jump is to a label.
2272
2273 2017-12-19  Jakub Jelinek  <jakub@redhat.com>
2274
2275         PR tree-optimization/83444
2276         * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize
2277         character loads.
2278
2279         PR ipa/82801
2280         PR ipa/83346
2281         * ipa-inline.c (flatten_remove_node_hook): New function.
2282         (ipa_inline): Keep only nodes with flatten attribute at the end of
2283         the array in the order from ipa_reverse_postorder, only walk that
2284         portion of array for flattening, if there is more than one such
2285         node, temporarily register a removal hook and ignore removed nodes.
2286
2287         PR tree-optimization/80631
2288         * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare
2289         induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against
2290         IFN_REDUC_MAX or IFN_REDUC_MIN.
2291
2292 2017-12-18  Jeff Law  <law@redhat.com>
2293
2294         * tree-ssa-dom.c (record_equivalences_from_phis): Do not
2295         record symbolic equivalences from backedges in the CFG.
2296
2297         Revert
2298         2017-11-19  Jeff Law  <law@redhat.com>
2299
2300         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
2301         of degenerates resulting from ignoring an edge.
2302
2303 2017-12-18  Martin Sebor  <msebor@redhat.com>
2304
2305         PR middle-end/83373
2306         PR tree-optimization/78450
2307         * tree-ssa-strlen.c (maybe_set_strlen_range): New function.
2308         (handle_builtin_strlen): Call it.
2309
2310 2017-12-18  Segher Boessenkool  <segher@kernel.crashing.org>
2311
2312         PR rtl-optimization/83424
2313         * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
2314
2315 2017-12-18  Marek Polacek  <polacek@redhat.com>
2316
2317         PR middle-end/83463
2318         * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref):
2319         Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max
2320         values.
2321
2322 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
2323
2324         * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern.
2325         (umaddsidi4, umaddsidi_split): Likewise.
2326
2327 2017-12-18  Claudiu Zissulescu  <claziss@synopsys.com>
2328
2329         * config/arc/arc.c (arc_legitimate_constant_p): Always check all
2330         constants.
2331
2332 2017-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2333
2334         PR target/83420
2335         * config/s390/s390.c (s390_option_override): Avoid strncpy.
2336
2337 2017-12-18  Richard Biener  <rguenther@suse.de>
2338
2339         PR tree-optimization/81877
2340         * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
2341         (outermost_indep_loop): Adjust.
2342         (ref_indep_loop_p_1): Likewise.  Remove safelen handling again.
2343         (can_sm_ref_p): Adjust.
2344
2345 2017-12-18  Richard Biener  <rguenther@suse.de>
2346
2347         PR middle-end/77291
2348         * tree.c (array_at_struct_end_p): Return true if the underlying
2349         object has space for at least one element in excess of what
2350         the array domain specifies.
2351
2352 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
2353
2354         * doc/extend.texi (x86 Function Attributes): Reformat nocf_check
2355         example to avoid overfull hbox.
2356         * doc/invoke.texi (Option Summary): Add missing @gol.
2357         (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid
2358         overfull hbox.
2359
2360 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
2361             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2362
2363         * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump
2364         to AArch64 and ARM lists, plus missing -mflip-thumb for ARM.
2365         (AArch64 Options): Document -mverbose-cost-dump.
2366         (ARM Options): Likewise, plus -mflip-thumb.
2367
2368 2017-12-17  Martin Sebor  <msebor@redhat.com>
2369
2370         PR bootstrap/83446
2371         * gimple-ssa-warn-restrict.c
2372         (builtin_memref::offset_out_of_bounds): Correct the handling of
2373         anti-ranges.
2374
2375 2017-12-17  Sandra Loosemore  <sandra@codesourcery.com>
2376
2377         * doc/invoke.texi (ARC Options): Add missing -mlra entry.
2378
2379 2017-12-17  John David Anglin  <danglin@gcc.gnu.org>
2380
2381         * config/pa/pa.c (pa_som_asm_init_sections): Fix comment.
2382
2383 2017-12-17  Markus Trippelsdorf  <markus@trippelsdorf.de>
2384
2385         * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply
2386         latencies.
2387
2388 2017-12-16  Sandra Loosemore  <sandra@codesourcery.com>
2389
2390         * doc/invoke.texi: Fix some typos.
2391
2392 2017-12-16  Martin Sebor  <msebor@redhat.com>
2393
2394         PR tree-optimization/78918
2395         * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o.
2396         * builtins.c (check_sizes): Rename...
2397         (check_access): ...to this.  Rename function arguments for clarity.
2398         (check_memop_sizes): Adjust names.
2399         (expand_builtin_memchr, expand_builtin_memcpy): Same.
2400         (expand_builtin_memmove, expand_builtin_mempcpy): Same.
2401         (expand_builtin_strcat, expand_builtin_stpncpy): Same.
2402         (check_strncat_sizes, expand_builtin_strncat): Same.
2403         (expand_builtin_strncpy, expand_builtin_memset): Same.
2404         (expand_builtin_bzero, expand_builtin_memcmp): Same.
2405         (expand_builtin_memory_chk, maybe_emit_chk_warning): Same.
2406         (maybe_emit_sprintf_chk_warning): Same.
2407         (expand_builtin_strcpy): Adjust.
2408         (expand_builtin_stpcpy): Same.
2409         (expand_builtin_with_bounds): Detect out-of-bounds accesses
2410         in pointer-checking forms of memcpy, memmove, and mempcpy.
2411         (gcall_to_tree_minimal, max_object_size): Define new functions.
2412         * builtins.h (max_object_size): Declare.
2413         * calls.c (alloc_max_size): Call max_object_size instead of
2414         hardcoding ssizetype limit.
2415         (get_size_range): Handle new argument.
2416         * calls.h (get_size_range): Add a new argument.
2417         * cfgexpand.c (expand_call_stmt): Propagate no-warning bit.
2418         * doc/invoke.texi (-Wrestrict): Adjust, add example.
2419         * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping
2420         operations.
2421         (gimple_fold_builtin_memory_chk): Same.
2422         (gimple_fold_builtin_stxcpy_chk): New function.
2423         * gimple-ssa-warn-restrict.c: New source.
2424         * gimple-ssa-warn-restrict.h: New header.
2425         * gimple.c (gimple_build_call_from_tree): Propagate location.
2426         * passes.def (pass_warn_restrict): Add new pass.
2427         * tree-pass.h (make_pass_warn_restrict): Declare.
2428         * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping
2429         operations.
2430         (handle_builtin_strcat): Same.
2431         (strlen_optimize_stmt): Rename...
2432         (strlen_check_and_optimize_stmt): ...to this.  Handle strncat,
2433         stpncpy, strncpy, and their checking forms.
2434
2435 2017-12-16  Jan Hubicka  <hubicka@ucw.cz>
2436
2437         PR rtl-optimization/82849
2438         * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int
2439         and get_max_loop_iterations_int.
2440
2441 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2442             Alan Hayward  <alan.hayward@arm.com>
2443             David Sherwood  <david.sherwood@arm.com>
2444
2445         * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size)
2446         (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode
2447         size as a poly_uint64.
2448         (mode_for_vector, mode_for_int_vector): Take the number of vector
2449         elements as a poly_uint64.
2450         * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode
2451         size as a poly_uint64.
2452         (mode_for_vector, mode_for_int_vector): Take the number of vector
2453         elements as a poly_uint64.
2454
2455 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2456             Alan Hayward  <alan.hayward@arm.com>
2457             David Sherwood  <david.sherwood@arm.com>
2458
2459         * machmode.h (MACRO_MODE): New macro.
2460         * addresses.h (base_reg_class, ok_for_base_p_1): Use it.
2461         * targhooks.c (default_libcall_value, default_secondary_reload)
2462         (default_memory_move_cost, default_register_move_cost)
2463         (default_class_max_nregs): Likewise.
2464
2465 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2466             Alan Hayward  <alan.hayward@arm.com>
2467             David Sherwood  <david.sherwood@arm.com>
2468
2469         * doc/sourcebuild.texi: Document IN_TARGET_CODE.
2470         * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the
2471         target C file.
2472         * genautomata.c (main): Likewise.
2473         * genconditions.c (write_header): Likewise.
2474         * genemit.c (main): Likewise.
2475         * genextract.c (print_header): Likewise.
2476         * genopinit.c (main): Likewise.
2477         * genoutput.c (output_prologue): Likewise.
2478         * genpeep.c (main): Likewise.
2479         * genpreds.c (write_insn_preds_c): Likewise.
2480         * genrecog.c (writer_header): Likewise.
2481         * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define.
2482         * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise.
2483         * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise.
2484         * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise.
2485         * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise.
2486         * config/alpha/alpha.c (IN_TARGET_CODE): Likewise.
2487         * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise.
2488         * config/arc/arc-c.c (IN_TARGET_CODE): Likewise.
2489         * config/arc/arc.c (IN_TARGET_CODE): Likewise.
2490         * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise.
2491         * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise.
2492         * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise.
2493         * config/arm/arm-c.c (IN_TARGET_CODE): Likewise.
2494         * config/arm/arm.c (IN_TARGET_CODE): Likewise.
2495         * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise.
2496         * config/avr/avr-c.c (IN_TARGET_CODE): Likewise.
2497         * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise.
2498         * config/avr/avr-log.c (IN_TARGET_CODE): Likewise.
2499         * config/avr/avr.c (IN_TARGET_CODE): Likewise.
2500         * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise.
2501         * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise.
2502         * config/bfin/bfin.c (IN_TARGET_CODE): Likewise.
2503         * config/c6x/c6x.c (IN_TARGET_CODE): Likewise.
2504         * config/cr16/cr16.c (IN_TARGET_CODE): Likewise.
2505         * config/cris/cris.c (IN_TARGET_CODE): Likewise.
2506         * config/darwin.c (IN_TARGET_CODE): Likewise.
2507         * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise.
2508         * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise.
2509         * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise.
2510         * config/fr30/fr30.c (IN_TARGET_CODE): Likewise.
2511         * config/frv/frv.c (IN_TARGET_CODE): Likewise.
2512         * config/ft32/ft32.c (IN_TARGET_CODE): Likewise.
2513         * config/h8300/h8300.c (IN_TARGET_CODE): Likewise.
2514         * config/i386/djgpp.c (IN_TARGET_CODE): Likewise.
2515         * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise.
2516         * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise.
2517         * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise.
2518         * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise.
2519         * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise.
2520         * config/i386/i386-c.c (IN_TARGET_CODE): Likewise.
2521         * config/i386/i386.c (IN_TARGET_CODE): Likewise.
2522         * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise.
2523         * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise.
2524         * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise.
2525         * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise.
2526         * config/i386/winnt.c (IN_TARGET_CODE): Likewise.
2527         * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise.
2528         * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise.
2529         * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise.
2530         * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise.
2531         * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise.
2532         * config/ia64/ia64.c (IN_TARGET_CODE): Likewise.
2533         * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise.
2534         * config/lm32/lm32.c (IN_TARGET_CODE): Likewise.
2535         * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise.
2536         * config/m32c/m32c.c (IN_TARGET_CODE): Likewise.
2537         * config/m32r/m32r.c (IN_TARGET_CODE): Likewise.
2538         * config/m68k/m68k.c (IN_TARGET_CODE): Likewise.
2539         * config/mcore/mcore.c (IN_TARGET_CODE): Likewise.
2540         * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise.
2541         * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise.
2542         * config/mips/driver-native.c (IN_TARGET_CODE): Likewise.
2543         * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise.
2544         * config/mips/mips.c (IN_TARGET_CODE): Likewise.
2545         * config/mmix/mmix.c (IN_TARGET_CODE): Likewise.
2546         * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise.
2547         * config/moxie/moxie.c (IN_TARGET_CODE): Likewise.
2548         * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise.
2549         * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise.
2550         * config/msp430/msp430.c (IN_TARGET_CODE): Likewise.
2551         * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise.
2552         * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise.
2553         * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise.
2554         * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise.
2555         * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise.
2556         * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise.
2557         * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise.
2558         * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise.
2559         * config/nds32/nds32.c (IN_TARGET_CODE): Likewise.
2560         * config/nios2/nios2.c (IN_TARGET_CODE): Likewise.
2561         * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise.
2562         * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise.
2563         * config/pa/pa.c (IN_TARGET_CODE): Likewise.
2564         * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise.
2565         * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise.
2566         * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise.
2567         * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
2568         * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise.
2569         * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise.
2570         * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise.
2571         * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise.
2572         * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise.
2573         * config/riscv/riscv.c (IN_TARGET_CODE): Likewise.
2574         * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise.
2575         * config/rl78/rl78.c (IN_TARGET_CODE): Likewise.
2576         * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise.
2577         * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise.
2578         * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise.
2579         * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise.
2580         * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise.
2581         * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise.
2582         * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise.
2583         * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise.
2584         * config/rx/rx.c (IN_TARGET_CODE): Likewise.
2585         * config/s390/driver-native.c (IN_TARGET_CODE): Likewise.
2586         * config/s390/s390-c.c (IN_TARGET_CODE): Likewise.
2587         * config/s390/s390.c (IN_TARGET_CODE): Likewise.
2588         * config/sh/sh-c.c (IN_TARGET_CODE): Likewise.
2589         * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise.
2590         * config/sh/sh.c (IN_TARGET_CODE): Likewise.
2591         * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise.
2592         * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise.
2593         * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise.
2594         * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise.
2595         * config/sparc/sparc.c (IN_TARGET_CODE): Likewise.
2596         * config/spu/spu-c.c (IN_TARGET_CODE): Likewise.
2597         * config/spu/spu.c (IN_TARGET_CODE): Likewise.
2598         * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise.
2599         * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise.
2600         * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise.
2601         * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise.
2602         * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise.
2603         * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise.
2604         * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise.
2605         * config/v850/v850-c.c (IN_TARGET_CODE): Likewise.
2606         * config/v850/v850.c (IN_TARGET_CODE): Likewise.
2607         * config/vax/vax.c (IN_TARGET_CODE): Likewise.
2608         * config/visium/visium.c (IN_TARGET_CODE): Likewise.
2609         * config/vms/vms-c.c (IN_TARGET_CODE): Likewise.
2610         * config/vms/vms-f.c (IN_TARGET_CODE): Likewise.
2611         * config/vms/vms.c (IN_TARGET_CODE): Likewise.
2612         * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise.
2613
2614 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2615             Alan Hayward  <alan.hayward@arm.com>
2616             David Sherwood  <david.sherwood@arm.com>
2617
2618         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated
2619         checks for MEM_REF.
2620
2621 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2622             Alan Hayward  <alan.hayward@arm.com>
2623             David Sherwood  <david.sherwood@arm.com>
2624
2625         * doc/generic.texi (VEC_SERIES_EXPR): Document.
2626         * doc/md.texi (vec_series@var{m}): Document.
2627         * tree.def (VEC_SERIES_EXPR): New tree code.
2628         * tree.h (build_vec_series): Declare.
2629         * tree.c (build_vec_series): New function.
2630         * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR.
2631         * tree-pretty-print.c (dump_generic_node): Likewise.
2632         * gimple-pretty-print.c (dump_binary_rhs): Likewise.
2633         * tree-inline.c (estimate_operator_cost): Likewise.
2634         * expr.c (expand_expr_real_2): Likewise.
2635         * optabs-tree.c (optab_for_tree_code): Likewise.
2636         * tree-cfg.c (verify_gimple_assign_binary): Likewise.
2637         * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants.
2638         * expmed.c (make_tree): Handle VEC_SERIES.
2639         * optabs.def (vec_series_optab): New optab.
2640         * optabs.h (expand_vec_series_expr): Declare.
2641         * optabs.c (expand_vec_series_expr): New function.
2642         * tree-vect-generic.c (expand_vector_operations_1): Check that
2643         the operands also have vector type.
2644
2645 2017-12-16  Richard Sandiford  <richard.sandiford@linaro.org>
2646             Alan Hayward  <alan.hawyard@arm.com>
2647             David Sherwood  <david.sherwood@arm.com>
2648
2649         * doc/generic.texi (VEC_DUPLICATE_EXPR): Document.
2650         (VEC_COND_EXPR): Add missing @tindex.
2651         * doc/md.texi (vec_duplicate@var{m}): Document.
2652         * tree.def (VEC_DUPLICATE_EXPR): New tree codes.
2653         * tree.c (build_vector_from_val): Add stubbed-out handling of
2654         variable-length vectors, using VEC_DUPLICATE_EXPR.
2655         (uniform_vector_p): Handle VEC_DUPLICATE_EXPR.
2656         * cfgexpand.c (expand_debug_expr): Likewise.
2657         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
2658         * tree-inline.c (estimate_operator_cost): Likewise.
2659         * tree-pretty-print.c (dump_generic_node): Likewise.
2660         * tree-vect-generic.c (ssa_uniform_vector_p): Likewise.
2661         * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant.
2662         (test_vec_duplicate_folding): New function.
2663         (fold_const_c_tests): Call it.
2664         * optabs.def (vec_duplicate_optab): New optab.
2665         * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR.
2666         * optabs.h (expand_vector_broadcast): Declare.
2667         * optabs.c (expand_vector_broadcast): Make non-static.  Try using
2668         vec_duplicate_optab.
2669         * expr.c (store_constructor): Try using vec_duplicate_optab for
2670         uniform vectors.
2671         (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR.
2672
2673 2017-12-15  Markus Trippelsdorf  <markus@trippelsdorf.de>
2674
2675         PR target/83358
2676         * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase
2677         div/mod latencies a bit.
2678
2679 2017-12-15  Jeff Law  <law@redhat.com>
2680
2681         PR tree-optimization/36550
2682         * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New.
2683         (mark_threaded_blocks): Rewrite code to avoid block copying when
2684         optimizing for size.  Don't pessimize blocks which will be
2685         copied, but all the statements will be dead.
2686
2687 2017-12-15  Alexandre Oliva  <aoliva@redhat.com>
2688
2689         PR tree-optimization/81165
2690         * tree-ssa-threadupdate.c (uses_in_bb): New.
2691         (estimate_threading_killed_stmts): New.
2692         * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype.
2693         * tree-ssa-threadedge.c
2694         (record_temporary_equivalences_from_stmts_at_dest): Expand limit
2695         when its hit.
2696
2697 2017-12-15  Jeff Law  <law@redhat.com>
2698
2699         PR tree-optimization/83410
2700         * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump
2701         threads when parallelizing loops.
2702
2703 2017-12-15  Jakub Jelinek  <jakub@redhat.com>
2704
2705         * tree-core.h (struct attribute_spec): Swap affects_type_identity and
2706         handler fields.
2707         * config/alpha/alpha.c (vms_attribute_table): Swap
2708         affects_type_identity and handler fields, adjust comments.
2709         * config/mips/mips.c (mips_attribute_table): Likewise.
2710         * config/visium/visium.c (visium_attribute_table): Likewise.
2711         * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise.
2712         * config/microblaze/microblaze.c (microblaze_attribute_table):
2713         Likewise.
2714         * config/spu/spu.c (spu_attribute_table): Likewise.
2715         * config/mcore/mcore.c (mcore_attribute_table): Likewise.
2716         * config/arc/arc.c (arc_attribute_table): Likewise.
2717         * config/m68k/m68k.c (m68k_attribute_table): Likewise.
2718         * config/v850/v850.c (v850_handle_interrupt_attribute,
2719         v850_handle_data_area_attribute): Formatting fixes.
2720         (v850_attribute_table): Swap affects_type_identity and handler
2721         fields, adjust comments.
2722         * config/m32r/m32r.c (m32r_attribute_table): Likewise.
2723         * config/arm/arm.c (arm_attribute_table): Likewise.
2724         * config/avr/avr.c (avr_attribute_table): Likewise.
2725         * config/s390/s390.c (s390_attribute_table): Likewise.
2726         * config/sh/sh.c (sh_attribute_table): Likewise.
2727         * config/i386/i386.c (ix86_handle_cconv_attribute,
2728         ix86_handle_callee_pop_aggregate_return): Formatting fixes.
2729         (ix86_attribute_table): Swap affects_type_identity and handler
2730         fields, adjust comments.
2731         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2732         * config/sparc/sparc.c (sparc_attribute_table): Likewise.
2733         * config/m32c/m32c.c (m32c_attribute_table): Likewise.
2734         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise.
2735         * config/ia64/ia64.c (ia64_attribute_table): Likewise.
2736         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
2737         * config/rx/rx.c (rx_attribute_table): Likewise.
2738         * config/cr16/cr16.c (cr16_attribute_table): Likewise.
2739         * config/h8300/h8300.c (h8300_attribute_table): Likewise.
2740         * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise.
2741         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise.
2742         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
2743         * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise.
2744         * config/bfin/bfin.c (bfin_attribute_table): Likewise.
2745         * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise.
2746         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
2747         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
2748         * doc/plugins.texi (user_attr): Likewise.  Add NULL for
2749         exclude.
2750         * attribs.c (empty_attribute_table): Swap affects_type_identity and
2751         handler fields.
2752         (register_scoped_attributes, decl_attributes): Formatting fixes.
2753
2754         PR tree-optimization/83269
2755         * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
2756         subtraction in arg0's type if type is signed and arg0 is unsigned.
2757         Formatting fix.
2758
2759         PR sanitizer/81281
2760         * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and
2761         convert? on @0 instead of convert.  Check type of @1, not @0.
2762         ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and
2763         convert? on @0 instead of convert.  Check type of @1, not @0.
2764         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0,
2765         only optimize if either both @1 and @2 types are narrower
2766         precision, or both are wider or equal precision, and in the former
2767         case only if both have undefined overflow.
2768
2769 2017-12-15  Richard Biener  <rguenther@suse.de>
2770
2771         PR lto/83388
2772         * internal-fn.def (IFN_NOP): Add.
2773         * internal-fn.c (expand_NOP): Do nothing.
2774         * lto-streamer-in.c (input_function): Instead of removing
2775         sanitizer calls replace them with IFN_NOP calls.
2776
2777 2017-12-15  Richard Sandiford  <richard.sandiford@linaro.org>
2778             Alan Hayward  <alan.hayward@arm.com>
2779             David Sherwood  <david.sherwood@arm.com>
2780
2781         * dse.c (store_info, read_info_type): Replace begin and end with
2782         offset and width.
2783         (print_range): New function.
2784         (set_all_positions_unneeded, any_positions_needed_p)
2785         (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update
2786         accordingly.
2787         (record_store): Likewise.  Optimize the case in which all positions
2788         are unneeded.
2789         (get_stored_val): Replace read_begin and read_end with read_offset
2790         and read_width.
2791         (replace_read): Update call accordingly.
2792
2793 2017-12-15  Bin Cheng  <bin.cheng@arm.com>
2794
2795         * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro.
2796         (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members.
2797         (loop_cand::loop_cand): Initialize above members.
2798         (loop_cand::supported_operations): Delete.
2799         (loop_cand::can_interchange_p): Inline above function.
2800         (loop_cand::classify_simple_reduction): Record number of constant
2801         initialized simple reductions.
2802         (should_interchange_loops): New parameters.  Check stmt cost of loops
2803         to be interchange.
2804         (tree_loop_interchange::interchange): Prepare stmt cost of outer loop.
2805         Update call to should_interchange_loops.
2806         (should_interchange_loop_nest): Update call to
2807         should_interchange_loops.
2808
2809 2017-12-15  Eric Botcazou  <ebotcazou@adacore.com>
2810
2811         PR target/66488
2812         * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
2813         * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
2814         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
2815
2816 2017-12-15  Julia Koval  <julia.koval@intel.com>
2817
2818         * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi,
2819         __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi):
2820         New.
2821         * config/i386/sse.md (vaesenclast_<mode>): New pattern.
2822         * config/i386/vaesintrin.h (_mm256_aesenclast_epi128,
2823         _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics.
2824
2825 2017-12-15  Julia Koval  <julia.koval@intel.com>
2826
2827         * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi,
2828         __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New.
2829         * config/i386/sse.md (vaesenc_<mode>): New pattern.
2830         * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128,
2831         _mm_aesenc_epi128): New intrinsics.
2832
2833 2017-12-15  Julia Koval  <julia.koval@intel.com>
2834
2835         * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi,
2836         __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi):
2837         New.
2838         * config/i386/sse.md (vaesdeclast_<mode>): New pattern.
2839         * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128,
2840         _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics.
2841
2842 2017-12-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2843
2844         * gimple-ssa-strength-reduction.c (analyze_increments):
2845         Distinguish replacement costs for constant strides from those for
2846         unknown strides.
2847
2848 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2849
2850         * var-tracking.c (variable_tracking_main_1): Formatting fix.
2851
2852 2017-12-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2853
2854         * doc/invoke.texi: Document -Wcast-function-type.
2855         * recog.h (stored_funcptr): Change signature.
2856         * tree-dump.c (dump_node): Avoid warning.
2857         * typed-splay-tree.h (typed_splay_tree): Avoid warning.
2858
2859 2017-12-14  Qing Zhao  <qing.zhao@oracle.com>
2860
2861         PR middle_end/79538
2862         * gimple-fold.c (get_range_strlen): Add the handling of non-member 
2863         array.
2864
2865 2017-12-14  David Malcolm  <dmalcolm@redhat.com>
2866
2867         PR tree-optimization/83312
2868         * domwalk.h (dom_walker::dom_walker): Fix typo in comment.
2869         * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for
2870         "val" param, and to cope with arbitrary basic blocks.
2871         (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to
2872         handle NULL_TREE for "val", dropping "bb" param.
2873         (find_taken_edge_switch_expr): Make "switch_stmt" param const and
2874         drop "bb" param.  Handle NULL_TREE for "val".
2875         (find_case_label_for_value): Make "switch_stmt" param const.
2876         * tree-vrp.c (class check_array_bounds_dom_walker): New subclass
2877         of dom_walker.
2878         (vrp_prop::check_all_array_refs): Reimplement as...
2879         (check_array_bounds_dom_walker::before_dom_children): ...this new
2880         vfunc.  Replace linear search through BB block list, excluding
2881         those with non-executable in-edges via dominator walk.
2882
2883 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2884
2885         * config/arm/arm.opt (mverbose-cost-dump): New option.
2886         * config/arm/arm.c (arm_rtx_costs): Use it.
2887
2888 2017-12-14  Andreas Schwab  <schwab@linux-m68k.org>
2889
2890         PR bootstrap/83396
2891         * reload1.c (emit_input_reload_insns): Skip debug markers.
2892
2893 2017-12-14  Alexandre Oliva  <aoliva@redhat.com>
2894
2895         * config/i386/i386.c (rest_of_insert_endbranch): Use call loc
2896         for its nop_endbr.
2897
2898         PR bootstrap/83396
2899         * config/arc/arc.c (hwloop_optimize): Skip debug insns.
2900         * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust.
2901         * config/sh/sh.c: Skip debug insns besides notes.
2902         * config/sh/sh.md: Likewise.
2903         * config/sh/sh_treg_combine.cc: Likewise.
2904         * config/sh/sync.md: Likewise.
2905
2906 2017-12-14  Tom de Vries  <tom@codesourcery.com>
2907
2908         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
2909         Add item for weak_undefined.
2910
2911 2017-12-14  Richard Biener  <rguenther@suse.de>
2912
2913         PR tree-optimization/67842
2914         * sese.h (bb_in_region): Remove #if 0'ed code.
2915
2916 2017-12-14  Richard Biener  <rguenther@suse.de>
2917
2918         PR tree-optimization/83326
2919         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
2920         may_be_zero parameter and handle it by not marking the first
2921         peeled copy as not exiting the loop.
2922         (try_peel_loop): Likewise.
2923         (canonicalize_loop_induction_variables): Use number_of_iterations_exit
2924         to handle the case of constant or zero iterations and perform
2925         loop header copying on-the-fly.
2926
2927 2017-12-14  Richard Biener  <rguenther@suse.de>
2928
2929         PR tree-optimization/83418
2930         * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr):
2931         Instead of asserting we don't get unfolded comparisons deal with them.
2932
2933 2017-12-14  Jakub Jelinek  <jakub@redhat.com>
2934
2935         PR bootstrap/83396
2936         * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of
2937         basic blocks.  Assert debug bind insns don't appear outside of bbs,
2938         don't reset them.  Assert insns without BLOCK_FOR_INSN are outside of
2939         bb.  Simplify.
2940
2941         PR tree-optimization/83198
2942         * gimple-ssa-sprintf.c (format_floating): Set type solely based on
2943         dir.modifier, regardless of TREE_TYPE (arg).  Assume non-REAL_CST
2944         value if arg is a REAL_CST with incompatible type.
2945
2946 2017-12-14  Sudakshina Das  <sudi.das@arm.com>
2947             Bin Cheng  <bin.cheng@arm.com>
2948
2949         PR target/81228
2950         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT
2951         to CCFPEmode.
2952         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add
2953         LTGT.
2954
2955 2017-12-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2956
2957         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75,
2958         cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features.
2959
2960 2017-12-14  Richard Sandiford  <richard.sandiford@linaro.org>
2961             Alan Hayward  <alan.hayward@arm.com>
2962             David Sherwood  <david.sherwood@arm.com>
2963
2964         * poly-int.h: New file.
2965         * poly-int-types.h: Likewise.
2966         * coretypes.h: Include them.
2967         (POLY_INT_CONVERSION): Define.
2968         * target.def (estimated_poly_value): New hook.
2969         * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook.
2970         * doc/tm.texi: Regenerate.
2971         * doc/poly-int.texi: New file.
2972         * doc/gccint.texi: Include it.
2973         * doc/rtl.texi: Describe restrictions on subreg modes.
2974         * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi.
2975         * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition.
2976         (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS.
2977         * targhooks.h (default_estimated_poly_value): Declare.
2978         * targhooks.c (default_estimated_poly_value): New function.
2979         * target.h (estimated_poly_value): Likewise.
2980         * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits.
2981         (wi::unary_traits): Delete.
2982         (wi::binary_traits::signed_shift_result_type): Define for
2983         offset_int << HOST_WIDE_INT, etc.
2984         (generic_wide_int::operator <<=): Define for all types and use
2985         wi::lshift instead of <<.
2986         (wi::hwi_with_prec): Add a default constructor.
2987         (wi::ints_for): New class.
2988         (operator <<): Define for all wide-int types.
2989         (operator /): New function.
2990         (operator %): Likewise.
2991         * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE)
2992         (ASSERT_MAYBE_NE_AT): New macros.
2993
2994 2017-12-13  Eric Botcazou  <ebotcazou@adacore.com>
2995             Dominik Vogt  <vogt@linux.vnet.ibm.com>
2996
2997         PR middle-end/78468
2998         * emit-rtl.c (init_emit): Remove ??? comment.
2999         * explow.c (get_dynamic_stack_size): Take known alignment of stack
3000         pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY.
3001         * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the
3002         alignment of 3 virtual registers to BITS_PER_WORD.
3003
3004         * config/sparc/sparc.c (sparc_compute_frame_size): Simplify.
3005
3006 2017-12-13  Peter Bergner  <bergner@vnet.ibm.com>
3007
3008         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
3009         * config/rs6000/rs6000.c (cpu_supports_info): Use it.
3010
3011 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
3012
3013         PR bootstrap/83396
3014         * reload1.c (eliminate_regs_in_insn): Skip debug markers.
3015
3016 2017-12-13  Jakub Jelinek  <jakub@redhat.com>
3017
3018         * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts
3019         with the exception of debug begin stmt markers appear before
3020         labels.
3021
3022         PR bootstrap/83396
3023         * final.c (rest_of_handle_final): Call variable_tracking_main only
3024         if !flag_var_tracking.
3025
3026 2017-12-13  Alexandre Oliva  <aoliva@redhat.com>
3027             Jakub Jelinek  <jakub@redhat.com>
3028
3029         PR bootstrap/83396
3030         PR debug/83391
3031         * tree-cfgcleanup.c (remove_forwarder_block): Keep after
3032         labels debug stmts that can only appear after labels.
3033
3034 2017-12-13  Alexander Monakov  <amonakov@ispras.ru>
3035
3036         PR rtl-optimization/82398
3037         * sel-sched.c (sel_rank_for_schedule): Fix check for zero
3038         EXPR_USEFULNESS in priority comparison.
3039
3040 2017-12-13  Segher Boessenkool  <segher@kernel.crashing.org>
3041
3042         PR rtl-optimization/83393
3043         * combine.c (move_deaths): If reg_stat points to a too new insn in
3044         last_death, do not use it: find the proper insn instead.
3045
3046 2017-12-12  Jeff Law  <law@redhat.com>
3047
3048         PR tree-optimization/83298
3049         PR tree-optimization/83362
3050         PR tree-optimization/83383
3051         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make
3052         push_value_range a public interface.  Add new argument to
3053         record_ranges_from_stmt.
3054         * gimple-ssa-evrp-analyze.c
3055         (evrp_range_analyzer::record_ranges_from_stmt): Add new argument.
3056         Update comments.  Handle recording temporary equivalences.
3057         * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add
3058         new argument to call to evrp_range_analyzer::record_ranges_from_stmt.
3059         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise.
3060         * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and
3061         gimple-ssa-evrp-analyze.h.
3062         (record_temporary_equivalences_from_phis): Add new argument.  When
3063         the PHI arg is an SSA_NAME, set the result's range to the range
3064         of the PHI arg.
3065         (record_temporary_equivalences_from_stmts_at_dest): Record ranges
3066         from statements too.
3067         (thread_through_normal_block): Accept new argument, evrp_range_analyzer.
3068         Pass it down to children as needed.
3069         (thread_outgoing_edges): Likewise.
3070         (thread_across_edge): Likewise.   Push/pop range state as needed.
3071         * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype.
3072
3073 2017-12-12  Julia Koval  <julia.koval@intel.com>
3074
3075         * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB.
3076         (PTA_CANNONLAKE): Remove PTA_CLWB.
3077
3078 2017-12-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3079
3080         PR target/83332
3081         * config/rs6000/vector.md (vcondv2dfv2di): New define_expand.
3082         (vcondv2div2df): Likewise.
3083         (vconduv2dfv2di): Likewise.
3084
3085 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
3086
3087         * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF,
3088         BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF,
3089         BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of
3090         ATTR_MATHFN_FPROUNDING_ERRNO.
3091
3092 2017-12-12  Richard Biener  <rguenther@suse.de>
3093
3094         PR tree-optimization/83385
3095         * graphite-scop-detection.c (get_order, order): Remove.
3096         (bb_to_rpo): New global.
3097         (cmp_pbbs): Adjust.
3098         (build_scops): Sort pbbs in RPO order.
3099
3100 2017-12-12  James Greenhalgh  <james.greenhalgh@arm.com>
3101
3102         * combine.c (simplify_set): Do not transform subregs to zero_extends
3103         if the destination mode is a vector mode.
3104
3105 2017-12-12  Jakub Jelinek  <jakub@redhat.com>
3106
3107         PR tree-optimization/83359
3108         * tree-cfg.h (fold_loop_internal_call): Declare.
3109         * tree-vectorizer.c (fold_loop_internal_call): Moved to ...
3110         * tree-cfg.c (fold_loop_internal_call): ... here.  No longer static.
3111         (find_loop_dist_alias): New function.
3112         (move_sese_region_to_fn): If any dloop->orig_loop_num value is
3113         updated, also adjust any corresponding LOOP_DIST_ALIAS internal
3114         calls.
3115
3116         PR tree-optimization/80631
3117         * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
3118         (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE
3119         arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
3120         hardcoding zero as the value if COND_EXPR is never true.  For
3121         INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
3122         INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of
3123         hardcoding MAX_EXPR as the reduction operation.
3124         (is_nonwrapping_integer_induction): Allow negative step.
3125         (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for
3126         vect_create_epilog_for_reduction, if no value is suitable, don't
3127         use INTEGER_INDUC_COND_REDUCTION for now.  Formatting fixes.
3128
3129 2017-12-12  Richard Biener  <rguenther@suse.de>
3130
3131         PR tree-optimization/81889
3132         * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use
3133         range info from the non-wrapping IV instead of just the range
3134         of the type.
3135
3136 2017-12-12  Julia Koval  <julia.koval@intel.com>
3137
3138         * config.gcc: Add vaesintrin.h.
3139         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
3140         New type.
3141         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
3142         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
3143         New builtins.
3144         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
3145         * config/i386/immintrin.h: Include vaesintrin.h.
3146         * config/i386/sse.md (vaesdec_<mode>): New pattern.
3147         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
3148         _mm_aesdec_epi128): New intrinsics.
3149
3150 2017-12-12  Julia Koval  <julia.koval@intel.com>
3151
3152         * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET,
3153         OPTION_MASK_ISA_VAES_UNSET): New.
3154         (ix86_handle_option): Handle -mvaes.
3155         * config/i386/cpuid.h: Define bit_VAES.
3156         * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes.
3157         * config/i386/i386-c.c (__VAES__): New.
3158         * config/i386/i386.c (ix86_target_string): Add -mvaes.
3159         (ix86_valid_target_attribute_inner_p): Ditto.
3160         * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New.
3161         * config/i386/i386.opt: Add -mvaes.
3162         * doc/invoke.texi: Ditto.
3163
3164 2017-12-12  Alexandre Oliva  <aoliva@redhat.com>
3165
3166         * debug.h (gcc_debug_hooks): Add inline_entry.
3167         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
3168         * debug.c (do_nothing_debug_hooks): Likewise.
3169         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3170         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3171         (dwarf2_lineno_debug_hooks): Likewise.
3172
3173         * common.opt (gstatement-frontiers): New, setting
3174         debug_nonbind_markers_p.
3175         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate.
3176         * toplev.c (process_options): Autodetect value for debug statement
3177         frontiers option.
3178         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate.
3179         * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New.
3180
3181         * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt
3182         markers.  Integrate source bind into debug stmt expand loop.
3183         (pass_expand::execute): Check debug marker limit.  Avoid deep
3184         TER and expand debug locations for debug bind insns only.
3185         * cse.c (insn_live_p): Keep nonbind markers and debug bindings
3186         followed by them.
3187         * df-scan.c (df_insn_delete): Accept out-of-block debug insn.
3188         * final.c (reemit_insn_block_notes): Take current block from
3189         nonbind markers.  Declare note where it's first set.
3190         (final_scan_insn): Handle begin stmt notes.  Emit is_stmt according to
3191         begin stmt markers if enabled.
3192         (notice_source_line): Handle nonbind markers.  Fail if their
3193         location is unknown or that of builtins.
3194         (rest_of_handle_final): Convert begin stmt markers to notes if
3195         var-tracking didn't run.
3196         (rest_of_clean_state): Skip begin stmt markers.
3197         * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt
3198         markers.
3199         * function.c (allocate_struct_function): Set begin_stmt_markers.
3200         * function.h (struct function): Add debug_marker_count counter
3201         and debug_nonbind_markers flag.
3202         * gimple-iterator.c (gsi_remove): Adjust debug_marker_count.
3203         * gimple-low.c (lower_function_body): Adjust
3204         debug_nonbind_markers.
3205         (lower_stmt): Drop or skip gimple debug stmts.
3206         (lower_try_catch): Skip debug stmts.
3207         * gimple.c (gimple_build_debug_begin_stmt): New.
3208         (gimple_copy): Increment debug_marker_count if copying one.
3209         * gimple.h (gimple_build_debug_begin_stmt): Declare.
3210         * gimplify.c (rexpr_location): New.
3211         (rexpr_has_location): New.
3212         (warn_switch_unreachable_r): Handle gimple debug stmts.
3213         (shortcut_cond_r): Call expr_location.
3214         (find_goto): New.
3215         (find_goto_label): New.
3216         (shortcut_cond_expr): Call expr_has_location, expr_location, and
3217         find_goto_label.
3218         (gimplify_cond_expr): Call find_goto_label, expr_has_location, and
3219         expr_location.
3220         (gimplify_expr): Handle begin stmt markers.  Reject debug expr decls.
3221         * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New.  Add to...
3222         (LANG_HOOKS_INITIALIZER): ... this.
3223         * langhooks.h (struct lang_hooks): Add emits_begin_stmt.
3224         * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks
3225         debug insns.
3226         (update_ebb_live_info): Skip debug insn markers.
3227         * lra.c (debug_insn_static_data): Rename to...
3228         (debug_bind_static_data): ... this.
3229         (debug_marker_static_data): New.
3230         (lra_set_insn_recog_data): Select one of the above depending
3231         on debug insn kind.
3232         (lra_update_isn_regno_info): Don't assume debug insns have
3233         freqs.
3234         (push_insns): Skip debug insns.
3235         * lto-streamer-in.c (input_function): Drop debug stmts
3236         depending on active options.  Adjust debug_nonbind_markers.
3237         * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New.
3238         * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle
3239         begin stmt marker notes.
3240         (print_insn): Likewise.
3241         * recog.c (extract_insn): Recognize rtl for debug markers.
3242         * rtl.def (DEBUG_MARKER): New.
3243         * tree-inline.c: Include params.h.
3244         (remap_gimple_stmt): Handle nonbind markers.
3245         (maybe_move_debug_stmts_to_successors): Likewise.
3246         (copy_debug_stmt): Likewise.
3247         * tree-iterator.c (append_to_statement_list_1): Append begin stmt
3248         markers regardless of no side effects.
3249         (tsi_link_before): Don't update container's side effects when adding
3250         a begin stmt marker.
3251         (tsi_link_after): Likewise.
3252         (expr_first): Skip begin stmt markers.
3253         (expr_last): Likewise.
3254         * tree-pretty-print (dump_generic_node): Handle begin stmt markers.
3255         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
3256         Disregard nonbind markers.
3257         * tree.c (make_node_stat): Don't set side effects for begin stmt
3258         markers.
3259         (build1_stat): Likewise.
3260         * tree.def (DEBUG_BEGIN_STMT): New.
3261         * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR.
3262         * var-tracking.c (delete_debug_insns): Renamed to...
3263         (delete_vta_debug_insns): ... this.
3264         (reemit_marker_as_note): New.
3265         (vt_initialize): Reemit markers.
3266         (delete_vta_debug_insns): Likewise.
3267         (vt_debug_insns_local): Reemit or delete markers.
3268         (variable_tracking_main_1): Likewise.
3269         * doc/generic.texi (DEBUG_BEGIN_STMT): Document.
3270         * doc/gimple.texi (gimple_debug_begin_stmt_p): New.
3271         (gimple_debug_nonbind_marker_p): New.
3272         (gimple_build_debug_bind): Adjust.
3273         (gimple_build_debug_begin_stmt): New.
3274         * doc/invoke.texi (max-debug-marker-count): New param.
3275         * doc/rtl.texi (debug_implicit_ptr, entry_value): New.
3276         (debug_parameter_ref, debug_marker): New.
3277         (NOTE_INSN_BEGIN_STMT): New.
3278         (DEBUG_INSN): Describe begin stmt markers.
3279
3280         * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if,
3281         without debug insns, we wouldn't, but clean up debug insns
3282         after a control flow insn nevertheless.
3283
3284         * cfgcleanup.c (delete_unreachable_blocks): Use alternate
3285         block removal order if MAY_HAVE_DEBUG_BIND_INSNS.
3286         * cfgexpand.c (label_rtx_for_bb): Skip debug insns.
3287         * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns.
3288         (rtl_tidy_fallthru_edge): Likewise.
3289         (rtl_verify_fallthru): Likewise.
3290         (rtl_verify_bb_layout): Likewise.
3291         (skip_insns_after_block): Likewise.
3292         (duplicate_insn_chain): Use DEBUG_BIND_INSN_P.
3293         * dwarf2out.c: Include print-rtl.h.
3294         (dwarf2out_next_real_insn): New.
3295         (dwarf2out_var_location): Call it.  Disregard begin stmt markers.
3296         Dump debug binds in asm comments.
3297         * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts.
3298         * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust
3299         callers to use gsi_start_nondebug_bb instead.
3300         (gsi_after_labels): Skip gimple debug stmts.
3301         (gsi_start_nondebug): New.
3302         * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust.
3303         (proper_loop_form_for_interchange): Adjust.
3304         * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt.
3305         * gimple.h (gimple_seq_last_nondebug_stmt): New.
3306         * gimplify.c (last_stmt_in_scope): Skip debug stmts.
3307         (collect_fallthrough_labels): Likewise.
3308         (should_warn_for_implicit_fallthrough): Likewise.
3309         (warn_implicit_fallthrough_r): Likewise.
3310         (expand_FALLTHROUGH_r): Likewise.
3311         * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust.
3312         (graphite_copy_stmts_from_block): Skip nonbind markers.
3313         * haifa-sched.c (sched_extend_bb): Skip debug insns.
3314         * ipa-icf-gimple.c (func_checker::compare_bb): Adjust.
3315         * jump.c (clean_barriers): Skip debug insns.
3316         * omp-expand.c (expand_parallel_call): Skip debug insns.
3317         (expand_task_call): Likewise.
3318         (remove_exit_barrier): Likewise.
3319         (expand_omp_taskreg): Likewise.
3320         (expand_omp_for_init_counts): Likewise.
3321         (expand_omp_for_generic): Likewise.
3322         (expand_omp_for_static_nochunk): Likewise.
3323         (expand_omp_for_static_chunk): Likewise.
3324         (expand_omp_simd): Likewise.
3325         (expand_omp_taskloop_for_outer): Likewise.
3326         (expand_omp_taskloop_for_inner): Likewise.
3327         (expand_oacc_for): Likewise.
3328         (expand_omp_sections): Likewise.
3329         (expand_omp_single): Likewise.
3330         (expand_omp_synch): Likewise.
3331         (expand_omp_atomic_load): Likewise.
3332         (expand_omp_atomic_store): Likewise.
3333         (expand_omp_atomic_fetch_op): Likewise.
3334         (expand_omp_atomic_pipeline): Likewise.
3335         (expand_omp_atomic_mutex): Likewise.
3336         (expand_omp_target): Likewise.
3337         (grid_expand_omp_for_loop): Likewise.
3338         (grid_expand_target_grid_body): Likewise.
3339         (build_omp_regions_1): Likewise.
3340         * omp-low.c (check_combined_parallel): Skip debug stmts.
3341         * postreload.c (fixup_debug_insns): Skip nonbind debug insns.
3342         * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo.
3343         * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in
3344         test.
3345         * tree-cfg.c (make_blobs_1): Skip debug stmts.
3346         (make_edges): Likewise.
3347         (cleanup_dead_labels): Likewise.
3348         (gimple_can_merge_blocks_p): Likewise.
3349         (stmt_starts_bb_p): Likewise.
3350         (gimple_block_label): Likewise.
3351         (gimple_redirect_edge_and_branch): Likewise.
3352         * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping
3353         of debug stmts.
3354         (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with
3355         TDF_SLIM.
3356         * tree-pretty-print (print_declaration): Omit initializer in slim
3357         dumps.
3358         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt
3359         markers.
3360         (eliminate_unnecessary_stmts): Stabilize block removal order.
3361         * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts.
3362         * var-tracking.c (get_first_insn): New.
3363         (vt_emit_notes): Call it.
3364         (vt_initialize): Walk any insns before the first BB.
3365         (delete_debug_insns): Likewise.
3366
3367         * gimple.h (enum gimple_debug_subcode): Add
3368         GIMPLE_DEBUG_BEGIN_STMT.
3369         (gimple_debug_begin_stmt_p): New.
3370         (gimple_debug_nonbind_marker_p): New.
3371         * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New.
3372         (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from....
3373         (MAY_HAVE_DEBUG_STMTS): ... this.  Check both.
3374         * insn-notes.def (BEGIN_STMT): New.
3375         * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New.
3376         (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from....
3377         (MAY_HAVE_DEBUG_INSNS): ... this.  Check both.
3378         (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New.
3379         (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New.
3380         (INSN_DEBUG_MARKER_KIND): New.
3381         (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New.
3382         (INSN_VAR_LOCATION): Check for VAR_LOCATION.
3383         (INSN_VAR_LOCATION_PTR): New.
3384         * cfgexpand.c (expand_debug_locations): Handle debug bind insns
3385         only.
3386         (expand_gimple_basic_block): Likewise.  Emit debug temps for TER
3387         deps only if debug bind insns are enabled.
3388         (pass_expand::execute): Avoid deep TER and expand
3389         debug locations for debug bind insns only.
3390         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow
3391         debug stmts special handling down to debug bind stmts.
3392         * combine.c (try_combine): Narrow debug insns special handling
3393         down to debug bind insns.
3394         * cse.c (delete_trivially_dead_insns): Handle debug bindings.
3395         Narrow debug insns preexisting special handling down to debug
3396         bind insns.
3397         * dce.c (rest_of_handle_ud_dce): Narrow debug insns special
3398         handling down to debug bind insns.
3399         * function.c (instantiate_virtual_regs): Skip debug markers,
3400         adjust handling of debug binds.
3401         * gimple-ssa-backprop.c (backprop::prepare_change): Try debug
3402         temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS.
3403         * haifa-sched.c (schedule_insn): Narrow special handling of debug
3404         insns to debug bind insns.
3405         * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow
3406         special handling of debug stmts to debug bind stmts.
3407         * ipa-split.c (split_function): Likewise.
3408         * ira.c (combine_and_move_insns): Adjust debug bind insns only.
3409         * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind
3410         debug insns.
3411         * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P.
3412         * regrename.c (build_def_use): Likewise.
3413         * regcprop.c (copyprop_hardreg_forward_1): Likewise.
3414         (pass_cprop_hardreg): Narrow special casing of debug insns to
3415         debug bind insns.
3416         * regstat.c (regstat_init_n_sets_and_refs): Likewise.
3417         * reload1.c (reload): Likewise.
3418         * sese.c (sese_insert_phis_for_liveouts): Narrow special
3419         casing of debug stmts to debug bind stmts.
3420         * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
3421         * ssa-iterators.h (num_imm_uses): Likewise.
3422         * tree-cfg.c (gimple_merge_blocks): Narrow special casing of
3423         debug stmts to debug bind stmts.
3424         * tree-inline.c (tree_function_versioning): Narrow special casing
3425         of debug stmts to debug bind stmts.
3426         * tree-loop-distribution.c (generate_loops_for_partition):
3427         Narrow special casing of debug stmts to debug bind stmts.
3428         * tree-sra.c (analyze_access_subtree): Narrow special casing
3429         of debug stmts to debug bind stmts.
3430         * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug
3431         stmts to debug bind stmts.
3432         * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special
3433         casing of debug stmts to debug bind stmts.
3434         * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
3435         * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special
3436         casing of debug stmts to debug bind stmts.
3437         * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
3438         Likewise.
3439         * tree-ssa.c (flush_pending_stmts): Narrow special casing of
3440         debug stmts to debug bind stmts.
3441         (gimple_replace_ssa_lhs): Likewise.
3442         (insert_debug_temp_for_var_def): Likewise.
3443         (insert_debug_temps_for_defs): Likewise.
3444         (reset_debug_uses): Likewise.
3445         * tree-ssanames.c (release_ssa_name_fn): Likewise.
3446         * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise.
3447         (adjust_debug_stmts): Likewise.
3448         (adjust_phi_and_debug_stmts): Likewise.
3449         (vect_do_peeling): Likewise.
3450         * tree-vect-loop.c (vect_transform_loop): Likewise.
3451         * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P.
3452         * var-tracking.c (adjust_mems): Narrow special casing of debug
3453         insns to debug bind insns.
3454         (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise.
3455         (compute_bb_dataflow, vt_find_locations): Likewise.
3456         (vt_expand_loc, emit_notes_for_changes): Likewise.
3457         (vt_init_cfa_base): Likewise.
3458         (vt_emit_notes): Likewise.
3459         (vt_initialize): Likewise.
3460         (vt_finalize): Likewise.
3461
3462         * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder.
3463         (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder.
3464         (next_nonnote_nondebug_insn_bb): New.
3465         (prev_nonnote_nondebug_insn_bb): New.
3466         (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove.
3467         * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls.
3468         (prev_nonnote_nondebug_insn_bb): Declare.
3469         (next_nonnote_nondebug_insn_bb): Declare.
3470         * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns.
3471         * cfgrtl.c (get_last_bb_insn): Likewise.
3472         * lra.c (push_insns): Likewise.
3473
3474 2017-12-11  David Malcolm  <dmalcolm@redhat.com>
3475
3476         PR c/82050
3477         * selftest-run-tests.c (selftest::run_tests): Move start/finish code
3478         to...
3479         * selftest.c (selftest::test_runner::test_runner): New ctor.
3480         (selftest::test_runner::~test_runner): New dtor.
3481         * selftest.h (class selftest::test_runner): New class.
3482
3483 2017-12-11  Carl Love  <cel@us.ibm.com>
3484
3485         * config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
3486         vec_extract_fp32_from_shortl]): Add #defines.
3487         * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
3488         * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
3489         ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
3490         ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
3491         ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
3492         ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
3493         * doc/extend.texi: Add documentation for the added builtins.
3494
3495 2017-12-11  Alexandre Oliva  <aoliva@redhat.com>
3496
3497         PR rtl-optimization/80693
3498         PR rtl-optimization/81019
3499         PR rtl-optimization/81020
3500         * combine.c (distribute_notes): Reset any REG_UNUSED REGs that
3501         are not mentioned in i3.  Place the REG_UNUSED note on i2,
3502         possibly modified to REG_DEAD, if it did not originate in i3.
3503
3504 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
3505
3506         * recog.c (store_data_bypass_p_1): New function.
3507         (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER.  Use
3508         store_data_bypass_p_1 to avoid code duplication.  Formatting fixes.
3509
3510 2017-12-11  Segher Boessenkool  <segher@kernel.crashing.org>
3511
3512         PR rtl-optimization/83361
3513         * ifcvt.c (if_convert): Call fixup_partitions.
3514
3515 2017-12-11  Will Schmidt  <will_schmidt@vnet.ibm.com>
3516
3517         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
3518         early folding of splat_u{8,16,32}.
3519
3520 2017-12-11  Jakub Jelinek  <jakub@redhat.com>
3521
3522         * config/aarch64/aarch64.c (aarch64_print_operand): Don't start
3523         output_operand_lossage first argument with capital letter.
3524         (aarch64_override_options): Don't start error and sorry first argument
3525         with capital letter.
3526
3527 2017-12-11  Andi Kleen  <ak@linux.intel.com>
3528
3529         PR gcov-profile/83355
3530         * auto-profile.c (string_table::get_index_by_decl): Don't
3531         recurse when abstract origin points to itself.
3532
3533 2017-12-11  Bin Cheng  <bin.cheng@arm.com>
3534
3535         PR tree-optimization/83320
3536         * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
3537         (prune_datarefs_not_in_loop): Ditto.
3538
3539 2017-12-10  Gerald Pfeifer  <gerald@pfeifer.com>
3540
3541         * doc/install.texi (Specific): Tweak link to mkssoftware.com.
3542
3543 2017-12-10  Jakub Jelinek  <jakub@redhat.com>
3544
3545         PR tree-optimization/83337
3546         * gimple-loop-interchange.cc (compute_access_stride): Handle
3547         bitfield DRs properly.
3548
3549 2017-12-09  Jakub Jelinek  <jakub@redhat.com>
3550
3551         PR tree-optimization/83338
3552         * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR
3553         vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from
3554         vector of unsigned integers to vector of signed integers.
3555
3556 2017-12-08  Vladimir Makarov  <vmakarov@redhat.com>
3557
3558         PR rtl-optimization/83317
3559         * lra-constraints.c (process_address_1): Add insn code check.
3560
3561 2017-12-08  Michael Matz  <matz@suse.de>
3562
3563         Fix PR tree-optimization/83323
3564         * gimple-loop-jam (unroll_jam_possible_p): Correct test for
3565         head-controlled loops and loop BBs.
3566         * common.opt (funroll-and-jam): Remove, instead ...
3567         (floop-unroll-and-jam): ... reuse this option.
3568         * opts.c (default_options_table): Use OPT_floop_unroll_and_jam.
3569         * doc/invoke.texi (-funroll-and-jam): Move docu to ...
3570         (-floop-unroll-and-jam): ... this option.
3571
3572 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
3573
3574         * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix
3575         a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
3576         * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise.
3577
3578 2017-12-08  Richard Biener  <rguenther@suse.de>
3579
3580         PR middle-end/81782
3581         * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
3582         handle accesses outside of zero-sized vars.
3583
3584 2017-12-08  Martin Jambor  <mjambor@suse.cz>
3585
3586         PR tree-optimization/83141
3587         * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also
3588         test for MEM_REFs implicitely changing types with padding.  Remove
3589         inline keyword.
3590         (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks.
3591
3592 2017-12-08  Jakub Jelinek  <jakub@redhat.com>
3593
3594         * config/arc/arc.c (arc_attribute_table): Add exclusions to
3595         the comment.
3596         * config/avr/avr.c (avr_attribute_table): Likewise.
3597         * config/msp430/msp430.c (msp430_attribute_table): Likewise.
3598         * config/rl78/rl78.c (rl78_attribute_table): Likewise.
3599         * config/nds32/nds32.c (nds32_attribute_table): Likewise.
3600         * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
3601         of struct attribute_spec.
3602         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
3603
3604 2017-12-08  Ulrich Weigand  <uweigand@de.ibm.com>
3605
3606         PR target/82960
3607         * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true.
3608
3609 2017-12-08  Jan Hubicka  <hubicka@ucw.cz>
3610
3611         PR middle-end/83609
3612         * profile-count.c (profile_count::from_gcov_type): Move from
3613         profile-count.h; handle overflow.
3614         * profile-count.h (profile_count::from_gcov_type): Move offline.
3615
3616 2017-12-08  Segher Boessenkool  <segher@kernel.crashing.org>
3617
3618         PR rtl-optimization/83304
3619         * combine.c (move_deaths): If we do not know where a register died,
3620         search for it.
3621
3622 2017-12-08  Richard Biener  <rguenther@suse.de>
3623
3624         * gimple-loop-interchange.cc (tree_loop_interchange::interchange):
3625         Provide -fopt-info-loop feedback when we interchange in a nest.
3626
3627 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3628
3629         * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names
3630         for armv6 ARM CPU IDs.
3631
3632 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3633
3634         * common/config/arm/arm-common.c: Include <algorithm>.
3635         (INCLUDE_VECTOR): Define.
3636         (compare_opt_names): New function.
3637         (arm_rewrite_selected_arch): Only strip out extensions that can be
3638         expressed through -mfpu.  Sort the remaining extensions
3639         alphabetically.
3640
3641 2017-06-08  Richard Earnshaw  <rearnsha@arm.com>
3642
3643         * config/arm/arm.h (arm_asm_auto_mfpu): Declare.
3644         (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu.
3645         (ASM_CPU_SPEC): Use it if -mfpu is set to auto.
3646         * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function.
3647
3648 2017-06-08  Tristan Gingold  <gindold@adacore.com>
3649
3650         PR ada/81470
3651         * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
3652         .cfi_personality or .cfi_lsda if the eh data format is dwarf2.
3653
3654 2017-12-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3655
3656         * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
3657         of struct attribute_spec.
3658
3659 2017-12-08  Julia Koval  <julia.koval@intel.com>
3660
3661         * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32,
3662         _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics.
3663         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32,
3664         _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32,
3665         _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32,
3666         _mm_maskz_dpwssds_epi32): Ditto.
3667
3668 2017-12-08  Richard Biener  <rguenther@suse.de>
3669
3670         PR tree-optimization/81303
3671         * tree-vect-stmts.c (vect_is_simple_cond): For invariant
3672         conditions try to create a comparison vector type matching
3673         the data vector type.
3674         (vectorizable_condition): Adjust.
3675         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
3676         Leave invariant conditions alone in case we can vectorize those.
3677
3678 2017-12-08  Julia Koval  <julia.koval@intel.com>
3679
3680         * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32,
3681         _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics.
3682         * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32,
3683         _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32,
3684         _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto.
3685
3686 2017-12-08  Julia Koval  <julia.koval@intel.com>
3687
3688         * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32,
3689         _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New.
3690         * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32,
3691         _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32,
3692         _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32,
3693         _mm_maskz_dpbusds_epi32): New intrinsics.
3694
3695 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
3696
3697         * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory
3698         operand.
3699         (ld<bh>io_signed): Likewise.
3700         (st<bhw>io): Likewise.
3701         * config/nios2/predicates.md (ldstio_memory_operand): Allow
3702         SMALL_INT12 constant integer operand.
3703
3704 2017-12-07  Sandra Loosemore  <sandra@codesourcery.com>
3705
3706         * config/nios2/nios2.c (nios2_symbolic_constant_allowed):
3707         Rename to...
3708         (nios2_large_constant_allowed): ...this.  Adjust uses.
3709         (nios2_plus_symbolic_constant_p): Rename to...
3710         (nios2_plus_large_constant_p): ...this.  Adjust uses.
3711         (nios2_legitimate_address_p): Correct CONST_INT handling.
3712         (nios2_symbolic_memory_operand_p): Rename to...
3713         (nios2_large_constant_memory_operand_p): ...this.  Adjust uses.
3714         (nios2_large_constant_p): Check for large constant integers too.
3715         (nios2_split_large_constant): Handle constant integers.
3716         (nios2_split_symbolic_memory_operand): Rename to...
3717         (nios2_split_large_constant_memory_operand): ...this.  Adjust uses.
3718         (nios2_legitimize_constant_address): Handle constant integers.
3719         (r0rel_constant_p): Handle small constant integers.
3720         (nios2_print_operand_address): Handle r0-relative integer addresses.
3721         * config/nios2/nios2-protos.h: Adjust for renamed functions.
3722         * config/nios2/nios2.md: Adjust for renamed functions.
3723
3724 2017-12-07  Andrew Waterman  <andrew@sifive.com>
3725
3726         * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define.
3727         (TARGET_HAVE_SRODATA_SECTION): New define.
3728         (riscv_select_section): New function.
3729
3730 2017-12-08  Joseph Myers  <joseph@codesourcery.com>
3731             Alexander Monakov  <amonakov@ispras.ru>
3732             Jakub Jelinek  <jakub@redhat.com>
3733
3734         PR target/81906
3735         * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
3736
3737 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3738
3739         * config/aarch64/aarch64.c (aarch64_print_address_internal): Return
3740         a bool success value.  Don't call output_operand_lossage here.
3741         (aarch64_print_ldpstp_address): Return a bool success value.
3742         (aarch64_print_operand_address): Call output_addr_const if
3743         aarch64_print_address_internal fails.
3744         (aarch64_print_operand): Don't assert that the mode is 16 bytes for
3745         'y'; call output_operand_lossage instead.  Call output_operand_lossage
3746         if aarch64_print_ldpstp_address fails.
3747
3748 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3749
3750         * tree-vector-builder.h
3751         (tree_vector_builder::binary_encoded_nelts): Declare.
3752         * tree-vector-builder.c
3753         (tree_vector_builder::binary_encoded_nelts): New function.
3754         * fold-const.c (negate_expr_p): Likewise.
3755         (operand_equal_p, fold_checksum_tree): Likewise.
3756         * tree-loop-distribution.c (const_with_all_bytes_same): Likewise.
3757         * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop)
3758         (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise.
3759         (uniform_vector_p): Likewise.
3760         * varasm.c (const_hash_1, compare_constant): Likewise.
3761         * tree-ssa-ccp.c: Include tree-vector-builder.h.
3762         (valid_lattice_transition): Operate directly on the VECTOR_CST
3763         encoding.
3764         * ipa-icf.c: Include tree-vector-builder.h.
3765         (sem_variable::equals): Operate directly on the VECTOR_CST encoding.
3766         * print-tree.c (print_node): Print encoding of VECTOR_CSTs.
3767
3768 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3769
3770         * tree.c (build_vector): Delete.
3771         * tree.h (build_vector): Make static and move into the self-testing
3772         block.
3773
3774 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3775
3776         * vector-builder.h (vector_builder::derived): New const overload.
3777         (vector_builder::elt): New function.
3778         * tree-vector-builder.h (tree_vector_builder::type): New function.
3779         (tree_vector_builder::apply_step): Declare.
3780         * tree-vector-builder.c (tree_vector_builder::apply_step): New
3781         function.
3782         * gimple-fold.h (tree_vector_builder): Declare.
3783         (gimple_build_vector): Take a tree_vector_builder instead of a
3784         type and vector of elements.
3785         * gimple-fold.c (gimple_build_vector): Likewise.
3786         * tree-vect-loop.c (get_initial_def_for_reduction): Update call
3787         accordingly.
3788         (get_initial_defs_for_reduction): Likewise.
3789         (vectorizable_induction): Likewise.
3790
3791 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3792
3793         * tree-vector-builder.h
3794         (tree_vector_builder::new_binary_operation): Declare.
3795         * tree-vector-builder.c
3796         (tree_vector_builder::new_binary_operation): New function.
3797         * fold-const.c (fold_relational_const): Use it.
3798         (const_binop): Likewise.  Check that both input vectors have
3799         the same number of elements, thus excluding things like WIDEN_SUM.
3800         Check whether it is possible to operate directly on the encodings
3801         of stepped inputs.
3802
3803 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3804
3805         * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and
3806         new_unary_operation, operating only on the encoded elements.
3807         (const_unop): Likewise.
3808         (exact_inverse): Likewise.
3809         (distributes_over_addition_p): New function.
3810         (const_binop): Use tree_vector_builder and new_unary_operation
3811         for combinations of VECTOR_CST and INTEGER_CST.  Operate only
3812         on the encoded elements unless the encoding is strided and the
3813         operation does not distribute over addition.
3814         (fold_convert_const):  Use tree_vector_builder and
3815         new_unary_operation.  Operate only on the encoded elements
3816         for truncating integer conversions, or for non-stepped encodings.
3817
3818 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3819
3820         * config/sparc/sparc.c: Include tree-vector-builder.h.
3821         (sparc_fold_builtin): Use tree_vector_builder instead of build_vector.
3822         * expmed.c: Include tree-vector-builder.h.
3823         (make_tree): Use tree_vector_builder instead of build_vector.
3824         * fold-const.c: Include tree-vector-builder.h.
3825         (const_binop): Use tree_vector_builder instead of build_vector.
3826         (const_unop): Likewise.
3827         (native_interpret_vector): Likewise.
3828         (fold_vec_perm): Likewise.
3829         (fold_ternary_loc): Likewise.
3830         * gimple-fold.c: Include tree-vector-builder.h.
3831         (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead
3832         of build_vector.
3833         * tree-ssa-forwprop.c: Include tree-vector-builder.h.
3834         (simplify_vector_constructor): Use tree_vector_builder instead
3835         of build_vector.
3836         * tree-vect-generic.c: Include tree-vector-builder.h.
3837         (add_rshift): Use tree_vector_builder instead of build_vector.
3838         (expand_vector_divmod): Likewise.
3839         (optimize_vector_constructor): Likewise.
3840         * tree-vect-loop.c: Include tree-vector-builder.h.
3841         (vect_create_epilog_for_reduction): Use tree_vector_builder instead
3842         of build_vector.  Explicitly use a stepped encoding for
3843         { 1, 2, 3, ... }.
3844         * tree-vect-slp.c: Include tree-vector-builder.h.
3845         (vect_get_constant_vectors): Use tree_vector_builder instead
3846         of build_vector.
3847         (vect_transform_slp_perm_load): Likewise.
3848         (vect_schedule_slp_instance): Likewise.
3849         * tree-vect-stmts.c: Include tree-vector-builder.h.
3850         (vectorizable_bswap): Use tree_vector_builder instead of build_vector.
3851         (vect_gen_perm_mask_any): Likewise.
3852         (vectorizable_call): Likewise.  Explicitly use a stepped encoding.
3853         * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead
3854         of build_vector.
3855         (build_vector_from_val): Likewise.  Explicitly use a duplicate
3856         encoding.
3857
3858 2017-12-07  Richard Sandiford  <richard.sandiford@arm.com>
3859
3860         * doc/generic.texi (VECTOR_CST): Describe new representation of
3861         vector constants.
3862         * vector-builder.h: New file.
3863         * tree-vector-builder.h: Likewise.
3864         * tree-vector-builder.c: Likewise.
3865         * Makefile.in (OBJS): Add tree-vector-builder.o.
3866         * tree.def (VECTOR_CST): Update comment to refer to generic.texi.
3867         * tree-core.h (tree_base): Add a vector_cst field to the u union.
3868         (tree_vector): Change the number of elements to
3869         vector_cst_encoded_nelts.
3870         * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS.
3871         (VECTOR_CST_ELTS): Delete.
3872         (VECTOR_CST_ELT): Redefine using vector_cst_elt.
3873         (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros.
3874         (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise.
3875         (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise.
3876         (VECTOR_CST_ENCODED_ELT): Likewise.
3877         (vector_cst_encoded_nelts): New function.
3878         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3879         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3880         (vector_cst_int_elt, vector_cst_elt): Declare.
3881         * tree.c: Include tree-vector-builder.h.
3882         (tree_code_size): Abort if passed VECTOR_CST.
3883         (tree_size): Update for new VECTOR_CST layout.
3884         (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
3885         VECTOR_CST_NELTS_PER_PATTERN as arguments.
3886         (build_vector): Use tree_vector_builder.
3887         (vector_cst_int_elt, vector_cst_elt): New functions.
3888         (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the
3889         encoded elements and then create the vector in the canonical form.
3890         (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill)
3891         (check_vector_cst_stepped, test_vector_cst_patterns): New functions.
3892         (tree_c_tests): Call test_vector_cst_patterns.
3893         * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new
3894         VECTOR_CST fields.
3895         (hash_tree): Likewise.
3896         * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise.
3897         (streamer_write_tree_header): Likewise.
3898         * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise.
3899         (streamer_alloc_tree): Likewise.  Update call to make_vector.
3900         * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS.
3901
3902 2017-12-07  Richard Sandiford  <richard.sandiford@linaro.org>
3903
3904         * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT)
3905         (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names
3906         * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise.
3907
3908 2017-12-07  Bin Cheng  <bin.cheng@arm.com>
3909             Richard Biener  <rguenther@suse.de>
3910
3911         PR tree-optimization/81303
3912         * Makefile.in (gimple-loop-interchange.o): New object file.
3913         * common.opt (floop-interchange): Reuse the option from graphite.
3914         * doc/invoke.texi (-floop-interchange): Ditto.  New document for
3915         -floop-interchange and mention it for -O3.
3916         * opts.c (default_options_table): Enable -floop-interchange at -O3.
3917         * gimple-loop-interchange.cc: New file.
3918         * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter.
3919         (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter.
3920         * passes.def (pass_linterchange): New pass.
3921         * timevar.def (TV_LINTERCHANGE): New time var.
3922         * tree-pass.h (make_pass_linterchange): New declaration.
3923         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external
3924         interchange.  Record IV before/after increment in new parameters.
3925         * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration.
3926         * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction
3927         path check into...
3928         (check_reduction_path): ...New function here.
3929         * tree-vectorizer.h (check_reduction_path): New declaration.
3930
3931 2017-12-07  Vladimir Makarov  <vmakarov@redhat.com>
3932
3933         PR target/83252
3934         PR rtl-optimization/80818
3935         * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER
3936         always early clobbered.
3937         * lra-lives.c (process_bb_lives): Check input hard regs for early
3938         clobbered non-operand hard reg.
3939
3940 2017-12-07  Jakub Jelinek  <jakub@redhat.com>
3941
3942         PR middle-end/83164
3943         * tree-cfg.c (verify_gimple_assign_binary): Don't require
3944         types_compatible_p, just that TYPE_MODE is the same.
3945
3946 2017-12-07  Martin Sebor  <msebor@redhat.com>
3947
3948         PR c/81544
3949         * attribs.c (empty_attribute_table): Initialize new member of
3950         struct attribute_spec.
3951         (decl_attributes): Add argument.  Handle mutually exclusive
3952         combinations of attributes.
3953         (selftests::test_attribute_exclusions): New function.
3954         (selftests::attribute_c_tests): Ditto.
3955         * attribs.h (decl_attributes): Add default argument.
3956         * selftest.h (attribute_c_tests): Declare.
3957         * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
3958         * tree-core.h (attribute_spec::exclusions, exclude): New type and
3959         member.
3960         * doc/extend.texi (Common Function Attributes): Update const and pure.
3961         * config/alpha/alpha.c (vms_attribute_table): Initialize new member
3962         of struct attribute_spec.
3963         * config/arc/arc.c (arc_attribute_table): Same.
3964         * config/arm/arm.c (arm_attribute_table): Same.
3965         * config/avr/avr.c ( avr_attribute_table): Same.
3966         * config/bfin/bfin.c (bfin_attribute_table): Same.
3967         * config/cr16/cr16.c (cr16_attribute_table): Same.
3968         * config/epiphany/epiphany.c (epiphany_attribute_table): Same.
3969         * config/h8300/h8300.c (h8300_attribute_table): Same.
3970         * config/i386/i386.c (ix86_attribute_table): Same.
3971         * config/ia64/ia64.c (ia64_attribute_table): Same.
3972         * config/m32c/m32c.c (m32c_attribute_table): Same.
3973         * config/m32r/m32r.c (m32r_attribute_table): Same.
3974         * config/m68k/m68k.c (m68k_attribute_table): Same.
3975         * config/mcore/mcore.c (mcore_attribute_table): Same.
3976         * config/microblaze/microblaze.c (microblaze_attribute_table): Same.
3977         * config/mips/mips.c (mips_attribute_table): Same.
3978         * config/msp430/msp430.c (msp430_attribute_table): Same.
3979         * config/nds32/nds32.c (nds32_attribute_table): Same.
3980         * config/nvptx/nvptx.c (nvptx_attribute_table): Same.
3981         * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same.
3982         * config/rl78/rl78.c (rl78__attribute_table): Same.
3983         * config/rs6000/rs6000.c (rs6000_attribute_table): Same.
3984         * onfig/rx/rx.c (rx_attribute_table): Same.
3985         * config/s390/s390.c (s390_handle_vectorbool_attribute): Same.
3986         * config/sh/sh.c (sh_attribute_table): Same.
3987         * config/sparc/sparc.c (sparc_attribute_table): Same.
3988         * config/spu/spu.c (spu_attribute_table): Same.
3989         * config/stormy16/stormy16.c (xstormy16_attribute_table): Same.
3990         * config/v850/v850.c (v850_attribute_table): Same.
3991         * config/visium/visium.c (visium_attribute_table): Same.
3992
3993 2017-12-07  Tamar Christina  <tamar.christina@arm.com>
3994
3995         PR target/82641
3996         * config/arm/arm.c (INCLUDE_STRING): Define.
3997         (arm_last_printed_arch_string, arm_last_printed_fpu_string): New.
3998         (arm_declare_function_name): Conservatively emit .arch, .arch_extensions
3999         and .fpu.
4000
4001 2017-12-07  Michael Matz  <matz@suse.de>
4002
4003         Add unroll and jam pass
4004
4005         * gimple-loop-jam.c: New file.
4006         * Makefile.in (OBJS): Add gimple-loop-jam.o.
4007         * common.opt (funroll-and-jam): New option.
4008         * opts.c (default_options_table): Add unroll-and-jam at -O3.
4009         * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param.
4010         (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto.
4011         * passes.def: Add pass_loop_jam.
4012         * timevar.def (TV_LOOP_JAM): Add.
4013         * tree-pass.h (make_pass_loop_jam): Declare.
4014         * cfgloop.c (flow_loop_tree_node_add): Add AT argument.
4015         * cfgloop.h (flow_loop_tree_node_add): Adjust declaration.
4016         * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call
4017         to flow_loop_tree_node_add.
4018         (duplicate_subloops, copy_loops_to): Append to sibling list.
4019         * cfgloopmanip.h: (duplicate_loop): Adjust declaration.
4020         * doc/invoke.texi (-funroll-and-jam): Document new option.
4021         (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params.
4022
4023 2017-12-07  Richard Biener  <rguenther@suse.de>
4024
4025         PR tree-optimization/83296
4026         PR tree-optimization/67769
4027         * tree-ssa-phiopt.c (conditional_replacement): Do not reset
4028         flow sensitive info in an unrelated BB.
4029         (value_replacement): Use reset_flow_sensitive_info.
4030         (minmax_replacement): Reset flow sensitive info on the def
4031         we move.  Do not reset flow sensitive info in the whole BB
4032         we move the stmt to.
4033         (abs_replacement): Likewise.
4034
4035 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
4036
4037         PR target/43871
4038         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
4039         rs6000_cpu to the given -mcpu=, or to the default processor.
4040
4041 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
4042
4043         * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete.
4044         * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune
4045         instead of rs6000_cpu_attr.
4046         (rs6000_adjust_cost): Ditto.
4047         (is_microcoded_insn): Ditto.
4048         (rs6000_adjust_priority): Ditto.
4049         (rs6000_issue_rate): Ditto.
4050         (rs6000_use_sched_lookahead): Ditto.
4051         (rs6000_use_sched_lookahead_guard): Ditto.
4052         (rs6000_sched_reorder): Ditto.
4053         (force_new_group): Ditto.
4054         * config/rs6000/rs6000.md (cpu attribute): Ditto.
4055         (group_ending_nop): Ditto.
4056
4057 2017-12-07  Segher Boessenkool  <segher@kernel.crashing.org>
4058
4059         * config/rs6000/rs6000.opt (rs6000_tune): New variable.
4060         * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set
4061         rs6000_tune.  Use rs6000_tune instead of rs6000_cpu where appropriate.
4062         (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where
4063         appropriate.
4064         (rs6000_reassociation_width): Ditto.
4065         (rs6000_emit_epilogue): Ditto.
4066         (rs6000_adjust_cost): Ditto.
4067         (is_microcoded_insn): Ditto.
4068         (is_cracked_insn): Ditto.
4069         (rs6000_adjust_priority): Ditto.
4070         (rs6000_sched_reorder): Ditto.
4071         (rs6000_sched_reorder2): Ditto.
4072         (insn_must_be_first_in_group): Ditto.
4073         (insn_must_be_last_in_group): Ditto.
4074         (rs6000_register_move_cost): Ditto.
4075         * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of
4076         rs6000_cpu.
4077
4078 2017-12-07  Julia Koval  <julia.koval@intel.com>
4079
4080         * config.gcc: Add vaesintrin.h.
4081         * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
4082         New type.
4083         * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
4084         __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
4085         New builtins.
4086         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
4087         * config/i386/immintrin.h: Include vaesintrin.h.
4088         * config/i386/sse.md (vaesdec_<mode>): New pattern.
4089         * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
4090         _mm_aesdec_epi128): New intrinsics.
4091
4092 2017-12-06  David Malcolm  <dmalcolm@redhat.com>
4093
4094         * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o.
4095         * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to
4096         c-family/c-spellcheck.cc.
4097         (best_macro_match::best_macro_match): Likewise.
4098         * spellcheck-tree.h
4099         (struct edit_distance_traits<cpp_hashnode *>): Move to
4100         c-family/c-spellcheck.h.
4101         (class best_macro_match): Likewise.
4102
4103 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
4104
4105         PR tree-optimization/83293
4106         * gimple-ssa-strength-reduction.c (insert_initializers): Use
4107         GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that
4108         might insert into empty bb.
4109
4110         PR sanitizer/81281
4111         * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate
4112         simplify for plus with :c added, and pointer_plus without that.
4113         ((T)P - (T)(P + A) -> -(T) A): Likewise.  If type is integral
4114         with undefined overflow and the conversion is not widening,
4115         perform negation in utype and only convert to type afterwards.
4116         ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate
4117         simplify for plus with :c added, and pointer_plus without that.
4118         If type is integral with undefined overflow and the conversion is
4119         not widening, perform minus in utype and only convert to type
4120         afterwards.  Move the last pointer_diff_expr simplify into the
4121         two outermost ifs.
4122
4123 2017-12-06  Martin Sebor  <msebor@redhat.com>
4124
4125         PR tree-optimization/82646
4126         * builtins.c (maybe_emit_chk_warning): Use size as the bound for
4127         strncpy, not maxlen.
4128
4129 2017-12-06  Martin Sebor  <msebor@redhat.com>
4130
4131         * doc/invoke.texi (-Wstringop-truncation): Mention attribute
4132         nonstring.
4133
4134         PR tree-optimization/83075
4135         * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming
4136         strncat/strncpy don't change length of source string.
4137
4138 2017-12-06  Eric Botcazou  <ebotcazou@adacore.com>
4139
4140         Revert
4141         2017-11-29  Martin Aberg  <maberg@gaisler.com>
4142
4143         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
4144         to prevent b2bst errata sequence.
4145         (sqrtdf2_fix): Likewise.
4146
4147 2017-12-06  Jakub Jelinek  <jakub@redhat.com>
4148
4149         PR tree-optimization/81945
4150         * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn.
4151         * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved
4152         to dest_cfun has orig_loop_num set, either remap it to the new
4153         loop number if the loop got moved too, or clear it.
4154
4155 2017-12-05  Steve Ellcey  <sellcey@cavium.com>
4156
4157         * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap
4158         to reservation.
4159         (thunderx2t99_nothing): New insn reservation.
4160         (thunderx2t99_mrs): New insn reservation.
4161         (thunderx2t99_multiple): New insn reservation.
4162         (thunderx2t99_alu_basi): Add bfx to reservation.
4163         (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation.
4164
4165 2017-12-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4166
4167         PR target/82248
4168         * config/arm/arm.md (probe_stack) : Use the 'o' constraint.
4169
4170 2017-12-05  Bin Cheng  <bin.cheng@arm.com>
4171
4172         * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from
4173         tree-ssa-pre.c::remove_dead_inserted_code.
4174         * tree-ssa-dce.h: New file.
4175         * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file.
4176         (remove_dead_inserted_code): Move and rename to function
4177         tree-ssa-dce.c::simple_dce_from_worklist.
4178         (pass_pre::execute): Update use.
4179
4180 2017-12-05  Richard Biener  <rguenther@suse.de>
4181
4182         PR tree-optimization/83277
4183         * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
4184         to code-gen liveout vars.
4185
4186 2017-12-05  Richard Sandiford  <richard.sandiford@linaro.org>
4187
4188         * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)
4189         (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P.
4190         (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to
4191         split condition.
4192
4193 2017-12-05  Max Filippov  <jcmvbkbc@gmail.com>
4194
4195         * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
4196         function.
4197         (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
4198         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
4199         ASAN is enabled.
4200
4201 2017-12-05  Richard Biener  <rguenther@suse.de>
4202
4203         * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add.
4204         * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP.
4205         (pass_data_cse_sincos): Use TV_TREE_SINCOS.
4206         (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL.
4207
4208 2017-12-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4209
4210         * dbxout.c (dbxout_block): Grow buf to 30 bytes.
4211
4212 2017-12-05  Martin Liska  <mliska@suse.cz>
4213             Jakub Jelinek  <jakub@redhat.com>
4214
4215         * doc/invoke.texi: Document the options.
4216         * flag-types.h (enum sanitize_code): Add
4217         SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
4218         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
4219         of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
4220         * opts.c: Define new sanitizer options.
4221         * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
4222         (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
4223
4224 2017-12-05  Julia Koval  <julia.koval@intel.com>
4225
4226         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET,
4227         OPTION_MASK_ISA_AVX512VNNI_UNSET): New.
4228         (ix86_handle_option): Handle -mavx512vnni.
4229         * config/i386/cpuid.h (bit_AVX512VNNI): New bit.
4230         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
4231         * config/i386/i386-c (__AVX512VNNI__): New.
4232         * config/i386/i386.c (ix86_target_string): Handle new option.
4233         (ix86_valid_target_attribute_inner_p): Handle new option.
4234         * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New.
4235         * config/i386/i386.opt (mavx512vnni): New option.
4236
4237 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
4238
4239         PR target/81616
4240         * athlon.md: Disable for generic.
4241         * haswell.md: Enable for generic.
4242         * i386.c (ix86_sched_init_global): Add core hooks for generic.
4243         * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
4244         to 4.
4245         (ix86_adjust_cost): Move generic to haswell path.
4246
4247 2017-12-04  Eric Botcazou  <ebotcazou@adacore.com>
4248
4249         * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
4250         instead of MEM_P in a couple more places.  Fix formatting issues.
4251
4252 2017-12-04  Jim Wilson  <jimw@sifive.com>
4253
4254         * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
4255         instead of GP_REG_LAST-1.
4256         (riscv_adjust_libcall_cfi_prologue): Likewise.
4257         (riscv_adjust_libcall_cri_epilogue): Likewise.
4258         * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
4259         comment.
4260
4261 2017-12-04  Luis Machado  <luis.machado@linaro.org>
4262
4263         * ipa-pure-const.c (check_decl): Add missing newline.
4264         (state_from_flags): Likewise.
4265
4266 2017-12-04  Jeff Law  <law@redhat.com>
4267
4268         PR tree-optimizatin/78496
4269         * gimple-ssa-evrp-analyze.h
4270         (evrp_range_analyzer::get_vr_values): Simplify.
4271         * gimple-ssa-evrp-analyze.c: Corresponding changes.
4272         * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
4273         and gimple-ssa-evrp-analyze.h.
4274         (dom_opt_dom_walker class): Add evrp_range_analyzer member.
4275         (simplify_stmt_for_jump_threading): Copy a blob of code from
4276         tree-vrp.c to use ranges to simplify statements.
4277         (dom_opt_dom_walker::before_dom_children): Call
4278         evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
4279         (dom_opt_dom_walker::after_dom_children): Similarly for
4280         evrp_range_analyzer::leave.
4281         (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
4282         conditionals.
4283
4284         * gimple-ssa-evrp-analyze.c
4285         (evrp_range_analyzer::extract_range_from_stmt):  Always use
4286         vr_values::update_value_range so preexisting range info is
4287         medged with new range info, even if the new range is VR_VARYING.
4288
4289 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
4290
4291         * combine.c: Adjust comment.
4292         (use_crosses_set_p): Delete.
4293         (can_combine_p): Use modified_between_p instead of use_crosses_set_p.
4294         (try_combine): Ditto.
4295
4296 2017-12-04  Richard Biener  <rguenther@suse.de>
4297
4298         PR tree-optimization/83255
4299         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
4300         Re-add zero-iteration check.
4301
4302 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
4303
4304         PR rtl-optimization/83245
4305         * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
4306         hard registers as earlyclobber, also if not in an asm.
4307
4308 2017-12-04  Segher Boessenkool  <segher@kernel.crashing.org>
4309
4310         PR bootstrap/83265
4311         Revert
4312         2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4313
4314         PR target/43871
4315         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
4316         rs6000_cpu based on cpu_index, not tune_index.
4317
4318 2017-12-04  Richard Biener  <rguenther@suse.de>
4319
4320         PR tree-optimization/83238
4321         * graphite-scop-detection.c (scop_detection::merge_sese): Make
4322         code match comment, rejecting invalid SESE regions.
4323
4324 2017-12-03  John David Anglin  <danglin@gcc.gnu.org>
4325
4326         * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
4327         require base operand is a REG_POINTER prior to reload on targets
4328         with non-equivalent space registers.
4329
4330 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
4331
4332         * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
4333         (update_specialized_profile): Fix updating of counts.
4334         (perhaps_add_new_callers): Likewise.
4335
4336 2017-12-01  Jan Hubicka  <hubicka@ucw.cz>
4337
4338         PR target/81616
4339         * x86-tune.def: Remove obsolette FIXMEs.
4340         (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
4341         (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
4342         X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
4343         Enable for generic.
4344         (X86_TUNE_PAD_RETURNS): Disable for generic.
4345
4346 2017-12-02  Jakub Jelinek  <jakub@redhat.com>
4347
4348         PR tree-optimization/83170
4349         PR tree-optimization/83241
4350         * gimple-ssa-store-merging.c
4351         (imm_store_chain_info::try_coalesce_bswap): Update vuse field from
4352         gimple_vuse (ins_stmt) in case it has changed.
4353         (imm_store_chain_info::output_merged_store): Likewise.
4354
4355         * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
4356         POINTER_DIFF_EXPR.
4357
4358         PR c++/81212
4359         * tree-cfg.c (pass_warn_function_return::execute): Handle
4360         __builtin_ubsan_handle_missing_return like __builtin_unreachable
4361         with BUILTINS_LOCATION.
4362
4363         PR target/78643
4364         PR target/80583
4365         * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
4366         is BLKmode for vector field with vector raw mode, use TYPE_MODE
4367         instead of DECL_MODE.
4368
4369         * config/i386/i386-protos.h (standard_sse_constant_opcode): Change
4370         last argument to rtx pointer.
4371         * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
4372         with OPERANDS.  For AVX+ 128-bit VEX encoded instructions over 256-bit
4373         or 512-bit.  If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
4374         depending on the chosen ISAs.
4375         * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
4376         *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
4377         *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
4378         callers.
4379         * config/i386/sse.md (mov<mode>_internal): Likewise.
4380         * config/i386/mmx.md (*mov<mode>_internal): Likewise.
4381
4382 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4383
4384         * doc/invoke.texi (-dp): Say that instruction cost is printed as well.
4385
4386 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4387
4388         * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
4389         parameters from prototype.
4390         * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
4391         parameters.  Don't print a comment.
4392         (emit_fusion_gpr_load): Adjust.
4393         (emit_fusion_load_store): Adjust.
4394         * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
4395         * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
4396         comment on the second line.
4397
4398 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4399
4400         PR target/43871
4401         * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
4402         rs6000_cpu based on cpu_index, not tune_index.
4403
4404 2017-12-01  Segher Boessenkool  <segher@kernel.crashing.org>
4405
4406         * final.c (output_asm_name): Print insn_cost.  Shorten output.  Print
4407         which_alternative instead of which_alternative + 1.
4408         (output_asm_insn): Print an extra tab if the template is short.
4409
4410 2017-12-01  Jim Wilson  <jimw@sifive.com>
4411
4412         * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
4413         comment.
4414         * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
4415         * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
4416         reference.
4417         * doc/tm.texi: Regenerate.
4418
4419 2017-12-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
4420
4421         PR target/81959
4422         * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
4423         whether we can allocate pseudos before trying to fix an address.
4424         * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
4425         memory address is indexed or indirect.
4426         (floatuns_<mode>si2_hw2): Likewise.
4427
4428 2017-12-01  Jason Merrill  <jason@redhat.com>
4429
4430         * Makefile.in (TAGS): Add c-family/*.cc.
4431
4432 2017-12-01  Wilco Dijkstra  <wdijkstr@arm.com>
4433
4434         * config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
4435         (call_value_insn): Likewise.
4436         (sibcall_insn): Likewise.
4437         (sibcall_value_insn): Likewise.
4438         (movsi_aarch64): Likewise.
4439         (movdi_aarch64): Likewise.
4440         (add_losym_): Likewise.
4441         (ldr_got_small_): Likewise.
4442         (ldr_got_small_sidi): Likewise.
4443         (ldr_got_small_28k_): Likewise.
4444         (ldr_got_small_28k_sidi): Likewise.
4445         * config/aarch64/aarch64.c (aarch64_print_address_internal):
4446         Move output_addr_const to symbolic case. Add error check.
4447
4448 2017-12-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4449
4450         * config/s390/predicates.md (plus16_Q_operand): New predicate.
4451         * config/s390/s390.md: Disable MVC merging peephole if it would
4452         disable operand forwarding.
4453         (new peephole2): Split MVCs if it would turn them into up to 2
4454         forwardable MVCs.
4455
4456 2017-12-01  Richard Biener  <rguenther@suse.de>
4457
4458         PR tree-optimization/83232
4459         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
4460         detection of same access. Instead of breaking the group here
4461         do not consider the duplicate.  Add comment explaining real fix.
4462
4463 2017-12-01  Jonathan Wakely  <jwakely@redhat.com>
4464
4465         * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo.
4466
4467 2017-12-01  Sudakshina Das  <sudi.das@arm.com>
4468
4469         * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
4470
4471 2017-12-01  Jakub Jelinek  <jakub@redhat.com>
4472
4473         * function.h (struct function): Remove cilk_frame_decl,
4474         is_cilk_function and calls_cilk_spawn fields.
4475         * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk
4476         field.
4477         * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear
4478         cilk_elemental field.
4479         * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field.
4480         * target.def: Adjust comment.
4481         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4482         Don't test cilk_elemental.
4483
4484         PR tree-optimization/83233
4485         * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use
4486         bswap_stat name for the struct.
4487
4488         PR c/79153
4489         * tree.h (SWITCH_BREAK_LABEL_P): Define.
4490         * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
4491         starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
4492         SWITCH_BREAK_LABEL_P set on the label.
4493         (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
4494         added for default case if it was missing and not all cases covered.
4495         Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
4496         switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
4497         set on the label.
4498         * tree-chrec.c (evolution_function_is_univariate_p): Add return true;
4499         to avoid -Wimplicit-fallthrough warning.
4500         * config/i386/i386.c (ix86_expand_special_args_builtin): Add
4501         FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
4502
4503         PR tree-optimization/83221
4504         * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank
4505         down by 16.
4506         (init_reassoc): Formatting fix.
4507
4508         PR sanitizer/81275
4509         * tree-cfg.c (group_case_labels_stmt): Don't optimize away
4510         C++ FE implicitly added __builtin_unreachable () until -Wreturn-type
4511         is diagnosed.
4512
4513         PR sanitizer/83219
4514         * tree-cfg.c: Include asan.h.
4515         (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable.
4516
4517 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4518
4519         * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction.
4520
4521 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4522
4523         * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
4524         vpcmpeqd instruction.
4525
4526 2017-12-01  Sergey Shalnov  <Sergey.Shalnov@intel.com>
4527
4528         * config/i386/i386.c (standard_sse_constant_opcode): Fix
4529         registers type for 128bit mode.
4530
4531 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
4532
4533         * spellcheck-tree.c (test_find_closest_identifier): Use ; instead
4534         of ;;.
4535         * gengtype-state.c (read_state_pair): Likewise.
4536         * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise.
4537         * sel-sched-dump.c (dump_insn_rtx_1): Likewise.
4538         * ipa-cp.c (intersect_aggregates_with_edge): Likewise.
4539         * ifcvt.c (noce_try_store_flag_constants): Likewise.
4540         * tree-ssa-ccp.c (ccp_finalize): Likewise.
4541         * omp-grid.c (grid_process_kernel_body_copy): Likewise.
4542         * builtins.c (fold_builtin_3): Likewise.
4543         * graphite-scop-detection.c
4544         (scop_detection::stmt_has_simple_data_refs_p): Likewise.
4545         * hsa-gen.c (hsa_function_representation::hsa_function_representation):
4546         Likewise.
4547
4548 2017-12-01  Maxim Ostapenko  <m.ostapenko@samsung.com>
4549
4550         PR sanitizer/81697
4551         * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p
4552         parameter. Return true if ignore_decl_rtl_set_p is true and other
4553         conditions are satisfied.
4554         * asan.h (asan_protect_global): Add new parameter.
4555         * varasm.c (categorize_decl_for_section): Pass true as second parameter
4556         to asan_protect_global calls.
4557
4558 2017-11-30  Jim Wilson  <jimw@sifive.com>
4559
4560         * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
4561         -mno-memcpy options.  For -mplt, -mfdiv, -mdiv, -msave-restore, and
4562         -mstrict-align, add info on default value.  Delete redundant lines for
4563         -mabi.  Add missing -mexplicit-relocs docs.
4564
4565 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4566
4567         * config/arc/arc.md (trap): New pattern.
4568
4569 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4570
4571         * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL
4572         instruction to end into a delay slot.
4573         * config/arc/arc.md (cond_delay_insn): Check if the instruction
4574         can be placed into a delay slot against reg_note.
4575
4576 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4577
4578         * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start
4579         labels number of usages.
4580
4581 2017-11-30  Claudiu Zissulescu  <claziss@synopsys.com>
4582
4583         * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New
4584         function.
4585         (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
4586
4587 2017-11-30  Jakub Jelinek  <jakub@redhat.com>
4588
4589         PR target/83210
4590         * internal-fn.c (expand_mul_overflow): Optimize unsigned
4591         multiplication by power of 2 constant into two shifts + comparison.
4592
4593 2017-11-30  Jan Hubicka  <hubicka@ucw.cz>
4594
4595         PR target/81616
4596         * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs.
4597
4598 2017-11-30  Richard Biener  <rguenther@suse.de>
4599
4600         PR tree-optimization/83202
4601         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
4602         allow_peel argument and guard peeling.
4603         (canonicalize_loop_induction_variables): Likewise.
4604         (canonicalize_induction_variables): Pass false.
4605         (tree_unroll_loops_completely_1): Pass unroll_outer to disallow
4606         peeling from cunrolli.
4607
4608 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4609
4610         * combine.c (try_combine): Print a message to dump file whenever
4611         I0, I1, or I2 cannot be combined into I3.
4612
4613 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4614
4615         PR rtl-optimization/83156
4616         PR rtl-optimization/82621
4617         * combine.c (try_combine): Don't split an I2 if one of the dests is
4618         set again before I3.  Allow unused dests.
4619
4620 2017-11-29  Segher Boessenkool  <segher@kernel.crashing.org>
4621
4622         * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New.
4623
4624 2017-11-29  Vladimir Makarov  <vmakarov@redhat.com>
4625
4626         PR rtl-optimization/80818
4627         * lra.c (collect_non_operand_hard_regs): New arg insn.  Pass it
4628         recursively.  Use insn code for clobber.
4629         (lra_set_insn_recog_data): Pass the new arg to
4630         collect_non_operand_hard_regs.
4631         (add_regs_to_insn_regno_info): Pass insn instead of uid.  Use insn
4632         code for clobber.
4633         (lra_update_insn_regno_info): Pass insn to
4634         add_regs_to_insn_regno_info.
4635
4636 2017-11-29  Jim Wilson  <jimw@sifive.com>
4637             Andrew Waterman  <andrew@sifive.com>
4638
4639         * config/riscv/riscv.c (SINGLE_SHIFT_COST): New.
4640         (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return
4641         SINGLE_SHIFT_COST.  Case LT and ZERO_EXTEND, likewise.  Case ASHIFT,
4642         use SINGLE_SHIFT_COST.
4643         * config/riscv/riscv.md (lshrsi3_zero_extend_1): New.
4644         (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New.
4645
4646 2017-11-29  Julia Koval  <julia.koval@intel.com>
4647
4648         * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16,
4649         _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32,
4650         _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64,
4651         _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics.
4652         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16,
4653         _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32,
4654         _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64,
4655         _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16,
4656         _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32,
4657         _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64,
4658         _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto.
4659         * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi,
4660         __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz,
4661         __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
4662         __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
4663         __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
4664         __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask,
4665         __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si,
4666         __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz,
4667         __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask,
4668         __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di,
4669         __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz,
4670         __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
4671         __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
4672         __builtin_ia32_vpshldv_v2di_mask,
4673         __builtin_ia32_vpshldv_v2di_maskz): New builtins.
4674         * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask,
4675         vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns.
4676
4677 2017-11-29  Julia Koval  <julia.koval@intel.com>
4678
4679         * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16,
4680         _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32,
4681         _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
4682         _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics.
4683         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16,
4684         _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32,
4685         _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64,
4686         _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16,
4687         _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32,
4688         _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64,
4689         _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto.
4690         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI,
4691         V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
4692         V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
4693         V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI,
4694         V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
4695         V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
4696         V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types.
4697         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
4698         * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask,
4699         vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern.
4700
4701 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4702
4703         * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
4704         movsi_pic_gotdata_op instruction as a load for the UT699 errata
4705         workaround.
4706
4707 2017-11-29  Martin Aberg  <maberg@gaisler.com>
4708
4709         * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
4710         to prevent b2bst errata sequence.
4711         (sqrtdf2_fix): Likewise.
4712
4713 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4714
4715         * config/sparc/sparc.c (fpop_reg_depend_p): New function.
4716         (div_sqrt_insn_p): New function.
4717         (sparc_do_work_around_errata): Insert NOP instructions to
4718         prevent sequences that could trigger the TN-0013 errata for
4719         certain LEON3 processors.
4720         (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
4721         (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
4722         * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
4723         (in_branch_delay): Prevent div and sqrt in delay slot if
4724         fix_lost_divsqrt.
4725         * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
4726
4727 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4728
4729         * config/sparc/sparc.c (atomic_insn_p): New function.
4730         (sparc_do_work_around_errata): Insert NOP instructions to
4731         prevent sequences that could trigger the TN-0010 errata for
4732         UT700.
4733         * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
4734         instruction referable in atomic_insns_p.
4735
4736 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4737
4738         * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
4739         (atomic_compare_and_swap_leon3_1): Likewise.
4740         (ldstub): Likewise.
4741
4742 2017-11-29  Daniel Cederman  <cederman@gaisler.com>
4743
4744         * config/sparc/sparc.c (fpop_insn_p): New function.
4745         (sparc_do_work_around_errata): Insert NOP instructions to
4746         prevent sequences that could trigger the TN-0012 errata for
4747         GR712RC.
4748         (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
4749         * config/sparc/sparc.md (fix_gr712rc): New attribute.
4750         (in_branch_annul_delay): Prevent floating-point instructions
4751         in delay slot of annulled integer branch.
4752
4753 2017-11-29  Richard Biener  <rguenther@suse.de>
4754
4755         PR tree-optimization/83202
4756         * tree-vect-slp.c (scalar_stmts_set_t): New typedef.
4757         (bst_fail): Use it.
4758         (vect_analyze_slp_cost_1): Add visited set, do not account SLP
4759         nodes vectorized to the same stmts multiple times.
4760         (vect_analyze_slp_cost): Allocate a visited set and pass it down.
4761         (vect_analyze_slp_instance): Adjust.
4762         (scalar_stmts_to_slp_tree_map_t): New typedef.
4763         (vect_schedule_slp_instance): Add a map recording the SLP node
4764         representing the vectorized stmts for a set of scalar stmts.
4765         Avoid code-generating redundancies.
4766         (vect_schedule_slp): Allocate map and pass it down.
4767
4768 2017-11-29  Nathan Sidwell  <nathan@acm.org>
4769
4770         PR c++/83187
4771         * tree.c (build_complex_type): Fix canonicalization.  Only fill in
4772         type if it is new.
4773
4774 2017-11-29  Wilco Dijkstra  <wdijkstr@arm.com>
4775
4776         * config/aarch64/aarch64.c (aarch64_print_operand): Add new
4777         cases for printing LDP/STP memory addresses.
4778         (aarch64_print_address_internal): Renamed from
4779         aarch64_print_operand_address, added parameter, add Pmode check.
4780         (aarch64_print_ldpstp_address): New function for LDP/STP addresses.
4781         (aarch64_print_operand_address): Indirect to
4782         aarch64_print_address_internal.
4783         * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new
4784         'y' operand output specifier.
4785
4786 2017-11-29  Jakub Jelinek  <jakub@redhat.com>
4787
4788         PR middle-end/83185
4789         * tree.c (build_simple_mem_ref_loc): Handle
4790         get_addr_base_and_unit_offset returning a MEM_REF.
4791
4792         PR middle-end/80929
4793         * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost.
4794
4795         PR target/80819
4796         * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
4797         alternative.
4798
4799 2017-11-28  David Malcolm  <dmalcolm@redhat.com>
4800
4801         * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle
4802         m_x_offset.
4803         (layout::move_to_column): Likewise.
4804
4805 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4806
4807         PR sanitizer/81275
4808         * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P
4809         is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()).
4810
4811 2017-11-28  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4812             Martin Jambor  <mjambor@suse.cz>
4813
4814         PR ipa/82808
4815         * tree.h (expr_type_first_operand_type_p): Declare
4816         * tree.c (expr_type_first_operand_type_p): New function.
4817         * ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
4818         (ipa_value_from_jfunc): Adjust declaration.
4819         * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
4820         Use it as result type for arithmetics, unless it is NULL in which case
4821         be more conservative.
4822         (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
4823         ipa_get_jf_pass_through_result.
4824         (propagate_vals_across_pass_through): Likewise.
4825         (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
4826         is to propagate_vals_across_pass_through.
4827         (propagate_constants_across_call): Pass PARM_TYPE to
4828         propagate_scalar_across_jump_function.
4829         (find_more_scalar_values_for_callers_subset): Pass parameter type to
4830         ipa_value_from_jfunc.
4831         (cgraph_edge_brings_all_scalars_for_node): Likewise.
4832         * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
4833         to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
4834         * ipa-prop.c (try_make_edge_direct_simple_call): New parameter
4835         target_type, pass it to ipa_value_from_jfunc.
4836         (update_indirect_edges_after_inlining): Pass parameter type to
4837         try_make_edge_direct_simple_call.
4838
4839 2017-11-28  Jeff Law  <law@redhat.com>
4840
4841         * gimple-ssa-evrp-analyze.c
4842         (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
4843         refine ranges if scev_initialized_p returns true.
4844         * vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
4845
4846 2017-11-28  Julia Koval  <julia.koval@intel.com>
4847
4848         * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
4849         _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
4850         _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
4851         _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
4852         * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
4853         _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
4854         _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
4855         _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
4856         _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
4857         _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
4858         _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
4859         * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
4860         __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
4861         __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
4862         __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
4863         __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
4864         __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
4865         __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
4866         __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
4867         __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
4868         __builtin_ia32_vpshrd_v2di_mask): New builtins.
4869         * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern.
4870
4871 2017-11-28  Julia Koval  <julia.koval@intel.com>
4872
4873         * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16,
4874         _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32,
4875         _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
4876         _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics.
4877         * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16,
4878         _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
4879         _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32,
4880         _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64,
4881         _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16,
4882         _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32,
4883         _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto.
4884         * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT,
4885         V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT,
4886         V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT,
4887         V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT,
4888         V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT,
4889         V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT,
4890         V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT,
4891         V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT,
4892         V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types.
4893         * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi,
4894         __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi,
4895         __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi,
4896         __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si,
4897         __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si,
4898         __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si,
4899         __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di,
4900         __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di,
4901         __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di,
4902         __builtin_ia32_vpshld_v2di_mask): New builtins.
4903         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
4904         * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern.
4905
4906 2017-11-28  Richard Biener  <rguenther@suse.de>
4907
4908         PR tree-optimization/80776
4909         * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
4910         Declare.
4911         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
4912         New function.
4913         (evrp_range_analyzer::record_ranges_from_incoming_edges):
4914         If the incoming edge is an effective fallthru because the other
4915         edge only reaches a __builtin_unreachable () then record ranges
4916         derived from the controlling condition in SSA info.
4917         (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
4918         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
4919
4920 2017-11-28  Olivier Hainque  <hainque@adacore.com>
4921
4922         * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
4923         on mingw build hosts.
4924
4925 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
4926
4927         PR debug/81307
4928         * dbxout.c (dbx_block_with_cold_children): Fix function comment.
4929
4930 2017-11-28  Richard Biener  <rguenther@suse.de>
4931
4932         PR middle-end/83141
4933         * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
4934         copies generated from memcpy use a character array as reference
4935         type.
4936
4937 2017-11-28  Julia Koval  <julia.koval@intel.com>
4938             Sebastian Peryt  <sebastian.peryt@intel.com>
4939
4940         * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o,
4941         c-family/c-cilkplus.o, c-family/array-notation-common.o,
4942         cilk-common.o, cilk.h, cilk-common.c): Remove.
4943         * builtin-types.def
4944         (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
4945         * builtins.c (is_builtin_name): Remove cilkplus condition.
4946         (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
4947         * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
4948         cilk-builtins.def, cilkplus.def): Remove.
4949         * cif-code.def (CILK_SPAWN): Remove.
4950         * cilk-builtins.def: Delete.
4951         * cilk-common.c: Ditto.
4952         * cilk.h: Ditto.
4953         * cilkplus.def: Ditto.
4954         * config/darwin.h (fcilkplus): Delete.
4955         * cppbuiltin.c: Ditto.
4956         * doc/extend.texi: Remove cilkplus doc.
4957         * doc/generic.texi: Ditto.
4958         * doc/invoke.texi: Ditto.
4959         * doc/passes.texi: Ditto.
4960         * gcc.c (fcilkplus): Remove.
4961         * gengtype.c (cilk.h): Remove.
4962         * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus
4963         support.
4964         * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD):
4965         Remove.
4966         * gimplify.c (gimplify_return_expr, maybe_fold_stmt,
4967         gimplify_call_expr,
4968         is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses,
4969         gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove
4970         cilkplus conditions.
4971         * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
4972         inline_read_section): Ditto.
4973         * ipa-inline-analysis.c (cilk.h): Remove.
4974         * ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
4975         * lto-wrapper.c (merge_and_complain, append_compiler_options,
4976         append_linker_options): Remove condition for fcilkplus.
4977         * lto/lto-lang.c (cilk.h): Remove.
4978         (lto_init): Remove condition for fcilkplus.
4979         * omp-expand.c (expand_cilk_for_call): Delete.
4980         (expand_omp_taskreg, expand_omp_for_static_chunk,
4981         expand_omp_for): Remove cilkplus
4982         conditions.
4983         (expand_cilk_for): Delete.
4984         * omp-general.c (omp_extract_for_data): Remove cilkplus support.
4985         * omp-low.c (scan_sharing_clauses, create_omp_child_function,
4986         execute_lower_omp, diagnose_sb_0): Ditto.
4987         * omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
4988         * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4989         * tree-nested.c: Ditto.
4990         * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
4991         (dump_generic_node): Ditto.
4992         * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
4993         * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt):
4994         Delete.
4995         * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
4996
4997 2017-11-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4998
4999         * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT.
5000         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit
5001         for vector mode and !TARGET_SIMD.
5002
5003 2017-11-28  Jakub Jelinek  <jakub@redhat.com>
5004
5005         * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
5006         Adjust comment.
5007         * tree.h (SWITCH_LABELS): Remove.
5008         * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
5009         assert SWITCH_BODY is non-NULL.
5010         * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
5011         handling.
5012         * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
5013
5014         PR tree-optimization/80788
5015         * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
5016         has TREE_OVERFLOW set, call drop_tree_overflow.
5017
5018 2017-11-28  Richard Biener  <rguenther@suse.de>
5019
5020         PR tree-optimization/83158
5021         * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases.
5022
5023 2017-11-28  Segher Boessenkool  <segher@kernel.crashing.org>
5024
5025         PR 81288/target
5026         * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
5027         TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.
5028
5029 2017-11-27  Segher Boessenkool  <segher@kernel.crashing.org>
5030
5031         * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
5032         LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
5033
5034 2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
5035
5036         PR middle_end/82333
5037         * varasm.c (compare_constant): Take the mode of the constants into
5038         account when comparing floating point constants.
5039
5040 2017-11-27  Gerald Pfeifer  <gerald@pfeifer.com>
5041
5042         * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
5043         from explicit instantiation of debug_helper.
5044         * vec.h (DEFINE_DEBUG_VEC): Ditto.
5045
5046 2017-11-27  Richard Biener  <rguenther@suse.de>
5047
5048         * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
5049         refactor a bit.
5050
5051 2017-11-27  Richard Biener  <rguenther@suse.de>
5052
5053         * tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
5054         (type_hash_canon): Also clear int_cst_hash_table entry for
5055         TYPE_MIN/MAX_VALUE.
5056         (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
5057
5058 2017-11-27  Tamar Christina  <tamar.christina@arm.com>
5059
5060         * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
5061         * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
5062         * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
5063
5064 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
5065
5066         * hash-map.h (gt_cleare_cache): Avoid UB.
5067
5068 2017-11-27  Eric Botcazou  <ebotcazou@adacore.com>
5069
5070         * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
5071         * loop-unroll.c (decide_unroll_constant_iterations): Implement it.
5072         (decide_unroll_runtime_iterations): Likewise.
5073         (decide_unroll_stupid): Likewise.
5074
5075 2017-11-27  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
5076
5077         PR target/83109
5078         * config/i386/i386.md: Add a loop with incssp.
5079
5080 2017-11-27  Martin Jambor  <mjambor@suse.cz>
5081
5082         PR tree-optimization/81248
5083         * tree-sra.c (splice_param_accesses): Remove size check.
5084         (decide_one_param_reduction): Fix size check.
5085         * gimple-pretty-print.c (dump_profile): Silence warning.
5086         * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
5087
5088 2017-11-27  Jakub Jelinek  <jakub@redhat.com>
5089
5090         PR debug/81307
5091         * dbxout.c (lastlineno): New variable.
5092         (dbx_debug_hooks): Use dbxout_switch_text_section as
5093         switch_text_section debug hook.
5094         (dbxout_function_end): Switch to current_function_section
5095         rather than function_section.  If crtl->has_bb_partition,
5096         output just one N_FUN, depending on in_cold_section_p.
5097         (dbxout_source_line): Remember last lineno in lastlineno.
5098         (dbxout_switch_text_section): New function.
5099         (dbxout_function_decl): Adjust dbxout_block caller.
5100         (dbx_block_with_cold_children): New function.
5101         (dbxout_block): Return true if any LBRAC/RBRAC have been
5102         emitted.  Use dbx_block_with_cold_children at depth == 0
5103         in second partition.  Add PARENT_BLOCKNUM argument, pass
5104         it optionally adjusted to children.  Output LBRAC/RBRAC
5105         around recursive call only if the block is in the current
5106         partition, if not and anything was output, emit empty
5107         range LBRAC/RBRAC.
5108         * final.c (final_scan_insn): Compute cold_function_name
5109         before calling switch_text_section debug hook.  Call
5110         that hook even if dwarf2out_do_frame if not emitting
5111         dwarf debug info.
5112
5113         PR target/83100
5114         * varasm.c (bss_initializer_p): Return true for DECL_COMMON
5115         TREE_READONLY decls.
5116
5117 2017-11-27  Markus Trippelsdorf  <markus@trippelsdorf.de>
5118
5119         PR rtl-optimization/82488
5120         * expr.c (fixup_args_size_notes): Avoid signed integer overflow.
5121
5122 2017-11-26  Julia Koval  <julia.koval@intel.com>
5123
5124         * config/i386/i386.c (processor_target_table): Add skylake_cost for
5125         skylake-avx512.
5126         * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
5127         skylake_cost): New.
5128
5129 2017-11-26  Julia Koval  <julia.koval@intel.com>
5130
5131         * config/i386/driver-i386.c (host_detect_local_cpu):
5132         Detect skylake-avx512.
5133
5134 2017-11-26  Julia Koval  <julia.koval@intel.com>
5135
5136         * config.gcc: Add -march=cannonlake.
5137         * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
5138         * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
5139         * config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
5140         (PTA_CANNONLAKE): New.
5141         (processor_target_table): Add cannonlake.
5142         (ix86_option_override_internal): Ditto.
5143         (fold_builtin_cpu): Ditto.
5144         (get_builtin_code_for_version): Handle cannonlake.
5145         (M_INTEL_COREI7_CANNONLAKE): New.
5146         * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
5147         * doc/invoke.texi: Add -march=cannonlake.
5148
5149 2017-11-14  Boris Kolpackov  <boris@codesynthesis.com>
5150
5151         * plugin.c (add_new_plugin): Use platform-specific library extensions.
5152         (try_init_one_plugin): Alternative implementation for MinGW.
5153         * Makefile.in (plugin_implib): New.
5154         (gengtype-lex.c): Fix broken AIX workaround.
5155         * configure: Regenerate.
5156         * doc/plugins.texi: Document support for MinGW.
5157
5158 2017-11-25  Jakub Jelinek  <jakub@redhat.com>
5159
5160         PR rtl-optimization/81553
5161         * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
5162         to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
5163         is a shift where C1 has different mode than the whole shift, use C1's
5164         mode for MULT rather than the shift's mode.
5165
5166         PR target/82848
5167         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold
5168         builtins not enabled in the currently selected ISA.
5169
5170 2017-11-24  Jackson Woodruff  <jackson.woodruff@arm.com>
5171
5172         PR tree-optimization/71026
5173         * tree-ssa-math-opts (is_division_by_square, is_square_of): New.
5174         (insert_reciprocals): Change to insert reciprocals before a division
5175         by a square and to insert the square of a reciprocal.
5176         (execute_cse_reciprocals_1): Change to consider division by a square.
5177         (register_division_in): Add importance parameter.
5178
5179 2017-11-24  Richard Biener  <rguenther@suse.de>
5180
5181         PR tree-optimization/82402
5182         * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
5183         set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
5184
5185 2017-11-24  Marc Glisse  <marc.glisse@inria.fr>
5186
5187         * match.pd (0-ptr): New transformation.
5188
5189 2017-11-24  Jan Hubicka  <hubicka@ucw.cz>
5190
5191         PR bootstrap/83015
5192         * ipa-inline.c (inline_small_functions): Set current badnes correctly
5193         when skipping checking.
5194
5195 2017-11-24  Richard Biener  <rguenther@suse.de>
5196
5197         PR tree-optimization/83128
5198         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs.
5199         (vn_reference_lookup_3): Likewise.
5200
5201 2017-11-24  Jakub Jelinek  <jakub@redhat.com>
5202
5203         PR sanitizer/83014
5204         * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
5205         instead of pp_printf with HOST_WIDE_INT_PRINT_DEC.  Avoid calling
5206         tree_to_uhwi twice.
5207
5208         * tree-object-size.c (pass_through_call): Use gimple_call_return_flags
5209         ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
5210         check for the latter with gimple_call_builtin_p.  Do not handle
5211         BUILT_IN_STPNCPY_CHK which is not a pass through call.
5212
5213 2017-11-24  Christophe Lyon  <christophe.lyon@linaro.org>
5214
5215         * config/arm/arm_neon.h: Fix pragma GCC push_options before
5216         vdot_u32.
5217
5218 2017-11-23  Julia Koval  <julia.koval@intel.com>
5219
5220         * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
5221         _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
5222         _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
5223         _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
5224         _mm512_maskz_expandloadu_epi16): New intrinsics.
5225         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
5226         _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
5227         _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
5228         _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
5229         _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
5230         _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
5231         _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
5232         _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
5233         _mm256_maskz_expandloadu_epi8): New intrinsics.
5234         * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
5235         V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
5236         V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
5237         V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
5238         * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
5239         * config/i386/sse.md (VI248_VLBW): New iterator.
5240         (expand<mode>_mask, expand<mode>_maskz): New patterns.
5241
5242 2017-11-23  Julia Koval  <julia.koval@intel.com>
5243
5244         * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
5245         * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
5246         _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
5247         _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
5248         _mm512_mask_compressstoreu_epi16): New.
5249         * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
5250         _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
5251         _mm_mask_compress_epi16, _mm_maskz_compress_epi16,
5252         _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
5253         _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
5254         _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
5255         _mm256_mask_compressstoreu_epi8): New.
5256         * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
5257         VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
5258         VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
5259         VOID_FTYPE_PV8HI_V8HI_UQI): New types.
5260         * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
5261         __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
5262         __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
5263         __builtin_ia32_compresshi128_mask,
5264         __builtin_ia32_compressstoreuqi512_mask,
5265         __builtin_ia32_compressstoreuhi512_mask,
5266         __builtin_ia32_compressstoreuqi256_mask,
5267         __builtin_ia32_compressstoreuqi128_mask,
5268         __builtin_ia32_compressstoreuhi256_mask,
5269         __builtin_ia32_compressstoreuhi128_mask): New builtins.
5270         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
5271         array for flags2.
5272         (ix86_expand_special_args_builtin): Handle new types.
5273         (s4fma_expand): Handle new builtin array.
5274         * config/i386/immintrin.h: Include new headers.
5275         * config/i386/sse.md (VI12_AVX512VLBW): New iterator.
5276         (compress<mode>_mask, compressstore<mode>_mask): New patterns.
5277
5278 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
5279
5280         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
5281         fixes.  Declare temp and g variables at the top in order to avoid
5282         {} in most of the cases.
5283
5284 2017-11-23  Marc Glisse  <marc.glisse@inria.fr>
5285
5286         * match.pd (ptr-0): New transformation.
5287
5288 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
5289
5290         * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
5291         (struct addr_mode_cost_table): New.
5292         (struct tune_params): Add field addr_mode_costs.
5293         * config/arm/arm.c (generic_addr_mode_costs): New.
5294         (arm_slowmul_tune): Initialise addr_mode_costs field.
5295         (arm_fastmul_tune): Likewise.
5296         (arm_strongarm_tune): Likewise.
5297         (arm_xscale_tune): Likewise.
5298         (arm_9e_tune): Likewise.
5299         (arm_marvell_pj4_tune): Likewise.
5300         (arm_v6t2_tune): Likewise.
5301         (arm_cortex_tune): Likewise.
5302         (arm_cortex_a8_tune): Likewise.
5303         (arm_cortex_a7_tune): Likewise.
5304         (arm_cortex_a15_tune): Likewise.
5305         (arm_cortex_a35_tune): Likewise.
5306         (arm_cortex_a53_tune): Likewise.
5307         (arm_cortex_a57_tune): Likewise.
5308         (arm_exynosm1_tune): Likewise.
5309         (arm_xgene1_tune): Likewise.
5310         (arm_cortex_a5_tune): Likewise.
5311         (arm_cortex_a9_tune): Likewise.
5312         (arm_cortex_a12_tune): Likewise.
5313         (arm_cortex_a73_tune): Likewise.
5314         (arm_v7m_tune): Likewise.
5315         (arm_cortex_m7_tune): Likewise.
5316         (arm_v6m_tune): Likewise.
5317         (arm_fa726te_tune): Likewise.
5318         (arm_mem_costs): Use table lookup to calculate cost of addressing mode.
5319
5320 2017-11-23  Charles Baylis  <charles.baylis@linaro.org>
5321
5322         * config/arm/arm.c (arm_mem_costs): New function.
5323         (arm_rtx_costs_internal): Use arm_mem_costs.
5324
5325 2017-11-23  Mark Wielaard  <mark@klomp.org>
5326
5327         * dwarf2out.c (init_sections_and_labels): Use generation to create
5328         unique ranges_section_label and ranges_base_label. Return generation.
5329         (output_rnglists): Add generation argument. Use generation to create
5330         unique ranges labels.
5331         (dwarf2out_finish): Get generation from init_sections_and_labels
5332         and pass generation to output_rnglists.
5333
5334 2017-11-23  Mike Stump  <mikestump@comcast.net>
5335             Eric Botcazou  <ebotcazou@adacore.com>
5336
5337         * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand.
5338         * cfgloop.h (struct loop): Add unroll field.
5339         * function.h (struct function): Add has_unroll bitfield.
5340         * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind.
5341         (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand.
5342         * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll.
5343         (pass_rtl_unroll_loops::gate): Likewise.
5344         * loop-unroll.c (decide_unrolling): Tweak note message.  Skip loops
5345         for which loop->unroll==1.
5346         (decide_unroll_constant_iterations): Use note for consistency and
5347         take loop->unroll into account.  Return early if loop->unroll is set.
5348         Fix thinko in existing test.
5349         (decide_unroll_runtime_iterations): Use note for consistency and
5350         take loop->unroll into account.
5351         (decide_unroll_stupid): Likewise.
5352         * lto-streamer-in.c (input_cfg): Read loop->unroll.
5353         * lto-streamer-out.c (output_cfg): Write loop->unroll.
5354         * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>:
5355         New case.
5356         (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise.
5357         (print_loop): Print loop->unroll if set.
5358         * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind.
5359         * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll.
5360         * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>:
5361         New case.
5362         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if
5363         loop->unroll is set and smaller than the trip count.  Otherwise bypass
5364         entirely the heuristics if loop->unroll is set.  Remove dead note.
5365         Fix off-by-one bug in other note.
5366         (try_peel_loop): Bail out if loop->unroll is set.  Fix formatting.
5367         (tree_unroll_loops_completely_1): Force unrolling if loop->unroll
5368         is greater than 1.
5369         (tree_unroll_loops_completely): Make static.
5370         (pass_complete_unroll::execute): Use correct type for variable.
5371         (pass_complete_unrolli::execute): Fix formatting.
5372         * tree.def (ANNOTATE_EXPR): Add 3rd operand.
5373
5374 2017-11-23  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5375
5376         * config/i386/i386.h (TARGET_PREFER_AVX256): Also
5377         enable when TARGET_PREFER_AVX128 is set.
5378
5379 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
5380
5381         * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of
5382         frequency.
5383         * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies.
5384         (cgraph_edge::maybe_hot_p): Use sreal frequencies.
5385
5386 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
5387
5388         * ipa-fnsummary.c (record_modified_bb_info): Use sreal
5389         frequencies. Fix estimation of aggregate parameters.
5390
5391 2017-11-23  Jan Hubicka  <hubicka@ucw.cz>
5392
5393         * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile
5394         when inlining.
5395
5396 2017-11-23  Tom de Vries  <tom@codesourcery.com>
5397
5398         * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)".
5399
5400 2017-11-23  Tom de Vries  <tom@codesourcery.com>
5401
5402         * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after
5403         macro.
5404
5405 2017-11-23  Oleg Endo  <olegendo@gcc.gnu.org>
5406
5407         PR target/83111
5408         * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
5409         sibcall_value_pcrel_fdpic): Use local variable instead of
5410         operands[3].
5411         (calli_tbr_rel): Add missing operand 2.
5412         (call_valuei_tbr_rel): Add missing operand 3.
5413
5414 2017-11-23  Jakub Jelinek  <jakub@redhat.com>
5415
5416         PR middle-end/82253
5417         * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
5418         bitpos/bitsize covering the whole destination, use store_expr only if
5419         the complex mode is the same.  Otherwise, use expand_normal and if
5420         it returns CONCAT, subreg each part separately instead of trying to
5421         subreg the whole result.
5422
5423 2017-11-23  Richard Biener  <rguenther@suse.de>
5424
5425         PR tree-optimization/23094
5426         * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we
5427         come here from walking over backedges in the first iteration.
5428         (vn_reference_lookup_3): Skip clobbers that store the same value.
5429
5430 2017-11-23  Richard Biener  <rguenther@suse.de>
5431
5432         PR tree-optimization/81403
5433         * tree-ssa-pre.c (get_representative_for): Add parameter specifying
5434         a block we need a leader relative to.
5435         (phi_translate_1): For nary processing require a leader from
5436         get_representative_for given we run expression simplification
5437         using match-and-simplify.  Remove previous fix.
5438
5439 2017-11-22  Jeff Law  <law@redhat.com>
5440
5441         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
5442         Use new method allocate_value_range rather than accessing the
5443         vrp_value_range_pool data member directly.
5444         * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
5445         to use extract_range_from_stmt method to avoid need for
5446         extract_range_from_assignment method.
5447         (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
5448         method rather than setting values_propgated data member directly.
5449         * vr-values.h (class vr_values): Privatize vrp_value_range_pool,
5450         and values propagated data members and extract_range_from_assignment
5451         method.  Reorder private data members to conform to standards.
5452         Add new methods set_lattice_propagation_complete and
5453         allocate_value_range.
5454
5455 2017-11-22  Eric Botcazou  <ebotcazou@adacore.com>
5456
5457         PR rtl-optimization/83030
5458         * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry
5459         for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs.
5460         (Insns): Delete entry for REG_CROSSING_JUMP in register notes.
5461         * bb-reorder.c (update_crossing_jump_flags): Do not test whether the
5462         CROSSING_JUMP_P flag is already set before setting it.
5463         * cfgrtl.c (fixup_partition_crossing): Likewise.
5464         * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P
5465         insn as useless.
5466
5467 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
5468
5469         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>:
5470         Handle the case where both arguments are using gen_const_vec_series.
5471
5472 2017-11-22  David Malcolm  <dmalcolm@redhat.com>
5473
5474         PR c++/62170
5475         * pretty-print.c (pp_format): Move quoting implementation to
5476         pp_begin_quote and pp_end_quote.  Update pp_format_decoder call
5477         to pass address of "quote" local.
5478         (pp_begin_quote): New function.
5479         (pp_end_quote): New function.
5480         * pretty-print.h (printer_fn): Convert penultimate param from bool
5481         to bool *.
5482         (pp_begin_quote): New decl.
5483         (pp_end_quote): New decl.
5484         * tree-diagnostic.c (default_tree_printer): Convert penultimate
5485         param from bool to bool *.
5486         * tree-diagnostic.h (default_tree_printer): Likewise.
5487
5488 2017-11-22  Jeff Law  <law@redhat.com>
5489
5490         * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
5491         Initialize vr_values.
5492         (evrp_range_analyzer::try_find_new_range): Call methods attached to
5493         vr_values via vr_values class instance rather than delegators.
5494         (evrp_range_analyzer::record_ranges_from_phis): Likewise.
5495         (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
5496         (evrp_range_analyzer::push_value_range): Likewise.
5497         (evrp_range_analyzer::pop_value_range): Likewise.
5498         * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
5499         most delegators.  Those remaining are exposed as public interfaces.
5500         Make vr_values a pointer and private.
5501         (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
5502         vr_values.
5503         (evrp_range_analyzer::get_vr_value): New method.
5504         * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
5505         (evrp_folder::evrp_folder): New ctor to initialize vr_values.
5506         (class evrp_dom_walker): Attach evrp_folder class, initialize
5507         it in the ctor.  Remove temporary delegators.
5508         (evrp_dom_walker::before_dom_children): Call methods in attached
5509         evrp_range_analyzer class via class instance pointer.  Use
5510         free value_range_constant_singleton to remove need for
5511         op_with_constant_singleton_value delegator method.  Do not
5512         create a vrp_prop class instance for every call!  Narrow
5513         scope of a couple variables.
5514         (evrp_dom_walker::cleanup): Call methods in attached
5515         evrp_range_analyzer class via class instance pointer.
5516         * vr-values.h (class vr_values): Privatize many methods and
5517         data members.
5518
5519 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5520
5521         * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete.
5522         * cfgexpand.c (expand_debug_expr): Remove handling for them.
5523         * expr.c (expand_expr_real_2): Likewise.
5524         * fold-const.c (const_unop): Likewise.
5525         * optabs-tree.c (optab_for_tree_code): Likewise.
5526         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
5527         * tree-inline.c (estimate_operator_cost): Likewise.
5528         * tree-pretty-print.c (dump_generic_node): Likewise.
5529         (op_code_prio): Likewise.
5530         (op_symbol_code): Likewise.
5531         * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define.
5532         (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions.
5533         * internal-fn.c (direct_internal_fn_optab): New function.
5534         (direct_internal_fn_array, direct_internal_fn_supported_p
5535         (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN.
5536         * fold-const-call.c (fold_const_reduction): New function.
5537         (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and
5538         CFN_REDUC_MIN.
5539         * tree-vect-loop.c: Include internal-fn.h.
5540         (reduction_code_for_scalar_code): Rename to...
5541         (reduction_fn_for_scalar_code): ...this and return an internal
5542         function.
5543         (vect_model_reduction_cost): Take an internal_fn rather than
5544         a tree_code.
5545         (vect_create_epilog_for_reduction): Likewise.  Build calls rather
5546         than assignments.
5547         (vectorizable_reduction): Use internal functions rather than tree
5548         codes for the reduction operation.  Update calls to the functions
5549         above.
5550         * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
5551         Use calls to internal functions rather than REDUC tree codes.
5552         * config/aarch64/aarch64-simd.md: Update comment accordingly.
5553
5554 2017-11-22  Olivier Hainque  <hainque@adacore.com>
5555
5556         * config/vxworks.c (vxworks_override_options): Pick default
5557         dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT.
5558         * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and
5559         DWARF_GNAT_ENCODINGS_DEFAULT.
5560         * config/vxworksae.h: Likewise.
5561
5562 2017-11-22  Marc Glisse  <marc.glisse@inria.fr>
5563
5564         PR tree-optimization/83104
5565         * vr-values.c (simplify_stmt_using_ranges): Check integral argument,
5566         not result.
5567
5568 2017-11-22  Marek Polacek  <polacek@redhat.com>
5569             H.J. Lu  <hongjiu.lu@intel.com>
5570             Jason Merrill  <jason@redhat.com>
5571
5572         PR c++/60336
5573         PR middle-end/67239
5574         PR target/68355
5575         * calls.c (initialize_argument_information): Call
5576         warn_parameter_passing_abi target hook.
5577         (store_one_arg): Use 0 for empty record size.  Don't push 0 size
5578         argument onto stack.
5579         (must_pass_in_stack_var_size_or_pad): Return false for empty types.
5580         * common.opt: Update -fabi-version description.
5581         * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
5582         (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
5583         int_size_in_bytes.
5584         (ix86_is_empty_record): New function.
5585         (ix86_warn_parameter_passing_abi): New function.
5586         (TARGET_EMPTY_RECORD_P): Redefine.
5587         (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
5588         * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
5589         * doc/tm.texi: Regenerated.
5590         * doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
5591         TARGET_WARN_PARAMETER_PASSING_ABI): Add.
5592         * dwarf2out.c (get_ultimate_context): Move to tree.c.
5593         * explow.c (hard_function_value): Call arg_int_size_in_bytes
5594         instead of int_size_in_bytes.
5595         * expr.c (copy_blkmode_to_reg): Likewise.
5596         * function.c (aggregate_value_p): Return 0 for empty types.
5597         (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi
5598         target hook.
5599         (locate_and_pad_parm): Call arg size_in_bytes instead
5600         size_in_bytes.
5601         * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
5602         * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
5603         * target.def (empty_record_p, warn_parameter_passing_abi): New target
5604         hooks.
5605         * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
5606         (std_gimplify_va_arg_expr): Skip empty records.  Call
5607         arg_size_in_bytes instead size_in_bytes.
5608         * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
5609         * tree-core.h (tree_type_common): Add empty_flag.
5610         (tree_decl_common): Update comments.
5611         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
5612         DECL_PADDING_P.
5613         (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
5614         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
5615         DECL_PADDING_P.
5616         (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
5617         * tree.c (default_is_empty_type): New function.
5618         (default_is_empty_record): New function.
5619         (arg_int_size_in_bytes): New function.
5620         (arg_size_in_bytes): New function.
5621         (get_ultimate_context): New function.
5622         * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
5623         TRANSLATION_UNIT_WARN_EMPTY_P.
5624         (default_is_empty_record, arg_int_size_in_bytes,
5625         arg_size_in_bytes, get_ultimate_context): Declare.
5626
5627 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5628
5629         * config/arm/arm.c (cmse_clear_registers): New function.
5630         (cmse_nonsecure_call_clear_caller_saved): Replace register clearing
5631         code by call to cmse_clear_registers.
5632         (cmse_nonsecure_entry_clear_before_return): Likewise.
5633
5634 2017-11-22  Tamar Christina  <tamar.christina@arm.com>
5635
5636         * config/arm/arm_neon.h (vdot_u32, vdotq_u32)
5637         (vdot_s32, vdotq_s32): New.
5638         (vdot_lane_u32, vdotq_lane_u32): New.
5639         (vdot_lane_s32, vdotq_lane_s32): New.
5640
5641
5642 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5643
5644         PR middle-end/82547
5645         * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
5646         for unsigned values with fewer HWIs than the precision.
5647         (test_overflow): New function.
5648         (wide_int_cc_tests): Call it.
5649
5650 2017-11-22  Richard Sandiford  <richard.sandiford@linaro.org>
5651
5652         * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
5653         has the same mode class as Pmode.
5654
5655 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5656
5657         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of
5658         padding_bits_to_clear_ptr.
5659         (cmse_nonsecure_entry_clear_before_return): Likewise.
5660
5661 2017-11-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5662
5663         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use
5664         auto_sbitap instead of integer bitfield to control register needing
5665         clearing.
5666
5667 2017-11-22  Jakub Jelinek  <jakub@redhat.com>
5668
5669         PR tree-optimization/83044
5670         * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
5671         INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
5672         that need the upper bound.  Subtract offset from
5673         get_addr_base_and_unit_offset only if positive and subtract it
5674         before division by eltsize rather than after it.
5675
5676         PR debug/83084
5677         * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
5678         debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
5679         (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
5680         asm.
5681
5682         PR middle-end/82875
5683         * optabs.c (expand_doubleword_mult, expand_binop): Before calling
5684         expand_binop with *mul_widen_optab, make sure at least one of the
5685         operands doesn't have VOIDmode.
5686
5687         PR debug/83034
5688         * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.
5689
5690         PR rtl-optimization/82044
5691         PR tree-optimization/82042
5692         * dse.c (record_store): Check for overflow.
5693         (check_mem_read_rtx): Properly check for overflow if width == -1, call
5694         add_wild_read instead of clear_rhs_from_active_local_stores on
5695         overflow and log it into dump_file.
5696
5697 2017-11-22  Richard Biener  <rguenther@suse.de>
5698
5699         * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore
5700         fake edges to exit when looking for a place to insert.
5701         * tree-ssa-pre.c (clear_expression_ids): Inline into callers
5702         and remove.
5703         (insert_into_preds_of_block): Commit edge insertion immediately,
5704         assert that doesn't require new BBs.
5705         (fini_pre): Release expressions.
5706         (pass_pre::execute): Shuffle things around a bit, if the fn
5707         is too large do not compute AVAIL either as this is really the
5708         quadratic bit.
5709
5710 2017-11-22  Richard Biener  <rguenther@suse.de>
5711
5712         PR tree-optimization/83089
5713         * tree-if-conv.c (pass_if_conversion::execute): If anything
5714         changed reset SCEV and free the number of iteration estimates.
5715
5716 2017-11-21  Martin Sebor  <msebor@redhat.com>
5717
5718         PR tree-optimization/82945
5719         * calls.h (warn_nonstring_bound): Remove unused function.
5720
5721 2017-11-21  Martin Sebor  <msebor@redhat.com>
5722
5723         PR tree-optimization/82945
5724         * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
5725         * calls.h (maybe_warn_nonstring_arg): Declare new function.
5726         * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
5727         functions.
5728         (initialize_argument_information): Call maybe_warn_nonstring_arg.
5729         * calls.h (get_attr_nonstring_decl): Declare new function.
5730         * doc/extend.texi (attribute nonstring): Update.
5731         * gimple-fold.c (gimple_fold_builtin_strncpy): Call
5732         get_attr_nonstring_decl and handle it.
5733         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same.  Improve
5734         detection of nul-termination.
5735         (strlen_to_stridx): Change to a pointer.
5736         (handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
5737         (pass_strlen::execute): Same.
5738
5739 2017-11-21  Sergey Shalnov  <Sergey.Shalnov@intel.com>
5740
5741         * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum
5742         for the new option -mprefer-vector-width=[none|128|256|512].
5743         * config/i386/i386.c (ix86_target_string): remove old style options
5744         -mprefer-avx256 and make -mprefer-avx128 as alias.
5745         (ix86_option_override_internal):  Apply defaults for the
5746         -mprefer-vector-width=[128|256] option.
5747         * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256):
5748         Implement macros to work with -mprefer-vector-width=.
5749         * config/i386/i386.opt: Implemented option
5750         -mprefer-vector-width=[none|128|256|512].
5751         * doc/invoke.texi: Documentation for
5752         -mprefer-vector-width=[none|128|256|512].
5753
5754 2017-11-21  Pat Haugen  <pthaugen@us.ibm.com>
5755
5756         * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
5757
5758 2017-11-21  Jonathan Wakely  <jwakely@redhat.com>
5759
5760         * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.
5761
5762 2017-11-21  Marc Glisse  <marc.glisse@inria.fr>
5763
5764         * doc/generic.texi: Document POINTER_DIFF_EXPR, update
5765         POINTER_PLUS_EXPR.
5766         * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
5767         * expr.c (expand_expr_real_2): Likewise.
5768         * fold-const.c (const_binop, fold_addr_of_array_ref_difference,
5769         fold_binary_loc): Likewise.
5770         * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
5771         P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
5772         (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
5773         MINUS_EXPR transformations.
5774         * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
5775         * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
5776         * tree-inline.c (estimate_operator_cost): Likewise.
5777         * tree-pretty-print.c (dump_generic_node, op_code_prio,
5778         op_symbol_code): Likewise.
5779         * tree-vect-stmts.c (vectorizable_operation): Likewise.
5780         * vr-values.c (extract_range_from_binary_expr): Likewise.
5781         * varasm.c (initializer_constant_valid_p_1): Likewise.
5782         * tree.def: New tree code POINTER_DIFF_EXPR.
5783
5784 2017-11-21  Uros Bizjak  <ubizjak@gmail.com>
5785
5786         * config/i386/i386.md (*bswap<mode>2_movbe): Add
5787         integer suffix to movbe mnemonic.
5788         (*bswaphi2_movbe): Ditto.
5789         (bswaphi_lowpart): Merge with *bswaphi_lowpart_1.
5790
5791 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5792
5793         PR c++/83045
5794         * tree-cfg.c (pass_warn_function_return::execute): Formatting fix.
5795         Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION.
5796         Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION.
5797
5798 2017-11-21  Martin Liska  <mliska@suse.cz>
5799
5800         * tree-inline.c (expand_call_inline): Remove not needed
5801         xstrdup_for_dump.
5802
5803 2017-11-21  James Cowgill  <James.Cowgill@imgtec.com>
5804             Jakub Jelinek  <jakub@redhat.com>
5805
5806         PR target/82880
5807         * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
5808         Remove static keyword from f variable.
5809
5810 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5811
5812         PR tree-optimization/83086
5813         * gimple-ssa-store-merging.c
5814         (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr
5815         rather than n.base_addr.
5816
5817 2017-11-21  Martin Liska  <mliska@suse.cz>
5818
5819         PR rtl-optimization/82044
5820         PR tree-optimization/82042
5821         * dse.c (check_mem_read_rtx): Check for overflow.
5822
5823 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5824
5825         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix
5826         typo in comment.
5827
5828 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5829
5830         * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
5831         and its corresponding call arg location note.
5832
5833 2017-11-21  Claudiu Zissulescu  <claziss@synopsys.com>
5834             Andrew Burgess  <andrew.burgess@embecosm.com>
5835
5836         * config/arc/arc-protos.h (arc_compute_frame_size): Delete
5837         declaration.
5838         (arc_return_slot_offset): Likewise.
5839         (arc_eh_return_address_location): New declaration.
5840         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
5841         (MUST_SAVE_REGISTER): Add exception handler case.
5842         (MUST_SAVE_RETURN_ADDR): Likewise.
5843         (arc_frame_pointer_required): Likewise.
5844         (arc_frame_pointer_needed): New function.
5845         (arc_compute_frame_size): Changed.
5846         (arc_expand_prologue): Likewise.
5847         (arc_expand_epilogue): Likewise.
5848         (arc_initial_elimination_offset): Likewise.
5849         (arc_return_slot_offset): Delete.
5850         (arc_eh_return_address_location): New function.
5851         (arc_builtin_setjmp_frame_value): Likewise.
5852         * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers.
5853         (EH_RETURN_STACKADJ_RTX): Define.
5854         (EH_RETURN_HANDLER_RTX): Likewise.
5855         * config/arc/arc.md (eh_return): Delete.
5856
5857 2017-11-21  Aldy Hernandez  <aldyh@redhat.com>
5858
5859         * print-tree.h (debug_vec_tree): Remove prototype.
5860         * gdbinit.in (pvt): Remove macro.
5861
5862 2017-11-21  Jakub Jelinek  <jakub@redhat.com>
5863
5864         PR tree-optimization/83047
5865         * gimple-ssa-store-merging.c
5866         (imm_store_chain_info::output_merged_store): If the loads with the
5867         same vuse are in different basic blocks, for load_gsi pick a load
5868         location that is dominated by the other loads.
5869
5870         PR c++/83059
5871         * config/i386/i386.c (ix86_memmodel_check): Start
5872         -Winvalid-memory-model diagnostics with lowercase letter.
5873
5874         PR debug/82718
5875         * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily
5876         set in_cold_section_p to the partition containing loc_list->first.
5877         When seeing loc_list->last_before_switch node, update secname and
5878         perform range_across_switch second partition handling only after that.
5879
5880         PR debug/82933
5881         * run-rtl-passes.c: Include debug.h.
5882         (run_rtl_passes): Call debug_hooks->assembly_start.
5883         * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
5884         multiple times.
5885
5886         PR target/82981
5887         * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
5888         OPTAB_DIRECT in calls to expand_simple_binop.
5889
5890 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5891
5892         PR c/81404
5893         * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o.
5894
5895 2017-11-20  David Malcolm  <dmalcolm@redhat.com>
5896
5897         PR c++/72786
5898         * spellcheck.h (best_match::blithely_get_best_candidate): New
5899         accessor.
5900
5901 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5902
5903         * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics
5904         with lower case letter.
5905
5906 2017-11-20  Uros Bizjak  <ubizjak@gmail.com>
5907
5908         * config/i386/i386.md (bswaphi2): New expander.
5909         (*bswaphi2_movbe): New insn pattern.
5910         (bswaphi -> rorhi pepehole2): New peephole pattern.
5911
5912 2017-11-20  Jeff Law  <law@redhat.com>
5913
5914         * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o.
5915         * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c.
5916         * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c.
5917         * gimple-ssa-evrp.c: Remove bits moved into new files.  Include
5918         gimple-ssa-evrp-analyze.h.
5919
5920         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not
5921         set BB_VISITED here.
5922         (evrp_range_analyzer::enter): Set BB_VISITED here instead.
5923
5924 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5925
5926         * tree-predcom.c: Add general comment on Store-Store chains.
5927         (split_data_refs_to_components): Postpone clearing eliminate_store_p
5928         flag in component.
5929         (get_chain_last_ref_at): Rename into...
5930         (get_chain_last_write_at): ...this.
5931         (get_chain_last_write_before_load): New function.
5932         (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to
5933         CT_STORE_STORE when write reference is added.
5934         (determine_roots_comp): Support load ref in CT_STORE_STORE chains.
5935         (is_inv_store_elimination_chain): Update get_chain_last_write_at call.
5936         (initialize_root_vars_store_elim_1): Ditto.
5937         (initialize_root_vars_store_elim_2): Ditto.  Replace rhs once default
5938         definition is created.
5939         (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE
5940         chain by replacing it with dominant stored value.
5941
5942 2017-11-20  Bin Cheng  <bin.cheng@arm.com>
5943
5944         * tree-predcom.c (add_ref_to_chain): Remove check on distance.
5945
5946 2017-11-20  Marc Glisse  <marc.glisse@inria.fr>
5947
5948         * vr-values.c (extract_range_from_binary_expr): Use a full range
5949         for VR_VARYING.
5950
5951 2017-11-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
5952
5953         * config/arm/arm.md (R4_REGNUM): Define constant.
5954         (nonsecure_call_internal): Remove r4 clobber.
5955         (nonsecure_call_value_internal): Likewise.
5956         * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second
5957         clobber and resequence match_operands.
5958         (nonsecure_call_value_reg_thumb1_v5): Likewise.
5959         * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise.
5960         (nonsecure_call_value_reg_thumb2): Likewise.
5961
5962 2017-11-20  Jakub Jelinek  <jakub@redhat.com>
5963
5964         PR tree-optimization/78821
5965         * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up
5966         if base is TARGET_MEM_REF.  If base is not MEM_REF, set base_addr
5967         to the address of the base rather than the base itself.
5968         (find_bswap_or_nop_1): Just use pointer comparison for vuse check.
5969         (find_bswap_or_nop_finalize): New function.
5970         (find_bswap_or_nop): Use it.
5971         (bswap_replace): Return a tree rather than bool, change first
5972         argument from gimple * to gimple_stmt_iterator, allow inserting
5973         into an empty sequence, allow ins_stmt to be NULL - then emit
5974         all stmts into gsi.  Fix up MEM_REF address gimplification.
5975         (pass_optimize_bswap::execute): Adjust bswap_replace caller.
5976         (struct store_immediate_info): Add N and INS_STMT non-static
5977         data members.
5978         (store_immediate_info::store_immediate_info): Initialize them
5979         from newly added ctor args.
5980         (merged_store_group::apply_stores): Formatting fixes.  Sort by
5981         bitpos at the end.
5982         (stmts_may_clobber_ref_p): For stores call also
5983         refs_anti_dependent_p.
5984         (gather_bswap_load_refs): New function.
5985         (imm_store_chain_info::try_coalesce_bswap): New method.
5986         (imm_store_chain_info::coalesce_immediate_stores): Use it.
5987         (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially.
5988         (imm_store_chain_info::output_merged_store): Fail if number of
5989         new estimated stmts is bigger or equal than old.  Handle LROTATE_EXPR
5990         and NOP_EXPR rhs_code.
5991         (pass_store_merging::process_store): Compute n and ins_stmt, if
5992         ins_stmt is non-NULL and the store rhs is otherwise invalid, use
5993         LROTATE_EXPR rhs_code.  Pass n and ins_stmt to store_immediate_info
5994         ctor.
5995         (pass_store_merging::execute): Calculate dominators.
5996
5997         * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number,
5998         BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP,
5999         CMPXCHG, do_shift_rotate, verify_symbolic_number_p,
6000         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
6001         find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap,
6002         class pass_optimize_bswap, bswap_replace,
6003         pass_optimize_bswap::execute): Moved to ...
6004         * gimple-ssa-store-merging.c: ... this file.
6005         Include optabs-tree.h.
6006         (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p,
6007         init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
6008         find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into
6009         anonymous namespace, remove static keywords.
6010         (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here...
6011         (pass_optimize_bswap::execute): ... rather than here.  Formatting fix.
6012
6013 2017-11-20  Jan Hubicka  <hubicka@ucw.cz>
6014
6015         PR bootstrap/83062
6016         * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch.
6017
6018 2017-11-20  Aldy Hernandez  <aldyh@redhat.com>
6019
6020         * vec.h (debug_helper): New function.
6021         (DEFINE_DEBUG_VEC): New macro.
6022         * hash-set.h (debug_helper): New function.
6023         (DEFINE_DEBUG_HASH_SET): New macro.
6024         * cfg.c (debug_slim (edge)): New function.
6025         Call DEFINE_DEBUG_VEC for edges.
6026         Call DEFINE_DEBUG_HASH_SET for edges.
6027         * cfghooks.c (debug_slim (basic_block)): New function.
6028         Call DEFINE_DEBUG_VEC for basic blocks.
6029         Call DEFINE_DEBUG_HASH_SET for basic blocks.
6030         * print-tree.c (debug_slim): New function to handle trees.
6031         Call DEFINE_DEBUG_VEC for trees.
6032         Call DEFINE_DEBUG_HASH_SET for trees.
6033         (debug (vec<tree, va_gc>) &): Remove.
6034         (debug (<vec<tree, va_gc>) *): Remove.
6035         * print-rtl.c (debug_slim): New function to handle const_rtx.
6036         Call DEFINE_DEBUG_VEC for rtx_def.
6037         Call DEFINE_DEBUG_VEC for rtx_insn.
6038         Call DEFINE_DEBUG_HASH_SET for rtx_def.
6039         Call DEFINE_DEBUG_HASH_SET for rtx_insn.
6040         * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove.
6041         (debug (vec<rtx_insn *> *ptr): Remove.
6042         (debug_insn_vector): Remove.
6043         * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree.
6044
6045 2017-11-20  Tom de Vries  <tom@codesourcery.com>
6046
6047         PR rtl-optimization/82020
6048         * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of
6049         IF_THEN_ELSE condition.
6050
6051 2017-11-19  Jeff Law  <law@redhat.com>
6052
6053         * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
6054         of degenerates resulting from ignoring an edge.
6055
6056 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
6057
6058         PR ipa/81360
6059         * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized
6060
6061 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
6062
6063         PR ipa/83001
6064         * profile-count.c (profile_count::to_sreal_scale): Fix return value
6065         for uninitialied counts.
6066
6067 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
6068
6069         PR ipa/60243
6070         * tree-inline.c (estimate_num_insns): Set to 1 at least.
6071
6072 2017-11-19  Jan Hubicka  <hubicka@ucw.cz>
6073
6074         PR target/82713
6075         * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types.
6076
6077 2017-11-19  Tom de Vries  <tom@codesourcery.com>
6078
6079         * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after
6080         "do while (0)".
6081
6082 2017-11-19  Tom de Vries  <tom@codesourcery.com>
6083
6084         * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after
6085         "do {} while (0)".
6086
6087 2017-11-19  Tom de Vries  <tom@codesourcery.com>
6088
6089         * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after
6090         macro body.
6091
6092 2017-11-19  Tom de Vries  <tom@codesourcery.com>
6093
6094         * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after
6095         "do {} while (0)".
6096         * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same.
6097
6098 2017-11-19  Tom de Vries  <tom@codesourcery.com>
6099
6100         * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after
6101         "do {} while (0)".
6102         * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing
6103         semicolon after MCORE_EXPORT_NAME call.
6104
6105 2017-11-19  Tom de Vries  <tom@codesourcery.com>
6106
6107         PR target/82961
6108         * vmsdbgout.c (vmsdbgout_early_finish): New function.
6109         (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish.
6110
6111 2017-11-18  Jan Hubicka  <hubicka@ucw.cz>
6112
6113         * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count.
6114         (cgraph_edge::clone): Cleanup updating of profile.
6115         * ipa-cp.c (update_profiling_info): Likewise.
6116         * ipa-inline-transform.c (inline_transform): Likewise.
6117         * ipa-inline.c (inline_small_functions): Add missing space to dump.
6118         * ipa-split.c (execute_split_functions): Do not split when function
6119         is cold.
6120         * predict.c (estimate_bb_frequencies): Cleanup updating of profile.
6121         * profile-count.c (profile_count::dump): Add global0.
6122         (profile_count::to_cgraph_frequency): Do not ICE when entry is
6123         undefined.
6124         (profile_count::to_sreal_scale): Likewise.
6125         (profile_count::adjust_for_ipa_scaling): Fix typo in comment.
6126         (profile_count::combine_with_ipa_count): New function.
6127         * profile-count.h (profile_guessed_global0adjusted): New.
6128         (profile_count::adjusted_zero): New.
6129         (profile_count::global0adjusted): New.
6130         (profile_count::combine_with_ipa_count): New.
6131         * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment;
6132         correct profile of return block of split functions.
6133         (copy_cfg_body): Remove unused profile_count.
6134         (copy_body): Likewise.
6135         (expand_call_inline): Update.
6136         (tree_function_versioning): Update.
6137
6138 2017-11-18  Aldy Hernandez  <aldyh@redhat.com>
6139
6140         * hash-set.h (hash_set::empty): New.
6141         * tree-ssa-threadbackward.h: Delete.
6142         * tree-ssa-threadbackward.c (class thread_jumps): New.
6143         Move max_threaded_paths into class.
6144         (fsm_find_thread_path): Remove arguments that are now in class.
6145         (profitable_jump_thread_path): Rename to...
6146         (thread_jumps::profitable_jump_thread_path): ...this.
6147         (convert_and_register_jump_thread_path): Rename to...
6148         (thread_jumps::convert_and_register_current_path): ...this.
6149         (check_subpath_and_update_thread_path): Rename to...
6150         (thread_jumps::check_subpath_and_update_thread_path): ...this.
6151         (register_jump_thread_path_if_profitable): Rename to...
6152         (thread_jumps::register_jump_thread_path_if_profitable): ...this.
6153         (handle_phi): Rename to...
6154         (thread_jumps::handle_phi): ...this.
6155         (handle_assignment): Rename to...
6156         (thread_jumps::handle_assignment): ...this.
6157         (fsm_find_control_statement_thread_paths): Rename to...
6158         (thread_jumps::fsm_find_control_statement_thread_paths): ...this.
6159         (find_jump_threads_backwards): Rename to...
6160         (thread_jumps::find_jump_threads_backwards): ...this.
6161         Initialize path local data.
6162         (pass_thread_jumps::execute): Call find_jump_threads_backwards
6163         from within thread_jumps class.
6164         (pass_early_thread_jumps::execute): Same.
6165
6166 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6167
6168         * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts.
6169
6170 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
6171
6172         * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator
6173         to canonical location.
6174
6175 2017-11-17  Steve Ellcey  <sellcey@cavium.com>
6176
6177         PR target/81356
6178         * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p):
6179         Remove.
6180         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define.
6181
6182 2017-11-17  H.J. Lu  <hongjiu.lu@intel.com>
6183
6184         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
6185         rcrt1.o%s/grcrt1.o%s for -static-pie.
6186
6187 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6188
6189         * i386.c (ix86_multiplication_cost, ix86_division_cost,
6190         ix86_shift_rotate_cost): Break out from ...
6191         (ix86_rtx_costs): ... here.
6192         (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of
6193         vector operations.
6194
6195 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6196
6197         * predict.c (determine_unlikely_bbs): Set cgraph node count to 0
6198         when entry block was promoted unlikely.
6199         (estimate_bb_frequencies): Increase frequency scale.
6200         * profile-count.h (profile_count): Export precision info.
6201
6202 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6203
6204         * tree-tailcall.c (eliminate_tail_call): Be more careful about not
6205         disturbin profile of entry block.
6206
6207 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6208
6209         * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for
6210         roundoff errors.
6211
6212 2017-11-17  Jan Hubicka  <hubicka@ucw.cz>
6213
6214         * ipa-cp.c (update_profiling_info): Handle conversion to local profile.
6215         * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does.
6216
6217 2017-11-17  Jeff Law  <law@redhat.com>
6218
6219         * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted
6220         from evrp_dom_walker class.  Various methods moved into new class.
6221         (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class.
6222         (evrp_range_analyzer::enter): New method.
6223         (evrp_range_analyzer::leave): New method.
6224         (evrp_dom_walker): Remove delegators no longer needed by this class.
6225         Replace vr_values data member with evrp_range_analyzer
6226
6227         * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New
6228         method extracted from evrp_dom_walker::before_dom_children.
6229         (evrp_dom_walker::record_ranges_from_stmt): Likewise.
6230         (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise.
6231
6232         * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method.
6233         Add private copy constructor and move assignment operators.
6234         Privatize methods and class data where trivially possible.
6235         (evrp_dom_walker::cleanup): New function, extracted from
6236         execute_early_vrp.  Simplify access to class data.
6237
6238         * vr-values.h (get_output_for_vrp): Prototype.
6239         * vr-values.c (get_output_for_vrp): New function extracted from
6240         vrp_visit_assignment_or_call and extract_range_from_stmt.
6241         (vrp_visit_assignment_or_call): Use get_output_for_vrp.  Simplify.
6242
6243 2017-11-17  Luis Machado  <luis.machado@linaro.org>
6244
6245         * config/aarch64/aarch64.c
6246         (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1.
6247         (qdf24xx_tunings) <autoprefetcher_model>: Set to
6248         tune_params::AUTOPREFETCHER_WEAK.
6249
6250 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
6251
6252         PR target/82641
6253         * config/arm/arm.c (arm_valid_target_attribute_rec):
6254         Parse "arch=" and "+<ext>".
6255         (arm_valid_target_attribute_tree): Re-init global options.
6256         (arm_option_override): Make non-static.
6257         (arm_options_perform_arch_sanity_checks): Make errors fatal.
6258         * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef.
6259         (__ARM_FEATURE_CRC32): Support undef.
6260         * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma.
6261         * doc/extend.texi (ARM Function Attributes): Add pragma and target.
6262
6263 2017-11-17  David Malcolm  <dmalcolm@redhat.com>
6264
6265         * gdbinit.in (break-on-diagnostic): New command.
6266
6267 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
6268
6269         * config/i386/i386.c (ix86_expand_epilogue): Change simple
6270         return to indirect jump for EH return if control-flow
6271         protection is enabled. Change explicit 'false' argument in
6272         pro_epilogue_adjust_stack with a value of
6273         flag_cf_protection.
6274         * config/i386/i386.md (simple_return_indirect_internal):
6275         Remove SImode restriction to support 64-bit.
6276
6277 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
6278
6279         * combine.c (added_notes_insn): New.
6280         (try_combine): Handle added_notes_insn like added_links_insn.
6281         Rewrite return value code.
6282         (distribute_notes): Set added_notes_insn to the earliest insn we added
6283         a note to.
6284
6285 2017-11-17  Segher Boessenkool  <segher@kernel.crashing.org>
6286
6287         PR rtl-optimization/82621
6288         * combine.c (try_combine): Do not split PARALLELs of two SETs if the
6289         dest of one of those SETs is unused.
6290
6291 2017-11-17  Richard Biener  <rguenther@suse.de>
6292
6293         PR fortran/83017
6294         * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
6295         * tree-pretty-print.c (dump_generic_node): Handle
6296         annot_expr_parallel_kind.
6297         * tree-cfg.c (replace_loop_annotate_in_block): Likewise.
6298         * gimplify.c (gimple_boolify): Likewise.
6299
6300 2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
6301
6302         * config.gcc (extra_headers): Add cet.h for x86 targets.
6303         * config/i386/cet.h: New file.
6304         * doc/install.texi: Add --enable-cet/--disable-cet.
6305
6306 2017-11-17  Richard Biener  <rguenther@suse.de>
6307
6308         PR tree-optimization/83017
6309         * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread.
6310         (gen_parallel_loop): Properly count iterations.
6311         (parallelize_loops): Handle loop->can_be_parallel independent
6312         of flag_loop_parallelize_all.  Make static profitability test match
6313         the runtime one.
6314         * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New.
6315         * invoke.texi (parloops-min-per-thread): Document.
6316
6317 2017-11-17  Vineet Gupta  <vgupta@synopsys.com>
6318
6319         * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
6320         upstreaming review comments.
6321
6322 2017-11-17  Tamar Christina  <tamar.christina@arm.com>
6323
6324         * expr.c (copy_blkmode_to_reg): Fix bitsize for targets
6325         with fast unaligned access.
6326         * doc/sourcebuild.texi (word_mode_no_slow_unalign): New.
6327
6328 2017-11-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6329
6330         * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate
6331         to_clear_arg_regs_bitmap to the same size as to_clear_bitmap.
6332
6333 2017-11-17  Richard Biener  <rguenther@suse.de>
6334
6335         * tree-ssa-pre.c (phi_translate_1): Remove redundant constant
6336         folding of references.
6337
6338 2017-11-17  Qing Zhao  <qing.zhao@oracle.com>
6339
6340         PR middle-end/78809
6341         * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling
6342         of replacing call to strncmp with corresponding call to strcmp when
6343         meeting conditions.
6344
6345 2017-11-17  Sergey Shalnov  <Sergey.Shalnov@intel.com>
6346
6347         * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning
6348         option prefer-avx256 for skylake-avx512 configuration.
6349         * config/i386/i386.c (ix86_option_override_internal): Ditto.
6350         (get_builtin_code_for_version): Ditto.
6351
6352 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
6353             Monk Chiang  <sh.chiang04@gmail.com>
6354
6355         * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify.
6356         (FIXED_REGISTERS): Reserve more register numbers.
6357         (CALL_USED_REGISTERS): Likewise.
6358         (REG_ALLOC_ORDER): Likewise.
6359         (REG_CLASS_CONTENTS): Likewise.
6360         (REGISTER_NAMES): Likewise.
6361
6362 2017-11-17  Chung-Ju Wu  <jasonwucj@gmail.com>
6363             Kito Cheng  <kito.cheng@gmail.com>
6364
6365         * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI
6366         V2SI.
6367         * config/nds32/iterators.md: Add vector mode iterators and attributes.
6368
6369 2017-11-16  Steven Munroe  <munroesj@gcc.gnu.org>
6370
6371         * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct
6372         parameter list for vec_splats.
6373
6374 2017-11-16  Joseph Myers  <joseph@codesourcery.com>
6375
6376         * doc/invoke.texi (-std=c17): Refer to 2018 expected publication
6377         date of C17.
6378         (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases.
6379
6380 2017-11-16  Thomas Koenig  <tkoenig@gcc.gnu.org>
6381
6382         PR bootstrap/82856
6383         * doc/install.texi: Document incompatibility of Perl >=5.6.26
6384         with the required version of automake 1.11.6.
6385
6386 2017-11-16  Pat Haugen  <pthaugen@us.ibm.com>
6387
6388         * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined
6389         for it.
6390         (DU_C2_3_power9): Correct reservation combinations.
6391         (FP_DIV_power9, VEC_DIV_power9): New.
6392         (power9-alu): Split out rotate/shift...
6393         (power9-rot): ...to here, correct dispatch resource.
6394         (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch
6395         resource.
6396         (power9-fp): Correct latency.
6397         (power9-sdiv): Add div/sqrt resource.
6398         (power9-ddiv): Correct latency, add div/sqrt resource.
6399         (power9-sqrt, power9-dsqrt): Add div/sqrt resource.
6400         (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt
6401         resource.
6402         (power9-qpdiv, power9-qpmul): Adjust resource usage.
6403
6404 2017-11-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
6405
6406         * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the
6407         switch statement mapping KF built-ins to TF built-ins if we don't
6408         have the proper ISA 3.0 assembler support.
6409
6410 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6411
6412         * tree-emutls.c (lower_emutls_data): Remove unused bb_freq.
6413         (lower_emutls_function_body): Do not compute it.
6414
6415 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6416
6417         * ipa-split.c (split_bb_info): Turn time to sreal.
6418         (split_point): Likewise.
6419         (dump_split_point): Likewise.
6420         (fine_split_points): Likewise.
6421         (execute_split_functions): Only zero split_bbs; turn time to sreals.
6422
6423 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6424
6425         * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently
6426         in sreal.
6427
6428 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6429
6430         * predict.c (combine_predictions_for_bb): Preserve zero predicted
6431         edges.
6432         (expensive_function_p): Remove useless assert.
6433         (determine_unlikely_bbs): Propagate also forward; determine cold blocks
6434
6435 2017-11-16  Martin Sebor  <msebor@redhat.com>
6436
6437         PR tree-optimization/82588
6438         PR tree-optimization/82583
6439         * tree-vrp.c (check_array_ref): Handle flexible array members,
6440         string literals, and inner indices.
6441         (search_for_addr_array): Add detail to diagnostics.
6442
6443 2017-11-16  Nathan Sidwell  <nathan@acm.org>
6444
6445         PR c++/82836
6446         PR c++/82737
6447         * tree.h (COPY_DECL_RTL): Rename parms for clarity.
6448         (SET_DECL_ASSEMBLER_NAME): Forward to
6449         overwrite_decl_assembler_name.
6450         (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity.
6451         (overwrite_decl_assembler_name): Declare.
6452         * tree.c (overwrite_decl_assembler_name): New.
6453         * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare.
6454         (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default.
6455         (LANG_HOOKS_INITIALIZER): Add it.
6456         * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name.
6457         * langhooks.c (lhd_set_decl_assembler_name): Use
6458         SET_DECL_ASSEMBLER_NAME.
6459         (lhd_overwrite_decl_assembler_name): Default implementation.
6460
6461 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
6462             Jackson Woodruff  <jackson.woodruff@arm.com>
6463
6464         PR tree-optimization/71026
6465         * match.pd: Canonicalize constant multiplies in division.
6466
6467 2017-11-16  Wilco Dijkstra  <wdijkstr@arm.com>
6468
6469         * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
6470         * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
6471         Remove OPT_fomit_frame_pointer entry.
6472         * common/config/arc/arc-common.c: Likewise.
6473         * common/config/arm/arm-common.c: Likewise.
6474         * common/config/avr/avr-common.c: Likewise.
6475         * common/config/c6x/c6x-common.c: Likewise.
6476         * common/config/cr16/cr16-common.c: Likewise.
6477         * common/config/cris/cris-common.c: Likewise.
6478         * common/config/epiphany/epiphany-common.c: Likewise.
6479         * common/config/fr30/fr30-common.c: Likewise.
6480         * common/config/frv/frv-common.c: Likewise.
6481         * common/config/ia64/ia64-common.c: Likewise.
6482         * common/config/iq2000/iq2000-common.c: Likewise.
6483         * common/config/lm32/lm32-common.c: Likewise.
6484         * common/config/m32r/m32r-common.c: Likewise.
6485         * common/config/mcore/mcore-common.c: Likewise.
6486         * common/config/microblaze/microblaze-common.c: Likewise.
6487         * common/config/mips/mips-common.c: Likewise.
6488         * common/config/mmix/mmix-common.c: Likewise.
6489         * common/config/mn10300/mn10300-common.c: Likewise.
6490         * common/config/nios2/nios2-common.c: Likewise.
6491         * common/config/pa/pa-common.c: Likewise.
6492         * common/config/pdp11/pdp11-common.c: Likewise.
6493         * common/config/powerpcspe/powerpcspe-common.c: Likewise.
6494         * common/config/riscv/riscv-common.c: Likewise.
6495         * common/config/rs6000/rs6000-common.c: Likewise.
6496         * common/config/rx/rx-common.c: Likewise.
6497         * common/config/s390/s390-common.c: Likewise.
6498         * common/config/sh/sh-common.c: Likewise.
6499         * common/config/sparc/sparc-common.c: Likewise.
6500         * common/config/tilegx/tilegx-common.c: Likewise.
6501         * common/config/tilepro/tilepro-common.c: Likewise.
6502         * common/config/v850/v850-common.c: Likewise.
6503         * common/config/visium/visium-common.c: Likewise.
6504         * common/config/xstormy16/xstormy16-common.c: Likewise.
6505         * common/config/xtensa/xtensa-common.c: Likewise.
6506         * invoke.texi (-fomit-frame-pointer): Update documentation.
6507
6508 2017-11-16  Jan Hubicka  <hubicka@ucw.cz>
6509
6510         * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq.
6511
6512 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6513
6514         * cfg.c (scale_bbs_frequencies_int,
6515         cale_bbs_frequencies_gcov_type): Remove.
6516         * cfg.h (scale_bbs_frequencies_int,
6517         cale_bbs_frequencies_gcov_type): Remove.
6518
6519 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6520
6521         * tree-ssa-loop-manip.c
6522         (scale_dominated_blocks_in_loop): Update to profile counts.
6523         (tree_transform_and_unroll_loop): Likewise.
6524
6525 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6526
6527         * tree-vect-loop-manip.c (vect_do_peeling): Do not use
6528         scale_bbs_frequencies_int.
6529
6530 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6531
6532         * final.c (compute_alignments): Use counts rather than frequencies.
6533
6534 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6535
6536         * cfgloopanal.c: Include sreal.h
6537         (average_num_loop_insns): Use counts and sreal for accounting.
6538
6539 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6540
6541         * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
6542         manipulation.
6543
6544 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6545             Kito Cheng  <kito.cheng@gmail.com>
6546
6547         * config/nds32/constraints.md: Provide more constraints.
6548         * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
6549         REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
6550         support constraints usage.
6551
6552 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6553
6554         * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
6555
6556 2017-11-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6557             Kito Cheng  <kito.cheng@gmail.com>
6558
6559         * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string.
6560         * config/nds32/nds32.opt: Refine the layout.
6561         * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2,
6562         TARGET_EXT_STRING): Support new options.
6563         * config/nds32/nds32.h: Likewise.
6564         * config/nds32/nds32.md: Likewise.
6565         * config/nds32/nds32-predicates.c: Likewise.
6566         * config/nds32/constraints.md: Likewise.
6567         * common/config/nds32/nds32-common.c: Likewise.
6568
6569 2017-11-16  Julia Koval  <julia.koval@intel.com>
6570
6571         PR target/82983
6572         * config/i386/gfniintrin.h: Add sse check.
6573         * config/i386/i386.c (ix86_expand_builtin): Fix gfni check.
6574
6575 2017-11-16  Julia Koval  <julia.koval@intel.com>
6576
6577         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET,
6578         OPTION_MASK_ISA_AVX512VBMI2_UNSET): New.
6579         (ix86_handle_option): Handle -mavx512vbmi2.
6580         * config/i386/cpuid.h: Add bit_AVX512VBMI2.
6581         * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
6582         * config/i386/i386-c.c (__AVX512VBMI2__): New.
6583         * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2.
6584         (ix86_valid_target_attribute_inner_p): Ditto.
6585         * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New.
6586         * config/i386/i386.opt (mavx512vbmi2): New option.
6587         * doc/invoke.texi: Add new option.
6588
6589 2017-11-16  Julia Koval  <julia.koval@intel.com>
6590
6591         * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8,
6592         _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8,
6593         _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8,
6594         _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8,
6595         _mm512_gf2p8mul_epi8): New intrinsics.
6596         * config/i386/i386-builtin-types.def
6597         (V64QI_FTYPE_V64QI_V64QI): New type.
6598         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi,
6599         __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi,
6600         __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi,
6601         __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins.
6602         * config/i386/sse.md (vgf2p8mulb_*): New pattern.
6603         * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
6604
6605 2017-11-15  Uros Bizjak  <ubizjak@gmail.com>
6606
6607         * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
6608         explicitly as a stream of bytes.
6609
6610 2017-11-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6611
6612         * config/rs6000/altivec.h (vec_xst_be): New #define.
6613         * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename
6614         and externalize from *altivec_vperm_<mode>_internal.
6615         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro
6616         instantiation.
6617         (XL_BE_V8HI): Likewise.
6618         (XL_BE_V4SI): Likewise.
6619         (XL_BE_V4SI): Likewise.
6620         (XL_BE_V2DI): Likewise.
6621         (XL_BE_V4SF): Likewise.
6622         (XL_BE_V2DF): Likewise.
6623         (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation.
6624         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct
6625         all array entries with these keys: VSX_BUILTIN_VEC_XL,
6626         VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST.  Add entries for key
6627         VSX_BUILTIN_VEC_XST_BE.
6628         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove.
6629         (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_*
6630         built-ins.
6631         (altivec_init_builtins): Replace conditional calls to def_builtin
6632         for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and
6633         __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR
6634         with unconditional calls.  Remove calls to def_builtin for
6635         __builtin_vsx_le_be_<mode>.  Add a call to def_builtin for
6636         __builtin_vec_xst_be.
6637         * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn
6638         to define_expand, and add alternate RTL generation for P8.
6639         (*vsx_ld_elemrev_v8hi_internal): New define_insn based on
6640         vsx_ld_elemrev_v8hi.
6641         (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and
6642         add alternate RTL generation for P8.
6643         (*vsx_ld_elemrev_v16qi_internal): New define_insn based on
6644         vsx_ld_elemrev_v16qi.
6645         (vsx_st_elemrev_v8hi): Convert define_insn
6646         to define_expand, and add alternate RTL generation for P8.
6647         (*vsx_st_elemrev_v8hi_internal): New define_insn based on
6648         vsx_st_elemrev_v8hi.
6649         (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and
6650         add alternate RTL generation for P8.
6651         (*vsx_st_elemrev_v16qi_internal): New define_insn based on
6652         vsx_st_elemrev_v16qi.
6653
6654 2017-11-15  H.J. Lu  <hongjiu.lu@intel.com>
6655
6656         PR target/82990
6657         * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove
6658         TARGET_AVX512ER check.
6659         (ix86_option_override_internal): Set MASK_VZEROUPPER if
6660         neither -mzeroupper nor -mno-zeroupper is used and
6661         TARGET_EMIT_VZEROUPPER is set.
6662         * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New.
6663         * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER.
6664
6665 2017-11-15  Will Schmidt  <will_schmidt@vnet.ibm.com>
6666
6667         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
6668         folding of vector compares.
6669         (fold_build_vec_cmp): New helper function.
6670         (fold_compare_helper): New helper function.
6671         (builtin_function_type): Add compare builtins to the list of functions
6672         having unsigned arguments.  Cosmetic updates to comment indentation.
6673         * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify
6674         the not+eq combination.
6675
6676 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
6677
6678         PR tree-optimization/82726
6679         PR tree-optimization/70754
6680         * tree-predcom.c (order_drefs_by_pos): New function.
6681         (combine_chains): Move code setting has_max_use_after to...
6682         (try_combine_chains): ...here.  New parameter.  Sort combined chains
6683         according to position information.
6684         (tree_predictive_commoning_loop): Update call to above function.
6685         (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
6686
6687 2017-11-15  Bin Cheng  <bin.cheng@arm.com>
6688
6689         PR tree-optimization/82726
6690         Revert
6691         2017-01-23  Bin Cheng  <bin.cheng@arm.com>
6692
6693         PR tree-optimization/70754
6694         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
6695         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
6696         combined stmt before it if not NULL.
6697         (combine_chains): Process refs reversely and compute dominance point
6698         for root ref.
6699
6700         Revert
6701         2017-02-23  Bin Cheng  <bin.cheng@arm.com>
6702
6703         PR tree-optimization/79663
6704         * tree-predcom.c (combine_chains): Process refs in reverse order
6705         only for ZERO length chains, and add explaining comment.
6706
6707 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
6708
6709         * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New
6710         * config/arm/arm-tables.opt (armv8.3-a): Regenerated.
6711         * doc/invoke.texi (ARM Options): Add armv8.3-a.
6712
6713 2017-11-15  Tamar Christina  <tamar.christina@arm.com>
6714
6715         * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2.
6716
6717 2017-11-15  Martin Liska  <mliska@suse.cz>
6718
6719         * tree-cfg.c (pass_warn_function_return::execute):
6720         Compare warn_return_type for greater than zero.
6721
6722 2017-11-15  Sebastian Peryt  <sebastian.peryt@intel.com>
6723
6724         PR target/82941
6725         PR target/82942
6726         * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
6727         to return true on Xeon and not on Xeon Phi.
6728         (ix86_check_avx256_register): Changed to ...
6729         (ix86_check_avx_upper_register): ... this. Add extra check for
6730         VALID_AVX512F_REG_OR_XI_MODE.
6731         (ix86_avx_u128_mode_needed): Changed
6732         ix86_check_avx256_register to ix86_check_avx_upper_register.
6733         (ix86_check_avx256_stores): Changed to ...
6734         (ix86_check_avx_upper_stores): ... this. Changed
6735         ix86_check_avx256_register to ix86_check_avx_upper_register.
6736         (ix86_avx_u128_mode_after): Changed
6737         avx_reg256_found to avx_upper_reg_found. Changed
6738         ix86_check_avx256_stores to ix86_check_avx_upper_stores.
6739         (ix86_avx_u128_mode_entry): Changed
6740         ix86_check_avx256_register to ix86_check_avx_upper_register.
6741         (ix86_avx_u128_mode_exit): Ditto.
6742         * config/i386/i386.h: (host_detect_local_cpu): New define.
6743
6744 2017-11-15  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
6745
6746         * config/arm/xgene1.md (xgene1): Split into automatons
6747         xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd.
6748         (xgene1_f_load): Adjust reservations and/or types.
6749         (xgene1_f_store): Likewise.
6750         (xgene1_load_pair): Likewise.
6751         (xgene1_store_pair): Likewise.
6752         (xgene1_fp_load1): Likewise.
6753         (xgene1_load1): Likewise.
6754         (xgene1_store1): Likewise.
6755         (xgene1_move): Likewise.
6756         (xgene1_alu): Likewise.
6757         (xgene1_simd): Likewise.
6758         (xgene1_bfm): Likewise.
6759         (xgene1_neon_load1): Likewise.
6760         (xgene1_neon_store1): Likewise.
6761         (xgene1_neon_logic): Likewise.
6762         (xgene1_neon_st1): Likewise.
6763         (xgene1_neon_ld1r): Likewise.
6764         (xgene1_alu_cond): Added.
6765         (xgene1_shift_reg): Likwise.
6766         (xgene1_bfx): Likewise.
6767         (xgene1_mul): Split into xgene1_mul32, xgene1_mul64.
6768
6769 2017-11-15  Jakub Jelinek  <jakub@redhat.com>
6770
6771         PR target/82981
6772         * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
6773         ssa-iterators.h.
6774         (can_widen_mult_without_libcall): New function.
6775         (expand_mul_overflow): If only checking unsigned mul overflow,
6776         not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
6777         Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
6778         no other way works.  Add MULT_HIGHPART_EXPR + MULT_EXPR support.
6779         (expand_DIVMOD): Formatting fix.
6780         * expmed.h (expand_mult): Add NO_LIBCALL argument.
6781         * expmed.c (expand_mult): Likewise.  Use OPTAB_WIDEN rather
6782         than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.
6783
6784         PR tree-optimization/82977
6785         * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy
6786         constructed temporary to strlen_to_stridx.put.
6787
6788 2017-11-15  Martin Liska  <mliska@suse.cz>
6789
6790         * configure.ac: Remove -fkeep-inline-functions from coverage_flags.
6791         * configure: Regenerate.
6792
6793 2017-11-15  Martin Liska  <mliska@suse.cz>
6794
6795         PR target/82927
6796         * config/sh/sh-mem.cc: Use proper probability for
6797         REG_BR_PROB_NOTE.
6798
6799 2017-11-14  Jeff Law  <law@redhat.com>
6800
6801         * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing
6802         the red zone for stack_clash_protection_final_dynamic_probe targets
6803         when the total dynamic stack size is zero bytes.
6804
6805         * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread
6806         blocks is post order.
6807
6808 2017-11-15  Alexandre Oliva  <aoliva@redhat.com>
6809
6810         * dumpfile.h (TDF_COMPARE_DEBUG): New.
6811         * final.c (rest_of_clean_state): Set it for the
6812         -fcompare-debug dump.
6813         * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF
6814         class when TDF_COMPARE_DEBUG is set.
6815
6816         * dwarf2out.c (gen_producer_string): Discard
6817         OPT_fcompare_debug.
6818
6819 2017-11-15  Joseph Myers  <joseph@codesourcery.com>
6820
6821         PR c/81156
6822         * doc/extend.texi (Other Builtins): Document __builtin_tgmath.
6823         * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
6824         (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
6825         (__TGMATH_REAL_2_3): Remove macros.
6826         (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
6827         (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
6828         __builtin_tgmath.
6829         (frexp, ldexp, nexttoward, scalbn, scalbln): Define using
6830         __TGMATH_REAL_2.
6831         (remquo): Define using __TGMATH_REAL_3.
6832
6833 2017-11-14  Jeff Law  <law@redhat.com>
6834
6835         * vr-values.c: New file with contents extracted from tree-vrp.c.
6836         * Makefile.in (OBJS): Add vr-values.o
6837         * tree-vrp.h (set_value_range_to_nonnull): Prototype.
6838         (set_value_range, set_and_canonicalize_value_range): Likewise.
6839         (vrp_bitmap_equal_p, range_is_nonnull): Likewise.
6840         (value_range_constant_singleton, symbolic_range_p): Likewise.
6841         (compare_values, compare_values_warnv, vrp_val_is_min): Likewise.
6842         (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise.
6843         (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise.
6844         (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise.
6845         (find_case_label_range, find_case_label_index): Likewise.
6846         (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise.
6847         (range_int_cst_singleton_p, value_inside_range): Likewise.
6848         (get_single_symbol): Likewise.
6849         (switch_update): Move structure definition here.
6850         (to_remove_edges, to_update_switch_stmts): Provide externs.
6851         * tree-vrp.c: Move all methods for vr-values class to vr-values.c
6852         (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible.
6853         (vrp_val_is_min, set_value_range): Likewise.
6854         (set_and_canonicalize_value_range, copy_value_range): Likewise.
6855         (set_value_range_to_value, set_value_range_to_nonnull): Likewise.
6856         (set_value_range_to_null, vrp_bitmap_equal_p): Likewise.
6857         (range_is_nonnull, range_int_cst_p): Likewwise.
6858         (range_int_cst_singleton_p, symbolic_range_p): Likewise.
6859         (get_single_symbol, operand_less_p): Likewise
6860         (compare_values_warnv, compare_values): Likewise.
6861         (value_inside_range, value_range_constant_singleton): Likewise.
6862         (zero_nonzero_bitgs_from_vr): Likewise.
6863         (extract_range_from_binary_expr_1): Likewise.
6864         (overflow_comparison_p): Likewise.
6865         (to_remove_edges, to_update_switch_stmts): Likewise.
6866         (find_case_label-index, find_case_label_range): Likewise.
6867         (switch_update, set_value_range_to_nonnegative): Remove.
6868         (set_value_range_to_truthvalue): Likewise.
6869         (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise.
6870         (gimple_stmt_nonzero_p, compare_ranges): Likewise.
6871         (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise.
6872         (find_case_label_ranges, test_for_singularity): Likewise.
6873         (range_fits_type_p, simplify_conversion_using_ranges): LIkewise.
6874         (x_vr_values): Move to its remaining use site.
6875
6876 2017-11-10  Jeff Law  <law@redhat.com>
6877
6878         * vr-values.h (VR_INITIALIZER): Move #define here.
6879         * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
6880         * Makefile.in (OBJS): Add tree-evrp.o
6881         * tree-vrp.h (assert_info): Move structure definition here.
6882         (set_value_range_to_varying): Prototype.
6883         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6884         (infer_value_range, register_edge_assert_for): Likewise.
6885         (stmt_interesting_for_vrp): Likewise.
6886         * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c.
6887         (set_value_range_to_varying): No longer static.
6888         (vrp_operand_equal_p, range_includes_zero_p): Likewise.
6889         (infer_value_range, register_edge_assert_for): Likewise.
6890
6891 2017-11-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
6892
6893         * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't
6894         generate the XXBRD instruction.
6895
6896         * config/rs6000/rs6000-c.c (is_float128_p): New helper function.
6897         (rs6000_builtin_type_compatible): Treat _Float128 and long double
6898         as being compatible if -mabi=ieeelongdouble.
6899         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros
6900         to setup float128 built-ins with hardware support.
6901         (BU_FLOAT128_HW_2): Likewise.
6902         (BU_FLOAT128_HW_3): Likewise.
6903         (BU_FLOAT128_HW_VSX_1): Likewise.
6904         (BU_FLOAT128_HW_VSX_2): Likewise.
6905         (scalar_extract_expq): Change float128 built-in functions to
6906         accommodate having both KFmode and TFmode functions.  Use the
6907         KFmode variant as the default.
6908         (scalar_extract_sigq): Likewise.
6909         (scalar_test_neg_qp): Likewise.
6910         (scalar_insert_exp_q): Likewise.
6911         (scalar_insert_exp_qp): Likewise.
6912         (scalar_test_data_class_qp): Likewise.
6913         (sqrtf128_round_to_odd): Delete processing the round to odd
6914         built-in functions as special built-in functions, and define them
6915         as float128 built-ins.  Use the KFmode variant as the default.
6916         (truncf128_round_to_odd): Likewise.
6917         (addf128_round_to_odd): Likewise.
6918         (subf128_round_to_odd): Likewise.
6919         (mulf128_round_to_odd): Likewise.
6920         (divf128_round_to_odd): Likewise.
6921         (fmaf128_round_to_odd): Likewise.
6922         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
6923         support for KFmode and TFmode xststdcqp calls.
6924         (rs6000_expand_builtin): If long double is IEEE 128-bit floating
6925         point, switch the built-in handlers for the get/set float128
6926         exponent, get float128 mantissa, float128 test built-ins, and the
6927         float128 round to odd built-in functions.  Eliminate creating the
6928         float128 round to odd built-in functions as special built-ins.
6929         (rs6000_init_builtins): Eliminate special creation of the float128
6930         round to odd built-in functions.
6931         * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in
6932         function insns to support both TFmode and KFmode variants.
6933         (xsxsigqp_<mode>): Likewise.
6934         (xsiexpqpf_<mode>): Likewise.
6935         (xsiexpqp_<mode>): Likewise.
6936         (xststdcqp_<mode>): Likewise.
6937         (xststdcnegqp_<mode>): Likewise.
6938         (xststdcqp_<mode>): Likewise.
6939
6940 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6941
6942         * tree-ssa-threadupdate.c (compute_path_counts): Remove
6943         unused path_in_freq_ptr parameter.
6944         (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq
6945
6946 2017-11-14  Jan Hubicka  <hubicka@ucw.cz>
6947
6948         * ipa-inline.c (edge_badness): Dump sreal frequency.
6949         (compute_inlined_call_time): Match natural implementaiton ...
6950         * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove
6951         forgotten division by CGRAPH_FREQ_BASE.
6952
6953 2017-11-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6954
6955         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
6956         Solaris 11.  Update comment.
6957         * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
6958         renaming.
6959         * config/sol2.h (STARTFILE_SPEC): Likewise.
6960         * configure: Regenerate.
6961
6962 2017-11-14  Carl Love  <cel@us.ibm.com>
6963
6964         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove
6965         le_ and be_ prefixes to swap* variables.  Remove
6966         if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
6967         statements.
6968
6969 2017-11-14  Jason Merrill  <jason@redhat.com>
6970
6971         Support GTY((cache)) on hash_map.
6972         * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function.
6973         (ggc_cache_remove): Override it instead of ggc_mx.
6974         * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx.
6975         (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx.
6976         * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member.
6977         (simple_cache_map_traits): Override maybe_mx.
6978         * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry.
6979         (hash_map): Friend gt_cleare_cache.
6980         (gt_cleare_cache): New.
6981         * tree.h (tree_cache_traits): New hash_map traits class.
6982         (tree_cache_map): New typedef.
6983
6984 2017-11-14  Richard Biener  <rguenther@suse.de>
6985
6986         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p
6987         paramter and handling.
6988         (cleanup_control_flow_bb): Likewise.
6989         (cleanup_control_flow_pre): New helper performing a DFS walk
6990         to call cleanup_control_flow_bb in PRE order.
6991         (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb
6992         via cleanup_control_flow_pre.
6993
6994 2017-11-14  James Greenhalgh  <james.greenhalgh@arm.com>
6995
6996         * config/aarch64/aarch64-simd.md
6997         (aarch64_simd_bsl<mode>_internal): Remove DImode.
6998         (*aarch64_simd_bsl<mode>_alt): Likewise.
6999         (aarch64_simd_bsldi_internal): New.
7000         (aarch64_simd_bsldi_alt): Likewise.
7001
7002 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
7003
7004         * tracer.c (better_p): Do not compare frequencies.
7005         * reg-stack.c (better_edge): Likewise.
7006         * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
7007         and back.
7008
7009 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
7010
7011         * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
7012         * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
7013         * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
7014         * lto-streamer-in.c (input_function): Use update_max_bb_count.
7015         * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count.
7016         * predict.c (maybe_hot_frequency_p): Inline to ...
7017         (maybe_hot_count_p): ... here; rewrite to counts.
7018         (counts_to_freqs): Rename to ...
7019         (update_max_bb_count): ... this one.
7020         (expensive_function_p): Use counts.
7021         (estimate_bb_frequencies): Update.
7022         (rebuild_frequencies): Update.
7023         * predict.h (counts_to_freqs): Rename to ...
7024         (update_max_bb_count): ... this one.
7025         * profile.c (compute_branch_probabilities): Add debug info
7026         * tree-inline.c (expand_call_inline): Update debug info.
7027         (optimize_inline_calls): Use update_max_bb_count..
7028         (tree_function_versioning): Use update_max_bb_count..
7029         * value-prof.c (gimple_value_profile_transformations):
7030         Do not use update_max_bb_count.
7031
7032 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
7033
7034         * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time):
7035         always use frequencies.
7036
7037 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
7038
7039         * bb-reorder.c: Remove frequencies from comments.
7040         (better_edge_p): Use profile counts.
7041         (find_traces): Dump profile counts.
7042         (rotate_loop): Use profile counts.
7043         (find_traces_1_round): Likewise.
7044         (connect_better_edge_p): Use counts instead of probabilities for
7045         reverse walk.
7046         (copy_bb_p): Drop early check for non-0 frequency.
7047         (sanitize_hot_paths): Update comments.
7048
7049 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
7050
7051         * ipa-split.c (struct split_point): Add count.
7052         (consider_split): Do not compute incoming frequency; compute incoming
7053         count and store it to split_point.
7054         (split_function): Set count of the call to split part correctly.
7055
7056 2017-11-13  Carl Love  <cel@us.ibm.com>
7057
7058         * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand.
7059
7060 2017-11-13  Tom Tromey  <tom@tromey.com>
7061
7062         * doc/cpp.texi (Variadic Macros): Document __VA_OPT__.
7063
7064 2017-11-13  Carl Love  <cel@us.ibm.com>
7065
7066         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
7067         Add support for builtins:
7068         unsigned int vec_first_{,miss}_match_{,or_eos}index,
7069         vector {un,}signed {char,int,short},
7070         vector {un,}signed {char,int,short}) arguments.
7071         * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX,
7072         VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX):
7073         Add BU_P9V_AV_2 expansions for the builtins.
7074         * config/rs6000/altivec.h (vec_first_match_index,
7075         vec_first_mismatch_index, vec_first_match_or_eos_index,
7076         vec_first_mismatch_or_eos_index): Add #defines for the builtins.
7077         * config/rs6000/rs6000-protos.h (bytes_in_mode): Add
7078         new extern declaration.
7079         * config/rs6000/rs6000.c (bytes_in_mode): Add new function.
7080         * config/rs6000/vsx.md (first_match_index_<mode>,
7081         first_match_or_eos_index_<mode>, first_mismatch_index_<mode>,
7082         first_mismatch_or_eos_index_<mode>): Add define expand.
7083         (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb.
7084         * doc/extend.texi: Update the built-in documenation file for the new
7085         built-in functions.
7086
7087 2017-11-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
7088
7089         * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x
7090         into the min/max operations for _Float<N> and _Float<N>X types.
7091
7092 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
7093
7094         PR lto/81351
7095         * dwarf2out.c (do_eh_frame): New static variable.
7096         (dwarf2out_begin_prologue): Set it.
7097         (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
7098
7099 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
7100
7101         * tree-ssa-coalesce.c (coalesce_cost): Fix formating.
7102
7103         * tree-ssa-sink.c (select_best_block): Do not use frequencies.
7104
7105 2017-11-13  Eric Botcazou  <ebotcazou@adacore.com>
7106
7107         PR lto/81351
7108         * debug.h (dwarf2out_do_eh_frame): Declare.
7109         * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate.
7110         (dwarf2out_do_frame): Use it.
7111         (dwarf2out_do_cfi_asm): Likewise.
7112         * dwarf2out.c (dwarf2out_frame_finish): Likewise.
7113         (dwarf2out_assembly_start): Likewise.
7114         (dwarf2out_begin_prologue): Fix comment.
7115         * toplev.c (compile_file): Always call dwarf2out_frame_finish
7116         if the target needs either debug or unwind DWARF2 info.
7117         * lto-opts.c (lto_write_options): Do not save -fexceptions,
7118         -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros,
7119         -ftrapping-math, -ftrapv and -fwrapv.
7120
7121 2017-11-13  Jan Hubicka  <hubicka@ucw.cz>
7122
7123         * cgraph.c (cgraph_edge::sreal_frequency): New function.
7124         * cgraph.h (cgraph_edge::sreal_frequency): Declare.
7125         * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
7126         (estimate_edge_size_and_time): Likewise.
7127         (ipa_merge_fn_summary_after_inlining): Likewise.
7128         * ipa-inline.c (cgraph_freq_base_rec): Remove.
7129         (compute_uninlined_call_time): Use sreal_frequency.
7130         (compute_inlined_call_time): Likewise.
7131         (ipa_inline): Do not initialize cgraph_freq_base_rec.
7132         * profile-count.c: Include sreal.h.
7133         (profile_count::to_sreal_scale): New.
7134         * profile-count.h: Forward declare sreal.
7135         (profile_count::to_sreal_scale): Declare.
7136
7137 2017-11-13  Nathan Sidwell  <nathan@acm.org>
7138
7139         * diagnostic.c (maybe_line_and_column): New.
7140         (diagnostic_get_location_text): Use it.
7141         (diagnostic_report_current_module): Likewise.
7142         (test_diagnostic_get_location_text): Add tests.
7143
7144 2017-11-13  Luis Machado  <luis.machado@linaro.org>
7145
7146         * doc/md.texi (Specifying processor pipeline description): Fix
7147         incorrect latency for the div instruction example.
7148
7149 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
7150
7151         PR tree-optimization/78821
7152         * gimple-ssa-store-merging.c (compatible_load_p): Don't require
7153         that bit_not_p is the same.
7154         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
7155         (split_group): Count precisely bit_not_p bits in each statement.
7156         (invert_op): New function.
7157         (imm_store_chain_info::output_merged_store): Use invert_op to
7158         emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
7159         but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.
7160
7161 2017-11-13  Martin Liska  <mliska@suse.cz>
7162
7163         * gcov.c (struct coverage_info): Remove typedef of coverage_t.
7164         (struct source_info): Likewise.
7165         (add_branch_counts): Likewise.
7166         (add_line_counts): Likewise.
7167         (function_summary): Likewise.
7168         (output_intermediate_line): Likewise.
7169         (generate_results): Likewise.
7170
7171 2017-11-13  Martin Liska  <mliska@suse.cz>
7172
7173         * gcov.c (struct block_info): Remove typedef for block_t.
7174         (struct line_info): Likewise.
7175         (line_info::has_block): Likewise.
7176         (EXIT_BLOCK): Likewise.
7177         (unblock): Likewise.
7178         (circuit): Likewise.
7179         (get_cycles_count): Likewise.
7180         (process_file): Likewise.
7181         (read_graph_file): Likewise.
7182         (solve_flow_graph): Likewise.
7183         (find_exception_blocks): Likewise.
7184         (add_line_counts): Likewise.
7185         (accumulate_line_info): Likewise.
7186         (output_line_details): Likewise.
7187
7188 2017-11-13  Martin Liska  <mliska@suse.cz>
7189
7190         * gcov.c (struct arc_info): Remove typedef for arc_t.
7191         (struct line_info): Likewise.
7192         (add_branch_counts): Likewise.
7193         (output_branch_count): Likewise.
7194         (function_info::~function_info): Likewise.
7195         (circuit): Likewise.
7196         (output_intermediate_line): Likewise.
7197         (read_graph_file): Likewise.
7198         (solve_flow_graph): Likewise.
7199         (find_exception_blocks): Likewise.
7200         (add_line_counts): Likewise.
7201         (accumulate_line_info): Likewise.
7202         (output_line_details): Likewise.
7203         (output_function_details): Likewise.
7204
7205 2017-11-13  Martin Liska  <mliska@suse.cz>
7206
7207         * gcov.c (struct function_info): Remove typedef for function_t.
7208         (struct source_info): Likewise.
7209         (source_info::get_functions_at_location): Likewise.
7210         (solve_flow_graph): Likewise.
7211         (find_exception_blocks): Likewise.
7212         (add_line_counts): Likewise.
7213         (output_intermediate_file): Likewise.
7214         (process_file): Likewise.
7215         (generate_results): Likewise.
7216         (release_structures): Likewise.
7217         (read_graph_file): Likewise.
7218         (read_count_file): Likewise.
7219         (accumulate_line_counts): Likewise.
7220         (output_lines): Likewise.
7221
7222 2017-11-13  Martin Liska  <mliska@suse.cz>
7223
7224         * gcov.c (function_info::function_info): Remove num_counts
7225         and add vector<gcov_type>.
7226         (function_info::~function_info): Use the vector.
7227         (process_file): Likewise.
7228         (read_graph_file): Likewise.
7229         (read_count_file): Likewise.
7230         (solve_flow_graph): Likewise.
7231
7232 2017-11-13  Martin Liska  <mliska@suse.cz>
7233
7234         * gcov.c (function_info::is_artificial): New function.
7235         (process_file): Erase all artificial early.
7236         (generate_results): Skip as all artificial are already
7237         removed.
7238
7239 2017-11-13  Martin Liska  <mliska@suse.cz>
7240
7241         * gcov.c (read_graph_file): Store to global vector of functions.
7242         (read_count_file): Iterate the vector.
7243         (process_file): Likewise.
7244         (generate_results): Likewise.
7245         (release_structures): Likewise.
7246
7247 2017-11-13  Jakub Jelinek  <jakub@redhat.com>
7248
7249         PR tree-optimization/82954
7250         * gimple-ssa-store-merging.c
7251         (imm_store_chain_info::coalesce_immediate_stores): If
7252         !infof->ops[N].base_addr, split group if info->ops[N].base_addr.
7253
7254 2017-11-13  Richard Sandiford  <richard.sandiford@linaro.org>
7255
7256         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
7257         Upddate call to ENDIAN_LANE_N.
7258         (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
7259         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
7260         (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
7261         and use aarch64_endian_lane_rtx.
7262         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
7263
7264 2017-11-12  Tom de Vries  <tom@codesourcery.com>
7265
7266         * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).
7267
7268 2017-11-12  Tom de Vries  <tom@codesourcery.com>
7269
7270         * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.
7271
7272 2017-11-12  Tom de Vries  <tom@codesourcery.com>
7273
7274         * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
7275         body.
7276         * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
7277         * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
7278         * defaults.h (ASM_OUTPUT_LABELREF): Same.
7279
7280 2017-11-11  Martin Sebor  <msebor@redhat.com>
7281
7282         PR c/81117
7283         * doc/extend.texi (attribute nonstring): Remove spurious argument.
7284
7285         PR bootstrap/82948
7286         * prefic.c (translate_name): Replace strncpy with memcpy to
7287         avoid -Wstringop-truncation.
7288
7289 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7290
7291         * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
7292
7293 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7294
7295         * predict.c (maybe_hot_frequency_p): Do not use cfun.
7296
7297 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7298
7299         * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
7300         merging.
7301
7302 2017-11-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
7303
7304         * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
7305         enable generating XXBRH if the value is in a vector register.
7306         (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
7307         value is in a vector register.
7308         (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
7309         register to register bswap64's instead of doing the GPR sequence
7310         used on previous machines.
7311         (bswapdi2_xxbrd): New insn.
7312         (bswapdi2_reg): Disallow on ISA 3.0.
7313         (register to register bswap64 splitter): Do not split the insn on
7314         ISA 3.0 systems that use XXBRD.
7315
7316 2017-11-10  Martin Sebor  <msebor@redhat.com>
7317
7318         PR c/81117
7319         * config/darwin-c.c (framework_construct_pathname): Replace strncpy
7320         with memcpy.
7321         (find_subframework_file): Same.
7322
7323 2017-11-10  Jan Hubicka  <hubicka@ucw.cz>
7324
7325         * auto-profile.c (afdo_indirect_call): Drop frequency.
7326         * cgraph.c (symbol_table::create_edge): Drop frequency argument.
7327         (cgraph_node::create_edge): Drop frequency argument.
7328         (cgraph_node::create_indirect_edge): Drop frequency argument.
7329         (cgraph_edge::make_speculative): Drop frequency arguments.
7330         (cgraph_edge::resolve_speculation): Do not update frequencies
7331         (cgraph_edge::dump_edge_flags): Do not dump frequency.
7332         (cgraph_node::dump): Check consistency in IPA mode.
7333         (cgraph_edge::maybe_hot_p): Use IPA counter.
7334         (cgraph_edge::verify_count_and_frequency): Rename to ...
7335         (cgraph_edge::verify_count): ... this one; drop frequency checking.
7336         (cgraph_node::verify_node): Update.
7337         * cgraph.h (struct cgraph_edge): Drop frequency.
7338         (cgraph_edge::frequency): New function.
7339         * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
7340         frequencies.
7341         (cgraph_edge::rebuild_edges): Likewise.
7342         * cgraphclones.c (cgraph_edge::clone): Scale only counts.
7343         (duplicate_thunk_for_node): Do not pass frequency.
7344         (cgraph_node::create_clone): Scale only counts.
7345         (cgraph_node::create_virtual_clone): Do not pass frequency.
7346         (cgraph_node::create_edge_including_clones): Do not pass frequency.
7347         (cgraph_node::create_version_clone): Do not pass frequency.
7348         * cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
7349         (cgraph_node::expand_thunk): Do not pass frequency.
7350         (cgraph_node::create_wrapper): Do not pass frequency.
7351         * gimple-iterator.c (update_call_edge_frequencies): Do not pass
7352         frequency.
7353         * gimple-streamer-in.c (input_bb): Scale only IPA counts.
7354         * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
7355         * ipa-cp.c (ipcp_lattice::print): Use frequency function.
7356         (gather_caller_stats): Use frequency function.
7357         (ipcp_cloning_candidate_p): Use frequency function.
7358         (ipcp_propagate_stage): Use frequency function.
7359         (get_info_about_necessary_edges): Use frequency function.
7360         (update_profiling_info): Update only IPA profile.
7361         (update_specialized_profile): Use frequency functoin.
7362         (perhaps_add_new_callers): Update only IPA profile.
7363         * ipa-devirt.c (ipa_devirt): Use IPA profile.
7364         * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
7365         (dump_ipa_call_summary): Use frequency function.
7366         (estimate_edge_size_and_time): Use frequency function.
7367         (ipa_merge_fn_summary_after_inlining): Use frequency function.
7368         * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
7369         * ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
7370         (update_noncloned_counts): ... ths one; scale counts only.
7371         (clone_inlined_nodes): Do not scale frequency.
7372         (inline_call): Do not pass frequency.
7373         * ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
7374         (compute_inlined_call_time): Use IPA profile.
7375         (want_inline_small_function_p): Use IPA profile.
7376         (want_inline_self_recursive_call_p): Use IPA profile.
7377         (edge_badness): Use IPA profile.
7378         (lookup_recursive_calls): Use IPA profile.
7379         (recursive_inlining): Do not pass frequency.
7380         (resolve_noninline_speculation): Do not update frequency.
7381         (inline_small_functions): Collect max of IPA profile.
7382         (dump_overall_stats): Dump IPA porfile.
7383         (dump_inline_stats): Dump IPA porfile.
7384         (ipa_inline): Collect IPA stats.
7385         * ipa-inline.h (clone_inlined_nodes): Update prototype.
7386         * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
7387         (ipa_propagate_frequency): Use frequency function.
7388         (ipa_profile): Cleanup.
7389         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
7390         * ipa-utils.c (ipa_merge_profiles): Merge all profiles.
7391         * lto-cgraph.c (lto_output_edge): Do not stream frequency.
7392         (input_node): Do not stream frequency.
7393         (input_edge): Do not stream frequency.
7394         (merge_profile_summaries): Scale only IPA profiles.
7395         * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
7396         * predict.c (drop_profile): Do not recompute frequency.
7397         * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
7398         (ipa_tm_insert_gettmclone_call): Do not pass frequency.
7399         * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
7400         * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
7401         * tree-emutls.c (gen_emutls_addr): Do not pass frequency.
7402         * tree-inline.c (copy_bb): Do not scale frequency.
7403         (expand_call_inline): Do not scale frequency.
7404         (tree_function_versioning): Do not scale frequency.
7405         * ubsan.c (ubsan_create_edge): Do not pass frequency.
7406
7407 2017-11-10  Julia Koval  <julia.koval@intel.com>
7408
7409         * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8)
7410         (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8)
7411         (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8)
7412         (_mm256_maskz_gf2p8affine_epi64_epi8)
7413         (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8)
7414         (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
7415         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi)
7416         (__builtin_ia32_vgf2p8affineqb_v32qi)
7417         (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
7418         * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
7419
7420 2017-11-10  Tamar Christina  <tamar.christina@arm.com>
7421
7422         PR target/82641
7423         * config/arm/arm.c
7424         (arm_option_override): Refactor.
7425         (arm_option_reconfigure_globals): New.
7426         (arm_options_perform_arch_sanity_checks): New.
7427         * config/arm/arm-protos.h (arm_option_reconfigure_globals):
7428         New prototype.
7429         (arm_options_perform_arch_sanity_checks): Likewise
7430
7431 2017-11-10  Pat Haugen  <pthaugen@us.ibm.com>
7432
7433         * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
7434         (power9-qpmul): New.
7435         * rs6000/rs6000.md ("type" attr): Add qmul.
7436         (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
7437         *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
7438         *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
7439
7440 2017-11-10  Martin Sebor  <msebor@redhat.com>
7441
7442         PR c/81117
7443         * builtins.c (compute_objsize): Handle arrays that
7444         compute_builtin_object_size likes to fail for.  Make extern.
7445         * builtins.h (compute_objsize): Declare.
7446         (check_strncpy_sizes): New function.
7447         (expand_builtin_strncpy): Call check_strncpy_sizes.
7448         * gimple-fold.c (gimple_fold_builtin_strncpy): Implement
7449         -Wstringop-truncation.
7450         (gimple_fold_builtin_strncat): Same.
7451         * gimple.c (gimple_build_call_from_tree): Set call location.
7452         * tree-ssa-strlen.c (strlen_to_stridx): New global variable.
7453         (maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
7454         (handle_builtin_stxncpy, handle_builtin_strncat): Same.
7455         (handle_builtin_strlen): Use strlen_to_stridx.
7456         (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
7457         stpncpy.
7458         Use strlen_to_stridx.
7459         (pass_strlen::execute): Release strlen_to_stridx.
7460         * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
7461         (-Wstringop-truncation): Document new option.
7462
7463 2017-11-10  Martin Liska  <mliska@suse.cz>
7464
7465         PR gcov-profile/82702
7466         * gcov.c (main): Handle intermediate files in a different
7467         way.
7468         (get_gcov_intermediate_filename): New function.
7469         (output_gcov_file): Remove support of intermediate files.
7470         (generate_results): Allocate intermediate file.
7471         (release_structures): Clean-up properly fn_end.
7472         (output_intermediate_file): Start iterating with line 1.
7473
7474 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
7475
7476         PR tree-optimization/82929
7477         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
7478         ops_swapped_p non-static data member.
7479         (store_immediate_info::store_immediate_info): Clear it.
7480         (imm_store_chain_info::coalesce_immediate_stores): If swapping
7481         ops set ops_swapped_p.
7482         (count_multiple_uses): Handle ops_swapped_p.
7483
7484 2017-11-10  Martin Liska  <mliska@suse.cz>
7485
7486         * coverage.c (coverage_init): Stream information about
7487         support of has_unexecuted_blocks.
7488         * doc/gcov.texi: Document that.
7489         * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
7490         * gcov.c (read_graph_file): Likewise.
7491         (output_line_beginning): Fix a small issue with
7492         color output.
7493
7494 2017-11-10  Bin Cheng  <bin.cheng@arm.com>
7495
7496         * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
7497         reference of trivial component.
7498
7499 2017-11-10  Jakub Jelinek  <jakub@redhat.com>
7500
7501         PR bootstrap/82916
7502         * gimple-ssa-store-merging.c
7503         (pass_store_merging::terminate_all_aliasing_chains): For
7504         gimple_store_p stmts also call refs_output_dependent_p.
7505
7506         PR rtl-optimization/82913
7507         * compare-elim.c (try_merge_compare): Punt if def_insn is not
7508         single set.
7509
7510 2017-11-09  Jeff Law  <law@redhat.com>
7511
7512         * vr-values.h: New file with vr_values class.
7513         * tree-vrp.c: Include vr-values.h
7514         (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
7515         data objects into the vr_values class.
7516         (vr_value, values_propagated, vr_phi_edge_counts): Likewise.
7517         (get_value_range): Make it a member function within vr_values class.
7518         (set_defs_to_varying, update_value_range, add_equivalence): Likewise.
7519         (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
7520         (op_with_constant_singleton_value_range): Likewise.
7521         (extract_range_for_var_from_comparison_expr): Likewise.
7522         (extract_range_from_assert, extract_range_from_ssa_name): Likewise.
7523         (extract_range_from_binary_expr): Likewise.
7524         (extract_range_from_unary_expr): Likewise.
7525         (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
7526         (check_for_binary_op_overflow, extract_range_basic): Likewise.
7527         (extract_range_from_assignment, adjust_range_with_scev): Likewise.
7528         (dump_all_value_ranges, get_vr_for_comparison): Likewise.
7529         (compare_name_with_value, compare_names): Likewise.
7530         (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
7531         (vrp_evaluate_conditional_warnv_with_ops): Likewise.  Remove prototype.
7532         (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
7533         (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
7534         (extract_range_from_phi_node): Likewise.
7535         (simplify_truth_ops_using_ranges): Likewise.
7536         (simplify_div_or_mod_using_ranges): Likewise.
7537         (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
7538         (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
7539         (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
7540         (simplify_float_conversion_using_ranges): Likewise.
7541         (simplify_internal_call_using_ranges): Likewise.
7542         (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
7543         (vrp_visit_assignment_or_call): Likewise.  Smuggle class instance
7544         poitner via x_vr_values for calls into gimple folder.
7545         (vrp_initialize_lattice): Make this the vr_values ctor.
7546         (vrp_free_lattice): Make this the vr_values dtor.
7547         (set_vr_value): New function.
7548         (class vrp_prop): Add vr_values data member.  Add various member
7549         functions as well as member functions that delegate to vr_values.
7550         (check_array_ref): Make a member function within vrp_prop class.
7551         (search_for_addr_array, vrp_initialize): Likewise.
7552         (vrp_finalize): Likewise.  Revamp to avoid direct access to
7553         vr_value, values_propagated, etc.
7554         (check_array_bounds): Extract vrp_prop class instance pointer from
7555         walk info structure.  Use it to call member functions.
7556         (check_all_array_refs): Make a member function within vrp_prop class.
7557         Smuggle class instance pointer via walk info structure.
7558         (x_vr_values): New local static.
7559         (vrp_valueize): Use x_vr_values to get class instance.
7560         (vr_valueize_1): Likewise.
7561         (class vrp_folder): Add vr_values data member.  Add various member
7562         functions as well as member functions that delegate to vr_values.
7563         (fold_predicate_in): Make a mber fucntion within vrp_folder class.
7564         (simplify_stmt_for_jump_threading): Extract smuggled vr_values
7565         class instance from vr_values.  Use it to call member functions.
7566         (vrp_dom_walker): Add vr_values data member.
7567         (vrp_dom_walker::after_dom_children): Smuggle vr_values class
7568         instance via x_vr_values.
7569         (identify_jump_threads): Accept vr_values as argument.  Store
7570         it into the walker structure.
7571         (evrp_dom_walker): Add vr_values class data member.  Add various
7572         delegators.
7573         (evrp_dom_walker::try_find_new_range): Use vr_values data
7574         member to access the memory allocator.
7575         (evrp_dom_walker::before_dom_children): Store vr_values class
7576         instance into the vrp_folder class.
7577         (evrp_dom_walker::push_value_range): Rework to avoid direct
7578         access to num_vr_values and vr_value.
7579         (evrp_dom_walker::pop_value_range): Likewise.
7580         (execute_early_vrp): Remove call to vrp_initialize_lattice.
7581         Use vr_values to get to dump_all_value_ranges member function.
7582         Remove call to vrp_free_lattice.  Call vrp_initialize, vrp_finalize,
7583         and simplify_cond_using_ranges_2 via vrp_prop class instance.
7584         Pass vr_values class instance down to identify_jump_threads.
7585         Remove call to vrp_free_lattice.
7586         (debug_all_value_ranges): Remove.
7587
7588         * tree-vrp.c (vrp_prop): Move class to earlier point in the file.
7589         (vrp_folder): Likewise.
7590
7591         * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
7592         Get it from the existing bitmap instead.
7593         (vrp_intersect_ranges_1): Likewise.
7594
7595 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7596
7597         * gimple-ssa-store-merging.c (struct store_immediate_info): Add
7598         bit_not_p field.
7599         (store_immediate_info::store_immediate_info): Add bitnotp argument,
7600         set bit_not_p to it.
7601         (imm_store_chain_info::coalesce_immediate_stores): Break group
7602         if bit_not_p is different.
7603         (count_multiple_uses, split_group,
7604         imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
7605         (handled_load): Avoid multiple chained BIT_NOT_EXPRs.
7606         (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
7607         result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
7608         to store_immediate_info ctor.
7609
7610 2017-11-09  Jim Wilson  <jimw@sifive.com>
7611
7612         * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
7613         (scan_prog_file): Likewise.
7614
7615 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
7616
7617         * bb-reorder.c (max_entry_frequency): Remove.
7618         (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
7619         connect_traces, push_to_next_round_p): Remove prototypes.
7620         (find_traces_1_round): Use counts only.
7621         (push_to_next_round_p): Likewise.
7622         (find_traces): Likewise.
7623         (rotate_loop): Likewise.
7624         (find_traces_1_round): Likewise.
7625         (connect_traces): Likewise.
7626         (edge_order): Likewise.
7627
7628 2017-11-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7629
7630         * config/arm/arm.c (output_return_instruction): Add comments to
7631         indicate requirement for cmse_nonsecure_entry return to account
7632         for the size of clearing instruction output here.
7633         (thumb_exit): Likewise.
7634         * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
7635         return in hardfloat mode.
7636
7637 2017-11-09  Segher Boessenkool  <segher@kernel.crashing.org>
7638
7639         * config/rs6000/rs6000.c (machine_function): Add a bool,
7640         "toc_is_wrapped_separately".
7641         (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT
7642         if it wasn't explicitly set or unset, we are optimizing for speed, and
7643         doing separate shrink-wrapping.
7644         (rs6000_get_separate_components): Enable the TOC component if
7645         saving the TOC register in the prologue.
7646         (rs6000_components_for_bb): Handle the TOC component.
7647         (rs6000_emit_prologue_components): Store the TOC register where needed.
7648         (rs6000_set_handled_components): Mark TOC as handled, if handled.
7649         (rs6000_emit_prologue): Don't save the TOC if that is already done.
7650
7651 2017-11-09  Martin Jambor  <mjambor@suse.cz>
7652
7653         * ipa-param-manipulation.c: New file.
7654         * ipa-param-manipulation.h: Likewise.
7655         * Makefile.in (OBJS): Add ipa-param-manipulation.o.
7656         (PLUGIN_HEADERS): Addded ipa-param-manipulation.h
7657         * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h.
7658         (ipa_parm_adjustment): Likewise.
7659         (ipa_parm_adjustment_vec): Likewise.
7660         (ipa_get_vector_of_formal_parms): Moved declaration to
7661         ipa-param-manipulation.h.
7662         (ipa_get_vector_of_formal_parm_types): Likewise.
7663         (ipa_modify_formal_parameters): Likewise.
7664         (ipa_modify_call_arguments): Likewise.
7665         (ipa_combine_adjustments): Likewise.
7666         (ipa_dump_param_adjustments): Likewise.
7667         (ipa_modify_expr): Likewise.
7668         (ipa_get_adjustment_candidate): Likewise.
7669         * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to
7670         ipa-param-manipulation.c.
7671         (ipa_get_vector_of_formal_parm_types): Likewise.
7672         (ipa_modify_formal_parameters): Likewise.
7673         (ipa_modify_call_arguments): Likewise.
7674         (ipa_modify_expr): Likewise.
7675         (get_ssa_base_param): Likewise.
7676         (ipa_get_adjustment_candidate): Likewise.
7677         (index_in_adjustments_multiple_times_p): Likewise.
7678         (ipa_combine_adjustments): Likewise.
7679         (ipa_dump_param_adjustments): Likewise.
7680         * tree-sra.c: Also include ipa-param-manipulation.h
7681         * omp-simd-clone.c: Include ipa-param-manipulation.h instead of
7682         ipa-param.h.
7683
7684 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7685             Alan Hayward  <alan.hayward@arm.com>
7686             David Sherwood  <david.sherwood@arm.com>
7687
7688         * doc/sourcebuild.texi (vect_masked_store): Document.
7689
7690 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7691             Alan Hayward  <alan.hayward@arm.com>
7692             David Sherwood  <david.sherwood@arm.com>
7693
7694         * doc/sourcebuild.texi (vect_align_stack_vars): Document.
7695
7696 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7697             Alan Hayward  <alan.hayward@arm.com>
7698             David Sherwood  <david.sherwood@arm.com>
7699
7700         * doc/sourcebuild.texi (vect_variable_length): Document.
7701
7702 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7703             Alan Hayward  <alan.hayward@arm.com>
7704             David Sherwood  <david.sherwood@arm.com>
7705
7706         * doc/sourcebuild.texi (vect_unaligned_possible): Document.
7707
7708 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7709             Alan Hayward  <alan.hayward@arm.com>
7710             David Sherwood  <david.sherwood@arm.com>
7711
7712         * doc/sourcebuild.texi (vect_element_align_preferred): Document.
7713
7714 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7715             Alan Hayward  <alan.hayward@arm.com>
7716             David Sherwood  <david.sherwood@arm.com>
7717
7718         * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document
7719         previously undocumented selectors.
7720         (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document.
7721
7722 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7723
7724         * doc/rtl.texi (const_vector): Say that elements can be
7725         const_wide_ints too.
7726         * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare.
7727         * emit-rtl.c (valid_for_const_vec_duplicate_p): New function.
7728         (gen_vec_duplicate): Use it instead of CONSTANT_P.
7729         * optabs.c (expand_vector_broadcast): Likewise.
7730
7731 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7732             Alan Hayward  <alan.hayward@arm.com>
7733             David Sherwood  <david.sherwood@arm.com>
7734
7735         * tree-ssa-loop-ivopts.c (get_address_cost): Try using a
7736         scaled index even if the unscaled address was invalid.
7737         Don't increase the complexity of using a scale in that case.
7738
7739 2017-11-09  Richard Sandiford  <richard.sandiford@linaro.org>
7740             Alan Hayward  <alan.hayward@arm.com>
7741             David Sherwood  <david.sherwood@arm.com>
7742
7743         * doc/rtl.texi: Rewrite the subreg rules so that they partition
7744         the inner register into REGMODE_NATURAL_SIZE bytes rather than
7745         UNITS_PER_WORD bytes.
7746         * emit-rtl.c (validate_subreg): Divide subregs into blocks
7747         based on REGMODE_NATURAL_SIZE of the inner mode.
7748         (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and
7749         !SCALAR_FLOAT_MODE_P cases.  Use REGMODE_NATURAL_SIZE for the latter.
7750         * expmed.c (lowpart_bit_field_p): Divide the value up into
7751         chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD.
7752         * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test
7753         whether something is likely to occupy more than one register.
7754
7755 2017-11-09  Jan Hubicka  <hubicka@ucw.cz>
7756
7757         PR ipa/82879
7758         * ipa-inline-transform.c (update_noncloned_frequencies): Use
7759         profile_count::adjust_for_ipa_scaling.
7760         * tree-inline.c (copy_bb, copy_cfg_body): Likewise.
7761         * profile-count.c (profile_count::adjust_for_ipa_scaling): New member
7762         function.
7763         * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare.
7764
7765 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7766
7767         * gimple-ssa-store-merging.c (count_multiple_uses): New function.
7768         (split_group): Add total_orig and total_new arguments, estimate the
7769         number of statements related to the store group without store merging
7770         and with store merging.
7771         (imm_store_chain_info::output_merged_store): Adjust split_group
7772         callers, punt if estimated number of statements with store merging
7773         is not smaller than estimated number of statements without it.
7774         Formatting fix.
7775         (handled_load): Remove has_single_use checks.
7776         (pass_store_merging::process_store): Likewise.
7777
7778 2017-11-09  Richard Biener  <rguenther@suse.de>
7779
7780         PR tree-optimization/82902
7781         * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
7782
7783 2017-11-09  Martin Liska  <mliska@suse.cz>
7784
7785         PR target/82863
7786         * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to
7787         uninitialized.
7788
7789 2017-11-09  Martin Liska  <mliska@suse.cz>
7790
7791         PR tree-optimization/82669
7792         * sbitmap.h (bmp_iter_set_init): Remove non needed check.
7793
7794 2017-11-09  Martin Liska  <mliska@suse.cz>
7795
7796         PR gcov-profile/48463
7797         * coverage.c (coverage_begin_function): Output also end locus
7798         of a function and information whether the function is
7799         artificial.
7800         * gcov-dump.c (tag_function): Parse and print the information.
7801         * gcov.c (INCLUDE_MAP): Add include.
7802         (INCLUDE_SET): Likewise.
7803         (struct line_info): Move earlier in the source file because
7804         of vector<line_info> in function_info structure.
7805         (line_info::line_info): Likewise.
7806         (line_info::has_block): Likewise.
7807         (struct source_info): Add new member index.
7808         (source_info::get_functions_at_location): New function.
7809         (function_info::group_line_p): New function.
7810         (output_intermediate_line): New function.
7811         (output_intermediate_file): Use the mentioned function.
7812         (struct function_start): New.
7813         (struct function_start_pair_hash): Likewise.
7814         (process_file): Add code that identifies group functions.
7815         Assign lines either to global or function scope.
7816         (generate_results): Skip artificial functions.
7817         (find_source): Assign index for each source file.
7818         (read_graph_file): Read new flag artificial and end_line.
7819         (add_line_counts): Assign it either to global of function scope.
7820         (accumulate_line_counts): Isolate core of the function to
7821         accumulate_line_info and call it for both function and global
7822         scope lines.
7823         (accumulate_line_info): New function.
7824         (output_line_beginning): Fix GNU coding style.
7825         (print_source_line): New function.
7826         (output_line_details): Likewise.
7827         (output_function_details): Likewise.
7828         (output_lines): Iterate both source (global) scope and function
7829         scope.
7830         (struct function_line_start_cmp): New class.
7831         * doc/gcov.texi: Reflect changes in documentation.
7832
7833 2017-11-09  Jakub Jelinek  <jakub@redhat.com>
7834
7835         PR debug/82837
7836         * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT.
7837         (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...)))
7838         and similarly for not instead of neg.
7839
7840 2017-11-08  Andi Kleen  <ak@linux.intel.com>
7841
7842         * config/i386/i386.opt: Add -mforce-indirect-call.
7843         * config/i386/predicates.md: Check for flag_force_indirect_call.
7844         * doc/invoke.texi: Document -mforce-indirect-call
7845
7846 2017-11-08  Kito Cheng  <kito.cheng@gmail.com>
7847
7848         * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p):
7849         New extern.
7850         (MOVE_RATIO): Use riscv_slow_unaligned_access_p.
7851         config/riscv/riscv.c (predict.h): New include.
7852         (riscv_slow_unaligned_access_p): No longer static.
7853         (riscv_block_move_straight): Add require.
7854         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
7855
7856 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7857
7858         PR target/82855
7859         * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
7860         <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
7861         nonimmediate_operand predicate for operand 1 instead of
7862         register_operand.
7863
7864 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7865
7866         * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
7867         New pattern.
7868         * config/aarch64/constraints.md (Uml): New constraint.
7869         * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New
7870         predicate.
7871
7872 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7873
7874         * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
7875         of two vec_duplicates into a vec_concat.
7876
7877 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7878
7879         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7880         Simplify vec_merge of vec_duplicate and vec_concat.
7881         * config/aarch64/constraints.md (Utq): New constraint.
7882         * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New
7883         define_insn.
7884
7885 2017-11-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7886
7887         * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
7888         Simplify vec_merge of vec_duplicate and const_vector.
7889         * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero):
7890         New predicate.
7891         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC
7892         mode iterator.  Update predicate on operand 1 to
7893         handle non-const_vec constants.  Delete constraints.
7894         (*aarch64_combinez_be<mode>): Likewise for operand 2.
7895
7896 2017-11-08  Jakub Jelinek  <jakub@redhat.com>
7897
7898         PR tree-optimization/78821
7899         * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p
7900         data member.
7901         (store_operand_info::store_operand_info): Initialize it to false.
7902         (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use
7903         ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each
7904         store in the group, and if chain_info is non-NULL, to ignore altogether
7905         that chain.
7906         (compatible_load_p): Fail if bit_not_p does not match.
7907         (imm_store_chain_info::output_merged_store): Handle bit_not_p loads.
7908         (handled_load): Fill in bit_not_p.  Handle BIT_NOT_EXPR.
7909         (pass_store_merging::process_store): Adjust
7910         terminate_all_aliasing_chains calls to pass NULL in all current spots,
7911         call terminate_all_aliasing_chains newly when adding a store into
7912         a chain with non-NULL chain_info.
7913
7914 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7915
7916         * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic.
7917
7918 2017-11-08  Wilco Dijkstra  <wdijkstr@arm.com>
7919
7920         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
7921         Remove.
7922         (aarch64_layout_frame): Initialise emit_frame_chain.
7923         (aarch64_can_eliminate): Remove omit leaf frame pointer code.
7924         (TARGET_FRAME_POINTER_REQUIRED): Remove define.
7925
7926 2017-11-08  Martin Liska  <mliska@suse.cz>
7927
7928         * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
7929         of gimple_call_internal_p.
7930
7931 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7932
7933         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)".
7934
7935 2017-11-07  Tom de Vries  <tom@codesourcery.com>
7936
7937         * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after
7938         "do {} while (0)".
7939
7940 2017-11-08  Martin Liska  <mliska@suse.cz>
7941
7942         PR sanitizer/82792
7943         * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
7944
7945 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
7946
7947         * gimple-pretty-print.c (dump_profile): Return "" instead of NULL.
7948
7949 2017-11-07  Jakub Jelinek  <jakub@redhat.com>
7950
7951         PR target/82855
7952         * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator.
7953         (*cmp<mode>_ccz_1): New insn with $k alternative.
7954
7955         PR target/82855
7956         * config/i386/i386.c (ix86_swap_binary_operands_p): Treat
7957         RTX_COMM_COMPARE as commutative as well.
7958         (ix86_binary_operator_ok): Formatting fix.
7959         * config/i386/sse.md (*mul<mode>3<mask_name><round_name>,
7960         *<code><mode>3<mask_name><round_saeonly_name>,
7961         *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>,
7962         *<s>mul<mode>3_highpart<mask_name>,
7963         *vec_widen_umult_even_v16si<mask_name>,
7964         *vec_widen_umult_even_v8si<mask_name>,
7965         *vec_widen_umult_even_v4si<mask_name>,
7966         *vec_widen_smult_even_v16si<mask_name>,
7967         *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>,
7968         *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>,
7969         *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>,
7970         *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3,
7971         *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3,
7972         <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3,
7973         *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>,
7974         *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>,
7975         *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use
7976         !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of
7977         ix86_binary_operator_ok.  Formatting fixes.
7978         (*<plusminus_insn><mode>3<mask_name><round_name>,
7979         *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting
7980         fixes.
7981
7982 2017-11-07  Segher Boessenkool  <segher@kernel.crashing.org>
7983
7984         * config/rs6000/rs6000.md (GPR2): New mode_iterator.
7985         ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for
7986         eq and ne if TARGET_ISEL.
7987         (cmp): New code_iterator.
7988         (UNS, UNSU_, UNSIK): New code_attrs.
7989         (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split.
7990         ("eq<mode>3"): New define_expand, rename the define_insn_and_split
7991         to...
7992         ("eq<mode>3"): ... this.
7993         ("ne<mode>3"): New define_expand, rename the define_insn_and_split
7994         to...
7995         ("ne<mode>3"): ... this.
7996
7997 2017-11-07  Julia Koval  <julia.koval@intel.com>
7998
7999         PR target/82812
8000         * common/config/i386/i386-common.c
8001         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
8002         (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
8003         * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
8004         * config/i386/i386.opt: Ditto.
8005         * config/i386/i386.c (ix86_target_string): Ditto.
8006         (ix86_option_override_internal): Ditto.
8007         (ix86_init_mpx_builtins): Move MPX to args2.
8008         (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
8009         * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
8010         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
8011         __builtin_ia32_vgf2p8affineinvqb_v32qi,
8012         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
8013         __builtin_ia32_vgf2p8affineinvqb_v16qi,
8014         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
8015
8016 2017-11-07  Uros Bizjak  <ubizjak@gmail.com>
8017
8018         PR target/80425
8019         * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
8020         and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
8021         (zero-extendsidi peephole2): Remove peephole.
8022
8023 2017-11-07  Eric Botcazou  <ebotcazou@adacore.com>
8024
8025         PR c/53037
8026         * stor-layout.c: Include attribs.h.
8027         (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
8028         explicit lookup of "aligned" attribute.
8029
8030 2017-11-07  Andrew Waterman  <andrew@sifive.com>
8031
8032         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype.
8033         (riscv_expand_block_move): Likewise.
8034         * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
8035         implementation.
8036         (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
8037         (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
8038         * config/riscv/riscv.c (riscv_block_move_straight): New function.
8039         (riscv_adjust_block_mem): Likewise.
8040         (riscv_block_move_loop): Likewise.
8041         (riscv_expand_block_move): Likewise.
8042         * config/riscv/riscv.md (movmemsi): New pattern.
8043
8044 2017-11-07  Michael Clark  <michaeljclark@mac.com>
8045
8046         * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
8047         (MUSL_DYNAMIC_LINKER): Likewise.
8048
8049 2017-11-07  Richard Sandiford  <richard.sandiford@linaro.org>
8050
8051         * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
8052         (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
8053         nonmmory_operand.
8054
8055 2017-11-07  Richard Biener  <rguenther@suse.de>
8056
8057         * match.pd: Fix build.
8058
8059 2017-11-07  Wilco Dijkstra  <wdijkstr@arm.com>
8060             Jackson Woodruff  <jackson.woodruff@arm.com>
8061
8062         PR tree-optimization/71026
8063         * match.pd: Canonicalize negate in division.
8064
8065 2017-11-07  Sudakshina Das  <sudi.das@arm.com>
8066
8067         PR middle-end/80131
8068         * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
8069
8070 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
8071
8072         * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
8073         (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
8074
8075 2017-11-07  Marc Glisse  <marc.glisse@inria.fr>
8076
8077         * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
8078         non-scalar integral types.
8079         * match.pd (negate_expr_p): Handle MINUS_EXPR.
8080         (-(A-B), -(~A)): New transformations.
8081
8082 2017-11-07  Tom de Vries  <tom@codesourcery.com>
8083
8084         * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
8085         semicolon after "do {} while (0)".
8086         * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8087         * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8088         * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8089         * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8090         * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8091
8092 2017-11-07  Tom de Vries  <tom@codesourcery.com>
8093
8094         * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
8095         after "do {} while (0)".
8096         * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8097         * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8098         * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8099         * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8100         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
8101
8102 2017-11-07  Tom de Vries  <tom@codesourcery.com>
8103
8104         PR other/82784
8105         * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
8106         "while {} do (0)".
8107         (arm_rtx_costs_internal): Add missing semicolon after
8108         HANDLE_NARROW_SHIFT_ARITH call.
8109
8110 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
8111
8112         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
8113         disable isel if it was not set explicitly.
8114
8115 2017-11-06  James Bowman  <james.bowman@ftdichip.com>
8116
8117         * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers.
8118         (add_type_attribute) likewise.
8119
8120 2017-11-06  H.J. Lu  <hongjiu.lu@intel.com>
8121
8122         * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
8123         of struct ix86_frame.
8124         (ix86_initial_elimination_offset): Likewise.
8125         (ix86_expand_split_stack_prologue): Likewise.
8126
8127 2017-11-06  Marc Glisse  <marc.glisse@inria.fr>
8128
8129         * tree-vrp.h (enum value_range_type): Update stale comment.
8130
8131 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8132             Alan Hayward  <alan.hayward@arm.com>
8133             David Sherwood  <david.sherwood@arm.com>
8134
8135         * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
8136         (aarch64_expand_vec_perm_const): Take the number of units too.
8137         * config/aarch64/aarch64.c (aarch64_expand_vec_perm)
8138         (aarch64_expand_vec_perm_const): Likewise.
8139         * config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
8140         (vec_perm<mode>): Update accordingly.
8141
8142 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8143             Alan Hayward  <alan.hayward@arm.com>
8144             David Sherwood  <david.sherwood@arm.com>
8145
8146         * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
8147         Take the number of units too.
8148         * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
8149         (aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
8150         but check for a vector mode before rather than after the call.
8151         * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
8152         (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
8153         (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
8154         (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
8155         (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
8156         (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
8157         (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
8158         (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
8159         (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
8160         (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
8161         (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
8162         (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
8163         (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
8164         (aarch64_sqdmull2_n<mode>): Update accordingly.
8165
8166 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8167             Alan Hayward  <alan.hayward@arm.com>
8168             David Sherwood  <david.sherwood@arm.com>
8169
8170         * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
8171         the number of units too.
8172         * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
8173         * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
8174         (vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
8175         (vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
8176         (vec_store_lanesxi<mode>): Update accordingly.
8177
8178 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8179             Alan Hayward  <alan.hayward@arm.com>
8180             David Sherwood  <david.sherwood@arm.com>
8181
8182         * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
8183         * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
8184         * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
8185         of units rather than the mode.
8186         * config/aarch64/iterators.md (nunits): New mode attribute.
8187         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
8188         Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
8189         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
8190         (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
8191         (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
8192         (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
8193         (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
8194         (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
8195         (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
8196         (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
8197         (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
8198         (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
8199         (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
8200         (reduc_<maxmin_uns>_scal_<mode>): Likewise.
8201         (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
8202         (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
8203         (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
8204         (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
8205         (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
8206         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
8207         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
8208         (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
8209         (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
8210         (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
8211         (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
8212         (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
8213         (aarch64_sqdmull2_lane<mode>_internal): Likewise.
8214         (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
8215         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
8216         (aarch64_vec_store_lanesoi_lane<mode>): Likewise.
8217         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
8218         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
8219         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
8220         (aarch64_vec_store_lanesxi_lane<mode>): Likewise.
8221         (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
8222         (aarch64_simd_vec_setv2di): Likewise.
8223
8224 2017-11-06  Carl Love  <cel@us.ibm.com>
8225
8226         * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
8227         definitions.
8228         (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
8229         * config/rs6000/altivec.h (vec_revb): Change the #define from power 9
8230         to power 8.
8231         * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
8232         extern declaration.
8233         * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
8234         * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
8235         Add power 8 macro expansions.
8236         (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
8237         * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
8238         power 8 instructions.  (VSX_XXBR): Add iterator.
8239
8240 2017-11-06  Wilco Dijkstra  <wdijkstr@arm.com>
8241
8242         * config/arm/arm.md (predicable_short_it): Change default to "no",
8243         improve documentation, remove uses that are identical to the default.
8244         (enabled_for_depr_it): Rename to enabled_for_short_it.
8245         * gcc/config/arm/arm-fixed.md (predicable_short_it):
8246         Remove default uses.
8247         * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
8248         * gcc/config/arm/sync.md (predicable_short_it): Likewise.
8249         * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
8250         * gcc/config/arm/vfp.md (predicable_short_it): Likewise.
8251
8252 2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
8253
8254         PR target/82748
8255         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
8256         float128 helper macros, which are no longer used after deleting
8257         the old 'q' built-in functions, and moving the round to odd
8258         built-in functions to being special built-in functions.
8259         (BU_FLOAT128_2): Likewise.
8260         (BU_FLOAT128_1_HW): Likewise.
8261         (BU_FLOAT128_2_HW): Likewise.
8262         (BU_FLOAT128_3_HW): Likewise.
8263         (FABSQ): Delete old 'q' built-in functions.
8264         (COPYSIGNQ): Likewise.
8265         (SQRTF128_ODD): Move round to odd built-in functions to be
8266         special built-in functions, so that we can handle
8267         -mabi=ieeelongdouble.
8268         (TRUNCF128_ODD): Likewise.
8269         (ADDF128_ODD): Likewise.
8270         (SUBF128_ODD): Likewise.
8271         (MULF128_ODD): Likewise.
8272         (DIVF128_ODD): Likewise.
8273         (FMAF128_ODD): Likewise.
8274         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
8275         built-in names to 'f128'.
8276         * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
8277         old 'q' built-in functions, as the machine independent code for
8278         'f128' built-in functions handles this.
8279         (rs6000_expand_builtin): Add expansion for float128 round to odd
8280         functions, keying off on -mabi=ieeelongdouble of whether to use
8281         the KFmode or TFmode variant.
8282         (rs6000_init_builtins): Initialize the _Float128 round to odd
8283         built-in functions.
8284         * doc/extend.texi (PowerPC Built-in Functions): Document the old
8285         _Float128 'q' built-in functions are now mapped into the new
8286         'f128' built-in functions.
8287
8288 2017-11-06  David Edelsohn  <dje.gcc@gmail.com>
8289
8290         * collect2.c (add_lto_object): Compile for OBJECT_COFF.
8291         (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
8292
8293 2017-11-06  David Malcolm  <dmalcolm@redhat.com>
8294
8295         PR jit/82826
8296         * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
8297         * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
8298         * toplev.c: Include "ipa-fnsummary.h".
8299         (toplev::finalize): Call ipa_fnsummary_c_finalize.
8300
8301 2017-11-06  Jakub Jelinek  <jakub@redhat.com>
8302
8303         PR tree-optimization/82838
8304         * gimple-ssa-store-merging.c
8305         (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
8306         on a separate gimple_seq which is then appended to seq.
8307
8308 2017-11-06  Jeff Law  <law@redhat.com>
8309
8310         PR target/82788
8311         * config/i386/i386.c (PROBE_INTERVAL): Remove.
8312         (get_probe_interval): New functions.
8313         (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
8314         (ix86_adjust_stack_and_probe): Likewise.
8315         (output_adjust_stack_and_probe): Likewise.
8316         (ix86_emit_probe_stack_range): Likewise.
8317         (ix86_expand_prologue): Likewise.
8318
8319 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8320
8321         PR tree-optimization/82816
8322         * tree-ssa-math-opts.c (convert_mult_to_widen): Return false
8323         if the modes of the two types are the same.
8324         (convert_plusminus_to_widen): Likewise.
8325
8326 2017-11-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8327
8328         * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
8329         p9_vadu<mode>3.
8330         (usadv16qi): New define_expand.
8331         (usadv8hi): New define_expand.
8332
8333 2017-11-06  Jan Hubicka  <hubicka@ucw.cz>
8334
8335         PR bootstrap/82832
8336         * ipa-inline-transform.c (update_noncloned_frequencies): Always
8337         scale.
8338         (inline_transform): Likewise.
8339         * predict.c (counts_to_freqs): Remove useless conditional.
8340         * profile-count.h (profile_count::apply_scale): Move sanity check.
8341         * tree-inline.c (copy_bb): Always scale.
8342         (copy_cfg_body): Likewise.
8343
8344 2017-11-06  Christophe Lyon  <christophe.lyon@linaro.org>
8345
8346         PR target/67591
8347         * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
8348         attribute.
8349         (*cmp_ite0): Add enabled_for_depr_it attribute.
8350         (*cmp_ite1): Likewise.
8351
8352 2017-11-06  Segher Boessenkool  <segher@kernel.crashing.org>
8353
8354         * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
8355         TYPE_MFCRF.
8356
8357 2017-11-06  Richard Sandiford  <richard.sandiford@linaro.org>
8358
8359         * tree-vrp.c (vrp_int_const_binop): Return true on success and
8360         return the value by pointer.
8361         (extract_range_from_multiplicative_op_1): Update accordingly.
8362         Return as soon as an operation fails.
8363
8364 2017-11-05  Tom de Vries  <tom@codesourcery.com>
8365
8366         PR other/82784
8367         * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
8368         (DEF_SANITIZER_BUILTIN): ... here.
8369         (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
8370         DEF_SANITIZER_BUILTIN in if stmt.  Add missing semicolon.
8371
8372 2017-11-05  Tom de Vries  <tom@codesourcery.com>
8373
8374         PR other/82784
8375         * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
8376         macro body.
8377         (ASM_OUTPUT_CASE_LABEL): Add semicolon after
8378         ASM_OUTPUT_BEFORE_CASE_LABEL call.
8379         * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
8380         after macro body.
8381         * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
8382         * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
8383         * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
8384
8385 2017-11-05  Tom de Vries  <tom@codesourcery.com>
8386
8387         PR other/82784
8388         * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
8389         "do {} while (0)".
8390
8391 2017-11-04  Michael Clark  <michaeljclark@mac.com>
8392
8393         * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
8394         config/riscv/riscv.md (addsi3): Use 'i' for immediates.
8395         (adddi3): Likewise.
8396         (*addsi3_extended): Likewise.
8397         (*addsi3_extended2): Likewise.
8398         (<optab>si3): Likewise.
8399         (<optab>di3): Likewise.
8400         (<optab><mode>3): Likewise.
8401         (<*optabe>si3_internal): Likewise.
8402         (zero_extendqi<SUPERQI:mode>2): Likewise.
8403         (*add<mode>hi3): Likewise.
8404         (*xor<mode>hi3): Likewise.
8405         (<optab>di3): Likewise.
8406         (*<optab>si3_extend): Likewise.
8407         (*sge<u>_<X:mode><GPR:mode>): Likewise.
8408         (*slt<u>_<X:mode><GPR:mode>): Likewise.
8409         (*sle<u>_<X:mode><GPR:mode>): Likewise.
8410
8411 2017-11-04  Andrew Waterman  <andrew@sifive.com>
8412
8413         * config/riscv/riscv.c (riscv_option_override): Conditionally set
8414         TARGET_STRICT_ALIGN based upon -mtune argument.
8415
8416 2017-11-04  Andrew Waterman  <andrew@sifive.com>
8417
8418         * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
8419
8420 2017-11-04  Daniel Santos  <daniel.santos@pobox.com>
8421
8422         * config/i386/i386.c (choose_basereg): Use optional scratch
8423         register and add assertion.
8424         (x86_emit_outlined_ms2sysv_save): Use scratch register when
8425         needed, and don't allocate stack.
8426         (ix86_expand_prologue): Rearrange where SSE saves/stub call is
8427         emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
8428         (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
8429
8430 2017-11-03  Jeff Law  <law@redhat.com>
8431
8432         * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
8433         (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
8434         to probe at the start of a noreturn function.
8435
8436 2017-11-03  Jakub Jelinek  <jakub@redhat.com>
8437
8438         PR tree-optimization/78821
8439         * gimple-ssa-store-merging.c: Update the file comment.
8440         (MAX_STORE_ALIAS_CHECKS): Define.
8441         (struct store_operand_info): New type.
8442         (store_operand_info::store_operand_info): New constructor.
8443         (struct store_immediate_info): Add rhs_code and ops data members.
8444         (store_immediate_info::store_immediate_info): Add rhscode, op0r
8445         and op1r arguments to the ctor, initialize corresponding data members.
8446         (struct merged_store_group): Add load_align_base and load_align
8447         data members.
8448         (merged_store_group::merged_store_group): Initialize them.
8449         (merged_store_group::do_merge): Update them.
8450         (merged_store_group::apply_stores): Pick the constant for
8451         encode_tree_to_bitpos from one of the two operands, or skip
8452         encode_tree_to_bitpos if neither operand is a constant.
8453         (class pass_store_merging): Add process_store method decl.  Remove
8454         bool argument from terminate_all_aliasing_chains method decl.
8455         (pass_store_merging::terminate_all_aliasing_chains): Remove
8456         var_offset_p argument and corresponding handling.
8457         (stmts_may_clobber_ref_p): New function.
8458         (compatible_load_p): New function.
8459         (imm_store_chain_info::coalesce_immediate_stores): Terminate group
8460         if there is overlap and rhs_code is not INTEGER_CST.  For
8461         non-overlapping stores terminate group if rhs is not mergeable.
8462         (get_alias_type_for_stmts): Change first argument from
8463         auto_vec<gimple *> & to vec<gimple *> &.  Add IS_LOAD, CLIQUEP and
8464         BASEP arguments.  If IS_LOAD is true, look at rhs1 of the stmts
8465         instead of lhs.  Compute *CLIQUEP and *BASEP in addition to the
8466         alias type.
8467         (get_location_for_stmts): Change first argument from
8468         auto_vec<gimple *> & to vec<gimple *> &.
8469         (struct split_store): Remove orig_stmts data member, add orig_stores.
8470         (split_store::split_store): Create orig_stores rather than orig_stmts.
8471         (find_constituent_stmts): Renamed to ...
8472         (find_constituent_stores): ... this.  Change second argument from
8473         vec<gimple *> * to vec<store_immediate_info *> *, push pointers
8474         to info structures rather than the statements.
8475         (split_group): Rename ALLOW_UNALIGNED argument to
8476         ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
8477         it.  Adjust find_constituent_stores caller.
8478         (imm_store_chain_info::output_merged_store): Handle rhs_code other
8479         than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
8480         get_location_for_stmts callers.  Set MR_DEPENDENCE_CLIQUE and
8481         MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
8482         (mem_valid_for_store_merging): New function.
8483         (handled_load): New function.
8484         (pass_store_merging::process_store): New method.
8485         (pass_store_merging::execute): Use process_store method.  Adjust
8486         terminate_all_aliasing_chains caller.
8487
8488 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8489
8490         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
8491         Return true for more constants, symbols and label references.
8492         (aarch64_valid_floating_const): Remove unused function.
8493
8494 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8495
8496         PR target/82786
8497         * config/aarch64/aarch64.c (aarch64_layout_frame):
8498         Undo forcing of LR at bottom of frame.
8499
8500 2017-11-03  Jeff Law  <law@redhat.com>
8501
8502         PR target/82823
8503         * config/i386/i386.c (ix86_expand_prologue): Tighten assert
8504         for int_registers_saved.
8505
8506         * cfganal.c (single_pred_edge_ignoring_loop_edges): New function
8507         extracted from tree-ssa-dom.c.
8508         * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
8509         * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
8510         (record_equivalences_from_incoming_edge): Add additional argument
8511         to single_pred_edge_ignoring_loop_edges call.
8512         * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
8513         (uncprop_dom_walker::before_dom_children): Add additional argument
8514         to single_pred_edge_ignoring_loop_edges call.
8515         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
8516         single_pred_edge_ignoring_loop_edges rather than open coding.
8517         * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.
8518
8519 2017-11-03  Marc Glisse  <marc.glisse@inria.fr>
8520
8521         * match.pd (-(-A)): Rewrite.
8522
8523 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8524
8525         * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
8526         (rs6000_emit_int_cmove): New declaration.
8527         * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
8528         (rs6000_emit_sISEL): Delete.
8529         (rs6000_emit_int_cmove): Make non-static.
8530         * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
8531         instead of rs6000_emit_sISEL.
8532
8533 2017-11-03  Jan Hubicka  <hubicka@ucw.cz>
8534
8535         * asan.c (create_cond_insert_point): Maintain profile.
8536         * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
8537         merged.
8538         * basic-block.h (struct basic_block_def): Remove frequency.
8539         (EDGE_FREQUENCY): Use to_frequency
8540         * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
8541         heuristics.
8542         (find_traces): Update to use to_frequency.
8543         (find_traces_1_round): Likewise; use only IPA counts.
8544         (bb_to_key): Likewise.
8545         (connect_traces): Use IPA counts only.
8546         (copy_bb_p): Update to use to_frequency.
8547         (fix_up_crossing_landing_pad): Likewise.
8548         (sanitize_hot_paths): Likewise.
8549         * bt-load.c (basic_block_freq): Likewise.
8550         * cfg.c (init_flow): Set count_max to uninitialized.
8551         (check_bb_profile): Remove frequencies; check counts.
8552         (dump_bb_info): Do not dump frequencies.
8553         (update_bb_profile_for_threading): Update counts only.
8554         (scale_bbs_frequencies_int): Likewise.
8555         (MAX_SAFE_MULTIPLIER): Remove.
8556         (scale_bbs_frequencies_gcov_type): Update counts only.
8557         (scale_bbs_frequencies_profile_count): Update counts only.
8558         (scale_bbs_frequencies): Update counts only.
8559         * cfg.h (struct control_flow_graph): Add count-max.
8560         (update_bb_profile_for_threading): Update prototype.
8561         * cfgbuild.c (find_bb_boundaries): Do not update frequencies.
8562         (find_many_sub_basic_blocks): Likewise.
8563         * cfgcleanup.c (try_forward_edges): Likewise.
8564         (try_crossjump_to_edge): Likewise.
8565         * cfgexpand.c (expand_gimple_cond): Likewise.
8566         (expand_gimple_tailcall): Likewise.
8567         (construct_init_block): Likewise.
8568         (construct_exit_block): Likewise.
8569         * cfghooks.c (verify_flow_info): Check consistency of counts.
8570         (dump_bb_for_graph): Do not dump frequencies.
8571         (split_block_1): Do not update frequencies.
8572         (split_edge): Do not update frequencies.
8573         (make_forwarder_block): Do not update frequencies.
8574         (duplicate_block): Do not update frequencies.
8575         (account_profile_record): Do not update frequencies.
8576         * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
8577         for global heuristics.
8578         * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
8579         (expected_loop_iterations_unbounded): Use counts only.
8580         * cfgloopmanip.c (scale_loop_profile): Simplify.
8581         (create_empty_loop_on_edge): Simplify
8582         (loopify): Simplify
8583         (duplicate_loop_to_header_edge): Simplify
8584         * cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
8585         (update_br_prob_note): Take care of removing note when profile
8586         becomes undefined.
8587         (relink_block_chain): Do not dump frequency.
8588         (rtl_account_profile_record): Use to_frequency.
8589         * cgraph.c (symbol_table::create_edge): Convert count to ipa count.
8590         (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
8591         (cgraph_update_edges_for_call_stmt_node): Likewise.
8592         (cgraph_edge::verify_count_and_frequency): Update.
8593         (cgraph_node::verify_node): Temporarily disable frequency verification.
8594         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
8595         to_cgraph_frequency.
8596         (cgraph_edge::rebuild_edges): Convert to ipa counts.
8597         * cgraphunit.c (init_lowered_empty_function): Do not initialize
8598         frequencies.
8599         (cgraph_node::expand_thunk): Update profile.
8600         * except.c (dw2_build_landing_pads): Do not update frequency.
8601         * final.c (compute_alignments): Use to_frequency.
8602         (dump_basic_block_info): Do not dump frequency.
8603         * gimple-pretty-print.c (dump_profile): Do not dump frequency.
8604         (dump_gimple_bb_header): Do not dump frequency.
8605         * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
8606         do update count.
8607         * gimple-streamer-in.c (input_bb): Do not stream frequency.
8608         * gimple-streamer-out.c (output_bb): Do not stream frequency.
8609         * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
8610         (init_before_recovery): Do not update frequency.
8611         (sched_create_recovery_edges): Do not update frequency.
8612         * hsa-gen.c (convert_switch_statements): Do not update frequency.
8613         * ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
8614         (ipa_cp_c_finalize): Set max_count to uninitialized.
8615         * ipa-fnsummary.c (get_minimal_bb): Use counts.
8616         (param_change_prob): Use counts.
8617         * ipa-profile.c (ipa_profile_generate_summary): Do not summarize
8618         local profiles.
8619         * ipa-split.c (consider_split): Use to_frequency.
8620         (split_function): Use to_frequency.
8621         * ira-build.c (loop_compare_func): Likewise.
8622         (mark_loops_for_removal): Likewise.
8623         (mark_all_loops_for_removal): Likewise.
8624         * loop-doloop.c (doloop_modify): Do not update frequency.
8625         * loop-unroll.c (unroll_loop_runtime_iterations): Do not update
8626         frequency.
8627         * lto-streamer-in.c (input_function): Update count_max.
8628         * omp-expand.c (expand_omp_taskreg): Update count_max.
8629         * omp-simd-clone.c (simd_clone_adjust): Update profile.
8630         * predict.c (maybe_hot_frequency_p): Use to_frequency.
8631         (maybe_hot_count_p): Use ipa counts only.
8632         (maybe_hot_bb_p): Simplify.
8633         (maybe_hot_edge_p): Simplify.
8634         (probably_never_executed): Do not take frequency argument.
8635         (probably_never_executed_bb_p): Do not pass frequency.
8636         (probably_never_executed_edge_p): Likewise.
8637         (combine_predictions_for_bb): Check that profile is nonzero.
8638         (propagate_freq): Do not set frequency.
8639         (drop_profile): Simplify.
8640         (counts_to_freqs): Simplify.
8641         (expensive_function_p): Use to_frequency.
8642         (propagate_unlikely_bbs_forward): Simplify.
8643         (determine_unlikely_bbs): Simplify.
8644         (estimate_bb_frequencies): Add hack to silence graphite issues.
8645         (compute_function_frequency): Use ipa counts.
8646         (pass_profile::execute): Update.
8647         (rebuild_frequencies): Use counts only.
8648         (force_edge_cold): Use counts only.
8649         * profile-count.c (profile_count::dump): Dump new count types.
8650         (profile_count::differs_from_p): Check compatiblity.
8651         (profile_count::to_frequency): New function.
8652         (profile_count::to_cgraph_frequency): New function.
8653         * profile-count.h (struct function): Declare.
8654         (enum profile_quality): Add profile_guessed_local and
8655         profile_guessed_global0.
8656         (class profile_proability): Decrease number of bits to 29;
8657         update from_reg_br_prob_note and to_reg_br_prob_note.
8658         (class profile_count: Update comment; decrease number of bits
8659         to 61. Check compatibility.
8660         (profile_count::compatible_p): New private member function.
8661         (profile_count::ipa_p): New member function.
8662         (profile_count::operator<): Handle global zero correctly.
8663         (profile_count::operator>): Handle global zero correctly.
8664         (profile_count::operator<=): Handle global zero correctly.
8665         (profile_count::operator>=): Handle global zero correctly.
8666         (profile_count::nonzero_p): New member function.
8667         (profile_count::force_nonzero): New member function.
8668         (profile_count::max): New member function.
8669         (profile_count::apply_scale): Handle IPA scalling.
8670         (profile_count::guessed_local): New member function.
8671         (profile_count::global0): New member function.
8672         (profile_count::ipa): New member function.
8673         (profile_count::to_frequency): Declare.
8674         (profile_count::to_cgraph_frequency): Declare.
8675         * profile.c (OVERLAP_BASE): Delete.
8676         (compute_frequency_overlap): Delete.
8677         (compute_branch_probabilities): Do not use compute_frequency_overlap.
8678         * regs.h (REG_FREQ_FROM_BB): Use to_frequency.
8679         * sched-ebb.c (rank): Use counts only.
8680         * shrink-wrap.c (handle_simple_exit): Use counts only.
8681         (try_shrink_wrapping): Use counts only.
8682         (place_prologue_for_one_component): Use counts only.
8683         * tracer.c (find_best_predecessor): Use to_frequency.
8684         (find_trace): Use to_frequency.
8685         (tail_duplicate): Use to_frequency.
8686         * trans-mem.c (expand_transaction): Do not update frequency.
8687         * tree-call-cdce.c: Do not update frequency.
8688         * tree-cfg.c (gimple_find_sub_bbs): Likewise.
8689         (gimple_merge_blocks): Likewise.
8690         (gimple_split_edge): Likewise.
8691         (gimple_duplicate_sese_region): Likewise.
8692         (gimple_duplicate_sese_tail): Likewise.
8693         (move_sese_region_to_fn): Likewise.
8694         (gimple_account_profile_record): Likewise.
8695         (insert_cond_bb): Likewise.
8696         * tree-complex.c (expand_complex_div_wide): Likewise.
8697         * tree-eh.c (lower_resx): Update profile.
8698         * tree-inline.c (copy_bb): Simplify count scaling; do not scale
8699         frequencies.
8700         (initialize_cfun): Do not initialize frequencies
8701         (freqs_to_counts): Delete.
8702         (copy_cfg_body): Ignore count parameter.
8703         (copy_body): Update.
8704         (expand_call_inline): Update count_max.
8705         (optimize_inline_calls): Update count_max.
8706         (tree_function_versioning): Update count_max.
8707         * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
8708         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
8709         frequency.
8710         * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
8711         * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
8712         (try_peel_loop): Likewise.
8713         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
8714         to_frequency.
8715         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
8716         (tree_transform_and_unroll_loop): Do not use frequencies
8717         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
8718         Use reliable prediction only.
8719         * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
8720         * tree-ssa-sink.c (select_best_block): Use to_frequency.
8721         * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
8722         probability scaling.
8723         * tree-ssa-threadupdate.c (create_block_for_threading): Do
8724         not update frequency
8725         (any_remaining_duplicated_blocks): Likewise.
8726         (update_profile): Likewise.
8727         (estimated_freqs_path): Delete.
8728         (freqs_to_counts_path): Delete.
8729         (clear_counts_path): Delete.
8730         (ssa_fix_duplicate_block_edges): Likewise.
8731         (duplicate_thread_path): Likewise.
8732         * tree-switch-conversion.c (gen_inbound_check): Use counts.
8733         * tree-tailcall.c (decrease_profile): Do not update frequency.
8734         (eliminate_tail_call): Likewise.
8735         * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
8736         * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
8737         (optimize_mask_stores): Likewise.
8738         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
8739         * ubsan.c (ubsan_expand_null_ifn): Update profile.
8740         (ubsan_expand_ptr_ifn): Update profile.
8741         * value-prof.c (gimple_ic): Simplify.
8742         * value-prof.h (gimple_ic): Update prototype.
8743         * ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
8744         * ipa-inline.c (compute_uninlined_call_time): Be sure that
8745         counts are nonzero.
8746         (want_inline_self_recursive_call_p): Likewise.
8747         (resolve_noninline_speculation): Only cummulate defined counts.
8748         (inline_small_functions): Use nonzero_p.
8749         (ipa_inline): Do not access freed node.
8750
8751 2017-11-03  Wilco Dijkstra  <wdijkstr@arm.com>
8752
8753         * config/aarch64/aarch64.c (aarch64_override_options_internal):
8754         Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
8755
8756 2017-11-03  Kito Cheng  <kito.cheng@gmail.com>
8757
8758         * config/riscv/riscv.c (riscv_legitimize_move): Handle
8759         non-legitimate address.
8760
8761 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8762
8763         * config/rs6000/rs6000.md (*lt0_disi): Delete.
8764         (*lt0_<mode>di, *lt0_<mode>si): New.
8765
8766 2017-11-03  Segher Boessenkool  <segher@kernel.crashing.org>
8767
8768         * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to
8769         TARGET_PAIRED_FLOAT.
8770
8771 2017-11-03  Siddhesh Poyarekar  <siddhesh.poyarekar@linaro.org>
8772             Jim Wilson  <jim.wilson@linaro.org>
8773
8774         * config/aarch64/aarch64-cores.def (saphira): New CPU.
8775         * config/aarch64/aarch64-tune.md: Regenerated.
8776         * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira".
8777         * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table.
8778
8779 2017-11-03  Cupertino Miranda  <cmiranda@synopsys.com>
8780
8781         * config/arc/arc.c (arc_save_restore): Corrected CFA note.
8782         (arc_expand_prologue): Restore blink for millicode.
8783         * config/arc/linux.h (LINK_EH_SPEC): Defined.
8784
8785 2017-11-03  Richard Sandiford  <richard.sandiford@linaro.org>
8786
8787         PR target/82809
8788         * config/i386/i386.c (ix86_vector_duplicate_value): Use
8789         gen_vec_duplicate after forcing the scalar into a register.
8790
8791 2017-11-02  Segher Boessenkool  <segher@kernel.crashing.org>
8792
8793         * combine (try_combine): Print the insns input to try_combine to the
8794         dump file.
8795
8796 2017-11-02  Steve Ellcey  <sellcey@cavium.com>
8797
8798         PR target/79868
8799         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
8800         Remove second argument from aarch64_process_target_attr call.
8801         * config/aarch64/aarch64-protos.h (aarch64_process_target_attr):
8802         Ditto.
8803         * config/aarch64/aarch64.c (aarch64_attribute_info): Change
8804         field type.
8805         (aarch64_handle_attr_arch): Remove second argument.
8806         (aarch64_handle_attr_cpu): Ditto.
8807         (aarch64_handle_attr_tune): Ditto.
8808         (aarch64_handle_attr_isa_flags): Ditto.
8809         (aarch64_process_one_target_attr): Ditto.
8810         (aarch64_process_target_attr): Ditto.
8811         (aarch64_option_valid_attribute_p): Remove second argument.
8812         on aarch64_process_target_attr call.
8813
8814 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8815
8816         * diagnostic.c: Include "selftest-diagnostic.h".
8817         (selftest::assert_location_text): New function.
8818         (selftest::test_diagnostic_get_location_text): New function.
8819         (selftest::diagnostic_c_tests): Call it.
8820
8821 2017-11-02  David Malcolm  <dmalcolm@redhat.com>
8822
8823         * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o.
8824         * diagnostic-show-locus.c: Include "selftest-diagnostic.h".
8825         (class selftest::test_diagnostic_context): Move to...
8826         * selftest-diagnostic.c: New file.
8827         * selftest-diagnostic.h: New file.
8828
8829 2017-11-02  James Bowman  <james.bowman@ftdichip.com>
8830
8831         * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase
8832         offset range for FT32B.
8833         * config/ft32/ft32.h: option "mcompress" enables relaxation.
8834         * config/ft32/ft32.md: Add TARGET_NOPM.
8835         * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm.
8836         * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm.
8837
8838 2017-11-02  Wilco Dijkstra  <wdijkstr@arm.com>
8839
8840         * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define.
8841
8842 2017-11-02  Jeff Law  <law@redhat.com>
8843
8844         * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove
8845         virtual keyword on FINAL OVERRIDE members.
8846
8847         * tree-ssa-propagate.h (ssa_propagation_engine): Group
8848         virtuals together.  Add virtual destructor.
8849         (substitute_and_fold_engine): Similarly.
8850
8851 2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
8852
8853         * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+.
8854
8855 2017-11-02  Richard Biener  <rguenther@suse.de>
8856
8857         PR tree-optimization/82795
8858         * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
8859
8860 2017-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8861
8862         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require
8863         gcc_SUN_LD_VERSION.
8864         (gcc_GAS_CHECK_FEATURE): Remove.
8865         * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from
8866         gcc_AC_INITFINI_ARRAY here.  Update for Solaris 11.4 changes.
8867         * configure: Regenerate.
8868
8869 2017-11-02  Claudiu Zissulescu <claziss@synopsys.com>
8870
8871         * config/arc/arc.c (hwloop_optimize): Account for empty
8872         body loops.
8873
8874 2017-11-02  Richard Biener  <rguenther@suse.de>
8875
8876         PR middle-end/82765
8877         * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
8878         Truncate ARRAY_REF index and element size.
8879
8880 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
8881
8882         * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
8883
8884 2017-11-01  Jeff Law  <law@redhat.com>
8885
8886         * tree-ssa-ccp.c (ccp_folder): New class derived from
8887         substitute_and_fold_engine.
8888         (ccp_folder::get_value): New member function.
8889         (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt.
8890         (ccp_fold_stmt): Remove prototype.
8891         (ccp_finalize): Call substitute_and_fold from the ccp_class.
8892         * tree-ssa-copy.c (copy_folder): New class derived from
8893         substitute_and_fold_engine.
8894         (copy_folder::get_value): Renamed from get_value.
8895         (fini_copy_prop): Call substitute_and_fold from copy_folder class.
8896         * tree-vrp.c (vrp_folder): New class derived from
8897         substitute_and_fold_engine.
8898         (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt.
8899         (vrp_folder::get_value): New member function.
8900         (vrp_finalize): Call substitute_and_fold from vrp_folder class.
8901         (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in.
8902         * tree-ssa-propagate.h (substitute_and_fold_engine): New class to
8903         provide a class interface to folder/substitute routines.
8904         (ssa_prop_fold_stmt_fn): Remove typedef.
8905         (ssa_prop_get_value_fn): Likewise.
8906         (subsitute_and_fold): Remove prototype.
8907         (replace_uses_in): Likewise.
8908         * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
8909         Renamed from replace_uses_in.  Call the virtual member function
8910         (substitute_and_fold_engine::replace_phi_args_in): Similarly.
8911         (substitute_and_fold_dom_walker): Remove initialization of
8912         data member entries for calbacks.  Add substitute_and_fold_engine
8913         member and initialize it.
8914         (substitute_and_fold_dom_walker::before_dom_children0: Use the
8915         member functions for get_value, replace_phi_args_in c
8916         replace_uses_in, and fold_stmt calls.
8917         (substitute_and_fold_engine::substitute_and_fold): Renamed from
8918         substitute_and_fold.  Remove assert.   Update ctor call.
8919
8920         * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef.
8921         (ssa_prop_visit_phi_fn): Likewise.
8922         (class ssa_propagation_engine): New class to provide an interface
8923         into ssa_propagate.
8924         * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped
8925         variable.
8926         (ssa_prop_visit_phi): Likewise.
8927         (ssa_propagation_engine::simulate_stmt): Moved into class.
8928         Call visit_phi/visit_stmt from the class rather than via
8929         file scoped static variables.
8930         (ssa_propagation_engine::simulate_block): Moved into class.
8931         (ssa_propagation_engine::process_ssa_edge_worklist): Similarly.
8932         (ssa_propagation_engine::ssa_propagate): Similarly.  No longer
8933         set file scoped statics for the visit_stmt/visit_phi callbacks.
8934         * tree-complex.c (complex_propagate): New class derived from
8935         ssa_propagation_engine.
8936         (complex_propagate::visit_stmt): Renamed from complex_visit_stmt.
8937         (complex_propagate::visit_phi): Renamed from complex_visit_phi.
8938         (tree_lower_complex): Call ssa_propagate via the complex_propagate
8939         class.
8940         * tree-ssa-ccp.c: (ccp_propagate): New class derived from
8941         ssa_propagation_engine.
8942         (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node.
8943         (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt.
8944         (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class.
8945         * tree-ssa-copy.c (copy_prop): New class derived from
8946         ssa_propagation_engine.
8947         (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt.
8948         (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node.
8949         (execute_copy_prop): Call ssa_propagate from the copy_prop class.
8950         * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine.
8951         (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt.
8952         (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node.
8953         (execute_vrp): Call ssa_propagate from the vrp_prop class.
8954
8955 2017-11-01  Jakub Jelinek  <jakub@redhat.com>
8956
8957         PR rtl-optimization/82778
8958         PR rtl-optimization/82597
8959         * compare-elim.c (struct comparison): Add in_a_setter field.
8960         (find_comparison_dom_walker::before_dom_children): Remove killed
8961         bitmap and df_simulate_find_defs call, instead walk the defs.
8962         Compute last_setter and initialize in_a_setter.  Merge definitions
8963         with first initialization for a few variables.
8964         (try_validate_parallel): Use insn_invalid_p instead of
8965         recog_memoized.  Return insn rather than just the pattern.
8966         (try_merge_compare): Fix up comment.  Don't uselessly test if
8967         in_a is a REG_P.  Use cmp->in_a_setter instead of walking UD
8968         chains.
8969         (execute_compare_elim_after_reload): Remove df_chain_add_problem
8970         call.
8971
8972 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8973             Alan Hayward  <alan.hayward@arm.com>
8974             David Sherwood  <david.sherwood@arm.com>
8975
8976         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
8977         aarch64_hard_regno_nregs to get the number of registers
8978         in a mode.
8979
8980 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8981             Alan Hayward  <alan.hayward@arm.com>
8982             David Sherwood  <david.sherwood@arm.com>
8983
8984         * config/aarch64/constraints.md (Upl): Rename to...
8985         (Uaa): ...this.
8986         * config/aarch64/aarch64.md
8987         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw):
8988         Update accordingly.
8989
8990 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8991             Alan Hayward  <alan.hayward@arm.com>
8992             David Sherwood  <david.sherwood@arm.com>
8993
8994         * config/aarch64/aarch64.c (aarch64_add_constant_internal)
8995         (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move
8996         earlier in file.
8997
8998 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
8999             Alan Hayward  <alan.hayward@arm.com>
9000             David Sherwood  <david.sherwood@arm.com>
9001
9002         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp)
9003         (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev)
9004         (aarch64_evpc_dup): Generate rtl direcly, rather than using
9005         named expanders.
9006         (aarch64_expand_vec_perm_const_1): Explicitly check for permutes
9007         of a single element.
9008         * config/aarch64/iterators.md: Add a comment above the permute
9009         unspecs to say that they are generated directly by
9010         aarch64_expand_vec_perm_const.
9011         * config/aarch64/aarch64-simd.md: Likewise the permute instructions.
9012
9013 2017-11-01  Nathan Sidwell  <nathan@acm.org>
9014
9015         * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P.
9016
9017 2017-11-01  Palmer Dabbelt  <palmer@dabbelt.com>
9018
9019         * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
9020         and medany code models, and describe what they do.
9021
9022 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9023
9024         Revert accidental duplicate:
9025
9026         * combine.c (can_change_dest_mode): Reject changes in
9027         REGMODE_NATURAL_SIZE.
9028
9029 2017-11-01  Segher Boessenkool  <segher@kernel.crashing.org>
9030
9031         PR rtl-optimization/64682
9032         PR rtl-optimization/69567
9033         PR rtl-optimization/69737
9034         PR rtl-optimization/82683
9035         * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
9036         register mentioned in the note, drop the note, unless it came from I3,
9037         in which case it should go to I3 again.
9038
9039 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9040
9041         * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap
9042         and return false if not.
9043         (clear_bytes_written_by, live_bytes_read): Update accordingly.
9044
9045 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9046
9047         * tree-ssa-alias.h (ranges_overlap_p): Return false if either
9048         range is known to be empty.
9049
9050 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9051             Alan Hayward  <alan.hayward@arm.com>
9052             David Sherwood  <david.sherwood@arm.com>
9053
9054         * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS
9055         and CONST_VECTOR_NUNITS instead of computing the number of units from
9056         the byte sizes of the vector and element.
9057         (simplify_binary_operation_1): Likewise.
9058         (simplify_const_binary_operation): Likewise.
9059         (simplify_ternary_operation): 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         * var-tracking.c (INT_MEM_OFFSET): Replace with...
9066         (int_mem_offset): ...this new function.
9067         (var_mem_set, var_mem_delete_and_set, var_mem_delete)
9068         (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs)
9069         (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset):
9070         Update accordingly.
9071
9072 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9073             Alan Hayward  <alan.hayward@arm.com>
9074             David Sherwood  <david.sherwood@arm.com>
9075
9076         * lower-subreg.c (interesting_mode_p): New function.
9077         (compute_costs, find_decomposable_subregs, decompose_register)
9078         (simplify_subreg_concatn, can_decompose_p, resolve_simple_move)
9079         (resolve_clobber, dump_choices): Use it.
9080
9081 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9082             Alan Hayward  <alan.hayward@arm.com>
9083             David Sherwood  <david.sherwood@arm.com>
9084
9085         * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'.
9086
9087 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9088             Alan Hayward  <alan.hayward@arm.com>
9089             David Sherwood  <david.sherwood@arm.com>
9090
9091         * alias.c (find_base_value, find_base_term): Only process integer
9092         truncations.  Check the precision rather than the size.
9093
9094 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9095             Alan Hayward  <alan.hayward@arm.com>
9096             David Sherwood  <david.sherwood@arm.com>
9097
9098         * machmode.h (is_narrower_int_mode): New function
9099         * optabs.c (expand_float, expand_fix): Use it.
9100         * dwarf2out.c (rotate_loc_descriptor): Likewise.
9101
9102 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9103             Alan Hayward  <alan.hayward@arm.com>
9104             David Sherwood  <david.sherwood@arm.com>
9105
9106         * rtl.h (narrower_subreg_mode): New function.
9107         * ira-color.c (update_costs_from_allocno): Use it.
9108
9109 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9110             Alan Hayward  <alan.hayward@arm.com>
9111             David Sherwood  <david.sherwood@arm.com>
9112
9113         * optabs-query.h (convert_optab_p): New function, split out from...
9114         (convert_optab_handler): ...here.
9115         (widening_optab_handler): Delete.
9116         (find_widening_optab_handler): Remove permit_non_widening parameter.
9117         (find_widening_optab_handler_and_mode): Likewise.  Provide an
9118         override that operates on mode class wrappers.
9119         * optabs-query.c (widening_optab_handler): Delete.
9120         (find_widening_optab_handler_and_mode): Remove permit_non_widening
9121         parameter.  Assert that the two modes are the same class and that
9122         the "from" mode is narrower than the "to" mode.  Use
9123         convert_optab_handler instead of widening_optab_handler.
9124         * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
9125         instead of widening_optab_handler.
9126         * expr.c (expand_expr_real_2): Update calls to
9127         find_widening_optab_handler.
9128         * optabs.c (expand_widen_pattern_expr): Likewise.
9129         (expand_binop_directly): Take the insn_code as a parameter.
9130         (expand_binop): Only call find_widening_optab_handler for
9131         conversion optabs; use optab_handler otherwise.  Update calls
9132         to find_widening_optab_handler and expand_binop_directly.
9133         Use convert_optab_handler instead of widening_optab_handler.
9134         * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
9135         find_widening_optab_handler and use scalar_mode rather than
9136         machine_mode.
9137         (convert_plusminus_to_widen): Likewise.
9138
9139 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9140             Alan Hayward  <alan.hayward@arm.com>
9141             David Sherwood  <david.sherwood@arm.com>
9142
9143         * machmode.h (fixed_size_mode): New class.
9144         * rtl.h (get_pool_mode): Return fixed_size_mode.
9145         * gengtype.c (main): Add fixed_size_mode.
9146         * target.def (get_raw_result_mode): Return a fixed_size_mode.
9147         (get_raw_arg_mode): Likewise.
9148         * doc/tm.texi: Regenerate.
9149         * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
9150         * targhooks.c (default_get_reg_raw_mode): Likewise.
9151         * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
9152         * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
9153         * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
9154         (msp430_get_raw_result_mode): Likewise.
9155         * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
9156         * dbxout.c (dbxout_parms): Require fixed-size modes.
9157         * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
9158         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
9159         * omp-low.c (lower_oacc_reductions): Likewise.
9160         * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
9161         (simplify_subreg): Update accordingly.
9162         * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
9163         (force_const_mem): Update accordingly.  Return NULL_RTX for modes
9164         that aren't fixed-size.
9165         (get_pool_mode): Return a fixed_size_mode.
9166         (output_constant_pool_2): Take a fixed_size_mode.
9167
9168 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9169             Alan Hayward  <alan.hayward@arm.com>
9170             David Sherwood  <david.sherwood@arm.com>
9171
9172         * doc/rtl.texi (vec_series): Document.
9173         (const): Say that the operand can be a vec_series.
9174         * rtl.def (VEC_SERIES): New rtx code.
9175         * rtl.h (const_vec_series_p_1): Declare.
9176         (const_vec_series_p): New function.
9177         * emit-rtl.h (gen_const_vec_series): Declare.
9178         (gen_vec_series): Likewise.
9179         * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
9180         (gen_vec_series): Likewise.
9181         * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
9182         * simplify-rtx.c (simplify_unary_operation): Handle negations
9183         of vector series.
9184         (simplify_binary_operation_series): New function.
9185         (simplify_binary_operation_1): Use it.  Handle VEC_SERIES.
9186         (test_vector_ops_series): New function.
9187         (test_vector_ops): Call it.
9188         * config/powerpcspe/altivec.md (altivec_lvsl): Use
9189         gen_const_vec_series.
9190         (altivec_lvsr): Likewise.
9191         * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
9192
9193 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9194             Alan Hayward  <alan.hayward@arm.com>
9195             David Sherwood  <david.sherwood@arm.com>
9196
9197         * doc/rtl.texi (const): Update description of address constants.
9198         Say that vector constants are allowed too.
9199         * common.md (E, F): Use CONSTANT_P instead of checking for
9200         CONST_VECTOR.
9201         * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
9202         checking for CONST_VECTOR.
9203         * expmed.c (make_tree): Use build_vector_from_val for a CONST
9204         VEC_DUPLICATE.
9205         * expr.c (expand_expr_real_2): Check for vector modes instead
9206         of checking for CONST_VECTOR.
9207         * rtl.h (const_vec_p): New function.
9208         (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
9209         (unwrap_const_vec_duplicate): Handle them here too.
9210
9211 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9212             David Malcolm  <dmalcolm@redhat.com>
9213             Alan Hayward  <alan.hayward@arm.com>
9214             David Sherwood  <david.sherwood@arm.com>
9215
9216         * rtl.h (vec_duplicate_p): New function.
9217         * selftest-rtl.c (assert_rtx_eq_at): New function.
9218         * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
9219         (assert_rtx_eq_at): Declare.
9220         * selftest.h (selftest::simplify_rtx_c_tests): Declare.
9221         * selftest-run-tests.c (selftest::run_tests): Call it.
9222         * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
9223         (simplify_unary_operation_1): Recursively handle vector duplicates.
9224         (simplify_binary_operation_1): Likewise.  Handle VEC_SELECTs of
9225         vector duplicates.
9226         (simplify_subreg): Handle subregs of vector duplicates.
9227         (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
9228         (selftest::simplify_rtx_c_tests): New functions.
9229
9230 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9231             Alan Hayward  <alan.hayward@arm.com>
9232             David Sherwood  <david.sherwood@arm.com>
9233
9234         * emit-rtl.h (gen_const_vec_duplicate): Declare.
9235         (gen_vec_duplicate): Likewise.
9236         * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
9237         out from...
9238         (gen_const_vector): ...here.
9239         (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
9240         (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
9241         whose elements are all equal.
9242         * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
9243         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
9244         (simplify_relational_operation): Likewise.
9245         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
9246         Likewise.
9247         (aarch64_simd_dup_constant): Use gen_vec_duplicate.
9248         (aarch64_expand_vector_init): Likewise.
9249         * config/arm/arm.c (neon_vdup_constant): Likewise.
9250         (neon_expand_vector_init): Likewise.
9251         (arm_expand_vec_perm): Use gen_const_vec_duplicate.
9252         (arm_block_set_unaligned_vect): Likewise.
9253         (arm_block_set_aligned_vect): Likewise.
9254         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
9255         * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
9256         (expand_vec_perm_even_odd_pack): Likewise.
9257         (ix86_vector_duplicate_value): Use gen_vec_duplicate.
9258         * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
9259         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
9260         gen_const_vec_duplicate.
9261         * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
9262         * config/mips/mips.c (mips_gen_const_int_vector): Use
9263         gen_const_vec_duplicate.
9264         (mips_expand_vector_init): Use CONST0_RTX.
9265         * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
9266         (define_split): Use gen_const_vec_duplicate.
9267         * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
9268         (define_split): Use gen_const_vec_duplicate.
9269         * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
9270         (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
9271         * config/spu/spu.c (spu_const): Likewise.
9272
9273 2017-11-01  Richard Sandiford  <richard.sandiford@linaro.org>
9274             Alan Hayward  <alan.hayward@arm.com>
9275             David Sherwood  <david.sherwood@arm.com>
9276
9277         * combine.c (can_change_dest_mode): Reject changes in
9278         REGMODE_NATURAL_SIZE.
9279
9280 2017-10-31  Sandra Loosemore  <sandra@codesourcery.com>
9281
9282         * configure.ac (--enable-libssp): New.
9283         (gcc_cv_libc_provides_ssp): Check for explicit setting before
9284         trying to determine target-specific default.  Adjust indentation.
9285         * configure: Regenerated.
9286         * doc/install.texi (Configuration): Expand --disable-libssp
9287         documentation.
9288
9289 2017-10-31  Daniel Santos  <daniel.santos@pobox.com>
9290
9291         config/i386/i386.c (ix86_expand_epilogue): Correct stack
9292         calculation.
9293
9294 2017-10-31  Martin Jambor  <mjambor@suse.cz>
9295
9296         PR c++/81702
9297         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
9298
9299 2017-10-31  David Malcolm  <dmalcolm@redhat.com>
9300
9301         * auto-profile.c (autofdo_source_profile::read): Use
9302         UNKNOWN_LOCATION rather than 0.
9303         * diagnostic-core.h (warning_at_rich_loc): Rename to...
9304         (warning_at): ...this overload.
9305         (warning_at_rich_loc_n): Rename to...
9306         (warning_n): ...this overload.
9307         (error_at_rich_loc): Rename to...
9308         (error_at): ...this overload.
9309         (pedwarn_at_rich_loc): Rename to...
9310         (pedwarn): ...this overload.
9311         (permerror_at_rich_loc): Rename to...
9312         (permerror): ...this overload.
9313         (inform_at_rich_loc): Rename to...
9314         (inform): ...this overload.
9315         * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
9316         (diagnostic_n_impl_richloc): Rename to...
9317         (diagnostic_n_impl): ...this rich_location *-based decl.
9318         (inform_at_rich_loc): Rename to...
9319         (inform): ...this, and add an assertion.
9320         (inform_n): Update for removal of location_t-based diagnostic_n_impl.
9321         (warning_at_rich_loc): Rename to...
9322         (warning_at): ...this, and add an assertion.
9323         (warning_at_rich_loc_n): Rename to...
9324         (warning_n): ...this, and add an assertion.
9325         (warning_n): Update location_t-based implementation for removal of
9326         location_t-based diagnostic_n_impl.
9327         (pedwarn_at_rich_loc): Rename to...
9328         (pedwarn): ...this, and add an assertion.
9329         (permerror_at_rich_loc): Rename to...
9330         (permerror): ...this, and add an assertion.
9331         (error_n): Update for removal of location_t-based diagnostic_n_impl.
9332         (error_at_rich_loc): Rename to...
9333         (error_at): ...this, and add an assertion.
9334         * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
9335         (driver::do_spec_on_infiles): Likewise.
9336         * substring-locations.c (format_warning_va): Update for renaming
9337         of inform_at_rich_loc.
9338
9339 2017-10-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
9340
9341         * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
9342         _Float<N>X built-in functions so that the variant without the
9343         "__builtin_" prefix is only enabled for the GNU C and Objective C
9344         languages when they are in non-strict ANSI/ISO mode.
9345         (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
9346         * target.def (floatn_builtin_p): Add a target hook to control
9347         whether _Float<N> and _Float<N>X built-in functions without the
9348         "__builtin_" prefix are enabled, and return true for C and
9349         Objective C in the default hook.  Include langhooks.h in
9350         targhooks.c.
9351         * targhooks.h (default_floatn_builtin_p): Likewise.
9352         * targhooks.c (default_floatn_builtin_p): Likewise.
9353         * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
9354         floatn_builtin_p target hook.
9355         * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
9356
9357 2017-10-31  Matthew Fortune  <matthew.fortune@imgtec.com>
9358             Eric Botcazou  <ebotcazou@adacore.com>
9359
9360         PR rtl-optimization/81803
9361         * lra-constraints.c (curr_insn_transform): Also reload the whole
9362         register for a strict subreg no wider than a word if this is for
9363         a WORD_REGISTER_OPERATIONS target.
9364
9365 2017-10-31  Jason Merrill  <jason@redhat.com>
9366
9367         * gdbinit.in: Skip over inlines from timevar.h.
9368
9369 2017-10-31  Martin Liska  <mliska@suse.cz>
9370
9371         * doc/gcov.texi: Document new option.
9372         * gcov.c (print_usage): Likewise print it.
9373         (process_args): Support the argument.
9374         (format_count): New function.
9375         (format_gcov): Use the function.
9376
9377 2017-10-31  Martin Liska  <mliska@suse.cz>
9378
9379         * gcov.c (struct name_map): do not use typedef.
9380         Define operator== and operator<.
9381         (name_search): Remove.
9382         (name_sort): Remove.
9383         (main): Do not allocate names.
9384         (process_file): Add vertical space.
9385         (generate_results): Use std::find.
9386         (release_structures): Do not release memory.
9387         (find_source): Use std::find.
9388
9389 2017-10-31  Martin Liska  <mliska@suse.cz>
9390
9391         * gcov.c (struct line_info): Remove it's typedef.
9392         (line_info::line_info): Add proper ctor.
9393         (line_info::has_block): Do not use a typedef.
9394         (struct source_info): Do not use typedef.
9395         (circuit): Likewise.
9396         (get_cycles_count): Likewise.
9397         (output_intermediate_file): Iterate via vector iterator.
9398         (add_line_counts): Use std::vector methods.
9399         (accumulate_line_counts): Likewise.
9400         (output_lines): Likewise.
9401
9402 2017-10-31  Martin Liska  <mliska@suse.cz>
9403
9404         * gcov.c (struct source_info): Remove typedef.
9405         (source_info::source_info): Add proper ctor.
9406         (accumulate_line_counts): Use struct, not it's typedef.
9407         (output_gcov_file): Likewise.
9408         (output_lines): Likewise.
9409         (main): Do not allocate an array.
9410         (output_intermediate_file): Use size of vector container.
9411         (process_file): Resize the vector.
9412         (generate_results): Do not preallocate, use newly added vector
9413         lines.
9414         (release_structures): Do not release sources.
9415         (find_source): Use vector methods.
9416         (add_line_counts): Do not use typedef.
9417
9418 2017-10-31  Martin Liska  <mliska@suse.cz>
9419
9420         * doc/gcov.texi: Document that.
9421         * gcov.c (add_line_counts): Mark lines with a non-executed
9422         statement.
9423         (output_line_beginning): Handle such lines.
9424         (output_lines): Pass new argument.
9425         (output_intermediate_file): Print it in intermediate format.
9426
9427 2017-10-31  Martin Liska  <mliska@suse.cz>
9428
9429         * color-macros.h: New file.
9430         * diagnostic-color.c: Factor out color related to macros to
9431         color-macros.h.
9432         * doc/gcov.texi: Document -k option.
9433         * gcov.c (INCLUDE_STRING): Include string.h.
9434         (print_usage): Add -k option.
9435         (process_args): Parse it.
9436         (pad_count_string): New function.
9437         (output_line_beginning): Likewise.
9438         (DEFAULT_LINE_START): New macro.
9439         (output_lines): Support color output.
9440
9441 2017-10-31  Martin Liska  <mliska@suse.cz>
9442
9443         PR gcov-profile/82633
9444         * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
9445         their interaction with GCOV infrastructure.
9446         * configure.ac: Add -fkeep-{inline,static}-functions to
9447         coverage_flags.
9448         * configure: Regenerate.
9449
9450 2017-10-31  Uros Bizjak  <ubizjak@gmail.com>
9451
9452         PR target/82772
9453         * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
9454
9455 2017-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
9456
9457         PR target/82674
9458         * config/rs6000/rs6000.md (allocate_stack): Force update interval
9459         into a register if it does not fit into an immediate offset field.
9460
9461 2017-10-31  Olivier Hainque  <hainque@adacore.com>
9462
9463         * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
9464
9465 2017-10-31  Julia Koval  <julia.koval@intel.com>
9466
9467         * config.gcc: Add gfniintrin.h.
9468         * config/i386/gfniintrin.h: New.
9469         * config/i386/i386-builtin-types.def
9470         (__builtin_ia32_vgf2p8affineinvqb_v64qi,
9471         __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
9472         __builtin_ia32_vgf2p8affineinvqb_v32qi,
9473         __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
9474         __builtin_ia32_vgf2p8affineinvqb_v16qi,
9475         __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
9476         * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
9477         V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
9478         V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
9479         V64QI_FTYPE_V64QI_V64QI_INT): New types.
9480         * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
9481         * config/i386/immintrin.h: Include gfniintrin.h.
9482         * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
9483
9484 2017-10-30  Eric Botcazou  <ebotcazou@adacore.com>
9485
9486         * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
9487
9488 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
9489
9490         * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
9491         (arm_ashldi3_1bit): Remove pattern.
9492         (ashrdi3): Remove shift by 1 expansion.
9493         (arm_ashrdi3_1bit): Remove pattern.
9494         (lshrdi3): Remove shift by 1 expansion.
9495         (arm_lshrdi3_1bit): Remove pattern.
9496         * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
9497         cost of ashldi3 by 1.
9498         * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
9499         (<shift>di3_neon): Likewise.
9500
9501 2017-10-30  Dominik Infuehr  <dominik.infuehr@theobroma-systems.com>
9502
9503         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
9504         both identically named patterns to (*aarch64_simd_mov<VD:mode>)
9505         and (*aarch64_simd_mov<VQ:mode>).
9506         (*aarch64_simd_mov<VD:mode>): Change type attribute to match
9507         pattern alternative.
9508         (*aarch64_simd_mov<VQ:mode>): Re-order and change type
9509         attributes to match pattern alternative.
9510
9511 2017-10-30  Steven Munroe  <munroesj@gcc.gnu.org>
9512
9513         * config.gcc (powerpc*-*-*): Add emmintrin.h.
9514         * config/rs6000/emmintrin.h: New file.
9515         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
9516
9517 2017-10-30  Wilco Dijkstra  <wdijkstr@arm.com>
9518
9519         * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
9520         * (movdi_vfp_cortexa8): Remove pattern.
9521
9522 2017-10-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9523
9524         * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
9525         etc. reference.
9526         (Specific, alpha*-dec-osf5.1): Remove.
9527         (Specific, mips-sgi-irix5): Remove.
9528         (Specific, mips-sgi-irix6): Remove.
9529
9530 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
9531
9532         PR middle-end/22141
9533         * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
9534         arguments to clear_bit_region_be.
9535
9536 2017-10-30  Jim Wilson  <wilson@tuliptree.org>
9537
9538         * gimplify.c: Include memmodel.h.
9539
9540 2017-10-30  Martin Jambor  <mjambor@suse.cz>
9541
9542         * omp-grid.c (grid_attempt_target_gridification): Also insert a
9543         condition whether loop should be executed at all.
9544
9545 2017-10-30  Will Schmidt  <will_schmidt@vnet.ibm.com>
9546
9547         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
9548         gimple folding of vec_madd() intrinsics.
9549         * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
9550         fmav8hi4.  (altivec_vmladduhm): Rename to fmav8hi4.
9551         * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
9552
9553 2017-10-30  Richard Biener  <rguenther@suse.de>
9554
9555         PR tree-optimization/82762
9556         Revert
9557         2017-10-23  Richard Biener  <rguenther@suse.de>
9558
9559         PR tree-optimization/82129
9560         Revert
9561         2017-08-01  Richard Biener  <rguenther@suse.de>
9562
9563         PR tree-optimization/81181
9564         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
9565         (compute_antic): ... end of iteration here.
9566
9567 2017-10-30  Joseph Myers  <joseph@codesourcery.com>
9568
9569         * doc/invoke.texi (C Dialect Options): Document -std=c17,
9570         -std=iso9899:2017 and -std=gnu17.
9571         * doc/standards.texi (C Language): Document C17 support.
9572         * doc/cpp.texi (Overview): Mention -std=c17.
9573         (Standard Predefined Macros): Document C11 and C17 values of
9574         __STDC_VERSION__.  Do not refer to C99 support as incomplete.
9575         * doc/extend.texi (Inline): Do not list individual options for
9576         standards newer than C99.
9577         * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
9578         "GNU C17".
9579         * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
9580         language name.
9581
9582 2017-10-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
9583
9584         * asan.c (asan_finish_file): Align asan globals array by shadow
9585         granularity.
9586
9587 2017-10-30  Jakub Jelinek  <jakub@redhat.com>
9588
9589         PR middle-end/22141
9590         * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
9591         (struct store_immediate_info): Add bitregion_start and bitregion_end
9592         fields.
9593         (store_immediate_info::store_immediate_info): Add brs and bre
9594         arguments and initialize bitregion_{start,end} from those.
9595         (struct merged_store_group): Add bitregion_start, bitregion_end,
9596         align_base and mask fields.  Drop unnecessary struct keyword from
9597         struct store_immediate_info.  Add do_merge method.
9598         (clear_bit_region_be): Use memset instead of loop storing zeros.
9599         (merged_store_group::do_merge): New method.
9600         (merged_store_group::merge_into): Use do_merge.  Allow gaps in between
9601         stores as long as the surrounding bitregions have no gaps.
9602         (merged_store_group::merge_overlapping): Use do_merge.
9603         (merged_store_group::apply_stores): Test that bitregion_{start,end}
9604         is byte aligned, rather than requiring that start and width are
9605         byte aligned.  Drop unnecessary struct keyword from
9606         struct store_immediate_info.  Allocate and populate also mask array.
9607         Make start of the arrays relative to bitregion_start rather than
9608         start and size them according to bitregion_{end,start} difference.
9609         (struct imm_store_chain_info): Drop unnecessary struct keyword from
9610         struct store_immediate_info.
9611         (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
9612         (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
9613         struct keyword from struct store_immediate_info.
9614         (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
9615         between stores as long as the surrounding bitregions have no gaps.
9616         Formatting fixes.
9617         (struct split_store): Add orig non-static data member.
9618         (split_store::split_store): Initialize orig to false.
9619         (find_constituent_stmts): Return store_immediate_info *, non-NULL
9620         if there is exactly a single original stmt.  Change stmts argument
9621         to pointer from reference, if NULL, don't push anything to it.  Add
9622         first argument, use it to optimize skipping over orig stmts that
9623         are known to be before bitpos already.  Simplify.
9624         (split_group): Return unsigned int count how many stores are or
9625         would be needed rather than a bool.  Add allow_unaligned argument.
9626         Change split_stores argument from reference to pointer, if NULL,
9627         only do a dry run computing how many stores would be produced.
9628         Rewritten algorithm to use both alignment and misalign if
9629         !allow_unaligned and handle bitfield stores with gaps.
9630         (imm_store_chain_info::output_merged_store): Set start_byte_pos
9631         from bitregion_start instead of start.  Compute allow_unaligned
9632         here, if true, do 2 split_group dry runs to compute which one
9633         produces fewer stores and prefer aligned if equal.  Punt if
9634         new count is bigger or equal than original before emitting any
9635         statements, rather than during that.  Remove no longer needed
9636         new_ssa_names tracking.  Replace num_stmts with
9637         split_stores.length ().  Use 32-bit stack allocated entries
9638         in split_stores auto_vec.  Try to reuse original store lhs/rhs1
9639         if possible.  Handle bitfields with gaps.
9640         (pass_store_merging::execute): Ignore bitsize == 0 stores.
9641         Compute bitregion_{start,end} for the stores and construct
9642         store_immediate_info with that.  Formatting fixes.
9643
9644 2017-10-30  Uros Bizjak  <ubizjak@gmail.com>
9645
9646         PR target/82725
9647         * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
9648         UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
9649
9650 2017-10-29  Jim Wilson  <wilson@tuliptree.org>
9651
9652         * gimplify.c: Include tm_p.h.
9653
9654         * common.opt (gcoff): Re-add as ignored option.
9655         (gcoff1, gcoff2, gcoff3): Likewise.
9656
9657         * Makefile.in (OBJS): Delete sdbout.o.
9658         (GTFILES): Delete $(srcdir)/sdbout.c.
9659         * debug.h: Delete sdb_debug_hooks.
9660         * final.c: Delete sdbout.h include.
9661         (final_scan_insn): Delete SDB_DEBUG check.
9662         (rest_of_clean_state): Likewise.
9663         * output.h: Delete sdb_begin_function_line.
9664         * sdbout.c: Delete.
9665         * sdbout.h: Delete.
9666         * toplev.c: Delete sdbout.h include.
9667         (process_options): Delete SDB_DEBUG check.
9668         * tree-core.h (tree_type_common): Delete pointer field of
9669         tree_type_symtab.
9670         * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
9671         TYPE_SYMTAB_POINTER.
9672         * tree.h (TYPE_SYMTAB_POINTER): Delete.
9673         (TYPE_SYMTAB_IS_POINTER): Delete.
9674         (TYPE_SYMTAB_IS_DIE): Renumber.
9675         * xcoffout.c: Refer to former sdbout.c file.
9676         (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
9677
9678         * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
9679         * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
9680         (Debugging Options): Delete -gcoff.
9681         (-gstabs): Delete SDB reference.
9682         (-gcoff): Delete.
9683         (-gcoff@var{level}): Delete.
9684         * doc/passes.texi (Debugging information output): Delete SDB and
9685         sdbout.c references.
9686         * doc/tm.texi: Regenerate.
9687         * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
9688         (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
9689         references.
9690         (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
9691         (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
9692         (SDB_DEBUGGING_INFO): Delete.
9693         (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
9694         SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
9695         * target.def (output_source_filename): Delete COFF reference.
9696
9697         * common.opt (gcoff): Delete.
9698         (gxcoff+): Update Negative chain.
9699         * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
9700         SDB_DEBUG.
9701         * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
9702         * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
9703         * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
9704         and SDB references.
9705         (expand_function_start): Change sdb reference to past tense.
9706         (expand_function_end): Change sdb reference to past tense.
9707         * gcc.c (cpp_unique_options): Delete gcoff3 reference.
9708         * opts.c (debug_type_names): Delete coff entry.
9709         (common_handle_option): Delete OPT_gcoff case.
9710         * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
9711
9712         * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
9713         * config/cris/cris.h: Delete SDB reference in comment.
9714         * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
9715         (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
9716         * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
9717         * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
9718         to past tense.
9719         (ix86_expand_prologue): Likewise.
9720         * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
9721         * config/ia64/ia64.h: Likewise.
9722         * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
9723         * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
9724         support.
9725         * config/mmix/mmix.h: Likewise.
9726         * config/nds32/nds32.c: Likewise.
9727         * config/stormy/storym16.h: Likewise.
9728         * config/visium/visium.h: Likewise.
9729         * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
9730
9731 2017-10-28  Sandra Loosemore  <sandra@codesourcery.com>
9732
9733         * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
9734         * config/nios2/nios2.c (nios2_initial_elimination_offset):  Make
9735         FRAME_POINTER_REGNUM point at high end of local var area.
9736
9737 2017-10-27  Eric Botcazou  <ebotcazou@adacore.com>
9738
9739         * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
9740         Move comment around.  Do not reset best_edge for a copiable
9741         destination if the copy would cause a partition change.
9742         (better_edge_p): Remove redundant check.
9743
9744 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
9745
9746         * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
9747
9748 2017-10-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
9749
9750         * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
9751         for math functions that have _Float<N> and _Float<N>X variants.
9752         (mathfn_built_in_2): Add support for math functions that have
9753         _Float<N> and _Float<N>X variants.
9754         (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
9755         (expand_builtin_mathfn_ternary): Add support for fma with
9756         _Float<N> and _Float<N>X variants.
9757         (expand_builtin): Likewise.
9758         (fold_builtin_3): Likewise.
9759         * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
9760         create math function _Float<N> and _Float<N>X variants as external
9761         library builtins.
9762         (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
9763         DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
9764         the __builtin_ prefix and if not strict ansi, without the prefix.
9765         (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
9766         (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
9767         (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
9768         (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
9769         (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
9770         (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
9771         * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
9772         function signatures for fma _Float<N> and _Float<N>X variants.
9773         (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
9774         (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
9775         (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
9776         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
9777         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
9778         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
9779         * gencfn-macros.c (print_case_cfn): Add support for math functions
9780         that have _Float<N> and _Float<N>X variants.
9781         (print_define_operator_list): Likewise.
9782         (fltfn_suffixes): Likewise.
9783         (main): Likewise.
9784         * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
9785         for math functions that have _Float<N> and _Float<N>X variants.
9786         (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
9787         and _Float<N>X variants.
9788         (COPYSIGN): Likewise.
9789         (FMIN): Likewise.
9790         (FMAX): Likewise.
9791         * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
9792         copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
9793         variants.
9794         (integer_valued_read_call_p): Likewise.
9795         * fold-const-call.c (fold_const_call_ss): Likewise.
9796         (fold_const_call_sss): Add support for copysign, fmin, and fmax
9797         _Float<N> and _Float<N>X variants.
9798         (fold_const_call_ssss): Add support for fma _Float<N> and
9799         _Float<N>X variants.
9800         * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
9801         support for copysign and fma _Float<N> and _Float<N>X variants.
9802         (backprop::process_builtin_call_use): Likewise.
9803         * tree-call-cdce.c (can_test_argument_range); Add support for
9804         sqrt _Float<N> and _Float<N>X variants.
9805         (edom_only_function): Likewise.
9806         (get_no_error_domain): Likewise.
9807         * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
9808         * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
9809         copysign _Float<N> and _Float<N>X variants.
9810         * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
9811         handled by machine independent code.
9812         (FMAF128): Likewise.
9813         * doc/cpp.texi (Common Predefined Macros): Document defining
9814         __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
9815         fma _Float<N> and _Float<N>X variants.
9816
9817 2017-10-27  Uros Bizjak  <ubizjak@gmail.com>
9818
9819         PR target/82692
9820         * config/i386/i386-modes.def (CCFPU): Remove definition.
9821         * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
9822         (ix86_cc_modes_compatible): Ditto.
9823         (ix86_expand_carry_flag_compare): Ditto.
9824         (ix86_expand_int_movcc): Ditto.
9825         (ix86_expand_int_addcc): Ditto.
9826         (ix86_reverse_condition): Ditto.
9827         (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
9828         Return true/false for unordered/ordered fp comparisons.
9829         (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
9830         (ix86_prepare_fp_compare_args): Update for rename.
9831         (ix86_expand_fp_compare): Update for rename.  Generate unordered
9832         compare RTXes wrapped with UNSPEC_NOTRAP unspec.
9833         (ix86_expand_sse_compare_and_jump): Ditto.
9834         * config/i386/predicates.md (fcmov_comparison_operator):
9835         Remove CCFPU mode handling.
9836         (ix86_comparison_operator): Ditto.
9837         (ix86_carry_flag_operator): Ditto.
9838         * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
9839         (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
9840         (*cmpu<mode>_cc_i387): Ditto.
9841         (FPCMP): Remove mode iterator.
9842         (unord): Remove mode attribute.
9843         (unord_subst): New define_subst transformation
9844         (unord): New define_subst attribute.
9845         (unordered): Ditto.
9846         (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
9847         (*cmpi<unord>xf_i387): Ditto.
9848         * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
9849         from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
9850         using unord_subst transformation.
9851         * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
9852         (round_saeonly): Also handle CCFP mode.
9853         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
9854         Remove UNSPEC_SAHF unspec handling.
9855
9856 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9857
9858         * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
9859
9860 2017-10-27  Jeff Law  <law@redhat.com>
9861
9862         * gimple-ssa-sprintf.c: Include domwalk.h.
9863         (class sprintf_dom_walker): New class, derived from dom_walker.
9864         (sprintf_dom_walker::before_dom_children): New function.
9865         (struct call_info): Moved into sprintf_dom_walker class
9866         (compute_formath_length, handle_gimple_call): Likewise.
9867         (sprintf_length::execute): Call the dominator walker rather
9868         than walking the statements.
9869
9870         * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
9871         gimple statement locations.
9872         (check_array_bounds): Corresponding changes.  Get the statement's
9873         location directly from wi->stmt.
9874
9875 2017-10-27  Palmer Dabbelt  <palmer@dabbelt.com>
9876
9877         PR target/82717
9878         * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
9879
9880 2017-10-27  Jan Hubicka  <hubicka@ucw.cz>
9881
9882         * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
9883         X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
9884
9885 2017-10-27  Jakub Jelinek  <jakub@redhat.com>
9886
9887         PR target/82703
9888         * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
9889         * config/i386/i386.c (maybe_get_pool_constant): Removed.
9890         (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
9891         maybe_get_pool_constant.
9892         * config/i386/predicates.md (zero_extended_scalar_load_operand):
9893         Likewise.
9894
9895 2017-10-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9896
9897         * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
9898         2.26 caveat.  Update gas and gld versions.
9899         (Specific, *-*-solaris2*): Update binutils version.  Remove caveat
9900         reference.
9901
9902 2017-10-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9903
9904         * cgraph.h (set_malloc_flag): Declare.
9905         * cgraph.c (set_malloc_flag_1): New function.
9906         (set_malloc_flag): Likewise.
9907         * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
9908         * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
9909         false.
9910         (read_ipa_call_summary): Add support for reading is_return_callee.
9911         (write_ipa_call_summary): Stream is_return_callee.
9912         * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
9913         * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
9914         ipa-prop.h, ipa-fnsummary.h.
9915         (pure_const_names): Change to static.
9916         (malloc_state_e): Define.
9917         (malloc_state_names): Define.
9918         (funct_state_d): Add field malloc_state.
9919         (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
9920         (check_retval_uses): New function.
9921         (malloc_candidate_p): Likewise.
9922         (analyze_function): Add support for malloc attribute.
9923         (pure_const_write_summary): Stream malloc_state.
9924         (pure_const_read_summary): Add support for reading malloc_state.
9925         (dump_malloc_lattice): New function.
9926         (propagate_malloc): New function.
9927         (warn_function_malloc): New function.
9928         (ipa_pure_const::execute): Call propagate_malloc and
9929         ipa_free_fn_summary.
9930         (pass_local_pure_const::execute): Add support for malloc attribute.
9931         * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
9932         * doc/invoke.texi: Document Wsuggest-attribute=malloc.
9933
9934 2017-10-27  Martin Liska  <mliska@suse.cz>
9935
9936         PR gcov-profile/82457
9937         * doc/invoke.texi: Document that one needs a non-strict ISO mode
9938         for fork-like functions to be properly instrumented.
9939
9940 2017-10-27  Richard Biener  <rguenther@suse.de>
9941
9942         PR middle-end/81659
9943         * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
9944         info when we redirected EH.
9945
9946 2017-10-26  Michael Collison  <michael.collison@arm.com>
9947
9948         * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
9949         New pattern.
9950         (<optab>_trunchf<GPI:mode>2: New pattern.
9951         (<optab>_trunc<vgp><GPI:mode>2: New pattern.
9952         * config/aarch64/iterators.md (wv): New mode attribute.
9953         (vf, VF): New mode attributes.
9954         (vgp, VGP): New mode attributes.
9955         (s): Update attribute with SImode and DImode prefixes.
9956
9957 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9958
9959         * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
9960         * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
9961         * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
9962         (nios2_option_overide): Initialize it.  Don't allow R0-relative
9963         addressing with PIC.
9964         (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
9965         (nios2_symbolic_constant_p): Likewise.
9966         (nios2_legitimate_address_p): Likewise.
9967         (nios2_r0rel_section_name_p): New.
9968         (nios2_symbol_ref_in_r0rel_data_p): New.
9969         (nios2_emit_move_sequence): Handle r0rel_constant_p.
9970         (r0rel_constant_p): New.
9971         (nios2_print_operand_address): Handle r0rel_constant_p.
9972         (nios2_cdx_narrow_form_p): Likewise.
9973         * config/nios2/nios2.opt (mr0rel-sec=): New option.
9974         * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
9975         (Nios II Options): Document -mr0rel-sec.
9976
9977 2017-10-26  Sandra Loosemore  <sandra@codesourcery.com>
9978
9979         * config/nios2/nios2.c: Include xregex.h.
9980         (nios2_gprel_sec_regex): New.
9981         (nios2_option_overide): Initialize it.  Don't allow GP-relative
9982         addressing with PIC.
9983         (nios2_small_section_name_p): Check for regex match.
9984         * config/nios2/nios2.opt (mgprel-sec=): New option.
9985         * doc/invoke.texi (Option Summary): Add -mgprel-sec.
9986         (Nios II Options): Document -mgprel-sec.
9987
9988 2017-10-26  Jim Wilson  <wilson@tuliptree.org>
9989
9990         * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
9991
9992 2017-10-26  Tom de Vries  <tom@codesourcery.com>
9993
9994         PR tree-optimization/82707
9995         * gimple.c (gimple_copy): Fix unsharing of
9996         GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
9997
9998 2017-10-26  Olga Makhotina  <olga.makhotina@intel.com>
9999
10000         * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
10001         _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
10002         _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
10003         _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
10004         _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
10005         _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
10006         _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
10007         _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
10008         _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
10009         _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
10010         _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
10011         _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
10012         _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
10013         _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
10014         _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
10015         _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
10016         _mm512_mask_cmpunord_ps_mask): New intrinsics.
10017
10018 2017-10-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
10019
10020         * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
10021         default to IBM.
10022         * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
10023         * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
10024         warning to rs6000.c.  Remove the Undocumented flag, since it has
10025         been documented.
10026         (-mabi=ibmlongdouble): Likewise.
10027         * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
10028         already set, set the default format for long double.
10029         (rs6000_debug_reg_global): Print whether long double is IBM or
10030         IEEE.
10031         (rs6000_option_override_internal): Rework setting long double
10032         format.  Only warn if the user is changing the long double default
10033         and they did not use -Wno-psabi.
10034         * doc/invoke.texi (PowerPC options): Update the documentation for
10035         -mabi=ieeelongdouble and -mabi=ibmlongdouble.
10036
10037 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
10038             Alan Hayward  <alan.hayward@arm.com>
10039             David Sherwood  <david.sherwood@arm.com>
10040
10041         * rtl.h (wider_subreg_mode): New function.
10042         * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
10043         rather than an unsigned int *.
10044         * ira-color.c (regno_max_ref_width): Replace with...
10045         (regno_max_ref_mode): ...this new variable.
10046         (coalesced_pseudo_reg_slot_compare): Update accordingly.
10047         Use wider_subreg_mode.
10048         (ira_sort_regnos_for_alter_reg): Likewise.  Take a machine_mode *
10049         rather than an unsigned int *.
10050         * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
10051         (process_alt_operands): Likewise.
10052         (invariant_p): Likewise.
10053         * lra-spills.c (assign_mem_slot): Likewise.
10054         (add_pseudo_to_slot): Likewise.
10055         * lra.c (collect_non_operand_hard_regs): Likewise.
10056         (add_regs_to_insn_regno_info): Likewise.
10057         * reload1.c (regno_max_ref_width): Replace with...
10058         (regno_max_ref_mode): ...this new variable.
10059         (reload): Update accordingly.  Update call to
10060         ira_sort_regnos_for_alter_reg.
10061         (alter_reg): Update to use regno_max_ref_mode.  Call wider_subreg_mode.
10062         (init_eliminable_invariants): Update to use regno_max_ref_mode.
10063         (scan_paradoxical_subregs): Likewise.
10064
10065 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
10066
10067         * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
10068         (aarch64_frame): Add emit_frame_chain boolean.
10069         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
10070         Move eh_return case to aarch64_layout_frame.
10071         (aarch64_layout_frame): Initialize emit_frame_chain.
10072         (aarch64_expand_prologue): Use emit_frame_chain.
10073
10074 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
10075
10076         * config/aarch64/aarch64.c (aarch64_layout_frame):
10077         Ensure LR is always stored at the bottom of the callee-saves.
10078         Remove rarely used frame layout which saves callee-saves at top of
10079         frame, so the store of LR can be used as a valid probe in all cases.
10080
10081 2017-10-26  Wilco Dijkstra  <wdijkstr@arm.com>
10082
10083         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
10084         Improve unaligned TImode/TFmode base/offset split.
10085
10086 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
10087             Alan Hayward  <alan.hayward@arm.com>
10088             David Sherwood  <david.sherwood@arm.com>
10089
10090         * caller-save.c (mark_referenced_regs):  Use read_modify_subreg_p.
10091         * combine.c (find_single_use_1): Likewise.
10092         (expand_field_assignment): Likewise.
10093         (move_deaths): Likewise.
10094         * lra-constraints.c (simplify_operand_subreg): Likewise.
10095         (curr_insn_transform): Likewise.
10096         * lra.c (collect_non_operand_hard_regs): Likewise.
10097         (add_regs_to_insn_regno_info): Likewise.
10098         * rtlanal.c (reg_referenced_p): Likewise.
10099         (covers_regno_no_parallel_p): Likewise.
10100
10101 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
10102
10103         * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
10104         Don't print any bits outside the precision of the value.
10105         * wide-int.cc (test_printing): Add some new tests.
10106
10107 2017-10-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10108
10109         * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
10110         supports -xbrace_comment option.
10111         * configure: Regenerate.
10112         * config.in: Regenerate.
10113         * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
10114         (ASM_CPU_SPEC): Use it.
10115
10116 2017-10-26  Richard Sandiford  <richard.sandiford@linaro.org>
10117
10118         * target.def (static_rtx_alignment): New hook.
10119         * targhooks.h (default_static_rtx_alignment): Declare.
10120         * targhooks.c (default_static_rtx_alignment): New function.
10121         * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
10122         * doc/tm.texi: Regenerate.
10123         * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
10124         instead of targetm.constant_alignment.  Remove call to
10125         set_mem_attributes.
10126         * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
10127         (cris_preferred_mininum_alignment): New function, split out from...
10128         (cris_constant_alignment): ...here.
10129         (cris_static_rtx_alignment): New function.
10130         * config/i386/i386.c (ix86_static_rtx_alignment): New function,
10131         split out from...
10132         (ix86_constant_alignment): ...here.
10133         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
10134         * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
10135         (mmix_static_rtx_alignment): New function.
10136         * config/spu/spu.c (spu_static_rtx_alignment): New function.
10137         (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
10138
10139 2017-10-26  Tamar Christina  <tamar.christina@arm.com>
10140
10141         PR target/81800
10142         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
10143         Add flag_trapping_math and flag_fp_int_builtin_inexact.
10144
10145 2017-10-25  Palmer Dabbelt  <palmer@dabbelt.com>
10146
10147         * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
10148         * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
10149         mark as a sign-extending load.
10150         (local_pic_load_u): Define.
10151
10152 2017-10-25  Eric Botcazou  <ebotcazou@adacore.com>
10153
10154         PR middle-end/82062
10155         * fold-const.c (operand_equal_for_comparison_p): Also return true
10156         if ARG0 is a simple variant of ARG1 with narrower precision.
10157         (fold_ternary_loc): Always pass unstripped operands to the predicate.
10158
10159 2017-10-25  Jan Hubicka  <hubicka@ucw.cz>
10160
10161         * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
10162         cost correctly.
10163         * i386.h (processor_costs): Add gather_static, gather_per_elt,
10164         scatter_static, scatter_per_elt.
10165         * x86-tune-costs.h: Add new cost entries.
10166
10167 2017-10-25  Richard Biener  <rguenther@suse.de>
10168
10169         * tree-ssa-sccvn.h (vn_eliminate): Declare.
10170         * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
10171         class pass_fre): Move to ...
10172         * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
10173         class pass_fre): ... here and adjust for statistics.
10174
10175 2017-10-25  Jakub Jelinek  <jakub@redhat.com>
10176
10177         PR libstdc++/81706
10178         * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
10179         for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
10180         (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
10181         * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
10182         declarations.
10183
10184 2017-10-25  Richard Biener  <rguenther@suse.de>
10185
10186         * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
10187         el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
10188         eliminate_push_avail, eliminate_insert): Move inside...
10189         (class eliminate_dom_walker): ... this class in preparation
10190         of move.
10191         (fini_eliminate): Remove by merging with ...
10192         (eliminate): ... this function.  Adjust for class changes.
10193         (pass_pre::execute): Remove fini_eliminate call.
10194         (pass_fre::execute): Likewise.
10195
10196 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
10197
10198         PR target/82460
10199         * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
10200         (VPERMI2, VPERMI2I): New mode iterators.
10201         (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
10202         (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
10203         patterns.
10204         (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
10205         mode iterator.  Remove 3 old define_insn patterns.
10206         (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
10207         (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
10208         VPERMI2 mode iterator, remove the other two expanders.
10209         (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
10210         to use VPERMI2 mode iterator, add another alternative for vpermi2*
10211         instructions, remove the other two patterns.
10212         (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
10213         mode iterator, remove the other two patterns.
10214         * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
10215         (ix86_expand_vec_perm_vpermt2): ... this.  Swap mask and op0
10216         arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
10217         and adjust argument order accordingly.
10218         (ix86_expand_vec_perm): Adjust caller.
10219         (expand_vec_perm_1): Likewise.
10220         (expand_vec_perm_vpermi2_vpshub2): Rename to ...
10221         (expand_vec_perm_vpermt2_vpshub2): ... this.
10222         (ix86_expand_vec_perm_const_1): Adjust caller.
10223         (ix86_vectorize_vec_perm_const_ok): Adjust comments.
10224
10225         PR target/82370
10226         * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
10227         (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
10228         (vec_shl_<mode>): Remove unused expander.
10229         (avx512bw_<shift_insn><mode>3): New define_insn.
10230         (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
10231         (<sse2_avx2>_<shift_insn><mode>3): ... this.  New define_insn.
10232
10233 2017-10-24  Paolo Carlini  <paolo.carlini@oracle.com>
10234
10235         PR c++/82466
10236         * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
10237         description.
10238
10239 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
10240
10241         PR rtl-optimization/82396
10242         * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
10243         (autopref_multipass_init): Simplify initialization.
10244         (autopref_rank_data): Simplify sort order.
10245         * gcc/sched-int.h (autopref_multipass_data_): Remove
10246         multi_mem_insn_p, min_offset and max_offset.
10247
10248 2017-10-24  Wilco Dijkstra  <wdijkstr@arm.com>
10249
10250         PR middle-end/60580
10251         * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
10252         Check special value of flag_omit_frame_pointer.
10253         (aarch64_can_eliminate): Likewise.
10254         (aarch64_override_options_after_change_1): Simplify handling of
10255         -fomit-frame-pointer and -fomit-leaf-frame-pointer.
10256
10257 2017-10-24  Richard Biener  <rguenther@suse.de>
10258
10259         PR tree-optimization/82697
10260         * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
10261         zero for conditional load and unconditional store.
10262
10263 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
10264
10265         * doc/install.texi: Document bootstrap-cet.
10266
10267 2017-10-24  H.J. Lu  <hongjiu.lu@intel.com>
10268
10269         PR target/82659
10270         * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
10271         ENDBR instruction at function entrance if function is only
10272         called directly.
10273
10274 2017-10-24  Jakub Jelinek  <jakub@redhat.com>
10275
10276         PR target/82628
10277         * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
10278         patterns to better describe from which operation the CF is computed.
10279         (addcarry<mode>_0, subborrow<mode>_0): New patterns.
10280         * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
10281         one LTU with [DT]Imode and another one with [SD]Imode.  If arg0
10282         is 0, use _0 suffixed expanders instead of emitting a comparison
10283         before it.
10284
10285 2017-10-06  Sergey Shalnov  <Sergey.Shalnov@intel.com>
10286
10287         * config/i386/i386.md(*movsf_internal, *movdf_internal):
10288         Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
10289
10290 2017-10-24  Eric Botcazou  <ebotcazou@adacore.com>
10291
10292         PR middle-end/82569
10293         * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
10294         * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
10295         * loop-iv.c (iv_get_reaching_def): Likewise.
10296         * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
10297         variable is promoted and the partition contains undefined values.
10298
10299 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10300
10301         * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
10302         reflect reality.
10303         (nios2_address_cost): Define.
10304         (nios2_legitimize_address): Recognize (exp + constant) directly.
10305         (TARGET_ADDRESS_COST): Define.
10306
10307 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10308
10309         * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
10310         (nios2_symbolic_memory_operand_p): Declare.
10311         (nios2_split_large_constant): Declare.
10312         (nios2_split_symbolic_memory_operand): Declare.
10313         * config/nios2/nios2.c: Adjust includes.
10314         (nios2_symbolic_constant_allowed): New.
10315         (nios2_symbolic_constant_p): New.
10316         (nios2_plus_symbolic_constant_p): New.
10317         (nios2_valid_addr_expr_p): Recognize addresses involving
10318         symbolic constants.
10319         (nios2_legitimate_address_p): Likewise, also LO_SUM.
10320         (nios2_symbolic_memory_operand_p): New.
10321         (nios2_large_constant_p): New.
10322         (nios2_split_large_constant): New.
10323         (nios2_split_plus_large_constant): New.
10324         (nios2_split_symbolic_memory_operand): New.
10325         (nios2_legitimize_address): Code refactoring.  Handle addresses
10326         involving symbolic constants.
10327         (nios2_emit_move_sequence): Likewise.
10328         (nios2_print_operand): Improve error output.
10329         (nios2_print_operand_address): Handle LO_SUM.
10330         (nios2_cdx_narrow_form_p): Likewise.
10331         * config/nios2/nios2.md (movqi_internal): Add splitter for memory
10332         operands involving symbolic constants.
10333         (movhi_internal, movsi_internal): Likewise.
10334         (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
10335         (extendhisi2, extendqi<mode>2): Likewise.
10336
10337 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10338
10339         * tree-pass.h (PROP_rtl_split_insns): Define.
10340         * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
10341
10342 2017-10-23  Sandra Loosemore  <sandra@codesourcery.com>
10343
10344         * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
10345
10346 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
10347
10348         PR debug/82630
10349         * target.def (const_not_ok_for_debug_p): Default to
10350         default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
10351         * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
10352         * targhooks.c (default_const_not_ok_for_debug_p): New function.
10353         * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
10354         which targetm.const_not_ok_for_debug_p returned true.
10355         * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
10356         for UNSPECs.
10357         * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
10358         Likewise.
10359         * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
10360         * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
10361         UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
10362         if !base_term_p.
10363         (ix86_const_not_ok_for_debug_p): New function.
10364         (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
10365         (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
10366
10367 2017-10-23  David Malcolm  <dmalcolm@redhat.com>
10368
10369         PR bootstrap/82610
10370         * system.h: Conditionally include "unique-ptr.h" if
10371         INCLUDE_UNIQUE_PTR is defined.
10372         * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
10373         of defining INCLUDE_UNIQUE_PTR before including "system.h".
10374
10375 2017-10-23  Sebastian Perta  <sebastian.perta@renesas.com>
10376
10377         * config/rl78/rl78.md: New define_expand "subdi3".
10378
10379 2017-10-23  H.J. Lu  <hongjiu.lu@intel.com>
10380
10381         PR target/82673
10382         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
10383         DF_REF_INSN if DF_REF_INSN_INFO is false.
10384
10385 2017-10-23  Jan Hubicka  <hubicka@ucw.cz>
10386
10387         * i386.c (dimode_scalar_chain::compute_convert_gain): Use
10388         xmm_move instead of sse_move.
10389         (sse_store_index): New function.
10390         (ix86_register_move_cost): Be more sensible about mismatch stall;
10391         model AVX moves correctly; make difference between sse->integer and
10392         integer->sse.
10393         (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
10394         moves; make difference between SSE and AVX.
10395         * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
10396         and zmm_move. Increase size of sse load and store tables;
10397         add unaligned load and store tables; add ssemmx_to_integer.
10398         * x86-tune-costs.h: Update all entries according to real
10399         move latencies from Agner Fog's manual and chip documentation.
10400
10401 2017-10-23  Jakub Jelinek  <jakub@redhat.com>
10402
10403         PR target/82628
10404         * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
10405         * config/i386/constraints.md (Wf): New constraint.
10406         * config/i386/i386.md (UNSPEC_SBB): New unspec.
10407         (cmp<dwi>_doubleword): Removed.
10408         (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
10409         (sub<mode>3_carry_ccgz): Use unspec instead of compare.
10410         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
10411         expand with cmp<dwi>_doubleword.  For LTU and GEU use
10412         sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
10413
10414         * common.opt (gcolumn-info): Enable by default.
10415         * doc/invoke.texi (gcolumn-info): Document new default.
10416
10417 2017-10-23  Richard Biener  <rguenther@suse.de>
10418
10419         PR tree-optimization/82672
10420         * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
10421         Fold the stmt if we propagated into it.
10422
10423 2017-10-23  Richard Biener  <rguenther@suse.de>
10424
10425         * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
10426         (bitmap_remove_expr_from_set): ... this.  All callers call this
10427         for non-constant values.
10428         (bitmap_set_subtract): Rename to...
10429         (bitmap_set_subtract_expressions): ... this.  Adjust and
10430         optimize.
10431         (bitmap_set_contains_value): Remove superfluous check.
10432         (bitmap_set_replace_value): Inline into single caller ...
10433         (bitmap_value_replace_in_set): ... here and simplify.
10434         (dependent_clean): Merge into ...
10435         (clean): ... this using an overload.  Adjust.
10436         (prune_clobbered_mems): Adjust.
10437         (compute_antic_aux): Likewise.
10438         (compute_partial_antic_aux): Likewise.
10439
10440 2017-10-23  Richard Biener  <rguenther@suse.de>
10441
10442         PR tree-optimization/82129
10443         Revert
10444         2017-08-01  Richard Biener  <rguenther@suse.de>
10445
10446         PR tree-optimization/81181
10447         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
10448         (compute_antic): ... end of iteration here.
10449
10450 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10451
10452         * target.def (starting_frame_offset): New hook.
10453         * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
10454         (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
10455         * doc/tm.texi.in: Regenerate.
10456         * hooks.h (hook_hwi_void_0): Declare.
10457         * hooks.c (hook_hwi_void_0): New function.
10458         * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
10459         STARTING_FRAME_OFFSET.
10460         * builtins.c (expand_builtin_setjmp_receiver): Likewise.
10461         * reload1.c (reload): Likewise.
10462         * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
10463         instead of STARTING_FRAME_OFFSET.
10464         * function.c (try_fit_stack_local): Likewise.
10465         (assign_stack_local_1): Likewise
10466         (instantiate_virtual_regs): Likewise.
10467         * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
10468         * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
10469         * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
10470         * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
10471         * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
10472         * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
10473         * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
10474         * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
10475         * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
10476         * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
10477         * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
10478         * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
10479         * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
10480         * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
10481         * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
10482         * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
10483         * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
10484         * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
10485         * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
10486         * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
10487         * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
10488         * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
10489         * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
10490         * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
10491         * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
10492         * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
10493         * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
10494         * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
10495         * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
10496         * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
10497         * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
10498         * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
10499         * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
10500         * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
10501         * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
10502         * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
10503         * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
10504         * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
10505         * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
10506         * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
10507         * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
10508         * config/avr/avr.c (avr_starting_frame_offset): Make static and
10509         return a HOST_WIDE_INT.
10510         (avr_builtin_setjmp_frame_value): Use it instead of
10511         STARTING_FRAME_OFFSET.
10512         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10513         * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
10514         * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
10515         New function.
10516         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10517         * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
10518         * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
10519         (TARGET_CONSTANT_ALIGNMENT): Redefine.
10520         * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
10521         * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
10522         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10523         * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
10524         * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
10525         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10526         * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
10527         * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
10528         New function.
10529         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10530         * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
10531         * config/mips/mips.c (mips_compute_frame_info): Refer to
10532         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
10533         (mips_starting_frame_offset): New function.
10534         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10535         * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
10536         * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
10537         * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
10538         and return a HOST_WIDE_INT.
10539         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10540         (mmix_initial_elimination_offset): Refer to
10541         TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
10542         * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
10543         * config/pa/pa.c (pa_starting_frame_offset): New function.
10544         (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
10545         (pa_expand_prologue): Likewise.
10546         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10547         * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
10548         !FRAME_GROWS_DOWNWARD handling to...
10549         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10550         * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
10551         !FRAME_GROWS_DOWNWARD handling to...
10552         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10553         * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
10554         !FRAME_GROWS_DOWNWARD handling to...
10555         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10556         * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
10557         Redefine.
10558         (rs6000_starting_frame_offset): New function.
10559         * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
10560         !FRAME_GROWS_DOWNWARD handling to...
10561         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10562         * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
10563         !FRAME_GROWS_DOWNWARD handling to...
10564         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10565         * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
10566         !FRAME_GROWS_DOWNWARD handling to...
10567         (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
10568         * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
10569         (rs6000_starting_frame_offset): New function.
10570         * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
10571         * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
10572         * config/vax/vax.c (vax_starting_frame_offset): New function.
10573         (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
10574         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10575         * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
10576         * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
10577         (TARGET_STARTING_FRAME_OFFSET): Redefine.
10578         * system.h (STARTING_FRAME_OFFSET): Poison.
10579
10580 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10581
10582         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
10583         SCALAR_TYPE_MODE instead of TYPE_MODE.
10584
10585 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10586             Alan Hayward  <alan.hayward@arm.com>
10587             David Sherwood  <david.sherwood@arm.com>
10588
10589         * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
10590
10591 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10592             Alan Hayward  <alan.hayward@arm.com>
10593             David Sherwood  <david.sherwood@arm.com>
10594
10595         * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
10596
10597 2017-10-23  Richard Biener  <rguenther@suse.de>
10598
10599         PR tree-optimization/82129
10600         * tree-ssa-pre.c (bitmap_set_and): Remove.
10601         (compute_antic_aux): Compute ANTIC_OUT intersection in a way
10602         canonicalizing expressions in the set to those with lowest
10603         ID rather than taking that from the first edge.
10604
10605 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
10606
10607         * combine.c (rtx_equal_for_field_assignment_p): Use
10608         byte_lowpart_offset.
10609
10610 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10611             Alan Hayward  <alan.hayward@arm.com>
10612             David Sherwood  <david.sherwood@arm.com>
10613
10614         * internal-fn.c (expand_direct_optab_fn): Don't assign directly
10615         to a SUBREG_PROMOTED_VAR.
10616
10617 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10618             Alan Hayward  <alan.hayward@arm.com>
10619             David Sherwood  <david.sherwood@arm.com>
10620
10621         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
10622         (expand_debug_source_expr): Likewise.
10623         * combine.c (combine_simplify_rtx): Likewise.
10624         * cse.c (fold_rtx): Likewise.
10625         * optabs.c (expand_float): Likewise.
10626         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
10627         (simplify_binary_operation_1): Likewise.
10628
10629 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10630             Alan Hayward  <alan.hayward@arm.com>
10631             David Sherwood  <david.sherwood@arm.com>
10632
10633         * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
10634         (record_promoted_value): Likewise.
10635         * expr.c (expand_expr_real_2): Likewise.
10636         * ree.c (update_reg_equal_equiv_notes): Likewise.
10637         (combine_set_extension): Likewise.
10638         * rtlanal.c (low_bitmask_len): Likewise.
10639         * simplify-rtx.c (neg_const_int): Likewise.
10640         (simplify_binary_operation_1): Likewise.
10641
10642 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10643             Alan Hayward  <alan.hayward@arm.com>
10644             David Sherwood  <david.sherwood@arm.com>
10645
10646         * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
10647         * regcprop.c (maybe_mode_change): Likewise.
10648         * reload1.c (alter_reg): Likewise.
10649
10650 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10651
10652         * inchash.h (inchash::hash::add_wide_int): New function.
10653         * lto-streamer-out.c (hash_tree): Use it.
10654
10655 2017-10-22  Richard Sandiford  <richard.sandiford@linaro.org>
10656
10657         * inchash.h (inchash::hash::add_wide_int): Rename to...
10658         (inchash::hash::add_hwi): ...this.
10659         * ipa-devirt.c (hash_odr_vtable): Update accordingly.
10660         (polymorphic_call_target_hasher::hash): Likewise.
10661         * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
10662         (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
10663         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
10664         * lto-streamer-out.c (hash_tree): Likewise.
10665         * optc-save-gen.awk: Likewise.
10666         * tree.c (add_expr): Likewise.
10667
10668 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
10669
10670         PR target/52451
10671         * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
10672         for ordered inequality comparisons even with TARGET_IEEE_FP.
10673
10674 2017-10-22  Uros Bizjak  <ubizjak@gmail.com>
10675
10676         PR target/82628
10677         * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
10678         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
10679         Expand with cmp<dwi>_doubleword.
10680
10681 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10682
10683         * extend.texi: Add x86 specific to 'nocf_check' attribute.
10684         List CET intrinsics.
10685         * invoke.texi: Add -mcet, -mibt, -mshstk options.  Add x86
10686         specific to -fcf-protection option.
10687
10688 2017-10-21  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10689
10690         * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
10691         (OPTION_MASK_ISA_SHSTK_SET): Likewise.
10692         (OPTION_MASK_ISA_IBT_UNSET): Likewise.
10693         (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
10694         (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
10695         * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
10696         (extra_objs): Add cet.o for Linux/x86 targets.
10697         (tmake_file): Add i386/t-cet for Linux/x86 targets.
10698         * config/i386/cet.c: New file.
10699         * config/i386/cetintrin.h: Likewise.
10700         * config/i386/t-cet: Likewise.
10701         * config/i386/cpuid.h (bit_SHSTK): New.
10702         (bit_IBT): Likewise.
10703         * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
10704         pass IBT and SHSTK bits.
10705         * config/i386/i386-builtin-types.def
10706         (VOID_FTYPE_UNSIGNED_PVOID): New.
10707         (VOID_FTYPE_UINT64_PVOID): Likewise.
10708         * config/i386/i386-builtin.def: Add CET intrinsics.
10709         * config/i386/i386-c.c (ix86_target_macros_internal): Add
10710         OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
10711         * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
10712         * config/i386/i386-protos.h (make_pass_insert_endbranch): New
10713         prototype.
10714         * config/i386/i386.c (rest_of_insert_endbranch): New.
10715         (pass_data_insert_endbranch): Likewise.
10716         (pass_insert_endbranch): Likewise.
10717         (make_pass_insert_endbranch): Likewise.
10718         (ix86_notrack_prefixed_insn_p): Likewise.
10719         (ix86_target_string): Add -mibt, -mshstk flags.
10720         (ix86_option_override_internal): Add flag_cf_protection
10721         processing.
10722         (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
10723         (ix86_print_operand): Add 'notrack' prefix output.
10724         (ix86_init_mmx_sse_builtins): Add CET intrinsics.
10725         (ix86_expand_builtin): Expand CET intrinsics.
10726         (x86_output_mi_thunk): Add 'endbranch' instruction.
10727         * config/i386/i386.h (TARGET_IBT): New.
10728         (TARGET_IBT_P): Likewise.
10729         (TARGET_SHSTK): Likewise.
10730         (TARGET_SHSTK_P): Likewise.
10731         * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
10732         UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
10733         UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
10734         (builtin_setjmp_setup): New pattern.
10735         (builtin_longjmp): Likewise.
10736         (rdssp<mode>): Likewise.
10737         (incssp<mode>): Likewise.
10738         (saveprevssp): Likewise.
10739         (rstorssp): Likewise.
10740         (wrss<mode>): Likewise.
10741         (wruss<mode>): Likewise.
10742         (setssbsy): Likewise.
10743         (clrssbsy): Likewise.
10744         (nop_endbr): Likewise.
10745         * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
10746         options.
10747         * config/i386/immintrin.h: Include <cetintrin.h>.
10748         * config/i386/linux-common.h
10749         (file_end_indicate_exec_stack_and_cet): New prototype.
10750         (TARGET_ASM_FILE_END): New.
10751
10752 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
10753
10754         * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
10755         latencies instead of having separate table; make difference between
10756         integer and float costs.
10757         * i386.h (processor_costs): Remove scalar_stmt_cost,
10758         scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
10759         scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
10760         vec_store_cost.
10761         * x86-tune-costs.h: Remove entries which has been removed in
10762         procesor_costs from all tables; make cond_taken_branch_cost
10763         and cond_not_taken_branch_cost COST_N_INSNS based.
10764
10765 2017-10-20  Jan Hubicka  <hubicka@ucw.cz>
10766
10767         * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
10768
10769 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10770
10771         * config/i386/i386.md (isa): Remove fma_avx512f.
10772         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
10773         <avx512>_fmadd_<mode>_mask3<round_name>,
10774         <avx512>_fmsub_<mode>_mask<round_name>,
10775         <avx512>_fmsub_<mode>_mask3<round_name>,
10776         <avx512>_fnmadd_<mode>_mask<round_name>,
10777         <avx512>_fnmadd_<mode>_mask3<round_name>,
10778         <avx512>_fnmsub_<mode>_mask<round_name>,
10779         <avx512>_fnmsub_<mode>_mask3<round_name>,
10780         <avx512>_fmaddsub_<mode>_mask<round_name>,
10781         <avx512>_fmaddsub_<mode>_mask3<round_name>,
10782         <avx512>_fmsubadd_<mode>_mask<round_name>,
10783         <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
10784         (*vec_widen_umult_even_v16si<mask_name>,
10785         *vec_widen_smult_even_v16si<mask_name>): Likewise.
10786         (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
10787
10788 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10789
10790         * extend.texi: Add 'nocf_check' documentation.
10791         * gimple.texi: Add second parameter to
10792         gimple_build_call_from_tree.
10793         * invoke.texi: Add -fcf-protection documentation.
10794         * rtl.texi: Add REG_CALL_NOTRACK documenation.
10795
10796 2017-10-20  Richard Biener  <rguenther@suse.de>
10797
10798         PR tree-optimization/82473
10799         * tree-vect-loop.c (vectorizable_reduction): Properly get at
10800         the largest input type.
10801
10802 2017-10-20  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
10803
10804         * c-attribs.c (handle_nocf_check_attribute): New function.
10805         (c_common_attribute_table): Add 'nocf_check' handling.
10806         * gimple-parser.c: Add second argument NULL to
10807         gimple_build_call_from_tree.
10808         * attrib.c (comp_type_attributes): Check nocf_check attribute.
10809         * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
10810         call insn.
10811         * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
10812         * common.opt: Add fcf-protection flag.
10813         * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
10814         * flag-types.h: Add enum cf_protection_level.
10815         * gimple.c (gimple_build_call_from_tree): Add second parameter.
10816         Add 'nocf_check' attribute propagation to gimple call.
10817         * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
10818         (gimple_build_call_from_tree): Update prototype.
10819         (gimple_call_nocf_check_p): New function.
10820         (gimple_call_set_nocf_check): Likewise.
10821         * gimplify.c: Add second argument to gimple_build_call_from_tree.
10822         * ipa-icf.c: Add nocf_check attribute in statement hash.
10823         * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
10824         * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
10825         * toplev.c (process_options): Add flag_cf_protection handling.
10826
10827 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10828
10829         * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
10830
10831 2017-10-20  Richard Biener  <rguenther@suse.de>
10832
10833         PR tree-optimization/82603
10834         * tree-if-conv.c (predicate_mem_writes): Make sure to only
10835         remove false predicated stores.
10836
10837 2017-10-20  Richard Biener  <rguenther@suse.de>
10838
10839         * graphite-isl-ast-to-gimple.c
10840         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
10841         Remove return value and simplify, dump copied stmt after lhs
10842         adjustment.
10843         (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
10844         Reduce dump verbosity.
10845         (gsi_insert_earliest): Likewise.
10846         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
10847         * graphite.c (print_global_statistics): Adjust dumping.
10848         (print_graphite_scop_statistics): Likewise.
10849         (print_graphite_statistics): Do not dump loops here.
10850         (graphite_transform_loops): But here.
10851
10852 2017-10-20  Nicolas Roche  <roche@adacore.com>
10853
10854         * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
10855         * configure: Regenerate.
10856
10857 2017-10-20  Jakub Jelinek  <jakub@redhat.com>
10858
10859         PR target/82158
10860         * tree-cfg.c (pass_warn_function_return::execute): In noreturn
10861         functions when optimizing replace GIMPLE_RETURN stmts with
10862         calls to __builtin_unreachable ().
10863
10864         PR sanitizer/82595
10865         * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
10866         for -fsanitize=thread link of executables.
10867         (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
10868         link of executables.
10869
10870         PR target/82370
10871         * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
10872         New mode iterators.
10873         (<shift_insn><mode>3<mask_name>): Change the last of the 3
10874         define_insns for logical vector shifts to use VI248_AVX512BW
10875         iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
10876         condition, useless isa and prefix attributes.  Change the first
10877         2 of these define_insns to ...
10878         (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
10879         define_insn for avx512vl.
10880         (<shift_insn><mode>3): ... and this, new define_insn without
10881         masking for non-avx512vl.
10882
10883         PR target/82370
10884         * config/i386/sse.md (*andnot<mode>3,
10885         <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
10886         (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
10887         and 256-bit vectors, the (=x,x,xm) alternative and when mask is
10888         not applied use empty suffix even for TARGET_AVX512VL.
10889         * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
10890         is applied, supply evex,evex or evex,evex,evex instead of just
10891         evex.
10892
10893 2017-10-20  Julia Koval  <julia.koval@intel.com>
10894
10895         * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
10896         (OPTION_MASK_ISA_GFNI_UNSET): New.
10897         (ix86_handle_option): Handle OPT_mgfni.
10898         * config/i386/cpuid.h (bit_GFNI): New.
10899         * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
10900         * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
10901         * config/i386/i386.c (ix86_target_string): Add -mgfni.
10902         (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
10903         * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
10904         * config/i386/i386.opt: Add mgfni.
10905
10906 2017-10-20  Orlando Arias  <oarias@knights.ucf.edu>
10907
10908         * config/msp430/msp430.c (msp430_option_override): Disable
10909         -fdelete-null-pointer-checks.
10910         * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
10911
10912 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10913
10914         * x86-tune-costs.h (generic_cost, core_cost): Correct costs
10915         of x87 and SSE instructions.
10916
10917 2017-10-19  Jan Hubicka  <hubicka@ucw.cz>
10918
10919         * asan.c (create_cond_insert_point): Do not update edge count.
10920         * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
10921         (afdo_propagate_circuit): Likewise.
10922         (afdo_calculate_branch_prob): Likewise.
10923         (afdo_annotate_cfg): Likewise.
10924         * basic-block.h (struct edge_def): Remove count.
10925         (edge_def::count): New accessor.
10926         * bb-reorder.c (rotate_loop): Update.
10927         (find_traces_1_round): Update.
10928         (connect_traces): Update.
10929         (sanitize_hot_paths): Update.
10930         * cfg.c (unchecked_make_edge): Update.
10931         (make_single_succ_edge): Update.
10932         (check_bb_profile): Update.
10933         (dump_edge_info): Update.
10934         (update_bb_profile_for_threading): Update.
10935         (scale_bbs_frequencies_int): Update.
10936         (scale_bbs_frequencies_gcov_type): Update.
10937         (scale_bbs_frequencies_profile_count): Update.
10938         (scale_bbs_frequencies): Update.
10939         * cfganal.c (connect_infinite_loops_to_exit): Update.
10940         * cfgbuild.c (compute_outgoing_frequencies): Update.
10941         (find_many_sub_basic_blocks): Update.
10942         * cfgcleanup.c (try_forward_edges): Update.
10943         (try_crossjump_to_edge): Update
10944         * cfgexpand.c (expand_gimple_cond): Update
10945         (expand_gimple_tailcall): Update
10946         (construct_exit_block): Update
10947         * cfghooks.c (verify_flow_info): Update
10948         (redirect_edge_succ_nodup): Update
10949         (split_edge): Update
10950         (make_forwarder_block): Update
10951         (duplicate_block): Update
10952         (account_profile_record): Update
10953         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
10954         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
10955         * cfgloopmanip.c (scale_loop_profile): Update.
10956         (loopify): Update.
10957         (lv_adjust_loop_entry_edge): Update.
10958         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
10959         (force_nonfallthru_and_redirect): Update.
10960         (purge_dead_edges): Update.
10961         (rtl_flow_call_edges_add): Update.
10962         * cgraphunit.c (init_lowered_empty_function): Update.
10963         (cgraph_node::expand_thunk): Update.
10964         * gimple-pretty-print.c (dump_probability): Update.
10965         (dump_edge_probability): Update.
10966         * gimple-ssa-isolate-paths.c (isolate_path): Update.
10967         * haifa-sched.c (sched_create_recovery_edges): Update.
10968         * hsa-gen.c (convert_switch_statements): Update.
10969         * ifcvt.c (dead_or_predicable): Update.
10970         * ipa-inline-transform.c (inline_transform): Update.
10971         * ipa-split.c (split_function): Update.
10972         * ipa-utils.c (ipa_merge_profiles): Update.
10973         * loop-doloop.c (add_test): Update.
10974         * loop-unroll.c (unroll_loop_runtime_iterations): Update.
10975         * lto-streamer-in.c (input_cfg): Update.
10976         (input_function): Update.
10977         * lto-streamer-out.c (output_cfg): Update.
10978         * modulo-sched.c (sms_schedule): Update.
10979         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
10980         * predict.c (maybe_hot_edge_p): Update.
10981         (unlikely_executed_edge_p): Update.
10982         (probably_never_executed_edge_p): Update.
10983         (dump_prediction): Update.
10984         (drop_profile): Update.
10985         (propagate_unlikely_bbs_forward): Update.
10986         (determine_unlikely_bbs): Update.
10987         (force_edge_cold): Update.
10988         * profile.c (compute_branch_probabilities): Update.
10989         * reg-stack.c (better_edge): Update.
10990         * shrink-wrap.c (handle_simple_exit): Update.
10991         * tracer.c (better_p): Update.
10992         * trans-mem.c (expand_transaction): Update.
10993         (split_bb_make_tm_edge): Update.
10994         * tree-call-cdce.c: Update.
10995         * tree-cfg.c (gimple_find_sub_bbs): Update.
10996         (gimple_split_edge): Update.
10997         (gimple_duplicate_sese_region): Update.
10998         (gimple_duplicate_sese_tail): Update.
10999         (gimple_flow_call_edges_add): Update.
11000         (insert_cond_bb): Update.
11001         (execute_fixup_cfg): Update.
11002         * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
11003         * tree-complex.c (expand_complex_div_wide): Update.
11004         * tree-eh.c (lower_resx): Update.
11005         (unsplit_eh): Update.
11006         (cleanup_empty_eh_move_lp): Update.
11007         * tree-inline.c (copy_edges_for_bb): Update.
11008         (freqs_to_counts): Update.
11009         (copy_cfg_body): Update.
11010         * tree-ssa-dce.c (remove_dead_stmt): Update.
11011         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
11012         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
11013         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
11014         (unloop_loops): Update.
11015         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
11016         * tree-ssa-loop-split.c (connect_loops): Update.
11017         (split_loop): Update.
11018         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
11019         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
11020         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
11021         * tree-ssa-reassoc.c (branch_fixup): Update.
11022         * tree-ssa-tail-merge.c (replace_block_by): Update.
11023         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
11024         (compute_path_counts): Update.
11025         (update_profile): Update.
11026         (recompute_probabilities): Update.
11027         (update_joiner_offpath_counts): Update.
11028         (estimated_freqs_path): Update.
11029         (freqs_to_counts_path): Update.
11030         (clear_counts_path): Update.
11031         (ssa_fix_duplicate_block_edges): Update.
11032         (duplicate_thread_path): Update.
11033         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
11034         (case_bit_test_cmp): Update.
11035         (collect_switch_conv_info): Update.
11036         (gen_inbound_check): Update.
11037         (do_jump_if_equal): Update.
11038         (emit_cmp_and_jump_insns): Update.
11039         * tree-tailcall.c (decrease_profile): Update.
11040         (eliminate_tail_call): Update.
11041         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
11042         (vect_do_peeling): Update.
11043         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
11044         * ubsan.c (ubsan_expand_null_ifn): Update.
11045         (ubsan_expand_ptr_ifn): Update.
11046         * value-prof.c (gimple_divmod_fixed_value): Update.
11047         (gimple_mod_pow2): Update.
11048         (gimple_mod_subtract): Update.
11049         (gimple_ic): Update.
11050         (gimple_stringop_fixed_value): Update.
11051
11052 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
11053
11054         PR target/82618
11055         * config/i386/i386.md (sub to cmp): New peephole2 pattern.
11056
11057 2017-10-19  Alexander Monakov  <amonakov@ispras.ru>
11058
11059         PR rtl-optimization/82395
11060         * ira-color.c (allocno_priority_compare_func): Fix comparison step
11061         based on non_spilled_static_chain_regno_p.
11062
11063 2017-10-19  Uros Bizjak  <ubizjak@gmail.com>
11064
11065         * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
11066         (ix86_emit_mode_set): Rewrite insn mnemonic construction.
11067         (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
11068
11069 2017-10-19  Martin Sebor  <msebor@redhat.com>
11070
11071         PR tree-optimization/82596
11072         * tree.c (array_at_struct_end_p): Handle STRING_CST.
11073
11074 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
11075
11076         * asan.c (handle_builtin_alloca): Deal with all alloca variants.
11077         (get_mem_refs_of_builtin_call): Likewise.
11078         * builtins.c (expand_builtin_apply): Adjust call to
11079         allocate_dynamic_stack_space.
11080         (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
11081         the third argument to allocate_dynamic_stack_space, otherwise -1.
11082         (expand_builtin): Deal with all alloca variants.
11083         (is_inexpensive_builtin): Likewise.
11084         * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
11085         * calls.c (special_function_p): Deal with all alloca variants.
11086         (initialize_argument_information): Adjust call to
11087         allocate_dynamic_stack_space.
11088         (expand_call): Likewise.
11089         * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
11090         * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
11091         * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
11092         use it for the stack usage computation.
11093         * explow.h (allocate_dynamic_stack_space): Adjust prototype.
11094         * function.c (gimplify_parameters): Call build_alloca_call_expr.
11095         * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
11096         Take into account 3rd argument of __builtin_alloca_with_align_and_max.
11097         (in_loop_p): Remove first argument and useless check.
11098         (pass_walloca::execute): Remove useless test and adjust call to above.
11099         * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
11100         * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
11101         (gimplify_call_expr): Deal with all alloca variants.
11102         * hsa-gen.c (gen_hsa_alloca): Likewise.
11103         (gen_hsa_insns_for_call): Likewise.
11104         * ipa-pure-const.c (special_builtin_state): Likewise.
11105         * tree-chkp.c (chkp_build_returned_bound): Likewise.
11106         * tree-object-size.c (alloc_object_size): Likewise.
11107         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
11108         (call_may_clobber_ref_p_1): Likewise.
11109         * tree-ssa-ccp.c (evaluate_stmt): Likewise.
11110         (ccp_fold_stmt): Likewise.
11111         (optimize_stack_restore): Likewise.
11112         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
11113         (mark_all_reaching_defs_necessary_1): Likewise.
11114         (propagate_necessity): Likewise.
11115         (eliminate_unnecessary_stmts): Likewise.
11116         * tree.c (build_common_builtin_nodes): Build
11117         BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
11118         (build_alloca_call_expr): New function.
11119         * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
11120         (CASE_BUILT_IN_ALLOCA): Likewise.
11121         (build_alloca_call_expr): Declare.
11122         * varasm.c (incorporeal_function_p): Deal with all alloca variants.
11123
11124 2017-10-19  Eric Botcazou  <ebotcazou@adacore.com>
11125
11126         PR debug/82509
11127         * dwarf2out.c (new_die_raw): New static inline function.
11128         (new_die): Use it to create the DIE.
11129         (add_AT_external_die_ref): Likewise.
11130         (clone_die): Likewise.
11131         (clone_as_declaration): Likewise.
11132         (dwarf2out_vms_debug_main_pointer): Likewise.
11133         (base_type_die): Likewise.  Remove early return for corner cases.
11134         Do not call add_pubtype on the DIE here.
11135         (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
11136         (modified_type_die): Adjust the lookup for reverse order DIEs.  Skip
11137         typedefs for base types with DW_AT_endianity.  Make sure a DIE with
11138         native order exists for base types, attach the DIE manually and call
11139         add_pubtype on it.  Do not equate a reverse order DIE to the type.
11140
11141 2017-10-19  Richard Earnshaw  <rearnsha@arm.com>
11142
11143         * config/arm/arm.c (align_ok_ldrd_strd): New function.
11144         (mem_ok_for_ldrd_strd): New parameter align.  Extract the alignment of
11145         the mem into it.
11146         (gen_operands_ldrd_strd): Validate the alignment of the accesses.
11147
11148 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
11149
11150         * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN.  Or
11151         SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
11152         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
11153         BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
11154         * opts.c (sanitizer_opts): Add builtin.
11155         * ubsan.c (instrument_builtin): New function.
11156         (pass_ubsan::execute): Call it.
11157         (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
11158         * doc/invoke.texi: Document -fsanitize=builtin.
11159
11160         * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
11161         builtins, store max (log2 (align), 0) into uchar field instead of
11162         align into uptr field.
11163         (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
11164         store uchar 0 field instead of uptr 0 field.
11165         (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
11166         instead of passing one address of struct with 2 locations pass
11167         two addresses of structs with 1 location each.
11168         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
11169         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
11170         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
11171         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
11172         (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
11173         BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
11174         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
11175         BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
11176
11177 2017-10-19  Martin Liska  <mliska@suse.cz>
11178
11179         PR driver/81829
11180         * file-find.c (remove_prefix): Remove.
11181         * file-find.h (remove_prefix): Likewise.
11182         * gcc-ar.c: Remove smartness of lookup.
11183
11184 2017-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
11185
11186         * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
11187         *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
11188         *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
11189
11190 2017-10-19  Jakub Jelinek  <jakub@redhat.com>
11191
11192         PR target/82580
11193         * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
11194         (setcc + and to xor + setcc): New peephole2.
11195
11196 2017-10-19  Tom de Vries  <tom@codesourcery.com>
11197
11198         * doc/sourcebuild.texi (Test Directives, Variants of
11199         dg-require-support): Add dg-require-stack-size.
11200
11201 2017-10-19  Martin Liska  <mliska@suse.cz>
11202
11203         PR sanitizer/82517
11204         * gimplify.c (gimplify_decl_expr): Do not instrument variables
11205         that have a large alignment.
11206         (gimplify_target_expr): Likewise.
11207
11208 2017-10-18  Segher Boessenkool  <segher@kernel.crashing.org>
11209
11210         PR rtl-optimization/82602
11211         * ira.c (rtx_moveable_p): Return false for volatile asm.
11212
11213 2017-10-18  Uros Bizjak  <ubizjak@gmail.com>
11214
11215         PR target/82580
11216         * config/i386/i386-modes.def (CCGZ): New CC mode.
11217         * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
11218         * config/i386/predicates.md (ix86_comparison_operator):
11219         Handle CCGZmode.
11220         * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
11221         Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
11222         with double-word subtraction.
11223         (put_condition_code): Handle CCGZmode.
11224
11225 2017-10-18  Aldy Hernandez  <aldyh@redhat.com>
11226
11227         * wide-int.cc (debug (const wide_int &)): New.
11228         (debug (const wide_int *)): New.
11229         (debug (const widest_int &)): New.
11230         (debug (const widest_int *)): New.
11231
11232 2017-10-18  Vladimir Makarov  <vmakarov@redhat.com>
11233
11234         PR middle-end/82556
11235         * lra-constraints.c (curr_insn_transform): Use non-input operand
11236         instead of output one for matched reload.
11237
11238 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
11239
11240         * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
11241         (tree-ssa-loop-ivopts.h): New header file.
11242         (struct builtin_info): New fields.
11243         (classify_builtin_1): Compute and record base and offset parts for
11244         memset builtin partition by calling strip_offset.
11245         (offset_cmp, fuse_memset_builtins): New functions.
11246         (finalize_partitions): Fuse adjacent memset partitions by calling
11247         above function.
11248         * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
11249         Expose the interface.
11250         * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
11251
11252 2017-10-18  Bin Cheng  <bin.cheng@arm.com>
11253
11254         PR tree-optimization/82574
11255         * tree-loop-distribution.c (find_single_drs): New parameter.  Check
11256         that data reference must be executed exactly once per iteration
11257         against the outermost loop in nest.
11258         (classify_partition): Update call to above function.
11259
11260 2017-10-18  Richard Biener  <rguenther@suse.de>
11261
11262         PR tree-optimization/82591
11263         * graphite.c (graphite_transform_loops): Move code gen message
11264         printing ...
11265         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
11266         Here.  Handle scop_to_isl_ast failing.
11267         (scop_to_isl_ast): Limit the number of ISL operations.
11268
11269 2017-10-18  Richard Biener  <rguenther@suse.de>
11270
11271         * graphite-isl-ast-to-gimple.c
11272         (translate_isl_ast_to_gimple::set_rename): Simplify.
11273         (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
11274         (graphite_copy_stmts_from_block): ... here.
11275         (copy_bb_and_scalar_dependences): Simplify.
11276         (add_parameters_to_ivs_params): Canonicalize.
11277         (generate_entry_out_of_ssa_copies): Simplify.
11278         * graphite-sese-to-poly.c (extract_affine_name): Simplify
11279         by passing in ISL dimension.
11280         (parameter_index_in_region_1): Rename to ...
11281         (parameter_index_in_region): ... this.
11282         (extract_affine): Adjust assert, pass down parameter index.
11283         (add_param_constraints): Use range-info when available.
11284         (build_scop_context): Adjust.
11285         * sese.c (new_sese_info): Adjust.
11286         (free_sese_info): Likewise.
11287         * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
11288         Remove unused typedefs.
11289         (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
11290
11291 2017-10-18  Martin Liska  <mliska@suse.cz>
11292
11293         * combine.c (simplify_compare_const): Add gcc_fallthrough.
11294
11295 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
11296
11297         * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
11298         (s390_sched_init): Do not reset s390_sched_state if we entered the
11299         current basic block via a fallthru edge and all others are unlikely.
11300
11301 2017-10-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
11302
11303         * config/s390/s390.c (NUM_SIDES): New variable.
11304         (LONGRUNNING_THRESHOLD): New variable.
11305         (LATENCY_FACTOR): New variable.
11306         (s390_sched_score): Decrease score for long-running instructions on
11307         wrong side.
11308         (s390_sched_variable_issue): Perform bookkeeping for long-running
11309         instructions.
11310
11311 2017-10-18  Richard Biener  <rguenther@suse.de>
11312
11313         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
11314         Simplify with removal of the parameter rename map.
11315         (set_rename): Likewise.
11316         (should_copy_to_new_region): Likewise.
11317         (graphite_copy_stmts_from_block): Likewise.
11318         (copy_bb_and_scalar_dependences): Remove initialization of
11319         unused copied_bb_map.
11320         (copy_def): Remove.
11321         (copy_internal_parameters): Likewise.
11322         (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
11323         * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
11324         Use INTEGRAL_TYPE_P.
11325         (parameter_index_in_region_1): Rename to ...
11326         (assign_parameter_index_in_region): ... this.  Assert we have
11327         a parameter we handle.
11328         (scan_tree_for_params): Adjust.
11329         * sese.h (parameter_rename_map_t): Remove.
11330         (struct sese_info_t): Remove unused parameter_rename_map and
11331         copied_bb_map members.
11332         * sese.c (new_sese_info): Adjust.
11333         (free_sese_info): Likewise.
11334
11335 2017-10-18  Martin Liska  <mliska@suse.cz>
11336
11337         PR sanitizer/82545
11338         * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
11339         on an abnormal edge.
11340
11341 2017-10-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11342
11343         * doc/invoke.texi (ffunction-sections and fdata-sections):
11344         Update.
11345
11346 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
11347
11348         * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
11349         the use statement can throw internally.
11350
11351 2017-10-17  Eric Botcazou  <ebotcazou@adacore.com>
11352
11353         * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
11354         any RTX present on the RHS of a SET.
11355         * compare-elim.c (try_eliminate_compare): Restore comment.
11356
11357 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
11358
11359         * langhooks.h (struct lang_hooks): Document that tree_size langhook
11360         may be also called on tcc_type nodes.
11361         * langhooks.c (lhd_tree_size): Likewise.
11362
11363 2017-10-17  David Malcolm  <dmalcolm@redhat.com>
11364
11365         * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
11366         format_warning_at_substring.
11367         (maybe_warn): Convert source_range * param to a location_t.  Pass
11368         UNKNOWN_LOCATION rather than NULL to fmtwarn.
11369         (format_directive): Remove code to extract source_ranges and
11370         source_range * in favor of just a location_t.
11371         (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
11372         fmtwarn.
11373         * substring-locations.c (format_warning_va): Convert
11374         source_range * param to a location_t.
11375         (format_warning_at_substring): Likewise.
11376         * substring-locations.h (format_warning_va): Likewise.
11377         (format_warning_at_substring): Likewise.
11378
11379 2017-10-17  Jan Hubicka  <hubicka@ucw.cz>
11380
11381         * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
11382         vec_scatter_store
11383         * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
11384         and scatter/gather ops.
11385
11386         * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
11387         vec_gather_load and vec_scatter_store.
11388         * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
11389         * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
11390         * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
11391         * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
11392         * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
11393         * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
11394
11395 2017-10-17  Uros Bizjak  <ubizjak@gmail.com>
11396
11397         * reg-stack.c (compare_for_stack_reg): Add bool argument.
11398         Detect FTST instruction and handle its register pops.  Only pop
11399         second operand if can_pop_second_op is true.
11400         (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
11401         set can_pop_second_op to false in the compare_for_stack_reg call.
11402
11403         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
11404         output_fp_compare for stack register operands.
11405         * config/i386/i386.c (output_fp_compare): Do not output SSE compare
11406         instructions here.  Do not emit stack register pops here.  Assert
11407         that FCOMPP pops next to top stack register.  Rewrite function.
11408
11409 2017-10-17  Nathan Sidwell  <nathan@acm.org>
11410
11411         PR middle-end/82577
11412         * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
11413         use DECL_ASSEMBLER_NAME_RAW.
11414
11415         PR middle-end/82546
11416         * tree.c (tree_code_size): Reformat.  Punt to lang hook for unknown
11417         TYPE nodes.
11418
11419 2017-10-17  Qing Zhao <qing.zhao@oracle.com>
11420             Wilco Dijkstra <wilco.dijkstra@arm.com>
11421
11422         * builtins.c (expand_builtin_update_setjmp_buf): Add a
11423         converstion to Pmode from the buf_addr.
11424
11425 2017-10-17  Richard Biener  <rguenther@suse.de>
11426
11427         * graphite-dependences.c (scop_get_reads_and_writes): Change
11428         output parameters to references.
11429
11430 2017-10-17  Jackson Woodruff  <jackson.woodruff@arm.com>
11431
11432         PR 71026/tree-optimization
11433         * fold-const.c (distribute_real_division): Removed.
11434         (fold_binary_loc): Remove calls to distribute_real_divison.
11435
11436 2017-10-17  Richard Biener  <rguenther@suse.de>
11437
11438         * graphite-scop-detection.c
11439         (scop_detection::stmt_has_simple_data_refs_p): Always use
11440         the full nest as region.
11441         (try_generate_gimple_bb): Likewise.
11442         * sese.c (scalar_evolution_in_region): Simplify now that
11443         SCEV can handle instantiation in regions.
11444         * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
11445         in the non-loop part of a function if requested.
11446
11447 2017-10-17  Richard Biener  <rguenther@suse.de>
11448
11449         PR tree-optimization/82563
11450         * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
11451         New function.
11452         (graphite_regenerate_ast_isl): Call it.
11453         * graphite-scop-detection.c (build_scops): Remove entry edge split.
11454
11455 2017-10-17  Jakub Jelinek  <jakub@redhat.com>
11456
11457         PR tree-optimization/82549
11458         * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
11459         Formatting fixes.  Instead of calling make_bit_field_ref with negative
11460         bitpos return 0.
11461
11462 2017-10-17  Olga Makhotina  <olga.makhotina@intel.com>
11463
11464         * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
11465         _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
11466         _mm_maskz_reduce_ss): New.
11467         * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
11468         __builtin_ia32_reducess_mask): Ditto..
11469         (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
11470         * config/i386/sse.md (reduces<mode>): Renamed to ...
11471         (reduces<mode><mask_scalar_name>): ... this.
11472         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
11473         Changed to ...
11474         (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
11475         %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
11476
11477 2017-10-16  David Malcolm  <dmalcolm@redhat.com>
11478
11479         * Makefile.in (OBJS): Add unique-ptr-tests.o.
11480         * selftest-run-tests.c (selftest::run_tests): Call
11481         selftest::unique_ptr_tests_cc_tests.
11482         * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
11483         * unique-ptr-tests.cc: New file.
11484
11485 2017-10-16  Vladimir Makarov  <vmakarov@redhat.com>
11486
11487         PR sanitizer/82353
11488         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11489         locations.
11490         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11491         (make_hard_regno_born, make_hard_regno_dead): Update
11492         bb_killed_pseudos and bb_gen_pseudos for fixed regs.
11493
11494 2017-10-16  Jeff Law  <law@redhat.com>
11495
11496         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
11497
11498 2017-10-16  Jan Hubicka  <hubicka@ucw.cz>
11499
11500         * x86-tune-costs.h (znver1_cost): Fix move cost tables.
11501
11502 2017-10-16  Olivier Hainque  <hainque@adacore.com>
11503
11504         * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
11505         with_cpu if we were configured for an e500v2 target cpu name.
11506
11507 2017-10-16  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11508
11509         * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
11510         * doc/invoke.texi: Document +nodsp as a valid extension for
11511         -mcpu=cortex-m33.
11512
11513 2017-10-16  Martin Liska  <mliska@suse.cz>
11514
11515         * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
11516         (test_set_range): Likewise.
11517         (test_range_functions): Rename to ...
11518         (test_bit_in_range): ... this.
11519         (sbitmap_c_tests): Add new test.
11520
11521 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11522
11523         * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
11524         New.
11525         (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
11526         (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
11527
11528 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11529
11530         * config/aarch64/aarch64-builtins.c
11531         (aarch64_types_quadopu_lane_qualifiers): New.
11532         (TYPES_QUADOPU_LANE): New.
11533         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
11534         (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
11535         (aarch64_<sur>dot_laneq<vsi2qi>): New.
11536         * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
11537         (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
11538         * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
11539         (Vdottype, DOTPROD): New.
11540         (sur): Add SDOT and UDOT.
11541
11542 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11543
11544         * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
11545         (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
11546         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
11547         Add TARGET_DOTPROD.
11548         * config/aarch64/aarch64-option-extensions.def (dotprod): New.
11549         * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
11550         Enable TARGET_DOTPROD.
11551         (cortex-a75.cortex-a55): Likewise.
11552         * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
11553
11554 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11555
11556         * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
11557         (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
11558         New.
11559         * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
11560         New.
11561         * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
11562         (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
11563         * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
11564         (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
11565         * config/arm/types.md (neon_dot, neon_dot_q): New.
11566         * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
11567
11568 2017-10-16  Tamar Christina  <tamar.christina@arm.com>
11569
11570         * config/arm/arm.h (TARGET_DOTPROD): New.
11571         * config/arm/arm.c (arm_arch_dotprod): New.
11572         (arm_option_reconfigure_globals): Add arm_arch_dotprod.
11573         * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
11574         * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
11575         (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
11576         (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
11577         * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
11578         * doc/invoke.texi (armv8.2-a): Document dotprod
11579
11580 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
11581
11582         * i386.c (ix86_vec_cost): New function.
11583         (ix86_rtx_costs): Handle vector operations better.
11584         * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
11585         * x86-tune-costs.h: Add new costs to all tables.
11586
11587 2017-10-14  Jan Hubicka  <hubicka@ucw.cz>
11588
11589         * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
11590         operations.
11591         * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
11592         divsd, sqrtss and sqrtsd
11593         * x86-tune-costs.h: Add new entries to all costs.
11594         (znver1_cost): Fix to match real instruction latencies.
11595
11596 2017-10-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11597             Michael Collison <michael.collison@arm.com>
11598
11599         * compare-elim.c: Include emit-rtl.h.
11600         (can_merge_compare_into_arith): New function.
11601         (try_validate_parallel): Likewise.
11602         (try_merge_compare): Likewise.
11603         (try_eliminate_compare): Call the above when no previous clobber
11604         is available.
11605         (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
11606         dataflow problems.
11607
11608 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
11609
11610         PR middle-end/62263
11611         PR middle-end/82498
11612         * tree-ssa-phiopt.c (value_replacement): Comment fix.  Handle
11613         up to 2 preparation statements for ASSIGN in MIDDLE_BB.
11614
11615         PR middle-end/62263
11616         PR middle-end/82498
11617         * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
11618         to be any operand_equal_p operands.  For & (B - 1) require
11619         B to be power of 2.  Recognize
11620         (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
11621
11622 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11623
11624         PR bootstrap/82553
11625         * optabs.c (expand_memory_blockage): Fix call of
11626         targetm.have_memory_blockage.
11627
11628 2017-10-14  Jakub Jelinek  <jakub@redhat.com>
11629
11630         PR bootstrap/82548
11631         * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
11632         x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
11633         objects to extra_objs instead of overwriting it.
11634
11635 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11636
11637         * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
11638         Use any_fp_register_operand as operand[3] predicate.  Simplify
11639         equality test for operands[2] and operands[4] memory location.
11640         (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
11641         (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
11642         (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
11643         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
11644         any_fp_register_operand as operand[1] predicate.  Simplify
11645         equality test for operands[0] and operands[3] memory location.
11646         (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
11647         (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
11648         (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
11649
11650 2017-10-14  Uros Bizjak  <ubizjak@gmail.com>
11651
11652         * target-insns.def: Add memory_blockage.
11653         * optabs.c (expand_memory_blockage): New function.
11654         (expand_asm_memory_barrier): Rename ...
11655         (expand_asm_memory_blockage): ... to this.
11656         (expand_mem_thread_fence): Call expand_memory_blockage
11657         instead of expand_asm_memory_barrier.
11658         (expand_mem_singnal_fence): Ditto.
11659         (expand_atomic_load): Ditto.
11660         (expand_atomic_store): Ditto.
11661         * doc/md.texi (Standard Pattern Names For Generation):
11662         Document memory_blockage instruction pattern.
11663
11664 2017-10-13  Sebastian Perta  <sebastian.perta@renesas.com>
11665
11666         * config/rl78/rl78.c (rl78_emit_libcall): New function.
11667         * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
11668         * config/rl78/rl78.md: New define_expand "adddi3".
11669
11670 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
11671
11672         * cfghooks.c (verify_flow_info): Disable check that all probabilities
11673         are set correctly.
11674
11675 2017-10-13  Jeff Law  <law@redhat.com>
11676
11677         * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
11678
11679 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
11680
11681         PR target/82274
11682         * internal-fn.c (expand_mul_overflow): If both operands have
11683         the same highpart of -1 or 0 and the topmost bit of lowpart
11684         is different, overflow is if res <= 0 rather than res < 0.
11685
11686 2017-10-13  Pat Haugen  <pthaugen@us.ibm.com>
11687
11688         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
11689         TARGET_P9_VECTOR code for unaligned_load case.
11690
11691 2017-10-13  Jan Hubicka  <hubicka@ucw.cz>
11692
11693         * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
11694
11695 2017-10-13  Nathan Sidwell  <nathan@acm.org>
11696
11697         * tree-core.h (tree_contains_struct): Make bool.
11698         * tree.c (tree_contains_struct): Likewise.
11699         * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
11700         (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
11701         MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
11702         MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
11703         MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
11704
11705 2017-10-13  Richard Biener  <rguenther@suse.de>
11706
11707         * graphite-isl-ast-to-gimple.c
11708         (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
11709         parameters and dominance check.
11710         (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
11711         (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
11712         (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
11713         Do not update SSA form here or do intermediate IL verification.
11714         * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
11715         (graphite_initialize): Remove check on the number of loops in
11716         the function and inline into graphite_transform_loops.
11717         (graphite_finalize): Inline into graphite_transform_loops.
11718         (graphite_transform_loops): Perform SSA update and IL verification
11719         here.
11720         * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
11721
11722 2017-10-13  Richard Biener  <rguenther@suse.de>
11723
11724         * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
11725         graphite_expression_type_precision): Avoid global constructor
11726         by moving ...
11727         (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
11728         (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
11729         (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
11730         (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
11731         (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
11732         * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
11733
11734 2017-10-13  H.J. Lu  <hongjiu.lu@intel.com>
11735
11736         PR target/82499
11737         * config/i386/i386.h (ix86_red_zone_size): New.
11738         * config/i386/i386.md (push peephole2s): Replace
11739         "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
11740
11741 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11742             Alan Hayward  <alan.hayward@arm.com>
11743             David Sherwood  <david.sherwood@arm.com>
11744
11745         * combine.c (can_change_dest_mode): Reject changes in
11746         REGMODE_NATURAL_SIZE.
11747
11748 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11749             Alan Hayward  <alan.hayward@arm.com>
11750             David Sherwood  <david.sherwood@arm.com>
11751
11752         * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
11753         (expand_debug_source_expr): Likewise.
11754         * combine.c (combine_simplify_rtx): Likewise.
11755         * cse.c (fold_rtx): Likewise.
11756         * fwprop.c (canonicalize_address): Likewise.
11757         * targhooks.c (default_shift_truncation_mask): Likewise.
11758
11759 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11760             Alan Hayward  <alan.hayward@arm.com>
11761             David Sherwood  <david.sherwood@arm.com>
11762
11763         * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
11764         (widened_mode): Likewise.
11765         (expand_unop): Likewise.
11766         * ree.c (transform_ifelse): Likewise.
11767         (merge_def_and_ext): Likewise.
11768         (combine_reaching_defs): Likewise.
11769         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
11770
11771 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11772             Alan Hayward  <alan.hayward@arm.com>
11773             David Sherwood  <david.sherwood@arm.com>
11774
11775         * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
11776         * combine.c (gen_lowpart_for_combine): Likewise.
11777         * dwarf2out.c (rtl_for_decl_location): Likewise.
11778         * final.c (alter_subreg): Likewise.
11779         * rtlhooks.c (gen_lowpart_general): Likewise.
11780         (gen_lowpart_if_possible): Likewise.
11781
11782 2017-10-13  Richard Sandiford  <richard.sandiford@linaro.org>
11783             Alan Hayward  <alan.hayward@arm.com>
11784             David Sherwood  <david.sherwood@arm.com>
11785
11786         * calls.c (expand_call): Use subreg_lowpart_offset.
11787         * cse.c (cse_insn): Likewise.
11788         * regcprop.c (copy_value): Likewise.
11789         (copyprop_hardreg_forward_1): Likewise.
11790
11791 2017-10-13  Jakub Jelinek  <jakub@redhat.com>
11792
11793         PR target/82524
11794         * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
11795         *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
11796         =Q constraints to +Q and into insn condition add check
11797         that operands[0] and operands[1] are equal.
11798         (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
11799         =Q constraints to +Q and into insn condition add check
11800         that operands[0] is equal to either operands[1] or operands[2].
11801
11802         PR target/82498
11803         * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
11804         instead of handling MINUS_EXPR twice (once for each argument),
11805         canonicalize operand order and handle just once, use rtype where
11806         possible.  Handle (A << B) | (A >> (-B & (Z - 1))).
11807
11808         PR target/82498
11809         * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
11810         any values of __C while still being pattern recognizable as a simple
11811         rotate instruction.
11812
11813 2017-10-13  Richard Biener  <rguenther@suse.de>
11814
11815         PR tree-optimization/82451
11816         Revert
11817         2017-10-02  Richard Biener  <rguenther@suse.de>
11818
11819         PR tree-optimization/82355
11820         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
11821         a mapping for the enclosing loop but avoid generating one for
11822         the loop tree root.
11823         (copy_bb_and_scalar_dependences): Remove premature codegen
11824         error on PHIs in blocks duplicated into multiple places.
11825         * graphite-scop-detection.c
11826         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
11827         in the region use it as loop and nest to analyze the DR in.
11828         (try_generate_gimple_bb): Likewise.
11829         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
11830         (add_loop_constraints): For blocks in a loop not in the region
11831         create a dimension with a single iteration.
11832         * sese.h (gbb_loop_at_index): Remove assert.
11833
11834         * cfgloop.c (loop_preheader_edge): For the loop tree root
11835         return the single successor of the entry block.
11836         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
11837         Reset the SCEV hashtable and niters.
11838         * graphite-scop-detection.c
11839         (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
11840         assert that we only have POLYNOMIAL_CHREC that vary in loops
11841         contained in the region.
11842         (scop_detection::graphite_can_represent_expr): Adjust.
11843         (scop_detection::stmt_has_simple_data_refs_p): For loops
11844         not in the region set loop to NULL.  The nest is now the
11845         entry edge to the region.
11846         (try_generate_gimple_bb): Likewise.
11847         * sese.c (scalar_evolution_in_region): Adjust for
11848         instantiate_scev change.
11849         * tree-data-ref.h (graphite_find_data_references_in_stmt):
11850         Make nest parameter the edge into the region.
11851         (create_data_ref): Likewise.
11852         * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
11853         entry edge into a region and adjust instantiate_scev calls.
11854         (create_data_ref): Likewise.
11855         (graphite_find_data_references_in_stmt): Likewise.
11856         (find_data_references_in_stmt): Pass the loop preheader edge
11857         from the nest argument.
11858         * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
11859         parameter the edge into the region.
11860         (instantiate_parameters): Use the loop preheader edge as entry.
11861         * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
11862         NULL loop.
11863         (get_instantiated_value_entry): Make instantiate_below parameter
11864         the edge into the region.
11865         (instantiate_scev_name): Likewise.  Adjust dominance checks,
11866         when we cannot use loop-based instantiation instantiate by
11867         walking use-def chains.
11868         (instantiate_scev_poly): Adjust.
11869         (instantiate_scev_binary): Likewise.
11870         (instantiate_scev_convert): Likewise.
11871         (instantiate_scev_not): Likewise.
11872         (instantiate_array_ref): Remove.
11873         (instantiate_scev_3): Likewise.
11874         (instantiate_scev_2): Likewise.
11875         (instantiate_scev_1): Likewise.
11876         (instantiate_scev_r): Do not blindly handle N-operand trees.
11877         Do not instantiate array-refs.  Handle all constants and invariants.
11878         (instantiate_scev): Make instantiate_below parameter
11879         the edge into the region.
11880         (resolve_mixers): Use the loop preheader edge for the region
11881         parameter to instantiate_scev_r.
11882         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
11883
11884 2017-10-13  Richard Biener  <rguenther@suse.de>
11885
11886         PR tree-optimization/82525
11887         * graphite-isl-ast-to-gimple.c
11888         (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
11889         out from ...
11890         (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
11891         Fail code generation when we cannot represent the isl integer.
11892         (binary_op_to_tree): Elide modulo operations that are no-ops
11893         in the type we code generate.  Remove now superfluous code
11894         generation errors.
11895
11896 2017-10-13  Richard Biener  <rguenther@suse.de>
11897
11898         * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
11899         (scop_detection::harmful_loop_in_region): Remove premature
11900         IV type restriction.
11901         (scop_detection::graphite_can_represent_scev): We can handle
11902         pointer IVs just fine.
11903
11904 2017-10-13  Alan Modra  <amodra@gmail.com>
11905
11906         * doc/extend.texi (Extended Asm <Clobbers>): Rename to
11907         "Clobbers and Scratch Registers".  Add paragraph on
11908         alternative to clobbers for scratch registers and OpenBLAS
11909         example.
11910
11911 2017-10-13  Alan Modra  <amodra@gmail.com>
11912
11913         * doc/extend.texi (Clobbers): Correct vax example.  Delete old
11914         example of a memory input for a string of known length.  Move
11915         commentary out of table.  Add a number of new examples
11916         covering array memory inputs.
11917
11918 2017-10-12  Martin Liska  <mliska@suse.cz>
11919
11920         PR tree-optimization/82493
11921         * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
11922         (test_range_functions): New function.
11923         (sbitmap_c_tests): Likewise.
11924         * selftest-run-tests.c (selftest::run_tests): Run new tests.
11925         * selftest.h (sbitmap_c_tests): New function.
11926
11927         * tree-ssa-dse.c (live_bytes_read): Fix thinko.
11928
11929 2017-10-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11930
11931         * config/rs6000/amo.h: Fix spacing issue.
11932
11933 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
11934
11935         PR target/82498
11936         * config/i386/i386.md (*ashl<mode>3_mask_1,
11937         *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
11938         *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
11939         patterns.
11940
11941 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11942
11943         * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
11944         (profile_probability): Set max_probability
11945         to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
11946         in temporaries.
11947         * profile-count.c (profile_probability::differs_from_p): Do not
11948         rely on max_probaiblity == 10000
11949
11950 2017-10-12  Jeff Law  <law@redhat.com>
11951
11952         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
11953         negative offsets.
11954
11955 2017-10-12  Martin Sebor  <msebor@redhat.com>
11956
11957         PR other/82301
11958         PR c/82435
11959         * cgraphunit.c (maybe_diag_incompatible_alias): New function.
11960         (handle_alias_pairs): Call it.
11961         * common.opt (-Wattribute-alias): New option.
11962         * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
11963         * doc/invoke.texi (-Wattribute-alias): Document.
11964
11965 2017-10-12  Vladimir Makarov  <vmakarov@redhat.com>
11966
11967         Revert
11968         2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
11969         PR sanitizer/82353
11970         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
11971         locations.
11972         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
11973         (make_hard_regno_born, make_hard_regno_dead): Update
11974         bb_killed_pseudos and bb_gen_pseudos.
11975
11976 2017-10-12  Jan Hubicka  <hubicka@ucw.cz>
11977
11978         * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
11979
11980 2017-10-12  Uros Bizjak  <ubizjak@gmail.com>
11981
11982         * config/alpha/alpha.c (alpha_split_conditional_move):
11983         Use std::swap instead of manually swapping.
11984         (alpha_stdarg_optimize_hook): Ditto.
11985         (alpha_canonicalize_comparison): Ditto.
11986
11987 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
11988
11989         * tree-loop-distribution.c (struct builtin_info): New struct.
11990         (struct partition): Refactor fields into struct builtin_info.
11991         (partition_free): Free struct builtin_info.
11992         (build_size_arg_loc, build_addr_arg_loc): Delete.
11993         (generate_memset_builtin, generate_memcpy_builtin): Get memory range
11994         information from struct builtin_info.
11995         (find_single_drs): New function refactored from classify_partition.
11996         Also moved builtin validity checks to this function.
11997         (compute_access_range, alloc_builtin): New functions.
11998         (classify_builtin_st, classify_builtin_ldst): New functions.
11999         (classify_partition): Refactor code into functions find_single_drs,
12000         classify_builtin_st and classify_builtin_ldst.
12001         (distribute_loop): Don't do runtime alias check when distributing
12002         loop nest.
12003         (find_seed_stmts_for_distribution): New function.
12004         (pass_loop_distribution::execute): Refactor code finding seed
12005         stmts into above function.  Support distribution for the innermost
12006         two-level loop nest.  Adjust dump information.
12007
12008 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
12009
12010         * tree-loop-distribution.c: Adjust the general comment.
12011         (NUM_PARTITION_THRESHOLD): New macro.
12012         (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
12013         (classify_partition): Skip builtin pattern of loop nest's inner loop.
12014         (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
12015         in call to build_partition_graph.
12016         (finalize_partitions): New parameter.  Make loop distribution more
12017         conservative by fusing more partitions.
12018         (distribute_loop): Don't do runtime alias check in case of loop nest
12019         distribution.
12020         (find_seed_stmts_for_distribution): New function.
12021         (prepare_perfect_loop_nest): New function.
12022         (pass_loop_distribution::execute): Refactor code finding seed stmts
12023         and loop nest into above functions.  Support loop nest distribution.
12024         Adjust dump information accordingly.
12025
12026 2017-10-12  Bin Cheng  <bin.cheng@arm.com>
12027
12028         * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
12029         and set PTYPE_SEQUENTIAL for merged partition.
12030
12031 2017-10-12  Richard Biener  <rguenther@suse.de>
12032
12033         PR tree-optimization/69728
12034         Revert
12035         2017-09-19  Richard Biener  <rguenther@suse.de>
12036
12037         PR tree-optimization/69728
12038         * graphite-sese-to-poly.c (schedule_error): New global.
12039         (add_loop_schedule): Handle empty domain by failing the
12040         schedule.
12041         (build_original_schedule): Handle schedule_error.
12042
12043         * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
12044         domain by returning an unchanged schedule.
12045
12046 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
12047
12048         * genrecog.c (validate_pattern): For VEC_SELECT verify that
12049         CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
12050
12051 2017-10-12  Aldy Hernandez  <aldyh@redhat.com>
12052
12053         * Makefile.in (TAGS): Merge all the *.def files into one pattern.
12054         Handle params.def.
12055
12056 2017-10-12  Jakub Jelinek  <jakub@redhat.com>
12057
12058         PR c++/82159
12059         * expr.c (store_field): Don't optimize away bitsize == 0 store
12060         from CALL_EXPR with addressable return type.
12061
12062 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
12063
12064         * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
12065         * config/rs6000/rs6000.md (sel): Delete mode attribute.
12066         (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
12067         *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
12068         TARGET_ISEL instead of TARGET_ISEL<sel>.
12069
12070 2017-10-11  David Edelsohn  <dje.gcc@gmail.com>
12071
12072         * config/rs6000/rs6000.c
12073         (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
12074
12075 2017-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
12076
12077         * config/rs6000/predicates.md (zero_constant, all_ones_constant):
12078         Move up in file.
12079         (reg_or_cint_operand): Fix comment.
12080         (reg_or_zero_operand): New predicate.
12081         * config/rs6000/rs6000-protos.h (output_isel): Delete.
12082         * config/rs6000/rs6000.c (output_isel): Delete.
12083         * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
12084         instead of reg_or_cint_operand.  Output instruction directly (not via
12085         output_isel).
12086         (isel_unsigned_<mode>): Ditto.
12087         (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
12088         gpc_reg_operand.  Add an instruction alternative for this.  Output
12089         instruction directly.
12090         (*isel_reversed_unsigned_<mode>): Ditto.
12091
12092 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
12093
12094         * config/i386/i386.c (ix86_canonicalize_comparison): New function.
12095         (TARGET_CANONICALIZE_COMPARISON): Define.
12096
12097 2017-10-11  Qing Zhao  <qing.zhao@oracle.com>
12098
12099         PR target/81422
12100         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
12101         Check whether the dest is REG before adding REG_EQUIV note.
12102
12103 2017-10-11  Vladimir Makarov  <vmakarov@redhat.com>
12104
12105         PR sanitizer/82353
12106         * lra.c (collect_non_operand_hard_regs): Don't ignore operator
12107         locations.
12108         * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
12109         (make_hard_regno_born, make_hard_regno_dead): Update
12110         bb_killed_pseudos and bb_gen_pseudos.
12111
12112 2017-10-11  Nathan Sidwell  <nathan@acm.org>
12113
12114         * incpath.h (enum incpath_kind): Name enum, prefix values.
12115         (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
12116         * incpath.c (heads, tails): Use INC_MAX.
12117         (add_env_var_paths, add_standard_paths): Use incpath_kind.
12118         (merge_include_chains, split_quote_chain,
12119         register_include_chains): Update incpath_kind names.
12120         (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
12121         * config/darwin-c.c (add_system_framework_path): Update incpath_kind
12122         names.
12123         (add_framework_path, darwin_register_objc_includes): Likewise.
12124         * config/vms/vms-c.c (vms_c_register_includes): Likewise.
12125
12126 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
12127
12128         * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
12129         Do not use float_operator operator predicate.
12130         (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
12131         * config/i386/predicates.md (float_operator): Remove predicate.
12132
12133 2017-10-11  Uros Bizjak  <ubizjak@gmail.com>
12134
12135         * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
12136         (*jccxf_i387): Ditto.
12137         (*jcc<mode>_i387): Ditto.
12138         (*jccu<mode>_i387): Ditto.
12139         (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
12140         (*jcc_*_i387 splitters): Remove.
12141         * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
12142         * config/i386/i386.c (ix86_split_fp_branch): Remove.
12143         * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
12144         Remove predicate.
12145
12146 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
12147
12148         * profile-count.h (slow_safe_scale_64bit): New function.
12149         (safe_scale_64bit): New inline.
12150         (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
12151         * profile-count.c: Include wide-int.h
12152         (slow_safe_scale_64bit): New.
12153
12154 2017-10-11  Nathan Sidwell  <nathan@acm.org>
12155
12156         * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
12157         HAS_DECL_ASSEMBLER_NAME_P.
12158         * gimple-expr.c (gimple_decl_printable_name: Check
12159         HAS_DECL_ASSEMBLER_NAME_P too.
12160         * ipa-utils.h (type_in_anonymous_namespace_p): Check
12161         DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
12162         (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
12163         * passes.c (rest_of_decl_compilation): Check
12164         HAS_DECL_ASSEMBLER_NAME_P too.
12165         * recog.c (verify_changes): Likewise.
12166         * tree-pretty-print.c (dump_decl_name): Likewise.
12167         * tree-ssa-structalias.c (alias_get_name): Likewise.  Reimplement.
12168
12169         * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
12170         (SET_DECL_ASSEMBLER_NAME): Use it.
12171         (DECL_ASSEMBLER_NAME_SET_P): Likewise.
12172         (COPY_DECL_ASSEMBLER_NAME): Likewise.
12173         * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
12174
12175 2017-10-11  Jan Hubicka  <hubicka@ucw.cz>
12176
12177         * config.gcc (i386, x86_64): Add extra objects.
12178         * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
12179         (ix86_min_insn_size): Declare.
12180         (ix86_issue_rate): Declare.
12181         (ix86_adjust_cost): Declare.
12182         (ia32_multipass_dfa_lookahead): Declare.
12183         (ix86_macro_fusion_p): Declare.
12184         (ix86_macro_fusion_pair_p): Declare.
12185         (ix86_bd_has_dispatch): Declare.
12186         (ix86_bd_do_dispatch): Declare.
12187         (ix86_core2i7_init_hooks): Declare.
12188         (ix86_atom_sched_reorder): Declare.
12189         * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
12190         (COSTS_N_BYTES): Move to x86-tune-costs.h.
12191         (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
12192         (rip_relative_addr_p): Rename to ...
12193         (ix86_rip_relative_addr_p): ... this one; export.
12194         (memory_address_length): Update.
12195         (ix86_issue_rate): Move to x86-tune-sched.c.
12196         (ix86_flags_dependent): Move to x86-tune-sched.c.
12197         (ix86_agi_dependent): Move to x86-tune-sched.c.
12198         (exact_dependency_1): Move to x86-tune-sched.c.
12199         (exact_store_load_dependency): Move to x86-tune-sched.c.
12200         (ix86_adjust_cost): Move to x86-tune-sched.c.
12201         (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
12202         (ix86_macro_fusion_p): Move to x86-tune-sched.c.
12203         (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
12204         (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
12205         (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
12206         (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
12207         (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
12208         (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
12209         (min_insn_size): Rename to ...
12210         (ix86_min_insn_size): ... this one; export.
12211         (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
12212         (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
12213         (core2i7_first_cycle_multipass_backtrack): Move to
12214         x86-tune-sched-core.c.
12215         (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
12216         (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
12217         (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
12218         (ix86_avoid_jump_mispredicts): Update.
12219         (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
12220         (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
12221         (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
12222         (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
12223         (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
12224         (MAX_INSN): Move to ix86-tune-sched-bd.c.
12225         (MAX_IMM): Move to ix86-tune-sched-bd.c.
12226         (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
12227         (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
12228         (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
12229         (MAX_LOAD): Move to ix86-tune-sched-bd.c.
12230         (MAX_STORE): Move to ix86-tune-sched-bd.c.
12231         (BIG): Move to ix86-tune-sched-bd.c.
12232         (enum dispatch_group): Move to ix86-tune-sched-bd.c.
12233         (enum insn_path): Move to ix86-tune-sched-bd.c.
12234         (get_mem_group): Move to ix86-tune-sched-bd.c.
12235         (is_cmp): Move to ix86-tune-sched-bd.c.
12236         (dispatch_violation): Move to ix86-tune-sched-bd.c.
12237         (is_branch): Move to ix86-tune-sched-bd.c.
12238         (is_prefetch): Move to ix86-tune-sched-bd.c.
12239         (init_window): Move to ix86-tune-sched-bd.c.
12240         (allocate_window): Move to ix86-tune-sched-bd.c.
12241         (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
12242         (is_end_basic_block): Move to ix86-tune-sched-bd.c.
12243         (process_end_window): Move to ix86-tune-sched-bd.c.
12244         (allocate_next_window): Move to ix86-tune-sched-bd.c.
12245         (find_constant): Move to ix86-tune-sched-bd.c.
12246         (get_num_immediates): Move to ix86-tune-sched-bd.c.
12247         (has_immediate): Move to ix86-tune-sched-bd.c.
12248         (get_insn_path): Move to ix86-tune-sched-bd.c.
12249         (get_insn_group): Move to ix86-tune-sched-bd.c.
12250         (count_num_restricted): Move to ix86-tune-sched-bd.c.
12251         (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
12252         (add_insn_window): Move to ix86-tune-sched-bd.c.
12253         (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
12254         (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
12255         (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
12256         (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
12257         (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
12258         (do_dispatch): Move to ix86-tune-sched-bd.c.
12259         (has_dispatch): Move to ix86-tune-sched-bd.c.
12260         * config/i386/t-i386: Add new object files.
12261         * config/i386/x86-tune-costs.h: New file.
12262         * config/i386/x86-tune-sched-atom.c: New file.
12263         * config/i386/x86-tune-sched-bd.c: New file.
12264         * config/i386/x86-tune-sched-core.c: New file.
12265         * config/i386/x86-tune-sched.c: New file.
12266
12267 2017-10-11  Liu Hao  <lh_mouse@126.com>
12268
12269         * pretty-print.c [_WIN32] (colorize_init): Remove.  Use
12270         the generic version below instead.
12271         (should_colorize): Recognize Windows consoles as terminals
12272         for MinGW targets.
12273         * pretty-print.c [__MINGW32__] (write_all): New function.
12274         [__MINGW32__] (find_esc_head): Likewise.
12275         [__MINGW32__] (find_esc_terminator): Likewise.
12276         [__MINGW32__] (eat_esc_sequence): Likewise.
12277         [__MINGW32__] (mingw_ansi_fputs): New function that handles
12278         ANSI escape codes.
12279         (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
12280         for MinGW targets.
12281
12282 2017-10-11  Richard Biener  <rguenther@suse.de>
12283
12284         * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
12285         Properly call analyze_scalar_evolution with the loop of the stmt.
12286
12287 2017-10-11  Richard Biener  <rguenther@suse.de>
12288
12289         * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
12290         * tree-core.h (tree_base): Add chrec_var union member.
12291         * tree.h (CHREC_VAR): Remove.
12292         (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
12293         * tree-chrec.h (build_polynomial_chrec): Adjust.
12294         * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
12295         * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
12296
12297 2017-10-11  Marc Glisse  <marc.glisse@inria.fr>
12298
12299         * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
12300         * match.pd: ... here.
12301         ((T) X == (T) Y): Relax condition.
12302
12303 2017-10-11  Bin Cheng  <bin.cheng@arm.com>
12304
12305         PR tree-optimization/82472
12306         * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
12307         comment.
12308         (break_alias_scc_partitions): Update postorder number.
12309
12310 2017-10-11  Martin Liska  <mliska@suse.cz>
12311
12312         PR sanitizer/82490
12313         * opts.c (parse_no_sanitize_attribute): Do not use error_value
12314         variable.
12315         * opts.h (parse_no_sanitize_attribute): Remove last argument.
12316
12317 2017-10-11  Martin Liska  <mliska@suse.cz>
12318
12319         * print-rtl.c (print_insn): Move declaration of idbuf
12320         to same scope as name.
12321
12322 2017-10-11  Martin Liska  <mliska@suse.cz>
12323
12324         Revert r253637:
12325
12326         PR sanitizer/82484
12327         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
12328         volatile arguments.
12329
12330 2017-10-11  Martin Liska  <mliska@suse.cz>
12331
12332         PR sanitizer/82484
12333         * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
12334         volatile arguments.
12335
12336 2017-10-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
12337
12338         * config.gcc (default_gnu_indirect_function): Default to yes for
12339         arm*-*-linux* with glibc.
12340
12341 2017-10-11  Richard Biener  <rguenther@suse.de>
12342
12343         * tree-scalar-evolution.c (get_scalar_evolution): Handle
12344         default-defs and types we do not want to analyze.
12345         (interpret_loop_phi): Replace unreachable code with an assert.
12346         (compute_scalar_evolution_in_loop): Remove and inline ...
12347         (analyze_scalar_evolution_1): ... here, replacing condition with
12348         what makes the intent clearer.  Remove handling of cases
12349         get_scalar_evolution now handles.
12350
12351 2017-10-10  Jim Wilson  <wilson@tuliptree.org>
12352
12353         PR rtl-optimization/81434
12354         * haifa-sched.c (prune_ready_list): Init min_cost_group to 0.  Update
12355         comment for main loop.  In sched_group_found if, also add checks for
12356         pass and min_cost_group.
12357
12358 2017-10-10  Segher Boessenkool  <segher@kernel.crashing.org>
12359
12360         * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
12361         (rs6000_insn_cost): New function.
12362         * config/rs6000/rs6000.md (cost): New attribute.
12363
12364 2017-10-10  Jakub Jelinek  <jakub@redhat.com>
12365             H.J. Lu  <hongjiu.lu@intel.com>
12366
12367         PR target/79565
12368         PR target/82483
12369         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
12370         OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
12371         __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
12372         (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
12373         to OPTION_MASK_ISA_AVX512VL - builtins that have both
12374         OPTION_MASK_ISA_MMX and some other bit set require both
12375         mmx and the ISAs without the mmx bit.
12376         * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
12377         __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
12378         __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
12379         __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
12380         __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
12381         __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
12382         __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
12383         __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
12384         __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
12385         __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
12386         __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
12387         __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
12388         __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
12389         __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
12390         Add OPTION_MASK_ISA_MMX.
12391
12392 2017-10-10  Andreas Tobler  <andreast@gcc.gnu.org>
12393
12394         * config.gcc (armv7*-*-freebsd*): New target.
12395         (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
12396
12397 2017-10-10  Jan Hubicka  <hubicka@ucw.cz>
12398
12399         * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
12400         X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
12401         spot in the file.
12402
12403 2017-10-10  Richard Sandiford  <richard.sandiford@linaro.org>
12404
12405         * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
12406         a template parameter.
12407         (WIDE_INT_REF_FOR): Update accordingly.
12408         * tree.h (wi::int_traits <const_tree>): Delete.
12409         (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
12410         (wi::to_widest, wi::to_offset): Use them.  Expand commentary.
12411         (wi::tree_to_wide_ref): New typedef.
12412         (wi::to_wide): New function.
12413         * calls.c (get_size_range): Use wi::to_wide when operating on
12414         trees as wide_ints.
12415         * cgraph.c (cgraph_node::create_thunk): Likewise.
12416         * config/i386/i386.c (ix86_data_alignment): Likewise.
12417         (ix86_local_alignment): Likewise.
12418         * dbxout.c (stabstr_O): Likewise.
12419         * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
12420         * expr.c (const_vector_from_tree): Likewise.
12421         * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
12422         * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
12423         (fold_negate_expr_1, int_const_binop_1, const_binop)
12424         (fold_convert_const_int_from_real, optimize_bit_field_compare)
12425         (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
12426         (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
12427         (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
12428         (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
12429         (fold_not_const, round_up_loc): Likewise.
12430         * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
12431         * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
12432         (alloca_call_type): Likewise.
12433         * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
12434         * godump.c (go_output_typedef): Likewise.
12435         * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
12436         * internal-fn.c (get_min_precision): Likewise.
12437         * ipa-cp.c (ipcp_store_vr_results): Likewise.
12438         * ipa-polymorphic-call.c
12439         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
12440         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
12441         (ipa_modify_call_arguments): Likewise.
12442         * match.pd: Likewise.
12443         * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
12444         * print-tree.c (print_node_brief, print_node): Likewise.
12445         * stmt.c (expand_case): Likewise.
12446         * stor-layout.c (layout_type): Likewise.
12447         * tree-affine.c (tree_to_aff_combination): Likewise.
12448         * tree-cfg.c (group_case_labels_stmt): Likewise.
12449         * tree-data-ref.c (dr_analyze_indices): Likewise.
12450         (prune_runtime_alias_test_list): Likewise.
12451         * tree-dump.c (dequeue_and_dump): Likewise.
12452         * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
12453         * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
12454         * tree-pretty-print.c (dump_generic_node): Likewise.
12455         * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
12456         (simple_iv_with_niters): Likewise.
12457         * tree-ssa-address.c (addr_for_mem_ref): Likewise.
12458         * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
12459         * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
12460         * tree-ssa-loop-niter.c (split_to_var_and_offset)
12461         (refine_value_range_using_guard, number_of_iterations_ne_max)
12462         (number_of_iterations_lt_to_ne, number_of_iterations_lt)
12463         (get_cst_init_from_scev, record_nonwrapping_iv)
12464         (scev_var_range_cant_overflow): Likewise.
12465         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
12466         * tree-ssa-pre.c (compute_avail): Likewise.
12467         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
12468         (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
12469         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
12470         * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
12471         * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
12472         * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
12473         (dump_case_nodes, try_switch_expansion): Likewise.
12474         * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
12475         (vect_do_peeling): Likewise.
12476         * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
12477         * tree-vect-stmts.c (vectorizable_load): Likewise.
12478         * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
12479         (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
12480         (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
12481         (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
12482         (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
12483         (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
12484         (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
12485         (evrp_dom_walker::before_dom_children): Likewise.
12486         * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
12487         (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
12488         (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
12489         (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
12490         (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
12491         (get_range_pos_neg): Likewise.
12492         * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
12493         * config/darwin.c (darwin_mergeable_constant_section): Likewise.
12494         * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
12495         * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
12496         * config/avr/avr.c (avr_fold_builtin): Likewise.
12497         * config/bfin/bfin.c (bfin_local_alignment): Likewise.
12498         * config/msp430/msp430.c (msp430_attr): Likewise.
12499         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
12500         * config/powerpcspe/powerpcspe-c.c
12501         (altivec_resolve_overloaded_builtin): Likewise.
12502         * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
12503         (rs6000_expand_ternop_builtin): Likewise.
12504         * config/rs6000/rs6000-c.c
12505         (altivec_resolve_overloaded_builtin): Likewise.
12506         * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
12507         (rs6000_expand_ternop_builtin): Likewise.
12508         * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
12509
12510 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12511
12512         * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
12513         when copying loop nest with only one inner loop.
12514
12515 2017-10-10  Richard Biener  <rguenther@suse.de>
12516
12517         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
12518         blocks if SCEV is active.
12519         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
12520         dead code.
12521         (analyze_scalar_evolution): Handle cached evolutions the obvious way.
12522         (scev_initialize): Assert we are not yet initialized.
12523
12524 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12525
12526         * tree-loop-distribution.c (generate_loops_for_partition): Remove
12527         inner loop's exit stmt by making it always exit the loop, otherwise
12528         we would generate an infinite empty loop.
12529
12530 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12531
12532         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
12533         renaming variables in new preheader if it's deleted.
12534
12535 2017-10-10  Bin Cheng  <bin.cheng@arm.com>
12536
12537         * tree-loop-distribution.c (struct partition): Remove unused field
12538         loops of the structure.
12539         (partition_alloc, partition_free): Ditto.
12540         (build_rdg_partition_for_vertex): Ditto.
12541
12542 2017-10-09  Jeff Law  <law@redhat.com>
12543
12544         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
12545         return type to match prototype and documentation.
12546
12547 2010-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12548
12549         * config/rs6000/rs6000.c (processor_costs): Move to ...
12550         * config/rs6000/rs6000.h: ... here.
12551         (rs6000_cost): Declare.
12552
12553 2017-10-09  Eric Botcazou  <ebotcazou@adacore.com>
12554
12555         * except.c (setjmp_fn): New global variable.
12556         (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
12557         (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
12558         if DONT_USE_BUILTIN_SETJMP is defined.
12559
12560 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12561
12562         * target.def (insn_cost): New hook.
12563         * doc/tm.texi.in (TARGET_INSN_COST): New hook.
12564         * doc/tm.texi: Regenerate.
12565         * rtlanal.c (insn_cost): Use the new hook.
12566
12567 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12568
12569         * combine.c (combine_validate_cost): Compute the new insn_cost,
12570         not just pattern_cost.
12571         (try_combine): Adjust comment.
12572
12573 2017-10-09  Segher Boessenkool  <segher@kernel.crashing.org>
12574
12575         * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
12576         insn_cost.
12577         * combine.c (uid_insn_cost): Adjust comment.
12578         (combine_validate_cost): Adjust comment.  Use pattern_cost instead
12579         of insn_rtx_cost
12580         (combine_instructions): Use insn_cost instead of insn_rtx_cost.
12581         * dse.c (find_shift_sequence): Ditto.
12582         * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
12583         (bb_valid_for_noce_process_p): Use pattern_cost.
12584         * rtl.h (insn_rtx_cost): Delete.
12585         (pattern_cost): New prototype.
12586         (insn_cost): New prototype.
12587         * rtlanal.c (insn_rtx_cost): Rename to...
12588         (pattern_cost): ... this.
12589         (insn_cost): New.
12590
12591 2017-10-09  Uros Bizjak  <ubizjak@gmail.com>
12592
12593         * config/i386/i386.md (*jcc_2): Remove insn pattern.
12594         (*jcc<mode>_0_r_i387): Ditto.
12595         (*jccxf_r_i387): Ditto.
12596         (*jcc<mode>_r_i387): Ditto.
12597         (*jccu<mode>_r_i387): Ditto.
12598         (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
12599         (*jcc): Rename from *jcc_1.
12600
12601 2017-10-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12602
12603         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
12604         deferred rescans after the lvx/stvx recombination pre-pass.
12605
12606 2017-10-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12607
12608         * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
12609         memory operation instruction support.
12610         * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
12611         (rs6000-ibm-aix[789]*): Likewise.
12612         * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
12613         Document new functions.
12614
12615 2017-10-09  Richard Biener  <rguenther@suse.de>
12616
12617         PR tree-optimization/82397
12618         * tree-data-ref.c (data_ref_compare_tree): Make sure to return
12619         equality only for semantically equal trees.
12620
12621 2017-10-09  Richard Biener  <rguenther@suse.de>
12622
12623         PR tree-optimization/82449
12624         * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
12625         * tree-chrec.h (evolution_function_is_constant_p): Adjust to
12626         allow constant addresses.
12627         * tree-chrec.c (scev_is_linear_expression): Constant evolutions
12628         are linear.
12629
12630 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12631
12632         * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
12633         flags.
12634
12635 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12636
12637         PR target/82463
12638         * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
12639         definitions.
12640
12641 2017-10-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12642
12643         PR target/82465
12644         * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
12645
12646 2017-10-09  Jakub Jelinek  <jakub@redhat.com>
12647
12648         PR target/82464
12649         * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
12650         s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
12651
12652 2017-10-09  Richard Sandiford  <richard.sandiford@linaro.org>
12653
12654         * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
12655         (WI_BINARY_PREDICATE_RESULT): Likewise.
12656         (wi::binary_traits::operator_result): New type.
12657         (wi::binary_traits::predicate_result): Likewise.
12658         (generic_wide_int::operator~, unary generic_wide_int::operator-)
12659         (generic_wide_int::operator==, generic_wide_int::operator!=)
12660         (generic_wide_int::operator&, generic_wide_int::and_not)
12661         (generic_wide_int::operator|, generic_wide_int::or_not)
12662         (generic_wide_int::operator^, generic_wide_int::operator+
12663         (binary generic_wide_int::operator-, generic_wide_int::operator*):
12664         Delete.
12665         (operator~, unary operator-, operator==, operator!=, operator&)
12666         (operator|, operator^, operator+, binary operator-, operator*): New
12667         functions.
12668         * expr.c (get_inner_reference): Use wi::bit_and_not.
12669         * fold-const.c (fold_binary_loc): Likewise.
12670         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
12671         * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
12672         (bit_value_binop): Likewise.
12673         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
12674         * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
12675         (extract_range_from_binary_expr_1): Likewise.
12676         (masked_increment): Likewise.
12677         (simplify_bit_ops_using_ranges): Likewise.
12678
12679 2017-10-09  Martin Jambor  <mjambor@suse.cz>
12680
12681         PR hsa/82416
12682         * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
12683         * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
12684         (hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
12685         COMPLEX types.
12686         (hsa_fixup_mov_insn_type): New function.
12687         (hsa_op_with_type::get_in_type): Use it.
12688         (hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
12689         immediates in an assert.
12690         (hsa_op_with_type::extend_int_to_32bit): New method.
12691         (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
12692         types.  Convert to dest type if necessary.
12693         (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
12694         (reg_for_gimple_ssa): Pass false as min32int to
12695         hsa_type_for_scalar_tree_type.
12696         (gen_hsa_addr): Fixup type when creating addresable temporary.
12697         (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
12698         (gen_hsa_unary_operation): Extend operands and convert to dest type if
12699         necessary.  Call hsa_fixup_mov_insn_type.
12700         (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
12701         extend operands and convert to dest type if necessary.
12702         (gen_hsa_insns_for_operation_assignment): Extend operands and convert
12703         to dest type if necessary.
12704         (set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
12705         if conversion nt necessary and size matches.
12706         (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
12707         to dest type if necessary.
12708         (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
12709         (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
12710         necessary.
12711         (gen_hsa_clrsb): Likewise.
12712         (gen_hsa_ffs): Likewise.
12713         (gen_hsa_divmod): Extend operands and convert to dest type if
12714         necessary.
12715         (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
12716
12717 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
12718
12719         * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
12720         Remove empty default arguments.  Use a brace block as output
12721         statement.
12722         (conditional return): Ditto.
12723         (jump): Ditto.
12724         (indirect_jump): Ditto.  Use b%T0 instead of bctr/blr.
12725         (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
12726         Ditto.
12727         (group_ending_nop): Ditto.
12728         (doloop_end): Ditto.
12729         (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
12730         (splitters for those): Ditto.
12731
12732 2017-10-08  Segher Boessenkool  <segher@kernel.crashing.org>
12733
12734         * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
12735         a conditional jump (and the compare for it) so that pc_rtx is the
12736         last operand.
12737         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
12738         for the deleted and renamed ctr<mode>_internal[234] patterns.
12739         * config/rs6000/rs6000.md: Delete second conditional branch pattern.
12740         Delete second conditional return pattern.
12741         (ctr<mode>_internal2): Delete this second bdnz pattern.
12742         (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
12743         (ctr<mode>_internal4): Delete this second bdz pattern.
12744
12745 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
12746
12747         * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
12748         (always_initialized_rtx_for_ssa_name_p): New predicate.
12749         * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
12750         (finish_out_of_ssa): Free new field of SA.
12751         * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
12752         * tree-ssa-coalesce.c: Include tree-ssa.h.
12753         (get_parm_default_def_partitions): Remove extern keyword.
12754         (get_undefined_value_partitions): New function.
12755         * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
12756         not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
12757         uninitialized bits.
12758         * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
12759
12760 2017-10-08  Eric Botcazou  <ebotcazou@adacore.com>
12761
12762         * builtins.def (BUILT_IN_SETJMP): Revert latest change.
12763
12764 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12765
12766         * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
12767         for targets that preffer 128bit.
12768
12769 2017-10-08  Jan Hubicka  <hubicka@ucw.cz>
12770
12771         * config/i386/i386.c (has_dispatch): Disable for Ryzen.
12772
12773 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12774
12775         * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
12776         on the target mem instead of RTX_FRAME_RELATED_P on the insn to
12777         prevent DSE.
12778         (thumb_set_return_address): Likewise.
12779
12780 2017-10-08  Olivier Hainque  <hainque@adacore.com>
12781
12782         * common/config/arm/arm-common.c (arm_except_unwind_info):
12783         Handle DWARF2_UNWIND_INFO.
12784
12785 2017-10-07  Michael Collison <michael.collison@arm.com>
12786
12787         * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
12788         New pattern.
12789
12790 2017-10-07  Eric Botcazou  <ebotcazou@adacore.com>
12791
12792         * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
12793         of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
12794         * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
12795         defined, force the creation of a new block for a dispatch label.
12796
12797 2017-10-07  Jan Hubicka  <hubicka@ucw.cz>
12798
12799         * invoke.texi (Wsuggest-attribute=cold): Document.
12800         * common.opt (Wsuggest-attribute=cold): New
12801         * ipa-pure-const.c (warn_function_cold): New function.
12802         * predict.c (compute_function_frequency): Use it.
12803         * predict.h (warn_function_cold): Declare.
12804
12805 2017-10-06  Jan Hubicka  <hubicka@ucw.cz>
12806
12807         * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
12808         Update profile.
12809
12810 2017-10-06  Martin Liska  <mliska@suse.cz>
12811
12812         * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
12813         keyword for member functions.
12814         (struct sanopt_tree_couple): New struct.
12815         (struct sanopt_tree_couple_hash): New function.
12816         (struct sanopt_ctx): Add new hash_map.
12817         (has_dominating_ubsan_ptr_check): New function.
12818         (record_ubsan_ptr_check_stmt): Likewise.
12819         (maybe_optimize_ubsan_ptr_ifn): Likewise.
12820         (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
12821         (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
12822
12823 2017-10-06  Sudakshina Das  <sudi.das@arm.com>
12824
12825         PR target/82440
12826         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
12827         aarch64_simd_valid_immediate on CONST_VECTORs.
12828         (aarch64_reg_or_bic_imm): Likewise.
12829
12830 2017-10-06  Wilco Dijkstra  <wdijkstr@arm.com>
12831
12832         PR rtl-optimization/82396
12833         * haifa-sched.c (ready_sort_real): Disable qsort checking.
12834
12835 2017-10-06  Sebastian Pop  <sebpop@gmail.com>
12836
12837         * graphite-dependences.c (scop_get_reads): Move code to...
12838         (scop_get_must_writes): Move code to...
12839         (scop_get_may_writes): Move code to...
12840         (scop_get_reads_and_writes): ... here.
12841         (scop_get_dependences): Call scop_get_reads_and_writes.
12842
12843 2017-10-06  Jakub Jelinek  <jakub@redhat.com>
12844
12845         PR tree-optimization/82434
12846         * fold-const.h (can_native_encode_type_p,
12847         can_native_encode_string_p): Remove.
12848         * fold-const.c (native_encode_int): Formatting fixes.  If ptr is NULL,
12849         don't encode anything, just return what would be otherwise returned.
12850         (native_encode_fixed, native_encode_complex, native_encode_vector):
12851         Likewise.
12852         (native_encode_string): Likewise.  Inline by hand
12853         can_native_encode_string_p.
12854         (can_native_encode_type_p): Remove.
12855         (can_native_encode_string_p): Remove.
12856         * tree-vect-stmts.c (vectorizable_store): Instead of testing just
12857         STRING_CSTs using can_native_encode_string_p, test all
12858         CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
12859         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
12860         argument from native_encode_expr.
12861         (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
12862         (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
12863         but just 2.
12864
12865 2017-10-06  Richard Biener  <rguenther@suse.de>
12866
12867         PR tree-optimization/82397
12868         * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
12869         operand_equal_p but rely on data_ref_compare_tree for detecting
12870         equalities.
12871         (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
12872         to match up with dr_group_sort_cmp.
12873
12874 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12875
12876         PR target/82322
12877         * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
12878         builtin.
12879         * config/s390/s390-builtin-types.def: Regenerate.
12880
12881 2017-10-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12882
12883         PR target/82317
12884         * config/s390/s390-builtin-types.def: Regenerate.
12885         * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
12886         Change flag from B_VXE to B_VX.
12887         (s390_vec_min_dbl): Remove B_VXE flag.
12888
12889 2017-10-06  Richard Biener  <rguenther@suse.de>
12890
12891         * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
12892         (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
12893         translate_isl_ast_to_gimple::is_valid_rename,
12894         translate_isl_ast_to_gimple::get_rename,
12895         translate_isl_ast_to_gimple::get_def_bb_for_const,
12896         translate_isl_ast_to_gimple::get_new_name,
12897         translate_isl_ast_to_gimple::collect_all_ssa_names,
12898         translate_isl_ast_to_gimple::copy_loop_phi_args,
12899         translate_isl_ast_to_gimple::collect_all_ssa_names,
12900         translate_isl_ast_to_gimple::copy_loop_phi_args,
12901         translate_isl_ast_to_gimple::copy_loop_phi_nodes,
12902         translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
12903         translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
12904         translate_isl_ast_to_gimple::copy_loop_close_phi_args,
12905         translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
12906         translate_isl_ast_to_gimple::copy_cond_phi_args,
12907         translate_isl_ast_to_gimple::copy_cond_phi_nodes,
12908         translate_isl_ast_to_gimple::edge_for_new_close_phis,
12909         translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
12910         translate_isl_ast_to_gimple::rename_uses,
12911         translate_isl_ast_to_gimple::rename_all_uses): Remove.
12912         (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
12913         (set_rename_for_each_def): Likewise.
12914         (graphite_copy_stmts_from_block): Handle debug stmt resetting
12915         here.  Handle rewriting SCEV analyzable uses here.
12916         (copy_bb_and_scalar_dependences): Generate code for PHI
12917         copy-in/outs.
12918         (graphite_regenerate_ast_isl): Adjust.
12919         * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
12920         (add_write, add_read): New functions.
12921         (build_cross_bb_scalars_def): Use it and simplify.
12922         (build_cross_bb_scalars_use): Likewise.
12923         (graphite_find_cross_bb_scalar_vars): Inline into...
12924         (try_generate_gimple_bb): ...here.  Add dependences for PHIs,
12925         simulating out-of-SSA.  Compute liveout and add dependencies.
12926         (build_scops): Force an empty entry block.
12927         * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
12928         members.
12929         (sese_build_liveouts): Declare.
12930         (sese_trivially_empty_bb_p): Likewise.
12931         * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
12932         compute liveout and debug_liveout.
12933         (sese_bad_liveouts_use): Remove.
12934         (sese_reset_debug_liveouts_bb): Likewise.
12935         (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
12936         (sese_build_liveouts): Build liveout and debug_liveout and store
12937         it in region.
12938         (new_sese_info): Adjust.
12939         (free_sese_info): Likewise.
12940         (sese_insert_phis_for_liveouts): Reset debug stmts from here,
12941         do not build liveout here.
12942         (move_sese_in_condition): Adjust region entry.
12943         (scev_analyzable_p): Match up with chrec_apply requirements.
12944         (sese_trivially_empty_bb_p): New.
12945         * tree-into-ssa.c (get_reaching_def): Properly support generating
12946         default-defs for incremental rewrite of anonymous names.
12947
12948 2017-10-06  Richard Biener  <rguenther@suse.de>
12949
12950         * graphite-sese-to-poly.c (extract_affine): For casts increasing
12951         precision do not perform modulo reduction.
12952
12953 2017-10-06  Richard Biener  <rguenther@suse.de>
12954
12955         PR tree-optimization/82436
12956         * tree-vect-slp.c (vect_supported_load_permutation_p): More
12957         conservatively choose the vectorization factor when checking
12958         whether we can perform the required load permutation.
12959         (vect_transform_slp_perm_load): Assert when we may not fail.
12960
12961 2017-10-05  Segher Boessenkool  <segher@kernel.crashing.org>
12962
12963         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
12964         message for incompatible -msdata=* and -mcall-* options.
12965
12966 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12967
12968         * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
12969         rate for post-reload scheduling.
12970
12971 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
12972
12973         * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
12974
12975 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12976
12977         * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
12978         to improve monte carlo in scimark.
12979
12980 2017-10-05  Jan Hubicka <hubicka@ucw.cz>
12981
12982         * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
12983         pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
12984         athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
12985         pentium4_cost, nocona_cost): Set reassociation width to 1.
12986         (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
12987         width to 2 for fp operations and 1 otherwise.
12988         (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
12989         for int and fp.
12990         (atom_cost): Set reassociation width to 2.
12991         (slm_cost, generic_cost): Set fp reassociation width
12992         to 2 and 1 otherwise.
12993         (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
12994         (core_cost): Set fp reassociation width to 4 and vector to 2.
12995         (ix86_reassociation_width): Rewrite using cost table; special case
12996         plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
12997         and TARGET_AVX128_OPTIMAL.
12998         * config/i386/i386.h (processor_costs): Add
12999         reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
13000         (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
13001         TARGET_REASSOC_FP_TO_PARALLEL): Remove.
13002         * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
13003         (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
13004         (X86_TUNE_VECTOR_PARALLEL_EXECUTION):  Remove.
13005
13006 2017-10-05  Nathan Sidwell  <nathan@acm.org>
13007
13008         * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
13009
13010 2017-10-05  Tamar Christina  <tamar.christina@arm.com>
13011
13012         * config/arm/arm.c (arm_test_fpu_data): New.
13013         (arm_run_selftests): Call arm_test_fpu_data.
13014
13015 2017-10-04  Nathan Sidwell  <nathan@acm.org>
13016
13017         * toplev.c (toplev::main): Remove excess parens on pretty_printer
13018         decl.
13019         * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
13020
13021 2017-10-04  Sudakshina Das  <sudi.das@arm.com>
13022
13023         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
13024         check type for aarch64_simd_valid_immediate.
13025         (aarch64_output_simd_mov_immediate): Update prototype.
13026         (aarch64_simd_valid_immediate): Update prototype.
13027         * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
13028         support for ORR-immediate.
13029         (and<mode>3): modified pattern to add support for BIC-immediate.
13030         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
13031         now checks for valid immediate for BIC and ORR based on new enum
13032         argument.
13033         (aarch64_output_simd_mov_immediate): Function now used to output
13034         BIC/ORR imm as well based on new enum argument.
13035         * config/aarch64/constraints.md (Do): New vector immediate constraint.
13036         (Db) : Likewise.
13037         * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
13038         (aarch64_reg_or_bic_imm): Likewise.
13039
13040 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13041
13042         * config/s390/vx-builtins.md ("vec_mergeh<mode>")
13043         ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
13044
13045 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
13046
13047         Revert r253399:
13048
13049         PR rtl-optimization/82396
13050         * haifa-sched.c (autopref_multipass_init): Simplify
13051         initialization.
13052         (autopref_rank_data): Simplify sort order.
13053         * sched-int.h (autopref_multipass_data_): Remove
13054         multi_mem_insn_p, min_offset and max_offset.
13055
13056 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13057
13058         * doc/sourcebuild.texi: Document vect_peeling_profitable.
13059
13060 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13061
13062         * doc/sourcebuild.texi: Document vect_intdouble_cvt and
13063         vect_doubleint_cvt.
13064
13065 2017-10-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13066
13067         * doc/sourcebuild.texi: Document vect_long_mult.
13068
13069 2017-10-04  Richard Sandiford  <richard.sandiford@linaro.org>
13070
13071         PR tree-optimization/82413
13072         * fold-const.c (build_range_check): Use widest_int when comparing
13073         the maximum ETYPE value with HIGH.
13074
13075 2017-10-04  Wilco Dijkstra  <wdijkstr@arm.com>
13076
13077         PR rtl-optimization/82396
13078         * haifa-sched.c (autopref_multipass_init): Simplify
13079         initialization.
13080         (autopref_rank_data): Simplify sort order.
13081         * sched-int.h (autopref_multipass_data_): Remove
13082         multi_mem_insn_p, min_offset and max_offset.
13083
13084 2017-10-04  Jakub Jelinek  <jakub@redhat.com>
13085
13086         PR tree-optimization/82381
13087         * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
13088         oeN->rank first.  Return 1 or -1 if one op is SSA_NAME and the other
13089         is not.
13090
13091         PR tree-optimization/82374
13092         * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
13093         DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
13094         DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
13095         current_function_decl to the new decl.
13096
13097 2017-10-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
13098
13099         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
13100         helper macro for IEEE float128 hardware built-in functions.
13101         (SQRTF128_ODD): Add built-in functions with the round-to-odd
13102         semantics.
13103         (TRUNCF128_ODD): Likewise.
13104         (ADDF128_ODD): Likewise.
13105         (SUBF128_ODD): Likewise.
13106         (MULF128_ODD): Likewise.
13107         (DIVF128_ODD): Likewise.
13108         (FMAF128_ODD): Likewise.
13109         * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
13110         UNSPEC_TRUNC_ROUND_TO_ODD.
13111         (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
13112         (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
13113         floating point round to odd instructions.
13114         (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
13115         (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
13116         (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
13117         (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
13118         (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
13119         (trunc<mode>sf2_hw): Change the truncate with round to odd
13120         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
13121         (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
13122         to odd hardware instructions.
13123         (sub<mode>3_odd): Likewise.
13124         (mul<mode>3_odd): Likewise.
13125         (div<mode>3_odd): Likewise.
13126         (sqrt<mode>2_odd): Likewise.
13127         (fma<mode>4_odd): Likewise.
13128         (fms<mode>4_odd): Likewise.
13129         (nfma<mode>4_odd): Likewise.
13130         (nfms<mode>4_odd): Likewise.
13131         (trunc<mode>df2_odd): Change the truncate with round to odd
13132         expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.  Add a generator
13133         function.
13134         * doc/extend.texi (PowerPC built-in functions): Update documentation
13135         for existing IEEE float128-bit built-in functions.  Add built-in
13136         functions that generate the IEEE 128-bit floating point round to
13137         odd instructions.
13138
13139 2017-10-03  Segher Boessenkool  <segher@kernel.crashing.org>
13140
13141         PR rtl-optimization/77729
13142         * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
13143         to (X&(C1&~C2))|C2 transformations.
13144
13145 2017-10-03  Martin Jambor  <mjambor@suse.cz>
13146
13147         PR tree-optimization/82363
13148         * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
13149         mismatch, mark lacc written regardless of racc.
13150
13151 2017-10-03  Jakub Jelinek  <jakub@redhat.com>
13152
13153         PR tree-optimization/82381
13154         * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
13155         stmt_to_insert nor wheather SSA_NAMEs are default defs.
13156         Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
13157         fallthrough into reassoc_stmt_dominates_stmt_p.
13158
13159         PR target/82386
13160         * combine.c (combine_instructions): Don't combine in unreachable
13161         basic blocks.
13162
13163 2017-10-02  Peter Bergner  <bergner@vnet.ibm.com>
13164
13165         PR target/80210
13166         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
13167         function to not use the have_cpu variable.  Do not set cpu_index,
13168         rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
13169         or the default cpu.
13170         (rs6000_valid_attribute_p): Remove duplicate initializations of
13171         old_optimize and func_optimize.
13172         (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
13173         (rs6000_activate_target_options): Make global.
13174         * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
13175         prototype.
13176
13177 2017-10-02  Jakub Jelinek  <jakub@redhat.com>
13178
13179         * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
13180         if *poffset + *pmax_size overflows in HOST_WIDE_INT.
13181         Set *poffset to 0 and *psize and *pmax_size to -1 if
13182         *poffset + *psize overflows in HOST_WIDE_INT.
13183
13184         PR tree-optimization/82387
13185         PR tree-optimization/82388
13186         PR tree-optimization/82389
13187         * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
13188         instead of live_bytes non-NULL.
13189
13190 2017-10-02  Georg-Johann Lay  <avr@gjlay.de>
13191
13192         PR target/41076
13193         * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
13194         alternative.
13195
13196 2017-10-02  Richard Biener  <rguenther@suse.de>
13197
13198         * graphite-isl-ast-to-gimple.c (set_codegen_error): With
13199         -fchecking and --param graphite-allow-codegen-errors=0 ICE.
13200         * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
13201
13202 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
13203
13204         * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
13205         requested precision matches the type's.
13206         * calls.c (alloc_max_size): Calculate the new candidate size as
13207         a widest_int and use wi::to_widest when comparing it with the
13208         current candidate size.
13209         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
13210         zero rather than integer_zero_node.
13211         * match.pd: Check for a no-op conversion before using wi::add
13212         rather than after.  Use tree_to_uhwi when summing small shift
13213         counts into an unsigned int.
13214
13215 2017-10-02  Richard Sandiford  <richard.sandiford@linaro.org>
13216             Alan Hayward  <alan.hayward@arm.com>
13217             David Sherwood  <david.sherwood@arm.com>
13218
13219         PR target/71307
13220         * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
13221         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
13222         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
13223         POINTER_AND_FP_REGS.
13224
13225 2017-10-02  Richard Biener  <rguenther@suse.de>
13226
13227         PR tree-optimization/82355
13228         * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
13229         a mapping for the enclosing loop but avoid generating one for
13230         the loop tree root.
13231         (copy_bb_and_scalar_dependences): Remove premature codegen
13232         error on PHIs in blocks duplicated into multiple places.
13233         * graphite-scop-detection.c
13234         (scop_detection::stmt_has_simple_data_refs_p): For a loop not
13235         in the region use it as loop and nest to analyze the DR in.
13236         (try_generate_gimple_bb): Likewise.
13237         * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
13238         (add_loop_constraints): For blocks in a loop not in the region
13239         create a dimension with a single iteration.
13240         * sese.h (gbb_loop_at_index): Remove assert.
13241
13242 2017-10-01  Kevin Buettner  <kevinb@redhat.com>
13243
13244         * omp-expand.c (adjust_context_scope): New function.
13245         (expand_parallel_call): Call adjust_context_scope.
13246
13247 2017-10-01  Jeff Law  <law@redhat.com>
13248
13249         * tree-ssa-dom.c (optimize_stmt): Make this a method within the
13250         dom_opt_dom_walker class with direct access to private members.
13251         Add comments.  Call test_for_singularity.
13252         (dom_opt_dom_walker::before_dom_children): Corresponding changes.
13253         (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
13254         m_dummy_cond anymore.
13255         (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
13256         class ctor.
13257         (pass_dominator:execute): Build the dummy_cond here and pass it
13258         to the dom_opt_dom_walker ctor.
13259         (test_for_singularity): New function.
13260
13261 2017-09-30  Krister Walfridsson  <krister.walfridsson@gmail.com>
13262             Maya Rashish  <coypu@sdf.org>
13263
13264         * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
13265         netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
13266         (alpha*-*-netbsd*) Use nbsd_tm_file.
13267         (arm*-*-netbsdelf*) Likewise.
13268         (i[34567]86-*-netbsdelf*) Likewise.
13269         (x86_64-*-netbsd*) Likewise.
13270         (mips*-*-netbsd*) Likewise.
13271         (powerpc-*-netbsd*) Likewise.
13272         (sh*-*-netbsd*) Likewise.
13273         (sparc-*-netbsdelf*) Likewise.
13274         (sparc64-*-netbsd*) Likewise.
13275         (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
13276         to tm_defines.
13277         (vax-*-netbsdelf*) Likewise.
13278         * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
13279         (UINT_FAST8_TYPE) Likewise.
13280         (INT_FAST16_TYPE) Check CHAR_FAST16.
13281         (UINT_FAST16_TYPE) Likewise.
13282
13283 2017-09-30  Jakub Jelinek  <jakub@redhat.com>
13284
13285         PR target/82361
13286         * config/i386/i386.md
13287         (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
13288         (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
13289         *divmodsi4_zext_2): New define_insn_and_split.
13290         (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
13291         (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
13292         (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
13293         *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
13294         New define_insn_and_split.
13295         (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
13296         * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
13297         operands[1] having DImode when mode is SImode.
13298
13299         * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
13300         always SImode for DIV and MOD in REG_EQUAL notes.
13301
13302 2017-09-29  Yury Gribov  <tetra2005@gmail.com>
13303
13304         PR middle-end/82319
13305         * match.pd: Fix handling of NaNs in pattern.
13306
13307 2017-09-29  Jeff Law  <law@redhat.com>
13308
13309         * sbitmap.c (bitmap_bit_in_range_p): New function.
13310         * sbitmap.h (bitmap_bit_in_range_p): Prototype.
13311         * tree-ssa-dse.c (live_bytes_read): New function.
13312         (dse_classify_store): Ignore reads of dead bytes.
13313
13314         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
13315         typos and whitespace errors.
13316         * config/i386/predicates.md (address_no_seg_operand): Likewise.
13317         * config/s390/s390.c (s390_emit_prologue): Likewise.
13318
13319 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
13320
13321         PR target/81481
13322         * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
13323         with a symbol for LRA.
13324
13325 2017-09-29  Vladimir Makarov  <vmakarov@redhat.com>
13326
13327         PR rtl-optimization/82338
13328         * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
13329
13330 2017-09-29  Alexander Monakov  <amonakov@ispras.ru>
13331
13332         * genmodes.c (calc_wider_mode): Suppress qsort macro.
13333         * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
13334         (qsort_chk): Declare.
13335         * vec.c [CHECKING_P] (qsort_chk_error): New static function.
13336         (qsort_chk): New function.
13337
13338 2017-09-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13339
13340         PR tree-optimization/82337
13341         * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
13342         phi definition if the PHI result appears in an abnormal PHI.
13343         (find_basis_for_base_expr): Don't record a basis if the LHS of the
13344         basis appears in an abnormal PHI.
13345
13346 2017-09-29  Richard Biener  <rguenther@suse.de>
13347
13348         * graphite-isl-ast-to-gimple.c
13349         (translate_isl_ast_to_gimple::set_codegen_error): New function.
13350         (binary_op_to_tree): Use it.
13351         (get_rename_from_scev): Likewise.
13352         (copy_loop_phi_nodes): Likewise.
13353         (copy_bb_and_scalar_dependences): Likewise.
13354         (translate_pending_phi_nodes): Likewise.
13355
13356 2017-09-29  Jakub Jelinek  <jakub@redhat.com>
13357
13358         PR target/82339
13359         * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
13360         for movabsq $(i32 << shift), r64.
13361
13362 2017-09-28  Uros Bizjak  <ubizjak@gmail.com>
13363
13364         * config/i386/i386.c (ix86_print_operand_address_as): Do not check
13365         index when encoding %esp as %rsp to avoid 0x67 prefix.
13366
13367 2017-09-28  Sergey Shalnov  <Sergey.Shalnov@intel.com>
13368
13369         * config/i386/i386.md (*movsf_internal, *movdf_internal):
13370         Return 256-bit AVX modes for TARGET_PREFER_AVX256.
13371
13372 2017-09-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13373
13374         * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
13375         Extensions with more than 16 double VFP registers.
13376         (cmse_nonsecure_entry_clear_before_return): Remove second entry of
13377         to_clear_mask and all code related to it.  Replace the remaining
13378         entry by a sbitmap and adapt code accordingly.
13379
13380 2017-09-28  Henry Linjamäki  <henry.linjamaki@parmance.com>
13381
13382         * brig-builtins.def: Change pure attributes to const.
13383
13384 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
13385
13386         * config.gcc (default_gnu_indirect_function): Default to yes for
13387         sparc*-*-linux* with glibc.
13388
13389 2017-09-28  Joseph Myers  <joseph@codesourcery.com>
13390
13391         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
13392         (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
13393         when creating .init_array and .fini_array sections with priority
13394         specified.
13395
13396 2017-09-27  Christophe Lyon  <christophe.lyon@linaro.org>
13397
13398         PR target/71727
13399         * config/aarch64/aarch64.c
13400         (aarch64_builtin_support_vector_misalignment): Always return false
13401         when misalignment is unknown.
13402
13403 2017-09-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
13404
13405         * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
13406         this function to return false if the definition used by the swap
13407         instruction is artificial, or if the memory address from which the
13408         constant value is loaded is not represented by a base address held
13409         in a register or if the base address register is a frame or stack
13410         pointer.  Additionally, return false if the base address of the
13411         loaded constant is a SYMBOL_REF but is not considered to be a
13412         constant.
13413         (replace_swapped_load_constant): New function.
13414         (rs6000_analyze_swaps): Add a new pass to replace a swap of a
13415         loaded constant vector with a load of a swapped constant vector.
13416
13417 2017-09-27  Carl Love  <cel@us.ibm.com>
13418
13419         * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
13420         (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
13421         * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
13422         fctiw instruction.
13423
13424 2017-09-27  Alexander Monakov  <amonakov@ispras.ru>
13425
13426         * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
13427         first, always call autopref_rank_data otherwise.
13428
13429 2017-09-27  Richard Biener  <rguenther@suse.de>
13430
13431         * graphite-scop-detection.c (find_scop_parameters): Move
13432         loop bound handling ...
13433         (gather_bbs::before_dom_children): ... here, avoiding the need
13434         to build scop_info->loop_nest.
13435         (record_loop_in_sese): Remove.
13436         * sese.h (sese_info_t::loop_nest): Remove.
13437         * sese.c (new_sese_info): Do not allocate loop_nest.
13438         (free_sese_info): Do not free loop_nest.
13439
13440 2017-09-27  Jakub Jelinek  <jakub@redhat.com>
13441
13442         PR c++/82159
13443         * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
13444         lhs from calls if the lhs has addressable type.
13445
13446 2017-09-27  Richard Biener  <rguenther@suse.de>
13447
13448         * graphite.h (scop::max_alias_set): New member.
13449         * graphite-scop-detection.c: Remove references to non-existing
13450         --param in comments.
13451         (build_alias_sets): Record the maximum alias set used for drs.
13452         (build_scops): Support zero as unlimited for
13453         --param graphite-max-arrays-per-scop.
13454         * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
13455         and inline into ...
13456         (build_poly_sr_1): ... here.  Compute alias set based on the
13457         maximum alias set used for drs rather than
13458         PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
13459
13460 2017-09-27  Richard Biener  <rguenther@suse.de>
13461
13462         * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
13463         --param loop-block-tile-size=0 to disable tiling.
13464
13465 2017-09-27  Richard Biener  <rguenther@suse.de>
13466
13467         * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
13468         (graphite-max-nb-scop-params): Document special value zero.
13469         * domwalk.h (dom_walker::STOP): New symbolical constant.
13470         (dom_walker::dom_walker): Add optional parameter for bb to
13471         RPO mapping.
13472         (dom_walker::~dom_walker): Declare.
13473         (dom_walker::before_dom_children): Document STOP return value.
13474         (dom_walker::m_user_bb_to_rpo): New member.
13475         (dom_walker::m_bb_to_rpo): Likewise.
13476         * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
13477         mapping here if not provided by the user.
13478         (dom_walker::~dom_walker): Free bb to RPO mapping if not
13479         provided by the user.
13480         (dom_walker::STOP): Define.
13481         (dom_walker::walk): Do not compute bb to RPO mapping here.
13482         Support STOP return value from before_dom_children to stop
13483         walking.
13484         * graphite-optimize-isl.c (optimize_isl): If the schedule
13485         is the same still generate code if -fgraphite-identity
13486         or -floop-parallelize-all are given.
13487         * graphite-scop-detection.c: Include cfganal.h.
13488         (gather_bbs::gather_bbs): Get and pass through bb to RPO
13489         mapping.
13490         (gather_bbs::before_dom_children): Return STOP for BBs
13491         not in the region.
13492         (build_scops): Compute bb to RPO mapping and pass it to
13493         the domwalk.  Treat --param graphite-max-nb-scop-params=0
13494         as not limiting the number of params.
13495         * graphite.c (graphite_initialize): Remove limit on the
13496         number of basic-blocks in a function.
13497         * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
13498         (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
13499         default value of 10.
13500
13501 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13502
13503         * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
13504         Adjust code to eliminate needing to do the shift right 32-bits
13505         operation after XSCVDPSPN.
13506
13507 2017-09-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
13508
13509         * match.pd ((X / Y) == 0 -> X < Y): New pattern.
13510         ((X / Y) != 0 -> X >= Y): Likewise.
13511
13512 2017-09-26  Carl Love  <cel@us.ibm.com>
13513
13514         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
13515         P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
13516         vector unsigned char vec_xl_len_r (unsigned char *, size_t);
13517         void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
13518         * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
13519         * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
13520         definitions and overloading.
13521         * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
13522         statement for P9V_BUILTIN_XST_LEN_R.
13523         (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
13524         * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
13525         define_expand and define_insn for the instructions and builtins.
13526         * doc/extend.texi: Update the built-in documentation file for the new
13527         built-in functions.
13528         * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
13529         define_insn for the instructions
13530
13531 2017-09-26  Krister Walfridsson  <krister.walfridsson@gmail.com>
13532
13533         PR target/39570
13534         * gcc/config/netbsd-protos.h: New file.
13535         * gcc/config/netbsd.c: New file.
13536         * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
13537         * gcc/config/t-netbsd: New file.
13538         * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
13539         (tmake_file) Add t-netbsd.
13540         (extra_objs) Add netbsd.o.
13541
13542 2017-09-26  Janus Weil  <janus@gcc.gnu.org>
13543
13544         PR fortran/82143
13545         PR fortran/82324
13546         * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
13547
13548 2017-09-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
13549
13550         * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
13551         sign extension from a vector register to a GPR by doing a 32-bit
13552         direct move and then an EXTSW.
13553         (extendsi<mode>2 splitter): Likewise.
13554         (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
13555         right or vector extract after doing XSCVDPSPN.  Use
13556         zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
13557         the GPRs.
13558         (movdi_from_sf_zero_ext): Likewise.
13559         (reload_gpr_from_vsxsf): Likewise.
13560         (p8_mfvsrd_4_disf): Delete, no longer used.
13561         (movsi_from_df): Optimize converting a DFmode to a SFmode, and
13562         then needing to move the SFmode to a GPR to use the XSCVDPSP
13563         instruction instead of FRSP and XSCVDPSPN.
13564         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
13565         it is adjacent to the other XSCVSPDP insns.
13566         (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
13567         SFmode to be in traditional Altivec registers.
13568         (vsx_xscvdpspn): Eliminate useless alternative constraint.
13569         (vsx_xscvspdpn): Likewise.
13570         (vsx_xscvspdpn_scalar): Likewise.
13571
13572 2017-09-26  Martin Jambor  <mjambor@suse.cz>
13573
13574         * tree-sra.c (compare_access_positions): Put integral types first,
13575         stabilize sorting of integral types, remove conditions putting
13576         non-full-precision integers last.
13577         (sort_and_splice_var_accesses): Disable scalarization if a
13578         non-integert would be represented by a non-full-precision integer.
13579
13580 2017-09-26  Joseph Myers  <joseph@codesourcery.com>
13581
13582         * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
13583         * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
13584         * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
13585         * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
13586         Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
13587         conditionals inside the function instead of around it.  Call
13588         file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
13589         (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
13590
13591 2017-09-26  Richard Biener  <rguenther@suse.de>
13592
13593         * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
13594         fold in ...
13595         (scop_detection::build_scop_breadth): ... this.  Removed.
13596         (scop_detection::loop_is_valid_in_scop): Fold into single caller.
13597         (scop_detection::harmful_stmt_in_bb): Likewise.
13598         (scop_detection::graphite_can_represent_stmt): Likewise.
13599         (scop_detection::loop_body_is_valid_scop): Likewise.  Remove recursion.
13600         (scop_detection::can_represent_loop): Remove recursion, fold in ...
13601         (scop_detection::can_represent_loop_1): ... this.  Removed.
13602         (scop_detection::harmful_loop_in_region): Simplify after inlining
13603         the above and remove more quadraticness.
13604         (build_scops): Adjust.
13605         * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
13606         quadraticness.
13607
13608 2017-09-26  Jakub Jelinek  <jakub@redhat.com>
13609
13610         PR target/82267
13611         * config/i386/i386.c (ix86_print_operand_address_as): Only test
13612         REGNO (base) == SP_REG if base is a REG.
13613
13614         PR middle-end/35691
13615         * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
13616         if it is different SSA_NAME.
13617         (optimize_range_tests_cmp_bitwise): New function.
13618         (optimize_range_tests): Call it.
13619
13620 2017-09-26  Richard Biener  <rguenther@suse.de>
13621
13622         PR tree-optimization/82321
13623         * graphite.c (canonicalize_loop_closed_ssa): Properly check
13624         for the def being inside the loop.
13625
13626 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13627
13628         * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
13629         assembler output.
13630         * config/s390/s390-builtins.def: Fix constraint on op4.
13631
13632 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13633
13634         * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
13635         independent expanders.
13636         * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
13637         ("vec_ordered", "vec_unordered"): New expanders.
13638
13639 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13640
13641         * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
13642         for SFmode.
13643
13644 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13645
13646         * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
13647         vec_unpacks_lo_v16qi.
13648         ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
13649
13650 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13651
13652         * config/s390/vector.md ("vec_unpacks_lo_v4sf")
13653         ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
13654         ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
13655
13656 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13657
13658         * config/s390/predicates.md ("const_shift_by_byte_operand"): New
13659         predicate.
13660         * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
13661         and V16QI.
13662         ("*vec_slb<mode>"): New insn pattern.
13663         ("vec_shr_<mode>"): New expander.
13664         * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
13665         and force the shift count operand to V16QImode.
13666         ("vec_srb<mode>"): Set shift count mode to V16QI.
13667
13668 2017-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13669
13670         * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
13671         ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
13672         ("vec_widen_smult_hi_<mode>"): New expander definitions.
13673
13674 2017-09-26  Richard Earnshaw  <rearnsha@arm.com>
13675
13676         PR target/82175
13677         * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
13678
13679 2017-09-26  Richard Biener  <rguenther@suse.de>
13680
13681         PR tree-optimization/82320
13682         * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
13683         isn't a change.
13684
13685 2017-09-25  Jeff Law  <law@redhat.com>
13686
13687         * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
13688         prototype for new argument.
13689         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
13690         mostly extracted from rs6000_emit_allocate_stack.
13691         (rs6000_emit_probe_stack_range_stack_clash): New function.
13692         (rs6000_emit_allocate_stack): Call
13693         rs6000_emit_probe_stack_range_stack_clash as needed.
13694         (rs6000_emit_probe_stack_range): Add additional argument
13695         to call to gen_probe_stack_range{si,di}.
13696         (output_probe_stack_range): New.
13697         (output_probe_stack_range_1): Renamed from output_probe_stack_range.
13698         (output_probe_stack_range_stack_clash): New.
13699         (rs6000_emit_prologue): Emit notes into dump file as requested.
13700         * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
13701         (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
13702         Add additional operand and pass it to output_probe_stack_range.
13703
13704 2017-09-25  Bin Cheng  <bin.cheng@arm.com>
13705
13706         PR tree-optimization/82163
13707         * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
13708         (checking_verify_loop_closed_ssa): New parameter.
13709         * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
13710         (check_loop_closed_ssa_stmt): Delete.
13711         (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
13712         (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
13713         (tree_transform_and_unroll_loop): Check loop closed ssa form only for
13714         changed loops.
13715
13716 2017-09-25  Pekka Jaaskelainen <pekka@parmance.com>
13717
13718         * brig-builtins.def: Treat HSAIL barrier builtins as
13719         setjmp/longjump style functions.
13720
13721 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
13722
13723         * target.def (constant_alignment): New hook.
13724         * defaults.h (CONSTANT_ALIGNMENT): Delete.
13725         * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
13726         (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
13727         * doc/tm.texi: Regenerate.
13728         * targhooks.h (default_constant_alignment): Declare.
13729         (constant_alignment_word_strings): Likewise.
13730         * targhooks.c (default_constant_alignment): New function.
13731         (constant_alignment_word_strings): Likewise.
13732         * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
13733         instead of CONSTANT_ALIGNMENT.
13734         * varasm.c (align_variable, get_variable_align, build_constant_desc)
13735         (force_const_mem): Likewise.
13736         * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
13737         * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
13738         (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
13739         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13740         * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
13741         definition.
13742         * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
13743         * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13744         constant_alignment_word_strings.
13745         * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
13746         (CONSTANT_ALIGNMENT): Likewise.
13747         * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13748         (arm_constant_alignment): New function.
13749         * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
13750         * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13751         constant_alignment_word_strings.
13752         * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
13753         * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13754         constant_alignment_word_strings.
13755         * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
13756         * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13757         (cris_constant_alignment): New function.
13758         * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
13759         * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13760         (epiphany_constant_alignment): New function.
13761         * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
13762         * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13763         constant_alignment_word_strings.
13764         * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
13765         * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13766         constant_alignment_word_strings.
13767         * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
13768         * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13769         constant_alignment_word_strings.
13770         * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
13771         * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
13772         * config/i386/i386.c (ix86_constant_alignment): Make static.
13773         Use the same interface as the target hook.
13774         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13775         * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
13776         * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13777         constant_alignment_word_strings.
13778         * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
13779         * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
13780         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13781         * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
13782         * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13783         constant_alignment_word_strings.
13784         * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
13785         * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13786         constant_alignment_word_strings.
13787         * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
13788         * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13789         constant_alignment_word_strings.
13790         * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
13791         * config/microblaze/microblaze.c (microblaze_constant_alignment):
13792         New function.
13793         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13794         * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
13795         * config/mips/mips.c (mips_constant_alignment): New function.
13796         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13797         * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
13798         * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
13799         * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13800         (mmix_constant_alignment): Make static.  Use the same interface
13801         as the target hook.
13802         * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
13803         * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13804         constant_alignment_word_strings.
13805         * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
13806         * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13807         constant_alignment_word_strings.
13808         * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
13809         * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13810         constant_alignment_word_strings.
13811         * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
13812         * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13813         (rs6000_constant_alignment): New function.
13814         * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
13815         * config/riscv/riscv.c (riscv_constant_alignment): New function.
13816         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13817         * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
13818         * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13819         (rs6000_constant_alignment): New function.
13820         * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
13821         * config/s390/s390.c (s390_constant_alignment): New function.
13822         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13823         * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
13824         * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13825         constant_alignment_word_strings.
13826         * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
13827         * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13828         (sparc_constant_alignment): New function.
13829         * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
13830         * config/spu/spu.c (spu_constant_alignment): New function.
13831         (TARGET_CONSTANT_ALIGNMENT): Redefine.
13832         * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
13833         * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13834         constant_alignment_word_strings.
13835         * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
13836         * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13837         constant_alignment_word_strings.
13838         * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
13839         * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
13840         constant_alignment_word_strings.
13841         * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
13842         * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13843         (visium_constant_alignment): New function.
13844         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
13845         * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
13846         (xtensa_constant_alignment): New function.
13847         * system.h (CONSTANT_ALIGNMENT): Poison.
13848
13849 2017-09-25  Will Schmidt  <will_schmidt@vnet.ibm.com>
13850
13851         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
13852         for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
13853         (rs6000_builtin_valid_without_lhs): New helper function.
13854         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13855         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
13856
13857 2017-09-25  Richard Sandiford  <richard.sandiford@linaro.org>
13858
13859         * target.h (vec_perm_indices): Use unsigned short rather than
13860         unsigned char.
13861         (auto_vec_perm_indices): Likewise.
13862         * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
13863         Use unsigned int rather than unsigned char.
13864         * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
13865
13866 2017-09-25  Richard Biener  <rguenther@suse.de>
13867
13868         * cfgloop.h (sort_sibling_loops): Declare.
13869         * cfgloop.c (sort_sibling_loops_cmp): New helper.
13870         (sort_sibling_loops): New function sorting the sibling loop list
13871         in RPO order.
13872         * graphite.c (graphite_transform_loops): Sort sibling loops.
13873
13874 2017-09-25  Richard Sandiford  <richard.sandifird@linaro.org>
13875
13876         * target.def (vec_perm_const_ok): Change sel parameter to
13877         vec_perm_indices.
13878         * optabs-query.c (can_vec_perm_p): Update accordingly.
13879         * doc/tm.texi: Regenerate.
13880         * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
13881         auto_vec_perm_indices and remove separate nelt field.
13882         (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
13883         (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
13884         (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
13885         (aarch64_expand_vec_perm_const): Update accordingly.
13886         (aarch64_vectorize_vec_perm_const_ok): Likewise.  Change sel
13887         to vec_perm_indices.
13888         * config/arm/arm.c (expand_vec_perm_d): Change perm to
13889         auto_vec_perm_indices and remove separate nelt field.
13890         (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
13891         (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
13892         (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
13893         accordingly.
13894         (arm_vectorize_vec_perm_const_ok): Likewise.  Change sel
13895         to vec_perm_indices.
13896         * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
13897         sel to vec_perm_indices.
13898         * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
13899         * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
13900         * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
13901         Likewise.
13902         * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
13903         Likewise.
13904
13905 2017-09-25  Pierre-Marie de Rodat  <derodat@adacore.com>
13906
13907         PR debug/82155
13908         * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
13909         on the FUNCTION_DECL function context if it has a DIE that is a
13910         declaration.
13911
13912 2017-09-25  Richard Biener  <rguenther@suse.de>
13913
13914         PR tree-optimization/82285
13915         * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
13916         enumeral types.
13917
13918 2017-09-25  Tom de Vries  <tom@codesourcery.com>
13919
13920         PR target/80035
13921         PR target/81069
13922         * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
13923         noreturn function.
13924
13925 2017-09-25  Richard Biener  <rguenther@suse.de>
13926
13927         * graphite-optimize-isl.c (optimize_isl): Fail and dump if
13928         ISL errors other than isl_error_quota happen.  Dump if the
13929         schedule is the same.
13930         * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
13931         errors instead of aborting inside ISL.
13932
13933 2017-09-25  Iain Sandoe  <iain@codesourcery.com>
13934
13935         PR target/80556
13936         * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
13937         of libgcc_eh for m64.
13938         * config/i386/darwin64.h: Likewise.
13939
13940 2017-09-25  Richard Biener  <rguenther@suse.de>
13941
13942         PR middle-end/82144
13943         * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
13944         attribute for incomplete types nor twice for complete ones.
13945
13946 2017-09-24  Uros Bizjak  <ubizjak@gmail.com>
13947
13948         PR target/82267
13949         * config/i386/i386.c (ix86_print_operand_address_as): Encode
13950         %esp as %rsp to avoid 0x67 prefix if there is no index or base
13951         register.
13952
13953 2017-09-23  Uros Bizjak  <ubizjak@gmail.com>
13954
13955         PR bootstrap/82306
13956         * config/i386/i386.opt (mprefer-avx256): Use
13957         ix86_target_flags variable.
13958         * config/i386/i386.c (ix86_target_string): Move
13959         -mprefer-avx256 to flag2_opts.
13960
13961 2017-09-22  Jakub Jelinek  <jakub@redhat.com>
13962
13963         PR middle-end/35691
13964         * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
13965         and x != -1 | y != -1 into (x & y) != -1.
13966
13967 2017-09-22  Steve Ellcey  <sellcey@cavium.com>
13968
13969         * config.gcc: Add new case statement to set
13970         default_gnu_indirect_function.  Remove it from x86_64-*-linux*,
13971         i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
13972         s390x-*-linux* case statements.   Added aarch64 to the list of
13973         supported architectures.
13974
13975 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13976
13977         PR tree-optimization/82289
13978         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
13979         STMT_VINFO_RELEVANT_P.
13980
13981 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13982             Alan Hayward  <alan.hayward@arm.com>
13983             David Sherwood  <david.sherwood@arm.com>
13984
13985         * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
13986         for VR_RANGE only; don't allow VR_ANTI_RANGE.
13987         (extract_range_from_binary_expr_1): Don't call
13988         extract_range_from_multiplicative_op_1 if !range_int_cst_p.
13989
13990 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
13991             Alan Hayward  <alan.hayward@arm.com>
13992             David Sherwood  <david.sherwood@arm.com>
13993
13994         * target.def (preferred_vector_alignment): New hook.
13995         * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
13996         hook.
13997         * doc/tm.texi: Regenerate.
13998         * targhooks.h (default_preferred_vector_alignment): Declare.
13999         * targhooks.c (default_preferred_vector_alignment): New function.
14000         * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
14001         Expand commentary.
14002         (DR_TARGET_ALIGNMENT): New macro.
14003         (aligned_access_p): Update commentary.
14004         (vect_known_alignment_in_bytes): New function.
14005         * tree-vect-data-refs.c (vect_calculate_required_alignment): New
14006         function.
14007         (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
14008         Calculate the misalignment based on the target alignment rather than
14009         the vector size.
14010         (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
14011         rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
14012         (vect_enhance_data_refs_alignment): Mask the byte misalignment with
14013         the target alignment, rather than masking the element misalignment
14014         with the number of elements in a vector.  Also use the target
14015         alignment when calculating the maximum number of peels.
14016         (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
14017         instead of TYPE_ALIGN_UNIT.
14018         (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
14019         Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
14020         (vect_create_addr_base_for_vector_ref): Update call accordingly.
14021         (vect_create_data_ref_ptr): Likewise.
14022         (vect_setup_realignment): Realign by ANDing with
14023         -DR_TARGET_MISALIGNMENT.
14024         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
14025         the number of peels based on DR_TARGET_ALIGNMENT.
14026         * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
14027         with the guaranteed alignment boundary when deciding whether
14028         overrun is OK.
14029         (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
14030         relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
14031         (ensure_base_align): Remove stmt_info parameter.  Get the
14032         target base alignment from DR_TARGET_ALIGNMENT.
14033         (vectorizable_store): Update call accordingly.   Interpret
14034         DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
14035         TYPE_ALIGN_UNIT.
14036         (vectorizable_load): Likewise.
14037
14038 2017-09-22  Richard Sandiford  <richard.sandiford@linaro.org>
14039             Alan Hayward  <alan.hayward@arm.com>
14040             David Sherwood  <david.sherwood@arm.com>
14041
14042         * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
14043         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
14044         (vect_enhance_data_refs_alignment): Likewise.
14045
14046 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
14047
14048         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
14049         error.  Only quit immediately if parsing is complete.
14050         (BEGIN): Initialize fatal_err and parse_done.
14051         (begin fpu, end fpu): Check number of arguments.
14052         (begin arch, end arch): Likewise.
14053         (begin cpu, end cpu): Likewise.
14054         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
14055         (optalias): Likewise.
14056
14057 2017-09-22  Richard Earnshaw  <richard.earnshaw@arm.com>
14058
14059         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
14060         * config/arm/arm-isa.h: Delete.  Move definitions to ...
14061         * arm-cpus.in: ... here.  Use new feature and fgroup values.
14062         * config/arm/arm.c (arm_option_override): Use lower case for feature
14063         bit names.
14064         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
14065         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
14066         * config/arm/parsecpu.awk (END): Add new command 'isa'.
14067         (isa_pfx): Delete.
14068         (print_isa_bits_for): New function.
14069         (gen_isa): New function.
14070         (gen_comm_data): Use print_isa_bits_for.
14071         (define feature): New keyword.
14072         (define fgroup): New keyword.
14073         * config/arm/t-arm (TM_H): Remove.
14074         (GTM_H): Add arm-isa.h.
14075         (arm-isa.h): Add rule to generate file.
14076         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
14077         case for feature bit names.
14078
14079 2017-09-22  Richard Biener  <rguenther@suse.de>
14080
14081         * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
14082         single caller.
14083         (graphite_regenerate_ast_isl): Do not reset SCEV.  Move debug
14084         print of no dependency loops ...
14085         * graphite.c (graphite_transform_loops): ... here.
14086         (canonicalize_loop_closed_ssa_form): Work from inner to outer
14087         loops.
14088         (same_close_phi_node, remove_duplicate_close_phi,
14089         make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
14090         (canonicalize_loop_closed_ssa): ... here and simplify.
14091         * graphite-optimize-isl.c: Include tree-vectorizer.h.
14092         (optimize_isl): Use dump_printf_loc to tell when we stopped
14093         optimizing because of an ISL timeout.
14094
14095 2017-09-22  Richard Biener  <rguenther@suse.de>
14096
14097         PR tree-optimization/82291
14098         * tree-if-conv.c (predicate_mem_writes): Make sure to
14099         remove writes in blocks predicated with false.
14100
14101 2017-09-22  Richard Biener  <rguenther@suse.de>
14102
14103         * sese.c: Include cfganal.h.
14104         (if_region_set_false_region): Remove.
14105         (create_if_region_on_edge): Likewise.
14106         (move_sese_in_condition): Re-implement without destroying
14107         dominators.
14108
14109 2017-09-22  Richard Biener  <rguenther@suse.de>
14110
14111         * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
14112         Verify both BBs contain loop PHI nodes before dispatching to
14113         copy_loop_phi_args.
14114         (graphite_regenerate_ast_isl): Do not recompute dominators,
14115         do not verify three times.  Restructure for clarity.
14116         * graphite-scop-detection.c (same_close_phi_node,
14117         remove_duplicate_close_phi, make_close_phi_nodes_unique,
14118         defined_in_loop_p, canonicalize_loop_closed_ssa,
14119         canonicalize_loop_closed_ssa_form): Simplify, remove excess
14120         checking and SSA rewrite, move to ...
14121         * graphite.c: ... here.  Include ssa.h and tree-ssa-loop-manip.h.
14122         (graphite_initialize): Do not pass in ctx, do not reset the
14123         SCEV cache, compute only dominators.
14124         (graphite_transform_loops): Allocate ISL ctx after
14125         graphite_initialize.  Call canonicalize_loop_closed_ssa_form.
14126         Maintain post-dominators only around build_scops.
14127         * sese.c (if_region_set_false_region): Make static.  Free
14128         and recompute dominators.
14129         (move_sese_in_condition): Assert we don't get called with
14130         post-dominators computed.
14131         * sese.h (if_region_set_false_region): Remove.
14132
14133 2017-09-22  Sergey Shalnov  <sergey.shalnov@intel.com>
14134
14135         * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
14136         mode attribute for TARGET_AVX512VL.
14137
14138 2017-09-21  Sergey Shalnov  <sergey.shalnov@intel.com>
14139
14140         * config/i386/i386.opt (mprefer-avx256): New option.
14141         * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
14142         to flag_opts.
14143         (ix86_preferred_simd_mode): Return 256-bit AVX modes
14144         for TARGET_PREFER_AVX256.
14145         * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
14146
14147 2017-09-21  Jeff Law  <law@redhat.com>
14148
14149         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
14150         Fix dump output if the only stack space is for pushed registers.
14151
14152 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14153
14154         * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
14155         of insn_cost.
14156
14157 2017-09-21  Martin Sebor  <msebor@redhat.com>
14158
14159         PR c/81882
14160         * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
14161         code (in C++) or code that triggers warnings.
14162
14163 2017-09-21  Eric Botcazou  <ebotcazou@adacore.com>
14164
14165         * stor-layout.c (bit_from_pos): Do not distribute the conversion.
14166
14167 2017-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
14168
14169         * haifa-sched.c: Rename insn_cost to insn_sched_cost.
14170         * sched-rgn.c: Ditto.
14171         * sel-sched-ir.c: Ditto.
14172
14173 2017-09-21  Alexander Monakov  <amonakov@ispras.ru>
14174
14175         * toplev.h (set_random_seed): Adjust return type.
14176         * toplev.c (init_local_tick): Move eager initialization of random_seed
14177         to get_random_seed.  Adjust comment.
14178         (init_random_seed): Inline to get_random_seed, delete.
14179         (get_random_seed): Initialize random_seed lazily.
14180         (set_random_seed): Do not return previous value.
14181         (print_switch_value): Do not call get_random_seed.
14182
14183 2017-09-21  Evgeny Kudryashov  <kudryashov@ispras.ru>
14184
14185         * cgraph.c (delete_function_version): New, broken out from...
14186         (cgraph_node::delete_function_version): ...here.  Rename to
14187         cgraph_node::delete_function_version_by_decl.  Update all uses.
14188         (cgraph_node::remove): Call delete_function_version.
14189
14190 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
14191
14192         PR sanitizer/81715
14193         * tree-inline.c (expand_call_inline): Emit clobber stmts for
14194         VAR_DECLs to which addressable non-volatile parameters are mapped
14195         and for id->retvar after the return value assignment.  Clear
14196         id->retval and id->retbnd after inlining.
14197
14198 2017-09-21  Richard Biener  <rguenther@suse.de>
14199
14200         PR tree-optimization/82276
14201         PR tree-optimization/82244
14202         * tree-vrp.c (build_assert_expr_for): Set
14203         SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
14204         has it set.
14205         (remove_range_assertions): Revert earlier change.
14206
14207 2017-09-21  Wilco Dijkstra  <wdijkstr@arm.com>
14208
14209         PR target/71951
14210         * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
14211
14212 2017-09-21  Richard Biener  <rguenther@suse.de>
14213
14214         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
14215         Restore valid IL after code generation errors.
14216         * graphite.c (graphite_transform_loops): Diagnose code
14217         generation issues as MSG_MISSED_OPTIMIZATION and continue
14218         with processing SCOPs.
14219
14220 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14221             Alan Hayward  <alan.hayward@arm.com>
14222             David Sherwood  <david.sherwood@arm.com>
14223
14224         * calls.c (compute_argument_addresses): Use simplify_gen_binary
14225         rather than choosing between plus_constant and gen_rtx_<CODE>.
14226         * expr.c (emit_push_insn): Likewise.
14227         (expand_expr_real_2): Likewise.
14228
14229 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14230             Alan Hayward  <alan.hayward@arm.com>
14231             David Sherwood  <david.sherwood@arm.com>
14232
14233         * loop-unroll.c (split_iv): Call copy_rtx on the step.
14234
14235 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14236             Alan Hayward  <alan.hayward@arm.com>
14237             David Sherwood  <david.sherwood@arm.com>
14238
14239         * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
14240         calling tree_to_uhwi.
14241
14242 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14243             Alan Hayward  <alan.hayward@arm.com>
14244             David Sherwood  <david.sherwood@arm.com>
14245
14246         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
14247         INTEGER_CST rather than a negative test for ADDR_EXPR.
14248
14249 2017-09-21  Richard Sandiford  <richard.sandiford@linaro.org>
14250             Alan Hayward  <alan.hayward@arm.com>
14251             David Sherwood  <david.sherwood@arm.com>
14252
14253         * tree-vrp.c (extract_range_from_binary_expr_1): Check
14254         int_cst_rangeN before calling value_range_constant_singleton (&vrN).
14255
14256 2017-09-21  Richard Biener  <rguenther@suse.de>
14257
14258         PR tree-optimization/71351
14259         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
14260         graphite_create_new_loop_guard): Remove, fold remaining parts
14261         into caller ...
14262         (translate_isl_ast_node_for): ... here and simplify.
14263
14264 2017-09-21  Jakub Jelinek  <jakub@redhat.com>
14265
14266         PR target/82260
14267         * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
14268         with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
14269         latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
14270         alternative always use QI mode, for -Os imov (=R,R) alternative
14271         always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
14272         ignore -Os.
14273
14274 2017-09-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
14275             Jeff Law  <law@redhat.com>
14276
14277         * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
14278         (allocate_stack_space): New function, partially extracted from
14279         s390_emit_prologue.
14280         (s390_emit_prologue): Track offset to most recent stack probe.
14281         Code to allocate space moved into allocate_stack_space.
14282         Dump actions when no stack is allocated.
14283         (s390_prologue_plus_offset): New function.
14284         (s390_emit_stack_probe): Likewise.
14285
14286 2017-09-20  Alexandre Oliva  <aoliva@redhat.com>
14287
14288         * common.opt (Wa, Wl, Wp, g, gz=): Add
14289         RejectNegative.
14290         (gno-column-info): Remove.
14291         (gcolumn-info): Drop RejectNegative.
14292         (gno-): New prefix.
14293         (gno-record-gcc-switches): Remove.
14294         (grecord-gcc-switches): Drop RejectNegative.
14295         (gno-split-dwarf): Remove.
14296         (gsplit-dwarf): Drop RejectNegative.
14297         (gno-strict-dwarf): Remove.
14298         (gstrict-dwarf): Drop RejectNegative.
14299         * config/darwin.opt (gfull, gused): Add RejectNegative.
14300         * dwarf2out.c (gen_producer_string): Drop
14301         gno-record-gcc-switches handler.
14302         * optc-gen.awk: Add g to prefixes with negative forms.
14303         * opts-common.c (remapping_prefix_p): New.
14304         (find_opt): Check it.
14305         (generate_canonical_option): Test g prefix.
14306         (option_map): Add -gno- mapping.
14307         (add_misspelling_candidates): Check remapping_prefix_p.
14308
14309 2017-09-20  Jeff Law  <law@redhat.com>
14310
14311         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
14312         thinko in stack clash protection support.
14313
14314         * explow.c (compute_stack_clash_protection_loop_data): Use
14315         CONST_INT_P instead of explicit test.  Verify object is a
14316         CONST_INT_P before looking at INTVAL.
14317         (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
14318         instead of explicit test.
14319
14320 2017-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
14321
14322         PR target/77687
14323         * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
14324         address instead of to r1 and r11.
14325
14326 2017-09-20  Sebastian Peryt  <sebastian.peryt@intel.com>
14327
14328         * config.gcc: Support "knm".
14329         * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
14330         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
14331         PROCESSOR_KNM.
14332         * config/i386/i386.c (m_KNM): Define.
14333         (processor_target_table): Add "knm".
14334         (PTA_KNM): Define.
14335         (ix86_option_override_internal): Add "knm".
14336         (ix86_issue_rate): Add PROCESSOR_KNM.
14337         (ix86_adjust_cost): Ditto.
14338         (ia32_multipass_dfa_lookahead): Ditto.
14339         (get_builtin_code_for_version): Handle PROCESSOR_KNM.
14340         (fold_builtin_cpu): Add M_INTEL_KNM.
14341         * config/i386/i386.h (processor_costs): Define TARGET_KNM.
14342         (processor_type): Add PROCESSOR_KNM.
14343         * config/i386/x86-tune.def: Add m_KNM.
14344         * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
14345
14346 2017-09-20  Richard Biener  <rguenther@suse.de>
14347
14348         PR tree-optimization/80213
14349         * graphite-scop-detection.c (trivially_empty_bb_p): Labels
14350         are allowed in empty BBs as well.
14351         (canonicalize_loop_closed_ssa): Also look for other complex
14352         edges.
14353         (scop_detection::get_sese): Include the loop-closed PHI block
14354         in loop SESEs.
14355         (scop_detection::merge_sese): Remove code adding extra blocks.
14356         (scop_detection::region_has_one_loop): Adjust for get_sese changes.
14357         (build_scops): Assert the final returned scop is invalid.
14358
14359 2017-09-20  Richard Biener  <rguenther@suse.de>
14360
14361         PR tree-optimization/82264
14362         * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
14363         for GIMPLE_CONDs.
14364         (vn_phi_lookup): Likewise.
14365         (vn_phi_insert): Likewise.
14366
14367 2017-09-20  Jakub Jelinek  <jakub@redhat.com>
14368
14369         * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
14370         that fits into uhwi or shwi, add DW_AT_const_value regardless
14371         of early_dwarf without going through RTL, using add_AT_unsigned
14372         or add_AT_int.
14373
14374         * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
14375         (DEBUG_LTO_ABBREV_SECTION): Likewise.
14376         (DEBUG_LTO_MACINFO_SECTION): Likewise.
14377         (DEBUG_MACRO_SECTION): Likewise.
14378         (DEBUG_LTO_MACRO_SECTION): Likewise.
14379         (DEBUG_STR_DWO_SECTION): Likewise.
14380         (DEBUG_LTO_STR_DWO_SECTION): Likewise.
14381         (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
14382         (DEBUG_LTO_DWO_LINE_SECTION): Define.
14383         (DEBUG_LTO_LINE_STR_SECTION): Define.
14384         (init_sections_and_labels): Initialize debug_line_str_section
14385         variable.  Initialize debug_loc_section for -gdwarf-5 to
14386         DEBUG_LOCLISTS_SECTION.  Formatting fixes.
14387
14388 2017-09-20  Richard Biener  <rguenther@suse.de>
14389
14390         * graphite-sese-to-poly.c (extract_affine): Properly handle
14391         POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
14392
14393 2017-09-20  Richard Biener  <rguenther@suse.de>
14394
14395         PR tree-optimization/81373
14396         * graphite-scop-detection.c (build_cross_bb_scalars_def):
14397         Force SESE live-out defs to be handled even if they are
14398         scev_analyzable_p.
14399
14400 2017-09-19  Jeff Law  <law@redhat.com>
14401
14402         * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
14403         nothing for stack adjustments with REG_STACK_CHECK.
14404         * sched-deps.c (parse_add_or_inc): Reject insns with
14405         REG_STACK_CHECK from dependency breaking.
14406         * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
14407         (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
14408         * reg-notes.def (STACK_CHECK): New note.
14409
14410         * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
14411         (ix86_expand_prologue): Dump stack clash info as needed.
14412         Call ix86_adjust_stack_and_probe_stack_clash as needed.
14413
14414         * function.c (dump_stack_clash_frame_info): New function.
14415         * function.h (dump_stack_clash_frame_info): Prototype.
14416         (enum stack_clash_probes): New enum.
14417
14418         * config/alpha/alpha.c (alpha_expand_prologue): Also check
14419         flag_stack_clash_protection.
14420         * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
14421         (arm_expand_prologue, thumb1_expand_prologue): Likewise.
14422         (arm_frame_pointer_required): Likewise.
14423         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
14424         (ia64_expand_prologue): Likewise.
14425         * config/mips/mips.c (mips_expand_prologue): Likewise.
14426         * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
14427         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14428         (sparc_flat_expand_prologue): Likewise.
14429         * config/spu/spu.c (spu_expand_prologue): Likewise.
14430
14431         * explow.c: Include "params.h".
14432         (anti_adjust_stack_and_probe_stack_clash): New function.
14433         (get_stack_check_protect): Likewise.
14434         (compute_stack_clash_protection_loop_data): Likewise.
14435         (emit_stack_clash_protection_loop_start): Likewise.
14436         (emit_stack_clash_protection_loop_end): Likewise.
14437         (allocate_dynamic_stack_space): Use get_stack_check_protect.
14438         Use anti_adjust_stack_and_probe_stack_clash.
14439         * explow.h (compute_stack_clash_protection_loop_data): Prototype.
14440         (emit_stack_clash_protection_loop_start): Likewise.
14441         (emit_stack_clash_protection_loop_end): Likewise.
14442         * rtl.h (get_stack_check_protect): Prototype.
14443         * target.def (stack_clash_protection_final_dynamic_probe): New hook.
14444         * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
14445         * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
14446         Prototype.
14447         * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
14448         Add @hook.
14449         * doc/tm.texi: Rebuilt.
14450         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
14451         get_stack_check_protect.
14452         * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
14453         * config/arm/arm.c (arm_expand_prologue): Likewise.
14454         (arm_frame_pointer_required): Likewise.
14455         * config/i386/i386.c (ix86_expand_prologue): Likewise.
14456         * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
14457         * config/mips/mips.c (mips_expand_prologue): Likewise.
14458         * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
14459         * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
14460         * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
14461         (sparc_flat_expand_prologue): Likewise.
14462
14463         * common.opt (-fstack-clash-protection): New option.
14464         * flag-types.h (enum stack_check_type): Note difference between
14465         -fstack-check= and -fstack-clash-protection.
14466         * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
14467         (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
14468         * toplev.c (process_options): Issue warnings/errors for cases
14469         not handled with -fstack-clash-protection.
14470         * doc/invoke.texi (-fstack-clash-protection): Document new option.
14471         (-fstack-check): Note additional problem with -fstack-check=generic.
14472         Note that -fstack-check is primarily for Ada and refer users
14473         to -fstack-clash-protection for stack-clash-protection.
14474         Document new params for stack clash protection.
14475
14476 2017-09-19  Uros Bizjak  <ubizjak@gmail.com>
14477
14478         * config/i386/i386.c (ix86_split_long_move): Do not handle
14479         address used for LEA in a special way.
14480
14481 2017-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
14482
14483         * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
14484
14485 2017-09-19  Martin Sebor  <msebor@redhat.com>
14486
14487         PR c/81854
14488         * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
14489         of incompatible types.
14490
14491 2017-09-19  Will Schmidt  <will_schmidt@vnet.ibm.com>
14492
14493         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
14494         for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
14495         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14496         Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
14497
14498 2017-09-19  Richard Biener  <rguenther@suse.de>
14499
14500         PR tree-optimization/82244
14501         * tree-vrp.c (remove_range_assertions): Do not propagate
14502         a constant to abnormals but replace the assert with a copy.
14503
14504 2017-09-19  Alexander Monakov  <amonakov@ispras.ru>
14505
14506         PR rtl-optimization/57878
14507         PR rtl-optimization/68988
14508         * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
14509         avoidance test involving non_reload_pseudos.  Move frequency test
14510         below the general fragmentation avoidance test.
14511
14512 2017-09-19  Richard Biener  <rguenther@suse.de>
14513
14514         PR tree-optimization/69728
14515         * graphite-sese-to-poly.c (schedule_error): New global.
14516         (add_loop_schedule): Handle empty domain by failing the
14517         schedule.
14518         (build_original_schedule): Handle schedule_error.
14519
14520 2017-09-19  Richard Biener  <rguenther@suse.de>
14521
14522         * graphite-scop-detection.c (scop_detection::can_represent_loop):
14523         Do not iterate to sibling loops but only to siblings of inner
14524         loops.
14525
14526 2017-09-18  Andreas Schwab  <schwab@linux-m68k.org>
14527
14528         PR target/81613
14529         * config/m68k/m68k.md (moveq feeding equality comparison): Check
14530         that the registers are different.
14531
14532 2017-09-18  Uros Bizjak  <ubizjak@gmail.com>
14533
14534         * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
14535         to processor_model and "amdfam17h" to arch_names_table.
14536         * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
14537
14538 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
14539
14540         PR c/82234
14541         * doc/extend.texi: Add @findex entry for __builtin_shuffle.
14542
14543 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14544             Alan Hayward  <alan.hayward@arm.com>
14545             David Sherwood  <david.sherwood@arm.com>
14546
14547         * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
14548         with a vec_info *.
14549         * tree-vect-loop.c (vect_analyze_loop_operations): Update call
14550         accordingly.
14551         * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
14552         parameter.  Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
14553         vect_schedule_slp_instance.
14554         (vect_slp_analyze_operations): Replace parameters with a vec_info *.
14555         Update call to vect_slp_analyze_node_operations.  Simplify return
14556         value.
14557         (vect_slp_analyze_bb_1): Update call accordingly.
14558         (vect_schedule_slp_instance): Remove vectorization_factor parameter.
14559         Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
14560         (vect_schedule_slp): Update call accordingly.
14561
14562 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14563             Alan Hayward  <alan.hayward@arm.com>
14564             David Sherwood  <david.sherwood@arm.com>
14565
14566         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
14567         with types that aren't in fact scalar.
14568
14569 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14570
14571         * tree-vect-slp.c (vect_record_max_nunits): New function,
14572         split out from...
14573         (vect_build_slp_tree_1): ...here.
14574         (vect_build_slp_tree_2): Call it for phis too.
14575
14576 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14577
14578         * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
14579         to vect_get_vec_def_for_operand when getting the mask operand.
14580
14581 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14582             Alan Hayward  <alan.hayward@arm.com>
14583             David Sherwood  <david.sherwood@arm.com>
14584
14585         * tree-vect-loop.c (vectorizable_live_operation): Fix type of
14586         bitstart.
14587
14588 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14589             Alan Hayward  <alan.hayward@arm.com>
14590             David Sherwood  <david.sherwood@arm.com>
14591
14592         * tree-vect-loop.c (vectorizable_live_operation): Fix element size
14593         calculation for vector booleans.
14594
14595 2017-09-18  Richard Sandiford  <richard.sandiford@linaro.org>
14596             Alan Hayward  <alan.hayward@arm.com>
14597             David Sherwood  <david.sherwood@arm.com>
14598
14599         * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
14600         split out from...
14601         (vect_transform_stmt): ...here.
14602         (vect_analyze_stmt): Use it instead of calling
14603         vectorizable_live_operation directly.
14604
14605 2017-09-18  Cesar Philippidis  <cesar@codesourcery.com>
14606
14607         * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
14608         non-SIMT targets in acc vector loops.
14609
14610 2017-09-18  Claudiu Zissulescu  <claziss@synopsys.com>
14611
14612         * configure.ac: Add arc and check if assembler supports gdwarf2.
14613         * configure: Regenerate.
14614
14615 2017-09-18  Richard Biener  <rguenther@suse.de>
14616
14617         PR tree-optimization/82220
14618         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
14619         epilogue niters from the min_profitable_iters compute.
14620
14621 2017-09-18  Jakub Jelinek  <jakub@redhat.com>
14622
14623         PR target/82145
14624         * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
14625         changes.  Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
14626         (ix86_init_pic_reg): Revert 2017-09-01 changes.
14627
14628 2017-09-18  Eric Botcazou  <ebotcazou@adacore.com>
14629
14630         PR target/81361
14631         * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
14632         switching to a new text section.
14633
14634 2017-09-18  Richard Biener  <rguenther@suse.de>
14635
14636         * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
14637         Simplify.
14638         (build_alias_set): Reject aliases with no access function.
14639
14640 2017-09-18  Richard Biener  <rguenther@suse.de>
14641
14642         PR tree-optimization/79622
14643         * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
14644         handle PHIs.
14645         (build_cross_bb_scalars_use): Likewise.
14646
14647 2017-09-18  Pierre-Marie de Rodat  <derodat@adacore.com>
14648
14649         * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
14650
14651 2017-09-18  Alan Modra  <amodra@gmail.com>
14652
14653         PR target/81996
14654         * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
14655         stack_pointer_rtx for count 0.  Update comments.  Break up
14656         large rtl expression.
14657
14658 2017-09-17  Daniel Santos  <daniel.santos@pobox.com>
14659
14660         * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
14661         Increase to 20 bytes.
14662         (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
14663         (xlogue_layout::get_stub_name): Modify to select the appropairate sse
14664         or avx version of the stub.
14665
14666 2017-09-17  H.J. Lu  <hongjiu.lu@intel.com>
14667
14668         PR target/82166
14669         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
14670         compute the minimum stack alignment.  Also update preferred stack
14671         boundary for leaf functions.
14672
14673 2017-09-16  Richard Sandiford  <richard.sandiford@linaro.org>
14674
14675         PR tree-optimization/82228
14676         * tree-vect-loop.c (vectorizable_live_operation): Move initialization
14677         of ncopies.
14678
14679 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
14680
14681         * common/config/nds32/nds32-common.c
14682         (nds32_option_optimization_table): Refine formatting.
14683         (nds32_option_optimization_table): Use -fsched-pressure and
14684         -fomit-frame-pointer for specific optimization level.
14685
14686 2017-09-16  Chung-Ju Wu  <jasonwucj@gmail.com>
14687
14688         * config/nds32/nds32.c: Refine formatting and comments.
14689         * config/nds32/nds32.h: Likewise.
14690         * config/nds32/nds32.md: Likewise.
14691         * config/nds32/nds32-cost.c: Likewise.
14692         * config/nds32/nds32-isr.c: Likewise.
14693         * config/nds32/nds32-md-auxiliary.c: Likewise.
14694         * config/nds32/nds32-multiple.md: Likewise.
14695         * config/nds32/nds32-predicates.c: Likewise.
14696
14697 2017-09-15  Andrew Sutton  <andrew.n.sutton@gmail.com>
14698             Jakub Jelinek  <jakub@redhat.com>
14699
14700         Add support for -std=c++2a.
14701         * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
14702         or -std=gnu+2a.
14703         * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
14704
14705 2017-09-15  Steve Ellcey  <sellcey@cavium.com>
14706
14707         PR target/82066
14708         * doc/extend.texi (Common Function Attributes): Add 
14709         references to ARM, AArch64, and S/390 specific attributes.
14710         (Function Specific Option Pragmas): Add AArch64 and S/390
14711         to list of back ends that support the target pragma.
14712
14713 2017-09-15  Nathan Sidwell  <nathan@acm.org>
14714
14715         * doc/standards.texi: Fix C++17 description.  Update URLs for
14716         C++11 & 14.
14717
14718 2017-09-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14719
14720         * common.opt (Wcast-align=strict): New warning option.
14721         * doc/invoke.texi: Document -Wcast-align=strict. 
14722
14723 2017-09-15  Pierre-Marie de Rodat  <derodat@adacore.com>
14724
14725         * cgraph.h (cgraph_thunk_info): Add comments.
14726         * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
14727         assert for VIRTUAL_* arguments stricter.
14728
14729 2017-09-15  Jackson Woodruff  <jackson.woodruff@arm.com>
14730
14731         PR tree-optimization/71026
14732         * match.pd: Move RDIV patterns from fold-const.c
14733         * fold-const.c (distribute_real_division): Removed.
14734         (fold_binary_loc): Remove calls to distribute_real_divison.
14735
14736 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14737
14738         * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
14739         c++1z and gnu++1z as deprecated.  Change other references to
14740         -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
14741         Change -Wc++1z-compat to -Wc++17-compat.
14742         * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
14743         * dwarf2out.c (highest_c_language): Handle C++17.
14744         (gen_compile_unit_die): Likewise.
14745
14746 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
14747
14748         PR rtl-optimization/82192
14749         * combine.c (make_extraction): Don't look through non-paradoxical
14750         SUBREGs or TRUNCATE if pos + len is or might be bigger than
14751         inner's mode.
14752
14753 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14754             Alan Hayward  <alan.hayward@arm.com>
14755             David Sherwood  <david.sherwood@arm.com>
14756
14757         * target.def (function_arg_offset): New hook.
14758         * targhooks.h (default_function_arg_offset): Declare.
14759         * targhooks.c (default_function_arg_offset): New function.
14760         * function.c (locate_and_pad_parm): Use
14761         targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
14762         * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
14763         (TARGET_FUNCTION_ARG_OFFSET): ...this.
14764         * doc/tm.texi: Regenerate.
14765         * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
14766         * config/spu/spu.c (spu_function_arg_offset): New function.
14767         (TARGET_FUNCTION_ARG_OFFSET): Redefine.
14768         * system.h (FUNCTION_ARG_OFFSET): Poison.
14769
14770 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14771             Alan Hayard  <alan.hayward@arm.com>
14772             David Sherwood  <david.sherwood@arm.com>
14773
14774         * target.def (truly_noop_truncation): New hook.
14775         (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
14776         than TRULY_NOOP_TRUNCATION.
14777         * hooks.h (hook_bool_uint_uint_true): Declare.
14778         * hooks.c (hook_bool_uint_uint_true): New function.
14779         * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
14780         (TARGET_TRULY_NOOP_TRUNCATION): ...this.
14781         * doc/tm.texi: Regenerate.
14782         * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
14783         rather than TRULY_NOOP_TRUNCATION in comments.
14784         (simplify_comparison): Likewise.
14785         (record_truncated_value): Likewise.
14786         * expmed.c (extract_bit_field_1): Likewise.
14787         (extract_split_bit_field): Likewise.
14788         * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
14789         instead of TRULY_NOOP_TRUNCATION.
14790         * function.c (assign_parm_setup_block): Likewise.
14791         * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
14792         * rtlhooks.c: Include target.h.
14793         * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
14794         * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
14795         * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
14796         * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
14797         * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
14798         * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
14799         * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
14800         * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
14801         * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
14802         * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
14803         * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
14804         * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
14805         * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
14806         * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
14807         * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
14808         * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
14809         * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
14810         * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
14811         * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
14812         * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
14813         * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
14814         * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
14815         * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
14816         * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
14817         * config/mips/mips.c (mips_truly_noop_truncation): New function.
14818         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14819         * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14820         rather than TRULY_NOOP_TRUNCATION in comments.
14821         * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
14822         * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
14823         * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
14824         * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
14825         * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
14826         * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
14827         * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
14828         * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
14829         * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
14830         * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
14831         * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
14832         * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14833         rather than TRULY_NOOP_TRUNCATION in comments.
14834         * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
14835         * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
14836         * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
14837         * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
14838         * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
14839         TRULY_NOOP_TRUNCATION condition.
14840         (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
14841         (TRULY_NOOP_TRUNCATION): Delete.
14842         * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
14843         * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
14844         * config/spu/spu.c (spu_truly_noop_truncation): New function.
14845         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14846         * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
14847         * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
14848         * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
14849         (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
14850         * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
14851         rather than TRULY_NOOP_TRUNCATION in comments.
14852         * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
14853         * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
14854         * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
14855         * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
14856         * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
14857         * system.h (TRULY_NOOP_TRUNCATION): Poison.
14858
14859 2017-09-15  Christophe Lyon  <christophe.lyon@linaro.org>
14860
14861         PR target/67591
14862         * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
14863         (*cmp_ior): Likewise.
14864         (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
14865         (*ior_scc_scc_cmp): Likewise.
14866         (*and_scc_scc): Likewise.
14867         (*and_scc_scc_cmp): Likewise.
14868
14869 2017-09-15  Richard Sandiford  <richard.sandiford@linaro.org>
14870             Alan Hayard  <alan.hayward@arm.com>
14871             David Sherwood  <david.sherwood@arm.com>
14872
14873         * target.def (can_change_mode_class): New hook.
14874         (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
14875         (hard_regno_nregs): Likewise.
14876         * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
14877         * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
14878         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
14879         (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
14880         (LOAD_EXTEND_OP): Update accordingly.
14881         * doc/tm.texi: Regenerate.
14882         * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
14883         CANNOT_CHANGE_MODE_CLASS.
14884         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
14885         (REG_CAN_CHANGE_MODE_P): ...this new macro.
14886         * combine.c (simplify_set): Update accordingly.
14887         * emit-rtl.c (validate_subreg): Likewise.
14888         * recog.c (general_operand): Likewise.
14889         * regcprop.c (mode_change_ok): Likewise.
14890         * reload1.c (choose_reload_regs): Likewise.
14891         (inherit_piecemeal_p): Likewise.
14892         * rtlanal.c (simplify_subreg_regno): Likewise.
14893         * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
14894         instead of CANNOT_CHANGE_MODE_CLASS.
14895         (reload_cse_simplify_operands): Likewise.
14896         * reload.c (push_reload): Use targetm.can_change_mode_class
14897         instead of CANNOT_CHANGE_MODE_CLASS.
14898         (push_reload): Likewise.  Also use REG_CAN_CHANGE_MODE_P instead of
14899         REG_CANNOT_CHANGE_MODE_P.
14900         * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14901         * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
14902         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14903         * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14904         * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14905         (arm_can_change_mode_class): New function.
14906         * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14907         than CANNOT_CHANGE_MODE_CLASS in comments.
14908         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14909         * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
14910         * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
14911         (ix86_can_change_mode_class): ...this new function, inverting the
14912         sense of the return value.
14913         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14914         * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14915         * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14916         (ia64_can_change_mode_class): New function.
14917         * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14918         * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
14919         * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
14920         (m32c_can_change_mode_class): ...this new function, inverting the
14921         sense of the return value.
14922         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14923         * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14924         * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
14925         * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
14926         (mips_can_change_mode_class): ...this new function, inverting the
14927         sense of the return value.
14928         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14929         * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14930         * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14931         (msp430_can_change_mode_class): New function.
14932         * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14933         * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
14934         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14935         * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14936         * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14937         * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
14938         * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14939         (pa_cannot_change_mode_class): Replace with...
14940         (pa_can_change_mode_class): ...this new function, inverting the
14941         sense of the return value.
14942         (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
14943         than CANNOT_CHANGE_MODE_CLASS in comments.
14944         * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14945         * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
14946         * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14947         (pdp11_cannot_change_mode_class): Replace with...
14948         (pdp11_can_change_mode_class): ...this new function, inverting the
14949         sense of the return value.
14950         * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14951         * config/powerpcspe/powerpcspe-protos.h
14952         (rs6000_cannot_change_mode_class_ptr): Delete.
14953         * config/powerpcspe/powerpcspe.c
14954         (rs6000_cannot_change_mode_class_ptr): Delete.
14955         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14956         (rs6000_option_override_internal): Assign to
14957         targetm.can_change_mode_class instead of
14958         rs6000_cannot_change_mode_class_ptr.
14959         (rs6000_cannot_change_mode_class): Replace with...
14960         (rs6000_can_change_mode_class): ...this new function, inverting the
14961         sense of the return value.
14962         (rs6000_debug_cannot_change_mode_class): Replace with...
14963         (rs6000_debug_can_change_mode_class): ...this new function.
14964         * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14965         * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
14966         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14967         * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14968         * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
14969         Delete.
14970         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
14971         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14972         (rs6000_option_override_internal): Assign to
14973         targetm.can_change_mode_class instead of
14974         rs6000_cannot_change_mode_class_ptr.
14975         (rs6000_cannot_change_mode_class): Replace with...
14976         (rs6000_can_change_mode_class): ...this new function, inverting the
14977         sense of the return value.
14978         (rs6000_debug_cannot_change_mode_class): Replace with...
14979         (rs6000_debug_can_change_mode_class): ...this new function.
14980         * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14981         * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
14982         * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
14983         (s390_can_change_mode_class): ...this new function, inverting the
14984         sense of the return value.
14985         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14986         * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14987         * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
14988         * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14989         (sh_cannot_change_mode_class): Replace with...
14990         (sh_can_change_mode_class): ...this new function, inverting the
14991         sense of the return value.
14992         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14993         * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14994         (sparc_can_change_mode_class): New function.
14995         * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14996         * config/spu/spu.c (spu_can_change_mode_class): New function.
14997         (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
14998         * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
14999         * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
15000         (visium_can_change_mode_class): New function.
15001         * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
15002
15003 2017-09-15  Richard Biener  <rguenther@suse.de>
15004
15005         PR tree-optimization/82217
15006         * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
15007         but not undefined case.
15008
15009 2017-09-15  Jakub Jelinek  <jakub@redhat.com>
15010
15011         PR target/82145
15012         * postreload.c (reload_cse_simplify_operands): Skip
15013         NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
15014
15015 2017-09-15  Richard Biener  <rguenther@suse.de>
15016
15017         PR tree-optimization/68823
15018         * graphite-scop-detection.c (build_alias_set): If we have a
15019         possible dependence check whether we can handle them by just
15020         looking at the DRs DR_ACCESS_FNs.
15021         (build_scops): If build_alias_set fails, fail the SCOP.
15022
15023 2017-09-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15024
15025         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
15026         to support float128 built-in functions that require the ISA 3.0
15027         hardware.
15028         (BU_FLOAT128_3_HW): Likewise.
15029         (SQRTF128): Add support for the IEEE 128-bit square root and fma
15030         built-in functions.
15031         (FMAF128): Likewise.
15032         (FMAQ): Likewise.
15033         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
15034         support for built-in functions that need the ISA 3.0 IEEE 128-bit
15035         floating point instructions.
15036         (rs6000_invalid_builtin): Likewise.
15037         (rs6000_builtin_mask_names): Likewise.
15038         * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
15039         (RS6000_BTM_FLOAT128_HW): Likewise.
15040         (RS6000_BTM_COMMON): Likewise.
15041         * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
15042         function.
15043         * doc/extend.texi (RS/6000 built-in functions): Document the
15044         IEEE 128-bit floating point square root and fused multiply-add
15045         built-in functions.
15046
15047 2017-09-14  Pat Haugen  <pthaugen@us.ibm.com>
15048
15049         * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
15050         reg (r2) isn't in the set of registers defined in the prologue.
15051
15052 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15053             Alan Hayward  <alan.hayward@arm.com>
15054             David Sherwood  <david.sherwood@arm.com>
15055
15056         * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
15057         (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
15058         (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
15059         (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
15060         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
15061         accordingly.
15062         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
15063         max_vectorization_factor.
15064         (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
15065
15066 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15067             Alan Hayward  <alan.hayward@arm.com>
15068             David Sherwood  <david.sherwood@arm.com>
15069
15070         * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
15071         (vect_worthwhile_without_simd_p): Declare.
15072         * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
15073         (vectorizable_reduction): Use it.
15074         * tree-vect-stmts.c (vectorizable_shift): Likewise.
15075         (vectorizable_operation): Likewise.
15076
15077 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15078             Alan Hayward  <alan.hayward@arm.com>
15079             David Sherwood  <david.sherwood@arm.com>
15080
15081         * tree-vectorizer.h (vect_get_num_copies): New function.
15082         * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
15083         * tree-vect-loop.c (vectorizable_reduction): Likewise.
15084         (vectorizable_induction): Likewise.
15085         (vectorizable_live_operation): Likewise.
15086         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
15087         (vectorizable_bswap): Likewise.
15088         (vectorizable_call): Likewise.
15089         (vectorizable_conversion): Likewise.
15090         (vectorizable_assignment): Likewise.
15091         (vectorizable_shift): Likewise.
15092         (vectorizable_operation): Likewise.
15093         (vectorizable_store): Likewise.
15094         (vectorizable_load): Likewise.
15095         (vectorizable_condition): Likewise.
15096         (vectorizable_comparison): Likewise.
15097         (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
15098
15099 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15100             Alan Hayward  <alan.hayward@arm.com>
15101             David Sherwood  <david.sherwood@arm.com>
15102
15103         * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
15104         of vect_init_vector.
15105
15106 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15107             Alan Hayward  <alan.hayward@arm.com>
15108             David Sherwood  <david.sherwood@arm.com>
15109
15110         * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
15111         an inline wrapper that provides a location.
15112         (gimple_build_vector): Likewise.
15113         * gimple-fold.c (gimple_build_vector_from_val): New function.
15114         (gimple_build_vector): Likewise.
15115         * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
15116         functions to build the initial value.  Always return a gimple value.
15117         (get_initial_defs_for_reduction): Likewise.  Only compute
15118         neutral_vec once.
15119         (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
15120         vect_init_vector on the results from get_initial_def(s)_for_reduction.
15121         (vectorizable_induction): Use gimple_build_vector rather than
15122         vect_init_vector.
15123
15124 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15125             Alan Hayward  <alan.hayward@arm.com>
15126             David Sherwood  <david.sherwood@arm.com>
15127
15128         * target.h (vec_perm_indices): New typedef.
15129         (auto_vec_perm_indices): Likewise.
15130         * optabs-query.h: Include target.h
15131         (can_vec_perm_p): Take a vec_perm_indices *.
15132         * optabs-query.c (can_vec_perm_p): Likewise.
15133         (can_mult_highpart_p): Update accordingly.  Use auto_vec_perm_indices.
15134         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
15135         * tree-vect-generic.c (lower_vec_perm): Likewise.
15136         * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
15137         (vect_grouped_load_supported): Likewise.
15138         (vect_shift_permute_load_chain): Likewise.
15139         (vect_permute_store_chain): Use auto_vec_perm_indices.
15140         (vect_permute_load_chain): Likewise.
15141         * fold-const.c (fold_vec_perm): Take vec_perm_indices.
15142         (fold_ternary_loc): Update accordingly.  Use auto_vec_perm_indices.
15143         Update uses of can_vec_perm_p.
15144         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
15145         mode with a number of elements.  Take a vec_perm_indices *.
15146         (vect_create_epilog_for_reduction): Update accordingly.
15147         Use auto_vec_perm_indices.
15148         (have_whole_vector_shift): Likewise.  Update call to can_vec_perm_p.
15149         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
15150         (vect_transform_slp_perm_load): Likewise.
15151         (vect_schedule_slp_instance): Use auto_vec_perm_indices.
15152         * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
15153         (vect_gen_perm_mask_checked): Likewise.
15154         * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
15155         (vect_gen_perm_mask_checked): Likewise.
15156         (vectorizable_mask_load_store): Use auto_vec_perm_indices.
15157         (vectorizable_store): Likewise.
15158         (vectorizable_load): Likewise.
15159         (perm_mask_for_reverse): Likewise.  Update call to can_vec_perm_p.
15160         (vectorizable_bswap): Likewise.
15161
15162 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15163             Alan Hayward  <alan.hayward@arm.com>
15164             David Sherwood  <david.sherwood@arm.com>
15165
15166         * tree.h (build_vector): Take a vec<tree> instead of a tree *.
15167         * tree.c (build_vector): Likewise.
15168         (build_vector_from_ctor): Update accordingly.
15169         (build_vector_from_val): Likewise.
15170         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
15171         * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
15172         * tree-vect-generic.c (add_rshift): Likewise.
15173         (expand_vector_divmod): Likewise.
15174         (optimize_vector_constructor): Likewise.
15175         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
15176         (vect_transform_slp_perm_load): Likewise.
15177         (vect_schedule_slp_instance): Likewise.
15178         * tree-vect-stmts.c (vectorizable_bswap): Likewise.
15179         (vectorizable_call): Likewise.
15180         (vect_gen_perm_mask_any): Likewise.  Add elements in order.
15181         * expmed.c (make_tree): Likewise.
15182         * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
15183         a vector passed to build_vector.
15184         (fold_convert_const): Likewise.
15185         (exact_inverse): Likewise.
15186         (fold_ternary_loc): Likewise.
15187         (fold_relational_const): Likewise.
15188         (const_binop): Likewise.  Use VECTOR_CST_ELT directly when operating
15189         on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
15190         (const_unop): Likewise.  Store the reduction accumulator in a
15191         variable rather than an array.
15192         (vec_cst_ctor_to_array): Take the number of elements as a parameter.
15193         (fold_vec_perm): Update calls accordingly.  Use auto_vec<tree> for
15194         the new vector, rather than constructing it after the input arrays.
15195         (native_interpret_vector): Use auto_vec<tree> when building
15196         a vector passed to build_vector.  Add elements in order.
15197         * tree-vect-loop.c (get_initial_defs_for_reduction): Use
15198         auto_vec<tree> when building a vector passed to build_vector.
15199         (vect_create_epilog_for_reduction): Likewise.
15200         (vectorizable_induction): Likewise.
15201         (get_initial_def_for_reduction): Likewise.  Fix indentation of
15202         case statements.
15203         * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
15204         to a vec<tree> *.
15205         (sparc_fold_builtin): Use auto_vec<tree> when building a vector
15206         passed to build_vector.
15207
15208 2017-09-14  Richard Sandiford  <richard.sandiford@linaro.org>
15209             Alan Hayward  <alan.hayward@arm.com>
15210             David Sherwood  <david.sherwood@arm.com>
15211
15212         * tree-core.h (tree_base::u): Add an "nelts" field.
15213         (tree_vector): Use VECTOR_CST_NELTS as the length.
15214         * tree.c (tree_size): Likewise.
15215         (make_vector): Initialize VECTOR_CST_NELTS.
15216         * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
15217         * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
15218         TYPE_VECTOR_SUBPARTS.
15219         * expr.c (const_vector_mask_from_tree): Consistently use "units"
15220         as the number of units, setting it from VECTOR_CST_NELTS.
15221         (const_vector_from_tree): Likewise.
15222         * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
15223         TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
15224         (fold_negate_expr_1): Likewise.
15225         (fold_convert_const): Likewise.
15226         (const_binop): Likewise.  Differentiate the number of output and
15227         input elements.
15228         (const_unop): Likewise.
15229         (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
15230         in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
15231         in cases that did the opposite.
15232
15233 2017-09-14  Richard Biener  <rguenther@suse.de>
15234
15235         * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
15236         to VN_TOP.
15237
15238 2017-09-14  Eric Botcazou  <ebotcazou@adacore.com>
15239
15240         * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
15241
15242 2017-09-14  Jakub Jelinek  <jakub@redhat.com>
15243
15244         PR target/81325
15245         * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
15246         if and where to split a bb, except for splitting before debug insn
15247         sequences followed by non-label real insn.  Delete debug insns
15248         in between basic blocks.
15249
15250         * combine.c (make_compound_operation_int): Formatting fixes.
15251
15252         * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
15253         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15254         * config/netbsd.h (LINK_EH_SPEC): Likewise.
15255         * config/sol2.h (LINK_EH_SPEC): Likewise.
15256         * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15257         * config/s390/linux.h (LINK_SPEC): Likewise.
15258         * config/freebsd.h (LINK_EH_SPEC): Likewise.
15259         * config/openbsd.h (LINK_EH_SPEC): Likewise.
15260         * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15261         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
15262         * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
15263         * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15264         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
15265         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
15266
15267 2017-09-13  Jakub Jelinek  <jakub@redhat.com>
15268
15269         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
15270         support.
15271         (ENDFILE_LINUX_SPEC): Likewise.
15272         (LINK_EH_SPEC): Likewise.
15273         * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
15274         (LINK_OS_LINUX_SPEC32): Likewise.
15275         (LINK_OS_LINUX_SPEC64): Likewise.
15276         * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
15277         (LINK_OS_LINUX_SPEC): Likewise.
15278
15279 2017-09-13  Martin Liska  <mliska@suse.cz>
15280
15281         PR middle-end/82154
15282         * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
15283         CASE_HIGH is NULL_TREE.
15284
15285 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
15286             Alan Hayward  <alan.hayward@arm.com>
15287             David Sherwood  <david.sherwood@arm.com>
15288
15289         * target.def (secondary_memory_needed): New hook.
15290         (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
15291         instead of SECONDARY_MEMORY_NEEDED.
15292         (secondary_memory_needed_mode): Likewise.
15293         * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
15294         * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
15295         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
15296         (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
15297         (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
15298         * doc/tm.texi: Regenerate.
15299         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
15300         * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
15301         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15302         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
15303         * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
15304         * config/i386/i386.c (inline_secondary_memory_needed): Put the
15305         mode argument first and change the reg_class arguments to reg_class_t.
15306         (ix86_secondary_memory_needed): Likewise.  Remove the strict parameter.
15307         Make static.  Update the call to inline_secondary_memory_needed.
15308         (ix86_register_move_cost): Update the call to
15309         inline_secondary_memory_needed.
15310         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15311         * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
15312         definition.
15313         * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
15314         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
15315         in comment.
15316         * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
15317         * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
15318         * config/mips/mips.c (mips_secondary_memory_needed): Make static
15319         and match hook interface.  Add comment from mips.h.
15320         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15321         * config/mmix/mmix.md (truncdfsf2): Refer to
15322         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
15323         in comment.
15324         * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
15325         (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
15326         * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15327         (pa_secondary_memory_needed): New function.
15328         * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
15329         * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
15330         * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15331         (pdp11_secondary_memory_needed): Make static and match hook interface.
15332         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
15333         * config/powerpcspe/powerpcspe-protos.h
15334         (rs6000_secondary_memory_needed_ptr): Delete.
15335         * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
15336         Delete.
15337         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15338         (rs6000_option_override_internal): Assign to
15339         targetm.secondary_memory_needed rather than
15340         rs6000_secondary_memory_needed_ptr.
15341         (rs6000_secondary_memory_needed): Match hook interface.
15342         (rs6000_debug_secondary_memory_needed): Likewise.
15343         * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
15344         * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
15345         (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
15346         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15347         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
15348         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
15349         Delete.
15350         * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
15351         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15352         (rs6000_option_override_internal): Assign to
15353         targetm.secondary_memory_needed rather than
15354         rs6000_secondary_memory_needed_ptr.
15355         (rs6000_secondary_memory_needed): Match hook interface.
15356         (rs6000_debug_secondary_memory_needed): Likewise.
15357         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
15358         * config/s390/s390.c (s390_secondary_memory_needed): New function.
15359         (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15360         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
15361         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
15362         (sparc_secondary_memory_needed): New function.
15363         * lra-constraints.c (check_and_process_move): Refer to
15364         TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
15365         in comment.
15366         (curr_insn_transform): Likewise.
15367         (process_alt_operands): Use targetm.secondary_memory_needed
15368         instead of TARGET_SECONDARY_MEMORY_NEEDED.
15369         (check_secondary_memory_needed_p): Likewise.
15370         (choose_split_class): Likewise.
15371         * reload.c: Unconditionally include code that was previously
15372         conditional on SECONDARY_MEMORY_NEEDED.
15373         (push_secondary_reload): Use targetm.secondary_memory_needed
15374         instead of TARGET_SECONDARY_MEMORY_NEEDED.
15375         (push_reload): Likewise.
15376         * reload1.c: Unconditionally include code that was previously
15377         conditional on SECONDARY_MEMORY_NEEDED.
15378         (choose_reload_regs): Use targetm.secondary_memory_needed
15379         instead of TARGET_SECONDARY_MEMORY_NEEDED.
15380         (gen_reload): Likewise.
15381         * system.h (SECONDARY_MEMORY_NEEDED): Poison.
15382
15383 2017-09-13  Richard Sandiford  <richard.sandiford@linaro.org>
15384             Alan Hayward  <alan.hayward@arm.com>
15385             David Sherwood  <david.sherwood@arm.com>
15386
15387         * target.def (secondary_memory_needed_mode): New hook:
15388         * targhooks.c (default_secondary_memory_needed_mode): Declare.
15389         * targhooks.h (default_secondary_memory_needed_mode): New function.
15390         * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
15391         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
15392         * doc/tm.texi: Regenerate.
15393         * lra-constraints.c (check_and_process_move): Use
15394         targetm.secondary_memory_needed_mode instead of
15395         TARGET_SECONDARY_MEMORY_NEEDED_MODE.
15396         (curr_insn_transform): Likewise.
15397         * reload.c (get_secondary_mem): Likewise.
15398         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15399         * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
15400         function.
15401         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15402         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15403         * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
15404         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15405         * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
15406         Delete.
15407         * config/powerpcspe/powerpcspe-protos.h
15408         (rs6000_secondary_memory_needed_mode): Delete.
15409         * config/powerpcspe/powerpcspe.c
15410         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15411         (rs6000_secondary_memory_needed_mode): Make static.
15412         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15413         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
15414         Delete.
15415         * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
15416         Redefine.
15417         (rs6000_secondary_memory_needed_mode): Make static.
15418         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15419         * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
15420         (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
15421         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
15422         * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
15423         Redefine.
15424         (sparc_secondary_memory_needed_mode): New function.
15425         * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
15426
15427 2017-09-13  Jackson Woodruff  <jackson.woodruff@arm.com>
15428
15429         * config/aarch64/constraints.md (Umq): New constraint.
15430         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
15431         Change to use Umq.
15432         (mov<mode>): Update condition.
15433
15434 2017-09-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15435
15436         * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
15437         when bitposition is the same.
15438
15439 2017-09-13  Richard Biener  <rguenther@suse.de>
15440
15441         * dwarf2out.c (output_die_symbol): Remove.
15442         (output_die): Do not output a DIEs symbol.
15443
15444 2017-09-13  Richard Biener  <rguenther@suse.de>
15445
15446         PR middle-end/82128
15447         * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
15448         default-def to avoid breaking iterator update with the weird
15449         interaction with cgraph_update_edges_for_call_stmt_node.
15450
15451 2017-09-13  Richard Biener  <rguenther@suse.de>
15452
15453         * tree-cfg.c (verify_gimple_assign_binary): Add verification
15454         for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
15455         VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
15456         (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
15457
15458 2017-09-13  Kugan Vivekanandarajah  <kuganv@linaro.org>
15459
15460         * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
15461         Disable pc relative literal load irrespective of
15462         TARGET_FIX_ERR_A53_84341 for default.
15463
15464 2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
15465
15466         * config/sparc/sparc.c (output_return): Output the source location of
15467         the insn in the delay slot, if any.
15468         (output_sibcall): Likewise.
15469
15470 2017-09-12  H.J. Lu  <hongjiu.lu@intel.com>
15471
15472         PR driver/81498
15473         * common.opt (-static-pie): New alias.
15474         (shared): Negate static-pie.
15475         (-no-pie): Update help text.
15476         (-pie): Likewise.
15477         (static-pie): New option.
15478         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
15479         -static-pie support.
15480         (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
15481         (LINK_EH_SPEC): Likewise.
15482         (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
15483         * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
15484         * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
15485         * gcc.c (LINK_COMMAND_SPEC): Likewise.
15486         (init_gcc_specs): Likewise.
15487         (init_spec): Likewise.
15488         (display_help): Update help message for -pie.
15489         * doc/invoke.texi: Update -pie, -no-pie and -static.  Document
15490         -static-pie.
15491
15492 2017-09-12  Wilco Dijkstra  <wdijkstr@arm.com>
15493
15494         * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
15495         (movdi_aarch64): Likewise.
15496         (movti_aarch64): Likewise.
15497
15498 2017-09-12 Simon Wright <simon@pushface.org>
15499
15500         PR target/80204
15501         * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
15502         calculation of the minor version, always output as 0.
15503
15504 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
15505
15506         PR target/82112
15507         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
15508         ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
15509         on it early, rather than manual conversion late.  For
15510         ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
15511         instead of performing manual conversion.
15512
15513 2017-09-12  Carl Love  <cel@us.ibm.com>
15514
15515         * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
15516         vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
15517         vmulouw, vmulosw.
15518         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
15519         VMULOSW): Add definitions.
15520         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15521         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
15522         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
15523         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
15524         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
15525
15526 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
15527
15528         * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
15529         types correctly.
15530         (movti_aarch64): Likewise.
15531         (movdf_aarch64): Likewise.
15532         (movtf_aarch64): Likewise.
15533         (load_pairdi): Likewise.
15534         (store_pairdi): Likewise.
15535         (load_pairdf): Likewise.
15536         (store_pairdf): Likewise.
15537         (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
15538         (storewb_pair<GPI:mode>_<P:mode>): Likewise.
15539         (ldr_got_small_<mode>): Likewise.
15540         (ldr_got_small_28k_<mode>): Likewise.
15541         (ldr_got_tiny): Likewise.
15542         * config/aarch64/iterators.md (ldst_sz): New.
15543         (ldpstp_sz): Likewise.
15544         * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
15545         to store_16.
15546         (thunderx_load): Split load_8 to load_16.
15547         * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
15548         load_8 to load_16.
15549         (thunderx2t99_storepair_basic): Split store_8 to store_16.
15550         * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
15551         (xgene1_store_pair): Split store_8 to store_16.
15552         * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
15553         (falkor_st_0_st_sd): Split store_8 to store_16.
15554
15555 2017-09-12  James Greenhalgh  <james.greenhalgh@arm.com>
15556
15557         * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
15558         and store1/2/3/4 to store_4/8/12/16.
15559         * config/aarch64/aarch64.md: Update for rename.
15560         * config/arm/arm.md: Likewise.: Likewise.
15561         * config/arm/arm.c: Likewise.
15562         * config/arm/thumb1.md: Likewise.
15563         * config/arm/thumb2.md: Likewise.
15564         * config/arm/vfp.md: Likewise.
15565         * config/arm/arm-generic.md: Likewise.
15566         * config/arm/arm1020e.md: Likewise.
15567         * config/arm/arm1026ejs.md: Likewise.
15568         * config/arm/arm1136jfs.md: Likewise.
15569         * config/arm/arm926ejs.md: Likewise.
15570         * config/arm/cortex-a15.md: Likewise.
15571         * config/arm/cortex-a17.md: Likewise.
15572         * config/arm/cortex-a5.md: Likewise.
15573         * config/arm/cortex-a53.md: Likewise.
15574         * config/arm/cortex-a57.md: Likewise.
15575         * config/arm/cortex-a7.md: Likewise.
15576         * config/arm/cortex-a8.md: Likewise.
15577         * config/arm/cortex-a9.md: Likewise.
15578         * config/arm/cortex-m4.md: Likewise.
15579         * config/arm/cortex-m7.md: Likewise.
15580         * config/arm/cortex-r4.md: Likewise.
15581         * config/arm/exynos-m1.md: Likewise.
15582         * config/arm/fa526.md: Likewise.
15583         * config/arm/fa606te.md: Likewise.
15584         * config/arm/fa626te.md: Likewise.
15585         * config/arm/fa726te.md: Likewise.
15586         * config/arm/fmp626.md: Likewise.
15587         * config/arm/iwmmxt.md: Likewise.
15588         * config/arm/ldmstm.md: Likewise.
15589         * config/arm/marvell-pj4.md: Likewise.
15590         * config/arm/xgene1.md: Likewise.
15591         * config/aarch64/thunderx.md: Likewise.
15592         * config/aarch64/thunderx2t99.md: Likewise.
15593         * config/aarch64/falkor.md: Likewise.
15594
15595 2017-09-12  Martin Liska  <mliska@suse.cz>
15596
15597         * attribs.c (private_lookup_attribute): New function.
15598         * attribs.h (private_lookup_attribute): Declared here.
15599         (lookup_attribute): Called from this place.
15600
15601 2017-09-12  Richard Biener  <rguenther@suse.de>
15602
15603         PR tree-optimization/82157
15604         * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
15605         stmts with side-effects.
15606
15607 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15608             Alan Hayward  <alan.hayward@arm.com>
15609             David Sherwood <david.sherwood@arm.com>
15610
15611         * target.def (hard_regno_nregs): New hook.
15612         (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
15613         * targhooks.h (default_hard_regno_nregs): Declare.
15614         * targhooks.c (default_hard_regno_nregs): New function.
15615         * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
15616         (TARGET_HARD_REGNO_NREGS): ...this hook.
15617         (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
15618         (CLASS_MAX_NREGS): Likewise.
15619         * doc/tm.texi: Regenerate.
15620         * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
15621         instead of HARD_REGNO_NREGS.
15622         * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
15623         HARD_REGNO_NREGS in the comment.
15624         * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
15625         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
15626         * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
15627         Return an unsigned int.
15628         (TARGET_HARD_REGNO_NREGS): Redefine.
15629         * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
15630         * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
15631         * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
15632         (arc_hard_regno_nregs): New function.
15633         * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
15634         * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
15635         (arm_hard_regno_nregs): New function.
15636         * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
15637         * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
15638         * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
15639         (TARGET_HARD_REGNO_NREGS): Redefine.
15640         * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
15641         * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
15642         (HARD_REGNO_NREGS): Delete.
15643         * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
15644         (cr16_hard_regno_nregs): New function.
15645         (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
15646         * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
15647         * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
15648         (cris_hard_regno_nregs): New function.
15649         * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
15650         * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
15651         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
15652         * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
15653         (CLASS_MAX_NREGS): Remove outdated copy of documentation.
15654         * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
15655         * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
15656         (frv_hard_regno_nregs): Make static.  Take and return an
15657         unsigned int.
15658         (frv_class_max_nregs): Remove outdated copy of documentation.
15659         * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
15660         * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
15661         * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
15662         * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
15663         * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
15664         * config/i386/i386.c (ix86_hard_regno_nregs): New function.
15665         (TARGET_HARD_REGNO_NREGS): Redefine.
15666         * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
15667         (CLASS_MAX_NREGS): Update comment.
15668         * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
15669         (ia64_hard_regno_nregs): New function.
15670         * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
15671         * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
15672         * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
15673         * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
15674         * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
15675         an unsigned int.
15676         (m32c_hard_regno_nregs): Likewise.  Make static.
15677         (TARGET_HARD_REGNO_NREGS): Redefine.
15678         * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
15679         * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
15680         * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
15681         (m68k_hard_regno_nregs): New function.
15682         * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
15683         * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
15684         * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
15685         * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
15686         * config/mips/mips.c (mips_hard_regno_nregs): Make static.
15687         Take and return an unsigned int.
15688         (TARGET_HARD_REGNO_NREGS): Redefine.
15689         * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
15690         (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
15691         * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
15692         * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
15693         * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
15694         * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
15695         * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
15696         (msp430_hard_regno_nregs): Make static.  Take and return an
15697         unsigned int.
15698         * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
15699         * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
15700         * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
15701         (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
15702         * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
15703         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
15704         * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
15705         (TARGET_HARD_REGNO_NREGS): Redefine.
15706         * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
15707         (PA_HARD_REGNO_NREGS): ...this.
15708         * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
15709         (PA_HARD_REGNO_NREGS): ...this.
15710         * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
15711         (pa_hard_regno_nregs): New function.
15712         * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
15713         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
15714         (pdp11_hard_regno_nregs): New function.
15715         * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
15716         * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
15717         (rs6000_hard_regno_nregs_hook): New function.
15718         * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
15719         * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
15720         * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
15721         Take and return an unsigned int.  Move earlier in file.
15722         (TARGET_HARD_REGNO_NREGS): Redefine.
15723         * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
15724         * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
15725         * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
15726         (rl78_hard_regno_nregs): Make static.  Take and return an
15727         unsigned int.
15728         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
15729         * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
15730         (rs6000_hard_regno_nregs_hook): New function.
15731         * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
15732         * config/rx/rx.c (rx_hard_regno_nregs): New function.
15733         (TARGET_HARD_REGNO_NREGS): Redefine.
15734         * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
15735         * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
15736         instead of HARD_REGNO_NREGS.
15737         (s390_hard_regno_nregs): New function.
15738         (s390_hard_regno_mode_ok): Add comment from s390.h.
15739         (TARGET_HARD_REGNO_NREGS): Redefine.
15740         * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
15741         * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
15742         (sh_hard_regno_nregs): New function.
15743         (sh_pass_in_reg_p): Use it.
15744         * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
15745         * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
15746         (sparc_hard_regno_nregs): New function.
15747         * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
15748         * config/spu/spu.c (spu_hard_regno_nregs): New function.
15749         (spu_function_arg_advance): Use it, supplying a valid register number.
15750         (TARGET_HARD_REGNO_NREGS): Redefine.
15751         * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
15752         * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
15753         * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
15754         * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
15755         * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
15756         * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
15757         (CLASS_MAX_NREGS): Remove copy of old documentation.
15758         * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
15759         (visium_hard_regno_nregs): New function.
15760         (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
15761         * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
15762         * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
15763         xtensa_hard_regno_nregs): New function.
15764         * system.h (HARD_REGNO_NREGS): Poison.
15765
15766 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15767
15768         * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
15769         hard_regno_nregs instead of HARD_REGNO_NREGS.
15770         (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
15771         * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
15772         (c6x_expand_epilogue): Likewise.
15773         * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
15774         (frv_read_iacc_argument): Likewise.
15775         * config/sh/sh.c: Include regs.h.
15776         (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15777         (regs_used): Likewise.
15778         (output_stack_adjust): Likewise.
15779         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
15780         * expmed.c: Include regs.h.
15781         (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
15782         * ree.c: Include regs.h.
15783         (combine_reaching_defs): Use hard_regno_nregs instead of
15784         HARD_REGNO_NREGS.
15785         (add_removable_extension): Likewise.
15786
15787 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15788
15789         * regs.h (hard_regno_nregs): Turn into a function.
15790         (end_hard_regno): Update accordingly.
15791         * caller-save.c (setup_save_areas): Likewise.
15792         (save_call_clobbered_regs): Likewise.
15793         (replace_reg_with_saved_mem): Likewise.
15794         (insert_restore): Likewise.
15795         (insert_save): Likewise.
15796         * combine.c (can_change_dest_mode): Likewise.
15797         (move_deaths): Likewise.
15798         (distribute_notes): Likewise.
15799         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
15800         * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
15801         (rs6000_split_multireg_move): Likewise.
15802         (rs6000_register_move_cost): Likewise.
15803         (rs6000_memory_move_cost): Likewise.
15804         * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
15805         (rs6000_split_multireg_move): Likewise.
15806         (rs6000_register_move_cost): Likewise.
15807         (rs6000_memory_move_cost): Likewise.
15808         * cselib.c (cselib_reset_table): Likewise.
15809         (cselib_lookup_1): Likewise.
15810         * emit-rtl.c (set_mode_and_regno): Likewise.
15811         * function.c (aggregate_value_p): Likewise.
15812         * ira-color.c (setup_profitable_hard_regs): Likewise.
15813         (check_hard_reg_p): Likewise.
15814         (calculate_saved_nregs): Likewise.
15815         (assign_hard_reg): Likewise.
15816         (improve_allocation): Likewise.
15817         (calculate_spill_cost): Likewise.
15818         * ira-emit.c (modify_move_list): Likewise.
15819         * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
15820         (ira_hard_reg_in_set_p): Likewise.
15821         * ira.c (setup_reg_mode_hard_regset): Likewise.
15822         (clarify_prohibited_class_mode_regs): Likewise.
15823         (check_allocation): Likewise.
15824         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15825         (lra_setup_reg_renumber): Likewise.
15826         (setup_try_hard_regno_pseudos): Likewise.
15827         (spill_for): Likewise.
15828         (assign_hard_regno): Likewise.
15829         (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
15830         * lra-constraints.c (in_class_p): Likewise.
15831         (lra_constraint_offset): Likewise.
15832         (simplify_operand_subreg): Likewise.
15833         (lra_constraints): Likewise.
15834         (split_reg): Likewise.
15835         (split_if_necessary): Likewise.
15836         (invariant_p): Likewise.
15837         (inherit_in_ebb): Likewise.
15838         * lra-lives.c (process_bb_lives): Likewise.
15839         * lra-remat.c (reg_overlap_for_remat_p): Likewise.
15840         (get_hard_regs): Likewise.
15841         (do_remat): Likewise.
15842         * lra-spills.c (assign_spill_hard_regs): Likewise.
15843         * mode-switching.c (create_pre_exit): Likewise.
15844         * postreload.c (reload_combine_recognize_pattern): Likewise.
15845         * recog.c (peep2_find_free_register): Likewise.
15846         * regcprop.c (kill_value_regno): Likewise.
15847         (set_value_regno): Likewise.
15848         (copy_value): Likewise.
15849         (maybe_mode_change): Likewise.
15850         (find_oldest_value_reg): Likewise.
15851         (copyprop_hardreg_forward_1): Likewise.
15852         * regrename.c (check_new_reg_p): Likewise.
15853         (regrename_do_replace): Likewise.
15854         * reload.c (push_reload): Likewise.
15855         (combine_reloads): Likewise.
15856         (find_dummy_reload): Likewise.
15857         (operands_match_p): Likewise.
15858         (find_reloads): Likewise.
15859         (find_equiv_reg): Likewise.
15860         (reload_adjust_reg_for_mode): Likewise.
15861         * reload1.c (count_pseudo): Likewise.
15862         (count_spilled_pseudo): Likewise.
15863         (find_reg): Likewise.
15864         (clear_reload_reg_in_use): Likewise.
15865         (free_for_value_p): Likewise.
15866         (allocate_reload_reg): Likewise.
15867         (choose_reload_regs): Likewise.
15868         (reload_adjust_reg_for_temp): Likewise.
15869         (emit_reload_insns): Likewise.
15870         (delete_output_reload): Likewise.
15871         * rtlanal.c (subreg_get_info): Likewise.
15872         * sched-deps.c (sched_analyze_reg): Likewise.
15873         * sel-sched.c (init_regs_for_mode): Likewise.
15874         (mark_unavailable_hard_regs): Likewise.
15875         (choose_best_reg_1): Likewise.
15876         (verify_target_availability): Likewise.
15877         * valtrack.c (dead_debug_insert_temp): Likewise.
15878         * var-tracking.c (track_loc_p): Likewise.
15879         (emit_note_insn_var_location): Likewise.
15880         * varasm.c (make_decl_rtl): Likewise.
15881         * reginfo.c (choose_hard_reg_mode): Likewise.
15882         (init_reg_modes_target): Refer directly to
15883         this_target_regs->x_hard_regno_nregs.
15884
15885 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15886
15887         * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
15888         instead of hard_regno_nregs.
15889
15890 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15891
15892         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
15893         end_hard_regno instead of hard_regno_nregs.
15894         * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
15895         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
15896         * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
15897         * ira-color.c (improve_allocation): Likewise.
15898         * lra-assigns.c (find_hard_regno_for_1): Likewise.
15899         * lra-lives.c (mark_regno_live): Likewise.
15900         (mark_regno_dead): Likewise.
15901         * lra-remat.c (operand_to_remat): Likewise.
15902         * lra.c (collect_non_operand_hard_regs): Likewise.
15903         * postreload.c (reload_combine_note_store): Likewise.
15904         (move2add_valid_value_p): Likewise.
15905         * reload.c (regno_clobbered_p): Likewise.
15906
15907 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15908
15909         * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
15910         hard_regno_nregs.
15911         * config/v850/v850.c (v850_reorg): Likewise.
15912         * reload.c (refers_to_regno_for_reload_p): Likewise.
15913         (find_equiv_reg): Likewise.
15914         * reload1.c (reload_reg_reaches_end_p): Likewise.
15915
15916 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15917
15918         * caller-save.c (add_used_regs): Use REG_NREGS instead of
15919         hard_regno_nregs.
15920         * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
15921         * config/arm/arm.c (output_move_neon): Likewise.
15922         (arm_attr_length_move_neon): Likewise.
15923         (neon_split_vcombine): Likewise.
15924         * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
15925         (c6x_mark_reg_written): Likewise.
15926         (c6x_dwarf_register_span): Likewise.
15927         * config/i386/i386.c (ix86_save_reg): Likewise.
15928         * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
15929         (rws_access_reg): Likewise.
15930         * config/s390/s390.c (s390_call_saved_register_used): Likewise.
15931         * mode-switching.c (create_pre_exit): Likewise.
15932         * ree.c (combine_reaching_defs): Likewise.
15933         (add_removable_extension): Likewise.
15934         * regcprop.c (find_oldest_value_reg): Likewise.
15935         (copyprop_hardreg_forward_1): Likewise.
15936         * reload.c (reload_inner_reg_of_subreg): Likewise.
15937         (push_reload): Likewise.
15938         (combine_reloads): Likewise.
15939         (find_dummy_reload): Likewise.
15940         (reload_adjust_reg_for_mode): Likewise.
15941         * reload1.c (find_reload_regs): Likewise.
15942         (forget_old_reloads_1): Likewise.
15943         (reload_reg_free_for_value_p): Likewise.
15944         (reload_adjust_reg_for_temp): Likewise.
15945         (emit_reload_insns): Likewise.
15946         (delete_output_reload): Likewise.
15947         * sel-sched.c (choose_best_reg_1): Likewise.
15948         (choose_best_pseudo_reg): Likewise.
15949
15950 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
15951             Alan Hayward  <alan.hayward@arm.com>
15952             David Sherwood <david.sherwood@arm.com>
15953
15954         * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
15955         * target.def (slow_unaligned_access): New hook.
15956         * targhooks.h (default_slow_unaligned_access): Declare.
15957         * targhooks.c (default_slow_unaligned_access): New function.
15958         * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
15959         (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
15960         * doc/tm.texi: Regenerate.
15961         * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
15962         * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
15963         * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
15964         definition.
15965         * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
15966         * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
15967         Redefine.
15968         (rs6000_slow_unaligned_access): New function.
15969         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15970         (expand_block_compare): Likewise.
15971         (expand_strn_compare): Likewise.
15972         (rs6000_rtx_costs): Likewise.
15973         * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
15974         (riscv_slow_unaligned_access): Likewise.
15975         * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
15976         (riscv_slow_unaligned_access_p): ...this and make static.
15977         (riscv_option_override): Update accordingly.
15978         (riscv_slow_unaligned_access): New function.
15979         (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15980         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
15981         * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
15982         (rs6000_slow_unaligned_access): New function.
15983         (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
15984         (rs6000_rtx_costs): Likewise.
15985         * config/rs6000/rs6000-string.c (expand_block_compare)
15986         (expand_strn_compare): Use targetm.slow_unaligned_access instead
15987         of SLOW_UNALIGNED_ACCESS.
15988         * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
15989         * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
15990         * calls.c (expand_call): Use targetm.slow_unaligned_access instead
15991         of SLOW_UNALIGNED_ACCESS.
15992         * expmed.c (simple_mem_bitfield_p): Likewise.
15993         * expr.c (alignment_for_piecewise_move): Likewise.
15994         (emit_group_load_1): Likewise.
15995         (emit_group_store): Likewise.
15996         (copy_blkmode_from_reg): Likewise.
15997         (emit_push_insn): Likewise.
15998         (expand_assignment): Likewise.
15999         (store_field): Likewise.
16000         (expand_expr_real_1): Likewise.
16001         * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
16002         * lra-constraints.c (simplify_operand_subreg): Likewise.
16003         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
16004         * gimple-ssa-store-merging.c: Likewise in block comment at start
16005         of file.
16006         * tree-ssa-strlen.c: Include target.h.
16007         (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
16008         of SLOW_UNALIGNED_ACCESS.
16009         * system.h (SLOW_UNALIGNED_ACCESS): Poison.
16010
16011 2017-09-12  Richard Sandiford  <richard.sandiford@linaro.org>
16012
16013         PR rtl-optimization/82185
16014         * expmed.c (emit_store_flag_int): Only test tem if it has been
16015         initialized.
16016
16017 2017-09-12  Richard Biener  <rguenther@suse.de>
16018
16019         PR middle-end/82149
16020         * match.pd ((FTYPE) N CMP CST): Fix typo.
16021
16022 2017-09-12  Simon Atanasyan  <simon.atanasyan@imgtec.com>
16023
16024         * config/mips/mips.c (mips_attribute_table): Add 'short_call'
16025         attribute.
16026         (mips_near_type_p): Add 'short_call' attribute as a synonym
16027         for 'near'.
16028         * doc/extend.texi (short_call): Document new function attribute.
16029
16030 2017-09-12  Jakub Jelinek  <jakub@redhat.com>
16031
16032         PR target/82112
16033         * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
16034         assertion check that in the condition.
16035         (get_atomic_generic_size): Likewise.  Before testing if parameter
16036         has pointer type, if it has array type, call for C++
16037         default_conversion to perform array-to-pointer conversion.
16038
16039 2017-09-12  Richard Biener  <rguenther@suse.de>
16040
16041         * tree-vect-generic.c (expand_vector_operations_1): Do nothing
16042         for operations we cannot scalarize.
16043
16044 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
16045
16046         * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
16047         vectors heap vectors.  Clean up comments.
16048         Make visited_bbs a reference.
16049         (profitable_jump_thread_path): Make GC
16050         vectors heap vectors.  Clean up comments.
16051         Misc cleanups.
16052         (convert_and_register_jump_thread_path): Make GC vectors heap
16053         vectors.
16054         (check_subpath_and_update_thread_path): Same.  Clean up comments.
16055         Make visited_bbs a reference.
16056         (handle_phi): Abstract common code to to
16057         register_jump_thread_path_if_profitable.
16058         Rename VAR_BB to DEF_BB.
16059         Update comments.
16060         Make GC vectors heap vectors.
16061         Make visited_bbs a reference.
16062         (handle_assignment): Same.
16063         (register_jump_thread_path_if_profitable): New.
16064         (fsm_find_control_statement_thread_paths): Rename VAR_BB to
16065         DEF_BB.
16066         Make GC vectors heap vectors.  Clean up comments.
16067         Make visited_bbs a reference.
16068         (find_jump_threads_backwards): Make visited_bbs live in the stack.
16069         * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
16070         comment.
16071
16072 2017-09-11  Max Filippov  <jcmvbkbc@gmail.com>
16073
16074         PR target/82181
16075         * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
16076         words of E_DImode object are reachable by xtensa_uimm8x4 access.
16077
16078 2017-09-11  Vidya Praveen  <vidyapraveen@arm.com>
16079
16080         Revert r251800 and r251799.
16081
16082 2017-09-11  Martin Jambor  <mjambor@suse.cz>
16083
16084         PR hsa/82119
16085         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
16086         arguments in advance.
16087         * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
16088         use it to find predecessor edges.
16089         (naive_outof_ssa): Collect vector of predecessors.
16090
16091 2017-09-08  Jason Merrill  <jason@redhat.com>
16092
16093         PR c++/70029 - ICE with ref-qualifier and -flto
16094         * langhooks.h (struct lang_hooks_for_types): Add
16095         copy_lang_qualifiers.
16096         * attribs.c (build_type_attribute_qual_variant): Use it.
16097         * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
16098         NULL.
16099         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
16100         * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
16101
16102 2017-09-08  Eric Botcazou  <ebotcazou@adacore.com>
16103
16104         PR target/81988
16105         * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
16106         (*mulsi3_sp64): New instruction.
16107         (mulsi3): New expander.
16108
16109 2017-09-08  Uros Bizjak  <ubizjak@gmail.com>
16110
16111         * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
16112
16113 2017-09-08  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16114
16115         * sancov.c: Include memmodel.h.
16116
16117 2017-09-07  Eric Botcazou  <ebotcazou@adacore.com>
16118
16119         PR target/80897
16120         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
16121         large offsets.
16122
16123 2017-09-07  Carl Love  <cel@us.ibm.com>
16124
16125         * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
16126         the sldi instruction.
16127
16128 2017-09-07  David Edelsohn  <dje.gcc@gmail.com>
16129
16130         * sancov.c: Include tm_p.h.
16131
16132 2017-09-07  Jakub Jelinek  <jakub@redhat.com>
16133
16134         PR target/81979
16135         * output.h (switch_to_other_text_partition): New declaration.
16136         * varasm.c (switch_to_other_text_partition): New function.
16137         * config/rs6000/rs6000.c (uses_TOC): Return 2 if
16138         NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
16139         (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
16140         to the other text partition before emitting LCL label and switch back
16141         after emitting the word after it.
16142
16143 2017-09-07  Richard Biener  <rguenther@suse.de>
16144
16145         * passes.def (pass_split_crit_edges): Remove instance before PRE.
16146         * tree-ssa-pre.c (pass_pre::execute): Instead manually split
16147         critical edges here, after loop init.
16148         (pass_data_pre): Remove PROP_no_crit_edges flags.
16149         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
16150         for valueization of call args to avoid leaking VN_TOP.
16151         (visit_use): Assert we do not visit default defs.
16152         (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
16153         Use error_mark_node to more easily detect leaking VN_TOP.
16154         All default-defs are varying, not VN_TOP.  Mark them visited.
16155         (run_scc_vn): Make code match comment.
16156
16157 2017-09-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
16158
16159         * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
16160         OPTION_MASK_FLOAT128_KEYWORD.
16161         (POWERPC_MASKS): Likewise.
16162         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
16163         support for the -mfloat128-type option, and make -mfloat128
16164         default on PowerPC Linux systems.  Define or undefine
16165         __FLOAT128__ and  __FLOAT128_HARDWARE__ for the current options.
16166         Define __float128 to be __ieee128 if IEEE 128-bit support is
16167         enabled, or undefine it.
16168         (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
16169         Delete defining __FLOAT128_TYPE__.
16170         * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
16171         -mfloat128-type option and make -mfloat128 default on PowerPC
16172         Linux systems.
16173         (TARGET_FLOAT128_TYPE): Likewise.
16174         (-mfloat128-type): Likewise.
16175         * config/rs6000/rs6000.c (rs6000_option_override_internal):
16176         Delete the -mfloat128-type option and make -mfloat128 default on
16177         PowerPC Linux systems.  Always use __ieee128 to be the keyword for
16178         the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
16179         128-bit floating point is enabled.  Change tests from using
16180         -mfloat128-type to -mfloat128.
16181         (rs6000_mangle_type): Use the correct mangling for the __float128
16182         type even if normal long double is restricted to 64-bits.
16183         (floatn_mode): Enable the _Float128 type by default on VSX Linux
16184         systems.
16185         * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
16186         (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
16187         (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
16188         -mfloat128-type.
16189         * doc/invoke.texi (RS/6000 and PowerPC Options): Update
16190         documentation for -mfloat128.
16191
16192 2017-09-06  Olivier Hainque  <hainque@adacore.com>
16193
16194         * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
16195
16196 2017-09-06  Wish Wu  <wishwu007@gmail.com>
16197             Jakub Jelinek  <jakub@redhat.com>
16198
16199         * asan.c (initialize_sanitizer_builtins): Add
16200         BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
16201         BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
16202         BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
16203         BT_FN_VOID_UINT64_PTR variables.
16204         * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
16205         (BT_FN_VOID_UINT16_UINT16): Likewise.
16206         (BT_FN_VOID_UINT32_UINT32): Likewise.
16207         (BT_FN_VOID_FLOAT_FLOAT): Likewise.
16208         (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
16209         (BT_FN_VOID_UINT64_PTR): Likewise.
16210         * common.opt (flag_sanitize_coverage): New variable.
16211         (fsanitize-coverage=trace-pc): Remove.
16212         (fsanitize-coverage=): Add.
16213         * flag-types.h (enum sanitize_coverage_code): New enum.
16214         * fold-const.c (fold_range_test): Disable non-short-circuit
16215         optimization if flag_sanitize_coverage.
16216         (fold_truth_andor): Likewise.
16217         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
16218         * opts.c (COVERAGE_SANITIZER_OPT): Define.
16219         (coverage_sanitizer_opts): New array.
16220         (get_closest_sanitizer_option): Add OPTS argument, handle also
16221         OPT_fsanitize_coverage_.
16222         (parse_sanitizer_options): Adjusted to also handle
16223         OPT_fsanitize_coverage_.
16224         (common_handle_option): Add OPT_fsanitize_coverage_.
16225         * sancov.c (instrument_comparison, instrument_switch): New function.
16226         (sancov_pass): Add trace-cmp support.
16227         * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
16228         BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
16229         BUILT_IN_SANITIZER_COV_TRACE_CMP8,
16230         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
16231         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
16232         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
16233         BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
16234         BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
16235         BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
16236         * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
16237
16238 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
16239
16240         * config/arm/parsecpu.awk (fatal): Note that we've encountered an
16241         error.  Only quit immediately if parsing is complete.
16242         (BEGIN): Initialize fatal_err and parse_done.
16243         (begin fpu, end fpu): Check number of arguments.
16244         (begin arch, end arch): Likewise.
16245         (begin cpu, end cpu): Likewise.
16246         (cname, tune for, tune flags, architecture, fpu, option): Likewise.
16247         (optalias): Likewise.
16248
16249 2017-09-06  Richard Earnshaw  <rearnsha@arm.com>
16250
16251         * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
16252         * config/arm/arm-isa.h: Delete.  Move definitions to ...
16253         * arm-cpus.in: ... here.  Use new feature and fgroup values.
16254         * config/arm/arm.c (arm_option_override): Use lower case for feature
16255         bit names.
16256         * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
16257         (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
16258         * config/arm/parsecpu.awk (END): Add new command 'isa'.
16259         (isa_pfx): Delete.
16260         (print_isa_bits_for): New function.
16261         (gen_isa): New function.
16262         (gen_comm_data): Use print_isa_bits_for.
16263         (define feature): New keyword.
16264         (define fgroup): New keyword.
16265         * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
16266         (arm-isa.h): Add rule to generate file.
16267         * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
16268         case for feature bit names.
16269
16270 2017-09-06  Richard Biener  <rguenther@suse.de>
16271
16272         * tree-ssa-pre.c (NECESSARY): Remove.
16273         (create_expression_by_pieces): Do not touch pass-local flags.
16274         (insert_into_preds_of_block): Likewise.
16275         (do_pre_regular_insertion): Likewise.
16276         (eliminate_insert): Likewise.
16277         (eliminate_dom_walker::before_dom_children): Likewise.
16278         (fini_eliminate): Do not look at inserted_exprs.
16279         (mark_operand_necessary): Remove.
16280         (remove_dead_inserted_code): Replace with simple work-list
16281         algorithm based on inserted_exprs and SSA uses.
16282         (pass_pre::execute): Re-order fini_eliminate and
16283         remove_dead_inserted_code.
16284
16285 2017-09-06  Olivier Hainque  <hainque@adacore.com>
16286
16287         * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
16288         for VxWorks 7.  Adjust surrounding comments.
16289
16290 2017-09-06  Richard Biener  <rguenther@suse.de>
16291
16292         * gimple-ssa-strength-reduction.c
16293         (find_candidates_dom_walker::before_dom_children): Also allow
16294         pointer types.
16295
16296 2017-09-06  Richard Biener  <rguenther@suse.de>
16297
16298         PR tree-optimization/82108
16299         * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
16300         for gap in the non-permutation SLP case.
16301
16302 2017-09-06  Martin Jambor  <mjambor@suse.cz>
16303
16304         PR tree-optimization/82078
16305         * tree-sra.c (sort_and_splice_var_accesses): Move call to
16306         add_access_to_work_queue...
16307         (build_accesses_from_assign): ...here.
16308         (propagate_all_subaccesses): Make sure racc is the group
16309         representative, if there is one.
16310
16311 2017-09-06  Jakub Jelinek  <jakub@redhat.com>
16312
16313         PR middle-end/82095
16314         * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
16315         NULL DECL_INITIAL.
16316
16317 2017-09-06  Richard Biener  <rguenther@suse.de>
16318
16319         * gimple-ssa-strength-reduction.c
16320         (find_candidates_dom_walker::before_doom_children): Use a
16321         type and not a mode check.
16322
16323 2017-09-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16324
16325         PR target/77308
16326         * config/arm/predicates.md (arm_general_adddi_operand): Create new
16327         non-vfp predicate.
16328         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
16329
16330 2017-09-05  Jeff Law  <law@redhat.com>
16331
16332         PR tree-optimization/64910
16333         * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
16334         cases where we have 3 or more operands.
16335
16336 2017-09-05  Jakub Jelinek  <jakub@redhat.com>
16337
16338         PR middle-end/81768
16339         * omp-low.c (lower_omp_for): Recompute tree invariant if
16340         gimple_omp_for_initial/final is ADDR_EXPR.
16341
16342         PR middle-end/81768
16343         * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
16344         into gimple val before gimplification fo the COND_EXPR.
16345
16346 2017-09-05  Aldy Hernandez  <aldyh@redhat.com>
16347
16348         * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
16349         REGION_COPY argument.
16350         (thread_through_all_blocks): Remove unused argument to
16351         duplicate_thread_path.
16352
16353 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16354             Alan Hayward  <alan.hayward@arm.com>
16355             David Sherwood  <david.sherwood@arm.com>
16356
16357         * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
16358         Take a scalar_mode rather than a machine_mode.
16359         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
16360         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
16361         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
16362         (aarch64_gen_adjusted_ldpstp): Likewise.
16363         (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
16364
16365 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16366             Alan Hayward  <alan.hayward@arm.com>
16367             David Sherwood  <david.sherwood@arm.com>
16368
16369         * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
16370         Take a scalar_int_mode instead of a machine_mode.
16371         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
16372         (aarch64_output_scalar_simd_mov_immediate): Likewise.
16373         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
16374         (aarch64_simd_attr_length_rglist): Delete.
16375         * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
16376         a scalar_int_mode instead of a machine_mode.
16377         (aarch64_add_offset): Likewise.
16378         (aarch64_internal_mov_immediate): Likewise
16379         (aarch64_add_constant_internal): Likewise.
16380         (aarch64_add_constant): Likewise.
16381         (aarch64_movw_imm): Likewise.
16382         (aarch64_rtx_arith_op_extract_p): Likewise.
16383         (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
16384         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
16385         Remove assert that the mode isn't a vector.
16386         (aarch64_output_scalar_simd_mov_immediate): Likewise.
16387         (aarch64_expand_mov_immediate): Update calls after above changes.
16388         (aarch64_output_casesi): Use as_a <scalar_int_mode>.
16389         (aarch64_and_bitmask_imm): Check for scalar integer modes.
16390         (aarch64_move_imm): Likewise.
16391         (aarch64_can_const_movi_rtx_p): Likewise.
16392         (aarch64_strip_extend): Likewise.
16393         (aarch64_extr_rtx_p): Likewise.
16394         (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
16395         a CONST_INT when the mode parameter is VOIDmode.
16396         (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
16397
16398 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16399
16400         * machmode.h (bitwise_mode_for_mode): Return opt_mode.
16401         * stor-layout.c (bitwise_mode_for_mode): Likewise.
16402         (bitwise_type_for_mode): Update accordingly.
16403
16404 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16405
16406         * stor-layout.h (mode_for_size_tree): Return an opt_mode.
16407         * stor-layout.c (mode_for_size_tree): Likewise.
16408         (mode_for_array): Update accordingly.
16409         (layout_decl): Likewise.
16410         (compute_record_mode): Likewise.  Only set the mode once.
16411
16412 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16413
16414         * target.def (get_mask_mode): Change return type to opt_mode.
16415         Expand commentary.
16416         * doc/tm.texi: Regenerate.
16417         * targhooks.h (default_get_mask_mode): Return an opt_mode.
16418         * targhooks.c (default_get_mask_mode): Likewise.
16419         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
16420         * optabs-query.c (can_vec_mask_load_store_p): Update use of
16421         targetm.get_mask_mode.
16422         * tree.c (build_truth_vector_type): Likewise.
16423
16424 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16425
16426         * machmode.h (mode_for_vector): Return an opt_mode.
16427         * stor-layout.c (mode_for_vector): Likewise.
16428         (mode_for_int_vector): Update accordingly.
16429         (layout_type): Likewise.
16430         * config/i386/i386.c (emit_memmov): Likewise.
16431         (ix86_expand_set_or_movmem): Likewise.
16432         (ix86_expand_vector_init): Likewise.
16433         (ix86_get_mask_mode): Likewise.
16434         * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
16435         Likewise.
16436         * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
16437         * expmed.c (extract_bit_field_1): Likewise.
16438         * expr.c (expand_expr_real_2): Likewise.
16439         * optabs-query.c (can_vec_perm_p): Likewise.
16440         (can_vec_mask_load_store_p): Likewise.
16441         * optabs.c (expand_vec_perm): Likewise.
16442         * targhooks.c (default_get_mask_mode): Likewise.
16443         * tree-vect-stmts.c (vectorizable_store): Likewise.
16444         (vectorizable_load): Likewise.
16445         (get_vectype_for_scalar_type_and_size): Likewise.
16446
16447 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16448
16449         * machmode.h (mode_for_int_vector): New function.
16450         * stor-layout.c (mode_for_int_vector): Likewise.
16451         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
16452         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
16453         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
16454         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
16455         (s390_expand_vcond): Likewise.
16456
16457 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16458
16459         * machmode.h (opt_machine_mode): New type.
16460         (opt_mode<T>): Allow construction from anything that can be
16461         converted to a T.
16462         (is_a, as_a, dyn_cast): Add overloads for opt_mode.
16463         (mode_for_size): Return an opt_machine_mode.
16464         * stor-layout.c (mode_for_size): Likewise.
16465         (mode_for_size_tree): Update call accordingly.
16466         (bitwise_mode_for_mode): Likewise.
16467         (make_fract_type): Likewise.
16468         (make_accum_type): Likewise.
16469         * caller-save.c (replace_reg_with_saved_mem): Update call
16470         accordingly.
16471         * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16472         * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16473         * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16474         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
16475         * expmed.c (extract_bit_field_1): Likewise.
16476         * reload.c (get_secondary_mem): Likewise.
16477         * varasm.c (assemble_integer): Likewise.
16478         * lower-subreg.c (simplify_subreg_concatn): Likewise.  Move
16479         early-out.
16480
16481 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16482
16483         * machmode.h (decimal_float_mode_for_size): New function.
16484         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
16485         (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
16486         (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
16487         (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
16488         (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
16489         (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
16490
16491 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16492
16493         * builtins.c (expand_builtin_powi): Use int_mode_for_size.
16494         (get_builtin_sync_mode): Likewise.
16495         (expand_ifn_atomic_compare_exchange): Likewise.
16496         (expand_builtin_atomic_clear): Likewise.
16497         (expand_builtin_atomic_test_and_set): Likewise.
16498         (fold_builtin_atomic_always_lock_free): Likewise.
16499         * calls.c (compute_argument_addresses): Likewise.
16500         (emit_library_call_value_1): Likewise.
16501         (store_one_arg): Likewise.
16502         * combine.c (combine_instructions): Likewise.
16503         * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
16504         * config/arm/arm.c (arm_function_value): Likewise.
16505         (aapcs_allocate_return_reg): Likewise.
16506         * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
16507         * config/i386/i386.c (construct_container): Likewise.
16508         (ix86_gimplify_va_arg): Likewise.
16509         (ix86_expand_sse_cmp): Likewise.
16510         (emit_memmov): Likewise.
16511         (emit_memset): Likewise.
16512         (expand_small_movmem_or_setmem): Likewise.
16513         (ix86_expand_pextr): Likewise.
16514         (ix86_expand_pinsr): Likewise.
16515         * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
16516         * config/microblaze/microblaze.c (microblaze_block_move_straight):
16517         Likewise.
16518         * config/mips/mips.c (mips_function_value_1) Likewise.
16519         (mips_block_move_straight): Likewise.
16520         (mips_expand_ins_as_unaligned_store): Likewise.
16521         * config/powerpcspe/powerpcspe.c
16522         (rs6000_darwin64_record_arg_advance_flush): Likewise.
16523         (rs6000_darwin64_record_arg_flush): Likewise.
16524         * config/rs6000/rs6000.c
16525         (rs6000_darwin64_record_arg_advance_flush): Likewise.
16526         (rs6000_darwin64_record_arg_flush): Likewise.
16527         * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
16528         (sparc_function_value_1): Likewise.
16529         * config/spu/spu.c (adjust_operand): Likewise.
16530         (spu_emit_branch_or_set): Likewise.
16531         (arith_immediate_p): Likewise.
16532         * emit-rtl.c (gen_lowpart_common): Likewise.
16533         * expr.c (expand_expr_real_1): Likewise.
16534         * function.c (assign_parm_setup_block): Likewise.
16535         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
16536         * reload1.c (alter_reg): Likewise.
16537         * stor-layout.c (mode_for_vector): Likewise.
16538         (layout_type): Likewise.
16539
16540 2017-09-05  Richard Sandiford  <richard.sandiford@linaro.org>
16541
16542         * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
16543         (spu_convert_move): Likewise.
16544         * lower-subreg.c (resolve_simple_move): Likewise.
16545
16546 2017-09-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16547
16548         PR target/81833
16549         * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
16550         define_insn to a define_expand.
16551         (altivec_vsum2sws_direct): New define_insn.
16552         (altivec_vsumsws): Convert from a define_insn to a define_expand.
16553
16554 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
16555
16556         * config/arm/arm.c (arm_option_params_internal): Improve setting of
16557         max_insns_skipped.
16558
16559 2017-09-05  H.J. Lu  <hongjiu.lu@intel.com>
16560
16561         PR target/59501
16562         PR target/81624
16563         PR target/81769
16564         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
16565         realign stack if stack alignment needed is less than incoming
16566         stack boundary.
16567
16568 2017-09-05  Marek Polacek  <polacek@redhat.com>
16569
16570         PR sanitizer/82072
16571         * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
16572         check earlier.
16573
16574 2017-09-05  Wilco Dijkstra  <wdijkstr@arm.com>
16575
16576         * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
16577
16578 2017-09-05  Richard Biener  <rguenther@suse.de>
16579
16580         PR tree-optimization/82084
16581         * fold-const.c (can_native_encode_string_p): Handle wide characters.
16582
16583 2017-09-05  Richard Biener  <rguenther@suse.de>
16584
16585         PR tree-optimization/82102
16586         * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
16587
16588 2017-09-05  Martin Liska  <mliska@suse.cz>
16589
16590         PR tree-optimization/82032
16591         * tree-cfg.c (generate_range_test): New function.
16592         * tree-cfg.h (generate_range_test): Declared here.
16593         * tree-cfgcleanup.c (convert_single_case_switch): New function.
16594         (cleanup_control_expr_graph): Use it.
16595         * tree-switch-conversion.c (try_switch_expansion): Remove
16596         assert.
16597         (emit_case_nodes): Use generate_range_test.
16598
16599 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
16600
16601         PR target/82098
16602         * config/i386/i386.md (*<btsc><mode>_mask): Add
16603         TARGET_USE_BT to insn constraint.
16604         (*btr<mode>_mask): Ditto.
16605
16606 2017-09-04  Wilco Dijkstra  <wdijkstr@arm.com>
16607
16608         * config/arm/arm.c (arm_legitimate_index_p): Add comment.
16609         (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
16610
16611 2017-09-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16612
16613         PR target/77308
16614         * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
16615         TARGET_NEON and TARGET_IWMMXT.
16616         (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
16617         TARGET_NEON and TARGET_IWMMXT.
16618         (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
16619
16620 2017-09-04  Uros Bizjak  <ubizjak@gmail.com>
16621
16622         * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
16623         (ix86_rewrite_tls_address): Ditto.
16624         * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
16625         (ix86_rewrite_tls_address_1): Ditto.
16626         (ix86_rewrite_tls_address): Ditto.
16627         * config/i386/predicates.md (tls_address_pattern): New predicate.
16628         * config/i386/i386.md (TLS address splitter): New splitter.
16629
16630 2017-09-04  Richard Biener  <rguenther@suse.de>
16631
16632         PR tree-optimization/82084
16633         * fold-const.h (can_native_encode_string_p): Declare.
16634         * fold-const.c (can_native_encode_string_p): Factor out from ...
16635         (native_encode_string): ... here.
16636         * tree-vect-stmts.c (vectorizable_store): Call it to avoid
16637         vectorizing stores from constants we later cannot handle.
16638
16639 2017-09-04  Marek Polacek  <polacek@redhat.com>
16640
16641         PR c/81783
16642         * doc/invoke.texi: Update -Wtautological-compare documentation.
16643
16644 2017-09-04  Jeff Law  <law@redhat.com>
16645
16646         PR tree-optimization/64910
16647         * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
16648         swap the first and last operand if the last is a constant.
16649
16650 2017-09-04  Marek Polacek  <polacek@redhat.com>
16651
16652         PR sanitizer/82072
16653         * convert.c (do_narrow): When sanitizing signed integer overflows,
16654         bail out for signed types.
16655         (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
16656
16657 2017-09-04  Richard Biener  <rguenther@suse.de>
16658
16659         PR tree-optimization/82060
16660         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
16661         Move devirtualization after stmt folding and before EH/AB/noreturn
16662         cleanup to get the stmt refs canonicalized.  Use a bool instead
16663         of gimple_modified_p since that doesn't work for NOPs.  Schedule
16664         NOPs generated by folding for removal.
16665
16666 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16667             Alan Hayward  <alan.hayward@arm.com>
16668             David Sherwood  <david.sherwood@arm.com>
16669
16670         * coretypes.h (pad_direction): New enum.
16671         * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
16672         (FUNCTION_ARG_PADDING): Likewise.
16673         * target.def (function_arg_padding): New hook.
16674         * targhooks.h (default_function_arg_padding): Declare.
16675         * targhooks.c (default_function_arg_padding): New function.
16676         * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
16677         (TARGET_FUNCTION_ARG_PADDING): ...this.
16678         * doc/tm.texi: Regenerate.
16679         * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
16680         instead of direction.
16681         (compute_argument_addresses): Likewise.
16682         (load_register_parameters): Likewise.
16683         (emit_library_call_value_1): Likewise.
16684         (store_one_arg): Use targetm.calls.function_arg_padding instead
16685         of FUNCTION_ARG_PADDING.
16686         (must_pass_in_stack_var_size_or_pad): Likewise.
16687         * expr.c (emit_group_load_1): Use pad_direction instead of direction.
16688         (emit_group_store): Likewise.
16689         (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
16690         instead of FUNCTION_ARG_PADDING.
16691         (emit_push_insn): Likewise, and propagate enum change throughout
16692         function.
16693         * function.h (direction): Delete.
16694         (locate_and_pad_arg_data::where_pad): Use pad_direction instead
16695         of direction.
16696         * function.c (assign_parm_find_stack_rtl): Likewise.
16697         (assign_parm_setup_block_p): Likewise.
16698         (assign_parm_setup_block): Likewise.
16699         (gimplify_parameters): Likewise.
16700         (locate_and_pad_parm): Use targetm.calls.function_arg_padding
16701         instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
16702         function.
16703         * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
16704         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16705         * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
16706         * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
16707         (aarch64_function_arg_padding): ...this new function.
16708         (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
16709         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16710         * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
16711         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16712         * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
16713         * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16714         (arm_pad_arg_upward): Replace with...
16715         (arm_function_arg_padding): ...this new function.
16716         * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
16717         of direction.
16718         * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
16719         * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
16720         * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16721         (ia64_hpux_function_arg_padding): Replace with...
16722         (ia64_function_arg_padding): ...this new function.  Use pad_direction
16723         instead of direction.  Check for TARGET_HPUX.
16724         * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
16725         * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16726         (iq2000_function_arg_padding): New function.
16727         * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
16728         * config/mips/mips.c (mips_pad_arg_upward): Replace with...
16729         (mips_function_arg_padding): ...this new function.
16730         (mips_pad_reg_upward): Update accordingly.
16731         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16732         * config/mips/mips.h (PAD_VARARGS_DOWN): Use
16733         targetm.calls.function_arg_padding.
16734         (FUNCTION_ARG_PADDING): Delete.
16735         (BLOCK_REG_PADDING): Use pad_direction instead of direction.
16736         * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
16737         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16738         * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
16739         (nios2_block_reg_padding): Return pad_direction instead of direction.
16740         * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
16741         instead of direction.
16742         (nios2_function_arg_padding): Likewise.  Make static.
16743         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16744         * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
16745         (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
16746         * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
16747         * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16748         (pa_function_arg_padding): Make static.  Return pad_direction instead
16749         of direction.
16750         * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
16751         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16752         * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
16753         instead of direction.  Use targetm.calls.function_arg_padding.
16754         * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
16755         * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16756         * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
16757         * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
16758         * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
16759         Redefine.
16760         (function_arg_padding): Rename to...
16761         (rs6000_function_arg_padding): ...this.  Make static.  Return
16762         pad_direction instead of direction.
16763         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16764         * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
16765         (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
16766         * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
16767         instead of direction.  Use targetm.calls.function_arg_padding.
16768         * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
16769         * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
16770         * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
16771         * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
16772         * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16773         (function_arg_padding): Rename to...
16774         (rs6000_function_arg_padding): ...this.  Make static.  Return
16775         pad_direction instead of direction.
16776         (rs6000_return_in_msb): Use rs6000_function_arg_padding.
16777         * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
16778         * config/s390/s390.c (s390_function_arg_padding): New function.
16779         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16780         * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
16781         * config/sparc/sparc-protos.h (function_arg_padding): Delete.
16782         * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
16783         (function_arg_padding): Rename to...
16784         (sparc_function_arg_padding): ...this.  Make static.  Return
16785         pad_direction instead of direction.
16786         * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
16787         * config/spu/spu.c (spu_function_arg_padding): New function.
16788         (TARGET_FUNCTION_ARG_PADDING): Redefine.
16789         * system.h (FUNCTION_ARG_PADDING): Poison.
16790
16791 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16792             Alan Hayward  <alan.hayward@arm.com>
16793             David Sherwood  <david.sherwood@arm.com>
16794
16795         * target.def (modes_tieable_p): New hook.
16796         * doc/tm.texi (MODES_TIEABLE_P): Replace with...
16797         (TARGET_MODES_TIEABLE_P): ...this.
16798         * doc/tm.texi.in: Regenerate.
16799         * hooks.h (hook_bool_mode_mode_true): Declare.
16800         * hooks.c (hook_bool_mode_mode_true): New function.
16801         * combine.c (subst): Use targetm.modes_tieable_p instead of
16802         MODES_TIEABLE_P.
16803         * dse.c (find_shift_sequence): Likewise.
16804         * expmed.c (extract_low_bits): Likewise.
16805         * lower-subreg.c: Include target.h.
16806         (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
16807         MODES_TIEABLE_P.
16808         * rtlanal.c (rtx_cost): Likewise.
16809         * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
16810         * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
16811         * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
16812         (TARGET_MODES_TIEABLE_P): Redefine.
16813         * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
16814         * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
16815         (TARGET_MODES_TIEABLE_P): Redefine.
16816         * config/arc/arc.h (MODES_TIEABLE_P): Delete.
16817         * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
16818         (arc_modes_tieable_p): New function.
16819         * config/arm/arm.h (MODES_TIEABLE_P): Delete.
16820         * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
16821         * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
16822         (arm_modes_tieable_p): Make static.
16823         * config/avr/avr.h (MODES_TIEABLE_P): Delete.
16824         * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
16825         * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
16826         (TARGET_MODES_TIEABLE_P): Redefine.
16827         * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
16828         * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
16829         (TARGET_MODES_TIEABLE_P): Redefine.
16830         * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
16831         * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
16832         (cr16_modes_tieable_p): New function.
16833         * config/cris/cris.h (MODES_TIEABLE_P): Delete.
16834         * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
16835         * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
16836         (TRULY_NOOP_TRUNCATION): Update comment.
16837         * config/frv/frv.h (MODES_TIEABLE_P): Delete.
16838         (TRULY_NOOP_TRUNCATION): Update comment.
16839         * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
16840         (frv_modes_tieable_p): New function.
16841         * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
16842         * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
16843         * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
16844         (TARGET_MODES_TIEABLE_P): Redefine.
16845         * config/i386/i386.h (MODES_TIEABLE_P): Delete.
16846         * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
16847         * config/i386/i386.c (ix86_modes_tieable_p): Make static.
16848         (TARGET_MODES_TIEABLE_P): Redefine.
16849         * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
16850         * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
16851         (ia64_modes_tieable_p): New function.
16852         * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
16853         * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
16854         (iq2000_modes_tieable_p): New function.
16855         * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
16856         * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
16857         (lm32_modes_tieable_p): New function.
16858         * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
16859         * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
16860         * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
16861         (TARGET_MODES_TIEABLE_P): Redefine.
16862         * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
16863         * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
16864         (m32r_modes_tieable_p): New function.
16865         * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
16866         * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
16867         (m68k_modes_tieable_p): New function.
16868         * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
16869         * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
16870         (mcore_modes_tieable_p): New function.
16871         * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
16872         * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
16873         function.
16874         (TARGET_MODES_TIEABLE_P): Redefine.
16875         * config/mips/mips.h (MODES_TIEABLE_P): Delete.
16876         * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
16877         * config/mips/mips.c (mips_modes_tieable_p): Make static.
16878         (TARGET_MODES_TIEABLE_P): Redefine.
16879         * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
16880         * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
16881         * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
16882         * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
16883         (mn10300_modes_tieable_p): ...this and make static.
16884         (TARGET_MODES_TIEABLE_P): Redefine.
16885         * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
16886         * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
16887         * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
16888         * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
16889         (msp430_modes_tieable_p): Make static.
16890         * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
16891         * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
16892         (TARGET_MODES_TIEABLE_P): Redefine.
16893         * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
16894         * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
16895         * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
16896         (TARGET_MODES_TIEABLE_P): Redefine.
16897         * config/pa/pa.h (MODES_TIEABLE_P): Delete.
16898         * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
16899         * config/pa/pa.c (pa_modes_tieable_p): Make static.
16900         (TARGET_MODES_TIEABLE_P): Redefine.
16901         * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
16902         * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
16903         (pdp11_modes_tieable_p): New function.
16904         * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
16905         * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
16906         (rs6000_modes_tieable_p): New function.
16907         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16908         * config/powerpcspe/powerpcspe.md: Update comment.
16909         * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
16910         * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
16911         (TARGET_MODES_TIEABLE_P): Redefine.
16912         * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
16913         * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
16914         (rl78_modes_tieable_p): New function.
16915         * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
16916         * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
16917         (rs6000_modes_tieable_p): New function.
16918         (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
16919         * config/rs6000/rs6000.md: Update comment.
16920         * config/rx/rx.h (MODES_TIEABLE_P): Delete.
16921         * config/rx/rx.c (rx_modes_tieable_p): New function.
16922         (TARGET_MODES_TIEABLE_P): Redefine.
16923         * config/s390/s390.h (MODES_TIEABLE_P): Delete.
16924         * config/s390/s390.c (s390_modes_tieable_p): New function.
16925         (TARGET_MODES_TIEABLE_P): Redefine.
16926         * config/sh/sh.h (MODES_TIEABLE_P): Delete.
16927         * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
16928         (sh_modes_tieable_p): New function.
16929         * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
16930         * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
16931         * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
16932         (sparc_modes_tieable_p): Make static.
16933         * config/spu/spu.h (MODES_TIEABLE_P): Delete.
16934         * config/spu/spu.c (spu_modes_tieable_p): New function.
16935         (TARGET_MODES_TIEABLE_P): Redefine.
16936         * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
16937         * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
16938         (TARGET_MODES_TIEABLE_P): Redefine.
16939         * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
16940         * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
16941         * config/v850/v850.h (MODES_TIEABLE_P): Delete.
16942         * config/v850/v850.c (v850_modes_tieable_p): New function.
16943         (TARGET_MODES_TIEABLE_P): Redefine.
16944         * config/vax/vax.h (MODES_TIEABLE_P): Delete.
16945         * config/visium/visium.h (MODES_TIEABLE_P): Delete.
16946         * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
16947         (visium_modes_tieable_p): New function.
16948         * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
16949         * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
16950         (xtensa_modes_tieable_p): New function.
16951         * system.h (MODES_TIEABLE_P): Poison.
16952
16953 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
16954             Alan Hayward  <alan.hayward@arm.com>
16955             David Sherwood  <david.sherwood@arm.com>
16956
16957         * target.def (hard_regno_mode_ok): New hook.
16958         * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
16959         (TARGET_HARD_REGNO_MODE_OK): ...this.
16960         * doc/tm.texi.in: Regenerate.
16961         * hooks.h (hook_bool_uint_mode_true): Declare.
16962         * hooks.c (hook_bool_uint_mode_true): New function.
16963         * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
16964         HARD_REGNO_MODE_OK.
16965         * genpreds.c (write_insn_preds_c): Add an include of target.h.
16966         * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
16967         instead of HARD_REGNO_MODE_OK.
16968         * caller-save.c: Include target.h.
16969         (reg_save_code): Use targetm.hard_regno_mode_ok instead of
16970         HARD_REGNO_MODE_OK.
16971         * combine.c (can_combine_p): Likewise.
16972         (combinable_i3pat): Likewise.
16973         (can_change_dest_mode): Likewise.
16974         * expr.c (init_expr_target): Likewise.
16975         (convert_move): Likewise.
16976         (convert_modes): Likewise.
16977         * ira.c (setup_prohibited_class_mode_regs): Likewise.
16978         (setup_prohibited_mode_move_regs): Likewise.
16979         * ira.h (target_ira): Likewise.
16980         * lra-assigns.c (find_hard_regno_for_1): Likewise.
16981         * lra-constraints.c (process_alt_operands): Likewise.
16982         (split_reg): Likewise.
16983         * recog.c (peep2_find_free_register): Likewise.
16984         * ree.c (combine_reaching_defs): Likewise.
16985         * regcprop.c (maybe_mode_change): Likewise.
16986         * reginfo.c (init_reg_sets_1): Likewise.
16987         (choose_hard_reg_mode): Likewise.
16988         (simplifiable_subregs): Likewise.
16989         * regrename.c (check_new_reg_p): Likewise.
16990         * reload.c (find_valid_class): Likewise.
16991         (find_valid_class_1): Likewise.
16992         (reload_inner_reg_of_subreg): Likewise.
16993         (push_reload): Likewise.
16994         (combine_reloads): Likewise.
16995         (find_dummy_reload): Likewise.
16996         (find_reloads): Likewise.
16997         * reload1.c (find_reg): Likewise.
16998         (set_reload_reg): Likewise.
16999         (allocate_reload_reg): Likewise.
17000         (choose_reload_regs): Likewise.
17001         (reload_adjust_reg_for_temp): Likewise.
17002         * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
17003         (simplify_subreg_regno): Likewise.
17004         * sel-sched.c (init_regs_for_mode): Likewise.
17005         * varasm.c (make_decl_rtl): Likewise.
17006         * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
17007         (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
17008         HARD_REGNO_MODE_OK.
17009         * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
17010         * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
17011         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17012         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
17013         * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
17014         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17015         * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
17016         (arc_mode_class): Delete.
17017         (HARD_REGNO_MODE_OK): Delete.
17018         * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17019         (arc_hard_regno_mode_ok): Rename old array to...
17020         (arc_hard_regno_mode_ok_modes): ...this.
17021         (arc_conditional_register_usage): Update accordingly.
17022         (arc_mode_class): Make static.
17023         (arc_hard_regno_mode_ok): New function.
17024         * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
17025         * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
17026         * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17027         (arm_hard_regno_mode_ok): Make static.
17028         * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
17029         HARD_REGNO_MODE_OK.
17030         * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
17031         * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
17032         * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
17033         return a bool.
17034         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17035         * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
17036         * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
17037         * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
17038         (bfin_hard_regno_mode_ok): ...this.  Make static and return a bool.
17039         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17040         * config/bfin/predicates.md (valid_reg_operand): Use
17041         targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
17042         * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
17043         * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
17044         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17045         * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
17046         * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
17047         * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17048         (cr16_hard_regno_mode_ok): Make static and return a bool.
17049         * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
17050         * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17051         (cris_hard_regno_mode_ok): New function.
17052         * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
17053         (epiphany_mode_class): Delete.
17054         (HARD_REGNO_MODE_OK): Delete.
17055         * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
17056         * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17057         (hard_regno_mode_ok): Rename to...
17058         (epiphany_hard_regno_mode_ok): ...this.  Make static and return a bool.
17059         * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
17060         * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
17061         HARD_REGNO_MODE_OK.
17062         * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
17063         * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
17064         * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17065         (frv_hard_regno_mode_ok): Make static and return a bool.
17066         * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
17067         HARD_REGNO_MODE_OK.
17068         * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
17069         * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
17070         * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
17071         * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
17072         and return a bool.
17073         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17074         * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
17075         * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
17076         * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
17077         return a bool.
17078         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17079         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
17080         * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17081         (ia64_hard_regno_mode_ok): New function.
17082         * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
17083         * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17084         (iq2000_hard_regno_mode_ok): New function.
17085         * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
17086         * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17087         (lm32_hard_regno_mode_ok): New function.
17088         * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
17089         * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
17090         * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
17091         instead of HARD_REGNO_MODE_OK.
17092         (m32c_hard_regno_ok): Rename to...
17093         (m32c_hard_regno_mode_ok): ...this.  Make static and return a bool.
17094         (m32c_cannot_change_mode_class): Update accordingly.
17095         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17096         * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
17097         (m32r_mode_class): Delete.
17098         (HARD_REGNO_MODE_OK): Delete.
17099         * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17100         (m32r_hard_regno_mode_ok): Rename to...
17101         (m32r_hard_regno_modes): ...this.
17102         (m32r_mode_class): Make static.
17103         (m32r_hard_regno_mode_ok): New function.
17104         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
17105         * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
17106         * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17107         (m68k_hard_regno_mode_ok): Make static.
17108         * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
17109         * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17110         (mcore_hard_regno_mode_ok): New function.
17111         * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
17112         (HARD_REGNO_MODE_OK): Delete.
17113         * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
17114         Rename to...
17115         (microblaze_hard_regno_mode_ok_p): ...this and make static.
17116         (microblaze_hard_regno_mode_ok): New function.
17117         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17118         * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
17119         (mips_hard_regno_mode_ok): Delete.
17120         * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
17121         (mips_hard_regno_mode_ok_p): ...this and make static.
17122         (mips_hard_regno_mode_ok_p): Rename to...
17123         (mips_hard_regno_mode_ok_uncached): ...this.
17124         (mips_hard_regno_mode_ok): New function.
17125         (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
17126         of HARD_REGNO_MODE_OK.
17127         (mips_option_override): Update after above name changes.
17128         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17129         * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
17130         * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
17131         * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
17132         * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
17133         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17134         * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
17135         * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
17136         * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
17137         * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17138         (msp430_hard_regno_mode_ok): Make static and return a bool.
17139         * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
17140         * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
17141         * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
17142         and return a bool.
17143         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17144         * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
17145         * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
17146         * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
17147         * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
17148         (PA_HARD_REGNO_MODE_OK): ...this
17149         * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
17150         (PA_HARD_REGNO_MODE_OK): ...this.
17151         * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17152         (pa_hard_regno_mode_ok): New function.
17153         * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
17154         * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17155         (pdp11_hard_regno_mode_ok): New function.
17156         * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
17157         * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
17158         Delete.
17159         * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
17160         Make static.
17161         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17162         (rs6000_hard_regno_mode_ok): Rename to...
17163         (rs6000_hard_regno_mode_ok_uncached): ...this.
17164         (rs6000_init_hard_regno_mode_ok): Update accordingly.
17165         (rs6000_hard_regno_mode_ok): New function.
17166         * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
17167         * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
17168         * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
17169         (riscv_hard_regno_mode_ok): ...this and make static.
17170         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17171         * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
17172         * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
17173         * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17174         (rl78_hard_regno_mode_ok): Make static and return bool.
17175         * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
17176         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
17177         Delete.
17178         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
17179         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17180         (rs6000_hard_regno_mode_ok): Rename to...
17181         (rs6000_hard_regno_mode_ok_uncached): ...this.
17182         (rs6000_init_hard_regno_mode_ok): Update accordingly.
17183         (rs6000_hard_regno_mode_ok): New function.
17184         * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
17185         * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
17186         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17187         * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
17188         * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
17189         * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
17190         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17191         * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
17192         * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
17193         * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17194         (sh_hard_regno_mode_ok): Make static.
17195         * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
17196         instead of HARD_REGNO_MODE_OK.
17197         * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
17198         (sparc_mode_class): Delete.
17199         (HARD_REGNO_MODE_OK): Delete.
17200         * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17201         (hard_regno_mode_classes): Make static.
17202         (sparc_mode_class): Likewise.
17203         (sparc_hard_regno_mode_ok): New function.
17204         * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
17205         * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
17206         * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
17207         function.
17208         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17209         * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
17210         * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
17211         * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
17212         * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
17213         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17214         * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
17215         * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
17216         * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
17217         (visium_hard_regno_mode_ok): New function.
17218         * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
17219         instead of HARD_REGNO_MODE_OK.
17220         * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
17221         (HARD_REGNO_MODE_OK): Delete.
17222         * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
17223         (xtensa_hard_regno_mode_ok_p): ...this and make static.
17224         (xtensa_option_override): Update accordingly.
17225         (TARGET_HARD_REGNO_MODE_OK): Redefine.
17226         (xtensa_hard_regno_mode_ok): New function.
17227         * system.h (HARD_REGNO_MODE_OK): Poison.
17228
17229 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
17230             Alan Hayward  <alan.hayward@arm.com>
17231             David Sherwood  <david.sherwood@arm.com>
17232
17233         * target.def (hard_regno_call_part_clobbered): New hook.
17234         * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
17235         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
17236         * doc/tm.texi: Regenerate.
17237         * hooks.h (hook_bool_uint_mode_false): Declare.
17238         * hooks.c (hook_bool_uint_mode_false): New function.
17239         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17240         * cselib.c (cselib_process_insn): Use
17241         targetm.hard_regno_call_part_clobbered instead of
17242         HARD_REGNO_CALL_PART_CLOBBERED.
17243         * ira-conflicts.c (ira_build_conflicts): Likewise.
17244         * ira-costs.c (ira_tune_allocno_costs): Likewise.
17245         * lra-constraints.c (need_for_call_save_p): Likewise.
17246         * lra-lives.c: Include target.h.
17247         (check_pseudos_live_through_calls): Use
17248         targetm.hard_regno_call_part_clobbered instead of
17249         HARD_REGNO_CALL_PART_CLOBBERED.
17250         * regcprop.c: Include target.h.
17251         (copyprop_hardreg_forward_1): Use
17252         targetm.hard_regno_call_part_clobbered instead of
17253         HARD_REGNO_CALL_PART_CLOBBERED.
17254         * reginfo.c (choose_hard_reg_mode): Likewise.
17255         * regrename.c (check_new_reg_p): Likewise.
17256         * reload.c (find_equiv_reg): Likewise.
17257         * reload1.c (emit_reload_insns): Likewise.
17258         * sched-deps.c (deps_analyze_insn): Likewise.
17259         * sel-sched.c (init_regs_for_mode): Likewise.
17260         (mark_unavailable_hard_regs): Likewise.
17261         * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
17262         * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17263         * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
17264         New function.
17265         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17266         * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17267         * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
17268         Delete.
17269         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
17270         and return a bool.
17271         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17272         * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17273         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
17274         function.
17275         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17276         * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17277         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
17278         function.
17279         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17280         * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
17281         Delete.
17282         * config/powerpcspe/powerpcspe.c
17283         (rs6000_hard_regno_call_part_clobbered): New function.
17284         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17285         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17286         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
17287         New function.
17288         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17289         * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17290         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
17291         function.
17292         (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
17293         * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
17294         * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
17295
17296 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
17297             Alan Hayward  <alan.hayward@arm.com>
17298             David Sherwood  <david.sherwood@arm.com>
17299
17300         * rtl.h (subreg_memory_offset): Declare.
17301         * emit-rtl.c (subreg_memory_offset): New function.
17302         * expmed.c (store_bit_field_1): Use it.
17303         * expr.c (undefined_operand_subword_p): Likewise.
17304         * simplify-rtx.c (simplify_subreg): Likewise.
17305
17306 2017-09-04  Alexander Monakov  <amonakov@ispras.ru>
17307
17308         PR rtl-optimization/57448
17309         PR target/67458
17310         PR target/81316
17311         * optabs.c (expand_atomic_load): Place compiler memory barriers if
17312         using atomic_load pattern.
17313         (expand_atomic_store): Likewise.
17314
17315 2017-09-04  Jakub Jelinek  <jakub@redhat.com>
17316
17317         PR sanitizer/81981
17318         * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
17319         and UBSAN_BOUNDS internal calls.  Clean up IFN_UBSAN_OBJECT_SIZE
17320         handling.  Use replace_call_with_value with NULL instead of
17321         gsi_replace, unlink_stmt_vdef and release_defs.
17322
17323         * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
17324         instead of tab.
17325
17326         * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
17327
17328 2017-09-04  Richard Sandiford  <richard.sandiford@linaro.org>
17329
17330         PR bootstrap/82045
17331         * rtl.h (emit_library_call_value_1): Declare.
17332         (emit_library_call): Replace declaration with a series of overloads.
17333         Remove the parameter count argument.
17334         (emit_library_call_value): Likewise.
17335         * calls.c (emit_library_call_value_1): Make global.  Replace varargs
17336         with an "rtx_mode_t *".
17337         (emit_library_call_value): Delete.
17338         (emit_library_call): Likewise.
17339         * asan.c (asan_emit_stack_protection): Update calls accordingly.
17340         (asan_emit_allocas_unpoison): Likewise.
17341         * builtins.c (expand_builtin_powi): Likewise.
17342         (expand_asan_emit_allocas_unpoison): Likewise.
17343         * cfgexpand.c (expand_main_function): Likewise.
17344         * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
17345         * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
17346         * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
17347         * config/arm/arm.c (arm_trampoline_init): Likewise.
17348         (arm_call_tls_get_addr): Likewise.
17349         (arm_expand_divmod_libfunc): Likewise.
17350         * config/bfin/bfin.md (umulsi3_highpart): Likewise.
17351         (smulsi3_highpart): Likewise.
17352         * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
17353         (c6x_expand_compare): Likewise.
17354         (c6x_expand_movmem): Likewise.
17355         * config/frv/frv.c (frv_trampoline_init): Likewise.
17356         * config/i386/i386.c (ix86_trampoline_init): Likewise.
17357         (ix86_expand_divmod_libfunc): Likewise.
17358         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
17359         (ia64_expand_compare): Likewise.
17360         (ia64_profile_hook): Likewise.
17361         * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
17362         (nonlocal_goto): Likewise.
17363         (restore_stack_nonlocal): Likewise.
17364         * config/m32r/m32r.c (block_move_call): Likewise.
17365         (m32r_trampoline_init): Likewise.
17366         * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
17367         * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
17368         (m68k_call_m68k_read_tp): Likewise.
17369         * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
17370         (microblaze_expand_divide): Likewise.
17371         * config/mips/mips.h (mips_args): Likewise.
17372         * config/mips/sdemtk.h (mips_sync_icache): Likewise.
17373         (MIPS_ICACHE_SYNC): Likewise.
17374         * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
17375         (nios2_trampoline_init): Likewise.
17376         * config/pa/pa.c (hppa_tls_call): Likewise.
17377         (pa_trampoline_init): Likewise.
17378         * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
17379         * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
17380         (expand_strn_compare): Likewise.
17381         (rs6000_generate_compare): Likewise.
17382         (rs6000_expand_float128_convert): Likewise.
17383         (output_profile_hook): Likewise.
17384         (rs6000_trampoline_init): Likewise.
17385         * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
17386         * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
17387         * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
17388         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
17389         (rs6000_generate_compare): Likewise.
17390         (rs6000_expand_float128_convert): Likewise.
17391         (output_profile_hook): Likewise.
17392         (rs6000_trampoline_init): Likewise.
17393         * config/rs6000/rs6000.md (neg<mode>2): Likewise.
17394         * config/sh/sh.c (sh_trampoline_init): Likewise.
17395         * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
17396         (sparc_emit_float_lib_cmp): Likewise.
17397         (sparc32_initialize_trampoline): Likewise.
17398         (sparc64_initialize_trampoline): Likewise.
17399         (sparc_profile_hook): Likewise.
17400         * config/spu/spu.c (ea_load_store): Likewise.
17401         * config/spu/spu.md (floatunssidf2): Likewise.
17402         * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
17403         * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
17404         * config/visium/visium.c (expand_block_move_4): Likewise.
17405         (expand_block_move_2): Likewise.
17406         (expand_block_move_1): Likewise.
17407         (expand_block_set_4): Likewise.
17408         (expand_block_set_2): Likewise.
17409         (expand_block_set_1): Likewise.
17410         (visium_trampoline_init): Likewise.
17411         (visium_profile_hook): Likewise.
17412         * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
17413         (xtensa_setup_frame_addresses): Likewise.
17414         (xtensa_trampoline_init): Likewise.
17415         * except.c (sjlj_emit_function_enter): Likewise.
17416         (sjlj_emit_function_exit): Likewise.
17417         * explow.c (allocate_dynamic_stack_space): Likewise.
17418         (probe_stack_range): Likewise.
17419         * expr.c (convert_mode_scalar): Likewise.
17420         * optabs.c (expand_binop): Likewise.
17421         (expand_twoval_binop_libfunc): Likewise.
17422         (expand_unop): Likewise.
17423         (prepare_cmp_insn): Likewise.
17424         (prepare_float_lib_cmp): Likewise.
17425         (expand_float): Likewise.
17426         (expand_fix): Likewise.
17427         (expand_fixed_convert): Likewise.
17428         (maybe_emit_sync_lock_test_and_set): Likewise.
17429         (expand_atomic_compare_and_swap): Likewise.
17430         (expand_mem_thread_fence): Likewise.
17431         (expand_atomic_fetch_op): Likewise.
17432
17433 2017-09-03  Gerald Pfeifer  <gerald@pfeifer.com>
17434
17435         * doc/generic.texi (OpenACC): Adjust URL.
17436         * doc/invoke.texi (C Dialect Options): Ditto.
17437
17438 2017-09-03  Uros Bizjak  <ubizjak@gmail.com>
17439
17440         * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
17441         predicate for operand 1.  Add (m,<S>) constraint.
17442         (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
17443         Prevent memory operand 1 with register operand 2.
17444
17445 2017-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
17446
17447         PR rtl-optimization/82024
17448         * combine.c (try_combine): If the combination result is a PARALLEL,
17449         and we only need to retain the SET in there that would be placed
17450         at I2, check that we can place that at I3 instead, before doing so.
17451
17452 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
17453
17454         PR target/81766
17455         * config/i386/i386.c (ix86_init_large_pic_reg): Return label
17456         instead of void.
17457         (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
17458         if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
17459         and label.
17460
17461 2017-09-01  Joerg Sonnenberger  <joerg@bec.de>
17462             Jeff Law  <law@redhat.com>
17463
17464         * varasm.c (bss_initializer_p): Do not put constants into .bss
17465         (categorize_decl_for_section): Handle bss_initializer_p returning
17466         false when DECL_INITIAL is NULL.
17467
17468 2017-09-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
17469
17470         PR target/82012
17471         * config/s390/s390.c (s390_can_inline_p): New function.
17472
17473 2017-09-01  Jeff Law  <law@redhat.com>
17474
17475         PR tree-optimization/82052
17476         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
17477         Always initialize the returned slot after a hash table miss
17478         when INSERT is true.
17479
17480 2017-09-01  Alexander Monakov  <amonakov@ispras.ru>
17481
17482         * config/s390/s390.md (mem_signal_fence): Remove.
17483         * doc/md.texi (mem_signal_fence): Remove.
17484         * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
17485         Update comments.
17486         * target-insns.def (mem_signal_fence): Remove.
17487
17488 2017-09-01  Jakub Jelinek  <jakub@redhat.com>
17489
17490         PR sanitizer/81902
17491         * doc/invoke.texi: Document -fsanitize=pointer-overflow.
17492
17493         PR sanitizer/81923
17494         * asan.c (create_odr_indicator): Strip name encoding from assembler
17495         name before appending it after __odr_asan_.
17496
17497 2017-09-01  Martin Liska  <mliska@suse.cz>
17498
17499         PR tree-optimization/82059
17500         * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
17501         frequency only when an edge is redirected.
17502
17503 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17504
17505         * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
17506         * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
17507         (arc_conditional_register_usage): Remove ARC600 lp_count
17508         exception.
17509         (arc_file_start): Emit Tag_ARC_CPU_variation.
17510         (arc_can_use_doloop_p): New conditions to use ZOLs.
17511         (hwloop_fail): New function.
17512         (hwloop_optimize): Likewise.
17513         (hwloop_pattern_reg): Likewise.
17514         (arc_doloop_hooks): New struct, to be used with reorg_loops.
17515         (arc_reorg_loops): New function, calls reorg_loops.
17516         (arc_reorg): Call arc_reorg_loops.  Remove old ZOL handling.
17517         (arc600_corereg_hazard): Remove ZOL checking, case handled by
17518         hwloop_optimize.
17519         (arc_loop_hazard): Remove function, functionality moved into
17520         hwloop_optimize.
17521         (arc_hazard): Remove arc_loop_hazard call.
17522         (arc_adjust_insn_length): Remove ZOL handling, functionality moved
17523         into hwloop_optimize.
17524         (arc_label_align): Remove ZOL handling.
17525         * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
17526         * config/arc/arc.md (doloop_begin): Remove pattern.
17527         (doloop_begin_i): Likewise.
17528         (doloop_end_i): Likewise.
17529         (doloop_fallback): Likewise.
17530         (doloop_fallback_m): Likewise.
17531         (doloop_end): Reimplement expand.
17532         (arc_lp): New pattern for LP instruction.
17533         (loop_end): New pattern.
17534         (loop_fail): Likewise.
17535         (decrement_and_branch_until_zero): Likewise.
17536         * config/arc/arc.opt (mlpc-width): New option.
17537         * doc/invoke.texi (mlpc-width): Document option.
17538
17539 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17540
17541         * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
17542         (arc_ccfsm_advance): Fix checking for delay slots.
17543         (arc_reorg): Add rtl dump after each call to arc_ifcvt.
17544
17545 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17546
17547         * config/arc/arc.md (movqi_insn): Add stores to save constant long
17548         immediates.
17549         (movhi_insn): Update store instruction constraint which are saving
17550         6-bit short immediates.
17551         (movsi_insn): Consider also short scaled load operations.
17552         (zero_extendhisi2_i): Use Usd constraint instead of T.
17553         (extendhisi2_i): Add q constraint.
17554         (arc_clzsi2): Add type and length attributes.
17555         (arc_ctzsi2): Likewise.
17556         * config/arc/constraints.md (Usc): Update constraint, the
17557         assembler can parse two relocations for a single instruction.
17558
17559 2017-09-01  Claudiu Zissulescu  <claziss@synopsys.com>
17560
17561         * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
17562         (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
17563
17564 2017-08-31  Olivier Hainque  <hainque@adacore.com>
17565
17566         * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
17567         match as powerpc-wrs-vxworks*.
17568
17569 2017-08-31  James Greenhalgh  <james.greenhalgh@arm.com>
17570
17571         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
17572         register constraint for by-element operand.
17573         (aarch64_mls_elt_merge<mode>): Likewise.
17574
17575 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17576
17577         * config/arc/arc.c (arc_can_follow_jump): Check for short
17578         branches.
17579
17580 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17581
17582         * config.gcc: Use g.opt for arc.
17583         * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
17584         functionality moved to ...
17585         (legitimate_scaled_address_p): New function, ...here.
17586         (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
17587         (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
17588         (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
17589         condition.
17590         (arc_override_options): Handle G option.
17591         (arc_output_pic_addr_const): Correct function definition.
17592         (arc_legitimate_address_p): Use legitimate_scaled_address_p.
17593         (arc_decl_anon_ns_mem_p): Delete.
17594         (arc_in_small_data_p): Overhaul this function to take into
17595         consideration the value given via G option.
17596         (arc_rewrite_small_data_1): Renamed and corrected old
17597         arc_rewrite_small_data function.
17598         (arc_rewrite_small_data): New function.
17599         (small_data_pattern): Don't use pic_offset_table_rtx.
17600         * config/arc/arc.h (CC1_SPEC): Recognize G option.
17601         * config/arc/simdext.md (movmisalignv2hi): Use
17602         prepare_move_operands function.
17603         (mov*): Likewise.
17604         (movmisalign*): Likewise.
17605         * doc/invoke.texi (ARC options): Document -G option.
17606
17607 2017-08-31  Claudiu Zissulescu  <claziss@synopsys.com>
17608
17609         * config/arc/arc-protos.h (compact_sda_memory_operand): Update
17610         prototype.
17611         * config/arc/arc.c (arc_print_operand): Output scalled address for
17612         sdata whenever is possible.
17613         (arc_in_small_data_p): Allow sdata for 64bit datum when double
17614         load/stores are available.
17615         (compact_sda_memory_operand): Check for the alignment required by
17616         code density instructions.
17617         * config/arc/arc.md (movsi_insn): Use newly introduced Us0
17618         constraint.
17619         * config/arc/constraints.md (Usd): Update constraint.
17620         (Us0): New constraint.
17621         (Usc): Update constraint.
17622
17623 2017-08-31  Richard Biener  <rguenther@suse.de>
17624
17625         PR middle-end/82054
17626         * dwarf2out.c (dwarf2out_early_global_decl): Process each
17627         function only once.
17628
17629 2017-08-31  Tamar Christina  <tamar.christina@arm.com>
17630
17631         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
17632         Resize type_signature.
17633
17634 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17635             Alan Hayward  <alan.hayward@arm.com>
17636             David Sherwood  <david.sherwood@arm.com>
17637
17638         * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
17639         subregs whose inner modes can be stored in GPRs.
17640         (aarch64_classify_index): Likewise.
17641
17642 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17643             Alan Hayward  <alan.hayward@arm.com>
17644             David Sherwood  <david.sherwood@arm.com>
17645
17646         * config/aarch64/iterators.md (V_cmp_result): Rename to...
17647         (V_INT_EQUIV): ...this.
17648         (v_cmp_result): Rename to...
17649         (v_int_equiv): ...this.
17650         * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
17651         * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
17652         (copysign<mode>3): Likewise.
17653         (aarch64_simd_bsl<mode>_internal): Likewise.
17654         (aarch64_simd_bsl<mode>): Likewise.
17655         (vec_cmp<mode><mode>): Likewise.
17656         (vcond<mode><mode>): Likewise.
17657         (vcond<v_cmp_mixed><mode>): Likewise.
17658         (vcondu<mode><v_cmp_mixed>): Likewise.
17659         (aarch64_cm<optab><mode>): Likewise.
17660         (aarch64_cmtst<mode>): Likewise.
17661         (aarch64_fac<optab><mode>): Likewise.
17662         (vec_perm_const<mode>): Likewise.
17663         (vcond_mask_<mode><v_cmp_result>): Rename to...
17664         (vcond_mask_<mode><v_int_equiv>): ...this.
17665         (vec_cmp<mode><v_cmp_result>): Rename to...
17666         (vec_cmp<mode><v_int_equiv>): ...this.
17667
17668 2017-08-31  Richard Sandiford  <richard.sandiford@linaro.org>
17669             Alan Hayward  <alan.hayward@arm.com>
17670             David Sherwood  <david.sherwood@arm.com>
17671
17672         * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
17673         vector modes.
17674         * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
17675         * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
17676         (UNSPEC_LD4_DREG): New unspecs.
17677         * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
17678         (aarch64_ld2<mode>_dreg_be): Replace with...
17679         (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
17680         unspec.
17681         (aarch64_ld3<mode>_dreg_le)
17682         (aarch64_ld3<mode>_dreg_be): Replace with...
17683         (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
17684         unspec.
17685         (aarch64_ld4<mode>_dreg_le)
17686         (aarch64_ld4<mode>_dreg_be): Replace with...
17687         (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
17688         unspec.
17689
17690 2017-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17691
17692         PR tree-optimization/81987
17693         * gimple-ssa-strength-reduction.c (insert_initializers): Don't
17694         insert an initializer in a location not dominated by the stride
17695         definition.
17696
17697 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
17698
17699         * tree-eh.c (lower_try_finally_switch): Set the location of the finally
17700         on the entire header of the finally block in the fallthru case.
17701
17702 2017-08-30  Eric Botcazou  <ebotcazou@adacore.com>
17703
17704         * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
17705
17706 2017-08-30  Pat Haugen  <pthaugen@us.ibm.com>
17707
17708         * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
17709         rs6000_emit_move_from_cr and call renamed function.
17710         (rs6000_emit_prologue): Call renamed functions.
17711         * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
17712         movesi_from_cr, remove volatile CRs.
17713
17714 2017-08-30  Jon Beniston  <jon@beniston.com>
17715             Richard Biener  <rguenther@suse.de>
17716
17717         * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
17718         of VECTOR_MODE_P check.
17719         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
17720         element vector types.
17721
17722 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17723
17724         * df.h (df_read_modify_subreg_p): Remove in favor of...
17725         * rtl.h (read_modify_subreg_p): ...this new function.  Take a
17726         const_rtx instead of an rtx.
17727         * cprop.c (local_cprop_find_used_regs): Update accordingly.
17728         * df-problems.c (df_word_lr_mark_ref): Likewise.
17729         * ira-lives.c (mark_pseudo_reg_live): Likewise.
17730         (mark_pseudo_reg_dead): Likewise.
17731         (mark_ref_dead): Likewise.
17732         * reginfo.c (init_subregs_of_mode): Likewise.
17733         * sched-deps.c (sched_analyze_1): Likewise.
17734         * df-scan.c (df_def_record_1): Likewise.
17735         (df_uses_record): Likewise.
17736         (df_read_modify_subreg_p): Remove in favor of...
17737         * rtlanal.c (read_modify_subreg_p): ...this new function.  Take a
17738         const_rtx instead of an rtx.
17739
17740 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17741             Alan Hayward  <alan.hayward@arm.com>
17742             David Sherwood  <david.sherwood@arm.com>
17743
17744         * rtl.h (partial_subreg_p): New function.
17745         * caller-save.c (save_call_clobbered_regs): Use it.
17746         * calls.c (expand_call): Likewise.
17747         * combine.c (combinable_i3pat): Likewise.
17748         (simplify_set): Likewise.
17749         (make_extraction): Likewise.
17750         (make_compound_operation_int): Likewise.
17751         (gen_lowpart_or_truncate): Likewise.
17752         (force_to_mode): Likewise.
17753         (make_field_assignment): Likewise.
17754         (reg_truncated_to_mode): Likewise.
17755         (record_truncated_value): Likewise.
17756         (move_deaths): Likewise.
17757         * cse.c (record_jump_cond): Likewise.
17758         (cse_insn): Likewise.
17759         * cselib.c (cselib_lookup_1): Likewise.
17760         * expmed.c (extract_bit_field_using_extv): Likewise.
17761         * function.c (assign_parm_setup_reg): Likewise.
17762         * ifcvt.c (noce_convert_multiple_sets): Likewise.
17763         * ira-build.c (create_insn_allocnos): Likewise.
17764         * lra-coalesce.c (merge_pseudos): Likewise.
17765         * lra-constraints.c (match_reload): Likewise.
17766         (simplify_operand_subreg): Likewise.
17767         (curr_insn_transform): Likewise.
17768         * lra-lives.c (process_bb_lives): Likewise.
17769         * lra.c (new_insn_reg): Likewise.
17770         (lra_substitute_pseudo): Likewise.
17771         * regcprop.c (mode_change_ok): Likewise.
17772         (maybe_mode_change): Likewise.
17773         (copyprop_hardreg_forward_1): Likewise.
17774         * reload.c (push_reload): Likewise.
17775         (find_reloads): Likewise.
17776         (find_reloads_subreg_address): Likewise.
17777         * reload1.c (alter_reg): Likewise.
17778         (eliminate_regs_1): Likewise.
17779         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
17780
17781 2017-08-30  David Edelsohn  <dje.gcc@gmail.com>
17782
17783         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
17784         back to if statements, including unpack.
17785
17786 2017-08-30  Martin Liska  <mliska@suse.cz>
17787
17788         PR inline-asm/82001
17789         * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
17790         Rename to ...
17791         (func_checker::compare_asm_inputs_outputs): ... this function.
17792         (func_checker::compare_gimple_asm): Use the function to compare
17793         also ASM constrains.
17794         * ipa-icf-gimple.h: Rename the function.
17795
17796 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17797             Alan Hayward  <alan.hayward@arm.com>
17798             David Sherwood  <david.sherwood@arm.com>
17799
17800         * coretypes.h (complex_mode): New type.
17801         * gdbhooks.py (build_pretty_printer): Handle it.
17802         * machmode.h (complex_mode): New class.
17803         (complex_mode::includes_p): New function.
17804         (is_complex_int_mode): Likewise.
17805         (is_complex_float_mode): Likewise.
17806         * genmodes.c (get_mode_class): Handle complex mode classes.
17807         * function.c (expand_function_end): Use is_complex_int_mode.
17808
17809 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17810             Alan Hayward  <alan.hayward@arm.com>
17811             David Sherwood  <david.sherwood@arm.com>
17812
17813         * coretypes.h (scalar_mode_pod): New typedef.
17814         * gdbhooks.py (build_pretty_printer): Handle it.
17815         * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
17816         * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
17817         * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
17818         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
17819         as_a <scalar_mode>.
17820
17821 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17822             Alan Hayward  <alan.hayward@arm.com>
17823             David Sherwood  <david.sherwood@arm.com>
17824
17825         * machmode.h (mode_for_vector): Take a scalar_mode instead
17826         of a machine_mode.
17827         * stor-layout.c (mode_for_vector): Likewise.
17828         * explow.c (promote_mode): Use as_a <scalar_mode>.
17829         * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
17830
17831 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17832             Alan Hayward  <alan.hayward@arm.com>
17833             David Sherwood  <david.sherwood@arm.com>
17834
17835         * target.def (preferred_simd_mode): Take a scalar_mode
17836         instead of a machine_mode.
17837         * targhooks.h (default_preferred_simd_mode): Likewise.
17838         * targhooks.c (default_preferred_simd_mode): Likewise.
17839         * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
17840         * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
17841         * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
17842         * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
17843         * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
17844         * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
17845         * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
17846         * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
17847         Likewise.
17848         * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
17849         * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
17850         * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
17851         * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
17852         (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
17853         * doc/tm.texi: Regenerate.
17854         * optabs-query.c (can_vec_mask_load_store_p): Return false for
17855         non-scalar modes.
17856
17857 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17858             Alan Hayward  <alan.hayward@arm.com>
17859             David Sherwood  <david.sherwood@arm.com>
17860
17861         * target.def (scalar_mode_supported_p): Take a scalar_mode
17862         instead of a machine_mode.
17863         * targhooks.h (default_scalar_mode_supported_p): Likewise.
17864         * targhooks.c (default_scalar_mode_supported_p): Likewise.
17865         * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
17866         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
17867         * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
17868         * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
17869         * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
17870         * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
17871         * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
17872         * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
17873         * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
17874         * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
17875         * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
17876         * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
17877         Likewise.
17878         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
17879         * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
17880         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
17881         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
17882         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
17883         Likewise.
17884         * doc/tm.texi: Regenerate.
17885
17886 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17887             Alan Hayward  <alan.hayward@arm.com>
17888             David Sherwood  <david.sherwood@arm.com>
17889
17890         * coretypes.h (opt_scalar_mode): New typedef.
17891         * gdbhooks.py (build_pretty_printers): Handle it.
17892         * machmode.h (mode_iterator::get_2xwider): Add overload for
17893         opt_mode<T>.
17894         * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
17895         over scalar modes.
17896         * expr.c (convert_mode_scalar): Likewise.
17897         * omp-low.c (omp_clause_aligned_alignment): Likewise.
17898         * optabs.c (expand_float): Likewise.
17899         (expand_fix): Likewise.
17900         * tree-vect-stmts.c (vectorizable_conversion): 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         * optabs.c (expand_float): Explicitly check for scalars before
17907         using a branching expansion.
17908         (expand_fix): Likewise.
17909
17910 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17911             Alan Hayward  <alan.hayward@arm.com>
17912             David Sherwood  <david.sherwood@arm.com>
17913
17914         * expr.c (convert_mode): Split scalar handling out into...
17915         (convert_mode_scalar): ...this new function.  Treat the modes
17916         as scalar_modes.
17917
17918 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17919             Alan Hayward  <alan.hayward@arm.com>
17920             David Sherwood  <david.sherwood@arm.com>
17921
17922         * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
17923         and scalar_mode.
17924         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
17925
17926 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17927             Alan Hayward  <alan.hayward@arm.com>
17928             David Sherwood  <david.sherwood@arm.com>
17929
17930         * fixed-value.h (fixed_from_double_int): Take a scalar_mode
17931         rather than a machine_mode.
17932         (fixed_from_string): Likewise.
17933         (fixed_convert): Likewise.
17934         (fixed_convert_from_int): Likewise.
17935         (fixed_convert_from_real): Likewise.
17936         (real_convert_from_fixed): Likewise.
17937         * fixed-value.c (fixed_from_double_int): Likewise.
17938         (fixed_from_string): Likewise.
17939         (fixed_convert): Likewise.
17940         (fixed_convert_from_int): Likewise.
17941         (fixed_convert_from_real): Likewise.
17942         (real_convert_from_fixed): Likewise.
17943         * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
17944
17945 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17946             Alan Hayward  <alan.hayward@arm.com>
17947             David Sherwood  <david.sherwood@arm.com>
17948
17949         * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
17950         of separate mode class checks.  Do not allow vector modes here.
17951         (immed_wide_int_const): Use as_a <scalar_mode>.
17952         * explow.c (trunc_int_for_mode): Likewise.
17953         * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
17954         (wi::shwi): Likewise.
17955         (wi::min_value): Likewise.
17956         (wi::max_value): Likewise.
17957         * dwarf2out.c (loc_descriptor): Likewise.
17958         * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
17959         for CONST_WIDE_INT.
17960
17961 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
17962             Alan Hayward  <alan.hayward@arm.com>
17963             David Sherwood  <david.sherwood@arm.com>
17964
17965         * tree.h (SCALAR_TYPE_MODE): New macro.
17966         * expr.c (expand_expr_addr_expr_1): Use it.
17967         (expand_expr_real_2): Likewise.
17968         * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
17969         (fold_convert_const_fixed_from_int): Likewise.
17970         (fold_convert_const_fixed_from_real): Likewise.
17971         (native_encode_fixed): Likewise
17972         (native_encode_complex): Likewise
17973         (native_encode_vector): Likewise.
17974         (native_interpret_fixed): Likewise.
17975         (native_interpret_real): Likewise.
17976         (native_interpret_complex): Likewise.
17977         (native_interpret_vector): Likewise.
17978         * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
17979         (simd_clone_adjust_argument_types): Likewise.
17980         (simd_clone_init_simd_arrays): Likewise.
17981         (simd_clone_adjust): Likewise.
17982         * stor-layout.c (layout_type): Likewise.
17983         * tree.c (build_minus_one_cst): Likewise.
17984         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
17985         * tree-inline.c (estimate_move_cost): Likewise.
17986         * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
17987         * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
17988         (vectorizable_reduction): Likewise.
17989         * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
17990         (vect_recog_mixed_size_cond_pattern): Likewise.
17991         (check_bool_pattern): Likewise.
17992         (adjust_bool_pattern): Likewise.
17993         (search_type_for_mask_1): Likewise.
17994         * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
17995         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17996         (vectorizable_load): Likewise.
17997         (vectorizable_store): Likewise.
17998         * ubsan.c (ubsan_encode_value): Likewise.
17999         * varasm.c (output_constant): Likewise.
18000
18001 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18002             Alan Hayward  <alan.hayward@arm.com>
18003             David Sherwood  <david.sherwood@arm.com>
18004
18005         * coretypes.h (scalar_mode): New class.
18006         * machmode.h (scalar_mode): Likewise.
18007         (scalar_mode::includes_p): New function.
18008         (mode_to_inner): Return a scalar_mode rather than a machine_mode.
18009         * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
18010         * genmodes.c (get_mode_class): Handle remaining scalar modes.
18011         * cfgexpand.c (expand_debug_expr): Use scalar_mode.
18012         * expmed.c (store_bit_field_1): Likewise.
18013         (extract_bit_field_1): Likewise.
18014         * expr.c (write_complex_part): Likewise.
18015         (read_complex_part): Likewise.
18016         (emit_move_complex_push): Likewise.
18017         (expand_expr_real_2): Likewise.
18018         * function.c (assign_parm_setup_reg): Likewise.
18019         (assign_parms_unsplit_complex): Likewise.
18020         * optabs.c (expand_binop): Likewise.
18021         * rtlanal.c (subreg_get_info): Likewise.
18022         * simplify-rtx.c (simplify_immed_subreg): Likewise.
18023         * varasm.c (output_constant_pool_2): Likewise.
18024
18025 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18026             Alan Hayward  <alan.hayward@arm.com>
18027             David Sherwood  <david.sherwood@arm.com>
18028
18029         * expmed.c (extract_high_half): Use scalar_int_mode and remove
18030         assertion.
18031         (expmed_mult_highpart_optab): Likewise.
18032         (expmed_mult_highpart): Likewise.
18033
18034 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18035             Alan Hayward  <alan.hayward@arm.com>
18036             David Sherwood  <david.sherwood@arm.com>
18037
18038         * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
18039         instead of a machine_mode.
18040         (builtin_memset_read_str): Likewise.
18041         * builtins.c (c_readstr): Likewise.
18042         (builtin_memcpy_read_str): Likewise.
18043         (builtin_strncpy_read_str): Likewise.
18044         (builtin_memset_read_str): Likewise.
18045         (builtin_memset_gen_str): Likewise.
18046         (expand_builtin_signbit): Use scalar_int_mode for local variables.
18047         * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
18048         instead of a machine_mode.
18049         * combine.c (simplify_if_then_else): Use scalar_int_mode for local
18050         variables.
18051         (make_extraction): Likewise.
18052         (try_widen_shift_mode): Take and return scalar_int_modes instead
18053         of machine_modes.
18054         * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
18055         a scalar_int_mode instead of a machine_mode.
18056         * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
18057         (avr_addr_space_pointer_mode): Likewise.
18058         * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
18059         * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
18060         (msp430_unwind_word_mode): Likewise.
18061         * config/spu/spu.c (spu_unwind_word_mode): Likewise.
18062         (spu_addr_space_pointer_mode): Likewise.
18063         (spu_addr_space_address_mode): Likewise.
18064         (spu_libgcc_cmp_return_mode): Likewise.
18065         (spu_libgcc_shift_count_mode): Likewise.
18066         * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
18067         (rl78_addr_space_pointer_mode): Likewise.
18068         (fl78_unwind_word_mode): Likewise.
18069         (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
18070         machine_mode.
18071         * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
18072         * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
18073         * config/mips/mips.c (mips_mode_rep_extended): Likewise.
18074         (mips_valid_pointer_mode): Likewise.
18075         * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
18076         * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
18077         (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
18078         of a machine_mode.
18079         (ft32_addr_space_address_mode): Likewise.
18080         * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
18081         scalar_int_mode instead of a machine_mode.
18082         (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
18083         of a machine_mode.
18084         (m32c_addr_space_address_mode): Likewise.
18085         * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
18086         (rs6000_eh_return_filter_mode): Likewise.
18087         * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
18088         (rs6000_eh_return_filter_mode): Likewise.
18089         * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
18090         (s390_libgcc_shift_count_mode): Likewise.
18091         (s390_unwind_word_mode): Likewise.
18092         (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
18093         machine_mode.
18094         * target.def (mode_rep_extended): Likewise.
18095         (valid_pointer_mode): Likewise.
18096         (addr_space.valid_pointer_mode): Likewise.
18097         (eh_return_filter_mode): Return a scalar_int_mode rather than
18098         a machine_mode.
18099         (libgcc_cmp_return_mode): Likewise.
18100         (libgcc_shift_count_mode): Likewise.
18101         (unwind_word_mode): Likewise.
18102         (addr_space.pointer_mode): Likewise.
18103         (addr_space.address_mode): Likewise.
18104         * doc/tm.texi: Regenerate.
18105         * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
18106         a machine_mode.
18107         (do_jump): Use scalar_int_mode for local variables.
18108         * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
18109         rather than a machine_mode.
18110         * dwarf2out.c (convert_descriptor_to_mode): Likewise.
18111         (scompare_loc_descriptor_wide): Likewise.
18112         (scompare_loc_descriptor_narrow): Likewise.
18113         * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
18114         variables.
18115         * except.c (sjlj_emit_dispatch_table): Likewise.
18116         (expand_builtin_eh_copy_values): Likewise.
18117         * explow.c (convert_memory_address_addr_space_1): Likewise.
18118         Take a scalar_int_mode rather than a machine_mode.
18119         (convert_memory_address_addr_space): Take a scalar_int_mode rather
18120         than a machine_mode.
18121         (memory_address_addr_space): Use scalar_int_mode for local variables.
18122         * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
18123         rather than a machine_mode.
18124         * expmed.c (mask_rtx): Likewise.
18125         (init_expmed_one_conv): Likewise.
18126         (expand_mult_highpart_adjust): Likewise.
18127         (extract_high_half): Likewise.
18128         (expmed_mult_highpart_optab): Likewise.
18129         (expmed_mult_highpart): Likewise.
18130         (expand_smod_pow2): Likewise.
18131         (expand_sdiv_pow2): Likewise.
18132         (emit_store_flag_int): Likewise.
18133         (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
18134         variables.
18135         (extract_low_bits): Likewise.
18136         * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
18137         a machine_mode.
18138         * expr.c (pieces_addr::adjust):  Likewise.
18139         (can_store_by_pieces): Likewise.
18140         (store_by_pieces): Likewise.
18141         (clear_by_pieces_1): Likewise.
18142         (expand_expr_addr_expr_1): Likewise.
18143         (expand_expr_addr_expr): Use scalar_int_mode for local variables.
18144         (expand_expr_real_1): Likewise.
18145         (try_casesi): Likewise.
18146         * final.c (shorten_branches): Likewise.
18147         * fold-const.c (fold_convert_const_int_from_fixed): Change the
18148         type of "mode" to machine_mode.
18149         * internal-fn.c (expand_arith_overflow_result_store): Take a
18150         scalar_int_mode rather than a machine_mode.
18151         (expand_mul_overflow): Use scalar_int_mode for local variables.
18152         * loop-doloop.c (doloop_modify): Likewise.
18153         (doloop_optimize): Likewise.
18154         * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
18155         than a machine_mode.
18156         (expand_doubleword_shift_condmove): Likewise.
18157         (expand_doubleword_shift): Likewise.
18158         (expand_doubleword_clz): Likewise.
18159         (expand_doubleword_popcount): Likewise.
18160         (expand_doubleword_parity): Likewise.
18161         (expand_absneg_bit): Use scalar_int_mode for local variables.
18162         (prepare_float_lib_cmp): Likewise.
18163         * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
18164         rather than a machine_mode.
18165         (convert_memory_address_addr_space): Likewise.
18166         (get_mode_bounds): Likewise.
18167         (get_address_mode): Return a scalar_int_mode rather than a
18168         machine_mode.
18169         * rtlanal.c (get_address_mode): Likewise.
18170         * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
18171         than a machine_mode.
18172         * targhooks.c (default_mode_rep_extended): Likewise.
18173         (default_valid_pointer_mode): Likewise.
18174         (default_addr_space_valid_pointer_mode): Likewise.
18175         (default_eh_return_filter_mode): Return a scalar_int_mode rather
18176         than a machine_mode.
18177         (default_libgcc_cmp_return_mode): Likewise.
18178         (default_libgcc_shift_count_mode): Likewise.
18179         (default_unwind_word_mode): Likewise.
18180         (default_addr_space_pointer_mode): Likewise.
18181         (default_addr_space_address_mode): Likewise.
18182         * targhooks.h (default_eh_return_filter_mode): Likewise.
18183         (default_libgcc_cmp_return_mode): Likewise.
18184         (default_libgcc_shift_count_mode): Likewise.
18185         (default_unwind_word_mode): Likewise.
18186         (default_addr_space_pointer_mode): Likewise.
18187         (default_addr_space_address_mode): Likewise.
18188         (default_mode_rep_extended): Take a scalar_int_mode rather than
18189         a machine_mode.
18190         (default_valid_pointer_mode): Likewise.
18191         (default_addr_space_valid_pointer_mode): Likewise.
18192         * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
18193         local variables.
18194         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
18195         rather than a machine_mode.
18196         * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
18197         for local variables.
18198         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18199         * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
18200         than a machine_mode.
18201
18202 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18203             Alan Hayward  <alan.hayward@arm.com>
18204             David Sherwood  <david.sherwood@arm.com>
18205
18206         * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
18207         the mode argument to scalar_int_mode.
18208         (do_jump_by_parts_zero_rtx): Likewise.
18209         (do_jump_by_parts_equality_rtx): Likewise.
18210         (do_jump_by_parts_greater): Take a mode argument.
18211         (do_jump_by_parts_equality): Likewise.
18212         (do_jump_1): Update calls accordingly.
18213
18214 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18215             Alan Hayward  <alan.hayward@arm.com>
18216             David Sherwood  <david.sherwood@arm.com>
18217
18218         * is-a.h (safe_dyn_cast): New function.
18219         * rtl.h (rtx_jump_table_data::get_data_mode): New function.
18220         (jump_table_for_label): Likewise.
18221         * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
18222         instead of an rtx_insn *.
18223         (shorten_branches): Use dyn_cast instead of LABEL_P and
18224         JUMP_TABLE_DATA_P.  Use jump_table_for_label and
18225         rtx_jump_table_data::get_data_mode.
18226         (final_scan_insn): Likewise.
18227
18228 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18229             Alan Hayward  <alan.hayward@arm.com>
18230             David Sherwood  <david.sherwood@arm.com>
18231
18232         * combine.c (try_combine): Use is_a <scalar_int_mode> when
18233         trying to combine a full-register integer set with a subreg
18234         integer set.
18235
18236 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18237             Alan Hayward  <alan.hayward@arm.com>
18238             David Sherwood  <david.sherwood@arm.com>
18239
18240         * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
18241         that is always either address_mode or pointer_mode.
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         * expr.c (expand_expr_real_2): Use word_mode instead of innermode
18248         when the two are known to be equal.
18249
18250 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18251             Alan Hayward  <alan.hayward@arm.com>
18252             David Sherwood  <david.sherwood@arm.com>
18253
18254         * simplify-rtx.c (simplify_const_unary_operation): Use
18255         is_a <scalar_int_mode> instead of checking for a nonzero
18256         precision.  Forcibly convert op_mode to a scalar_int_mode
18257         in that case.  More clearly differentiate the operand and
18258         result modes and use the former when deciding what the value
18259         of a count-bits operation should be.  Use is_int_mode instead
18260         of checking for a MODE_INT.  Remove redundant check for whether
18261         this mode has a zero precision.
18262
18263 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18264             Alan Hayward  <alan.hayward@arm.com>
18265             David Sherwood  <david.sherwood@arm.com>
18266
18267         * optabs.c (widen_leading): Change the type of the mode argument
18268         to scalar_int_mode.  Use opt_scalar_int_mode for the mode iterator.
18269         (widen_bswap): Likewise.
18270         (expand_parity): Likewise.
18271         (expand_ctz): Change the type of the mode argument to scalar_int_mode.
18272         (expand_ffs): Likewise.
18273         (epand_unop): Check for scalar integer modes before calling the
18274         above routines.
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         * expr.c (const_scalar_mask_from_tree): Add a mode argument.
18281         Expand commentary.
18282         (expand_expr_real_1): Update call accordingly.
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         * expmed.c (store_bit_field_using_insv): Add op0_mode and
18289         value_mode arguments.  Use scalar_int_mode internally.
18290         (store_bit_field_1): Rename the new integer mode from imode
18291         to op0_mode and use it instead of GET_MODE (op0).  Update calls
18292         to store_split_bit_field, store_bit_field_using_insv and
18293         store_fixed_bit_field.
18294         (store_fixed_bit_field): Add op0_mode and value_mode arguments.
18295         Use scalar_int_mode internally.  Use a bit count rather than a mode
18296         when calculating the largest bit size for get_best_mode.
18297         Update calls to store_split_bit_field and store_fixed_bit_field_1.
18298         (store_fixed_bit_field_1): Add mode and value_mode arguments.
18299         Remove assertion that OP0 has a scalar integer mode.
18300         (store_split_bit_field): Add op0_mode and value_mode arguments.
18301         Update calls to extract_fixed_bit_field.
18302         (extract_bit_field_using_extv): Add an op0_mode argument.
18303         Use scalar_int_mode internally.
18304         (extract_bit_field_1): Rename the new integer mode from imode to
18305         op0_mode and use it instead of GET_MODE (op0).  Update calls to
18306         extract_split_bit_field, extract_bit_field_using_extv and
18307         extract_fixed_bit_field.
18308         (extract_fixed_bit_field): Add an op0_mode argument.  Update calls
18309         to extract_split_bit_field and extract_fixed_bit_field_1.
18310         (extract_fixed_bit_field_1): Add a mode argument.  Remove assertion
18311         that OP0 has a scalar integer mode.  Use as_a <scalar_int_mode>
18312         on the target mode.
18313         (extract_split_bit_field): Add an op0_mode argument.  Update call
18314         to extract_fixed_bit_field.
18315
18316 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18317             Alan Hayward  <alan.hayward@arm.com>
18318             David Sherwood  <david.sherwood@arm.com>
18319
18320         * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
18321         * explow.c (hard_function_value): Likewise.
18322         * expmed.c (extract_fixed_bit_field_1): Likewise.  Move the
18323         convert_to_mode call outside the loop.
18324         * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
18325         for the mode iterator.  Require the mode specified by max_pieces
18326         to exist.
18327         (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
18328         mode iterator.
18329         (copy_blkmode_to_reg): Likewise.
18330         (set_storage_via_setmem): Likewise.
18331         * optabs.c (prepare_cmp_insn): Likewise.
18332         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
18333         * stor-layout.c (finish_bitfield_representative): Likewise.
18334
18335 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18336             Alan Hayward  <alan.hayward@arm.com>
18337             David Sherwood  <david.sherwood@arm.com>
18338
18339         * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
18340         * expr.c (convert_move): Use them.
18341         (convert_modes): Likewise.
18342         (store_expr_with_bounds): Likewise.
18343
18344 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18345             Alan Hayward  <alan.hayward@arm.com>
18346             David Sherwood  <david.sherwood@arm.com>
18347
18348         * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
18349         parameter for the mode of "x".  Remove the "known_x", "known_mode"
18350         and "known_ret" arguments.  Change the type of the mode argument
18351         to scalar_int_mode.
18352         (rtl_hooks:reg_num_sign_bit_copies): Likewise.
18353         * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
18354         (reg_num_sign_bit_copies_for_combine): Likewise.
18355         * rtlanal.c (nonzero_bits1): Likewise.
18356         (num_sign_bit_copies1): Likewise.
18357         * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
18358         (reg_num_sign_bit_copies_general): Likewise.
18359         * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
18360         (reg_nonzero_bits_general): Likewise.
18361
18362 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18363             Alan Hayward  <alan.hayward@arm.com>
18364             David Sherwood  <david.sherwood@arm.com>
18365
18366         * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
18367         than in subroutines.  Return 1 for non-integer modes.
18368         (cached_num_sign_bit_copies): Change the type of the mode parameter
18369         to scalar_int_mode.
18370         (num_sign_bit_copies1): Likewise.  Remove early exit for other mode
18371         classes.  Handle CONST_INT_P first and then check whether X also
18372         has a scalar integer mode.  Check the same thing for inner registers
18373         of a SUBREG and for values that are being extended or truncated.
18374
18375 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18376             Alan Hayward  <alan.hayward@arm.com>
18377             David Sherwood  <david.sherwood@arm.com>
18378
18379         * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
18380         in subroutines.  Return the mode mask for non-integer modes.
18381         (cached_nonzero_bits): Change the type of the mode parameter
18382         to scalar_int_mode.
18383         (nonzero_bits1): Likewise.  Remove early exit for other mode
18384         classes.  Handle CONST_INT_P first and then check whether X
18385         also has a scalar integer mode.
18386
18387 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18388             Alan Hayward  <alan.hayward@arm.com>
18389             David Sherwood  <david.sherwood@arm.com>
18390
18391         * expr.c (widest_int_mode_for_size): Make the comment match the code.
18392         Return a scalar_int_mode and assert that the size is greater than
18393         one byte.
18394         (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
18395         (op_by_pieces_d::op_by_pieces_d): Likewise.
18396         (op_by_pieces_d::run): Likewise.
18397         (can_store_by_pieces): Likewise.
18398
18399 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18400             Alan Hayward  <alan.hayward@arm.com>
18401             David Sherwood  <david.sherwood@arm.com>
18402
18403         * combine.c (extract_left_shift): Add a mode argument and update
18404         recursive calls.
18405         (make_compound_operation_int): Change the type of the mode parameter
18406         to scalar_int_mode and update the call to extract_left_shift.
18407
18408 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18409             Alan Hayward  <alan.hayward@arm.com>
18410             David Sherwood  <david.sherwood@arm.com>
18411
18412         * combine.c (simplify_and_const_int): Change the type of the mode
18413         parameter to scalar_int_mode.
18414         (simplify_and_const_int_1): Likewise.  Update recursive call.
18415
18416 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18417             Alan Hayward  <alan.hayward@arm.com>
18418             David Sherwood  <david.sherwood@arm.com>
18419
18420         * combine.c (simplify_compare_const): Check that the mode is a
18421         scalar_int_mode (rather than VOIDmode) before testing its
18422         precision.
18423         (simplify_comparison): Move COMPARISON_P handling out of the
18424         loop and restrict the latter part of the loop to scalar_int_modes.
18425         Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
18426         and when considering SUBREG_REGs.  Use is_int_mode instead of
18427         checking GET_MODE_CLASS against MODE_INT.
18428
18429 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18430             Alan Hayward  <alan.hayward@arm.com>
18431             David Sherwood  <david.sherwood@arm.com>
18432
18433         * combine.c (try_widen_shift_mode): Move check for equal modes to...
18434         (simplify_shift_const_1): ...here.  Use scalar_int_mode for
18435         shift_unit_mode and for modes involved in scalar shifts.
18436
18437 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18438             Alan Hayward  <alan.hayward@arm.com>
18439             David Sherwood  <david.sherwood@arm.com>
18440
18441         * combine.c (force_int_to_mode): New function, split out from...
18442         (force_to_mode): ...here.  Keep xmode up-to-date and use it
18443         instead of GET_MODE (x).
18444
18445 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18446             Alan Hayward  <alan.hayward@arm.com>
18447             David Sherwood  <david.sherwood@arm.com>
18448
18449         * optabs-query.h (extraction_insn::struct_mode): Change type to
18450         opt_scalar_int_mode and update comment.
18451         (extraction_insn::field_mode): Change type to scalar_int_mode.
18452         (extraction_insn::pos_mode): Likewise.
18453         * combine.c (make_extraction): Update accordingly.
18454         * optabs-query.c (get_traditional_extraction_insn): Likewise.
18455         (get_optab_extraction_insn): Likewise.
18456         * recog.c (simplify_while_replacing): Likewise.
18457         * expmed.c (narrow_bit_field_mem): Change the type of the mode
18458         parameter to opt_scalar_int_mode.
18459
18460 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18461             Alan Hayward  <alan.hayward@arm.com>
18462             David Sherwood  <david.sherwood@arm.com>
18463
18464         * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
18465         to a scalar_int_mode instead of a machine_mode.
18466         (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
18467         (get_best_mode): Return a boolean and use a pointer argument to store
18468         the selected mode.  Replace the limit mode parameter with a bit limit.
18469         * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
18470         for the values returned by bit_field_mode_iterator::next_mode.
18471         (store_bit_field): Update call to get_best_mode.
18472         (store_fixed_bit_field): Likewise.
18473         (extract_fixed_bit_field): Likewise.
18474         * expr.c (optimize_bitfield_assignment_op): Likewise.
18475         * fold-const.c (optimize_bit_field_compare): Likewise.
18476         (fold_truth_andor_1): Likewise.
18477         * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
18478         Update for new type of m_mode.
18479         (get_best_mode): As above.
18480
18481 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18482             Alan Hayward  <alan.hayward@arm.com>
18483             David Sherwood  <david.sherwood@arm.com>
18484
18485         * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
18486         to scalar_int_mode.  Remove check for SCALAR_INT_MODE_P.
18487         (store_bit_field): Check is_a <scalar_int_mode> before calling
18488         strict_volatile_bitfield_p.
18489         (extract_bit_field): Likewise.
18490
18491 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18492             Alan Hayward  <alan.hayward@arm.com>
18493             David Sherwood  <david.sherwood@arm.com>
18494
18495         * target.def (cstore_mode): Return a scalar_int_mode.
18496         * doc/tm.texi: Regenerate.
18497         * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
18498         * targhooks.h (default_cstore_mode): Likewise.
18499         * targhooks.c (default_cstore_mode): Likewise, using a forced
18500         conversion.
18501         * expmed.c (emit_cstore): Expect the target of the cstore to be
18502         a scalar_int_mode.
18503
18504 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18505             Alan Hayward  <alan.hayward@arm.com>
18506             David Sherwood  <david.sherwood@arm.com>
18507
18508         * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
18509         scalar_int_mode.
18510         (niter_desc): Likewise mode.
18511         (iv_analyze): Add a mode parameter.
18512         (biv_p): Likewise.
18513         (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
18514         and change its type to scalar_int_mode.
18515         * loop-iv.c: Update commentary at head of file.
18516         (iv_constant): Pass the mode paraeter before the rtx it describes
18517         and change its type to scalar_int_mode.  Remove VOIDmode handling.
18518         (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
18519         (iv_extend): Likewise.
18520         (shorten_into_mode): Likewise.
18521         (iv_add): Use scalar_int_mode.
18522         (iv_mult): Likewise.
18523         (iv_shift): Likewise.
18524         (canonicalize_iv_subregs): Likewise.
18525         (get_biv_step_1): Pass the outer_mode parameter before the rtx
18526         it describes and change its mode to scalar_int_mode.   Also change
18527         the type of the returned inner_mode to scalar_int_mode.
18528         (get_biv_step): Likewise, turning outer_mode from a pointer
18529         into a direct parameter.  Update call to get_biv_step_1.
18530         (iv_analyze_biv): Add an outer_mode parameter.  Update calls to
18531         iv_constant and get_biv_step.
18532         (iv_analyze_expr): Pass the mode parameter before the rtx it describes
18533         and change its type to scalar_int_mode.  Don't initialise iv->mode
18534         to VOIDmode and remove later checks for its still being VOIDmode.
18535         Update calls to iv_analyze_op and iv_analyze_expr.  Check
18536         is_a <scalar_int_mode> when changing the mode under consideration.
18537         (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
18538         Update call to iv_analyze_expr.
18539         (iv_analyze_op): Add a mode parameter.  Reject subregs whose
18540         inner register is not also a scalar_int_mode.  Update call to
18541         iv_analyze_biv.
18542         (iv_analyze): Add a mode parameter.  Update call to iv_analyze_op.
18543         (biv_p): Add a mode parameter.  Update call to iv_analyze_biv.
18544         (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
18545         separate mode class checks.  Update calls to iv_analyze.  Remove
18546         fix-up of VOIDmodes after iv_analyze_biv.
18547         * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
18548         don't have a scalar_int_mode.  Update call to biv_p.
18549
18550 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18551             Alan Hayward  <alan.hayward@arm.com>
18552             David Sherwood  <david.sherwood@arm.com>
18553
18554         * cfgexpand.c (convert_debug_memory_address): Use
18555         as_a <scalar_int_mode>.
18556         * combine.c (expand_compound_operation): Likewise.
18557         (make_extraction): Likewise.
18558         (change_zero_ext): Likewise.
18559         (simplify_comparison): Likewise.
18560         * cse.c (cse_insn): Likewise.
18561         * dwarf2out.c (minmax_loc_descriptor): Likewise.
18562         (mem_loc_descriptor): Likewise.
18563         (loc_descriptor): Likewise.
18564         * expmed.c (init_expmed_one_mode): Likewise.
18565         (synth_mult): Likewise.
18566         (emit_store_flag_1): Likewise.
18567         (expand_divmod): Likewise.  Use HWI_COMPUTABLE_MODE_P instead
18568         of a comparison with size.
18569         * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
18570         (reduce_to_bit_field_precision): Likewise.
18571         * function.c (expand_function_end): Likewise.
18572         * internal-fn.c (expand_arith_overflow_result_store): Likewise.
18573         * loop-doloop.c (doloop_modify): Likewise.
18574         * optabs.c (expand_binop): Likewise.
18575         (expand_unop): Likewise.
18576         (expand_copysign_absneg): Likewise.
18577         (prepare_cmp_insn): Likewise.
18578         (maybe_legitimize_operand): Likewise.
18579         * recog.c (const_scalar_int_operand): Likewise.
18580         * rtlanal.c (get_address_mode): Likewise.
18581         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18582         (simplify_cond_clz_ctz): Likewise.
18583         * tree-nested.c (get_nl_goto_field): Likewise.
18584         * tree.c (build_vector_type_for_mode): Likewise.
18585         * var-tracking.c (use_narrower_mode): Likewise.
18586
18587 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18588             Alan Hayward  <alan.hayward@arm.com>
18589             David Sherwood  <david.sherwood@arm.com>
18590
18591         * tree.h (SCALAR_INT_TYPE_MODE): New macro.
18592         * builtins.c (expand_builtin_signbit): Use it.
18593         * cfgexpand.c (expand_debug_expr): Likewise.
18594         * dojump.c (do_jump): Likewise.
18595         (do_compare_and_jump): Likewise.
18596         * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
18597         * expmed.c (make_tree): Likewise.
18598         * expr.c (expand_expr_real_2): Likewise.
18599         (expand_expr_real_1): Likewise.
18600         (try_casesi): Likewise.
18601         * fold-const-call.c (fold_const_call_ss): Likewise.
18602         * fold-const.c (unextend): Likewise.
18603         (extract_muldiv_1): Likewise.
18604         (fold_single_bit_test): Likewise.
18605         (native_encode_int): Likewise.
18606         (native_encode_string): Likewise.
18607         (native_interpret_int): Likewise.
18608         * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
18609         * internal-fn.c (expand_addsub_overflow): Likewise.
18610         (expand_neg_overflow): Likewise.
18611         (expand_mul_overflow): Likewise.
18612         (expand_arith_overflow): Likewise.
18613         * match.pd: Likewise.
18614         * stor-layout.c (layout_type): Likewise.
18615         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
18616         * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
18617         * tree-ssanames.c (get_range_info): Likewise.
18618         * tree-switch-conversion.c (array_value_type) Likewise.
18619         * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
18620         (vect_recog_divmod_pattern): Likewise.
18621         (vect_recog_mixed_size_cond_pattern): Likewise.
18622         * tree-vrp.c (extract_range_basic): Likewise.
18623         (simplify_float_conversion_using_ranges): Likewise.
18624         * tree.c (int_fits_type_p): Likewise.
18625         * ubsan.c (instrument_bool_enum_load): Likewise.
18626         * varasm.c (mergeable_string_section): Likewise.
18627         (narrowing_initializer_constant_valid_p): Likewise.
18628         (output_constant): Likewise.
18629
18630 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18631             Alan Hayward  <alan.hayward@arm.com>
18632             David Sherwood  <david.sherwood@arm.com>
18633
18634         * machmode.h (NARROWEST_INT_MODE): New macro.
18635         * expr.c (alignment_for_piecewise_move): Use it instead of
18636         GET_CLASS_NARROWEST_MODE (MODE_INT).
18637         (push_block): Likewise.
18638         * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
18639         Likewise.
18640         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
18641
18642 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18643             Alan Hayward  <alan.hayward@arm.com>
18644             David Sherwood  <david.sherwood@arm.com>
18645
18646         * postreload.c (move2add_valid_value_p): Change the type of the
18647         mode parameter to scalar_int_mode.
18648         (move2add_use_add2_insn): Add a mode parameter and use it instead
18649         of GET_MODE (reg).
18650         (move2add_use_add3_insn): Likewise.
18651         (reload_cse_move2add): Update accordingly.
18652
18653 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18654             Alan Hayward  <alan.hayward@arm.com>
18655             David Sherwood  <david.sherwood@arm.com>
18656
18657         * expr.c (expand_expr_real_2): Use scalar_int_mode for the
18658         double-word mode.
18659         * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
18660         * optabs.c (expand_unop): Likewise.
18661
18662 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18663             Alan Hayward  <alan.hayward@arm.com>
18664             David Sherwood  <david.sherwood@arm.com>
18665
18666         * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
18667         (clz_loc_descriptor): Likewise.  Remove SCALAR_INT_MODE_P check.
18668         (popcount_loc_descriptor): Likewise.
18669         (bswap_loc_descriptor): Likewise.
18670         (rotate_loc_descriptor): Likewise.
18671         (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
18672         calling the functions above.
18673
18674 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18675             Alan Hayward  <alan.hayward@arm.com>
18676             David Sherwood  <david.sherwood@arm.com>
18677
18678         * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
18679         checks.
18680         (try_combine): Likewise.
18681         (simplify_if_then_else): Likewise.
18682         * cse.c (cse_insn): Likewise.
18683         * dwarf2out.c (mem_loc_descriptor): Likewise.
18684         * emit-rtl.c (gen_lowpart_common): Likewise.
18685         * simplify-rtx.c (simplify_truncation): Likewise.
18686         (simplify_binary_operation_1): Likewise.
18687         (simplify_const_relational_operation): Likewise.
18688         (simplify_ternary_operation): Likewise.
18689         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
18690
18691 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18692             Alan Hayward  <alan.hayward@arm.com>
18693             David Sherwood  <david.sherwood@arm.com>
18694
18695         * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
18696         * reload.c (push_reload): Likewise.
18697         (find_reloads): Likewise.
18698
18699 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18700             Alan Hayward  <alan.hayward@arm.com>
18701             David Sherwood  <david.sherwood@arm.com>
18702
18703         * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
18704         (make_compound_operation_int): Likewise.
18705         (change_zero_ext): Likewise.
18706         * expr.c (convert_move): Likewise.
18707         (convert_modes): Likewise.
18708         * fwprop.c (forward_propagate_subreg): Likewise.
18709         * loop-iv.c (get_biv_step_1): Likewise.
18710         * optabs.c (widen_operand): Likewise.
18711         * postreload.c (move2add_valid_value_p): Likewise.
18712         * recog.c (simplify_while_replacing): Likewise.
18713         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18714         (simplify_binary_operation_1): Likewise.  Remove redundant
18715         mode equality check.
18716
18717 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18718             Alan Hayward  <alan.hayward@arm.com>
18719             David Sherwood  <david.sherwood@arm.com>
18720
18721         * combine.c (combine_simplify_rtx): Add checks for
18722         is_a <scalar_int_mode>.
18723         (simplify_if_then_else): Likewise.
18724         (make_field_assignment): Likewise.
18725         (simplify_comparison): Likewise.
18726         * ifcvt.c (noce_try_bitop): Likewise.
18727         * loop-invariant.c (canonicalize_address_mult): Likewise.
18728         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18729
18730 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18731             Alan Hayward  <alan.hayward@arm.com>
18732             David Sherwood  <david.sherwood@arm.com>
18733
18734         * gimple-fold.c (gimple_fold_builtin_memory_op): Use
18735         is_a <scalar_int_mode> instead of != BLKmode.
18736
18737 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18738             Alan Hayward  <alan.hayward@arm.com>
18739             David Sherwood  <david.sherwood@arm.com>
18740
18741         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
18742         instead of != VOIDmode.
18743         * combine.c (if_then_else_cond): Likewise.
18744         (change_zero_ext): Likewise.
18745         * dwarf2out.c (mem_loc_descriptor): Likewise.
18746         (loc_descriptor): Likewise.
18747         * rtlanal.c (canonicalize_condition): Likewise.
18748         * simplify-rtx.c (simplify_relational_operation_1): Likewise.
18749
18750 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18751             Alan Hayward  <alan.hayward@arm.com>
18752             David Sherwood  <david.sherwood@arm.com>
18753
18754         * simplify-rtx.c (simplify_binary_operation_1): Use
18755         is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
18756
18757 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18758             Alan Hayward  <alan.hayward@arm.com>
18759             David Sherwood  <david.sherwood@arm.com>
18760
18761         * wide-int.h (int_traits<unsigned char>) New class.
18762         (int_traits<unsigned short>) Likewise.
18763         * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
18764         Use GET_MODE_UNIT_PRECISION and remove redundant test for
18765         SCALAR_INT_MODE_P.
18766         * combine.c (set_nonzero_bits_and_sign_copies): Use
18767         is_a <scalar_int_mode>.
18768         (find_split_point): Likewise.
18769         (combine_simplify_rtx): Likewise.
18770         (simplify_logical): Likewise.
18771         (expand_compound_operation): Likewise.
18772         (expand_field_assignment): Likewise.
18773         (make_compound_operation): Likewise.
18774         (extended_count): Likewise.
18775         (change_zero_ext): Likewise.
18776         (simplify_comparison): Likewise.
18777         * dwarf2out.c (scompare_loc_descriptor): Likewise.
18778         (ucompare_loc_descriptor): Likewise.
18779         (minmax_loc_descriptor): Likewise.
18780         (mem_loc_descriptor): Likewise.
18781         (loc_descriptor): Likewise.
18782         * expmed.c (init_expmed_one_mode): Likewise.
18783         * lra-constraints.c (lra_constraint_offset): Likewise.
18784         * optabs.c (prepare_libcall_arg): Likewise.
18785         * postreload.c (move2add_note_store): Likewise.
18786         * reload.c (operands_match_p): Likewise.
18787         * rtl.h (load_extend_op): Likewise.
18788         * rtlhooks.c (gen_lowpart_general): Likewise.
18789         * simplify-rtx.c (simplify_truncation): Likewise.
18790         (simplify_unary_operation_1): Likewise.
18791         (simplify_binary_operation_1): Likewise.
18792         (simplify_const_binary_operation): Likewise.
18793         (simplify_const_relational_operation): Likewise.
18794         (simplify_subreg): Likewise.
18795         * stor-layout.c (bitwise_mode_for_mode): Likewise.
18796         * var-tracking.c (adjust_mems): Likewise.
18797         (prepare_call_arguments): Likewise.
18798
18799 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18800             Alan Hayward  <alan.hayward@arm.com>
18801             David Sherwood  <david.sherwood@arm.com>
18802
18803         * machmode.h (is_int_mode): New fuction.
18804         * combine.c (find_split_point): Use it.
18805         (combine_simplify_rtx): Likewise.
18806         (simplify_if_then_else): Likewise.
18807         (simplify_set): Likewise.
18808         (simplify_shift_const_1): Likewise.
18809         (simplify_comparison): Likewise.
18810         * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
18811         * cse.c (notreg_cost): Likewise.
18812         (cse_insn): Likewise.
18813         * cselib.c (cselib_lookup_1): Likewise.
18814         * dojump.c (do_jump_1): Likewise.
18815         (do_compare_rtx_and_jump): Likewise.
18816         * dse.c (get_call_args): Likewise.
18817         * dwarf2out.c (rtl_for_decl_init): Likewise.
18818         (native_encode_initializer): Likewise.
18819         * expmed.c (emit_store_flag_1): Likewise.
18820         (emit_store_flag): Likewise.
18821         * expr.c (convert_modes): Likewise.
18822         (store_field): Likewise.
18823         (expand_expr_real_1): Likewise.
18824         * fold-const.c (fold_read_from_constant_string): Likewise.
18825         * gimple-ssa-sprintf.c (get_format_string): Likewise.
18826         * optabs-libfuncs.c (gen_int_libfunc): Likewise.
18827         * optabs.c (expand_binop): Likewise.
18828         (expand_unop): Likewise.
18829         (expand_abs_nojump): Likewise.
18830         (expand_one_cmpl_abs_nojump): Likewise.
18831         * simplify-rtx.c (mode_signbit_p): Likewise.
18832         (val_signbit_p): Likewise.
18833         (val_signbit_known_set_p): Likewise.
18834         (val_signbit_known_clear_p): Likewise.
18835         (simplify_relational_operation_1): Likewise.
18836         * tree.c (vector_type_mode): Likewise.
18837
18838 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18839             Alan Hayward  <alan.hayward@arm.com>
18840             David Sherwood  <david.sherwood@arm.com>
18841
18842         * machmode.h (smallest_mode_for_size): Fix formatting.
18843         (smallest_int_mode_for_size): New function.
18844         * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
18845         instead of smallest_mode_for_size.
18846         * combine.c (make_extraction): Likewise.
18847         * config/arc/arc.c (arc_expand_movmem): Likewise.
18848         * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
18849         * config/i386/i386.c (ix86_get_mask_mode): Likewise.
18850         * config/s390/s390.c (s390_expand_insv): Likewise.
18851         * config/sparc/sparc.c (assign_int_registers): Likewise.
18852         * config/spu/spu.c (spu_function_value): Likewise.
18853         (spu_function_arg): Likewise.
18854         * coverage.c (get_gcov_type): Likewise.
18855         (get_gcov_unsigned_t): Likewise.
18856         * dse.c (find_shift_sequence): Likewise.
18857         * expmed.c (store_bit_field_1): Likewise.
18858         * expr.c (convert_move): Likewise.
18859         (store_field): Likewise.
18860         * internal-fn.c (expand_arith_overflow): Likewise.
18861         * optabs-query.c (get_best_extraction_insn): Likewise.
18862         * optabs.c (expand_twoval_binop_libfunc): Likewise.
18863         * stor-layout.c (layout_type): Likewise.
18864         (initialize_sizetypes): Likewise.
18865         * targhooks.c (default_get_mask_mode): Likewise.
18866         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
18867
18868 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18869             Alan Hayward  <alan.hayward@arm.com>
18870             David Sherwood  <david.sherwood@arm.com>
18871
18872         * machmode.h (opt_mode::else_blk): New function.
18873         (int_mode_for_mode): Declare.
18874         * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
18875         * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
18876         return type.
18877         * cfgexpand.c (expand_debug_expr): Likewise.
18878         * combine.c (gen_lowpart_or_truncate): Likewise.
18879         (gen_lowpart_for_combine): Likewise.
18880         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
18881         * config/avr/avr.c (avr_to_int_mode): Likewise.
18882         (avr_out_plus_1): Likewise.
18883         (avr_out_plus): Likewise.
18884         (avr_out_round): Likewise.
18885         * config/i386/i386.c (ix86_split_to_parts): Likewise.
18886         * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
18887         (s390_expand_vcond): Likewise.
18888         * config/spu/spu.c (spu_split_immediate): Likewise.
18889         (spu_expand_mov): Likewise.
18890         * dse.c (get_stored_val): Likewise.
18891         * expmed.c (store_bit_field_1): Likewise.
18892         (convert_extracted_bit_field): Use int_mode_for_mode instead of
18893         int_mode_for_size.
18894         (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
18895         (extract_low_bits): Likewise.
18896         * expr.c (emit_group_load_1): Likewise.  Separate out the BLKmode
18897         handling rather than repeating the check.
18898         (emit_group_store): Likewise.
18899         (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
18900         * optabs.c (expand_absneg_bit): Likewise.
18901         (expand_copysign_absneg): Likewise.
18902         (expand_copysign_bit): Likewise.
18903         * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
18904         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
18905         * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
18906         * var-tracking.c (prepare_call_arguments):  Likewise.
18907         * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
18908         int_mode_for_mode instead of mode_for_size.
18909         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
18910
18911 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18912             Alan Hayward  <alan.hayward@arm.com>
18913             David Sherwood  <david.sherwood@arm.com>
18914
18915         * machmode.h (int_mode_for_size): New function.
18916         * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
18917         instead of mode_for_size.
18918         * calls.c (save_fixed_argument_area): Likewise.  Make use of BLKmode
18919         explicit.
18920         * combine.c (expand_field_assignment): Use int_mode_for_size
18921         instead of mode_for_size.
18922         (make_extraction): Likewise.
18923         (simplify_shift_const_1): Likewise.
18924         (simplify_comparison): Likewise.
18925         * dojump.c (do_jump): Likewise.
18926         * dwarf2out.c (mem_loc_descriptor): Likewise.
18927         * emit-rtl.c (init_derived_machine_modes): Likewise.
18928         * expmed.c (flip_storage_order): Likewise.
18929         (convert_extracted_bit_field): Likewise.
18930         * expr.c (copy_blkmode_from_reg): Likewise.
18931         * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
18932         * internal-fn.c (expand_mul_overflow): Likewise.
18933         * lower-subreg.c (simple_move): Likewise.
18934         * optabs-libfuncs.c (init_optabs): Likewise.
18935         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
18936         * tree.c (vector_type_mode): Likewise.
18937         * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
18938         * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
18939         * tree-vect-generic.c (expand_vector_parallel): Likewise.
18940         * tree-vect-stmts.c (vectorizable_load): Likewise.
18941         (vectorizable_store): Likewise.
18942
18943 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18944             Alan Hayward  <alan.hayward@arm.com>
18945             David Sherwood  <david.sherwood@arm.com>
18946
18947         * coretypes.h (pod_mode): New type.
18948         (scalar_int_mode_pod): New typedef.
18949         * machmode.h (pod_mode): New class.
18950         (int_n_data_t::m): Change type to scalar_int_mode_pod.
18951         * genmodes.c (emit_mode_int_n): Update accordingly.
18952         * lower-subreg.h (target_lower_subreg): Change type to
18953         scalar_int_mode_pod.
18954         * gdbhooks.py (build_pretty_printer): Handle pod_mode and
18955         scalar_int_mode_pod.
18956
18957 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18958             Alan Hayward  <alan.hayward@arm.com>
18959             David Sherwood  <david.sherwood@arm.com>
18960
18961         * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
18962         machine_mode to scalar_int_mode.
18963         * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
18964         (rs6000_option_override_internal): Remove cast to int.
18965         * config/rs6000/rs6000.h (rs6000_pmode): Change type from
18966         machine_mode to scalar_int_mode.
18967         * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
18968         (rs6000_option_override_internal): Remove cast to int.
18969         * config/s390/s390.h (Pmode): Remove cast to machine_mode.
18970         * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
18971         to machine_mode.
18972         * config/s390/s390.c (s390_expand_builtin): Likewise.
18973         * coretypes.h (scalar_int_mode): New type.
18974         (opt_scalar_int_mode): New typedef.
18975         * machmode.h (scalar_int_mode): New class.
18976         (scalar_int_mode::includes_p): New function.
18977         (byte_mode): Change type to scalar_int_mode.
18978         (word_mode): Likewise.
18979         (ptr_mode): Likewise.
18980         * emit-rtl.c (byte_mode): Likewise.
18981         (word_mode): Likewise.
18982         (ptr_mode): Likewise.
18983         (init_derived_machine_modes): Update accordingly.
18984         * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
18985         and MODE_PARTIAL_INT.
18986         * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
18987         opt_scalar_int_mode.
18988
18989 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
18990             Alan Hayward  <alan.hayward@arm.com>
18991             David Sherwood  <david.sherwood@arm.com>
18992
18993         * target.def (libgcc_floating_mode_supported_p): Take a
18994         scalar_float_mode.
18995         * doc/tm.texi: Regenerate.
18996         * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
18997         scalar_float_mode.
18998         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
18999         * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
19000         Likewise.
19001
19002 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19003             Alan Hayward  <alan.hayward@arm.com>
19004             David Sherwood  <david.sherwood@arm.com>
19005
19006         * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
19007         * doc/tm.texi: Regenerate.
19008         * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
19009         * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
19010         * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
19011         * targhooks.h (default_floatn_mode): Likewise.
19012         * targhooks.c (default_floatn_mode): Likewise.
19013         * tree.c (build_common_tree_nodes): Update accordingly.
19014
19015 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19016             Alan Hayward  <alan.hayward@arm.com>
19017             David Sherwood  <david.sherwood@arm.com>
19018
19019         * machmode.h (mode_iterator::start): Provide overload for opt_modes.
19020         (mode_iterator::iterate_p): Likewise.
19021         (mode_iterator::get_wider): Likewise.
19022         * expr.c (init_expr_target): Use opt_scalar_float_mode.
19023
19024 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19025             Alan Hayward  <alan.hayward@arm.com>
19026             David Sherwood  <david.sherwood@arm.com>
19027
19028         * coretypes.h (opt_scalar_float_mode): New typedef.
19029         * machmode.h (float_mode_for_size): New function.
19030         * emit-rtl.c (double_mode): Delete.
19031         (init_emit_once): Use float_mode_for_size.
19032         * stor-layout.c (layout_type): Likewise.
19033         * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
19034
19035 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19036             Alan Hayward  <alan.hayward@arm.com>
19037             David Sherwood  <david.sherwood@arm.com>
19038
19039         * output.h (assemble_real): Take a scalar_float_mode.
19040         * config/arm/arm.c (arm_assemble_integer): Update accordingly.
19041         * config/arm/arm.md (consttable_4): Likewise.
19042         (consttable_8): Likewise.
19043         (consttable_16): Likewise.
19044         * config/mips/mips.md (consttable_float): Likewise.
19045         * config/s390/s390.c (s390_output_pool_entry): Likewise.
19046         * varasm.c (assemble_real): Take a scalar_float_mode.
19047         (output_constant_pool_2): Update accordingly.
19048         (output_constant): Likewise.
19049
19050 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19051             Alan Hayward  <alan.hayward@arm.com>
19052             David Sherwood  <david.sherwood@arm.com>
19053
19054         * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
19055         * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
19056         * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
19057         (native_encode_real): Likewise.
19058         (native_interpret_real): Likewise.
19059         * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
19060         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
19061
19062 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19063             Alan Hayward  <alan.hayward@arm.com>
19064             David Sherwood  <david.sherwood@arm.com>
19065
19066         * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
19067         <scalar_float_mode>.  Simplify.
19068         (gen_extend_conv_libfunc): Likewise.
19069
19070 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19071             Alan Hayward  <alan.hayward@arm.com>
19072             David Sherwood  <david.sherwood@arm.com>
19073
19074         * coretypes.h (scalar_float_mode): New type.
19075         * machmode.h (mode_traits::from_int): Use machine_mode if
19076         USE_ENUM_MODES is defined.
19077         (is_a): New function.
19078         (as_a): Likewise.
19079         (dyn_cast): Likewise.
19080         (scalar_float_mode): New class.
19081         (scalar_float_mode::includes_p): New function.
19082         (is_float_mode): Likewise.
19083         * gdbhooks.py (MachineModePrinter): New class.
19084         (build_pretty_printer): Use it for scalar_float_mode.
19085         * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
19086         (format_helper::format_helper): Turn into a template.
19087         * genmodes.c (get_mode_class): New function.
19088         (emit_insn_modes_h): Give modes the class returned by get_mode_class,
19089         or machine_mode if none.
19090         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
19091         as_a <scalar_float_mode>.
19092         * dwarf2out.c (mem_loc_descriptor): Likewise.
19093         (insert_float): Likewise.
19094         (add_const_value_attribute): Likewise.
19095         * simplify-rtx.c (simplify_immed_subreg): Likewise.
19096         * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
19097         (expand_unop): Update accordingly.
19098         (expand_abs_nojump): Likewise.
19099         (expand_copysign_absneg): Take a scalar_float_mode.
19100         (expand_copysign_bit): Likewise.
19101         (expand_copysign): Update accordingly.
19102
19103 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19104             Alan Hayward  <alan.hayward@arm.com>
19105             David Sherwood  <david.sherwood@arm.com>
19106
19107         * coretypes.h (opt_mode): New class.
19108         * machmode.h (opt_mode): Likewise.
19109         (opt_mode::else_void): New function.
19110         (opt_mode::require): Likewise.
19111         (opt_mode::exists): Likewise.
19112         (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
19113         (GET_MODE_2XWIDER_MODE): Likewise.
19114         (mode_iterator::get_wider): Update accordingly.
19115         (mode_iterator::get_2xwider): Likewise.
19116         (mode_iterator::get_known_wider): Likewise, turning into a template.
19117         * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
19118         forcing a wider mode to exist.
19119         * config/cr16/cr16.h (LONG_REG_P): Likewise.
19120         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
19121         * config/c6x/c6x.c (c6x_rtx_costs): Update use of
19122         GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
19123         * lower-subreg.c (init_lower_subreg): Likewise.
19124         * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
19125         on the final iteration.
19126         * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
19127         a wider mode exists before asking for a move pattern.
19128         (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
19129         forcing a wider mode to exist.
19130         (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
19131         returning false if no such mode exists.
19132         * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
19133         * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
19134         * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
19135         Avoid checking for a MODE_INT if we already know the mode is not a
19136         SCALAR_INT_MODE_P.
19137         (extract_high_half): Update use of GET_MODE_WIDER_MODE,
19138         forcing a wider mode to exist.
19139         (expmed_mult_highpart_optab): Likewise.
19140         (expmed_mult_highpart): Likewise.
19141         * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
19142         using else_void.
19143         * lto-streamer-in.c (lto_input_mode_table): Likewise.
19144         * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
19145         * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
19146         * internal-fn.c (expand_mul_overflow): Update use of
19147         GET_MODE_2XWIDER_MODE.
19148         * omp-low.c (omp_clause_aligned_alignment): Likewise.
19149         * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
19150         GET_MODE_WIDER_MODE.
19151         (convert_plusminus_to_widen): Likewise.
19152         * tree-switch-conversion.c (array_value_type): Likewise.
19153         * var-tracking.c (emit_note_insn_var_location): Likewise.
19154         * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
19155         Return false inside rather than outside the loop if no wider mode
19156         exists
19157         * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
19158         and GET_MODE_2XWIDER_MODE
19159         (can_compare_p): Use else_void.
19160         * gdbhooks.py (OptMachineModePrinter): New class.
19161         (build_pretty_printer): Use it for opt_mode.
19162
19163 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19164             Alan Hayward  <alan.hayward@arm.com>
19165             David Sherwood  <david.sherwood@arm.com>
19166
19167         * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
19168         once.  Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
19169
19170 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19171             Alan Hayward  <alan.hayward@arm.com>
19172             David Sherwood  <david.sherwood@arm.com>
19173
19174         * machmode.h (mode_traits): New structure.
19175         (get_narrowest_mode): New function.
19176         (mode_iterator::start): Likewise.
19177         (mode_iterator::iterate_p): Likewise.
19178         (mode_iterator::get_wider): Likewise.
19179         (mode_iterator::get_known_wider): Likewise.
19180         (mode_iterator::get_2xwider): Likewise.
19181         (FOR_EACH_MODE_IN_CLASS): New mode iterator.
19182         (FOR_EACH_MODE): Likewise.
19183         (FOR_EACH_MODE_FROM): Likewise.
19184         (FOR_EACH_MODE_UNTIL): Likewise.
19185         (FOR_EACH_WIDER_MODE): Likewise.
19186         (FOR_EACH_2XWIDER_MODE): Likewise.
19187         * builtins.c (expand_builtin_strlen): Use new mode iterators.
19188         * combine.c (simplify_comparison): Likewise
19189         * config/i386/i386.c (type_natural_mode): Likewise.
19190         * cse.c (cse_insn): Likewise.
19191         * dse.c (find_shift_sequence): Likewise.
19192         * emit-rtl.c (init_derived_machine_modes): Likewise.
19193         (init_emit_once): Likewise.
19194         * explow.c (hard_function_value): Likewise.
19195         * expmed.c (extract_fixed_bit_field_1): Likewise.
19196         (extract_bit_field_1): Likewise.
19197         (expand_divmod): Likewise.
19198         (emit_store_flag_1): Likewise.
19199         * expr.c (init_expr_target): Likewise.
19200         (convert_move): Likewise.
19201         (alignment_for_piecewise_move): Likewise.
19202         (widest_int_mode_for_size): Likewise.
19203         (emit_block_move_via_movmem): Likewise.
19204         (copy_blkmode_to_reg): Likewise.
19205         (set_storage_via_setmem): Likewise.
19206         (compress_float_constant): Likewise.
19207         * omp-low.c (omp_clause_aligned_alignment): Likewise.
19208         * optabs-query.c (get_best_extraction_insn): Likewise.
19209         * optabs.c (expand_binop): Likewise.
19210         (expand_twoval_unop): Likewise.
19211         (expand_twoval_binop): Likewise.
19212         (widen_leading): Likewise.
19213         (widen_bswap): Likewise.
19214         (expand_parity): Likewise.
19215         (expand_unop): Likewise.
19216         (prepare_cmp_insn): Likewise.
19217         (prepare_float_lib_cmp): Likewise.
19218         (expand_float): Likewise.
19219         (expand_fix): Likewise.
19220         (expand_sfix_optab): Likewise.
19221         * postreload.c (move2add_use_add2_insn): Likewise.
19222         * reg-stack.c (reg_to_stack): Likewise.
19223         * reginfo.c (choose_hard_reg_mode): Likewise.
19224         * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
19225         * stor-layout.c (mode_for_size): Likewise.
19226         (smallest_mode_for_size): Likewise.
19227         (mode_for_vector): Likewise.
19228         (finish_bitfield_representative): Likewise.
19229         * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
19230         * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
19231         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
19232         * var-tracking.c (prepare_call_arguments): Likewise.
19233
19234 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19235             Alan Hayward  <alan.hayward@arm.com>
19236             David Sherwood  <david.sherwood@arm.com>
19237
19238         * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
19239         * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
19240         USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
19241         * machmode.h (mode_size): Move earlier in file.
19242         (mode_precision): Likewise.
19243         (mode_inner): Likewise.
19244         (mode_nunits): Likewise.
19245         (mode_unit_size): Likewise.
19246         (unit_unit_precision): Likewise.
19247         (mode_wider): Likewise.
19248         (mode_2xwider): Likewise.
19249         (machine_mode): New class.
19250         (mode_to_bytes): New function.
19251         (mode_to_bits): Likewise.
19252         (mode_to_precision): Likewise.
19253         (mode_to_inner): Likewise.
19254         (mode_to_unit_size): Likewise.
19255         (mode_to_unit_precision): Likewise.
19256         (mode_to_nunits): Likewise.
19257         (GET_MODE_SIZE): Use mode_to_bytes.
19258         (GET_MODE_BITSIZE): Use mode_to_bits.
19259         (GET_MODE_PRECISION): Use mode_to_precision.
19260         (GET_MODE_INNER): Use mode_to_inner.
19261         (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
19262         (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
19263         (GET_MODE_NUNITS): Use mode_to_nunits.
19264         * system.h (ALWAYS_INLINE): New macro.
19265         * config/powerpcspe/powerpcspe-c.c
19266         (altivec_resolve_overloaded_builtin): Use machine_mode instead of
19267         int for arg1_mode and arg2_mode.
19268
19269 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19270             Alan Hayward  <alan.hayward@arm.com>
19271             David Sherwood  <david.sherwood@arm.com>
19272
19273         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
19274         Prefix mode names with E_ in case statements.
19275         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19276         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
19277         (aarch64_split_simd_move): Likewise.
19278         (aarch64_gen_storewb_pair): Likewise.
19279         (aarch64_gen_loadwb_pair): Likewise.
19280         (aarch64_gen_store_pair): Likewise.
19281         (aarch64_gen_load_pair): Likewise.
19282         (aarch64_get_condition_code_1): Likewise.
19283         (aarch64_constant_pool_reload_icode): Likewise.
19284         (get_rsqrte_type): Likewise.
19285         (get_rsqrts_type): Likewise.
19286         (get_recpe_type): Likewise.
19287         (get_recps_type): Likewise.
19288         (aarch64_gimplify_va_arg_expr): Likewise.
19289         (aarch64_simd_container_mode): Likewise.
19290         (aarch64_emit_load_exclusive): Likewise.
19291         (aarch64_emit_store_exclusive): Likewise.
19292         (aarch64_expand_compare_and_swap): Likewise.
19293         (aarch64_gen_atomic_cas): Likewise.
19294         (aarch64_emit_bic): Likewise.
19295         (aarch64_emit_atomic_swap): Likewise.
19296         (aarch64_emit_atomic_load_op): Likewise.
19297         (aarch64_evpc_trn): Likewise.
19298         (aarch64_evpc_uzp): Likewise.
19299         (aarch64_evpc_zip): Likewise.
19300         (aarch64_evpc_ext): Likewise.
19301         (aarch64_evpc_rev): Likewise.
19302         (aarch64_evpc_dup): Likewise.
19303         (aarch64_gen_ccmp_first): Likewise.
19304         (aarch64_gen_ccmp_next): Likewise.
19305         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
19306         (alpha_emit_xfloating_libcall): Likewise.
19307         (emit_insxl): Likewise.
19308         (alpha_arg_type): Likewise.
19309         * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
19310         (arc_preferred_simd_mode): Likewise.
19311         (arc_secondary_reload): Likewise.
19312         (get_arc_condition_code): Likewise.
19313         (arc_print_operand): Likewise.
19314         (arc_legitimate_constant_p): Likewise.
19315         * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19316         * config/arc/arc.md (casesi_load): Likewise.
19317         (casesi_compact_jump): Likewise.
19318         * config/arc/predicates.md (proper_comparison_operator): Likewise.
19319         (cc_use_register): Likewise.
19320         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19321         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
19322         (arm_init_iwmmxt_builtins): Likewise.
19323         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
19324         (neon_expand_vector_init): Likewise.
19325         (arm_attr_length_move_neon): Likewise.
19326         (maybe_get_arm_condition_code): Likewise.
19327         (arm_emit_vector_const): Likewise.
19328         (arm_preferred_simd_mode): Likewise.
19329         (arm_output_iwmmxt_tinsr): Likewise.
19330         (thumb1_output_casesi): Likewise.
19331         (thumb2_output_casesi): Likewise.
19332         (arm_emit_load_exclusive): Likewise.
19333         (arm_emit_store_exclusive): Likewise.
19334         (arm_expand_compare_and_swap): Likewise.
19335         (arm_evpc_neon_vuzp): Likewise.
19336         (arm_evpc_neon_vzip): Likewise.
19337         (arm_evpc_neon_vrev): Likewise.
19338         (arm_evpc_neon_vtrn): Likewise.
19339         (arm_evpc_neon_vext): Likewise.
19340         (arm_validize_comparison): Likewise.
19341         * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
19342         * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
19343         * config/avr/avr.c (avr_rtx_costs_1): Likewise.
19344         * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
19345         (c6x_preferred_simd_mode): Likewise.
19346         * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
19347         (epiphany_rtx_costs): Likewise.
19348         * config/epiphany/predicates.md (proper_comparison_operator):
19349         Likewise.
19350         * config/frv/frv.c (condexec_memory_operand): Likewise.
19351         (frv_emit_move): Likewise.
19352         (output_move_single): Likewise.
19353         (output_condmove_single): Likewise.
19354         (frv_hard_regno_mode_ok): Likewise.
19355         (frv_matching_accg_mode): Likewise.
19356         * config/h8300/h8300.c (split_adds_subs): Likewise.
19357         (h8300_rtx_costs): Likewise.
19358         (h8300_print_operand): Likewise.
19359         (compute_mov_length): Likewise.
19360         (output_logical_op): Likewise.
19361         (compute_logical_op_length): Likewise.
19362         (compute_logical_op_cc): Likewise.
19363         (h8300_shift_needs_scratch_p): Likewise.
19364         (output_a_shift): Likewise.
19365         (compute_a_shift_length): Likewise.
19366         (compute_a_shift_cc): Likewise.
19367         (expand_a_rotate): Likewise.
19368         (output_a_rotate): Likewise.
19369         * config/i386/i386.c (classify_argument): Likewise.
19370         (function_arg_advance_32): Likewise.
19371         (function_arg_32): Likewise.
19372         (function_arg_64): Likewise.
19373         (function_value_64): Likewise.
19374         (ix86_gimplify_va_arg): Likewise.
19375         (ix86_legitimate_constant_p): Likewise.
19376         (put_condition_code): Likewise.
19377         (split_double_mode): Likewise.
19378         (ix86_avx256_split_vector_move_misalign): Likewise.
19379         (ix86_expand_vector_logical_operator): Likewise.
19380         (ix86_split_idivmod): Likewise.
19381         (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
19382         (ix86_build_const_vector): Likewise.
19383         (ix86_build_signbit_mask): Likewise.
19384         (ix86_match_ccmode): Likewise.
19385         (ix86_cc_modes_compatible): Likewise.
19386         (ix86_expand_branch): Likewise.
19387         (ix86_expand_sse_cmp): Likewise.
19388         (ix86_expand_sse_movcc): Likewise.
19389         (ix86_expand_int_sse_cmp): Likewise.
19390         (ix86_expand_vec_perm_vpermi2): Likewise.
19391         (ix86_expand_vec_perm): Likewise.
19392         (ix86_expand_sse_unpack): Likewise.
19393         (ix86_expand_int_addcc): Likewise.
19394         (ix86_split_to_parts): Likewise.
19395         (ix86_vectorize_builtin_gather): Likewise.
19396         (ix86_vectorize_builtin_scatter): Likewise.
19397         (avx_vpermilp_parallel): Likewise.
19398         (inline_memory_move_cost): Likewise.
19399         (ix86_tieable_integer_mode_p): Likewise.
19400         (x86_maybe_negate_const_int): Likewise.
19401         (ix86_expand_vector_init_duplicate): Likewise.
19402         (ix86_expand_vector_init_one_nonzero): Likewise.
19403         (ix86_expand_vector_init_one_var): Likewise.
19404         (ix86_expand_vector_init_concat): Likewise.
19405         (ix86_expand_vector_init_interleave): Likewise.
19406         (ix86_expand_vector_init_general): Likewise.
19407         (ix86_expand_vector_set): Likewise.
19408         (ix86_expand_vector_extract): Likewise.
19409         (emit_reduc_half): Likewise.
19410         (ix86_emit_i387_round): Likewise.
19411         (ix86_mangle_type): Likewise.
19412         (ix86_expand_round_sse4): Likewise.
19413         (expand_vec_perm_blend): Likewise.
19414         (canonicalize_vector_int_perm): Likewise.
19415         (ix86_expand_vec_one_operand_perm_avx512): Likewise.
19416         (expand_vec_perm_1): Likewise.
19417         (expand_vec_perm_interleave3): Likewise.
19418         (expand_vec_perm_even_odd_pack): Likewise.
19419         (expand_vec_perm_even_odd_1): Likewise.
19420         (expand_vec_perm_broadcast_1): Likewise.
19421         (ix86_vectorize_vec_perm_const_ok): Likewise.
19422         (ix86_expand_vecop_qihi): Likewise.
19423         (ix86_expand_mul_widen_hilo): Likewise.
19424         (ix86_expand_sse2_abs): Likewise.
19425         (ix86_expand_pextr): Likewise.
19426         (ix86_expand_pinsr): Likewise.
19427         (ix86_preferred_simd_mode): Likewise.
19428         (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
19429         * config/i386/sse.md (*andnot<mode>3): Likewise.
19430         (<mask_codefor><code><mode>3<mask_name>): Likewise.
19431         (*<code><mode>3): Likewise.
19432         * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
19433         (ia64_expand_atomic_op): Likewise.
19434         (ia64_arg_type): Likewise.
19435         (ia64_mode_to_int): Likewise.
19436         (ia64_scalar_mode_supported_p): Likewise.
19437         (ia64_vector_mode_supported_p): Likewise.
19438         (expand_vec_perm_broadcast): Likewise.
19439         * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
19440         (iq2000_function_arg_advance): Likewise.
19441         (iq2000_function_arg): Likewise.
19442         * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
19443         * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
19444         (m68k_libcall_value): Likewise.
19445         (m68k_function_value): Likewise.
19446         (sched_attr_op_type): Likewise.
19447         * config/mcore/mcore.c (mcore_output_move): Likewise.
19448         * config/microblaze/microblaze.c (microblaze_function_arg_advance):
19449         Likewise.
19450         (microblaze_function_arg): Likewise.
19451         * config/mips/mips.c (mips16_build_call_stub): Likewise.
19452         (mips_print_operand): Likewise.
19453         (mips_mode_ok_for_mov_fmt_p): Likewise.
19454         (mips_vector_mode_supported_p): Likewise.
19455         (mips_preferred_simd_mode): Likewise.
19456         (mips_expand_vpc_loongson_even_odd): Likewise.
19457         (mips_expand_vec_unpack): Likewise.
19458         (mips_expand_vi_broadcast): Likewise.
19459         (mips_expand_vector_init): Likewise.
19460         (mips_expand_vec_reduc): Likewise.
19461         (mips_expand_msa_cmp): Likewise.
19462         * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
19463         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
19464         (cc_flags_for_mode): Likewise.
19465         * config/msp430/msp430.c (msp430_print_operand): Likewise.
19466         * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
19467         (nds32_output_casesi_pc_relative): Likewise.
19468         * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19469         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
19470         (nvptx_gen_unpack): Likewise.
19471         (nvptx_gen_pack): Likewise.
19472         (nvptx_gen_shuffle): Likewise.
19473         (nvptx_gen_wcast): Likewise.
19474         (nvptx_preferred_simd_mode): Likewise.
19475         * config/pa/pa.c (pa_secondary_reload): Likewise.
19476         * config/pa/predicates.md (base14_operand): Likewise.
19477         * config/powerpcspe/powerpcspe-c.c
19478         (altivec_resolve_overloaded_builtin): Likewise.
19479         * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
19480         Likewise.
19481         (rs6000_preferred_simd_mode): Likewise.
19482         (output_vec_const_move): Likewise.
19483         (rs6000_expand_vector_extract): Likewise.
19484         (rs6000_split_vec_extract_var): Likewise.
19485         (reg_offset_addressing_ok_p): Likewise.
19486         (rs6000_legitimate_offset_address_p): Likewise.
19487         (rs6000_legitimize_address): Likewise.
19488         (rs6000_emit_set_const): Likewise.
19489         (rs6000_const_vec): Likewise.
19490         (rs6000_emit_move): Likewise.
19491         (spe_build_register_parallel): Likewise.
19492         (rs6000_darwin64_record_arg_recurse): Likewise.
19493         (swap_selector_for_mode): Likewise.
19494         (spe_init_builtins): Likewise.
19495         (paired_init_builtins): Likewise.
19496         (altivec_init_builtins): Likewise.
19497         (do_load_for_compare): Likewise.
19498         (rs6000_generate_compare): Likewise.
19499         (rs6000_expand_float128_convert): Likewise.
19500         (emit_load_locked): Likewise.
19501         (emit_store_conditional): Likewise.
19502         (rs6000_output_function_epilogue): Likewise.
19503         (rs6000_handle_altivec_attribute): Likewise.
19504         (rs6000_function_value): Likewise.
19505         (emit_fusion_gpr_load): Likewise.
19506         (emit_fusion_p9_load): Likewise.
19507         (emit_fusion_p9_store): Likewise.
19508         * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
19509         (fusion_gpr_mem_load): Likewise.
19510         (fusion_addis_mem_combo_load): Likewise.
19511         (fusion_addis_mem_combo_store): Likewise.
19512         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
19513         (fusion_gpr_mem_load): Likewise.
19514         (fusion_addis_mem_combo_load): Likewise.
19515         (fusion_addis_mem_combo_store): Likewise.
19516         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19517         Likewise.
19518         * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
19519         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
19520         (rs6000_preferred_simd_mode): Likewise.
19521         (output_vec_const_move): Likewise.
19522         (rs6000_expand_vector_extract): Likewise.
19523         (rs6000_split_vec_extract_var): Likewise.
19524         (reg_offset_addressing_ok_p): Likewise.
19525         (rs6000_legitimate_offset_address_p): Likewise.
19526         (rs6000_legitimize_address): Likewise.
19527         (rs6000_emit_set_const): Likewise.
19528         (rs6000_const_vec): Likewise.
19529         (rs6000_emit_move): Likewise.
19530         (rs6000_darwin64_record_arg_recurse): Likewise.
19531         (swap_selector_for_mode): Likewise.
19532         (paired_init_builtins): Likewise.
19533         (altivec_init_builtins): Likewise.
19534         (rs6000_expand_float128_convert): Likewise.
19535         (emit_load_locked): Likewise.
19536         (emit_store_conditional): Likewise.
19537         (rs6000_output_function_epilogue): Likewise.
19538         (rs6000_handle_altivec_attribute): Likewise.
19539         (rs6000_function_value): Likewise.
19540         (emit_fusion_gpr_load): Likewise.
19541         (emit_fusion_p9_load): Likewise.
19542         (emit_fusion_p9_store): Likewise.
19543         * config/rx/rx.c (rx_gen_move_template): Likewise.
19544         (flags_from_mode): Likewise.
19545         * config/s390/predicates.md (s390_alc_comparison): Likewise.
19546         (s390_slb_comparison): Likewise.
19547         * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
19548         (s390_vector_mode_supported_p): Likewise.
19549         (s390_cc_modes_compatible): Likewise.
19550         (s390_match_ccmode_set): Likewise.
19551         (s390_canonicalize_comparison): Likewise.
19552         (s390_emit_compare_and_swap): Likewise.
19553         (s390_branch_condition_mask): Likewise.
19554         (s390_rtx_costs): Likewise.
19555         (s390_secondary_reload): Likewise.
19556         (__SECONDARY_RELOAD_CASE): Likewise.
19557         (s390_expand_cs): Likewise.
19558         (s390_preferred_simd_mode): Likewise.
19559         * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
19560         * config/sh/sh.c (sh_print_operand): Likewise.
19561         (dump_table): Likewise.
19562         (sh_secondary_reload): Likewise.
19563         * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19564         * config/sh/sh.md (casesi_worker_1): Likewise.
19565         (casesi_worker_2): Likewise.
19566         * config/sparc/predicates.md (icc_comparison_operator): Likewise.
19567         (fcc_comparison_operator): Likewise.
19568         * config/sparc/sparc.c (sparc_expand_move): Likewise.
19569         (emit_soft_tfmode_cvt): Likewise.
19570         (sparc_preferred_simd_mode): Likewise.
19571         (output_cbranch): Likewise.
19572         (sparc_print_operand): Likewise.
19573         (sparc_expand_vec_perm_bmask): Likewise.
19574         (vector_init_bshuffle): Likewise.
19575         * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
19576         (spu_vector_mode_supported_p): Likewise.
19577         (spu_expand_insv): Likewise.
19578         (spu_emit_branch_or_set): Likewise.
19579         (spu_handle_vector_attribute): Likewise.
19580         (spu_builtin_splats): Likewise.
19581         (spu_builtin_extract): Likewise.
19582         (spu_builtin_promote): Likewise.
19583         (spu_expand_sign_extend): Likewise.
19584         * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
19585         (tilegx_simd_int): Likewise.
19586         * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
19587         (tilepro_simd_int): Likewise.
19588         * config/v850/v850.c (const_double_split): Likewise.
19589         (v850_print_operand): Likewise.
19590         (ep_memory_offset): Likewise.
19591         * config/vax/vax.c (vax_rtx_costs): Likewise.
19592         (vax_output_int_move): Likewise.
19593         (vax_output_int_add): Likewise.
19594         (vax_output_int_subtract): Likewise.
19595         * config/visium/predicates.md (visium_branch_operator): Likewise.
19596         * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
19597         (visium_print_operand_address): Likewise.
19598         * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
19599         * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
19600         (xtensa_expand_conditional_branch): Likewise.
19601         (xtensa_copy_incoming_a7): Likewise.
19602         (xtensa_output_literal): Likewise.
19603         * dfp.c (decimal_real_maxval): Likewise.
19604         * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
19605
19606 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19607             Alan Hayward  <alan.hayward@arm.com>
19608             David Sherwood  <david.sherwood@arm.com>
19609
19610         * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
19611         (mode_nunits_inline): Likewise.
19612         (mode_inner_inline): Likewise.
19613         (mode_unit_size_inline): Likewise.
19614         (mode_unit_precision_inline): Likewise.
19615         (emit_insn_modes_h): Likewise.  Also emit a #define of the
19616         unprefixed name.
19617         (emit_mode_wider): Add an E_ prefix to mode names.
19618         (emit_mode_complex): Likewise.
19619         (emit_mode_inner): Likewise.
19620         (emit_mode_adjustments): Likewise.
19621         (emit_mode_int_n): Likewise.
19622         * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
19623         (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
19624         (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
19625         (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
19626         (CRC32_BUILTIN, ENTRY): Likewise.
19627         * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
19628         (aarch64_pop_regs): Likewise.
19629         (aarch64_process_components): Likewise.
19630         * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
19631         * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
19632         (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
19633         (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
19634         * config/arm/arm.c (arm_init_libfuncs): Likewise.
19635         * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
19636         Likewise.
19637         * config/i386/i386-builtin.def (pcmpestr): Likewise.
19638         (pcmpistr): Likewise.
19639         * config/microblaze/microblaze.c (double_memory_operand): Likewise.
19640         * config/mmix/mmix.c (mmix_output_condition): Likewise.
19641         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
19642         Likewise.
19643         * config/rl78/rl78.c (mduc_regs): Likewise.
19644         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
19645         (htm_expand_builtin): Likewise.
19646         * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
19647         * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
19648         * config/xtensa/xtensa.c (print_operand): Likewise.
19649         * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
19650         (NUM_MODE_VECTOR_INT): Likewise.
19651         * genoutput.c (null_operand): Likewise.
19652         (output_operand_data): Likewise.
19653         * genrecog.c (print_parameter_value): Likewise.
19654         * lra.c (debug_operand_data): Likewise.
19655
19656 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19657
19658         * dwarf2out.c (scompare_loc_descriptor_wide)
19659         (scompare_loc_descriptor_narrow): New functions, split out from...
19660         (scompare_loc_descriptor): ...here.
19661         * expmed.c (emit_store_flag_int): New function, split out from...
19662         (emit_store_flag): ...here.
19663
19664 2017-08-30  Richard Biener  <rguenther@suse.de>
19665
19666         * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
19667         (dwarf2out_early_finish): Move setting of AT_pubnames from
19668         early debug output to early finish.
19669
19670 2017-08-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19671
19672         * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
19673         and -mdata-region to the assembler.
19674
19675 2017-08-30  Richard Biener  <rguenther@suse.de>
19676
19677         * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
19678         attributes.
19679         (gen_subprogram_die): Add DW_AT_object_pointer only early.
19680         (dwarf2out_early_global_decl): Only generate a DIE for the
19681         abstract origin if it doesn't already exist or is a declaration DIE.
19682         (resolve_addr): Do not add the linkage name twice when
19683         generating a stub DIE for the DW_TAG_GNU_call_site target.
19684
19685 2017-08-30  Richard Sandiford  <richard.sandiford@linaro.org>
19686
19687         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
19688         Use machine_mode rather than int for arg1_mode.
19689
19690 2017-08-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
19691
19692         PR target/82015
19693         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
19694         that the second argument of the built-in functions to unpack
19695         128-bit scalar types to 64-bit values is 0 or 1.  Change to use a
19696         switch statement instead a lot of if statements.
19697         * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
19698         Allow 64-bit values to be in Altivec registers as well as
19699         traditional floating point registers.
19700         (pack<mode>, FMOVE128_VSX iterator): Likewise.
19701
19702 2017-08-29  Alexander Monakov  <amonakov@ispras.ru>
19703
19704         * ira-costs.c (record_address_regs): Handle both operands of PLUS for
19705         MAX_REGS_PER_ADDRESS == 1.
19706
19707 2017-08-29  Uros Bizjak  <ubizjak@gmail.com>
19708
19709         * config/i386/i386.opt (flag_fentry): Do not init to -1.
19710         * config/i386/i386.c (ix86_option_override_internal): Simplify
19711         setting of opts->x_flag_entry.
19712
19713 2017-08-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19714             Jakub Jelinek  <jakub@redhat.com>
19715             Richard Biener  <rguenther@suse.de>
19716
19717         PR tree-optimization/81503
19718         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
19719         folded constant fits in the target type; reorder tests for clarity.
19720
19721 2017-08-29  Martin Liska  <mliska@suse.cz>
19722
19723         * passes.def: Include pass_lower_switch.
19724         * stmt.c (dump_case_nodes): Remove and move to
19725         tree-switch-conversion.
19726         (case_values_threshold): Likewise.
19727         (expand_switch_as_decision_tree_p): Likewise.
19728         (emit_case_decision_tree): Likewise.
19729         (expand_case): Likewise.
19730         (balance_case_nodes): Likewise.
19731         (node_has_low_bound): Likewise.
19732         (node_has_high_bound): Likewise.
19733         (node_is_bounded): Likewise.
19734         (emit_case_nodes): Likewise.
19735         (struct simple_case_node): New struct.
19736         (add_case_node): Remove.
19737         (emit_case_dispatch_table): Use vector instead of case_list.
19738         (reset_out_edges_aux): Remove.
19739         (compute_cases_per_edge): Likewise.
19740         (expand_case): Build list of simple_case_node.
19741         (expand_sjlj_dispatch_table): Use it.
19742         * tree-switch-conversion.c (struct case_node): Moved from
19743         stmt.c and adjusted.
19744         (emit_case_nodes): Likewise.
19745         (node_has_low_bound): Likewise.
19746         (node_has_high_bound): Likewise.
19747         (node_is_bounded): Likewise.
19748         (case_values_threshold): Likewise.
19749         (reset_out_edges_aux): Likewise.
19750         (compute_cases_per_edge): Likewise.
19751         (add_case_node): Likewise.
19752         (dump_case_nodes): Likewise.
19753         (balance_case_nodes): Likewise.
19754         (expand_switch_as_decision_tree_p): Likewise.
19755         (emit_jump): Likewise.
19756         (emit_case_decision_tree): Likewise.
19757         (try_switch_expansion): Likewise.
19758         (do_jump_if_equal): Likewise.
19759         (emit_cmp_and_jump_insns): Likewise.
19760         (fix_phi_operands_for_edge): New function.
19761         (record_phi_operand_mapping): Likewise.
19762         (class pass_lower_switch): New pass.
19763         (pass_lower_switch::execute): New function.
19764         (make_pass_lower_switch): Likewise.
19765         (conditional_probability):
19766         * timevar.def: Add TV_TREE_SWITCH_LOWERING.
19767         * tree-pass.h: Add make_pass_lower_switch.
19768
19769 2017-08-29  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
19770
19771         PR target/80993
19772         * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
19773         handlers as used.
19774
19775 2017-08-29  Richard Biener  <rguenther@suse.de>
19776
19777         * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
19778         we do not add a DW_AT_inline attribute twice.
19779         (gen_subprogram_die): Remove code setting DW_AT_inline on
19780         DECL_ABSTRACT_P nodes.
19781
19782 2017-08-29  Richard Sandiford  <richard.sandiford@linaro.org>
19783
19784         * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
19785         calls to internal functions.
19786         (gimplify_modify_expr): Likewise.
19787         * tree-call-cdce.c (use_internal_fn): Likewise.
19788         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
19789         (convert_to_divmod): Set the nothrow flag.
19790         * tree-if-conv.c (predicate_mem_writes):  Likewise.
19791         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
19792         (vectorizable_call): Likewise.
19793         (vectorizable_store): Likewise.
19794         (vectorizable_load): Likewise.
19795         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
19796         (vect_recog_mask_conversion_pattern): Likewise.
19797
19798 2017-08-29  Martin Liska  <mliska@suse.cz>
19799
19800         PR other/39851
19801         * gcc.c (driver_handle_option): Add new argument.
19802         * opts-common.c (handle_option): Pass
19803         target_option_override_hook.
19804         * opts-global.c (lang_handle_option): Add new option.
19805         (set_default_handlers):  Add new argument.
19806         (decode_options): Likewise.
19807         * opts.c (target_handle_option): Likewise.
19808         (common_handle_option): Call target_option_override_hook.
19809         * opts.h (struct cl_option_handler_func): Add hook for
19810         target option override.
19811         (struct cl_option_handlers): Likewise.
19812         (set_default_handlers): Add new argument.
19813         (decode_options): Likewise.
19814         (common_handle_option): Likewise.
19815         (target_handle_option): Likewise.
19816         * toplev.c (toplev::main): Pass targetm.target_option.override
19817         hook.
19818
19819 2017-08-29  Richard Biener  <rguenther@suse.de>
19820         Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
19821
19822         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
19823         life to the active subtree.
19824
19825 2017-08-28  Jeff Law  <law@redhat.com>
19826
19827         * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
19828         derive_equivalences.
19829         (derive_equivalences_from_bit_ior, record_temporary_equivalences):
19830         Code moved into....
19831         (edge_info::derive_equivalences): New private member function
19832
19833         * tree-ssa-dom.c (class edge_info): Changed from a struct
19834         to a class.  Add ctor/dtor, methods and data members.
19835         (edge_info::edge_info): Renamed from allocate_edge_info.
19836         Initialize additional members.
19837         (edge_info::~edge_info): New.
19838         (free_dom_edge_info): Delete the edge info.
19839         (record_edge_info): Use new class & associated member functions.
19840         Tighten forms for testing for edge equivalences.
19841         (record_temporary_equivalences): Iterate over the simple
19842         equivalences rather than assuming there's only one per edge.
19843         (cprop_into_successor_phis): Iterate over the simple
19844         equivalences rather than assuming there's only one per edge.
19845         (optimize_stmt): Use operand_equal_p rather than pointer
19846         equality for mini-DSE code.
19847
19848 2017-08-28  Nathan Sidwell  <nathan@acm.org>
19849
19850         * gcc.c (execute): Fold SIGPIPE handling into switch
19851         statement.  Adjust internal error message.
19852
19853 2017-08-28  Richard Biener  <rguenther@suse.de>
19854
19855         PR debug/81993
19856         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
19857         Do nothing for removed DIEs.
19858
19859 2017-08-28  Richard Biener  <rguenther@suse.de>
19860
19861         PR tree-optimization/81977
19862         * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
19863         memcpy.
19864
19865 2017-08-28  Alexander Monakov  <amonakov@ispras.ru>
19866
19867         PR target/80640
19868         * doc/md.texi (mem_thread_fence): Remove mention of mode.  Rewrite.
19869         * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
19870         using targetm.gen_mem_thread_fence.
19871
19872 2017-08-27  Uros Bizjak  <ubizjak@gmail.com>
19873
19874         PR target/81995
19875         * config/i386/i386.md (*<btsc><mode>): Change operand 2
19876         predicate to register_operand.  Reorder operands.
19877         (*btr<mode>): Ditto.
19878         (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
19879         (*btr<mode>_mask): Ditto.
19880
19881 2017-08-25  Steven Munroe  <munroesj@gcc.gnu.org>
19882
19883         * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
19884         * config/rs6000/xmmintrin.h: New file.
19885         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
19886
19887 2017-08-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
19888
19889         PR target/81504
19890         * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
19891         parameter and_insn and return it.
19892         (recombine_lvx_pattern): Insert a copy to ensure availability of
19893         the base register of the copied masking operation at the point of
19894         the instruction replacement.
19895         (recombine_stvx_pattern): Likewise.
19896
19897 2017-08-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
19898
19899         * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
19900         undocumented switches.
19901         (-mpower9-dform-vector): Likewise.
19902         (-mpower9-dform): Likewise.
19903         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
19904         comments to delete references to -mpower9-dform* switches.
19905         * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
19906         Delete reference to -mpower9-dform* switches, test for
19907         -mpower9-vector instead.
19908         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
19909         (OTHER_P9_VECTOR_MASKS): Likewise.
19910         (POWERPC_MASKS): Likewise.
19911         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
19912         tests against -mpower9-dform* to -mpower9-vector.  Delete code
19913         that checked for -mpower9-dform* consistancy with other options.
19914         Add test for -mpower9-misc to enable other power9 switches.
19915         (rs6000_init_hard_regno_mode_ok): Likewise.
19916         (rs6000_option_override_internal): Likewise.
19917         (rs6000_emit_prologue): Likewise.
19918         (rs6000_emit_epilogue): Likewise.
19919         (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
19920         (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
19921         (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
19922         -mpower9-vector.
19923         (emit_fusion_p9_store): Likewise.
19924         * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
19925         resetting these macros if the assembler does not support ISA 3.0
19926         instructions.
19927         (TARGET_P9_DFORM_VECTOR): Likewise.
19928         * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
19929         Change to use -mpower9-vector instead of -mpower9-dform-scalar.
19930
19931 2017-08-25  Alan Modra  <amodra@gmail.com>
19932
19933         PR rtl-optimization/81747
19934         * cse.c (cse_extended_basic_block): Don't attempt to record
19935         equivalences for degenerate conditional branches that branch
19936         to their fall-through.
19937
19938 2017-08-24  Martin Sebor  <msebor@redhat.com>
19939
19940         PR middle-end/81908
19941         * gimple-fold.c (size_must_be_zero_p): New function.
19942         (gimple_fold_builtin_memory_op): Call it.
19943
19944 2017-08-24  Steven Munroe  <munroesj@gcc.gnu.org>
19945
19946         * config/rs6000/mm_malloc.h: New file.
19947
19948 2017-08-24  Bin Cheng  <bin.cheng@arm.com>
19949
19950         PR tree-optimization/81913
19951         * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
19952         analysis when either IVs in condition can wrap.
19953
19954 2017-08-24  Uros Bizjak  <ubizjak@gmail.com>
19955
19956         * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
19957         * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
19958
19959 2017-08-24  Richard Biener  <rguenther@suse.de>
19960
19961         PR target/81921
19962         * targhooks.c (default_target_can_inline_p): Properly
19963         use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
19964         is present and always compare.
19965         * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
19966         infer -mfpmath=sse from TARGET_SSE_P.
19967         (ix86_can_inline_p): Properly use target_option_default_node when
19968         no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
19969
19970 2017-08-24  Richard Biener  <rguenther@suse.de>
19971
19972         PR debug/81936
19973         * dwarf2out.c (output_die): Handle flag_generate_offload like
19974         flag_generate_lto.
19975         (output_comp_unit): Likewise.
19976         (gen_array_type_die): Likewise.
19977         (dwarf2out_early_finish): Likewise.
19978         (note_variable_value_in_expr): Likewise.
19979         (dwarf2out_finish): Likewise.  Adjust assert.
19980         * cgraphunit.c (symbol_table::compile): Move setting of
19981         flag_generate_offload earlier ...
19982         (symbol_table::finalize_compilation_unit): ... here, before
19983         early debug finalization.
19984
19985 2017-08-24  Richard Biener  <rguenther@suse.de>
19986
19987         * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
19988         and ipa-fnsummary.h.
19989         (ix86_can_inline_p): When ix86_fpmath flags do not match
19990         check whether the callee uses FP math at all.
19991
19992 2017-08-24  Aldy Hernandez  <aldyh@redhat.com>
19993
19994         PR middle-end/81931
19995         * tree-ssanames.c (get_nonzero_bits): Use element_precision
19996         instead of TYPE_PRECISION.
19997
19998 2017-08-24  Richard Sandiford  <richard.sandiford@linaro.org>
19999             Alan Hayward  <alan.hayward@arm.com>
20000             David Sherwood  <david.sherwood@arm.com>
20001
20002         * combine.c (make_extraction): Use subreg_offset_from_lsb.
20003
20004 2017-08-23  Daniel Santos  <daniel.santos@pobox.com>
20005
20006         * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
20007         Remove field.
20008         (ix86_frame::stack_realign_allocate): New field.
20009         (struct machine_frame_state): Modify comments.
20010         (machine_frame_state::sp_realigned_fp_end): New field.
20011         * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
20012         layout calculation.
20013         (sp_valid_at): Add assertion to assure no attempt to access invalid
20014         offset of a realigned stack.
20015         (fp_valid_at): Likewise.
20016         (choose_baseaddr): Modify comments.
20017         (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
20018         ix86_expand_prologue.
20019         (ix86_expand_prologue): Modify stack realignment and allocation.
20020         (ix86_expand_epilogue): Modify comments.
20021         * doc/sourcebuild.texi: Add documentation for target selectors avx2,
20022         avx2_runtime, avx512f, and avx512f_runtime.
20023
20024 2017-08-23  Uros Bizjak  <ubizjak@gmail.com>
20025
20026         * config/i386/i386.opt: Remove unneeded Init(0) initializations.
20027         (mstackrealign): Do not init to -1.
20028         * config/i386/i386.c (ix86_option_override_internal):
20029         Check opts_set, not opts when setting default value of
20030         opts->x_ix86_force_align_arg_pointer.
20031
20032 2017-08-23  Richard Biener  <rguenther@suse.de>
20033
20034         * function.c (fndecl_name): Use verbosity 1 (no arguments) for
20035         lang_hooks.decl_printable_name.
20036         * print-rtl-function.c (print_rtx_function): Likewise.
20037         * tree-pretty-print.c (dump_function_header): Likewise.
20038
20039 2017-08-23  Richard Biener  <rguenther@suse.de>
20040
20041         PR lto/81940
20042         * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
20043         -g0 at compile-time.
20044
20045 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
20046
20047         PR middle-end/19706
20048         * doc/sourcebuild.texi (Other hardware attributes):
20049         Document xorsign.
20050
20051 2017-08-23  Tamar Christina  <tamar.christina@arm.com>
20052
20053         PR middle-end/19706
20054         * tree-ssa-math-opts.c (convert_expand_mult_copysign):
20055         Fix single-use check.
20056
20057 2017-08-23  Thomas Preud'homme  <thomas.preudhomme@arm.com>
20058
20059         * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
20060
20061 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
20062
20063         * doc/install.texi: Modify to add more details on running selected
20064         tests.
20065
20066 2017-08-22  Daniel Santos  <daniel.santos@pobox.com>
20067
20068         * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
20069         is combined with -mabi=ms.
20070         (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
20071         ms_abi.
20072
20073 2017-08-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20074
20075         PR tree-optimization/81488
20076         * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
20077         and cached_basis fields.
20078         (MAX_SPREAD): New constant.
20079         (alloc_cand_and_find_basis): Initialize new fields.
20080         (clear_visited): New function.
20081         (create_phi_basis_1): Rename from create_phi_basis, set visited
20082         and cached_basis fields.
20083         (create_phi_basis): New wrapper function.
20084         (phi_add_costs_1): Rename from phi_add_costs, add spread
20085         parameter, set visited field, short-circuit when limits reached.
20086         (phi_add_costs): New wrapper function.
20087         (record_phi_increments_1): Rename from record_phi_increments, set
20088         visited field.
20089         (record_phi_increments): New wrapper function.
20090         (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
20091         (phi_incr_cost): New wrapper function.
20092         (all_phi_incrs_profitable_1): Rename from
20093         all_phi_incrs_profitable, set visited field.
20094         (all_phi_incrs_profitable): New wrapper function.
20095
20096 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
20097             Alan Hayward  <alan.hayward@arm.com>
20098             David Sherwood  <david.sherwood@arm.com>
20099
20100         * rtl.h (paradoxical_subreg_p): Define inline, and add a version
20101         that takes the outer and inner modes.
20102         * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
20103         comparison as the canonical test for a paradoxical subreg.
20104         * combine.c (simplify_set): Use paradoxical_subreg_p.
20105         (make_extraction): Likewise.
20106         (force_to_mode): Likewise.
20107         (rtx_equal_for_field_assignment_p): Likewise.
20108         (gen_lowpart_for_combine): Likewise.
20109         (simplify_comparison): Likewise.
20110         * cse.c (equiv_constant): Likewise.
20111         * expmed.c (store_bit_field_1): Likewise.
20112         * final.c (alter_subreg): Likewise.
20113         * fwprop.c (propagate_rtx): Likewise.
20114         (forward_propagate_subreg): Likewise.
20115         * ira-conflicts.c (ira_build_conflicts): Likewise.
20116         * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
20117         * lra-constraints.c (curr_insn_transform): Likewise.
20118         (split_reg): Likewise.
20119         * lra-eliminations.c (move_plus_up): Likewise.
20120         (lra_eliminate_regs_1): Likewise.
20121         * recog.c (general_operand): Likewise.
20122         * ree.c (combine_reaching_defs): Likewise.
20123         * reload.c (push_reload): Likewise.
20124         (find_reloads): Likewise.
20125         * reload1.c (elimination_effects): Likewise.
20126         (compute_reload_subreg_offset): Likewise.
20127         (choose_reload_regs): Likewise.
20128         * rtlanal.c (subreg_lsb_1): Likewise.
20129         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
20130         (simplify_subreg): Likewise.
20131         * var-tracking.c (track_loc_p): Likewise.
20132         * emit-rtl.c (byte_lowpart_offset): Likewise.
20133         (paradoxical_subreg_p): Delete out-of-line definition.
20134
20135 2017-08-22  Jeff Law  <law@redhat.com>
20136
20137         PR tree-optimization/81741
20138         PR tree-optimization/71947
20139         * tree-ssa-dom.c: Include tree-inline.h.
20140         (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
20141         equivalences if one is more expensive to compute than the other.
20142         * tree-ssa-scopedtables.h (class const_or_copies): Make
20143         record_const_or_copy_raw method private.
20144         (class avail_exprs_stack): New method simplify_binary_operation.
20145         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
20146         avail_exprs_stack::simplify_binary_operation as needed.
20147         (avail_exprs_stack::simplify_binary_operation): New function.
20148
20149 2017-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>
20150
20151         * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
20152         * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
20153         (DOT_SYMBOLS): Likewise.
20154         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
20155         (RELOCATABLE_NEEDS_FIXUP): Likewise.
20156         (RS6000_ABI_NAME): Likewise.
20157         (TARGET_CMODEL): Likewise.
20158         (TOC_SECTION_ASM_OP): Likewise.
20159         (SET_CMODEL): New macro.
20160         (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
20161
20162 2017-08-22  Richard Biener  <rguenther@suse.de>
20163
20164         * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
20165         to allow for free-lang-data replacements similar to verify_type_variant.
20166
20167 2017-08-22  Richard Sandiford  <richard.sandiford@linaro.org>
20168             Alan Hayward  <alan.hayward@arm.com>
20169             David Sherwood  <david.sherwood@arm.com>
20170
20171         * config/aarch64/aarch64.md (casesi): Use DImode rather than
20172         VOIDmode for the LABEL_REF.
20173
20174 2017-08-22  Richard Biener  <rguenther@suse.de>
20175
20176         * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
20177
20178 2017-08-22  Richard Biener  <rguenther@suse.de>
20179
20180         * common.opt (feliminate-dwarf2-dups): Ignore.
20181         * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
20182         * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
20183         same_die_p_wrap, compute_section_prefix,
20184         is_symbol_die, assign_symbol_names, break_out_includes): Remove.
20185         (comdat_symbol_id, comdat_symbol_number): Likewise.
20186         (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
20187         Likewise.
20188         (check_duplicate_cu, record_comdat_symbol_number): Likewise.
20189         (output_die): Mark unreachable path unreachable.
20190         (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
20191         (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
20192         (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
20193         (dwarf2out_early_finish): Likewise.
20194
20195 2017-08-22  Aldy Hernandez  <aldyh@redhat.com>
20196
20197         * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
20198
20199 2017-08-22  Georg-Johann Lay  <avr@gjlay.de>
20200
20201         PR target/81910
20202         * config/avr/avr.c (avr_handle_addr_attribute): Early return if
20203         not VAR_P. Filter attribute warnings with OPT_Wattributes.
20204         (avr_attribute_table) <io, io_low, address>: Initialize
20205         .decl_required with true.
20206
20207 2017-08-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
20208
20209         * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
20210         undocumented debugging options.
20211         (-mvsx-scalar-double): Likewise.
20212         (-mallow-df-permute): Likewise.
20213         (-mvectorize-builtins): Likewise.
20214         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
20215         (rs6000_builtin_vectorized_function): Likewise.
20216         (rs6000_builtin_md_vectorized_function): Likewise.
20217         (rs6000_opt_vars): Likewise.
20218
20219 2017-08-21  Uros Bizjak  <ubizjak@gmail.com>
20220
20221         PR target/46091
20222         * config/i386/i386.md (*btsq_imm): Rename from *btsq.
20223         (*btrq_imm): Rename from *btrq.
20224         (*btcq_imm): Rename from *btcq.
20225         (btsc): New code attribute.
20226         (*<btsc><mode>): New insn pattern.
20227         (*btr<mode>): Ditto.
20228         (*<btsc><mode>_mask): New insn_and_split pattern.
20229         (*btr<mode>_mask): Ditto.
20230
20231 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20232             Alan Hayward  <alan.hayward@arm.com>
20233             David Sherwood  <david.sherwood@arm.com>
20234
20235         * function.c (pad_below): Simplify padding calculation.
20236
20237 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20238             Alan Hayward  <alan.hayward@arm.com>
20239             David Sherwood  <david.sherwood@arm.com>
20240
20241         * target.def (function_prologue): Remove frame size argument.
20242         (function_epilogue): Likewise.
20243         * doc/tm.texi: Regenerate.
20244         * final.c (final_start_function): Update call to function_prologue.
20245         (final_end_function): Update call to function_epilogue.
20246         (default_function_pro_epilogue): Remove frame size argument.
20247         * output.h (default_function_pro_epilogue): Likewise.
20248         * config/arm/arm.c (arm_output_function_epilogue): Likewise.
20249         (arm_output_function_prologue): Likewise.
20250         * config/frv/frv.c (frv_function_prologue): Likewise.
20251         (frv_function_epilogue): Likewise.
20252         * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
20253         * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
20254         (ia64_output_function_epilogue): Likewise.
20255         * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
20256         (m32r_output_function_epilogue): Likewise.
20257         * config/microblaze/microblaze.c (microblaze_function_prologue)
20258         (microblaze_function_epilogue): Likewise.
20259         * config/mips/mips.c (mips_output_function_prologue): Likewise.
20260         (mips_output_function_epilogue): Likewise.
20261         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
20262         (mmix_target_asm_function_epilogue): Likewise.
20263         * config/msp430/msp430.c (msp430_start_function): Likewise.
20264         * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
20265         (nds32_asm_function_epilogue): Likewise.
20266         * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
20267         * config/pa/pa.c (pa_output_function_prologue): Likewise.
20268         (pa_output_function_epilogue): Likewise.
20269         * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
20270         (rs6000_output_function_epilogue): Likewise.
20271         * config/rl78/rl78.c (rl78_start_function): Likewise.
20272         * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
20273         (rs6000_output_function_epilogue): Likewise.
20274         * config/rx/rx.c (rx_output_function_prologue): Likewise.
20275         * config/sh/sh.c (sh_output_function_epilogue): Likewise.
20276         * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
20277         (sparc_asm_function_epilogue): Likewise.
20278
20279 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20280
20281         * tree.h (type_has_mode_precision_p): New function.
20282         * convert.c (convert_to_integer_1): Use it.
20283         * expr.c (expand_expr_real_2): Likewise.
20284         (expand_expr_real_1): Likewise.
20285         * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
20286         * match.pd: Likewise.
20287         * tree-ssa-forwprop.c (simplify_rotate): Likewise.
20288         * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
20289         * tree-tailcall.c (process_assignment): Likewise.
20290         * tree-vect-loop.c (vectorizable_reduction): Likewise.
20291         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
20292         (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
20293         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
20294         (vectorizable_assignment): Likewise.
20295         (vectorizable_shift): Likewise.
20296         (vectorizable_operation): Likewise.
20297         * tree-vrp.c (register_edge_assert_for_2): Likewise.
20298
20299 2017-08-21  Wilco Dijkstra  <wdijkstr@arm.com>
20300
20301         * match.pd: Add pow (C, x) simplification.
20302
20303 2017-08-21  Richard Biener  <rguenther@suse.de>
20304
20305         PR tree-optimization/81900
20306         * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
20307         for blocks with abnormal predecessors.
20308         (compute_antic): Do not set visited flag prematurely.
20309
20310 2017-08-21  Georg-Johann Lay  <avr@gjlay.de>
20311
20312         PR target/79883
20313         * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
20314
20315 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20316
20317         * stor-layout.h (vector_type_mode): Move to...
20318         * tree.h (vector_type_mode): ...here.
20319         * stor-layout.c (vector_type_mode): Move to...
20320         * tree.c (vector_type_mode): ...here.  Include rtl.h and regs.h.
20321
20322 2017-08-21  Richard Biener  <rguenther@suse.de>
20323
20324         * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
20325         register_external_die hooks.
20326         (debug_false_tree_charstarstar_uhwistar): Declare.
20327         (debug_nothing_tree_charstar_uhwi): Likewise.
20328         * debug.c (do_nothing_debug_hooks): Adjust.
20329         (debug_false_tree_charstarstar_uhwistar): New do nothing.
20330         (debug_nothing_tree_charstar_uhwi): Likewise.
20331         * dbxout.c (dbx_debug_hooks): Adjust.
20332         (xcoff_debug_hooks): Likewise.
20333         * sdbout.c (sdb_debug_hooks): Likewise.
20334         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
20335         * dwarf2out.c (macinfo_label_base): New global.
20336         (dwarf2out_register_external_die): New function for the
20337         register_external_die hook.
20338         (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
20339         (dwarf2_debug_hooks): Use them.
20340         (dwarf2_lineno_debug_hooks): Adjust.
20341         (struct die_struct): Add with_offset flag.
20342         (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
20343         DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
20344         DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
20345         DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
20346         DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
20347         DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
20348         defining section names for the early LTO debug variants.
20349         (reset_indirect_string): New helper.
20350         (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
20351         (print_dw_val): Add support for offsetted symbol references.
20352         (get_ultimate_context): Split out from is_cxx.
20353         (is_cxx): Use get_ultimate_context.
20354         (is_fortran): Add decl overload.
20355         (compute_comp_unit_symbol): Split out worker from
20356         compute_section_prefix.
20357         (compute_section_prefix): Call compute_comp_unit_symbol and
20358         set comdat_type_p here.
20359         (output_die): Skip DIE symbol output for the LTO added one.
20360         Handle DIE symbol references with offset.
20361         (output_comp_unit): Guard section name mangling properly.
20362         For LTO debug sections emit a symbol at the section beginning
20363         which we use to refer to its DIEs.
20364         (add_abstract_origin_attribute): For DIEs registered via
20365         dwarf2out_register_external_die directly refer to the early
20366         DIE rather than indirectly through the shadow one we created.
20367         Remove obsolete call to dwarf2out_abstract_function for
20368         non-function/block origins.
20369         (gen_array_type_die): When generating early LTO debug do
20370         not emit DW_AT_string_length.
20371         (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
20372         late when in LTO.  As suggested place a gcc_unreachable for
20373         the DECL_ABSTRACT_P case.
20374         (gen_subprogram_die): Avoid another specification DIE
20375         for early built declarations/definitions for the late LTO case.
20376         (gen_variable_die): Add type references for late duplicated VLA dies
20377         when in late LTO.
20378         (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
20379         we have the abstract instance already.
20380         (process_scope_var): Adjust decl DIE contexts in LTO which
20381         first puts them in limbo.
20382         (gen_decl_die): Do not generate type DIEs late apart from
20383         types for VLAs or for decls we do not yet have a DIE.  Do not
20384         call dwarf2out_abstract_function late.
20385         (dwarf2out_early_global_decl): Make sure to create DIEs
20386         for abstract instances of a decl first.
20387         (dwarf2out_late_global_decl): Adjust comment.
20388         (output_macinfo_op): With multiple macro sections use
20389         macinfo_label_base to distinguish labels.
20390         (output_macinfo): Likewise.  Update macinfo_label_base.
20391         Pass in the line info label.
20392         (note_variable_value_in_expr): When generating LTO resolve
20393         all variable values here by generating DIEs as needed.
20394         (init_sections_and_labels): Add early LTO debug flag parameter
20395         and generate different sections and names if set.  Add generation
20396         counter for the labels so we can have multiple of them.
20397         (reset_dies): Helper to allow DIEs to be output multiple times.
20398         (dwarf2out_finish): When outputting DIEs to the fat part of an
20399         LTO object first reset DIEs.
20400         (dwarf2out_early_finish): Output early DIEs when generating LTO.
20401         (modified_type_die): Check for decl_ultimate_origin being self
20402         before recursing.
20403         (gen_type_die_with_usage): Likewise.
20404         (gen_typedef_die): Allow decl_ultimate_origin being self.
20405         (set_decl_abstract_flags): Remove.
20406         (set_block_abstract_flags): Likewise.
20407         (dwarf2out_abstract_function): Treat the early generated DIEs
20408         as the abstract copy and only add DW_AT_inline and
20409         DW_AT_artificial here and call set_decl_origin_self.
20410         If the DIE has an abstract origin don't do anything.
20411         * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
20412         if we have none yet (Go fails to build one, PR78628).
20413         (variably_modified_type_p): Prevent endless recursion for Ada
20414         cyclic pointer types.
20415         * lto-streamer-in.c: Include debug.h.
20416         (dref_queue): New global.
20417         (lto_read_tree_1): Stream in DIE references.
20418         (lto_input_tree): Register DIE references.
20419         (input_function): Stream DECL_DEBUG_ARGS.
20420         * lto-streamer-out.c: Include debug.h.
20421         (lto_write_tree_1): Output DIE references.
20422         (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
20423         Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
20424         (output_function): Stream DECL_DEBUG_ARGS.
20425         * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
20426         Stream DECL_ABSTRACT_ORIGIN.
20427         * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
20428         (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
20429         DECL_CONTEXT for file-scope decls.
20430         * lto-streamer.h (struct dref_entry): Declare.
20431         (dref_queue): Likewise.
20432         * cfgexpand.c (pass_expand::execute): Do not call the
20433         outlining_inline_function hook here.
20434         * lto-wrapper.c (debug_obj): New global.
20435         (tool_cleanup): Unlink it if required.
20436         (debug_objcopy): New function.
20437         (run_gcc): Handle early debug sections in the IL files by
20438         extracting them to separate files, partially linkin them and
20439         feeding the result back as result to the linker.
20440         * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
20441         DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
20442         DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
20443         sections into a separate segment.
20444         * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
20445         segments.
20446         (darwin_asm_dwarf_section): Likewise.
20447         (darwin_asm_output_dwarf_offset): Likewise.
20448         * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
20449
20450 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20451             Alan Hayward  <alan.hayward@arm.com>
20452             David Sherwood  <david.sherwood@arm.com>
20453
20454         * read-md.h (md_reader::record_potential_iterator_use): Replace
20455         pointer argument with an rtx and an index.
20456         * read-rtl.c (iterator_group::apply_iterator): Likewise.
20457         (apply_mode_iterator): Likewise.
20458         (apply_code_iterator): Likewise.
20459         (apply_int_iterator): Likewise.
20460         (apply_subst_iterator): Likewise.
20461         (record_iterator_use): Likewise.
20462         (record_attribute_use): Likewise.
20463         (md_reader::record_potential_iterator_use): Likewise.  Update calls
20464         to record_iterator_use and apply_iterator.
20465         (iterator_use): Replace ptr with x and index.
20466         (attribute_use): Likewise.
20467         (apply_attribute_uses): Update calls to apply_iterator.
20468         (apply_iterators): Likewise.  Update initialization of iterator_use.
20469         (rtx_reader::read_rtx_code): Update calls to record_iterator_use
20470         and record_potential_iterator_use.
20471         (rtx_reader::read_rtx_operand): Likewise.
20472
20473 2017-08-21  Richard Sandiford  <richard.sandiford@linaro.org>
20474             Alan Hayward  <alan.hayward@arm.com>
20475             David Sherwood  <david.sherwood@arm.com>
20476
20477         * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
20478         CONST_WIDE_INT.
20479
20480 2017-08-21  Richard Biener  <rguenther@suse.de>
20481
20482         PR middle-end/81884
20483         * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
20484         at struct end conservatively when comparing common bases.
20485
20486 2017-08-21  Richard Biener  <rguenther@suse.de>
20487
20488         * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
20489         (mem_ref_in_stmt): Remove.
20490         (determine_max_movement): Use ref index to get at the reference.
20491         (invariantness_dom_walker::before_dom_children): Deal with
20492         lim data already initialized.
20493         (gather_mem_refs_stmt): Initialize lim data and record ref index.
20494
20495 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
20496
20497         * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
20498         (TARGET_ISA_ROUND): Ditto.
20499         (TARGET_ROUND): Ditto.
20500         * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
20501         * config/i386/i386.md: Ditto.
20502         * config/i386/sse.md: Ditto.
20503         * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
20504         with OPTION_MASK_ISA_SSE4_1.
20505
20506 2017-08-19  Uros Bizjak  <ubizjak@gmail.com>
20507
20508         PR target/81894
20509         * doc/extend.texi (x86 Built-in Functions): Correct the name of
20510         __builtin_ia32_lzcnt_u16.
20511
20512 2017-08-18  Peter Bergner  <bergner@vnet.ibm.com>
20513
20514         PR target/80210
20515         * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
20516         (rs6000_set_current_function): Rewrite function to use it.
20517
20518 2017-08-18  H.J. Lu  <hongjiu.lu@intel.com>
20519
20520         PR c/53037
20521         * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
20522         and TYPE_WARN_IF_NOT_ALIGN.
20523         * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
20524         (handle_warn_if_not_align): New.
20525         (place_union_field): Call handle_warn_if_not_align.
20526         (place_field): Call handle_warn_if_not_align.
20527         Copy TYPE_WARN_IF_NOT_ALIGN.
20528         (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
20529         (layout_type): Likewise.
20530         * tree-core.h (tree_type_common): Add warn_if_not_align.  Set
20531         spare to 18.
20532         (tree_decl_common): Add warn_if_not_align.
20533         * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
20534         * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
20535         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
20536         (DECL_WARN_IF_NOT_ALIGN): Likewise.
20537         (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
20538         * doc/extend.texi: Document warn_if_not_aligned attribute.
20539         * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
20540
20541 2017-08-17  Martin Liska  <mliska@suse.cz>
20542
20543         PR bootstrap/81864
20544         * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
20545         (get_data_dependence): Use it as pointer type.
20546         (distribute_loop): Likewise.
20547
20548 2017-08-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20549
20550         * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
20551         (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
20552         (p8_vmrgow_<mode>_direct): New define_insn.
20553         * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
20554         handle endianness for vmrgew and vmrgow permute patterns.
20555
20556 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
20557
20558         * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
20559         * config/rs6000/rs6000-cpus.def: Remove comment.
20560         (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
20561         (POWERPC_MASKS): Likewise.
20562         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
20563         use of TARGET_VSX_TIMODE.
20564         (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
20565         (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
20566         TARGET_VSX_TIMODE.  Change use of TARGET_VSX_TIMODE to TARGET_VSX.
20567         (rs6000_option_override_internal): Remove dead code.
20568         (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
20569         (rs6000_legitimize_reload_address): Likewise.
20570         (rs6000_legitimate_address_p): Likewise.
20571         (rs6000_opt_masks): Delete "vsx-timode".
20572         (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
20573         from function comment.
20574         * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
20575         * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
20576         (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
20577         condition.
20578         * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
20579         * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
20580         * config/rs6000/vsx.md (VSX_LE_128): Likewise.
20581         (VSX_TI): Likewise.
20582         (VSX_M): Likewise.
20583         (define_peephole2): Likewise.
20584
20585 2017-08-17  Martin Sebor  <msebor@redhat.com>
20586
20587         PR c/81859
20588         * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
20589         past the end of an array.
20590         (test_pp_format): Add test cases.
20591
20592 2017-08-17  Richard Sandiford  <richard.sandiford@linaro.org>
20593
20594         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
20595         missing ECF_NOTHROW flags.
20596
20597 2017-08-17  Peter Bergner  <bergner@vnet.ibm.com>
20598
20599         PR target/72804
20600         * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
20601         operands residing in integer registers.
20602         (*vsx_le_perm_load_<mode>): Likewise.
20603         (*vsx_le_perm_store_<mode>): Likewise.
20604         (define_peephole2): Add peepholes to optimize the above.
20605
20606 2017-08-17  Marek Polacek  <polacek@redhat.com>
20607
20608         PR middle-end/81814
20609         * fold-const.c (operand_equal_for_comparison_p): Remove code that used
20610         to mimic what shorten_compare did.  Change the return type to bool.
20611         (fold_cond_expr_with_comparison): Update call to
20612         operand_equal_for_comparison_p.
20613         (fold_ternary_loc): Likewise.
20614
20615 2017-08-17  Jackson Woodruff  <jackson.woodruff@arm.com>
20616
20617         * aarch64-simd.md (mov<mode>): No longer force zero immediate into
20618         register.
20619         (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
20620
20621 2017-08-17  Richard Biener  <rguenther@suse.de>
20622
20623         * tree-ssa-structalias.c (solve_graph): When propagating
20624         to successors update the graphs succ edges and avoid duplicate work.
20625
20626 2017-08-17  Maxim Ostapenko  <m.ostapenko@samsung.com>
20627
20628         PR target/81861
20629         * config/i386/i386.c (ix86_option_override_internal): Save target
20630         specific options after ix86_stack_protector_guard_reg was changed.
20631
20632 2017-08-17  Richard Biener  <rguenther@suse.de>
20633
20634         PR tree-optimization/81827
20635         * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
20636         (new_var_info): Initialize it conservatively.
20637         (get_call_vi): Mark register vars.
20638         (new_scalar_tmp_constraint_exp): Likewise.
20639         (handle_rhs_call): Likewise.
20640         (handle_const_call): Likewise.
20641         (create_function_info_for): Likewise.
20642         (solve_constraints): Sort varinfos to separate register from
20643         non-register vars to pack points-to solution bitmaps during
20644         iteration.
20645
20646 2017-08-17  Marek Polacek  <polacek@redhat.com>
20647
20648         * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
20649
20650 2017-08-17  Richard Biener  <rguenther@suse.de>
20651
20652         * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
20653         to true when overflow is undefined and we saturated the result.
20654
20655 2017-08-17  Alan Modra  <amodra@gmail.com>
20656
20657         PR target/80938
20658         * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
20659         Don't use store multiple if only one reg needs saving.
20660         (interesting_frame_related_regno): New function.
20661         (rs6000_frame_related): Don't emit frame info for regs that
20662         don't need saving.
20663         (rs6000_emit_epilogue): Likewise.
20664
20665 2017-08-16  Nathan Sidwell  <nathan@acm.org>
20666
20667         * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
20668         * tree.h (TYPE_BINFO): Use type_non_common.maxval.
20669         (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
20670         * tree.c (free_lang_data_in_type): Use else-if chain.  Always
20671         clear TYPE_LANG_1.  Remove obsolete member-function stripping.
20672         (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
20673         (verify_type): Adjust for TYPE_BINFO move.
20674         * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
20675         process TYPE_BINFO directly.
20676         (hash_tree): Likewise.
20677         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
20678         Likewise.
20679         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
20680         Likewise.
20681
20682 2017-08-16  David Malcolm  <dmalcolm@redhat.com>
20683
20684         * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
20685
20686 2017-08-16  Uros Bizjak  <ubizjak@gmail.com>
20687
20688         PR target/46091
20689         * config/i386/i386.md (*anddi_1_btr): Change predicates of
20690         operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
20691         Add ix86_binary_operator_ok to insn constraint.
20692         (*iordi_1_bts): Ditto.
20693         (*xordi_1_btc): Ditto.
20694         (*btsq): Change predicate of operand 0 to nonimmediate_operand.
20695         Update corresponding peephole2 pattern.
20696         (*btrq): Ditto.
20697         (*btcq): Ditto.
20698
20699 2017-08-16  Bin Cheng  <bin.cheng@arm.com>
20700
20701         PR tree-optimization/81832
20702         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
20703         copy loop header which has IFN_LOOP_DIST_ALIAS call.
20704
20705 2017-08-16  Marek Polacek  <polacek@redhat.com>
20706
20707         PR middle/81695
20708         * fold-const.c (fold_indirect_ref_1): Restore original behavior
20709         regarding size_zero_node.
20710
20711 2017-08-16  Martin Liska  <mliska@suse.cz>
20712
20713         PR target/81753
20714         * config.gcc: Respect previously set extra_objs in case
20715         of darwin target.
20716
20717 2017-08-16  Richard Sandiford  <richard.sandiford@linaro.org>
20718
20719         PR tree-optimization/81835
20720         * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
20721         the phi SSA_NAME.  Check that the condition in a COND_EXPR does
20722         not depend on the phi.
20723
20724 2017-08-16  Alan Modra  <amodra@gmail.com>
20725
20726         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
20727         dead code.
20728
20729 2017-08-16  Alan Modra  <amodra@gmail.com>
20730
20731         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
20732         (save_reg_p): ..into this.  Update all callers.
20733         (first_reg_to_save): Simplify.
20734
20735 2017-08-16  Alan Modra  <amodra@gmail.com>
20736
20737         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
20738         fixed regs.
20739
20740 2017-08-15  Joseph Myers  <joseph@codesourcery.com>
20741
20742         PR target/78460
20743         PR target/67712
20744         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
20745         constant count if that count is less than 32.
20746
20747 2017-08-15  Nathan Sidwell  <nathan@acm.org>
20748
20749         * gcc.c (execute): Emit friendlier message if inferior is killed
20750         by an external cause.
20751
20752 2017-08-15  Richard Biener  <rguenther@suse.de>
20753
20754         PR tree-optimization/81790
20755         * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
20756         CONSTRUCTORs from simplifying and VN.
20757
20758 2017-08-14  Martin Sebor  <msebor@redhat.com>
20759
20760         * builtin-attrs.def: Add comments.
20761
20762 2017-08-14  Martin Sebor  <msebor@redhat.com>
20763
20764         PR c/81117
20765         * doc/extend.texi (attribute nonstring): Document new attribute.
20766
20767 2017-08-14  Martin Sebor  <msebor@redhat.com>
20768
20769         PR c/81117
20770         * tree-diagnostic.c (default_tree_printer): Handle %G.
20771         * gimple-pretty-print.h (percent_G_format): Declare new function.
20772         * gimple-pretty-print.c (percent_G_format): Define.
20773         * tree-pretty-print.c (percent_K_format): Add argument.
20774
20775 2017-08-14  Martin Sebor  <msebor@redhat.com>
20776
20777         PR translation/79998
20778         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
20779         Remove a stray space.
20780
20781 2017-08-14  Uros Bizjak  <ubizjak@gmail.com>
20782
20783         PR target/46091
20784         * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
20785         (*iordi_1_bts): Ditto.
20786         (*xordi_1_btc): Ditto.
20787
20788 2017-08-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20789
20790         PR target/79845
20791         * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
20792         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20793         Likewise.
20794         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
20795         quoted strings, and make more translator-friendly.
20796         (darwin_rs6000_override_options): Likewise.
20797         (rs6000_option_override_internal): Likewise.
20798         (rs6000_return_in_memory): Fix overlong line.
20799         (init_cmulative_args): Use quoted strings, and make more
20800         translator-friendly.
20801         (rs6000_pass_by_reference): Fix overlong line.
20802         (def_builtin): Use quoted strings.
20803         (altivec_expand_predicate_builtin): Use quoted strings, and make
20804         more translator-friendly.
20805         (htm_expand_builtin): Use quoted strings.
20806         (cpu_expand_builtin): Use quoted strings, and make more
20807         translator-friendly.
20808         (altivec_expand_builtin): Likewise.
20809         (paired_expand_predicate_builtin): Likewise.
20810         (rs6000_invalid_builtin): Likewise.
20811         (builtin_function_type): Use quoted strings.
20812         (rs6000_expand_split_stack_prologue): Use quoted strings, and make
20813         more translator-friendly.
20814         (rs6000_trampoline_init): Likewise.
20815         (rs6000_handle_altivec_attribute): Likewise.
20816         (rs6000_inner_target_options): Use quoted strings.
20817         (rs6000_disable_incompatible_switches): Likewise.
20818         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
20819         strings, and make more translator-friendly.
20820         (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
20821
20822 2017-08-14  Bin Cheng  <bin.cheng@arm.com>
20823
20824         PR tree-optimization/81799
20825         * tree-loop-distribution.c (version_loop_by_alias_check): Force
20826         cond_expr to simple gimple operand.
20827
20828 2017-08-14  Wilco Dijkstra  <wdijkstr@arm.com>
20829
20830         PR middle-end/46932
20831         * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
20832
20833 2017-08-14  Georg-Johann Lay  <avr@gjlay.de>
20834
20835         PR target/81754
20836         PR target/81268
20837         * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
20838         * config/avr/avr.md (gasisr, *gasisr): Use it instead of
20839         TARGET_GASISR_PROLOGUES.
20840         * config/avr/avr.c (avr_option_override): Same.
20841         (avr_pass_pre_proep::execute): Same.
20842
20843 2017-08-13  H.J. Lu  <hongjiu.lu@intel.com>
20844
20845         PR target/81820
20846         * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
20847         frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
20848
20849 2017-08-13  Uros Bizjak  <ubizjak@gmail.com>
20850
20851         * config/i386/i386.md (*load_tp_<mode>): Redefine as
20852         define_insn_and_split.  Split to a memory load from 0 in
20853         DEFAULT_TLS_SEG_REG address space.  Merge with *load_tp_x32
20854         using PTR mode iterator.
20855         (*load_tp_x32_zext"): Redefine as define_insn_and_split.
20856         Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
20857         (*add_tp_<mode>): Redefine as define_insn_and_split.
20858         Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
20859         address space.  Merge with *add_tp_x32 using PTR mode iterator.
20860         (*add_tp_x32_zext"): Redefine as define_insn_and_split.
20861         Split to an add with a  memory load from 0 in
20862         DEFAULT_TLS_SEG_REG address space.
20863
20864 2017-08-12  Andrew Pinski  <apinski@cavium.com>
20865
20866         * config/aarch64/aarch64-option-extensions.def (rdma):
20867         Fix feature string to what Linux prints out in /proc/cpuinfo.
20868
20869 2017-08-12  Pierre-Marie de Rodat  <derodat@adacore.com>
20870
20871         PR ada/79542
20872         * dwarf2out.c (modified_type_die): For C typedef types that have
20873         an ultimate origin, process the ultimate origin instead of the
20874         input type.
20875         (gen_typedef_die): Assert that input DECLs have no ultimate
20876         origin.
20877         (gen_type_die_with_usage): For typedef variants that have an
20878         ultimate origin, just call gen_decl_die on the original DECL.
20879         (process_scope_var): Avoid creating DIEs for local typedefs and
20880         concrete static variables.
20881
20882 2017-08-12  Alan Modra  <amodra@gmail.com>
20883
20884         PR target/81170
20885         PR target/81295
20886         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
20887         match gnu-user.h startfile.
20888         (ENDFILE_LINUX_SPEC): Similarly.
20889
20890 2017-08-11  Thomas Schwinge  <thomas@codesourcery.com>
20891
20892         PR lto/81430
20893         * config/nvptx/nvptx.c (nvptx_override_options_after_change):
20894         Remove function.
20895         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
20896
20897 2017-08-11  Tamar Christina  <tamar.christina@arm.com>
20898         * config/aarch64/aarch64.md (mov<mode>): Change.
20899         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
20900         aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
20901         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
20902
20903 2017-08-11  Eric Botcazou  <ebotcazou@adacore.com>
20904
20905         * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
20906         for storage order barriers.
20907
20908 2017-08-11  Martin Liska  <mliska@suse.cz>
20909
20910         PR tree-opt/79987
20911         * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
20912         variables of void type.
20913
20914 2017-08-11  Martin Liska  <mliska@suse.cz>
20915
20916         * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
20917         TARGET_SUPPORTS_ALIASES.
20918         * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
20919         * ipa-visibility.c (can_replace_by_local_alias): Likewise.
20920         (optimize_weakref): Likewise.
20921         * symtab.c (symtab_node::noninterposable_alias): Likewise.
20922         * varpool.c (varpool_node::create_extra_name_alias): Likewise.
20923         * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
20924
20925 2017-08-11  Martin Liska  <mliska@suse.cz>
20926
20927         PR ipa/81213
20928         * config/i386/i386.c (make_resolver_func): Do complete
20929         refactoring of the function.
20930
20931 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20932
20933         PR target/81708
20934         * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
20935         * config/i386/i386.c (ix86_stack_protect_guard): Use
20936         ix86_stack_protect_guard_symbol_str to generate varible declaration.
20937         * doc/invoke.texi (x86 Options): Document
20938         -mstack-protector-guard-symbol= option.
20939
20940 2017-08-10  Uros Bizjak  <ubizjak@gmail.com>
20941
20942         * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
20943         * config/i386/i386.c (ix86_split_stack_guard): New function.
20944         (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
20945         (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
20946         (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
20947         (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
20948         * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
20949         (split_stack_space_check): Call ix86_split_stack_guard.
20950
20951 2017-08-10  Martin Sebor  <msebor@redhat.com>
20952
20953         * print-tree.c (print_node): Print location using the established
20954         format %s:%i%i.
20955         Replace spaces with colons.
20956         (debug_raw, debug): Ditto.
20957
20958 2017-08-10  Martin Sebor  <msebor@redhat.com>
20959
20960         PR c++/81586
20961         * pretty-print.c (pp_format): Correct the handling of %s precision.
20962
20963 2017-08-10  H.J. Lu  <hongjiu.lu@intel.com>
20964
20965         PR target/81736
20966         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
20967         to ...
20968         (ix86_finalize_stack_frame_flags): This.  Also clear
20969         frame_pointer_needed if -fno-omit-frame-pointer is used without
20970         stack access.
20971         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
20972         with ix86_finalize_stack_frame_flags.
20973         (ix86_expand_epilogue): Likewise.
20974         (ix86_expand_split_stack_prologue): Likewise.
20975         * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
20976
20977 2017-08-10  Martin Liska  <mliska@suse.cz>
20978
20979         PR c++/81355
20980         * c-attribs.c (handle_target_attribute):
20981         Report warning for an empty string argument of target attribute.
20982
20983 2017-08-09  Jakub Jelinek  <jakub@redhat.com>
20984
20985         PR c/81687
20986         * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
20987         LABEL_DECLs.
20988         * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
20989         or DECL_NONLOCAL labels.
20990         (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
20991         or DECL_NONLOCAL labels here.
20992
20993 2017-08-09  Will Schmidt  <will_schmidt@vnet.ibm.com>
20994
20995         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
20996         to indicate when early gimple folding has been disabled.
20997         (rs6000_gimple_fold_builtin): Add debug content.
20998         (rs6000_invalid_builtin): Fix whitespace.
20999         (rs6000_expand_builtin): Fix whitespace.
21000         * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
21001
21002 2017-08-09  Segher Boessenkool  <segher@kernel.crashing.org>
21003
21004         PR target/80938
21005         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
21006         SAVE_MULTIPLE if not all the registers that saves, should be saved.
21007
21008 2017-08-09  Jim Wilson  <jim.wilson@linaro.org>
21009
21010         * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
21011         (qdf24xx): Likewise.
21012         * config/aarch64/aarch64.md: Include falkor.md.
21013         * config/aarch64/falkor.md: New.
21014
21015 2017-08-09  Marek Polacek  <polacek@redhat.com>
21016
21017         PR c/81233
21018         * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
21019         * diagnostic.c (emit_diagnostic): Add a comment.
21020         (emit_diagnostic_valist): New function.
21021
21022 2017-08-09  Marek Polacek  <polacek@redhat.com>
21023
21024         PR c/81417
21025         * input.c (make_location): New overload.
21026         * input.h (make_location): Declare.
21027
21028 2017-08-08  Alan Modra  <amodra@gmail.com>
21029             H.J. Lu  <hongjiu.lu@intel.com>
21030
21031         PR driver/81523
21032         * gcc.c (NO_PIE_SPEC): Delete.
21033         (PIE_SPEC): Define as !no-pie/pie.  Move static|shared|r
21034         exclusion..
21035         (LINK_PIE_SPEC): ..to here.
21036         (LINK_COMMAND_SPEC): Support -no-pie.
21037         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
21038         chain of crtbegin*.o selection, update for PIE_SPEC changes and
21039         format.
21040         (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
21041         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
21042         (ENDFILE_CRTEND_SPEC): Similarly.
21043
21044 2017-08-08  Uros Bizjak  <ubizjak@gmail.com>
21045
21046         PR target/81708
21047         * config/i386/i386.opt (mstack-protector-guard-reg=): New option
21048         (mstack-protector-guard-offset=): Ditto.
21049         * config/i386/i386.c (ix86_option_override): Handle
21050         -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
21051         options.
21052         (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
21053         ix86_stack_protect_guard_offset variables.
21054         (TARGET_STACK_PROTECT_GUARD): Always define.
21055         * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
21056         and -mstack-protector-guard-offset= options.
21057
21058 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
21059
21060         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
21061         boundary case for the last candidate.
21062
21063 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
21064
21065         * doc/invoke.texi: Document -ftree-loop-distribution for O3.
21066         * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
21067
21068 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
21069
21070         PR middle-end/19706
21071         * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
21072         * config/aarch64/aarch64-builtins.c
21073         (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
21074         * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
21075         * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
21076
21077 2017-08-08  Tamar Christina  <tamar.christina@arm.com>
21078             Andrew Pinski <pinskia@gmail.com>
21079
21080         PR middle-end/19706
21081         * internal-fn.def (XORSIGN): New.
21082         * optabs.def (xorsign_optab): New.
21083         * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
21084         (convert_expand_mult_copysign): New.
21085         (pass_optimize_widening_mul::execute): Call
21086         convert_expand_mult_copysign.
21087
21088 2017-08-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21089
21090         PR tree-optimization/81354
21091         * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
21092         Insert on edges rather than explicitly creating landing pads.
21093         (analyze_candidates_and_replace): Commit edge inserts.
21094
21095 2017-08-08  Richard Biener  <rguenther@suse.de>
21096
21097         PR middle-end/81719
21098         * tree-ssa-loop-niter.c: Include tree-dfa.h.
21099         (expand_simple_operations): Also look through ADDR_EXPRs with
21100         MEM_REF bases treating them as POINTER_PLUS_EXPR.
21101
21102 2017-08-08  Richard Biener  <rguenther@suse.de>
21103
21104         PR tree-optimization/81723
21105         * tree-vect-slp.c (struct bst_traits): New hash traits.
21106         (bst_fail): New global.
21107         (vect_build_slp_tree_2): New worker, split out from ...
21108         (vect_build_slp_tree): ... this now wrapping it with using
21109         bst_fail set to cache SLP tree build fails.  Properly handle
21110         max_tree_size.
21111         (vect_analyze_slp_instance): Allocate and free bst_fail.
21112
21113 2017-08-08  Martin Liska  <mliska@suse.cz>
21114
21115         PR tree-opt/81696
21116         * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
21117         LABEL_DECLs that can be from a different function.
21118
21119 2017-08-08  Bin Cheng  <bin.cheng@arm.com>
21120
21121         PR tree-optimization/81744
21122         * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
21123         loop's number of iterations.
21124
21125 2017-08-08  Martin Liska  <mliska@suse.cz>
21126
21127         * asan.c: Include header files.
21128         * attribs.c (build_decl_attribute_variant): New function moved
21129         from tree.[ch].
21130         (build_type_attribute_qual_variant): Likewise.
21131         (cmp_attrib_identifiers): Likewise.
21132         (simple_cst_list_equal): Likewise.
21133         (omp_declare_simd_clauses_equal): Likewise.
21134         (attribute_value_equal): Likewise.
21135         (comp_type_attributes): Likewise.
21136         (build_type_attribute_variant): Likewise.
21137         (lookup_ident_attribute): Likewise.
21138         (remove_attribute): Likewise.
21139         (merge_attributes): Likewise.
21140         (merge_type_attributes): Likewise.
21141         (merge_decl_attributes): Likewise.
21142         (merge_dllimport_decl_attributes): Likewise.
21143         (handle_dll_attribute): Likewise.
21144         (attribute_list_equal): Likewise.
21145         (attribute_list_contained): Likewise.
21146         * attribs.h (lookup_attribute): New function moved from tree.[ch].
21147         (lookup_attribute_by_prefix): Likewise.
21148         * bb-reorder.c: Include header files.
21149         * builtins.c: Likewise.
21150         * calls.c: Likewise.
21151         * cfgexpand.c: Likewise.
21152         * cgraph.c: Likewise.
21153         * cgraphunit.c: Likewise.
21154         * convert.c: Likewise.
21155         * dwarf2out.c: Likewise.
21156         * final.c: Likewise.
21157         * fold-const.c: Likewise.
21158         * function.c: Likewise.
21159         * gimple-expr.c: Likewise.
21160         * gimple-fold.c: Likewise.
21161         * gimple-pretty-print.c: Likewise.
21162         * gimple.c: Likewise.
21163         * gimplify.c: Likewise.
21164         * hsa-common.c: Likewise.
21165         * hsa-gen.c: Likewise.
21166         * internal-fn.c: Likewise.
21167         * ipa-chkp.c: Likewise.
21168         * ipa-cp.c: Likewise.
21169         * ipa-devirt.c: Likewise.
21170         * ipa-fnsummary.c: Likewise.
21171         * ipa-inline.c: Likewise.
21172         * ipa-visibility.c: Likewise.
21173         * ipa.c: Likewise.
21174         * lto-cgraph.c: Likewise.
21175         * omp-expand.c: Likewise.
21176         * omp-general.c: Likewise.
21177         * omp-low.c: Likewise.
21178         * omp-offload.c: Likewise.
21179         * omp-simd-clone.c: Likewise.
21180         * opts-global.c: Likewise.
21181         * passes.c: Likewise.
21182         * predict.c: Likewise.
21183         * sancov.c: Likewise.
21184         * sanopt.c: Likewise.
21185         * symtab.c: Likewise.
21186         * toplev.c: Likewise.
21187         * trans-mem.c: Likewise.
21188         * tree-chkp.c: Likewise.
21189         * tree-eh.c: Likewise.
21190         * tree-into-ssa.c: Likewise.
21191         * tree-object-size.c: Likewise.
21192         * tree-parloops.c: Likewise.
21193         * tree-profile.c: Likewise.
21194         * tree-ssa-ccp.c: Likewise.
21195         * tree-ssa-live.c: Likewise.
21196         * tree-ssa-loop.c: Likewise.
21197         * tree-ssa-sccvn.c: Likewise.
21198         * tree-ssa-structalias.c: Likewise.
21199         * tree-ssa.c: Likewise.
21200         * tree-streamer-in.c: Likewise.
21201         * tree-vectorizer.c: Likewise.
21202         * tree-vrp.c: Likewise.
21203         * tsan.c: Likewise.
21204         * ubsan.c: Likewise.
21205         * varasm.c: Likewise.
21206         * varpool.c: Likewise.
21207         * tree.c: Remove functions moved to attribs.[ch].
21208         * tree.h: Likewise.
21209         * config/aarch64/aarch64.c: Add attrs.h header file.
21210         * config/alpha/alpha.c: Likewise.
21211         * config/arc/arc.c: Likewise.
21212         * config/arm/arm.c: Likewise.
21213         * config/avr/avr.c: Likewise.
21214         * config/bfin/bfin.c: Likewise.
21215         * config/c6x/c6x.c: Likewise.
21216         * config/cr16/cr16.c: Likewise.
21217         * config/cris/cris.c: Likewise.
21218         * config/darwin.c: Likewise.
21219         * config/epiphany/epiphany.c: Likewise.
21220         * config/fr30/fr30.c: Likewise.
21221         * config/frv/frv.c: Likewise.
21222         * config/ft32/ft32.c: Likewise.
21223         * config/h8300/h8300.c: Likewise.
21224         * config/i386/winnt.c: Likewise.
21225         * config/ia64/ia64.c: Likewise.
21226         * config/iq2000/iq2000.c: Likewise.
21227         * config/lm32/lm32.c: Likewise.
21228         * config/m32c/m32c.c: Likewise.
21229         * config/m32r/m32r.c: Likewise.
21230         * config/m68k/m68k.c: Likewise.
21231         * config/mcore/mcore.c: Likewise.
21232         * config/microblaze/microblaze.c: Likewise.
21233         * config/mips/mips.c: Likewise.
21234         * config/mmix/mmix.c: Likewise.
21235         * config/mn10300/mn10300.c: Likewise.
21236         * config/moxie/moxie.c: Likewise.
21237         * config/msp430/msp430.c: Likewise.
21238         * config/nds32/nds32-isr.c: Likewise.
21239         * config/nds32/nds32.c: Likewise.
21240         * config/nios2/nios2.c: Likewise.
21241         * config/nvptx/nvptx.c: Likewise.
21242         * config/pa/pa.c: Likewise.
21243         * config/pdp11/pdp11.c: Likewise.
21244         * config/powerpcspe/powerpcspe.c: Likewise.
21245         * config/riscv/riscv.c: Likewise.
21246         * config/rl78/rl78.c: Likewise.
21247         * config/rx/rx.c: Likewise.
21248         * config/s390/s390.c: Likewise.
21249         * config/sh/sh.c: Likewise.
21250         * config/sol2.c: Likewise.
21251         * config/sparc/sparc.c: Likewise.
21252         * config/spu/spu.c: Likewise.
21253         * config/stormy16/stormy16.c: Likewise.
21254         * config/tilegx/tilegx.c: Likewise.
21255         * config/tilepro/tilepro.c: Likewise.
21256         * config/v850/v850.c: Likewise.
21257         * config/vax/vax.c: Likewise.
21258         * config/visium/visium.c: Likewise.
21259         * config/xtensa/xtensa.c: Likewise.
21260
21261 2017-08-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
21262
21263         PR target/81593
21264         * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
21265         constraints since the -mupper-regs-* switches have been
21266         eliminated.
21267         (vsx_concat_<mode>_1): New combiner insns to recognize inserting
21268         into a vector from a double word element that was extracted from
21269         another vector, and eliminate extra XXPERMDI instructions.
21270         (vsx_concat_<mode>_2): Likewise.
21271         (vsx_concat_<mode>_3): Likewise.
21272         (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
21273         concat to allow optimizing inserts from previous extracts.
21274
21275 2017-08-07  Uros Bizjak  <ubizjak@gmail.com>
21276
21277         * config/i386/i386.c (ix86_stack_protect_guard): Generate
21278         memory reference to a SSP offset in TLS address space.
21279         (ix86_print_operand) <case '@'>: Remove.
21280         (ix86_print_operand_punct_valid_p): Remove '@' code.
21281         * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
21282         UNSPEC_SP_TLS_TEST.
21283         (stack_tls_protect_set_<mode>): Remove.
21284         (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
21285         (stack_tls_protect_test_<mode>): Remove.
21286         (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
21287
21288 2017-08-07  Olivier Hainque  <hainque@adacore.com>
21289
21290         PR target/81755
21291         * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
21292
21293 2017-08-07  Douglas Rupp  <rupp@adacore.com>
21294
21295         * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
21296         variable was referenced as multidir in command.
21297
21298 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
21299
21300         PR c/69389
21301         * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
21302         BIT_FIELD_REF.
21303
21304 2017-08-07  Martin Liska  <mliska@suse.cz>
21305
21306         * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
21307         * config/rl78/rl78.c: Add include of attribs.h.
21308         * config/sh/sh.c: Likewise.
21309         * config/v850/v850.c: Likewise.
21310
21311 2017-08-07  Tom de Vries  <tom@codesourcery.com>
21312
21313         PR middle-end/78266
21314         * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
21315
21316 2017-08-07  Martin Liska  <mliska@suse.cz>
21317
21318         * config/mips/mips.c: Include attribs.h.
21319
21320 2017-08-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
21321
21322         PR fortran/68829
21323         * doc/invoke.texi: Document change in behvaior for -Ofast for
21324         Fortran.
21325
21326 2017-08-07  Wilco Dijkstra  <wdijkstr@arm.com>
21327
21328         * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
21329         Use gen_frame_mem.
21330         (aarch64_pop_regs): Likewise.
21331         (aarch64_gen_load_pair): Likewise.
21332         (aarch64_save_callee_saves): Likewise.
21333         (aarch64_restore_callee_saves): Likewise.
21334
21335 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
21336
21337         * config/i386/i386.c: Revert the last change.
21338
21339 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
21340
21341         PR target/81736
21342         * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
21343         to ...
21344         (ix86_finalize_stack_frame_flags): This.  Also clear
21345         frame_pointer_needed if -fno-omit-frame-pointer is used without
21346         stack access.
21347         (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
21348         with ix86_finalize_stack_frame_flags.
21349         (ix86_expand_epilogue): Likewise.
21350         (ix86_expand_split_stack_prologue): Likewise.
21351
21352 2017-08-07  H.J. Lu  <hongjiu.lu@intel.com>
21353
21354         PR target/81743
21355         * config/i386/i386.c (get_builtin_code_for_version): Set priority
21356         to P_AES for Westmere.
21357
21358 2017-08-07  Jonathan Yong  <10walls@gmail.com>
21359
21360         * config/i386/mingw.opt (fset-stack-executable): Removed.
21361         * config/i386/cygming.opt (fset-stack-executable): Moved
21362         from mingw.opt.
21363         * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
21364
21365 2017-08-07  Segher Boessenkool  <segher@kernel.crashing.org>
21366
21367         * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
21368
21369 2017-08-07  Marek Polacek  <polacek@redhat.com>
21370
21371         PR middle-end/81737
21372         * fold-const.c (fold_indirect_ref_1): Check type_domain.
21373
21374 2017-08-07  Martin Liska  <mliska@suse.cz>
21375
21376         * attribs.h (canonicalize_attr_name): New function.
21377         (cmp_attribs): Move from c-format.c and adjusted.
21378         (is_attribute_p): Moved from tree.h.
21379         * tree-inline.c: Add new includes.
21380         * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
21381         (private_is_attribute_p): Remove.
21382         (private_lookup_attribute): Likewise.
21383         (private_lookup_attribute_by_prefix): Simplify.
21384         (remove_attribute): Use is_attribute_p.
21385         * tree.h: Remove removed declarations.
21386
21387 2017-08-07  Jakub Jelinek  <jakub@redhat.com>
21388
21389         PR middle-end/81698
21390         * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
21391         instead of computing it in the function.  Formatting fix.
21392         (expand_case): Don't rely on default_edge being the first edge,
21393         clear it if removing it, pass default_edge to
21394         emit_case_dispatch_table.
21395         (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
21396         fix.
21397
21398 2017-08-06  Uros Bizjak  <ubizjak@gmail.com>
21399
21400         * config/alpha/alpha.c (alpha_reorg): If trap is the last active
21401         insn in the function, emit NOP after the insn.
21402
21403 2017-08-06  Tom de Vries  <tom@codesourcery.com>
21404
21405         * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
21406         and element loops.
21407
21408 2017-08-06  Tom de Vries  <tom@codesourcery.com>
21409
21410         * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
21411         loop.
21412
21413 2017-08-04  Yury Gribov  <tetra2005@gmail.com>
21414
21415         PR tree-optimization/57371
21416         * match.pd: New pattern.
21417
21418 2017-08-04  Marek Polacek  <polacek@redhat.com>
21419
21420         PR middle-end/81695
21421         * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
21422         perform the computation in offset_int.
21423
21424 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
21425
21426         PR tree-optimization/81136
21427         * tree-vectorizer.h: Include tree-hash-traits.h.
21428         (vec_base_alignments): New typedef.
21429         (vec_info): Add a base_alignments field.
21430         (vect_record_base_alignments): Declare.
21431         * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
21432         field.
21433         (DR_IS_CONDITIONAL_IN_STMT): New macro.
21434         (create_data_ref): Add an is_conditional_in_stmt argument.
21435         * tree-data-ref.c (create_data_ref): Likewise.  Use it to initialize
21436         the is_conditional_in_stmt field.
21437         (data_ref_loc): Add an is_conditional_in_stmt field.
21438         (get_references_in_stmt): Set the is_conditional_in_stmt field.
21439         (find_data_references_in_stmt): Update call to create_data_ref.
21440         (graphite_find_data_references_in_stmt): Likewise.
21441         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
21442         * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
21443         (vect_record_base_alignment): New function.
21444         (vect_record_base_alignments): Likewise.
21445         (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
21446         for nested statements even if we fail to compute a misalignment.
21447         Use pooled base alignments for unconditional references.
21448         (vect_find_same_alignment_drs): Compare base addresses instead
21449         of base objects.
21450         (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
21451         * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
21452
21453 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
21454
21455         * tree-vectorizer.h (vec_info): Add a constructor and destructor.
21456         Add an explicit name for the enum.  Use auto_vec for slp_instances
21457         and grouped_stores.
21458         (_loop_vec_info): Add a constructor and destructor.  Use auto_vec
21459         for all vectors.
21460         (_bb_vec_info): Add a constructor and destructor.
21461         (vinfo_for_stmt): Return NULL for uids of -1 as well.
21462         (destroy_loop_vec_info): Delete.
21463         (vect_destroy_datarefs): Likewise.
21464         * tree-vectorizer.c (vect_destroy_datarefs): Delete.
21465         (vec_info::vec_info): New function.
21466         (vec_info::~vec_info): Likewise.
21467         (vectorize_loops): Use delete instead of destroy_loop_vec_info.
21468         * tree-parloops.c (gather_scalar_reductions): Use delete instead of
21469         destroy_loop_vec_info.
21470         * tree-vect-loop.c (new_loop_vec_info): Replace with...
21471         (_loop_vec_info::_loop_vec_info): ...this.
21472         (destroy_loop_vec_info): Replace with...
21473         (_loop_vec_info::~_loop_vec_info): ...this.  Unconditionally delete
21474         the stmt_vec_infos.  Leave handling of vec_info information to its
21475         destructor.  Remove explicit vector releases.
21476         (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
21477         (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
21478         * tree-vect-slp.c (new_bb_vec_info): Replace with...
21479         (_bb_vec_info::_bb_vec_info): ...this.  Don't reserve space in
21480         BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
21481         (destroy_bb_vec_info): Replace with...
21482         (_bb_vec_info::~_bb_vec_info): ...this.  Leave handling of vec_info
21483         information to its destructor.
21484         (vect_slp_analyze_bb_1): Use new and delete instead of
21485         new_bb_vec_info and destroy_bb_vec_info.
21486         (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
21487         single delete.
21488
21489 2017-08-04  Richard Sandiford  <richard.sandiford@linaro.org>
21490
21491         * tree-data-ref.h (subscript): Add access_fn field.
21492         (data_dependence_relation): Add could_be_independent_p.
21493         (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
21494         (same_access_functions): Move to tree-data-ref.c.
21495         * tree-data-ref.c (ref_contains_union_access_p): New function.
21496         (access_fn_component_p): Likewise.
21497         (access_fn_components_comparable_p): Likewise.
21498         (dr_analyze_indices): Add a reference to access_fn_component_p.
21499         (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
21500         DR_ACCESS_FN.
21501         (constant_access_functions): Likewise.
21502         (add_other_self_distances): Likewise.
21503         (same_access_functions): Likewise.  (Moved from tree-data-ref.h.)
21504         (initialize_data_dependence_relation): Use XCNEW and remove
21505         explicit zeroing of DDR_REVERSED_P.  Look for a subsequence
21506         of access functions that have the same type.  Allow the
21507         subsequence to end with different bases in some circumstances.
21508         Record the chosen access functions in SUB_ACCESS_FN.
21509         (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
21510         a_index and b_index.  Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
21511         (subscript_dependence_tester_1): Likewise dra and drb.
21512         (build_classic_dist_vector): Update calls accordingly.
21513         (subscript_dependence_tester): Likewise.
21514         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
21515         DDR_COULD_BE_INDEPENDENT_P.
21516         * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
21517         comp_alias_ddrs instead of may_alias_ddrs.
21518         * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
21519         New function.
21520         (vect_analyze_data_ref_dependence): Use it if
21521         DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
21522         distance vectors if that fails.
21523         (dependence_distance_ge_vf): New function.
21524         (vect_prune_runtime_alias_test_list): Use it.  Don't clear
21525         LOOP_VINFO_MAY_ALIAS_DDRS.
21526
21527 2017-08-04  Richard Biener  <rguenther@suse.de>
21528
21529         PR middle-end/81705
21530         * fold-const.c (fold_binary_loc): Properly restrict
21531         minus_var0 && minus_var1 case when associating undefined overflow
21532         entities.
21533
21534 2017-08-04  Tom de Vries  <tom@codesourcery.com>
21535
21536         * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
21537
21538 2017-08-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
21539
21540         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
21541         Don't start diagnostic messages with a capital letter.
21542         * config/rs6000/rs6000.c (rs6000_option_override_internal):
21543         Likewise.
21544         (rs6000_invalid_builtin): Likewise.
21545         (rs6000_trampoline_init): Likewise.
21546
21547 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
21548
21549         PR target/81621
21550         * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
21551         after setting changeable df flags.
21552
21553 2017-08-03  Richard Biener  <rguenther@suse.de>
21554
21555         * tree-ssa-reassoc.c (should_break_up_subtract): Also break
21556         up if the use is in USE - X.
21557
21558 2017-08-03  Alexander Monakov  <amonakov@ispras.ru>
21559
21560         * toplev.c (dumpfile.h): New include.
21561         (internal_error_reentered): New static function.  Use it...
21562         (internal_error_function): ...here to handle reentered internal_error.
21563
21564 2017-08-03  Richard Biener  <rguenther@suse.de>
21565
21566         PR middle-end/81148
21567         * fold-const.c (split_tree): Add minus_var and minus_con
21568         arguments, remove unused loc arg.  Never generate NEGATE_EXPRs
21569         here but always use minus_*.
21570         (associate_trees): Assert we never associate with MINUS_EXPR
21571         and NULL first operand.  Do not recurse for PLUS_EXPR operands
21572         when associating as MINUS_EXPR either.
21573         (fold_binary_loc): Track minus_var and minus_con.
21574
21575 2017-08-03  Tom de Vries  <tom@codesourcery.com>
21576
21577         PR lto/81430
21578         * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
21579         ACCEL_COMPILER, apply finish_options on
21580         DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
21581
21582 2017-08-03  Tom de Vries  <tom@codesourcery.com>
21583
21584         PR target/81662
21585         * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
21586         function_entry_patch_area_size > 0.
21587
21588 2017-08-03  Jakub Jelinek  <jakub@redhat.com>
21589
21590         PR driver/81650
21591         * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
21592         instead of 10??LU, perform unit multiplication in wide_int,
21593         don't change alloc_object_size_limit if the limit is larger
21594         than SSIZE_MAX.
21595
21596         PR tree-optimization/81655
21597         PR tree-optimization/81588
21598         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
21599         the case when ranges[i].low and high are 1 for unsigned type with
21600         precision 1.
21601
21602         PR middle-end/81052
21603         * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
21604         (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
21605
21606 2017-08-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
21607
21608         * tree-vrp.h: Add include guard.
21609
21610 2017-08-02  Uros Bizjak  <ubizjak@gmail.com>
21611
21612         PR target/81644
21613         * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
21614         (ud2): New insn pattern.
21615         * config/i386/i386.c (ix86_expand_epilogue):
21616         For naked functions, generate ud2 instead of trap insn.
21617
21618 2017-08-02  Marek Polacek  <polacek@redhat.com>
21619
21620         PR other/81667
21621         * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
21622
21623 2017-08-02  Tom de Vries  <tom@codesourcery.com>
21624             Cesar Philippidis  <cesar@codesourcery.com>
21625
21626         * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
21627         Add missing edge probabilities.
21628
21629 2017-08-02  Tamar Christina  <tamar.christina@arm.com>
21630
21631         * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
21632         Correct endianness.
21633
21634 2017-08-02  Jakub Jelinek  <jakub@redhat.com>
21635
21636         PR middle-end/79499
21637         * function.c (thread_prologue_and_epilogue_insns): Determine blocks
21638         for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
21639         of first NONDEBUG_INSN_P in each of the split_prologue_seq and
21640         prologue_seq sequences - if any.
21641
21642 2017-08-02  Richard Biener  <rguenther@suse.de>
21643
21644         * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
21645         via vectors if supported, integer extracts via punning if supported
21646         or otherwise vector extracts.
21647
21648 2017-08-02  Richard Biener  <rguenther@suse.de>
21649
21650         * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
21651         into ...
21652         (bitmap_insert_into_set): ... this.
21653
21654 2017-08-02  Richard Biener  <rguenther@suse.de>
21655
21656         PR tree-optimization/81633
21657         Revert
21658         2015-08-17  Alan Hayward  <alan.hayward@arm.com>
21659
21660         PR tree-optimization/71752
21661         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
21662
21663 2017-08-01  Daniel Santos  <daniel.santos@pobox.com>
21664
21665         * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
21666         (machine_function::call_ms2sysv_pad_out): Remove field.
21667         * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
21668         (ix86_compute_frame_layout): Likewise.
21669
21670 2017-08-01  H.J. Lu  <hongjiu.lu@intel.com>
21671
21672         PR target/81654
21673         * config/i386/i386.c (ix86_set_func_type): Disallow naked
21674         attribute with interrupt attribute.
21675
21676 2017-08-01  Andrew Pinski  <apinski@cavium.com>
21677
21678         * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
21679         BIT_INSERT_EXPR's operand 1
21680         to see if the types precision matches.
21681
21682 2017-08-01  Martin Liska  <mliska@suse.cz>
21683
21684         PR middle-end/70140
21685         * builtins.c (expand_builtin_memcpy_args): Remove.
21686         (expand_builtin_memcpy): Call newly added function
21687         expand_builtin_memory_copy_args.
21688         (expand_builtin_memcpy_with_bounds): Likewise.
21689         (expand_builtin_mempcpy): Remove last argument.
21690         (expand_builtin_mempcpy_with_bounds): Likewise.
21691         (expand_builtin_memory_copy_args): New function created from
21692         expand_builtin_mempcpy_args with small modifications.
21693         (expand_builtin_mempcpy_args): Remove.
21694         (expand_builtin_stpcpy): Remove unused argument.
21695         (expand_builtin): Likewise.
21696         (expand_builtin_with_bounds): Likewise.
21697
21698 2017-08-01  Martin Liska  <mliska@suse.cz>
21699
21700         Revert r250771
21701         Make mempcpy more optimal (PR middle-end/70140).
21702
21703 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
21704
21705         PR target/81622
21706         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
21707         __builtin_vec_cmpne verify both arguments are compatible vectors
21708         before looking at TYPE_MODE on the element type.  For __builtin_vec_ld
21709         verify arg1_type is a pointer or array type.  For __builtin_vec_st,
21710         move computation of aligned to after checking the argument types.
21711         Formatting fixes.
21712
21713         PR target/80846
21714         * config/rs6000/vsx.md (vextract_fp_from_shorth,
21715         vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
21716         calls.
21717
21718 2017-08-01  Jerome Lambourg  <lambourg@adacore.com>
21719             Doug Rupp  <rupp@adacore.com>
21720             Olivier Hainque  <hainque@adacore.com>
21721
21722         * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
21723         well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
21724         arm8 (arch v4).
21725         * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
21726         for TARGET_OS_CPP_BUILTIN.
21727         (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
21728         refine CPU definitions for arm_arch5 and add those for arm_arch6 and
21729         arm_arch7.
21730         (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
21731         passing required abi options to the assembler for EABI configurations.
21732         (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
21733         of .text.hot and .text.unlikely sections for kernel modules when
21734         using ARM style exceptions.
21735         (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
21736         options. Add EXTRA_CC1_SPEC.
21737         (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
21738         toolchain options.
21739         (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
21740         transition.
21741         (ARM_TARGET2_DWARF_FORMAT): Define.
21742         * config/arm/t-vxworks: Adjust multilib control to removal of the
21743         Diab command line options.
21744
21745 2017-08-01  Martin Liska  <mliska@suse.cz>
21746
21747         PR gcov-profile/81561
21748         * gcov.c (unblock): Make unblocking safe as we need to preserve
21749         index correspondence of blocks and block_lists.
21750
21751 2017-08-01  Richard Biener  <rguenther@suse.de>
21752
21753         PR tree-optimization/81181
21754         * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
21755         (compute_antic): ... end of iteration here.
21756
21757 2017-08-01  James Greenhalgh  <james.greenhalgh@arm.com>
21758
21759         * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
21760         (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
21761         (ftree-slp-vectorize): Likewise.
21762         * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
21763         can no longer be set independent of flag_tree_loop_vectorize.
21764         * omp-general.c (emp_max_vf): Likewise.
21765         * opts.c (enable_fdo_optimizations): Remove references to
21766         flag_tree_vectorize, these are now implicit.
21767         (common_handle_option): Remove handling for OPT_ftree_vectorize,
21768         and leave it for the options machinery.
21769
21770 2017-08-01  Martin Liska  <mliska@suse.cz>
21771
21772         PR middle-end/70140
21773         * builtins.c (expand_builtin_memcpy_args): Remove.
21774         (expand_builtin_memcpy): Call newly added function
21775         expand_builtin_memory_copy_args.
21776         (expand_builtin_memcpy_with_bounds): Likewise.
21777         (expand_builtin_mempcpy): Remove last argument.
21778         (expand_builtin_mempcpy_with_bounds): Likewise.
21779         (expand_builtin_memory_copy_args): New function created from
21780         expand_builtin_mempcpy_args with small modifications.
21781         (expand_builtin_mempcpy_args): Remove.
21782         (expand_builtin_stpcpy): Remove unused argument.
21783         (expand_builtin): Likewise.
21784         (expand_builtin_with_bounds): Likewise.
21785
21786 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21787
21788         PR target/81641
21789         * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
21790         print "ds:" only for immediates in generic address space.
21791
21792 2017-08-01  Uros Bizjak  <ubizjak@gmail.com>
21793
21794         PR target/81639
21795         * config/i386/i386.c (ix86_funciton_naked): New prototype.
21796         (ix86_function_ok_for_sibcall): Return false for naked functions.
21797
21798 2017-08-01  Richard Biener  <rguenther@suse.de>
21799
21800         * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
21801         (compute_antic): Seed worklist with exit block predecessors.
21802         * cfganal.c (dfs_find_deadend): For a cycle return the source
21803         of the edge closing it.
21804
21805 2017-08-01  Tamar Christina  <tamar.christina@arm.com>
21806
21807         * config/aarch64/aarch64.c
21808         (aarch64_can_const_movi_rtx_p): Move 0 check.
21809
21810 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21811
21812         * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
21813         * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
21814         above macro.
21815         * match.pd: Ditto in address comparison pattern.
21816
21817 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21818
21819         PR tree-optimization/81627
21820         * tree-predcom.c (prepare_finalizers): Always rewrite into loop
21821         closed ssa form for store-store chain.
21822
21823 2017-08-01  Bin Cheng  <bin.cheng@arm.com>
21824
21825         PR tree-optimization/81620
21826         * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
21827         for store-store chain.
21828
21829 2017-08-01  Jakub Jelinek  <jakub@redhat.com>
21830
21831         PR tree-optimization/81588
21832         * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
21833         ranges[i].in_p, invert comparison code ccode.  For >/>=,
21834         swap rhs1 and rhs2 and comparison code unconditionally,
21835         for </<= don't do that.  Don't swap rhs1/rhs2 again if
21836         ranges[i].in_p, instead invert comparison code ccode if
21837         opcode or oe->rank is BIT_IOR_EXPR.
21838
21839         PR target/80846
21840         * optabs.def (vec_extract_optab, vec_init_optab): Change from
21841         a direct optab to conversion optab.
21842         * optabs.c (expand_vector_broadcast): Use convert_optab_handler
21843         with GET_MODE_INNER as last argument instead of optab_handler.
21844         * expmed.c (extract_bit_field_1): Likewise.  Use vector from
21845         vector extraction if possible and optab is available.
21846         * expr.c (store_constructor): Use convert_optab_handler instead
21847         of optab_handler.  Use vector initialization from smaller
21848         vectors if possible and optab is available.
21849         * tree-vect-stmts.c (vectorizable_load): Likewise.
21850         * doc/md.texi (vec_extract, vec_init): Document that the optabs
21851         now have two modes.
21852         * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
21853         of vec_init from half-sized vectors with the same element mode.
21854         * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
21855         (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
21856         (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
21857         reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
21858         reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
21859         after mode in gen_vec_extract* calls.
21860         (vec_extract<mode>): Renamed to ...
21861         (vec_extract<mode><ssescalarmodelower>): ... this.
21862         (vec_extract<mode><ssehalfvecmodelower>): New expander.
21863         (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
21864         element mode after mode in gen_vec_init* calls.
21865         (VEC_INIT_HALF_MODE): New mode iterator.
21866         (vec_init<mode>): Renamed to ...
21867         (vec_init<mode><ssescalarmodelower>): ... this.
21868         (vec_init<mode><ssehalfvecmodelower>): New expander.
21869         * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
21870         (vec_extractv2sfsf): ... this.
21871         (vec_initv2sf): Renamed to ...
21872         (vec_initv2sfsf): ... this.
21873         (vec_extractv2si): Renamed to ...
21874         (vec_extractv2sisi): ... this.
21875         (vec_initv2si): Renamed to ...
21876         (vec_initv2sisi): ... this.
21877         (vec_extractv4hi): Renamed to ...
21878         (vec_extractv4hihi): ... this.
21879         (vec_initv4hi): Renamed to ...
21880         (vec_initv4hihi): ... this.
21881         (vec_extractv8qi): Renamed to ...
21882         (vec_extractv8qiqi): ... this.
21883         (vec_initv8qi): Renamed to ...
21884         (vec_initv8qiqi): ... this.
21885         * config/rs6000/vector.md (VEC_base_l): New mode attribute.
21886         (vec_init<mode>): Renamed to ...
21887         (vec_init<mode><VEC_base_l>): ... this.
21888         (vec_extract<mode>): Renamed to ...
21889         (vec_extract<mode><VEC_base_l>): ... this.
21890         * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
21891         (vec_initv2sfsf): ... this.
21892         * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
21893         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21894         vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
21895         element mode after mode in gen_vec_init* calls.
21896         * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
21897         (vec_init<mode><Vel>): ... this.
21898         (vec_extract<mode>): Renamed to ...
21899         (vec_extract<mode><Vel>): ... this.
21900         * config/aarch64/iterators.md (Vel): New mode attribute.
21901         * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
21902         Add element mode after mode in gen_vec_extract* calls.
21903         * config/s390/vector.md (non_vec_l): New mode attribute.
21904         (vec_extract<mode>): Renamed to ...
21905         (vec_extract<mode><non_vec_l>): ... this.
21906         (vec_init<mode>): Renamed to ...
21907         (vec_init<mode><non_vec_l>): ... this.
21908         * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
21909         s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
21910         vec_extract mode.
21911         * config/arm/iterators.md (V_elem_l): New mode attribute.
21912         * config/arm/neon.md (vec_extract<mode>): Renamed to ...
21913         (vec_extract<mode><V_elem_l>): ... this.
21914         (vec_extractv2di): Renamed to ...
21915         (vec_extractv2didi): ... this.
21916         (vec_init<mode>): Renamed to ...
21917         (vec_init<mode><V_elem_l>): ... this.
21918         (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
21919         reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
21920         reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
21921         Add element mode after gen_vec_extract* calls.
21922         * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
21923         (vec_init<mode><unitmode>): ... this.
21924         (vec_extract<mode>): Renamed to ...
21925         (vec_extract<mode><unitmode>): ... this.
21926         * config/mips/loongson.md (vec_init<mode>): Renamed to ...
21927         (vec_init<mode><unitmode>): ... this.
21928         * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
21929         (vec_initv2sfsf): ... this.
21930         (vec_extractv2sf): Renamed to ...
21931         (vec_extractv2sfsf): ... this.
21932         (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
21933         Add element mode after gen_vec_extract* calls.
21934         * config/mips/mips.md (unitmode): New mode iterator.
21935         * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
21936         spu_builtin_extract): Add element mode after gen_vec_extract* calls.
21937         * config/spu/spu.md (inner_l): New mode attribute.
21938         (vec_init<mode>): Renamed to ...
21939         (vec_init<mode><inner_l>): ... this.
21940         (vec_extract<mode>): Renamed to ...
21941         (vec_extract<mode><inner_l>): ... this.
21942         * config/sparc/sparc.md (veltmode): New mode iterator.
21943         (vec_init<VMALL:mode>): Renamed to ...
21944         (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
21945         * config/ia64/vect.md (vec_initv2si): Renamed to ...
21946         (vec_initv2sisi): ... this.
21947         (vec_initv2sf): Renamed to ...
21948         (vec_initv2sfsf): ... this.
21949         (vec_extractv2sf): Renamed to ...
21950         (vec_extractv2sfsf): ... this.
21951         * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
21952         (vec_init<mode>): Renamed to ...
21953         (vec_init<mode><VEC_base_l>): ... this.
21954         (vec_extract<mode>): Renamed to ...
21955         (vec_extract<mode><VEC_base_l>): ... this.
21956         * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
21957         (vec_initv2sfsf): ... this.
21958         * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
21959         vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
21960         vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
21961         gen_vec_init* calls.
21962
21963 2017-08-01  Richard Biener  <rguenther@suse.de>
21964
21965         PR tree-optimization/81297
21966         * tree-vrp.c (get_single_symbol): Remove assert, instead drop
21967         TREE_OVERFLOW from INTEGER_CSTs.
21968
21969 2017-07-31  Segher Boessenkool  <segher@kernel.crashing.org>
21970
21971         * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
21972
21973 2017-07-31  Carl Love  <cel@us.ibm.com>
21974
21975         * config/rs6000/rs6000-c: Add support for built-in functions
21976         vector signed char vec_xl_be (signed long long, signed char *);
21977         vector unsigned char vec_xl_be (signed long long, unsigned char *);
21978         vector signed int vec_xl_be (signed long long, signed int *);
21979         vector unsigned int vec_xl_be (signed long long, unsigned int *);
21980         vector signed long long vec_xl_be (signed long long, signed long long *);
21981         vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
21982         vector signed short vec_xl_be (signed long long, signed short *);
21983         vector unsigned short vec_xl_be (signed long long, unsigned short *);
21984         vector double vec_xl_be (signed long long, double *);
21985         vector float vec_xl_be (signed long long, float *);
21986         * config/rs6000/altivec.h (vec_xl_be): Add #define.
21987         * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
21988         XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
21989         for the builtins.
21990         * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
21991         (altivec_expand_builtin): Add switch statement to call
21992         altivec_expand_xl_be for each builtin.
21993         (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
21994         __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
21995         __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
21996         __builtin_vsx_le_be_v16qi.
21997         * doc/extend.texi: Update the built-in documentation file for the
21998         new built-in functions.
21999
22000 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
22001
22002         PR target/25967
22003         * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
22004         New function.
22005         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
22006
22007 2017-07-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22008
22009         * config.gcc: Add z14.
22010         * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
22011         CPU model numbers for z13s and z14.
22012         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
22013         arch12 with z14.
22014         * config/s390/s390-opts.h (enum processor_type): Rename
22015         PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
22016         * config/s390/s390.c (processor_table): Add field for CPU name to
22017         be passed to Binutils.
22018         (s390_asm_output_machine_for_arch): Use the new field in
22019         processor_table for Binutils.
22020         (s390_expand_builtin): Replace arch12 with z14.
22021         (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
22022         (s390_get_sched_attrmask): Likewise.
22023         (s390_get_unit_mask): Likewise.
22024         * config/s390/s390.opt: Add z14 to processor_type enum.
22025
22026 2017-07-31  Martin Jambor  <mjambor@suse.cz>
22027
22028         PR hsa/81477
22029         * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
22030         regardless of optimization level.
22031
22032 2017-07-31  Jan Hubicka <hubicka@ucw.cz>
22033             Martin Liska  <mliska@suse.cz>
22034
22035         * predict.def: Remove old comment and adjust probability.
22036         * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
22037         PREDICT statements.
22038
22039 2017-07-31  Uros Bizjak  <ubizjak@gmail.com>
22040
22041         PR target/25967
22042         * config/i386/i386.c (ix86_function_naked): New function.
22043         (ix86_can_use_return_insn_p): Return false for naked functions.
22044         (ix86_expand_prologue): Skip prologue for naked functions.
22045         (ix86_expand_epilogue): Skip epilogue for naked functions
22046         and emit trap instruction.
22047         (ix86_warn_func_return): New function.
22048         (ix86_attribute_table): Add "naked" attribute specification.
22049         (TARGET_WARN_FUNC_RETURN): Define.
22050         * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
22051
22052 2017-07-31  Martin Liska  <mliska@suse.cz>
22053
22054         * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
22055         (dump_gimple_bb_header): Always dump BB info.
22056         (pp_cfg_jump): Do not append info about BB when dumping a jump.
22057
22058 2017-07-31  Martin Liska  <mliska@suse.cz>
22059
22060         PR sanitize/81530
22061         * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
22062         also with current_function_decl non-null equality.
22063
22064 2017-07-31  Jakub Jelinek  <jakub@redhat.com>
22065
22066         PR sanitizer/81604
22067         * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
22068         change type to the element type, instead add eltype variable and
22069         use it where we are interested in the element type.
22070
22071         PR tree-optimization/81603
22072         * ipa-polymorphic-call.c
22073         (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
22074         offset arithmetic in offset_int, bail out if the resulting bit offset
22075         doesn't fit into shwi.
22076
22077 2017-07-31  Martin Liska  <mliska@suse.cz>
22078
22079         * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
22080         (gimplify_save_expr): Fix comment.
22081
22082 2017-07-30  H.J. Lu  <hongjiu.lu@intel.com>
22083
22084         PR target/79793
22085         * config/i386/i386.c (ix86_function_arg): Update arguments for
22086         exception handler.
22087         (ix86_compute_frame_layout): Set the initial stack offset to
22088         INCOMING_FRAME_SP_OFFSET.  Update red-zone offset with
22089         INCOMING_FRAME_SP_OFFSET.
22090         (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
22091         stack before exception handler returns.
22092         * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
22093         the 'ERROR_CODE' for exception handler.
22094
22095 2017-07-30  Uros Bizjak  <ubizjak@gmail.com>
22096
22097         * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
22098         (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
22099         (ASM_OUTPUT_REG_POP): Ditto.
22100         * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
22101         instead of asm_fprintf to output pure string.
22102
22103 2017-07-29  Jakub Jelinek  <jakub@redhat.com>
22104
22105         * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
22106         to imported_module_or_decl hook.
22107         (debug_nothing_tree_tree_tree_bool): Remove.
22108         (debug_nothing_tree_tree_tree_bool_bool): New declaration.
22109         * debug.c (do_nothing_debug_hooks): Use
22110         debug_nothing_tree_tree_tree_bool_bool instead of
22111         debug_nothing_tree_tree_tree_bool.
22112         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
22113         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
22114         * sdbout.c (sdb_debug_hooks): Likewise.
22115         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
22116         (gen_namespace_die): Add DW_AT_export_symbols attribute if
22117         langhook wants it.
22118         (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
22119         if true, -gdwarf-5 and decl will have DW_AT_export_symbols
22120         attribute, don't add anything.
22121
22122 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22123
22124         * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
22125         (fold_build2_stat_loc): Likewise.
22126         (fold_build3_stat_loc): Likewise.
22127         * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
22128         (fold_build1_loc): Remove macro.
22129         (fold_build2_loc): Likewise.
22130         (fold_build3_loc): Likewise.
22131
22132 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22133
22134         * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
22135         (gimple_build_debug_bind_source_stat): Likewise.
22136         * gimple.h (gimple_build_debug_bind): Remove macro.
22137         (gimple_build_debug_bind_source): Likewise.
22138
22139 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22140
22141         * bitmap.c (bitmap_alloc): Adjust.
22142         (bitmap_gc_alloc): Likewise.
22143         * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
22144
22145 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22146
22147         * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
22148         (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
22149         * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
22150         (bitmap_gc_alloc_stat): Likewise.
22151         (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
22152
22153 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22154
22155         * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
22156         * rtl.h (shallow_copy_rtx): Remove macro.
22157
22158 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22159
22160         * emit-rtl.c (gen_raw_REG): Adjust.
22161         * gengenrtl.c (gendef): Likewise.
22162         * rtl.c (rtx_alloc_stat): Remove _stat from name.
22163         * rtl.h (rtx_alloc): Remove macro.
22164
22165 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22166
22167         * tree.c (build_tree_list_vec_stat): Remove _stat from name.
22168         (build_tree_list_stat): Likewise.
22169         * tree.h (build_tree_list): Remove macro.
22170         (build_tree_list_vec): Likewise.
22171
22172 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22173
22174         * tree.c (make_vector_stat): Remove _stat from name.
22175         (build_vector_stat): Likewise.
22176         * tree.h (make_vector_stat): Remove macro.
22177         (build_vector_stat): Likewise.
22178
22179 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22180
22181         * tree.h (build_var_debug_value): Remove prototype.
22182
22183 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22184
22185         * tree.c (tree_cons_stat): Remove _stat from name.
22186         * tree.h (tree_cons): Remove macro.
22187
22188 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22189
22190         * tree.c (build_vl_exp_stat): Remove _stat from name.
22191         * tree.h (build_vl_exp): Remove macro.
22192
22193 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22194
22195         * tree.c (build_decl_stat): Remove _stat from name.
22196         * tree.h (build_decl): Remove macro.
22197
22198 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22199
22200         * gimple.c (gimple_build_with_ops_stat): Adjust.
22201         (gimple_alloc_stat): Remove _stat from name.
22202         * gimple.h (gimple_alloc): Remove macro.
22203
22204 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22205
22206         * tree.c (make_tree_vec_stat): Remove _stat from name.
22207         (grow_tree_vec_stat): Likewise.
22208         * tree.h (make_tree_vec_stat): Adjust prototype.
22209         (grow_tree_vec_stat): Likewise.
22210         (make_tree_vec): Remove macro.
22211         (grow_tree_vec): Likewise.
22212
22213 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22214
22215         * fold-const.c (fold_build1_stat_loc): Adjust.
22216         (fold_build2_stat_loc): Likewise.
22217         (fold_build3_stat_loc): Likewise.
22218         * tree.c (build0_stat): Remove _stat from name.
22219         (build1_stat): Likewise.
22220         (build2_stat): Likewise.
22221         (build3_stat): Likewise.
22222         (build4_stat): Likewise.
22223         (build5_stat): Likewise.
22224         * tree.h (build1_loc): Remove macro, and rename _stat function
22225         to this.
22226         (build2_loc): Likewise.
22227         (build3_loc): Likewise.
22228         (build4_loc): Likewise.
22229         (build5_loc): Likewise.
22230
22231 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22232
22233         * tree.c (make_int_cst_stat): Remove _stat from name.
22234         * tree.h (make_int_cst_stat): Adjust prototype.
22235         (make_int_cst): Remove macro.
22236
22237 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22238
22239         * tree.c (make_tre_binfo_stat): Remove _stat from name.
22240         * tree.h (make_tree_binfo_stat): Adjust prototype.
22241         (make_tree_binfo): Remove.
22242
22243 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22244
22245         * tree.c (copy_node_stat): Rename to copy_node.
22246         (build_distinct_type_copy): Adjust.
22247         * tree.h (copy_node_stat): Adjust prototype.
22248         (copy_node): Remove macro.
22249
22250 2017-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22251
22252         * tree.c (make_node_stat): rename to make_node.
22253         (build_tree_list_stat): Adjust.
22254         (build0_stat): Likewise.
22255         (build2_stat): Likewise.
22256         (build3_stat): Likewise.
22257         (build4_stat): Likewise.
22258         (build5_stat): Likewise.
22259         (build_decl_stat): Likewise.
22260         * tree.h (make_node_stat): Adjust prototype.
22261         (make_node): remove macro.
22262
22263 2017-07-28  Peter Bergner  <bergner@vnet.ibm.com>
22264
22265         * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
22266         (PPC_FEATURE2_SCV): Likewise.
22267         * config/rs6000/rs6000.c (cpu_supports_info): Use them.
22268
22269 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
22270
22271         * config/aarch64/aarch64.c
22272         (aarch64_internal_mov_immediate): Add new special pattern.
22273         * config/aarch64/aarch64.md (*movdi_aarch64):
22274         Add reg/32bit const mov case.
22275
22276 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
22277             Richard Sandiford <richard.sandiford@linaro.org>
22278
22279         * config/aarch64/aarch64.md (mov<mode>): Generalize.
22280         (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
22281         Add integer and movi cases.
22282         (movi-split-hf-df-sf split, fp16): New.
22283         (enabled): Added TARGET_FP_F16INST.
22284         * config/aarch64/iterators.md (GPF_HF): New.
22285         * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
22286
22287 2017-07-28  Tamar Christina  <tamar.christina@arm.com>
22288
22289         * config/aarch64/aarch64.c
22290         (aarch64_simd_container_mode): Add prototype.
22291         (aarch64_expand_mov_immediate): Add HI support.
22292         (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
22293         (aarch64_can_const_movi_rtx_p): New.
22294         (aarch64_preferred_reload_class):
22295         Remove restrictions of using FP registers for certain SIMD operations.
22296         (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
22297         (aarch64_valid_floating_const): Add integer move validation.
22298         (aarch64_simd_imm_scalar_p): Remove.
22299         (aarch64_output_scalar_simd_mov_immediate): Generalize function.
22300         (aarch64_legitimate_constant_p): Expand list of supported cases.
22301         * config/aarch64/aarch64-protos.h
22302         (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
22303         (aarch64_reinterpret_float_as_int): New.
22304         (aarch64_simd_imm_scalar_p): Remove.
22305         * config/aarch64/constraints.md (Uvi): New.
22306         (Dd): Split into Ds and new Dd.
22307         * config/aarch64/aarch64.md (*movsi_aarch64):
22308         Add SIMD mov case.
22309         (*movdi_aarch64): Add SIMD mov case.
22310
22311 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22312
22313         * tree-predcom.c: (struct chain): Handle store-store chain in which
22314         stores for elimination only store loop invariant values.
22315         (execute_pred_commoning_chain): Ditto.
22316         (prepare_initializers_chain_store_elim): Ditto.
22317         (prepare_finalizers): Ditto.
22318         (is_inv_store_elimination_chain): New function.
22319         (initialize_root_vars_store_elim_1): New function.
22320
22321 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22322
22323         * tree-predcom.c: Revise general description of the pass.
22324         (enum chain_type): New enum type for store elimination.
22325         (struct chain): New field supporting store elimination.
22326         (struct component): Ditto.
22327         (dump_chain): Dump store-stores chain.
22328         (release_chain): Release resources.
22329         (split_data_refs_to_components): Compute and create component
22330         contains only stores for elimination.
22331         (get_chain_last_ref_at): New function.
22332         (make_invariant_chain): Initialization.
22333         (make_rooted_chain): Specify chain type in parameter and record it.
22334         (add_looparound_copies): Skip for store-stores chain.
22335         (determine_roots_comp): Compute type of chain and pass it to
22336         make_rooted_chain.
22337         (initialize_root_vars_store_elim_2): New function.
22338         (finalize_eliminated_stores): New function.
22339         (remove_stmt): Handle store for elimination.
22340         (execute_pred_commoning_chain): Execute predictive commoning on
22341         store-store chains.
22342         (determine_unroll_factor): Skip unroll for store-stores chain.
22343         (prepare_initializers_chain_store_elim): New function.
22344         (prepare_initializers_chain): Hanlde store-store chain.
22345         (prepare_finalizers_chain, prepare_finalizers): New function.
22346         (tree_predictive_commoning_loop): Return integer value indicating
22347         if loop is unrolled or lcssa form is corrupted.
22348         (tree_predictive_commoning): Rewrite for lcssa form if necessary.
22349
22350 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22351
22352         * tree-predcom.c (initialize_root): Delete.
22353         (execute_pred_commoning_chain): Initialize root vars and replace
22354         reference of non-combined chain directly, rather than call above
22355         function.
22356
22357 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22358
22359         * tree-predcom.c (ref_at_iteration): Add parameter NITERS.  Compute
22360         memory reference to DR at (NITERS + ITERS)-th iteration of loop.
22361
22362 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22363
22364         * tree-predcom.c (struct chain): New field init_seq.
22365         (release_chain): Release init_seq.
22366         (prepare_initializers_chain): Record intialization stmts in above
22367         field.
22368         (insert_init_seqs): New function.
22369         (tree_predictive_commoning_loop): Call insert_init_seqs.
22370
22371 2017-07-28  Bin Cheng  <bin.cheng@arm.com>
22372
22373         * tree-predcom.c (determine_roots_comp): Skip trivial components.
22374
22375 2017-07-28  Richard Biener  <rguenther@suse.de>
22376
22377         * match.pd: Remove superfluous :c.
22378         * genmatch.c (simplify::id): Add member.
22379         (lower_commutative, lower_opt_convert, lower_cond, lower_for):
22380         Copy id.
22381         (current_id): New global.
22382         (dt_node::parent): Move from ...
22383         (dt_operand::parent): ... here.  Add for_id member.
22384         (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
22385         (decision_tree::find_node): Relax order requirement when
22386         merging DT_TRUE nodes to ones inbetween the current simplify
22387         and the one we try to merge with.  Add diagnostic whenever
22388         we need to enforce pattern order by not merging.
22389         (decision_tree::insert): Set current_id.
22390         (decision_tree::print_node): Dump parent node and for_id.
22391         (parser::last_id): Add member.
22392         (parser::push_simplify): Assign unique id.
22393         (parser::parser): Initialize last_id.
22394
22395 2017-07-28  Martin Liska  <mliska@suse.cz>
22396
22397         PR sanitizer/81340
22398         * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
22399         gimple_build_debug_bind.
22400
22401 2017-07-28  Richard Biener  <rguenther@suse.de>
22402
22403         PR tree-optimization/81502
22404         * match.pd: Add pattern combining BIT_INSERT_EXPR with
22405         BIT_FIELD_REF.
22406         * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
22407         size/pos operands.
22408         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
22409         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
22410         for BIT_FIELD_REF args.
22411         * fold-const.c (make_bit_field_ref): Likewise.
22412         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
22413
22414 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
22415
22416         PR sanitizer/80998
22417         * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
22418         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
22419         * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
22420         Or it into SANITIZER_UNDEFINED.
22421         * ubsan.c: Include gimple-fold.h and varasm.h.
22422         (ubsan_expand_ptr_ifn): New function.
22423         (instrument_pointer_overflow): New function.
22424         (maybe_instrument_pointer_overflow): New function.
22425         (instrument_object_size): Formatting fix.
22426         (pass_ubsan::execute): Call instrument_pointer_overflow
22427         and maybe_instrument_pointer_overflow.
22428         * internal-fn.c (expand_UBSAN_PTR): New function.
22429         * ubsan.h (ubsan_expand_ptr_ifn): Declare.
22430         * sanitizer.def (__ubsan_handle_pointer_overflow,
22431         __ubsan_handle_pointer_overflow_abort): New builtins.
22432         * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
22433         * internal-fn.def (UBSAN_PTR): New internal function.
22434         * opts.c (sanitizer_opts): Add pointer-overflow.
22435         * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
22436         * fold-const.c (build_range_check): Compute pointer range check in
22437         integral type if pointer arithmetics would be needed.  Formatting
22438         fixes.
22439
22440 2017-07-28  Martin Liska  <mliska@suse.cz>
22441
22442         PR sanitizer/81460
22443         * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
22444         parameters that are of a variable-length.
22445
22446 2017-07-28  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22447
22448         * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h.  Add
22449         rs6000/biarch64.h.
22450         * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
22451         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
22452         (CRT_CALL_STATIC_FUNCTION): Likewise.
22453         (ASM_DEFAULT_SPEC): New define.
22454         (ASM_SPEC32): Likewise.
22455         (ASM_SPEC64): Likewise.
22456         (ASM_SPEC_COMMON): Likewise.
22457         (ASM_SPEC): Likewise.
22458         (INVALID_64BIT): Likewise.
22459         (LINK_OS_DEFAULT_SPEC): Likewise.
22460         (LINK_OS_SPEC32): Likewise.
22461         (LINK_OS_SPEC64): Likewise.
22462         (POWERPC_LINUX): Likewise.
22463         (PTRDIFF_TYPE): Likewise.
22464         (RESTORE_FP_PREFIX): Likewise.
22465         (RESTORE_FP_SUFFIX): Likewise.
22466         (SAVE_FP_PREFIX): Likewise.
22467         (SAVE_FP_SUFFIX): Likewise.
22468         (SIZE_TYPE): Likewise.
22469         (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
22470         (TARGET_64BIT): Likewise.
22471         (TARGET_64BIT): Likewise.
22472         (TARGET_AIX): Likewise.
22473         (WCHAR_TYPE_SIZE): Likewise.
22474         (WCHAR_TYPE): Undefine.
22475         (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
22476         (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
22477         (CPP_OS_RTEMS_SPEC): Delete.
22478         (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems.  Add
22479         asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
22480         link_os_spec64.
22481         * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
22482
22483 2017-07-28  Jakub Jelinek  <jakub@redhat.com>
22484
22485         PR tree-optimization/81578
22486         * tree-parloops.c (build_new_reduction): Bail out if
22487         reduction_code isn't one of the standard OpenMP reductions.
22488         Move the details printing after that decision.
22489
22490 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
22491
22492         * config/rs6000/predicates.md (volatile_mem_operand): Remove code
22493         related to reload_in_progress.
22494         (splat_input_operand): Likewise.
22495         * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
22496         Delete prototype.
22497         * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
22498         field.
22499         (TARGET_EXPAND_TO_RTL_HOOK): Delete.
22500         (TARGET_INSTANTIATE_DECLS): Likewise.
22501         (legitimate_indexed_address_p): Delete reload_in_progress code.
22502         (rs6000_debug_legitimate_address_p): Likewise.
22503         (rs6000_eliminate_indexed_memrefs): Likewise.
22504         (rs6000_emit_le_vsx_store): Likewise.
22505         (rs6000_emit_move_si_sf_subreg): Likewise.
22506         (rs6000_emit_move): Likewise.
22507         (register_to_reg_type): Likewise.
22508         (rs6000_pre_atomic_barrier): Likewise.
22509         (rs6000_machopic_legitimize_pic_address): Likewise.
22510         (rs6000_allocate_stack_temp): Likewise.
22511         (rs6000_address_for_fpconvert): Likewise.
22512         (rs6000_address_for_altivec): Likewise.
22513         (rs6000_secondary_memory_needed_rtx): Delete function.
22514         (rs6000_check_sdmode): Likewise.
22515         (rs6000_alloc_sdmode_stack_slot): Likewise.
22516         (rs6000_instantiate_decls): Likewise.
22517         * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
22518         * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
22519         Delete reload_in_progress.
22520         (*vec_reload_and_plus_<mptrsize>): Likewise.
22521         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
22522         (vsx_div_v2di): Likewise.
22523         (vsx_udiv_v2di): Likewise.
22524
22525 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
22526
22527         * config/rs6000/rs6000.opt (mlra): Replace with stub.
22528         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
22529         * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
22530         (rs6000_debug_reg_global): Delete print of LRA status.
22531         (rs6000_option_override_internal): Delete dead LRA related code.
22532         (rs6000_lra_p): Delete function.
22533         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
22534
22535 2017-07-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22536
22537         * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
22538         * config/riscv/rtems.h: New file.
22539
22540 2017-07-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22541             Sudakshina Das  <sudi.das@arm.com>
22542
22543         * config/aarch64/aarch64.md
22544         (define_split for and<mode>3nr_compare): Move
22545         non aarch64_logical_operand to a register.
22546         (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
22547         register immediate operand to a register.
22548         * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
22549
22550 2017-07-27  Peter Bergner  <bergner@vnet.ibm.com>
22551
22552         PR middle-end/81564
22553         * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
22554
22555 2017-07-27  Richard Biener  <rguenther@suse.de>
22556
22557         PR tree-optimization/81573
22558         PR tree-optimization/81494
22559         * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
22560         multi defuse cycle case.
22561
22562 2017-07-27  Richard Biener  <rguenther@suse.de>
22563
22564         PR tree-optimization/81571
22565         * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
22566         PHIs.
22567
22568 2017-07-27  Eric Botcazou  <ebotcazou@adacore.com>
22569
22570         * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
22571         earlier and only if MASK_FPU is set.  Adjust formatting.
22572
22573 2017-07-27  Martin Liska  <mliska@suse.cz>
22574
22575         * opt-functions.awk: Add validation of value of Init.
22576         * optc-gen.awk: Pass new argument.
22577
22578 2017-07-27  Martin Liska  <mliska@suse.cz>
22579
22580         * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
22581         Fix wrong condition.
22582
22583 2017-07-27  Martin Liska  <mliska@suse.cz>
22584
22585         * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
22586         BBs and edges seen by autoFDO.
22587
22588 2017-07-27  Richard Biener  <rguenther@suse.de>
22589
22590         PR tree-optimization/81502
22591         * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
22592         with incompatible but same sized type.
22593         (execute_update_addresses_taken): Likewise.
22594
22595 2017-07-27  James Greenhalgh  <james.greenhalgh@arm.com>
22596
22597         * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
22598         flag_tree_loop_vectorize rather than flag_tree_vectorize.
22599
22600 2017-07-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
22601
22602         PR target/81534
22603         * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
22604         ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
22605         Change s_operand to memory_operand.
22606
22607 2017-07-27  Richard Sandiford  <richard.sandiford@linaro.org>
22608
22609         * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
22610         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
22611         (rs6000_emit_le_vsx_permute): ...this.  Take the destination as input.
22612         Emit instructions rather than returning an expression.  Handle TFmode
22613         and KFmode by casting to TImode.
22614         (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
22615         (rs6000_emit_le_vsx_store): Likewise.
22616         * config/rs6000/vsx.md (VSX_TI): New iterator.
22617         (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
22618         (*vsx_le_undo_permute_<mode>): Likewise.
22619         (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
22620         emit the split sequence.
22621         (*vsx_le_perm_store_<mode>): Likewise.
22622
22623 2017-07-27  Jakub Jelinek  <jakub@redhat.com>
22624
22625         PR tree-optimization/81555
22626         PR tree-optimization/81556
22627         * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
22628         if true, force CHANGED for the recursive invocation.
22629         (reassociate_bb): Remember original length of ops array, pass
22630         len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
22631
22632         * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
22633         attributes for noipa attribute.  For naked attribute use
22634         lookup_attribute first before lookup_attribute_spec.
22635         * final.c (rest_of_handle_final): Disable IPA RA for functions with
22636         noipa attribute.
22637         * ipa-visibility.c (non_local_p): Fix comment typos.  Return true
22638         for functions with noipa attribute.
22639         (cgraph_externally_visible_p): Return true for functions with noipa
22640         attribute.
22641         * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
22642         for functions with noipa attribute.
22643         * doc/extend.texi: Document noipa function attribute.
22644         * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
22645         also for functions with noipa attribute.
22646         (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
22647
22648 2017-07-26  Andrew Pinski  <apinski@cavium.com>
22649
22650         * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
22651         vec_unalign_load_cost and vec_unalign_store_cost.
22652
22653 2017-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
22654
22655         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
22656         -mvsx-small-integer option.
22657         (ISA_3_0_MASKS_IEEE): Likewise.
22658         (OTHER_VSX_VECTOR_MASKS): Likewise.
22659         (POWERPC_MASKS): Likewise.
22660         * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
22661         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
22662         code, only testing for DImode being allowed in non-VSX floating
22663         point registers.
22664         (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
22665         to TARGET_P8_VECTOR test.  Remove redundant VSX test inside of
22666         another VSX test.
22667         (rs6000_option_override_internal): Delete -mvsx-small-integer.
22668         (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
22669         TARGET_P8_VECTOR test.
22670         (rs6000_secondary_reload_simple_move): Likewise.
22671         (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
22672         since TARGET_P9_VECTOR was already tested.
22673         (rs6000_opt_masks): Remove -mvsx-small-integer.
22674         * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
22675         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22676         used.
22677         (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
22678         test for TARGET_VEXTRACTUB was used, and that uses
22679         TARGET_P9_VECTOR.
22680         (p9 extract splitter): Likewise.
22681         (vsx_extract_<mode>_di_p9): Likewise.
22682         (vsx_extract_<mode>_store_p9): Likewise.
22683         (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
22684         for TARGET_P9_VECTOR was used.  Delete code that is now dead with
22685         the elimination of TARGET_VSX_SMALL_INTEGER.
22686         (vsx_extract_<mode>_p8): Likewise.
22687         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
22688         (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
22689         (vsx_set_<mode>_p9): Likewise.
22690         (vsx_set_v4sf_p9): Likewise.
22691         (vsx_set_v4sf_p9_zero): Likewise.
22692         (vsx_insert_extract_v4sf_p9): Likewise.
22693         (vsx_insert_extract_v4sf_p9_2): Likewise.
22694         * config/rs6000/rs6000.md (sign extend splitter): Change
22695         TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
22696         (floatsi<mode>2_lfiwax_mem): Likewise.
22697         (floatunssi<mode>2_lfiwzx_mem): Likewise.
22698         (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
22699         since a test for TARGET_P9_VECTOR was used.
22700         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22701         (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
22702         (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22703         (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
22704         TARGET_P8_VECTOR test.
22705         (fix_trunc<mode>si2_stfiwx): Likewise.
22706         (fix_trunc<mode>si2_internal): Likewise.
22707         (fix_trunc<SFDF:mode><QHI:mode>2): Delete
22708         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22709         used.
22710         (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
22711         (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
22712         TARGET_P8_VECTOR test.
22713         (fixuns_trunc<mode>si2_stfiwx): Likewise.
22714         (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
22715         TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
22716         used.
22717         (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
22718         (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
22719         since a test for TARGET_P9_VECTOR was used.
22720         (splitter for loading small constants): Likewise.
22721
22722 2017-07-26  Andrew Pinski  <apinski@cavium.com>
22723
22724         * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
22725         vec_fp_stmt_cost.
22726
22727 2017-07-26  H.J. Lu  <hongjiu.lu@intel.com>
22728
22729         PR target/81563
22730         * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
22731         (fp_valid_at): Likewise.
22732
22733 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
22734
22735         * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
22736         (qdf24xx_addrcost_table): Likewise.
22737         (cortexa57_tunings): Update to use generic_branch_cost.
22738         (cortexa72_tunings): Likewise.
22739         (cortexa73_tunings): Likewise.
22740         (qdf24xx_tunings): Likewise.
22741
22742 2017-07-26  James Greenhalgh  <james.greenhalgh@arm.com>
22743
22744         * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
22745         (thunderx2t99_branch_cost): Likewise.
22746         (cortexa35_tunings): Update to use generic_branch_cost.
22747         (cortexa53_tunings): Likewise.
22748         (cortexa57_tunings): Likewise.
22749         (cortexa72_tunings): Likewise.
22750         (cortexa73_tunings): Likewise.
22751         (thunderx2t99_tunings): Likewise.
22752
22753 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22754
22755         * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
22756         (sparc_option_override): Honour MASK_FSMULD.
22757         * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
22758         * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
22759         * config/sparc/sparc.opt (mfsmuld): New option.
22760         * doc/invoke.texi (mfsmuld): Document option.
22761
22762 2017-07-26  Marek Polacek  <polacek@redhat.com>
22763
22764         PR middle-end/70992
22765         * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
22766
22767 2017-07-26  Richard Biener  <rguenther@suse.de>
22768
22769         * gimple-match-head.c (do_valueize): Return OP if valueize
22770         returns NULL_TREE.
22771         (get_def): New helper to get at the def stmt of a SSA name
22772         if valueize allows.
22773         * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
22774         do_valueize to get at the def stmt.
22775         (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
22776
22777 2017-07-26  Wilco Dijkstra  <wdijkstr@arm.com>
22778
22779         PR middle-end/46932
22780         * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
22781
22782 2017-07-26  Martin Liska  <mliska@suse.cz>
22783
22784         PR sanitize/81186
22785         * function.c (expand_function_start): Make expansion of
22786         nonlocal_goto_save_area after parm_birth_insn.
22787
22788 2017-07-26  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22789
22790         * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
22791         from all CPU target flags enable members.
22792
22793 2017-07-26  Richard Biener  <rguenther@suse.de>
22794
22795         * genmatch.c (dt_simplify::gen): Make iterator vars const.
22796         (decision_tree::gen): Make 'type' const.
22797         (write_predicate): Likewise.
22798
22799 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
22800
22801         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
22802         Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
22803         (rs6000_option_override_internal): Likewise.
22804         (rs6000_expand_vector_set): Likewise.
22805         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
22806         (TARGET_UPPER_REGS_SF): Likewise.
22807         (TARGET_UPPER_REGS_DI): Likewise.
22808         (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
22809         (TARGET_DIRECT_MOVE_64BIT): Likewise.
22810         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
22811         (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
22812         (Splitters for DI constants in Altivec registers): Likewise.
22813         * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
22814         (vsx_set_v4sf_p9): Likewise.
22815         (vsx_set_v4sf_p9_zero): Likewise.
22816         (vsx_insert_extract_v4sf_p9): Likewise.
22817         (vsx_insert_extract_v4sf_p9_2): Likewise.
22818
22819 2017-07-25  Carl Love  <cel@us.ibm.com>
22820
22821         * doc/extend.texi: Update the built-in documentation file for the
22822         existing built-in functions
22823         vector signed char vec_cnttz (vector signed char);
22824         vector unsigned char vec_cnttz (vector unsigned char);
22825         vector signed short vec_cnttz (vector signed short);
22826         vector unsigned short vec_cnttz (vector unsigned short);
22827         vector signed int vec_cnttz (vector signed int);
22828         vector unsigned int vec_cnttz (vector unsigned int);
22829         vector signed long long vec_cnttz (vector signed long long);
22830         vector unsigned long long vec_cnttz (vector unsigned long long);
22831
22832 2017-07-25  Andrew Pinski  <apinski@cavium.com>
22833
22834         * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
22835         accesses where the use is for the first operand of a BIT_INSERT.
22836
22837 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22838
22839         PR bootstrap/81521
22840         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
22841         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
22842
22843 2017-07-25  Jim Wilson  <jim.wilson@linaro.org>
22844
22845         * config/i386/gstabs.h: Delete.
22846         * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
22847
22848 2017-07-25  Uros Bizjak  <ubizjak@gmail.com>
22849
22850         * config/i386/i386.c (ix86_decompose_address): Do not check for
22851         register RTX when looking at index_reg or base_reg.
22852         * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
22853
22854 2017-07-25  Eric Botcazou  <ebotcazou@adacore.com>
22855
22856         * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
22857         to update EH info here.
22858
22859 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22860
22861         * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
22862
22863 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22864
22865         * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
22866
22867 2017-07-25  Torsten Duwe  <duwe@suse.de>
22868
22869         * common.opt: Introduce -fpatchable-function-entry
22870         command line option, and its variables function_entry_patch_area_size
22871         and function_entry_patch_area_start.
22872         * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
22873         including a two-value parser.
22874         * target.def (print_patchable_function_entry): New target hook.
22875         * targhooks.h (default_print_patchable_function_entry): New function.
22876         * targhooks.c (default_print_patchable_function_entry): Likewise.
22877         * toplev.c (process_options): Switch off IPA-RA if
22878         patchable function entries are being generated.
22879         * varasm.c (assemble_start_function): Look at the
22880         patchable-function-entry command line switch and current
22881         function attributes and maybe generate NOP instructions by
22882         calling the print_patchable_function_entry hook.
22883         * doc/extend.texi: Document patchable_function_entry attribute.
22884         * doc/invoke.texi: Document -fpatchable_function_entry
22885         command line option.
22886         * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
22887         New target hook.
22888         * doc/tm.texi: Re-generate.
22889
22890 2017-07-25  Jakub Jelinek  <jakub@redhat.com>
22891
22892         PR target/81532
22893         * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
22894         TARGET_AVX512DQ rather than TARGET_AVX512BW.
22895
22896 2017-07-25  Tamar Christina  <tamar.christina@arm.com>
22897
22898         * config/arm/parsecpu.awk (all_cores): Remove duplicates.
22899
22900 2017-07-25  Richard Biener  <rguenther@suse.de>
22901
22902         PR tree-optimization/81455
22903         * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
22904         not walk in cycles when looking for guards.
22905
22906 2017-07-25  Richard Biener  <rguenther@suse.de>
22907
22908         PR tree-optimization/81529
22909         * tree-vect-stmts.c (process_use): Disregard live induction PHIs
22910         when optimizing backedge uses.
22911
22912 2017-07-25  David Edelsohn  <dje.gcc@gmail.com>
22913
22914         * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
22915         character for AIX.
22916         * dwarf2out.c (output_macinfo): Copy debug_line_section_label
22917         to dl_section_ref.  On AIX, append an expression to subtract
22918         the size of the section length to dl_section_ref.
22919
22920 2017-07-25  Segher Boessenkool  <segher@kernel.crashing.org>
22921
22922         * configure.ac: If any of the config.* scripts fail, exit 1.
22923         * configure: Regenerate.
22924
22925 2017-07-25  Richard Biener  <rguenther@suse.de>
22926
22927         PR middle-end/81546
22928         * tree-ssa-operands.c (verify_imm_links): Remove cap on number
22929         of immediate uses, be more verbose on errors.
22930
22931 2017-07-25  Richard Biener  <rguenther@suse.de>
22932
22933         PR tree-optimization/81510
22934         * tree-vect-loop.c (vect_is_simple_reduction): When the
22935         reduction stmt is not inside the loop bail out.
22936
22937 2017-07-25  Richard Biener  <rguenther@suse.de>
22938
22939         PR tree-optimization/81303
22940         * tree-vect-loop-manip.c (vect_loop_versioning): Build
22941         profitability check against LOOP_VINFO_NITERSM1.
22942
22943 2017-07-25  Alexander Monakov  <amonakov@ispras.ru>
22944
22945         * domwalk.c (cmp_bb_postorder): Simplify.
22946         (sort_bbs_postorder): New function.  Use it...
22947         (dom_walker::walk): ...here to optimize common cases.
22948
22949 2017-07-25  Martin Liska  <mliska@suse.cz>
22950
22951         PR ipa/81520
22952         * ipa-visibility.c (function_and_variable_visibility): Make the
22953         redirection just on target that supports aliasing.
22954         Fix GNU coding style.
22955
22956 2017-07-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>
22957
22958         PR libgcc/61152
22959         * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
22960         Format changes.
22961         * config/arm/rtems.h: Likewise.
22962         * config/bfin/rtems.h: Likewise.
22963         * config/i386/rtemself.h: Likewise.
22964         * config/lm32/rtems.h: Likewise.
22965         * config/m32c/rtems.h: Likewise.
22966         * config/m68k/rtemself.h: Likewise.
22967         * config/microblaze/rtems.h: Likewise.
22968         * config/mips/rtems.h: Likewise.
22969         * config/moxie/rtems.h: Likewise.
22970         * config/nios2/rtems.h: Likewise.
22971         * config/powerpcspe/rtems.h: Likewise.
22972         * config/rs6000/rtems.h: Likewise.
22973         * config/rtems.h: Likewise.
22974         * config/sh/rtems.h: Likewise.
22975         * config/sh/rtemself.h: Likewise.
22976         * config/sparc/rtemself.h: Likewise.
22977
22978 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22979
22980         PR 81487
22981         * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
22982         * gimple-pretty-print.c (dump_profile, dump_probability): Same.
22983         * tree-ssa-structalias.c (alias_get_name): Same.
22984
22985 2017-07-25  Bin Cheng  <bin.cheng@arm.com>
22986
22987         PR target/81414
22988         * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
22989         instructions if no du chain is found.
22990
22991 2017-07-25  Georg-Johann Lay  <avr@gjlay.de>
22992
22993         * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
22994
22995 2017-07-25  Richard Biener  <rguenther@suse.de>
22996
22997         PR middle-end/81505
22998         * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
22999         sticky.
23000
23001 2017-07-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
23002
23003         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
23004         upper-regs options.
23005         (ISA_2_7_MASKS_SERVER): Likewise.
23006         (ISA_3_0_MASKS_IEEE): Likewise.
23007         (OTHER_P8_VECTOR_MASKS): Likewise.
23008         (OTHER_VSX_VECTOR_MASKS): Likewise.
23009         (POWERPC_MASKS): Likewise.
23010         (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
23011         duplicate list of options.
23012         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
23013         explicit -mupper-regs options.
23014         * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
23015         -mupper-regs* options.  Delete -mvsx-scalar-memory, which was an
23016         alias for -mupper-regs-df.
23017         * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
23018         (rs6000_init_hard_regno_mode_ok): Likewise.
23019         (rs6000_option_override_internal): Likewise.
23020         (rs6000_opt_masks): Likewise.
23021         * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
23022         options in terms of whether -mvsx or -mpower8-vector was used.
23023         (TARGET_UPPER_REGS_DI): Likewise.
23024         (TARGET_UPPER_REGS_SF): Likewise.
23025         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
23026         -mupper-regs-* options.
23027
23028 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
23029
23030         * passes.c (emergency_dump_function): Print some empty lines and a
23031         header before the RTL dump.
23032
23033 2017-07-24  Segher Boessenkool  <segher@kernel.crashing.org>
23034
23035         * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
23036
23037 2017-07-24  Wilco Dijkstra  <wdijkstr@arm.com>
23038
23039         PR target/79041
23040         * config/aarch64/aarch64.c (aarch64_classify_symbol):
23041         Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
23042
23043 2017-07-24  Carl Love  <cel@us.ibm.com>
23044
23045         * config/rs6000/rs6000-c.c: Add support for built-in functions
23046         vector float vec_extract_fp32_from_shorth (vector unsigned short);
23047         vector float vec_extract_fp32_from_shortl (vector unsigned short);
23048         * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
23049         vec_extract_fp_from_shortl): Add defines for the two builtins.
23050         * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
23051         VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
23052         new builtins.
23053         * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
23054         (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
23055         * doc/extend.texi: Update the built-in documentation file for the
23056         new built-in function.
23057
23058 2017-07-24  Jakub Jelinek  <jakub@redhat.com>
23059
23060         PR bootstrap/81521
23061         * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
23062         documentation.
23063         * doc/generic.texi: Likewise.
23064         * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
23065         for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
23066
23067 2017-07-24  Jackson Woodruff  <jackson.woodruff@arm.com>
23068
23069         * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
23070         (aarch64_mls_elt_merge<mode>): Likewise.
23071
23072 2017-07-23  Krister Walfridsson  <krister.walfridsson@gmail.com>
23073
23074         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
23075         having __cxa_atexit.
23076
23077 2017-07-23  Michael Collison  <michael.collison@arm.com>
23078
23079         * config/arm/arm.c (arm_option_override): Deprecate
23080         use of -mstructure-size-boundary.
23081         * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
23082         * doc/invoke.texi: Deprecate -mstructure-size-boundary.
23083
23084 2017-07-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23085
23086         PR target/80695
23087         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
23088         Reduce cost estimate for direct moves.
23089
23090 2017-07-23  Uros Bizjak  <ubizjak@gmail.com>
23091
23092         PR target/80569
23093         * config/i386/i386.c (ix86_option_override_internal): Disable
23094         BMI, BMI2 and TBM instructions for -m16.
23095
23096 2017-07-21  Carl Love  <cel@us.ibm.com>
23097
23098         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23099         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
23100         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
23101         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
23102         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
23103         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
23104         VMULOSW): New enum "unspec" values.
23105         (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
23106         altivec_vmulosw): New patterns.
23107         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
23108         VMULOSW): Add definitions.
23109
23110 2017-07-21  Jim Wilson  <jim.wilson@linaro.org>
23111
23112         * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
23113         (qdf24xx): Likewise.
23114         * config/aarch64/aarch64-options-extensions.def (rdma); New.
23115         * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
23116         (AARCH64_FL_V8_1): Renumber.
23117         (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
23118         (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
23119         * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
23120         * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs.  Add
23121         rdma to feature modifiers list.
23122
23123 2017-07-21  Yury Gribov  <tetra2005@gmail.com>
23124
23125         PR middle-end/56727
23126         * ipa-visibility (function_and_variable_visibility): Convert
23127         recursive PLT call to direct call if appropriate.
23128
23129 2017-07-21  Andrew Pinski  <apinski@cavium.com>
23130
23131         * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
23132         operand 1 to see if the types precision matches.
23133         * fold-const.c (operand_equal_p): Likewise.
23134
23135 2017-07-21  Richard Biener  <rguenther@suse.de>
23136
23137         PR tree-optimization/81303
23138         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
23139         in datarefs vector.  Allow NULL dr0 for no peeling cost estimate.
23140         (vect_peeling_hash_get_lowest_cost): Adjust.
23141         (vect_enhance_data_refs_alignment): Likewise.  Use
23142         vect_get_peeling_costs_all_drs to compute the penalty for no
23143         peeling to match up costs.
23144
23145 2017-07-21  Richard Biener  <rguenther@suse.de>
23146
23147         PR tree-optimization/81500
23148         * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
23149         we didn't identify a reduction path.
23150
23151 2017-07-21  Tom de Vries  <tom@codesourcery.com>
23152             Cesar Philippidis  <cesar@codesourcery.com>
23153
23154         PR gcov-profile/81442
23155         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
23156         probabilities.
23157
23158 2017-07-21  Tom de Vries  <tom@codesourcery.com>
23159
23160         PR lto/81430
23161         * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
23162         function.
23163         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
23164         nvptx_override_options_after_change.
23165
23166 2017-07-21  Ulrich Drepper  <drepper@redhat.com>
23167
23168         * dwarf2out.c (output_file_names): Avoid double testing for
23169         dwarf_version >= 5.
23170
23171 2017-07-21  Georg-Johann Lay  <avr@gjlay.de>
23172
23173         * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
23174
23175 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
23176
23177         * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
23178         hot/cold regions.
23179         (try_crossjump_to_edge): Do not punt on partitioned functions.
23180
23181 2016-07-21  Jan Hubicka  <hubicka@ucw.cz>
23182
23183         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
23184         Put all BBs reachable only via paths crossing cold region to cold
23185         region.
23186         * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
23187
23188 2016-07-21  Richard Biener  <rguenther@suse.de>
23189
23190         PR tree-optimization/81303
23191         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
23192         into account prologue and epilogue iterations when raising
23193         min_profitable_iters to sth at least covering one vector iteration.
23194
23195 2017-07-21  Tamar Christina  <tamar.christina@arm.com>
23196
23197         * config/arm/arm.c (arm_test_cpu_arch_dat):
23198         Check for overlap.
23199
23200 2017-07-20  Nathan Sidwell  <nathan@acm.org>
23201
23202         Remove TYPE_METHODS.
23203         * tree.h (TYPE_METHODS): Delete.
23204         * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
23205         * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
23206         (dbxout_type_methods): Scan TYPE_FIELDS.
23207         (dbxout_type): Don't check TYPE_METHODS here.
23208         * function.c (use_register_for_decl): Always ignore register for
23209         class types when not optimizing.
23210         * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
23211         * tree.c (free_lang_data_in_type): Stitch out member functions and
23212         templates from TYPE_FIELDS.
23213         (build_distinct_type_copy, verify_type_variant,
23214         verify_type): Member fns are on TYPE_FIELDS.
23215         * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
23216         * tree-pretty-print.c (dump_generic_node): Likewise.
23217
23218 2017-07-20  Jakub Jelinek  <jakub@redhat.com>
23219
23220         PR target/80846
23221         * config/i386/i386.c (ix86_expand_vector_init_general): Handle
23222         V2TImode and V4TImode.
23223         (ix86_expand_vector_extract): Likewise.
23224         * config/i386/sse.md (VMOVE): Enable V4TImode even for just
23225         TARGET_AVX512F, instead of only for TARGET_AVX512BW.
23226         (ssescalarmode): Handle V4TImode and V2TImode.
23227         (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
23228         (*vec_extractv2ti, *vec_extractv4ti): New insns.
23229         (VEXTRACTI128_MODE): New mode iterator.
23230         (splitter for *vec_extractv?ti first element): New.
23231         (VEC_INIT_MODE): New mode iterator.
23232         (vec_init<mode>): Consolidate 3 expanders into one using
23233         VEC_INIT_MODE mode iterator.
23234
23235 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
23236
23237         * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
23238         non_spilled_static_chain_regno_p.
23239
23240 2017-07-20  Alexander Monakov  <amonakov@ispras.ru>
23241
23242         * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
23243
23244 2017-07-20  Jan Hubicka  <hubicka@ucw.cz>
23245
23246         * bb-reorder.c (connect_traces): Allow copying of blocks within
23247         single partition.
23248
23249 2017-07-20  Richard Biener  <rguenther@suse.de>
23250
23251         * gimple.h (gimple_phi_result): Add gphi * overload.
23252         (gimple_phi_result_ptr): Likewise.
23253         (gimple_phi_arg): Likewise.  Adjust index assert to only
23254         allow actual argument accesses rather than all slots available
23255         by capacity.
23256         (gimple_phi_arg_def): Add gphi * overload.
23257         * tree-phinodes.c (make_phi_node): Initialize only actual
23258         arguments.
23259         (resize_phi_node): Clear memory not covered by old node,
23260         do not initialize excess argument slots.
23261         (reserve_phi_args_for_new_edge): Initialize new argument slot
23262         completely.
23263
23264 2017-07-20  Bin Cheng  <bin.cheng@arm.com>
23265
23266         PR tree-optimization/81388
23267         Revert r238585:
23268         2016-07-21  Bin Cheng  <bin.cheng@arm.com>
23269
23270         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
23271         by removing computation of may_be_zero.
23272
23273 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
23274             Tom de Vries  <tom@codesourcery.com>
23275
23276         PR middle-end/81030
23277         * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
23278         when gimple level profile disagrees with what RTL expander did.
23279
23280 2017-07-20  Richard Biener  <rguenther@suse.de>
23281
23282         PR tree-optimization/61171
23283         * tree-vectorizer.h (slp_instance): Add reduc_phis member.
23284         (vect_analyze_stmt): Add slp instance parameter.
23285         (vectorizable_reduction): Likewise.
23286         * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
23287         (vect_is_simple_reduction): Deal with chains not detected
23288         as SLP reduction chain, specifically not properly associated
23289         chains containing a mix of plus/minus.
23290         (get_reduction_op): Remove.
23291         (get_initial_defs_for_reduction): Simplify, pass in whether
23292         this is a reduction chain, pass in the SLP node for the PHIs.
23293         (vect_create_epilog_for_reduction): Get the SLP instance as
23294         arg and adjust.
23295         (vectorizable_reduction): Get the SLP instance as arg.
23296         During analysis remember the SLP node with the PHIs in the
23297         instance.  Simplify getting at the vectorized reduction PHIs.
23298         * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
23299         through SLP instance.
23300         (vect_slp_analyze_operations): Likewise.
23301         * tree-vect-stms.c (vect_analyze_stmt): Likewise.
23302         (vect_transform_stmt): Likewise.
23303
23304 2017-07-20  Tom de Vries  <tom@codesourcery.com>
23305
23306         PR tree-optimization/81489
23307         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
23308         read of phi arg location to before loop that modifies phi.
23309
23310 2017-07-20  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
23311
23312         * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
23313         New pattern.
23314
23315 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
23316
23317         PR middle-end/81331
23318         * except.c (execute): Fix ordering issue.
23319
23320 2018-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
23321
23322         PR rtl-optimization/81423
23323         * combine.c (make_compound_operation_int): Don't try to optimize
23324         the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
23325
23326 2017-07-19  Segher Boessenkool  <segher@kernel.crashing.org>
23327
23328         PR rtl-optimization/81423
23329         * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
23330         with a constant that is -1 in the truncated to mode.
23331
23332 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
23333
23334         * predict.c (propagate_unlikely_bbs_forward): Break out from ...
23335         (determine_unlikely_bbs): ... here.
23336         * predict.h (propagate_unlikely_bbs_forward): Declare.
23337         * cfgexpand.c (pass_expand::execute): Use it.
23338         * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
23339         unlikely edges.
23340         (find_rarely_executed_basic_blocks_and_crossing_edges): Use
23341         propagate_unlikely_bbs_forward.
23342
23343 2017-07-19  Jan Hubicka  <hubicka@ucw.cz>
23344
23345         PR middle-end/81331
23346         * except.c (maybe_add_nop_after_section_switch): New function.
23347         (execute): Use it.
23348
23349 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23350
23351         * gimple.h (gimple_phi_set_arg): Make assert more strict.
23352
23353 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23354
23355         * gimple.h (gimple_phi_arg): Make assert more strict.
23356
23357 2017-07-19  Steven Munroe  <munroesj@gcc.gnu.org>
23358
23359         * config.gcc (powerpc*-*-*): Add mmintrin.h.
23360         * config/rs6000/mmintrin.h: New file.
23361         * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
23362
23363 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
23364
23365         PR tree-optimization/81346
23366         * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
23367
23368 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23369
23370         * config/nvptx/nvptx.md (VECIM): Add V2DI.
23371
23372 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23373
23374         * config/nvptx/nvptx-modes.def: Add V2DImode.
23375         * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
23376         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
23377         (nvptx_output_mov_insn): Handle lack of mov.b128.
23378         (nvptx_print_operand): Handle 'H' and 'L' codes.
23379         (nvptx_vector_mode_supported): Allow V2DImode.
23380         (nvptx_preferred_simd_mode): New function.
23381         (nvptx_data_alignment): New function.
23382         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
23383         nvptx_preferred_simd_mode.
23384         * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
23385         64 to 128 bits.
23386         (DATA_ALIGNMENT): Define.  Set to nvptx_data_alignment.
23387
23388 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23389
23390         * config/nvptx/nvptx-modes.def: New file.  Add V2SImode.
23391         * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
23392         (nvptx_vector_mode_supported): New function.  Allow V2SImode.
23393         (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
23394         * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
23395         (mov<VECIM>_insn): New define_insn.
23396         (define_expand "mov<VECIM>): New define_expand.
23397
23398 2017-07-19  Tom de Vries  <tom@codesourcery.com>
23399
23400         * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
23401
23402 2017-07-19  Jakub Jelinek  <jakub@redhat.com>
23403
23404         PR tree-optimization/81346
23405         * fold-const.h (fold_div_compare, range_check_type): Declare.
23406         * fold-const.c (range_check_type): New function.
23407         (build_range_check): Use range_check_type.
23408         (fold_div_compare): No longer static, rewritten into
23409         a match.pd helper function.
23410         (fold_comparison): Don't call fold_div_compare here.
23411         * match.pd (X / C1 op C2): New optimization using fold_div_compare
23412         as helper function.
23413
23414 2017-07-19  Nathan Sidwell  <nathan@acm.org>
23415
23416         * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
23417         (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
23418         * tree.c (find_decls_types_r, verify_type): Use
23419         TYPE_{MIN,MAX}_VALUE_RAW.
23420         * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
23421         (hash_tree): Likewise.
23422         * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
23423         Likewise.
23424         * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
23425         Likewise.
23426
23427 2017-07-18  Tom de Vries  <tom@codesourcery.com>
23428
23429         PR middle-end/81464
23430         * omp-expand.c (expand_omp_for_static_chunk): Handle
23431         equal-argument loop exit phi.
23432
23433 2017-07-18  Uros Bizjak  <ubizjak@gmail.com>
23434
23435         PR target/81471
23436         * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
23437         (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
23438         operand 2 predicate.
23439         (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
23440         operand 2 predicate.
23441         (ror,rol -> rorx splitters): Use const_int_operand as
23442         operand 2 predicate.
23443
23444 2017-06-18  Richard Biener  <rguenther@suse.de>
23445
23446         PR tree-optimization/81410
23447         * tree-vect-stmts.c (vectorizable_load): Properly adjust for
23448         the gap in the ! slp_perm SLP case after each group.
23449
23450 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
23451
23452         PR middle-end/81463
23453         * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
23454         again.
23455
23456 2017-07-18  Jan Hubicka  <hubicka@ucw.cz>
23457
23458         PR middle-end/81462
23459         * predict.c (set_even_probabilities): Cleanup; do not affect
23460         probabilities that are already known.
23461         (combine_predictions_for_bb): Call even when count is set.
23462
23463 2017-07-18  Nathan Sidwell  <nathan@acm.org>
23464
23465         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
23466         TYPE_MAX_VALUE.
23467
23468 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
23469
23470         PR target/81408
23471         * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
23472         optimization for loop niter analysis.
23473
23474 2017-07-18  Georg-Johann Lay  <avr@gjlay.de>
23475
23476         PR target/81473
23477         * config/avr/avr.c (avr_optimize_casesi): Don't use
23478         INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
23479
23480 2017-07-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>
23481
23482         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
23483         body_cost_vec from _vect_peel_extended_info.
23484         (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
23485         (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
23486         npeel.
23487
23488 2017-07-18  Bin Cheng  <bin.cheng@arm.com>
23489
23490         * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
23491
23492 2017-07-18  Richard Biener  <rguenther@suse.de>
23493
23494         PR tree-optimization/80620
23495         PR tree-optimization/81403
23496         * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
23497         info when re-using a VN table entry.
23498
23499 2017-07-18  Richard Biener  <rguenther@suse.de>
23500
23501         PR tree-optimization/81418
23502         * tree-vect-loop.c (vectorizable_reduction): Properly compute
23503         vectype_in.  Verify that with lane-reducing reduction operations
23504         we have a single def-use cycle.
23505
23506 2017-07-17  Carl Love  <cel@us.ibm.com>
23507
23508         Revert commit r249424   2017-06-20  Carl Love  <cel@us.ibm.com>
23509
23510         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23511         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
23512         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
23513         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
23514         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
23515         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
23516         VMULOSW): New enum "unspec" values.
23517         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
23518         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
23519         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
23520         altivec_vmulosw): New patterns.
23521         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
23522         VMULOSW): Add definitions.
23523
23524 2017-07-17  Uros Bizjak  <ubizjak@gmail.com>
23525
23526         * config/alpha/alpha.c: Include predict.h.
23527
23528 2017-07-17  Yury Gribov  <tetra2005@gmail.com>
23529
23530         * tree-vrp.c (compare_assert_loc): Fix comparison function
23531         to return predictable results.
23532
23533 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23534
23535         * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
23536         option.
23537         (subdi3): Likewise.
23538         * config/arc/arc.opt (mexpand-adddi): Deprecate it.
23539         * doc/invoke.texi (mexpand-adddi): Update text.
23540
23541 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23542
23543         * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
23544         that also clobbers the CC register. The old expand code is moved
23545         to ...
23546         (*arc_clzsi2): ... here.
23547         (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
23548         the CC register. The old expand code is moved to ...
23549         (arc_ctzsi2): ... here.
23550
23551 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23552
23553         * config/arc/arc.opt (mindexed-loads): Use initial value
23554         TARGET_INDEXED_LOADS_DEFAULT.
23555         (mauto-modify-reg): Use initial value
23556         TARGET_AUTO_MODIFY_REG_DEFAULT.
23557         * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
23558         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
23559         * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
23560         (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
23561
23562 2017-07-17  Martin Liska  <mliska@suse.cz>
23563
23564         PR sanitizer/81302
23565         * opts.c (finish_options): Do not allow -fgnu-tm
23566         w/ -fsanitize={kernel-,}address.  Say sorry.
23567
23568 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
23569
23570         PR target/81369
23571         * tree-loop-distribution.c (classify_partition): Only assert on
23572         numer of iterations.
23573         (merge_dep_scc_partitions): Delete prameter.  Update function call.
23574         (distribute_loop): Remove code handling loop with unknown niters.
23575         (pass_loop_distribution::execute): Skip loop with unknown niters.
23576
23577 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
23578
23579         PR target/81369
23580         * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
23581         function sort_partitions_by_post_order.
23582
23583 2017-07-17  Bin Cheng  <bin.cheng@arm.com>
23584
23585         PR tree-optimization/81374
23586         * tree-loop-distribution.c (pass_loop_distribution::execute): Record
23587         the max index of basic blocks, rather than number of basic blocks.
23588
23589 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23590
23591         * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
23592         proto.
23593         (arc_legitimate_pic_operand_p): Likewise.
23594         * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
23595         function.
23596         (arc_needs_pcl_p): Likewise.
23597         (arc_legitimate_pc_offset_p): Likewise.
23598         (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
23599         function is also used in constrains.md.
23600         (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
23601         validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
23602         PLUS.  Only return true/false in known cases, otherwise assert.
23603         (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
23604         is already called in arc_legitimate_constant_p.
23605         * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
23606         pic addresses.
23607         (LEGITIMATE_PIC_OPERAND_P): Use
23608         arc_raw_symbolic_reference_mentioned_p function.
23609         * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
23610         function.
23611         (Cal): Likewise.
23612         (C32): Likewise.
23613
23614 2017-07-17  Claudiu Zissulescu  <claziss@synopsys.com>
23615         Andrew Burgess  <andrew.burgess@embecosm.com>
23616
23617         * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
23618         (arc_return_address_register): New function.
23619         * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
23620         (arc_handle_fndecl_attribute): Add naked attribute.
23621         (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
23622         (TARGET_WARN_FUNC_RETURN): Likewise.
23623         (arc_allocate_stack_slots_for_args): New function.
23624         (arc_warn_func_return): Likewise.
23625         (machine_function): Change type fn_type.
23626         (arc_compute_function_type): Consider new naked function type,
23627         change function return type.
23628         (arc_must_save_register): Adapt to handle new
23629         arc_compute_function_type's return type.
23630         (arc_expand_prologue): Likewise.
23631         (arc_expand_epilogue): Likewise.
23632         (arc_return_address_regs): Delete.
23633         (arc_return_address_register): New function.
23634         (arc_epilogue_uses): Use above function.
23635         * config/arc/arc.h (arc_return_address_regs): Delete prototype.
23636         (arc_function_type): Change encoding, add naked type.
23637         (ARC_INTERRUPT_P): Change to handle the new encoding.
23638         (ARC_FAST_INTERRUPT_P): Likewise.
23639         (ARC_NORMAL_P): Define.
23640         (ARC_NAKED_P): Likewise.
23641         (arc_compute_function_type): Delete prototype.
23642         * config/arc/arc.md (in_ret_delay_slot): Use
23643         arc_return_address_register function.
23644         (simple_return): Likewise.
23645         (p_return_i): Likewise.
23646
23647 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23648
23649         PR tree-optimization/81428
23650         * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
23651         can't be built for those types.
23652
23653 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
23654
23655         Remove stuff dead since r239246.
23656
23657         * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
23658         * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
23659         (avr_inform_devices): Remove dead stuff.
23660
23661 2017-07-17  Tamar Christina  <tamar.christina@arm.com>
23662
23663         * config/arm/arm_neon.h: Fix softp typo.
23664
23665 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23666
23667         PR tree-optimization/81365
23668         * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
23669         aggregate moves onto bb predecessor edges, make sure there are no
23670         loads that could alias the lhs in between the start of bb and the
23671         loads from *phi.
23672
23673 2017-07-17  Georg-Johann Lay  <avr@gjlay.de>
23674
23675         PR 80929
23676         * config/avr/avr.c (avr_mul_highpart_cost): New static function.
23677         (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
23678         [LSHIFTRT, outer_code = TRUNCATE]: Same.
23679
23680 2017-07-17  Jakub Jelinek  <jakub@redhat.com>
23681
23682         PR tree-optimization/81396
23683         * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
23684         (init_symbolic_number): Initialize it to 1.
23685         (perform_symbolic_merge): Add n_ops from both operands into the new
23686         n_ops.
23687         (find_bswap_or_nop): Don't consider n->n == cmpnop computations
23688         without base_addr as useless if they need more than one operation.
23689         (bswap_replace): Handle !bswap case for NULL base_addr.
23690
23691 2017-07-17  Tom de Vries  <tom@codesourcery.com>
23692
23693         PR target/81069
23694         * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
23695         as possible.
23696
23697 2017-07-17  Sebastian Huber  <sebastian.huber@embedded-brains.de>
23698
23699         * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
23700         conditional builtin define __FIX_LEON3FT_B2BST.
23701
23702 2017-07-17  Daniel Cederman  <cederman@gaisler.com>
23703
23704         * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
23705         MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
23706         with -mfix-ut700.
23707
23708 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
23709
23710         PR rtl-optimization/81424
23711         * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
23712         to remove potential trapping from operands if -fnon-call-exceptions.
23713
23714 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23715
23716         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
23717         profile_proability for scalling.
23718         * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
23719
23720 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23721
23722         * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
23723
23724 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23725
23726         * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
23727         fixpoint arithmetics.
23728
23729 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23730
23731         * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
23732         fixpoint arithmetics.
23733
23734 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23735
23736         * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
23737         fixpoint arithmetics.
23738
23739 2017-07-16  Jan Hubicka  <hubicka@ucw.cz>
23740
23741         * profile-count.h (profile_probability::from_reg_br_prob_note,
23742         profile_probability::to_reg_br_prob_note): New functions.
23743         * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
23744         * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
23745         * predict.c (probability_reliable_p): Update.
23746         (edge_probability_reliable_p): Update.
23747         (br_prob_note_reliable_p): Update.
23748         (invert_br_probabilities): Update.
23749         (add_reg_br_prob_note): New function.
23750         (combine_predictions_for_insn): Update.
23751         * asan.c (asan_clear_shadow): Update.
23752         * cfgbuild.c (compute_outgoing_frequencies): Update.
23753         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
23754         (update_br_prob_note): Update.
23755         (rtl_verify_edges): Update.
23756         (purge_dead_edges): Update.
23757         (fixup_reorder_chain): Update.
23758         * emit-rtl.c (try_split): Update.
23759         * ifcvt.c (cond_exec_process_insns): Update.
23760         (cond_exec_process_if_block): Update.
23761         (dead_or_predicable): Update.
23762         * internal-fn.c (expand_addsub_overflow): Update.
23763         (expand_neg_overflow): Update.
23764         (expand_mul_overflow): Update.
23765         * loop-doloop.c (doloop_modify): Update.
23766         * loop-unroll.c (compare_and_jump_seq): Update.
23767         * optabs.c (emit_cmp_and_jump_insn_1): Update.
23768         * predict.h: Update.
23769         * reorg.c (mostly_true_jump): Update.
23770         * rtl.h: Update.
23771         * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
23772         * config/alpha/alpha.c (emit_unlikely_jump): Update.
23773         * config/arc/arc.c: (emit_unlikely_jump): Update.
23774         * config/arm/arm.c: (emit_unlikely_jump): Update.
23775         * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
23776         * config/frv/frv.c (frv_print_operand_jump_hint): Update.
23777         * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
23778         (ix86_print_operand): Update.
23779         (ix86_split_fp_branch): Update.
23780         (predict_jump): Update.
23781         * config/ia64/ia64.c (ia64_print_operand): Update.
23782         * config/mmix/mmix.c (mmix_print_operand): Update.
23783         * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
23784         (rs6000_expand_split_stack_prologue): Update.
23785         * config/rs6000/rs6000.c: Update.
23786         * config/s390/s390.c (s390_expand_vec_strlen): Update.
23787         (s390_expand_vec_movstr): Update.
23788         (s390_expand_cs_tdsi): Update.
23789         (s390_expand_split_stack_prologue): Update.
23790         * config/sh/sh.c (sh_print_operand): Update.
23791         (expand_cbranchsi4): Update.
23792         (expand_cbranchdi4): Update.
23793         * config/sparc/sparc.c (output_v9branch): Update.
23794         * config/spu/spu.c (get_branch_target): Update.
23795         (ea_load_store_inline): Update.
23796         * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
23797         * config/tilepro/tilepro.c: Update.
23798
23799 2017-07-16  Eric Botcazou  <ebotcazou@adacore.com>
23800
23801         * gimplify.c (mostly_copy_tree_r): Revert latest change.
23802         (gimplify_save_expr): Likewise.
23803
23804 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23805
23806         * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
23807
23808 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23809
23810         * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
23811         TV_IPA_FNSUMMARY.
23812         * timevar.def (TV_IPA_FNSUMMARY): Define.
23813
23814 2017-07-16  Daniel Cederman  <cederman@gaisler.com>
23815
23816         * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
23817         to back store errata sensitive sequence from being generated.
23818         (sqrtdf2_fix): Likewise.
23819
23820 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
23821
23822         * tree-ssa-threadupdate.c (compute_path_counts,
23823         update_joiner_offpath_counts): Use profile_probability.
23824
23825 2017-07-15  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23826
23827         Revert:
23828         2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23829
23830         * config/arm/arm-c.c (arm_cpu_builtins): Define
23831         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23832
23833 2017-07-14  Kelvin Nilsen  <kelvin@gcc.gnu.org>
23834
23835         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23836         array entries to represent __ieee128 versions of the
23837         scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
23838         scalar_extract_sig, and scalar_insert_exp built-in functions.
23839         (altivec_resolve_overloaded_builtin): Add special case handling
23840         for the __builtin_scalar_insert_exp function, as represented by
23841         the P9V_BUILTIN_VEC_VSIEDP constant.
23842         * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
23843         exponent support for __ieee128 argument.
23844         (VSESQP): Add scalar extract signature support for __ieee128
23845         argument.
23846         (VSTDCNQP): Add scalar test negative support for __ieee128
23847         argument.
23848         (VSIEQP): Add scalar insert exponent support for __int128 argument
23849         with __ieee128 result.
23850         (VSIEQPF): Add scalar insert exponent support for __ieee128
23851         argument with __ieee128 result.
23852         (VSTDCQP): Add scalar test data class support for __ieee128
23853         argument.
23854         (VSTDCNQP): Add overload support for scalar test negative with
23855         __ieee128 argument.
23856         (VSTDCQP): Add overload support for scalar test data class
23857         __ieee128 argument.
23858         * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
23859         UNSPEC_VSX_SXSIGDP.
23860         (UNSPEC_VSX_SIEXPQP): New constant.
23861         (xsxexpqp): New insn for VSX scalar extract exponent quad
23862         precision.
23863         (xsxsigqp): New insn for VSX scalar extract significand quad
23864         precision.
23865         (xsiexpqpf): New insn for VSX scalar insert exponent quad
23866         precision with floating point argument.
23867         (xststdcqp): New expand for VSX scalar test data class quad
23868         precision.
23869         (xststdcnegqp): New expand for VSX scalar test negative quad
23870         precision.
23871         (xststdcqp): New insn to match expansions for VSX scalar test data
23872         class quad precision and VSX scalar test negative quad precision.
23873         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
23874         special case operand checking to enforce that second operand of
23875         VSX scalar test data class with quad precision argument is a 7-bit
23876         unsigned literal.
23877         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
23878         prototypes and descriptions of __ieee128 versions of
23879         scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
23880         scalar_test_data_class, and scalar_test_neg built-in functions.
23881
23882 2016-07-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23883
23884         PR tree-optimization/81162
23885         * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
23886         replace a negate with an add.
23887
23888 2017-07-14  James Greenhalgh  <james.greenhalgh@arm.com>
23889
23890         * doc/invoke.texi (arm/-mcpu): Document +crypto.
23891
23892 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23893
23894         * config/arm/arm-c.c (arm_cpu_builtins): Define
23895         __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
23896
23897 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23898
23899         * config/arm/arm-cpus.in (cortex-r52): Add new entry.
23900         (armv8-r): Set ARM Cortex-R52 as default CPU.
23901         * config/arm/arm-tables.opt: Regenerate.
23902         * config/arm/arm-tune.md: Regenerate.
23903         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
23904         Cortex-R52.
23905         * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
23906         extension for -mcpu=cortex-r52.
23907
23908 2017-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23909
23910         * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
23911         (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
23912         * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
23913         (fp-armv8): Define it as FP_ARMv8 only.
23914         config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
23915         (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
23916         TARGET_FPU_ARMV8.
23917         config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
23918         TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
23919         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
23920         first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
23921         than TARGET_FPU_ARMV8.
23922         * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
23923         __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
23924         * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
23925         TARGET_FPU_ARMV8.
23926         * config/arm/neon.md (neon_vrint): Likewise.
23927         (neon_vcvt): Likewise.
23928         (neon_<fmaxmin_op><mode>): Likewise.
23929         (<fmaxmin><mode>3): Likewise.
23930         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
23931         * config/arm/predicates.md (arm_cond_move_operator): Check against
23932         TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
23933
23934 2017-07-14  Jackson Woodruff  <jackson.woodruff@arm.com>
23935
23936         * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
23937         to top of function.
23938
23939 2017-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23940
23941         * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
23942         loop in comment with memset.
23943
23944 2017-07-14  Martin Liska  <mliska@suse.cz>
23945
23946         * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
23947         * dwarf2out.c (is_java): Remove the function.
23948         (output_pubname): Remove usage of the function.
23949         (lower_bound_default): Remove usage of DW_LANG_Java.
23950         (gen_compile_unit_die): Likewise.
23951         * gcc.c: Remove compiler defaults for .java and .zip files.
23952         * gimple-expr.c (remove_suffix): Change as there's no longer
23953         extension than 4-letter one.
23954         * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
23955         (gimplify_save_expr): Likewise.
23956         * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
23957         as it's possible even for other languages than Java.
23958         * langhooks.h (struct lang_hooks): Remove Java from a comment.
23959         * lto-opts.c (lto_write_options): Remove reference to Java.
23960         * opts.c (strip_off_ending): Update file extension handling.
23961         * tree-cfg.c (verify_gimple_call): Remove comment with Java.
23962         * tree-eh.c (lower_resx): Likewise.
23963         * tree.c (free_lang_data_in_type): Remove dead code.
23964         (find_decls_types_r): Likewise.
23965         (build_common_builtin_nodes): Remove Java from a comment.
23966         (verify_type): Remove dead code.
23967         * varasm.c (assemble_external): Remove Java from a comment.
23968
23969 2017-07-14  Martin Liska  <mliska@suse.cz>
23970
23971         * opts.c (finish_options): Add quotes.
23972         (common_handle_option): Likewise.
23973
23974 2017-07-14  Martin Liska  <mliska@suse.cz>
23975
23976         * dbxout.c (get_lang_number): Do not handle GNU Pascal.
23977         * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
23978         Remove N_SO_PASCAL.
23979         * dwarf2out.c (lower_bound_default): Do not handle
23980         DW_LANG_Pascal83.
23981         (gen_compile_unit_die): Likewise.
23982         * gcc.c: Remove default extension binding for GNU Pascal.
23983         * stmt.c: Remove Pascal language from a comment.
23984         * xcoffout.c: Likewise.
23985
23986 2017-07-13  David Malcolm  <dmalcolm@redhat.com>
23987
23988         PR c/81405
23989         * diagnostic-show-locus.c (fixit_cmp): New function.
23990         (layout::layout): Sort m_fixit_hints.
23991         (column_range::column_range): Assert that the values are valid.
23992         (struct char_span): New struct.
23993         (correction::overwrite): New method.
23994         (struct source_line): New struct.
23995         (line_corrections::add_hint): Add assertions.  Reimplement memcpy
23996         calls in terms of classes source_line and char_span, and
23997         correction::overwrite.
23998         (selftest::test_overlapped_fixit_printing_2): New function.
23999         (selftest::diagnostic_show_locus_c_tests): Call it.
24000
24001 2017-07-13  Will Schmidt  <will_schmidt@vnet.ibm.com>
24002
24003         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
24004         early if there is no lhs.
24005
24006 2017-07-13  Martin Liska  <mliska@suse.cz>
24007
24008         * dwarf2out.c (gen_pointer_type_die): Remove dead code.
24009         (gen_reference_type_die): Likewise.
24010         * stor-layout.c: Remove Pascal-related comment.
24011
24012 2017-07-13  Martin Liska  <mliska@suse.cz>
24013
24014         * opts.c (finish_options): Add quotes to error messages.
24015         (parse_sanitizer_options): Likewise.
24016
24017 2017-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24018
24019         * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
24020
24021 2017-07-13  Richard Earnshaw  <rearnsha@arm.com>
24022
24023         * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
24024
24025 2017-07-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
24026
24027         * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
24028         during expansion.
24029         * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
24030
24031 2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
24032
24033         PR target/81193
24034         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
24035         provides the hardware capability bits, define the macro
24036         __BUILTIN_CPU_SUPPORTS__.
24037         * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
24038         if GLIBC does not provide the hardware capability bits.  Add a
24039         gcc_unreachable call if the built-in cpu function is neither
24040         __builtin_cpu_is nor __builtin_cpu_supports.
24041         (rs6000_get_function_versions_dispatcher): Change the warning
24042         that an old GLIBC is used which does not export the capability
24043         bits to be an error.
24044         * doc/extend.texi (target_clones attribute): Document the
24045         restriction that GLIBC 2.23 or newer is needed on the PowerPC.
24046         (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
24047         needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
24048         the macros defined by GCC if the newer GLIBC is available.
24049
24050 2017-07-12  Jeff Law  <law@redhat.com>
24051
24052         * config/riscv/riscv.c: Remove unnecessary includes.  Reorder
24053         remaining includes slightly.
24054         * config/riscv/riscv-builtins.c: Include profile-count.h.
24055
24056 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
24057
24058         PR target/79883
24059         * config/avr/avr.c (avr_set_current_function): In diagnostic
24060         messages: Quote keywords and (parts of) identifiers.
24061         [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
24062         "INTERUPT".
24063
24064 2017-07-12  Carl Love  <cel@us.ibm.com>
24065
24066         * config/rs6000/rs6000-c.c: Add support for built-in functions
24067         vector bool char vec_revb (vector bool char);
24068         vector bool short vec_revb (vector short char);
24069         vector bool int vec_revb (vector bool int);
24070         vector bool long long vec_revb (vector bool long long);
24071         * doc/extend.texi: Update the built-in documentation file for the
24072         new built-in functions.
24073
24074 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24075
24076         * config/s390/s390.md: Remove movcc splitter.
24077
24078 2017-07-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24079
24080         * config/s390/s390.c (s390_rtx_costs): Return proper costs for
24081         load/store on condition.
24082
24083 2017-07-12  Georg-Johann Lay  <avr@gjlay.de>
24084
24085         PR target/81407
24086         * config/avr/avr.c (avr_encode_section_info)
24087         [progmem && !TREE_READONLY]: Error if progmem object needs
24088         constructing.
24089
24090 2017-07-11  Michael Collison  <michael.collison@arm.com>
24091
24092         * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
24093         New pattern.
24094
24095 2017-07-11  Carl Love  <cel@us.ibm.com>
24096
24097         * config/rs6000/rs6000-c.c: Add support for builtins
24098         vector unsigned int vec_parity_lsbb (vector signed int);
24099         vector unsigned int vec_parity_lsbb (vector unsigned int);
24100         vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
24101         vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
24102         vector unsigned long long vec_parity_lsbb (vector signed long long);
24103         vector unsigned long long vec_parity_lsbb (vector unsigned long long);
24104         * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
24105         * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
24106         * doc/extend.texi: Update the built-in documentation file for the
24107         new built-in functions.
24108
24109 2017-07-11  David Malcolm  <dmalcolm@redhat.com>
24110
24111         * diagnostic-show-locus.c: Include "gcc-rich-location.h".
24112         (layout::m_primary_loc): New field.
24113         (layout::layout): Initialize new field.  Move location filtering
24114         logic from here to...
24115         (layout::maybe_add_location_range): ...this new method.  Add
24116         support for filtering to just the lines already specified by other
24117         locations.
24118         (layout::will_show_line_p): New method.
24119         (gcc_rich_location::add_location_if_nearby): New method.
24120         (selftest::test_add_location_if_nearby): New test function.
24121         (selftest::diagnostic_show_locus_c_tests): Call it.
24122         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
24123         New method.
24124
24125 2017-07-11  Tom de Vries  <tom@codesourcery.com>
24126
24127         * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
24128         (bb_first_real_insn): New function.
24129         (nvptx_single): Add extra initialization of broadcasted condition
24130         variables.
24131
24132 2017-07-11  Nathan Sidwell  <nathan@acm.org>
24133
24134         * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
24135
24136 2017-07-11  Georg-Johann Lay  <avr@gjlay.de>
24137
24138         * doc/extend.texi (AVR Function Attributes): Remove weblink to
24139         Binutils doc as TEXI will mess them up.
24140         * doc/invoke.texi (AVR Options): Same here.
24141
24142 2017-07-11  Daniel Cederman  <cederman@gaisler.com>
24143
24144         * config/sparc/sparc.opt (mfix-ut700): New option.
24145         (mfix-gr712rc): Likewise.
24146         (sparc_fix_b2bst): New variable.
24147         * doc/invoke.texi (SPARC options): Document them.
24148         (ARM options): Fix warnings.
24149         * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
24150         instructions to prevent sequences that can trigger the store-store
24151         errata for certain LEON3FT processors.
24152         (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
24153         (sparc_option_override): Set sparc_fix_b2bst appropriately.
24154         * config/sparc/sparc.md (fix_b2bst): New attribute.
24155         (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
24156
24157 2017-07-10  Uros Bizjak  <ubizjak@gmail.com>
24158
24159         PR target/81375
24160         * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
24161         (rcpps): Ditto.
24162         (*rsqrtsf2_sse): Ditto.
24163         (rsqrtsf2): Ditto.
24164         (div<mode>3): Macroize insn from divdf3 and divsf3
24165         using MODEF mode iterator.
24166
24167 2017-07-10  Martin Sebor  <msebor@redhat.com>
24168
24169         PR tree-optimization/80397
24170         * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
24171         instead of testing for equality to INTEGER_TYPE.
24172
24173 2017-07-10  Vineet Gupta <vgupta@synopsys.com>
24174
24175         * config.gcc: Remove uclibc from arc target spec.
24176
24177 2017-07-10  Claudiu Zissulescu  <claziss@synopsys.com>
24178
24179         * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
24180
24181 2017-07-07  Jan Hubicka  <hubicka@ucw.cz>
24182
24183         PR lto/80838
24184         * lto-wrapper.c (remove_option): New function.
24185         (merge_and_complain): Merge PIC/PIE options more realistically.
24186
24187 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
24188
24189         Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
24190
24191         PR target/20296
24192         PR target/81268
24193         * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
24194         (HAVE_AS_AVR_MGCCISR_OPTION):  If so, AC_DEFINE it.
24195         * config.in: Regenerate.
24196         * configure: Regenerate.
24197         * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
24198         * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
24199         * config/avr/avr.opt (-mgas-isr-prologues): New option and...
24200         (TARGET_GASISR_PROLOGUES): ...target mask.
24201         * common/config/avr/avr-common.c
24202         (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
24203         Set -mgas-isr-prologues.
24204         * config/avr/avr-passes.def (avr_pass_pre_proep): Add
24205         INSERT_PASS_BEFORE for it.
24206         * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
24207         * config/avr/avr.c (avr_option_override)
24208         [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
24209         (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
24210         (avr_attribute_table) <no_gccisr>: Add new function attribute.
24211         (avr_set_current_function) <is_no_gccisr>: Init machine field.
24212         (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
24213         and rtl_opt_pass.
24214         (make_avr_pass_pre_proep): New function.
24215         (emit_push_sfr) <treg>: Add argument to function and use it
24216         instead of TMP_REG.
24217         (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
24218         and set machine->gasisr.yes.
24219         (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
24220         (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
24221         __gcc_isr.n_pushed to .L__stack_usage.
24222         (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
24223         (avr_asm_final_postscan_insn): ...this new static function.
24224         * config/avr/avr.h (machine_function)
24225         <is_no_gccisr, use_L__stack_usage>: New fields.
24226         <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
24227         * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
24228         (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
24229         (gasisr, *gasisr): New expander and insn.
24230         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
24231         [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
24232         * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
24233
24234 2017-07-10  Richard Earnshaw  <rearnsha@arm.com>
24235
24236         * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
24237         in quoted strings.
24238
24239 2017-07-10  Georg-Johann Lay  <avr@gjlay.de>
24240
24241         Move jump-tables out of .text again.
24242
24243         PR target/81075
24244         * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
24245         (ASM_OUTPUT_ADDR_VEC): New function.
24246         (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
24247         (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
24248         INSN_ADDRESSes as asm comment.
24249         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
24250         (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
24251         (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
24252         * config/avr/avr.md (*tablejump): Adjust comment.
24253         * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
24254         * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
24255         New detail.
24256         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
24257         (avr_output_addr_vec): New proto.
24258         (avr_log_t) <insn_addresses>: New field.
24259
24260 2017-07-09  H.J. Lu  <hongjiu.lu@intel.com>
24261
24262         PR target/81313
24263         * config/i386/i386.c (ix86_function_arg_advance): Set
24264         outgoing_args_on_stack to true if there are outgoing arguments
24265         on stack.
24266         (ix86_function_arg): Likewise.
24267         (ix86_get_drap_rtx): Use DRAP only if there are outgoing
24268         arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
24269         * config/i386/i386.h (machine_function): Add
24270         outgoing_args_on_stack.
24271
24272 2017-07-09  Krister Walfridsson  <krister.walfridsson@gmail.com>
24273
24274         * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
24275         supporting pthreds.
24276         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
24277
24278 2017-07-08  Richard Sandiford  <richard.sandiford@linaro.org>
24279
24280         * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
24281         (REAL_H): Remove $(MACHMODE_H).
24282         (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
24283         double-int.h.
24284         (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
24285         $(MACHMODE_H) and double-int.h.
24286         (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
24287         $(MACHMODE_H).
24288         (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
24289         double-int.h.
24290
24291 2017-07-07  Andrew Pinski  <apinski@cavium.com>
24292
24293         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
24294         prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
24295
24296 2017-07-07  Michael Meissner  <meissner@linux.vnet.ibm.com>
24297
24298         * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
24299         Add warning if GCC was not configured to link against a GLIBC that
24300         exports the hardware capability bits.
24301         (make_resolver_func): Make resolver function private and not a
24302         COMDAT function.  Create the name with clone_function_name instead
24303         of make_unique_name.
24304
24305         PR target/81348
24306         * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
24307         correct operand in doing the split.
24308
24309 2017-07-07 Carl Love  <cel@us.ibm.com>
24310
24311         * config/rs6000/rs6000-c: Add support for built-in function
24312         vector unsigned short vec_pack_to_short_fp32 (vector float,
24313                                                       vector float).
24314         * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
24315         BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
24316         * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
24317         * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
24318         (convert_4f32_8i16): Add define_expand.
24319         * doc/extend.texi: Update the built-in documentation file for the
24320         new built-in function.
24321
24322 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24323
24324         * config/sparc/m8.md: New file.
24325         * config/sparc/sparc.md: Include m8.md.
24326
24327 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24328
24329         * config/sparc/sparc.opt: New option -mvis4b.
24330         * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
24331         (sparc_option_override): Handle VIS4B.
24332         (enum sparc_builtins): Define
24333         SPARC_BUILTIN_DICTUNPACK{8,16,32},
24334         SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
24335         SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
24336         SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
24337         SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
24338         (check_constant_argument): New function.
24339         (sparc_vis_init_builtins): Define builtins
24340         __builtin_vis_dictunpack{8,16,32},
24341         __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
24342         __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
24343         __builtin_vis_fpcmpde{8,16,32}shl and
24344         __builtin_vis_fpcmpur{8,16,32}shl.
24345         (sparc_expand_builtin): Check that the constant operands to
24346         __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
24347         constant and in range.
24348         * config/sparc/sparc-c.c (sparc_target_macros): Handle
24349         TARGET_VIS4B.
24350         * config/sparc/sparc.h (SPARC_IMM2_P): Define.
24351         (SPARC_IMM5_P): Likewise.
24352         * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
24353         (enabled): Handle vis4b.
24354         (UNSPEC_DICTUNPACK): New unspec.
24355         (UNSPEC_FPCMPSHL): Likewise.
24356         (UNSPEC_FPUCMPSHL): Likewise.
24357         (UNSPEC_FPCMPDESHL): Likewise.
24358         (UNSPEC_FPCMPURSHL): Likewise.
24359         (cpu_feature): New CPU feature `vis4b'.
24360         (dictunpack{8,16,32}): New insns.
24361         (FPCSMODE): New mode iterator.
24362         (fpcscond): New code iterator.
24363         (fpcsucond): Likewise.
24364         (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
24365         (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
24366         (fpcmpde{8,16,32}{si,di}shl): Likewise.
24367         (fpcmpur{8,16,32}{si,di}shl): Likewise.
24368         * config/sparc/constraints.md: Define constraints `q' for unsigned
24369         2-bit integer constants and `t' for unsigned 5-bit integer
24370         constants.
24371         * config/sparc/predicates.md (imm5_operand_dictunpack8): New
24372         predicate.
24373         (imm5_operand_dictunpack16): Likewise.
24374         (imm5_operand_dictunpack32): Likewise.
24375         (imm2_operand): Likewise.
24376         * doc/invoke.texi (SPARC Options): Document -mvis4b.
24377         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
24378         ditunpack* and fpcmp*shl builtins.
24379
24380 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24381
24382         * config.gcc: Handle m8 in --with-{cpu,tune} options.
24383         * config.in: Add HAVE_AS_SPARC6 define.
24384         * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
24385         M8.
24386         * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
24387         TARGET_CPU_m8.
24388         (ASM_CPU32_DEFAUILT_SPEC): Likewise.
24389         (CPP_CPU_SPEC): Handle m8.
24390         (ASM_CPU_SPEC): Likewise.
24391         * config/sparc/sparc-opts.h (enum processor_type): Add
24392         PROCESSOR_M8.
24393         * config/sparc/sparc.c (m8_costs): New struct.
24394         (sparc_option_override): Handle TARGET_CPU_m8.
24395         (sparc32_initialize_trampoline): Likewise.
24396         (sparc64_initialize_trampoline): Likewise.
24397         (sparc_issue_rate): Likewise.
24398         (sparc_register_move_cost): Likewise.
24399         * config/sparc/sparc.h (TARGET_CPU_m8): Define.
24400         (CPP_CPU64_DEFAULT_SPEC): Define for M8.
24401         (ASM_CPU64_DEFAULT_SPEC): Likewise.
24402         (CPP_CPU_SPEC): Handle M8.
24403         (ASM_CPU_SPEC): Likewise.
24404         (AS_M8_FLAG): Define.
24405         * config/sparc/sparc.md: Add m8 to the cpu attribute.
24406         * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
24407         * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
24408         M8 instructions.
24409         * configure: Regenerate.
24410         * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
24411         -mtune=m8.
24412
24413 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24414
24415         * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
24416         subtypes.
24417         * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
24418         ("*movdi_insn_sp32"): Do not set v3pipe.
24419         ("*movsi_insn"): Likewise.
24420         ("*movdi_insn_sp64"): Likewise.
24421         ("*movsf_insn"): Likewise.
24422         ("*movdf_insn_sp32"): Likewise.
24423         ("*movdf_insn_sp64"): Likewise.
24424         ("*zero_extendsidi2_insn_sp64"): Likewise.
24425         ("*sign_extendsidi2_insn"): Likewise.
24426         ("*mov<VM32:mode>_insn"): Likewise.
24427         ("*mov<VM64:mode>_insn_sp64"): Likewise.
24428         ("*mov<VM64:mode>_insn_sp32"): Likewise.
24429         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
24430         ("<vlop:code><VL:mode>3"): Likewise.
24431         ("*not_<vlop:code><VL:mode>3"): Likewise.
24432         ("*nand<VL:mode>_vis"): Likewise.
24433         ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
24434         ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
24435         ("one_cmpl<VL:mode>2"): Likewise.
24436         ("faligndata<VM64:mode>_vis"): Likewise.
24437         ("alignaddrsi_vis"): Likewise.
24438         ("alignaddrdi_vis"): Likweise.
24439         ("alignaddrlsi_vis"): Likewise.
24440         ("alignaddrldi_vis"): Likewise.
24441         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
24442         ("bmaskdi_vis"): Likewise.
24443         ("bmasksi_vis"): Likewise.
24444         ("bshuffle<VM64:mode>_vis"): Likewise.
24445         ("cmask8<P:mode>_vis"): Likewise.
24446         ("cmask16<P:mode>_vis"): Likewise.
24447         ("cmask32<P:mode>_vis"): Likewise.
24448         ("pdistn<P:mode>_vis"): Likewise.
24449         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
24450
24451 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24452
24453         * config/sparc/sparc.md ("subtype"): New insn attribute.
24454         ("*wrgsr_sp64"): Set insn subtype.
24455         ("*rdgsr_sp64"): Likewise.
24456         ("alignaddrsi_vis"): Likewise.
24457         ("alignaddrdi_vis"): Likewise.
24458         ("alignaddrlsi_vis"): Likewise.
24459         ("alignaddrldi_vis"): Likewise.
24460         ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
24461         ("fexpand_vis"): Likewise.
24462         ("fpmerge_vis"): Likewise.
24463         ("faligndata<VM64:mode>_vis"): Likewise.
24464         ("bshuffle<VM64:mode>_vis"): Likewise.
24465         ("cmask8<P:mode>_vis"): Likewise.
24466         ("cmask16<P:mode>_vis"): Likewise.
24467         ("cmask32<P:mode>_vis"): Likewise.
24468         ("fchksm16_vis"): Likewise.
24469         ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
24470         ("fmean16_vis"): Likewise.
24471         ("fp<plusminus_insn>64_vis"): Likewise.
24472         ("<plusminus_insn>v8qi3"): Likewise.
24473         ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
24474         ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
24475         ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
24476         ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
24477         ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
24478         ("*movqi_insn"): Likewise.
24479         ("*movhi_insn"): Likewise.
24480         ("*movsi_insn"): Likewise.
24481         ("movsi_pic_gotdata_op"): Likewise.
24482         ("*movdi_insn_sp32"): Likewise.
24483         ("*movdi_insn_sp64"): Likewise.
24484         ("movdi_pic_gotdata_op"): Likewise.
24485         ("*movsf_insn"): Likewise.
24486         ("*movdf_insn_sp32"): Likewise.
24487         ("*movdf_insn_sp64"): Likewise.
24488         ("*zero_extendhisi2_insn"): Likewise.
24489         ("*zero_extendqihi2_insn"): Likewise.
24490         ("*zero_extendqisi2_insn"): Likewise.
24491         ("*zero_extendqidi2_insn"): Likewise.
24492         ("*zero_extendhidi2_insn"): Likewise.
24493         ("*zero_extendsidi2_insn_sp64"): Likewise.
24494         ("ldfsr"): Likewise.
24495         ("prefetch_64"): Likewise.
24496         ("prefetch_32"): Likewise.
24497         ("tie_ld32"): Likewise.
24498         ("tie_ld64"): Likewise.
24499         ("*tldo_ldub_sp32"): Likewise.
24500         ("*tldo_ldub1_sp32"): Likewise.
24501         ("*tldo_ldub2_sp32"): Likewise.
24502         ("*tldo_ldub_sp64"): Likewise.
24503         ("*tldo_ldub1_sp64"): Likewise.
24504         ("*tldo_ldub2_sp64"): Likewise.
24505         ("*tldo_ldub3_sp64"): Likewise.
24506         ("*tldo_lduh_sp32"): Likewise.
24507         ("*tldo_lduh1_sp32"): Likewise.
24508         ("*tldo_lduh_sp64"): Likewise.
24509         ("*tldo_lduh1_sp64"): Likewise.
24510         ("*tldo_lduh2_sp64"): Likewise.
24511         ("*tldo_lduw_sp32"): Likewise.
24512         ("*tldo_lduw_sp64"): Likewise.
24513         ("*tldo_lduw1_sp64"): Likewise.
24514         ("*tldo_ldx_sp64"): Likewise.
24515         ("*mov<VM32:mode>_insn"): Likewise.
24516         ("*mov<VM64:mode>_insn_sp64"): Likewise.
24517         ("*mov<VM64:mode>_insn_sp32"): Likewise.
24518
24519 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24520
24521         * config/sparc/sparc.md ("type"): New insn type viscmp.
24522         ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
24523         viscmp.
24524         ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
24525         ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
24526         ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
24527         * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
24528         viscmp.
24529         ("n7_vis_logical_11cycle"): Likewise.
24530         * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
24531         * config/sparc/niagara2.md ("niag3_vis": Likewise.
24532         * config/sparc/niagara.md ("niag_vis"): Likewise.
24533         * config/sparc/ultra3.md ("us3_fga"): Likewise.
24534         * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
24535
24536 2017-07-07  Jose E. Marchesi  <jose.marchesi@oracle.com>
24537
24538         * config/sparc/sparc.md: New instruction type `bmask'.
24539         (bmaskdi_vis): Use the `bmask' type.
24540         (bmasksi_vis): Likewise.
24541         * config/sparc/ultra3.md (us3_array): Likewise.
24542         * config/sparc/niagara7.md (n7_array): Likewise.
24543         * config/sparc/niagara4.md (n4_array): Likewise.
24544         * config/sparc/niagara2.md (niag2_vis): Likewise.
24545         (niag3_vis): Likewise.
24546         * config/sparc/niagara.md (niag_vis): Likewise.
24547
24548 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24549
24550         * ipa-comdats.c: Remove optimize check from gate.
24551         * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
24552         for functions not optimized.
24553         (ipa_fn_summary_read): Skip optimize check.
24554         (ipa_fn_summary_write): Likewise.
24555         * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
24556         is optimized.
24557         * ipa-inline.c (can_inline_edge_p): Not optimized functions are
24558         uninlinable.
24559         (can_inline_edge_p): Check flag_pcc_struct_return for match.
24560         (check_callers): Give up on caller which is not optimized.
24561         (inline_small_functions): Likewise.
24562         (ipa_inline): Do not give up when not optimizing.
24563         * ipa-visbility.c (function_and_variable_visibility): Do not optimize
24564         away unoptimizes cdtors.
24565         (whole_program_function_and_variable_visibility): Do
24566         ipa_discover_readonly_nonaddressable_vars in LTO mode.
24567         * ipa.c (process_references): Do not check optimize.
24568         (symbol_table::remove_unreachable_nodes): Update optimize check.
24569         (set_writeonly_bit): Update optimize check.
24570         (pass_ipa_cdtor_merge::gate): Do not check optimize.
24571         (pass_ipa_single_use::gate): Remove.
24572
24573 2017-07-06  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
24574
24575         * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
24576         insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
24577         rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
24578         mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
24579         permute_load, permute_store, adjust_extract, adjust_splat,
24580         adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
24581         replace_swap_with_copy, dump_swap_insn_table,
24582         alignment_with_canonical_addr, alignment_mask, find_alignment_op,
24583         recombine_lvx_pattern, recombine_stvx_pattern,
24584         recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
24585         make_pass_analyze_swaps): Move all code related to p8 swap optimizations
24586         to file rs6000-p8swap.c.
24587         * config/rs6000/rs6000-p8swap.c: New file.
24588         * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
24589         * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
24590         and rs6000*-*-* targets.
24591
24592 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24593
24594         * Makefile.in (selftest): Remove dependency on s-selftest-c++.
24595
24596 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24597
24598         * lto-wrapper.c (merge_and_complain): Do not merge
24599         fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
24600         fsigned_zeros, ftrapping_math, fwrapv.
24601         (append_compiler_options): Do not track these options.
24602         (append_linker_options): Likewie
24603
24604 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24605
24606         * cgraphunit.c (cgraph_node::finalize_function): When
24607         !flag_toplevel_reorde set no_reorder flag.
24608         (varpool_node::finalize_decl): Likewise.
24609         (symbol_table::compile): Drop no toplevel reorder path.
24610
24611 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24612
24613         * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
24614         edges; zero probability is not better than uninitialized.
24615
24616 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
24617
24618         * asan.h (asan_sanitize_allocas_p): Declare.
24619         * asan.c (asan_sanitize_allocas_p): New function.
24620         (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
24621         (handle_builtin_alloca): Likewise.
24622         * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
24623         if !asan_sanitize_allocas_p.
24624         * params.def (asan-instrument-allocas): Add new option.
24625         * params.h (ASAN_PROTECT_ALLOCAS): Define.
24626         * opts.c (common_handle_option): Disable allocas sanitization for
24627         KASan by default.
24628
24629 2017-07-06  Maxim Ostapenko  <m.ostapenko@samsung.com>
24630
24631         * asan.c: Include gimple-fold.h.
24632         (get_last_alloca_addr): New function.
24633         (handle_builtin_stackrestore): Likewise.
24634         (handle_builtin_alloca): Likewise.
24635         (asan_emit_allocas_unpoison): Likewise.
24636         (get_mem_refs_of_builtin_call): Add new parameter, remove const
24637         quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
24638         BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
24639         (instrument_builtin_call): Pass gimple iterator to
24640         get_mem_refs_of_builtin_call.
24641         (last_alloca_addr): New global.
24642         * asan.h (asan_emit_allocas_unpoison): Declare.
24643         * builtins.c (expand_asan_emit_allocas_unpoison): New function.
24644         (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
24645         * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
24646         if function calls alloca.
24647         * gimple-fold.c (replace_call_with_value): Remove static keyword.
24648         * gimple-fold.h (replace_call_with_value): Declare.
24649         * internal-fn.c: Include asan.h.
24650         * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
24651         BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
24652
24653 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24654
24655         * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
24656         (C_SELFTEST_FLAGS): New.
24657         (CPP_SELFTEST_FLAGS): New.
24658         (SELFTEST_DEPS): New, from deps of s-selftest.
24659         (C_SELFTEST_DEPS): New, from deps of s-selftest.
24660         (CPP_SELFTEST_DEPS): New.
24661         (selftest): Add dependency on s-selftest-c++.
24662         (s-selftest): Rename to...
24663         (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
24664         and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
24665         than SELFTEST_FLAGS.
24666         (selftest-gdb): Rename to...
24667         (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
24668         C_SELFTEST_FLAGS.
24669         (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
24670         (selftest-valgrind): Rename to...
24671         (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
24672         C_SELFTEST_FLAGS.
24673         (selftest-valgrind): Reintroduce as an alias for
24674         selftest-c-valgrind.
24675         (s-selftest-c++): New.
24676         (selftest-c++-gdb): New.
24677         (selftest-c++-valgrind): New.
24678
24679 2017-07-06  Olivier Hainque  <hainque@adacore.com>
24680
24681         * gcc.c (process_command): When deciding if undefined variables
24682         should be ignored when processing specs, accept "gcc -v" as well.
24683
24684 2017-07-06  Jan Hubicka  <hubicka@ucw.cz>
24685
24686         * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
24687         afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
24688
24689 2017-07-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24690
24691         * config/arm/arm-cpus.in (armv8-r): Add new entry.
24692         * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
24693         * config/arm/arm-tables.opt: Regenerate.
24694         * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
24695         enumerator.
24696         * doc/invoke.texi: Mention -march=armv8-r and its extensions.
24697
24698 2017-07-06  Carl Love  <cel@us.ibm.com>
24699
24700         * ChangeLog: Clean up from mid air collision
24701
24702 2017-07-06  Carl Love  <cel@us.ibm.com>
24703
24704         * config/rs6000/rs6000-c.c: Add support for built-in functions
24705         vector signed int vec_subc (vector signed int, vector signed int);
24706         vector signed __int128 vec_subc (vector signed __int128,
24707                                          vector signed __int128);
24708         vector unsigned __int128 vec_subc (vector unsigned __int128,
24709                                            vector unsigned __int128);
24710         vector signed int vec_sube (vector signed int, vector signed int,
24711                                     vector signed int);
24712         vector unsigned int vec_sube (vector unsigned int,
24713                                       vector unsigned int,
24714                                       vector unsigned int);
24715         vector signed __int128 vec_sube (vector signed __int128,
24716                                          vector signed __int128,
24717                                          vector signed__int128);
24718         vector unsigned __int128 vec_sube (vector unsigned __int128,
24719                                            vector unsigned __int128,
24720                                            vector unsigned __int128);
24721         vector signed int vec_subec (vector signed int, vector signed int,
24722                                      vector signed int);
24723         vector unsigned int vec_subec (vector unsigned int,
24724                                        vector unsigned int,
24725                                        vector unsigned int);
24726         vector signed __int128 vec_subec (vector signed __int128,
24727                                           vector signed __int128,
24728                                           vector signed__int128);
24729         vector unsigned __int128 vec_subec (vector unsigned __int128,
24730                                             vector unsigned __int128,
24731                                             vector unsigned __int128);
24732         * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
24733         ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
24734         * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
24735         BU_ALTIVEC_OVERLOAD_X definitions.
24736         * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
24737         * doc/extend.texi: Update the built-in documentation file for the new
24738         built-in functions.
24739
24740 2017-07-06  David Malcolm  <dmalcolm@redhat.com>
24741
24742         PR c++/79300
24743         * diagnostic-show-locus.c (layout::layout): Use start and finish
24744         spelling location for the start and finish of each range.
24745         * genmatch.c (linemap_client_expand_location_to_spelling_point):
24746         Add unused aspect param.
24747         * input.c (expand_location_1): Add "aspect" param, and use it
24748         to access the correct part of the location.
24749         (expand_location): Pass LOCATION_ASPECT_CARET to new param of
24750         expand_location_1.
24751         (expand_location_to_spelling_point): Likewise.
24752         (linemap_client_expand_location_to_spelling_point): Add "aspect"
24753         param, and pass it to expand_location_1.
24754
24755 2017-07-06  Sebastian Peryt  <sebastian.peryt@intel.com>
24756
24757         * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
24758         _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
24759         _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
24760         _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
24761         _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
24762         _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
24763         _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
24764         _mm_maskz_getmant_ss): New intrinsics.
24765         (__builtin_ia32_getexpss128_mask): Changed to ...
24766         __builtin_ia32_getexpss128_round ... this.
24767         (__builtin_ia32_getexpsd128_mask): Changed to ...
24768         __builtin_ia32_getexpsd128_round ... this.
24769         * config/i386/i386-builtin-types.def
24770         ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
24771         (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
24772         * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
24773         __builtin_ia32_getexpss_mask_round,     __builtin_ia32_getmantsd_mask_round,
24774         __builtin_ia32_getmantss_mask_round): New builtins.
24775         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
24776         V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
24777         (CODE_FOR_avx512f_vgetmantv2df_mask_round,
24778         CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
24779         * config/i386/sse.md
24780         (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
24781         avx512f_sgetexp<mode><mask_scalar_name>
24782         <round_saeonly_scalar_name> ... this.
24783         (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
24784         %0, %1, %2<round_saeonly_op3>}): Changed to ...
24785         vgetexp<ssescalarmodesuffix>
24786         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24787         %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
24788         (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
24789         avx512f_vgetmant<mode><mask_scalar_name>
24790         <round_saeonly_scalar_name> ... this.
24791         (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
24792         %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
24793         vgetmant<ssescalarmodesuffix>
24794         \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
24795         %0<mask_scalar_operand4>, %1, %2
24796         <round_saeonly_scalar_mask_op4>, %3} ... this.
24797         * config/i386/subst.md (mask_scalar_operand4,
24798         round_saeonly_scalar_mask_operand4,     round_saeonly_scalar_mask_op4,
24799         round_saeonly_scalar_nimm_predicate): New subst attributes.
24800
24801 2017-07-06  Julia Koval  <julia.koval@intel.com>
24802
24803         * config/i386/i386.c (ix86_erase_embedded_rounding):
24804         Remove code for old rounding pattern.
24805
24806 2017-07-06  Richard Earnshaw  <rearnsha@arm.com>
24807
24808         * config/arm/t-arm (GTM_H): Add arm-cpu.h.
24809
24810 2017-07-06  Christophe Lyon  <christophe.lyon@linaro.org>
24811
24812         * doc/sourcebuild.texi (Test Directives, Variants of
24813         dg-require-support): Add documentation for dg-require-stack-check.
24814
24815 2017-07-05  Sebastian Peryt  <sebastian.peryt@intel.com>
24816
24817         * config/i386/subst.md (mask_scalar, round_scalar,
24818         round_saeonly_scalar): New meta-templates.
24819         (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
24820         round_scalar_mask_operand3, round_scalar_mask_op3,
24821         round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
24822         round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
24823         round_saeonly_scalar_constraint,
24824         round_saeonly_scalar_prefix): New subst attribute.
24825         * config/i386/sse.md
24826         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
24827         <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
24828         <round_scalar_name> ... this.
24829         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
24830         <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
24831         <round_scalar_name> ... this.
24832         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
24833         <sse>_vm<code><mode>3<mask_scalar_name>
24834         <round_saeonly_scalar_name> ... this.
24835         (v<plusminus_mnemonic><ssescalarmodesuffix>
24836         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24837         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24838         v<plusminus_mnemonic><ssescalarmodesuffix>
24839         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24840         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24841         (v<multdiv_mnemonic><ssescalarmodesuffix>
24842         \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
24843         %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
24844         v<multdiv_mnemonic><ssescalarmodesuffix>
24845         \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24846         %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
24847         (v<maxmin_float><ssescalarmodesuffix>
24848         \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
24849         %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
24850         v<maxmin_float><ssescalarmodesuffix>
24851         \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
24852         %0<mask_scalar_operand3>, %1, %<iptr>2
24853         <round_saeonly_scalar_mask_op3>} ... this.
24854
24855 2017-07-05  Richard Earnshaw  <rearnsha@arm.com>
24856
24857         * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
24858         (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
24859
24860 2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
24861             Alan Hayward  <alan.hayward@arm.com>
24862             David Sherwood  <david.sherwood@arm.com>
24863
24864         * combine.c (simplify_if_then_else): Remove "enum" before
24865         "machine_mode".
24866         * compare-elim.c (can_eliminate_compare): Likewise.
24867         * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
24868         Likewise.
24869         (aarch64_lookup_simd_builtin_type): Likewise.
24870         (aarch64_simd_builtin_type): Likewise.
24871         (aarch64_init_simd_builtin_types): Likewise.
24872         (aarch64_simd_expand_args): Likewise.
24873         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
24874         Likewise.
24875         (aarch64_reverse_mask): Likewise.
24876         (aarch64_simd_emit_reg_reg_move): Likewise.
24877         (aarch64_gen_adjusted_ldpstp): Likewise.
24878         (aarch64_ccmp_mode_to_code): Likewise.
24879         (aarch64_operands_ok_for_ldpstp): Likewise.
24880         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24881         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
24882         Likewise.
24883         (aarch64_min_divisions_for_recip_mul): Likewise.
24884         (aarch64_reassociation_width): Likewise.
24885         (aarch64_get_condition_code_1): Likewise.
24886         (aarch64_simd_emit_reg_reg_move): Likewise.
24887         (aarch64_simd_attr_length_rglist): Likewise.
24888         (aarch64_reverse_mask): Likewise.
24889         (aarch64_operands_ok_for_ldpstp): Likewise.
24890         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
24891         (aarch64_gen_adjusted_ldpstp): Likewise.
24892         * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
24893         Likewise.
24894         * config/arc/arc.c (legitimate_offset_address_p): Likewise.
24895         * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
24896         (arm_lookup_simd_builtin_type): Likewise.
24897         (arm_simd_builtin_type): Likewise.
24898         (arm_init_simd_builtin_types): Likewise.
24899         (arm_expand_builtin_args): Likewise.
24900         * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
24901         * config/ft32/ft32.c (ft32_libcall_value): Likewise.
24902         (ft32_setup_incoming_varargs): Likewise.
24903         (ft32_function_arg): Likewise.
24904         (ft32_function_arg_advance): Likewise.
24905         (ft32_pass_by_reference): Likewise.
24906         (ft32_arg_partial_bytes): Likewise.
24907         (ft32_valid_pointer_mode): Likewise.
24908         (ft32_addr_space_pointer_mode): Likewise.
24909         (ft32_addr_space_legitimate_address_p): Likewise.
24910         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
24911         Likewise.
24912         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
24913         (ix86_emit_outlined_ms2sysv_restore): Likewise.
24914         (iamcu_alignment): Likewise.
24915         (canonicalize_vector_int_perm): Likewise.
24916         (ix86_noce_conversion_profitable_p): Likewise.
24917         (ix86_mpx_bound_mode): Likewise.
24918         (ix86_operands_ok_for_move_multiple): Likewise.
24919         * config/microblaze/microblaze-protos.h
24920         (microblaze_expand_conditional_branch_reg): Likewise.
24921         * config/microblaze/microblaze.c
24922         (microblaze_expand_conditional_branch_reg): Likewise.
24923         * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
24924         Likewise.
24925         (rs6000_reassociation_width): Likewise.
24926         (rs6000_invalid_binary_op): Likewise.
24927         (fusion_p9_p): Likewise.
24928         (emit_fusion_p9_load): Likewise.
24929         (emit_fusion_p9_store): Likewise.
24930         * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
24931         Likewise.
24932         (riscv_hard_regno_mode_ok_p): Likewise.
24933         (riscv_address_insns): Likewise.
24934         (riscv_split_symbol): Likewise.
24935         (riscv_legitimize_move): Likewise.
24936         (riscv_function_value): Likewise.
24937         (riscv_hard_regno_nregs): Likewise.
24938         (riscv_expand_builtin): Likewise.
24939         * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
24940         (riscv_build_integer): Likewise.
24941         (riscv_split_integer): Likewise.
24942         (riscv_legitimate_constant_p): Likewise.
24943         (riscv_cannot_force_const_mem): Likewise.
24944         (riscv_regno_mode_ok_for_base_p): Likewise.
24945         (riscv_valid_base_register_p): Likewise.
24946         (riscv_valid_offset_p): Likewise.
24947         (riscv_valid_lo_sum_p): Likewise.
24948         (riscv_classify_address): Likewise.
24949         (riscv_legitimate_address_p): Likewise.
24950         (riscv_address_insns): Likewise.
24951         (riscv_load_store_insns): Likewise.
24952         (riscv_force_binary): Likewise.
24953         (riscv_split_symbol): Likewise.
24954         (riscv_force_address): Likewise.
24955         (riscv_legitimize_address): Likewise.
24956         (riscv_move_integer): Likewise.
24957         (riscv_legitimize_const_move): Likewise.
24958         (riscv_legitimize_move): Likewise.
24959         (riscv_address_cost): Likewise.
24960         (riscv_subword): Likewise.
24961         (riscv_output_move): Likewise.
24962         (riscv_canonicalize_int_order_test): Likewise.
24963         (riscv_emit_int_order_test): Likewise.
24964         (riscv_function_arg_boundary): Likewise.
24965         (riscv_pass_mode_in_fpr_p): Likewise.
24966         (riscv_pass_fpr_single): Likewise.
24967         (riscv_pass_fpr_pair): Likewise.
24968         (riscv_get_arg_info): Likewise.
24969         (riscv_function_arg): Likewise.
24970         (riscv_function_arg_advance): Likewise.
24971         (riscv_arg_partial_bytes): Likewise.
24972         (riscv_function_value): Likewise.
24973         (riscv_pass_by_reference): Likewise.
24974         (riscv_setup_incoming_varargs): Likewise.
24975         (riscv_print_operand): Likewise.
24976         (riscv_elf_select_rtx_section): Likewise.
24977         (riscv_save_restore_reg): Likewise.
24978         (riscv_for_each_saved_reg): Likewise.
24979         (riscv_register_move_cost): Likewise.
24980         (riscv_hard_regno_mode_ok_p): Likewise.
24981         (riscv_hard_regno_nregs): Likewise.
24982         (riscv_class_max_nregs): Likewise.
24983         (riscv_memory_move_cost): Likewise.
24984         * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
24985         * config/rl78/rl78.c (rl78_split_movsi): Likewise.
24986         (rl78_addr_space_address_mode): Likewise.
24987         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
24988         Likewise.
24989         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
24990         (rs6000_reassociation_width): Likewise.
24991         (rs6000_invalid_binary_op): Likewise.
24992         (fusion_p9_p): Likewise.
24993         (emit_fusion_p9_load): Likewise.
24994         (emit_fusion_p9_store): Likewise.
24995         * config/visium/visium-protos.h (prepare_move_operands): Likewise.
24996         (ok_for_simple_move_operands): Likewise.
24997         (ok_for_simple_move_strict_operands): Likewise.
24998         (ok_for_simple_arith_logic_operands): Likewise.
24999         (visium_legitimize_reload_address): Likewise.
25000         (visium_select_cc_mode): Likewise.
25001         (output_cbranch): Likewise.
25002         (visium_split_double_move): Likewise.
25003         (visium_expand_copysign): Likewise.
25004         (visium_expand_int_cstore): Likewise.
25005         (visium_expand_fp_cstore): Likewise.
25006         * config/visium/visium.c (visium_pass_by_reference): Likewise.
25007         (visium_function_arg): Likewise.
25008         (visium_function_arg_advance): Likewise.
25009         (visium_libcall_value): Likewise.
25010         (visium_setup_incoming_varargs): Likewise.
25011         (visium_legitimate_constant_p): Likewise.
25012         (visium_legitimate_address_p): Likewise.
25013         (visium_legitimize_address): Likewise.
25014         (visium_secondary_reload): Likewise.
25015         (visium_register_move_cost): Likewise.
25016         (visium_memory_move_cost): Likewise.
25017         (prepare_move_operands): Likewise.
25018         (ok_for_simple_move_operands): Likewise.
25019         (ok_for_simple_move_strict_operands): Likewise.
25020         (ok_for_simple_arith_logic_operands): Likewise.
25021         (visium_function_value_1): Likewise.
25022         (rtx_ok_for_offset_p): Likewise.
25023         (visium_legitimize_reload_address): Likewise.
25024         (visium_split_double_move): Likewise.
25025         (visium_expand_copysign): Likewise.
25026         (visium_expand_int_cstore): Likewise.
25027         (visium_expand_fp_cstore): Likewise.
25028         (visium_split_cstore): Likewise.
25029         (visium_select_cc_mode): Likewise.
25030         (visium_split_cbranch): Likewise.
25031         (output_cbranch): Likewise.
25032         (visium_print_operand_address): Likewise.
25033         * expmed.c (flip_storage_order): Likewise.
25034         * expmed.h (emit_cstore): Likewise.
25035         (flip_storage_order): Likewise.
25036         * genrecog.c (validate_pattern): Likewise.
25037         * hsa-gen.c (gen_hsa_addr): Likewise.
25038         * internal-fn.c (expand_arith_overflow): Likewise.
25039         * ira-color.c (allocno_copy_cost_saving): Likewise.
25040         * lra-assigns.c (find_hard_regno_for_1): Likewise.
25041         * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
25042         (process_invariant_for_inheritance): Likewise.
25043         * lra-eliminations.c (move_plus_up): Likewise.
25044         * omp-low.c (lower_oacc_reductions): Likewise.
25045         * simplify-rtx.c (simplify_subreg): Likewise.
25046         * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
25047         (TARGET_CHKP_BOUND_MODE): Likewise..
25048         * targhooks.c (default_chkp_bound_mode): Likewise.
25049         (default_setup_incoming_vararg_bounds): Likewise.
25050         * targhooks.h (default_chkp_bound_mode): Likewise.
25051         (default_setup_incoming_vararg_bounds): Likewise.
25052         * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
25053         * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
25054         (have_whole_vector_shift): Likewise.
25055         * tree-vect-stmts.c (vectorizable_load): Likewise.
25056         * doc/tm.texi: Regenerate.
25057
25058 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
25059
25060         Graceful degrade if Binutils PR21472 is not available.
25061
25062         PR target/81072
25063         * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
25064         .rodata in flash test fails.
25065         (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
25066         * confgure: Regenerate.
25067         * config.in: Regenerate.
25068         * config/avr/avr.c (avr_asm_named_section)
25069         [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
25070         __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
25071         (avr_asm_init_sections): Same.
25072
25073 2017-07-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
25074
25075         * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
25076         (fma<VH:mode>4_intrinsic): Likewise.
25077         (*fmsub<VCVTF:mode>4): Likewise.
25078         (*fmsub<VH:mode>4_intrinsic): Likewise.
25079
25080 2017-07-05  Georg-Johann Lay  <avr@gjlay.de>
25081
25082         PR target/81305
25083         * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
25084         Don't depend on "optimize > 0".
25085         (out_movhi_r_mr, out_movqi_mr_r): Same.
25086         (out_movhi_mr_r, out_movqi_r_mr): Same.
25087         (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
25088         io_address_operand on "optimize > 0".
25089
25090 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25091
25092         * tree-loop-distribution.c: Add general explanantion on the pass.
25093         (generate_loops_for_partition): Mark distributed loop.
25094         (pg_add_dependence_edges): New parameter.  Handle alias data
25095         dependence specially and record it in the parameter if asked.
25096         (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
25097         (init_partition_graph_vertices, add_partition_graph_edge): New.
25098         (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
25099         (free_partition_graph_vdata, build_partition_graph): New.
25100         (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
25101         (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
25102         (data_ref_segment_size, latch_dominated_by_data_ref): New.
25103         (compute_alias_check_pairs, version_loop_by_alias_check): New.
25104         (version_for_distribution_p, finalize_partitions): New.
25105         (distribute_loop): Handle alias data dependence specially.  Factor
25106         out loop fusion code as functions and call these functions.
25107
25108 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25109
25110         * tree-loop-distribution.c (classify_partition): New parameter and
25111         better handle reduction statement.
25112         (rdg_build_partitions): Revise comment.
25113         (distribute_loop): Compute statements in all partitions and pass it
25114         to classify_partition.
25115
25116 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25117
25118         * tree-loop-distribution.c (enum partition_type): New.
25119         (struct partition): New field type.
25120         (partition_merge_into): Add parameter.  Update partition type.
25121         (data_dep_in_cycle_p, update_type_for_merge): New functions.
25122         (build_rdg_partition_for_vertex): Compute partition type.
25123         (rdg_build_partitions): Dump partition type.
25124         (distribute_loop): Update calls to partition_merge_into.
25125
25126 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25127
25128         * tree-loop-distribution.c (struct ddr_hasher): New.
25129         (ddr_hasher::hash, ::equal, get_data_dependence): New function.
25130         (ddrs_table): New.
25131         (classify_partition): Call get_data_dependence.
25132         (pg_add_dependence_edges): Ditto.
25133         (distribute_loop): Release data dependence hash table.
25134
25135 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25136
25137         * tree-loop-distribution.c (ref_base_address): Delete.
25138         (similar_memory_accesses): Rename ...
25139         (share_memory_accesses): ... to this.  Check if partitions access
25140         the same memory reference.
25141         (distribute_loop): Call share_memory_accesses.
25142
25143 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25144
25145         * tree-loop-distribution.c (struct partition): New field recording
25146         its data reference.
25147         (partition_alloc, partition_free): Init and release data refs.
25148         (partition_merge_into): Merge data refs.
25149         (build_rdg_partition_for_vertex): Collect data refs for partition.
25150         (pg_add_dependence_edges): Change parameters from vector to bitmap.
25151         Update uses.
25152         (distribute_loop): Remve data refs from vertice data of partition
25153         graph.
25154
25155 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25156
25157         * tree-loop-distribution.c (params.h): Include header file.
25158         (MAX_DATAREFS_NUM, DR_INDEX): New macro.
25159         (datarefs_vec): New global var.
25160         (create_rdg_vertices): Use datarefs_vec directly.
25161         (free_rdg): Don't free data references.
25162         (build_rdg): Update use.  Don't free data references.
25163         (distribute_loop): Compute global variable for data references.
25164         Bail out if there are too many data references.
25165
25166 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25167
25168         * tree-loop-distribution.c (loop_nest): New global var.
25169         (build_rdg): Use loop directly, rather than loop nest.
25170         (pg_add_dependence_edges): Remove loop nest parameter.  Use global
25171         variable directly.
25172         (distribute_loop): Compute global variable loop nest.  Update use.
25173
25174 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25175
25176         * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
25177         (partition_merge_into): New parameter.  Dump reason for fusion.
25178         (distribute_loop): Update use of partition_merge_into.
25179
25180 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25181
25182         * tree-loop-distribution.c (bb_top_order_index): New.
25183         (bb_top_order_index_size, bb_top_order_cmp): New.
25184         (stmts_from_loop): Use topological order.
25185         (pass_loop_distribution::execute): Compute and release topological
25186         order for basic blocks.
25187
25188 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25189
25190         * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
25191         if no loops.
25192
25193 2017-07-05  Bin Cheng  <bin.cheng@arm.com>
25194
25195         * cfgloop.h (struct loop): Add comment.  New field orig_loop_num.
25196         * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
25197         * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
25198         * internal-fn.def (LOOP_DIST_ALIAS): New.
25199         * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
25200         (fold_loop_internal_call): ... this.
25201         (vect_loop_dist_alias_call): New function.
25202         (set_uid_loop_bbs): Call fold_loop_internal_call.
25203         (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
25204         internal calls.
25205
25206 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
25207
25208         PR target/81300
25209         * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
25210         Require dead FLAGS_REG at the beginning of a peephole.
25211
25212 2017-07-04  Uros Bizjak  <ubizjak@gmail.com>
25213
25214         PR target/81294
25215         * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
25216         arguments in the call to __builtin_ia32_sbb_u32.
25217         (_subborrow_u64): Swap _X and _Y arguments in the call to
25218         __builtin_ia32_sbb_u64.
25219
25220 2017-07-04  Jakub Jelinek  <jakub@redhat.com>
25221
25222         PR debug/81278
25223         * tree-vrp.c (compare_assert_loc): Turn into a function template
25224         with stable template parameter.  Only test if a->e is NULL,
25225         !a->e == !b->e has been verified already.  Use e == NULL or
25226         e != NULL instead of e or ! e tests.  If stable is true, don't use
25227         iterative_hash_expr, on the other side allow a or b or both NULL
25228         and sort the NULLs last.
25229         (process_assert_insertions): Sort using compare_assert_loc<false>
25230         instead of compare_assert_loc, later sort using
25231         compare_assert_loc<true> before calling process_assert_insertions_for
25232         in a loop.  Use break instead of continue once seen NULL pointer.
25233
25234 2017-07-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25235
25236         * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
25237         Cortex-R7 and Cortex-R8 processors.
25238
25239 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
25240
25241         * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
25242         uninitialized while src is not.
25243
25244 2017-07-04  Richard Earnshaw  <rearnsha@arm.com>
25245
25246         * common/config/arm/arm-common.c: Adjust include path for
25247         arm-cpu-cdata.h
25248         * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
25249         (arm-cpu.h): Create in build directory.  Adjust dependency rules.
25250         (arm-cpu-data.h): Likewise.
25251         (arm-cpu-cdata.h): Likewise.
25252         * config/arm/arm-cpu.h: Delete.
25253         * config/arm/arm-cpu-cdata.h: Delete.
25254         * config/arm/arm-cpu-data.h: Delete.
25255
25256 2017-07-04  James Greenhalgh  <james.greenhalgh@arm.com>
25257
25258         * config/arm/arm-cpus.in (cortex-a55): New.
25259         (cortex-a75): Likewise.
25260         (cortex-a75.cortex-a55): Likewise.
25261         * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
25262         cortex-a75.
25263         * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
25264         * config/arm/arm-cpu-cdata.h: Regenerate.
25265         * config/arm/arm-cpu-data.h: Regenerate.
25266         * config/arm/arm-cpu.h: Regenerate.
25267         * config/arm/arm-tables.opt: Regenerate.
25268         * config/arm/arm-tune.md: Regenerate.
25269
25270 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
25271
25272         * haifa-sched.c (sched_create_recovery_edges): Update profile.
25273
25274 2017-07-04  Jan Hubicka  <hubicka@ucw.cz>
25275
25276         * bb-reorder.c (better_edge_p): Fix handling of uninitialized
25277         probability.
25278
25279 2017-07-04  Richard Sandiford  <richard.sandiford@linaro.org>
25280
25281         PR tree-optimization/81292
25282         * tree-ssa-strlen.c (handle_builtin_strlen): When setting
25283         full_string_p, also call adjust_related_strinfos if the adjustment
25284         is simple, otherwise invalidate related strinfos.
25285
25286 2017-07-04  Martin Liska  <mliska@suse.cz>
25287
25288         PR sanitizer/81040
25289         * sanopt.c (sanitize_rewrite_addressable_params): Mark the
25290         newly created variable as DECL_IGNORED_P.
25291
25292 2017-07-04  Martin Liska  <mliska@suse.cz>
25293
25294         PR ipa/81293
25295         * ipa-inline.c (inline_small_functions):
25296         Use xstrdup_for_dump.
25297
25298 2017-07-04  Tom de Vries  <tom@codesourcery.com>
25299
25300         * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
25301
25302 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
25303
25304         PR target/81033
25305         * config/darwin.c (darwin_function_switched_text_sections):
25306         Fix spaces.
25307
25308 2017-07-03  Jan Hubicka  <hubicka@ucw.cz>
25309
25310         * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
25311
25312 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
25313
25314         * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
25315
25316 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25317
25318         * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
25319         min_profitable_iters, and th as inclusive lower bounds.
25320         Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
25321         (vect_estimate_min_profitable_iters): Return inclusive lower bounds
25322         for min_profitable_iters and min_profitable_estimate.
25323         (vect_transform_loop): Treat th as an inclusive lower bound.
25324         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
25325
25326 2017-07-03  Dominique d'Humieres  <dominiq@lps.ens.fr>
25327
25328         PR target/81033
25329         * config/darwin.c (darwin_function_switched_text_sections):
25330         Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
25331         in two pieces, and suppress the use of buf.
25332
25333 2017-07-03  Nathan Sidwell  <nathan@acm.org>
25334
25335         * hash-table.h (hash_table_mod1): Fix indentation.
25336
25337 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25338
25339         PR middle-end/81290
25340         * predict.c (force_edge_cold): Be more careful about propagation
25341         backward.
25342         * profile-count.h (profile_probability::guessed,
25343         profile_probability::fdo, profile_count::guessed, profile_count::fdo):
25344         New.
25345         * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
25346
25347 2017-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
25348
25349         * doc/invoke.texi (rcpc architecture extension): Document it.
25350
25351 2017-07-03  Richard Biener  <rguenther@suse.de>
25352
25353         PR tree-optimization/60510
25354         * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
25355         the scalar reduction PHI and use it.
25356         (vectorizable_reduction): Properly guard the single_defuse_cycle
25357         path for non-SLP reduction chains where we cannot use it.
25358         Rework reduc_def/index and vector type deduction.  Rework
25359         vector operand gathering during reduction op code-gen.
25360         * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
25361         chains dissolve the chain and leave it to non-SLP reduction
25362         handling.
25363
25364 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25365
25366         * tree-data-ref.h (dr_alignment): Declare.
25367         * tree-data-ref.c (dr_alignment): New function.
25368         * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
25369         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
25370         set it.
25371         * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
25372
25373 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25374
25375         * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
25376         and base_misalignment fields.
25377         (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
25378         * tree-data-ref.c: Include builtins.h.
25379         (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
25380         * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
25381         (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
25382         * tree-vect-data-refs.c: Include tree-cfg.h.
25383         (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
25384         fields instead of calculating an alignment here.
25385         (vect_analyze_data_refs): Use dr_analyze_innermost.  Dump the new
25386         innermost_loop_behavior fields.
25387
25388 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25389
25390         * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
25391         field.
25392         (DR_STEP_ALIGNMENT): New macro.
25393         * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
25394         * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
25395         (create_data_ref): Print it.
25396         * tree-vect-stmts.c (vectorizable_load): Use the step alignment
25397         to tell whether the step preserves vector (mis)alignment.
25398         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
25399         Move the check for an integer step and generalise to all INTEGER_CST.
25400         (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
25401         Print the outer step alignment.
25402
25403 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25404
25405         * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
25406         with offset_alignment.
25407         (DR_ALIGNED_TO): Delete.
25408         (DR_OFFSET_ALIGNMENT): New macro.
25409         * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
25410         (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
25411         * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
25412         (create_data_ref): Likewise.
25413         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
25414         (vect_analyze_data_refs): Likewise.
25415         * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
25416         creating dummy innermost behavior.
25417
25418 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25419
25420         * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
25421         with a "innermost_loop_behavior *" and refeence tree.
25422         * tree-data-ref.c (dr_analyze_innermost): Likewise.
25423         (create_data_ref): Update call accordingly.
25424         * tree-predcom.c (find_looparound_phi): Likewise.
25425
25426 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25427
25428         * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
25429         fields with dr_wrt_vec_loop.
25430         (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
25431         (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
25432         (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
25433         (vect_dr_behavior): New function.
25434         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
25435         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
25436         vect_dr_behavior.  Use a step_preserves_misalignment_p boolean to
25437         track whether the step preserves the misalignment.
25438         (vect_create_addr_base_for_vector_ref): Remove loop parameter.
25439         Use vect_dr_behavior.
25440         (vect_setup_realignment): Update call accordingly.
25441         (vect_create_data_ref_ptr): Likewise.  Use vect_dr_behavior.
25442         * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
25443         call to vect_create_addr_base_for_vector_ref.
25444         (vect_create_cond_for_align_checks): Likewise.
25445         * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
25446         STMT_VINFO_DR_WRT_VEC_LOOP as a block.
25447         (vect_recog_mask_conversion_pattern): Likewise.
25448         * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
25449         (new_stmt_vec_info): Remove redundant zeroing.
25450
25451 2017-07-03  Richard Earnshaw  <rearnsha@arm.com>
25452
25453         * common/config/arm/arm-common.c (arm_be8_option): New function.
25454         * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
25455         (ISA_ARMv6): Add isa_bit_be8.
25456         * config/arm/arm.h (arm_be8_option): Add prototype.
25457         (BE8_SPEC_FUNCTION): New define.
25458         (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
25459         * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
25460         (mlittle-endian): Similarly.
25461         (mbe8, mbe32): New options.
25462         * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
25463         * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
25464
25465 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25466
25467         * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
25468
25469 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25470
25471         * tree-cfgcleanup.c (want_merge_blocks_p): New function.
25472         (cleanup_tree_cfg_bb): Use it.
25473         * profile-count.h (profile_count::of_for_merging, profile_count::merge):
25474         New functions.
25475         * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
25476
25477 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25478
25479         PR bootstrap/81285
25480         * loop-doloop.c (add_test): Update profile.
25481
25482 2017-07-03  Martin Liska  <mliska@suse.cz>
25483
25484         PR sanitize/81040
25485         * sanopt.c (rewrite_usage_of_param): New function.
25486         (sanitize_rewrite_addressable_params): Likewise.
25487         (pass_sanopt::execute): Call rewrite_usage_of_param.
25488
25489 2017-07-03  Richard Biener  <rguenther@suse.de>
25490
25491         * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
25492         back to using VIEW_CONVERT_EXPR.
25493
25494 2017-07-03  Martin Liska  <mliska@suse.cz>
25495
25496         PR other/78366
25497         * doc/extend.texi: Document when a resolver function is
25498         generated for target_clones.
25499
25500 2017-07-03  Martin Liska  <mliska@suse.cz>
25501
25502         * asan.c (asan_emit_stack_protection): Unpoison just red zones
25503         and shadow memory of auto variables which are subject of
25504         use-after-scope sanitization.
25505         (asan_expand_mark_ifn): Add do set only when is_poison.
25506
25507 2016-07-03  Richard Biener  <rguenther@suse.de>
25508
25509         * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
25510         reduction PHIs.
25511         (vect_force_simple_reduction): Record reduction def -> phi mapping.
25512         (vectorizable_reduction): Perform reduction PHI creation when
25513         visiting a reduction PHI and adjust and simplify code generation
25514         phase of the reduction op.  Cache dts, use fold_binary, not fold_build2.
25515         (vect_transform_loop): Visit reduction PHIs.
25516         * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
25517         defs into the SLP tree.
25518         (vect_build_slp_tree): Reduction defs terminate the recursion.
25519         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
25520         of reduction defs.
25521         (vect_get_vec_defs_for_stmt_copy): Export.
25522         (vect_get_vec_defs): Likewise.
25523         * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
25524         purpose.
25525         (vect_get_vec_defs_for_stmt_copy): Declare.
25526         (vect_get_vec_defs): Likewise.
25527
25528 2017-07-03  Richard Sandiford  <richard.sandiford@linaro.org>
25529
25530         * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
25531         parameter with a "loop" parameter and use it instead of the
25532         loop containing DR_STMT.  Don't check simple_iv when doing
25533         BB analysis.  Describe the two analysis modes in the comment.
25534
25535 2017-07-03  Tom de Vries  <tom@codesourcery.com>
25536
25537         PR tree-optimization/69468
25538         * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
25539         (find_same_succ_bb): Handle ignore_edge_flags.
25540
25541 2017-07-03  Tom de Vries  <tom@codesourcery.com>
25542
25543         PR tree-optimization/81192
25544         * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
25545         hash.
25546         (same_succ::equal): Don't find bbs to be equal if bb->loop_father
25547         differs.
25548         (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
25549
25550 2017-07-03  Tom de Vries  <tom@codesourcery.com>
25551
25552         PR tree-optimization/81192
25553         * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
25554         BB_SAME_SUCC (bb) == NULL.
25555
25556 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25557
25558         * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
25559         consistency.
25560
25561 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25562
25563         * dumpfile.c: Include profile-count.h
25564         * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
25565         update profile.
25566         (insert_cond_bb): Update profile.
25567         * tree-cfg.h (insert_cond_bb): Update prototype.
25568         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
25569         * tree-dump.c: Do not include tree-cfg.
25570
25571 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25572
25573         * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
25574
25575 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25576
25577         * expect.c (dw2_build_landing_pads): Update profile of the landing pad
25578         bb.
25579
25580 2017-07-02  Jan Hubicka  <hubicka@ucw.cz>
25581
25582         * tree-complex.c (expand_complex_div_wide): update profile.
25583
25584 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25585             Alan Hayward  <alan.hayward@arm.com>
25586             David Sherwood  <david.sherwood@arm.com>
25587
25588         * Makefile.in (MACHMODE_H): Remove insn-modes.h
25589         (CORETYPES_H): New define.
25590         (MOSTLYCLEANFILES): Add insn-modes-inline.h.
25591         (insn-modes-inline.h, s-modes-inline-h): New rules.
25592         (generated_files): Add insn-modes-inline.h.
25593         (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
25594         (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
25595         (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
25596         (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
25597         (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
25598         (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
25599         (build/gencodes.o, build/genconditions.o): Likewise.
25600         (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
25601         (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
25602         (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
25603         (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
25604         (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
25605         (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
25606         * coretypes.h: Include everything up to real.h for generators.
25607         Include insn-modes.h first.  Include wide-int-print.h after
25608         wide-int.h.  Include insn-modes-inline.h and then machmode.h.
25609         * machmode.h: Don't include insn-modes.h here.
25610         * function-tests.c: Remove includes of signop.h, machmode.h,
25611         double-int.h and wide-int.h.
25612         * rtl.h: Likewise.
25613         * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
25614         and wide-int.h.
25615         * optc-save-gen.awk: Likewise.
25616         * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
25617         * godump.c: Remove include of wide-int-print.h.
25618         * pretty-print.h: Likewise.
25619         * wide-int-print.cc: Likewise.
25620         * wide-int.cc: Likewise.
25621         * hash-map-tests.c: Remove include of signop.h.
25622         * hash-set-tests.c: Likewise.
25623         * rtl-tests.c: Likewise.
25624         * mkconfig.sh: Remove include of machmode.h.
25625         * genmodes.c (emit_insn_modes_h): Split emission of inline functions
25626         into...
25627         (emit_insn_modes_inline_h): ...this new function.  Emit the code
25628         into an insn-modes-inline.h header file, adding appropriate
25629         include guards and end comments.
25630         (emit_insn_modes_c_header): Remove include of machmode.h.
25631         (emit_min_insn_modes_c_header): Include coretypes.h rather than
25632         machmode.h.
25633         (main): Handle -i flag and call emit_insn_modes_inline_h when
25634         it is passed.
25635
25636 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25637
25638         * tree-ssa-strlen.c (strinfo): Rename the length field to
25639         nonzero_chars.  Add a full_string_p field.
25640         (compare_nonzero_chars, zero_length_string_p): New functions.
25641         (get_addr_stridx): Add an offset_out parameter.
25642         Use compare_nonzero_chars.
25643         (get_stridx): Update accordingly.  Use compare_nonzero_chars.
25644         (new_strinfo): Update after above changes to strinfo.
25645         (set_endptr_and_length): Set full_string_p.
25646         (get_string_length): Update after above changes to strinfo.
25647         (unshare_strinfo): Update call to new_strinfo.
25648         (maybe_invalidate): Likewise.
25649         (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
25650         Use compare_nonzero_chars and zero_string_p.  Treat nonzero_chars
25651         as a uhwi instead of an shwi.  Update after above changes to
25652         strinfo and new_strinfo.
25653         (zero_length_string): Assert that chainsi contains full strings.
25654         Use zero_length_string_p.  Update call to new_strinfo.
25655         (adjust_related_strinfos): Update after above changes to strinfo.
25656         Copy full_string_p from origsi.
25657         (adjust_last_stmt): Use zero_length_string_p.
25658         (handle_builtin_strlen): Update after above changes to strinfo and
25659         new_strinfo.  Install the lhs as the string length if the previous
25660         entry didn't describe a full string.
25661         (handle_builtin_strchr): Update after above changes to strinfo
25662         and new_strinfo.
25663         (handle_builtin_strcpy): Likewise.
25664         (handle_builtin_strcat): Likewise.
25665         (handle_builtin_malloc): Likewise.
25666         (handle_pointer_plus): Likewise.
25667         (handle_builtin_memcpy): Likewise.  Track nonzero characters
25668         that aren't necessarily followed by a nul terminator.
25669         (handle_char_store): Likewise.
25670
25671 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25672
25673         PR tree-optimization/80769
25674         * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
25675         for malloc and calloc.  Document the new invariant that all related
25676         strinfos have delayed lengths or none do.
25677         (verify_related_strinfos): Move earlier in file.
25678         (set_endptr_and_length): New function, split out from...
25679         (get_string_length): ...here.  Also set the lengths of related
25680         strinfos.
25681         (zero_length_string): Assert that chainsi has known (rather than
25682         delayed) lengths.
25683         (adjust_related_strinfos): Likewise.
25684
25685 2017-07-02  Richard Sandiford  <richard.sandiford@linaro.org>
25686
25687         PR tree-optimization/81136
25688         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
25689         assert that two references with the same misalignment have the same
25690         compile-time misalignment if those compile-time misalignments
25691         are known.
25692
25693 2017-07-01  Andi Kleen  <ak@linux.intel.com>
25694
25695         * print-tree.c (print_node): Print all attributes.
25696
25697 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25698
25699         * cfg.c (scale_bbs_frequencies): New function.
25700         * cfg.h (scale_bbs_frequencies): Declare it.
25701         * cfgloopanal.c (single_likely_exit): Cleanup.
25702         * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
25703         as parameter.
25704         (scale_loop_profile): Likewise.
25705         (loop_version): Likewise.
25706         (create_empty_loop_on_edge): Update.
25707         * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
25708         scale_loop_frequencies, scale_loop_profile, loopify,
25709         loop_version): Update prototypes.
25710         * modulo-sched.c (sms_schedule): Update.
25711         * predict.c (unlikely_executed_edge_p): Also check probability.
25712         (probably_never_executed_edge_p): Fix typo.
25713         * tree-if-conv.c (version_loop_for_if_conversion): Update.
25714         * tree-parloops.c (gen_parallel_loop): Update.
25715         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
25716         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
25717         * tree-ssa-loop-split.c (split_loop): Update.
25718         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
25719         * tree-vect-loop-manip.c (vect_do_peeling): Update.
25720         (vect_loop_versioning): Update.
25721         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
25722
25723 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25724
25725         * trans-mem.c (split_bb_make_tm_edge): Update profile.
25726
25727 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25728
25729         * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
25730         to keep profile consistent.
25731
25732 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25733
25734         * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
25735         * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
25736         * profile-count.h (max_safe_multiplier): Make unsigned.
25737         (profile_count::guessed_zero): New.
25738
25739 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25740
25741         * bb-reorder.c (fix_up_crossing_landing_pad,
25742         fix_crossing_conditional_branches): Use make_single_succ_edge
25743         to keep profile consistent.
25744
25745 2017-07-01  Jan Hubicka  <hubicka@ucw.cz>
25746
25747         * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
25748         to update profile.
25749
25750 2017-07-01  Jakub Jelinek  <jakub@redhat.com>
25751
25752         PR sanitizer/81262
25753         * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
25754         the right scopes, make sure cond_jump isn't preserved between multiple
25755         iterations.  Search for fallthru edge whenever there are 3+ edges and
25756         use find_fallthru_edge for it.
25757
25758 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25759
25760         Patch by Alexander Monakov <amonakov@ispras.ru>
25761         * sel-sched-ir.c (compute_succs_info): Handle uninitialized
25762         probabilities consistently.
25763
25764 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25765
25766         * pa.c (pa_expand_compare_and_swap_loop): Update call of
25767         emit_cmp_and_jump_insns.
25768
25769 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25770
25771         PR ipa/81261
25772         * tree-inline.c (expand_call_inline): Combine profile statuses.
25773
25774 2017-06-30  Andrew Pinski  <apinski@cavium.com>
25775
25776         * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
25777         fold_stmt returned true.
25778
25779 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25780
25781         * ggc.h (empty_string): Delete.
25782         * cfgexpand.c (expand_asm_stmt): Use plain "".
25783         * optabs.c (expand_asm_memory_barrier): Likewise.
25784         * stringpool.c (empty_string): Delete.
25785         (digit_vector, digit_string): Delete.
25786         (ggc_alloc_string): Use plain "", don't optimize single digit
25787         strings.  Use ggc_alloc_atomic.
25788
25789 2017-06-30  Richard Earnshaw  <rearnsha@arm.com>
25790
25791         * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
25792         comparison set and one other set, use the cost of the non-comparison
25793         set.
25794
25795 2017-06-30  Nathan Sidwell  <nathan@acm.org>
25796
25797         * ggc.h: Replace all 'static inline' with plain 'inline'.  Fix
25798         some formatting.
25799
25800 2017-06-30  Peter Bergner  <bergner@vnet.ibm.com>
25801
25802         * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
25803         loops.  Remove now unneeded calls to gimple_switch_set_label() that
25804         just set removed labels to NULL_TREE.
25805
25806 2017-06-30  Aldy Hernandez  <aldyh@redhat.com>
25807
25808         * tree-ssanames.c (set_range_info_raw): Abstract from ...
25809         (set_range_info): ...here.  Only call set_range_info_raw if domain
25810         is useful.
25811         (set_nonzero_bits): Call set_range_info_raw.
25812         * tree-ssanames.h (set_range_info_raw): New.
25813
25814 2017-06-30  Jakub Jelinek  <jakub@redhat.com>
25815
25816         PR target/81225
25817         * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
25818         V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
25819         of nonimmediate_operand and <store_mask_constraint> instead of m
25820         for the input operand.  For V8FI iterator, always split if input
25821         is a MEM.  For V16FI and V8SF_256 iterators, don't test if both
25822         operands are MEM if <mask_applied>.  For VI4F_256 iterator, use
25823         <store_mask_predicate> instead of register_operand and
25824         <store_mask_constraint> instead of v for the input operand.  Make
25825         sure both operands aren't MEMs for if not <mask_applied>.
25826
25827 2017-06-30  Sylvestre Ledru  <sylvestre@debian.org>
25828
25829         * lto-wrapper.c (copy_file) Close both file descriptors before
25830         exiting normally.
25831
25832 2017-06-30  Martin Liska  <mliska@suse.cz>
25833
25834         PR ipa/81214
25835         * multiple_target.c (create_dispatcher_calls): Make ifunc
25836         also for function that don't have calls or are not referenced.
25837
25838 2017-06-30  Richard Biener  <rguenther@suse.de>
25839
25840         * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
25841         analyze the first scalar stmt.  Move vector type computation
25842         for the BB case here from ...
25843         * tree-vect-stmts.c (vect_analyze_stmt): ... here.  Guard
25844         live operation processing in the SLP case properly.
25845
25846 2017-06-30  Richard Biener  <rguenther@suse.de>
25847
25848         * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
25849
25850 2017-06-30  Martin Liska  <mliska@suse.cz>
25851
25852         PR sanitizer/81021
25853         * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
25854         before BUILT_IN_UNWIND_RESUME when ASAN is used.
25855
25856 2017-06-30  Yvan Roux  <yvan.roux@linaro.org>
25857
25858         * doc/invoke.texi (AArch64): Add missing options and remove redundant
25859         ones.
25860
25861 2017-06-30  Richard Biener  <rguenther@suse.de>
25862
25863         PR tree-optimization/81249
25864         * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
25865         condition reduction result to original scalar type.
25866
25867 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25868
25869         * profile-count.h (enum profile_quality): Fix typos and whitespace
25870         issues.
25871
25872 2017-06-30  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25873
25874         * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
25875         type for branch probabilities.
25876
25877 2017-06-29  Julian Brown  <julian@codesourcery.com>
25878             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25879
25880         * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
25881         * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
25882         (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
25883         (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
25884
25885 2017-06-29  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
25886
25887         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
25888         check for CC usage into AARCH64_FUSE_CMP_BRANCH.
25889         * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
25890         CC usage from generic code to here.
25891         * sched-deps.c (sched_macro_fuse_insns): Move the condition for
25892         CC usage into the target macros.
25893
25894 2017-06-29  Maya Rashish  <coypu@sdf.org>
25895
25896         * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
25897         objects.
25898
25899 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25900
25901         * arm/arm-builtins.c: Include profile-count.h
25902         * except.c (sjlj_emit_function_enter): Use
25903         profile_probability::unlikely.
25904
25905 2017-06-29  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
25906
25907         * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
25908         and tocrel_offset be pointer args rather than implicitly using
25909         static versions.
25910         (legitimate_constant_pool_address_p, rs6000_emit_move,
25911         const_load_sequence_p, adjust_vperm): Add local tocrel_base and
25912         tocrel_offset and use in toc_relative_expr_p call.
25913         (print_operand, print_operand_address): Use static tocrel_base_oac
25914         and tocrel_offset_oac.
25915         (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
25916         tocrel_offset_oac.
25917
25918 2017-06-29  Maya Rashish  <coypu@sdf.org>
25919
25920         * config/vax/builtins.md (ffssi2_internal): Correct constraint.
25921
25922 2017-06-29  Eric Botcazou  <ebotcazou@adacore.com>
25923
25924         * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
25925         objects, take into account only the alignment of 'op0' and 'mode1' if
25926         'op0' is a MEM.
25927
25928 2017-06-29  Steve Ellcey  <sellcey@cavium.com>
25929
25930         * ccmp.c (ccmp_tree_comparison_p): New function.
25931         (ccmp_candidate_p): Update to use above function.
25932         (get_compare_parts): New function.
25933         (expand_ccmp_next): Update to use new functions.
25934         (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
25935         new functions.
25936         (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
25937         take mode as argument.
25938         * ccmp.h (expand_ccmp_expr): Add mode as argument.
25939         * expr.c (expand_expr_real_1): Pass mode as argument.
25940
25941 2017-06-29  Segher Boessenkool  <segher@kernel.crashing.org>
25942
25943         * combine.c (combine_instructions): Print insns to dump_file, together
25944         with their costs.
25945
25946 2017-06-29  Jan Hubicka  <hubicka@ucw.cz>
25947
25948         * asan.c (asan_emit_stack_protection): Update.
25949         (create_cond_insert_point): Update.
25950         * auto-profile.c (afdo_propagate_circuit): Update.
25951         * basic-block.h (struct edge_def): Turn probability to
25952         profile_probability.
25953         (EDGE_FREQUENCY): Update.
25954         * bb-reorder.c (find_traces_1_round): Update.
25955         (better_edge_p): Update.
25956         (sanitize_hot_paths): Update.
25957         * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
25958         (make_single_succ_edge): Update.
25959         (check_bb_profile): Update.
25960         (dump_edge_info): Update.
25961         (update_bb_profile_for_threading): Update.
25962         * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
25963         probabilitycount to 0.
25964         * cfgbuild.c (compute_outgoing_frequencies): Update.
25965         * cfgcleanup.c (try_forward_edges): Update.
25966         (outgoing_edges_match): Update.
25967         (try_crossjump_to_edge): Update.
25968         * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
25969         (expand_gimple_tailcall): Update.
25970         (construct_init_block): Use make_single_succ_edge.
25971         (construct_exit_block): Use make_single_succ_edge.
25972         * cfghooks.c (verify_flow_info): Update.
25973         (redirect_edge_succ_nodup): Update.
25974         (split_edge): Update.
25975         (account_profile_record): Update.
25976         * cfgloopanal.c (single_likely_exit): Update.
25977         * cfgloopmanip.c (scale_loop_profile): Update.
25978         (set_zero_probability): Remove.
25979         (duplicate_loop_to_header_edge): Update.
25980         * cfgloopmanip.h (loop_version): Update prototype.
25981         * cfgrtl.c (try_redirect_by_replacing_jump): Update.
25982         (force_nonfallthru_and_redirect): Update.
25983         (update_br_prob_note): Update.
25984         (rtl_verify_edges): Update.
25985         (purge_dead_edges): Update.
25986         (rtl_lv_add_condition_to_bb): Update.
25987         * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
25988         * cgraphunit.c (init_lowered_empty_function): Update.
25989         (cgraph_node::expand_thunk): Update.
25990         * cilk-common.c: Include profile-count.h
25991         * dojump.c (inv): Remove.
25992         (jumpifnot): Update.
25993         (jumpifnot_1): Update.
25994         (do_jump_1): Update.
25995         (do_jump): Update.
25996         (do_jump_by_parts_greater_rtx): Update.
25997         (do_compare_rtx_and_jump): Update.
25998         * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
25999         do_jump_1. do_compare_rtx_and_jump): Update prototype.
26000         * dwarf2cfi.c: Include profile-count.h
26001         * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
26002         (sjlj_emit_dispatch_table): Likewise.
26003         * explow.c: Include profile-count.h
26004         * expmed.c (emit_store_flag_force): Update.
26005         (do_cmp_and_jump): Update.
26006         * expr.c (compare_by_pieces_d::generate): Update.
26007         (compare_by_pieces_d::finish_mode): Update.
26008         (emit_block_move_via_loop): Update.
26009         (store_expr_with_bounds): Update.
26010         (store_constructor): Update.
26011         (expand_expr_real_2): Update.
26012         (expand_expr_real_1): Update.
26013         * expr.h (try_casesi, try_tablejump): Update prototypes.
26014         * gimple-pretty-print.c (dump_probability): Update.
26015         (dump_profile): New.
26016         (dump_gimple_label): Update.
26017         (dump_gimple_bb_header): Update.
26018         * graph.c (draw_cfg_node_succ_edges): Update.
26019         * hsa-gen.c (convert_switch_statements): Update.
26020         * ifcvt.c (cheap_bb_rtx_cost_p): Update.
26021         (find_if_case_1): Update.
26022         (find_if_case_2): Update.
26023         * internal-fn.c (expand_arith_overflow_result_store): Update.
26024         (expand_addsub_overflow): Update.
26025         (expand_neg_overflow): Update.
26026         (expand_mul_overflow): Update.
26027         (expand_vector_ubsan_overflow): Update.
26028         * ipa-cp.c (good_cloning_opportunity_p): Update.
26029         * ipa-split.c (split_function): Use make_single_succ_edge.
26030         * ipa-utils.c (ipa_merge_profiles): Update.
26031         * loop-doloop.c (add_test): Update.
26032         (doloop_modify): Update.
26033         * loop-unroll.c (compare_and_jump_seq): Update.
26034         (unroll_loop_runtime_iterations): Update.
26035         * lra-constraints.c (lra_inheritance): Update.
26036         * lto-streamer-in.c (input_cfg): Update.
26037         * lto-streamer-out.c (output_cfg): Update.
26038         * mcf.c (adjust_cfg_counts): Update.
26039         * modulo-sched.c (sms_schedule): Update.
26040         * omp-expand.c (expand_omp_for_init_counts): Update.
26041         (extract_omp_for_update_vars): Update.
26042         (expand_omp_ordered_sink): Update.
26043         (expand_omp_for_ordered_loops): Update.
26044         (expand_omp_for_generic): Update.
26045         (expand_omp_for_static_nochunk): Update.
26046         (expand_omp_for_static_chunk): Update.
26047         (expand_cilk_for): Update.
26048         (expand_omp_simd): Update.
26049         (expand_omp_taskloop_for_outer): Update.
26050         (expand_omp_taskloop_for_inner): Update.
26051         * omp-simd-clone.c (simd_clone_adjust): Update.
26052         * optabs.c (expand_doubleword_shift): Update.
26053         (expand_abs): Update.
26054         (emit_cmp_and_jump_insn_1): Update.
26055         (expand_compare_and_swap_loop): Update.
26056         * optabs.h (emit_cmp_and_jump_insns): Update prototype.
26057         * predict.c (predictable_edge_p): Update.
26058         (edge_probability_reliable_p): Update.
26059         (set_even_probabilities): Update.
26060         (combine_predictions_for_insn): Update.
26061         (combine_predictions_for_bb): Update.
26062         (propagate_freq): Update.
26063         (estimate_bb_frequencies): Update.
26064         (force_edge_cold): Update.
26065         * profile-count.c (profile_count::dump): Add missing space into dump.
26066         (profile_count::debug): Add newline.
26067         (profile_count::differs_from_p): Explicitly convert to unsigned.
26068         (profile_count::stream_in): Update.
26069         (profile_probability::dump): New member function.
26070         (profile_probability::debug): New member function.
26071         (profile_probability::differs_from_p): New member function.
26072         (profile_probability::differs_lot_from_p): New member function.
26073         (profile_probability::stream_in): New member function.
26074         (profile_probability::stream_out): New member function.
26075         * profile-count.h (profile_count_quality): Rename to ...
26076         (profile_quality): ... this one.
26077         (profile_probability): New.
26078         (profile_count): Update.
26079         * profile.c (compute_branch_probabilities): Update.
26080         * recog.c (peep2_attempt): Update.
26081         * sched-ebb.c (schedule_ebbs): Update.
26082         * sched-rgn.c (find_single_block_region): Update.
26083         (compute_dom_prob_ps): Update.
26084         (schedule_region): Update.
26085         * sel-sched-ir.c (compute_succs_info): Update.
26086         * stmt.c (struct case_node): Update.
26087         (do_jump_if_equal): Update.
26088         (get_outgoing_edge_probs): Update.
26089         (conditional_probability): Update.
26090         (emit_case_dispatch_table): Update.
26091         (expand_case): Update.
26092         (expand_sjlj_dispatch_table): Update.
26093         (emit_case_nodes): Update.
26094         * targhooks.c: Update.
26095         * tracer.c (better_p): Update.
26096         (find_best_successor): Update.
26097         * trans-mem.c (expand_transaction): Update.
26098         * tree-call-cdce.c: Update.
26099         * tree-cfg.c (gimple_split_edge): Upate.
26100         (move_sese_region_to_fn): Upate.
26101         * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
26102         * tree-eh.c (lower_resx): Upate.
26103         (cleanup_empty_eh_move_lp): Upate.
26104         * tree-if-conv.c (version_loop_for_if_conversion): Update.
26105         * tree-inline.c (copy_edges_for_bb): Update.
26106         (copy_cfg_body): Update.
26107         * tree-parloops.c (gen_parallel_loop): Update.
26108         * tree-profile.c (gimple_gen_ic_func_profiler): Update.
26109         (gimple_gen_time_profiler): Update.
26110         * tree-ssa-dce.c (remove_dead_stmt): Update.
26111         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
26112         * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
26113         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
26114         (unloop_loops): Update.
26115         (try_peel_loop): Update.
26116         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
26117         * tree-ssa-loop-split.c (connect_loops): Update.
26118         (split_loop): Update.
26119         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
26120         (hoist_guard): Update.
26121         * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
26122         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
26123         (value_replacement): Update.
26124         * tree-ssa-reassoc.c (branch_fixup): Update.
26125         * tree-ssa-tail-merge.c (replace_block_by): Update.
26126         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
26127         (create_edge_and_update_destination_phis): Update.
26128         (compute_path_counts): Update.
26129         (recompute_probabilities): Update.
26130         (update_joiner_offpath_counts): Update.
26131         (freqs_to_counts_path): Update.
26132         (duplicate_thread_path): Update.
26133         * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
26134         (struct switch_conv_info): Update.
26135         (gen_inbound_check): Update.
26136         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
26137         (vect_do_peeling): Update.
26138         (vect_loop_versioning): Update.
26139         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
26140         (optimize_mask_stores): Update.
26141         * ubsan.c (ubsan_expand_null_ifn): Update.
26142         * value-prof.c (gimple_divmod_fixed_value): Update.
26143         (gimple_divmod_fixed_value_transform): Update.
26144         (gimple_mod_pow2): Update.
26145         (gimple_mod_pow2_value_transform): Update.
26146         (gimple_mod_subtract): Update.
26147         (gimple_mod_subtract_transform): Update.
26148         (gimple_ic): Update.
26149         (gimple_stringop_fixed_value): Update.
26150         (gimple_stringops_transform): Update.
26151         * value-prof.h: Update.
26152
26153 2017-06-29  Carl Love  <cel@us.ibm.com>
26154
26155         * config/rs6000/rs6000-c.c: Add support for built-in functions
26156         vector signed int vec_signed (vector float);
26157         vector signed long long vec_signed (vector double);
26158         vector signed int vec_signed2 (vector double, vector double);
26159         vector signed int vec_signede (vector double);
26160         vector signed int vec_signedo (vector double);
26161         * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
26162         instruction generator.
26163         * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
26164         UNSPEC_VSX_VSIGNED2): Add UNSPECS.
26165         (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
26166         Add define_insn.
26167         (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
26168         vunsignede_v2df): Add define_expands.
26169         * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
26170         VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
26171         VEC_UNSIGNEDO): Add definitions.
26172         * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
26173         UNSPEC_VSX_VSIGNED2): Add UNSPECs.
26174         (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
26175         (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
26176         vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
26177         * config/rs6000/altivec.h (vec_signed, vec_signed2,
26178         vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
26179         vec_unsignede, vec_unsignedo): Add builtin defines.
26180         * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
26181         declaration.
26182         * doc/extend.texi: Update the built-in documentation file for the
26183         new built-in functions.
26184
26185 2017-06-29  Richard Biener  <rguenther@suse.de>
26186
26187         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
26188         reduction chains to LOOP_VINFO_REDUCTIONS.
26189         * tree-vect-slp.c (vect_analyze_slp): Continue looking for
26190         SLP reductions after processing reduction chains.
26191
26192 2017-06-29  Nathan Sidwell  <nathan@acm.org>
26193
26194         * builtins.c (fold_builtin_FUNCTION): Use
26195         lang_hooks.decl_printable_name.
26196
26197 2017-06-29  Peter Bergner  <bergner@vnet.ibm.com>
26198
26199         PR middle-end/81194
26200         * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
26201         with only one label.
26202         * stmt.c (expand_case): Assert NCASES is greater than one.
26203
26204 2017-06-29  Richard Biener  <rguenther@suse.de>
26205
26206         * tree-cfg.c (group_case_labels_stmt): Return whether we changed
26207         anything.
26208         (group_case_labels): Likewise.
26209         (find_taken_edge): Push sanity checking on val to workers...
26210         (find_taken_edge_cond_expr): ... here
26211         (find_taken_edge_switch_expr): ... and here, handle cases
26212         with just a default label.
26213         * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
26214         (group_case_labels): Likewise.
26215         * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
26216         group_case_labels does anything cleanup the CFG again.
26217
26218 2017-06-29  Bin Cheng  <bin.cheng@arm.com>
26219
26220         PR tree-optimization/81196
26221         * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
26222         exit condition comparing two IVs.
26223
26224 2017-06-29  Richard Earnshaw  <rearnsha@arm.com>
26225
26226         * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
26227         profile to the dummy entry at the end of the list of architectures.
26228         * config/arm/arm-cpu-cdata.h: Regenerated.
26229
26230 2017-06-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26231             Michael Collison <michael.collison@arm.com>
26232
26233         PR target/70119
26234         * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
26235         New pattern.
26236         (*aarch64_reg_<mode>3_neg_mask2): New pattern.
26237         (*aarch64_reg_<mode>3_minus_mask): New pattern.
26238         (*aarch64_<optab>_reg_di3_mask2): New pattern.
26239         * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
26240         of shift when the shift amount is masked with constant equal to
26241         the size of the mode.
26242         * config/aarch64/predicates.md (subreg_lowpart_operator): New
26243         predicate.
26244
26245 2017-06-29  Martin Liska  <mliska@suse.cz>
26246
26247         * config/i386/i386.opt: Change range from [1,5] to [0,5].
26248
26249 2017-06-29  Yury Gribov  <tetra2005@gmail.com>
26250
26251         PR bootstrap/80565
26252         * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
26253         code.
26254         * ipa-inline.h
26255         (edge_growth_cache_entry::edge_growth_cache_entry): New
26256         function.
26257         (reset_edge_growth_cache): Update to use constructor.
26258
26259 2017-06-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
26260
26261         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
26262         (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
26263         (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
26264
26265 2017-06-28  Sebastian Peryt  <sebastian.peryt@intel.com>
26266
26267         * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
26268         (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
26269
26270 2017-06-28  Szabolcs Nagy  <szabolcs.nagy@arm.com>
26271
26272         * config.gcc (*-linux-musl*): Add t-musl tmake_file.
26273         (*-linux-uclibc*): Add t-uclibc tmake_file.
26274         * config/t-musl: New.
26275         * config/t-uclibc: New.
26276
26277 2017-06-28  Richard Earnshaw  <rearnsha@arm.com>
26278
26279         * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
26280         context.
26281         (gen_comm_data): Emit architectural setting of arch_prof.
26282         * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
26283         profile.
26284         (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
26285         (armv8-m.base, armv8-m.main): Likewise.
26286         * arm-protos.h (arm_build_target): Add profile field.
26287         (arch_option): Likewise.
26288         * config/arm/arm.c (arm_configure_build_target): Copy the profile to
26289         the active target.
26290         * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
26291         arm_active_target.profile.
26292
26293 2017-06-28  Richard Biener  <rguenther@suse.de>
26294
26295         PR middle-end/81227
26296         * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
26297         TYPE_OVERFLOW_WRAPS.
26298         * match.pd (negate_expr_p): Likewise.
26299         * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
26300         fold_build2, not fold_binary.
26301
26302 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
26303
26304         * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
26305         Convert memory address to Pmode.
26306         (aarch64_print_operand): Assert MEM operands are always Pmode.
26307
26308 2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
26309
26310         PR target/79665
26311         * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
26312         Remove redundant if.
26313         (aarch_forward_to_shift_is_not_shifted_reg): Remove.
26314         * config/arm/aarch-common-protos.h
26315         (aarch_forward_to_shift_is_not_shifted_re): Remove.
26316         * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
26317
26318 2017-06-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
26319
26320         PR ipa/81238
26321         * multiple_target.c (create_dispatcher_calls): Set the default
26322         clone to be static, not public.
26323
26324 2017-06-28  Richard Biener  <rguenther@suse.de>
26325
26326         * tree-vect-loop.c (vectorizable_reduction): Move special
26327         cond reduction IV var creation ...
26328         (vect_create_epilog_for_reduction): ... here.  Remove induction_index
26329         parameter.  Use STMT_VINFO_VECTYPE.
26330         * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
26331         constant_p.
26332
26333 2017-06-28  Martin Liska  <mliska@suse.cz>
26334
26335         PR ipa/81128
26336         * ipa-visibility.c (non_local_p): Handle visibility.
26337
26338 2017-06-28  Martin Liska  <mliska@suse.cz>
26339
26340         PR driver/79659
26341         * common.opt: Add IntegerRange to various options.
26342         * opt-functions.awk (integer_range_info): New function.
26343         * optc-gen.awk: Add integer_range_info to cl_options struct.
26344         * opts-common.c (decode_cmdline_option): Handle
26345         CL_ERR_INT_RANGE_ARG.
26346         (cmdline_handle_error): Likewise.
26347         * opts.c (print_filtered_help): Show valid interval in
26348         when --help is provided.
26349         * opts.h (struct cl_option): Add range_min and range_max fields.
26350         * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
26351
26352 2017-06-28  Marc Glisse  <marc.glisse@inria.fr>
26353
26354         * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
26355         (x * C EQ/NE y * C): New transformation.
26356
26357 2017-06-28  Christophe Lyon  <christophe.lyon@linaro.org>
26358
26359         * genmultilib (combination_space): Accept '+' in option names.
26360
26361 2017-06-28  Martin Liska  <mliska@suse.cz>
26362
26363         PR sanitizer/81224
26364         * asan.c (instrument_derefs): Bail out inner references
26365         that are hard register variables.
26366
26367 2017-06-28  Jakub Jelinek  <jakub@redhat.com>
26368
26369         PR target/81175
26370         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
26371         rather than def_builtin_pure for __builtin_ia32_gatherpf*.
26372
26373 2017-06-28  Richard Biener  <rguenther@suse.de>
26374
26375         * tree-vectorizer.h (vect_get_vec_defs): Remove.
26376         (vect_get_slp_defs): Adjust.
26377         * tree-vect-loop.c (get_initial_defs_for_reduction): Split
26378         out from ...
26379         * tree-vect-slp.c (vect_get_constant_vectors): ... here and
26380         simplify.
26381         * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
26382         get_initial_defs_for_reduction instead of vect_get_vec_defs.
26383         (vectorizable_reduction): Adjust.
26384         * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
26385         handling.
26386         (vect_get_slp_defs): Likewise.
26387         * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
26388         (vectorizable_bswap): Adjust.
26389         (vectorizable_call): Likewise.
26390         (vectorizable_conversion): Likewise.
26391         (vectorizable_assignment): Likewise.
26392         (vectorizable_shift): Likewise.
26393         (vectorizable_operation): Likewise.
26394         (vectorizable_store): Likewise.
26395         (vectorizable_condition): Likewise.
26396         (vectorizable_comparison): Likewise.
26397
26398 2017-06-28  Michael Collison  <michael.collison@arm.com>
26399
26400         PR target/68535
26401         * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
26402         set of base_reg
26403         (arm_gen_movmemqi): Removed unused variable 'i'.
26404         Convert 'for' loop into 'while' loop.
26405         (arm_expand_prologue): Remove last unnecessary set of insn.
26406         (thumb_pop): Remove unused variable 'pushed_words'.
26407         (thumb_exit): Remove last unnecessary set of regs_to_pop.
26408
26409 2017-06-28  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
26410
26411         * config/s390/predicates.md: Use s390_rel_address_ok_p.
26412         * config/s390/s390-protos.h: Add prototype of
26413         s390_rel_address_ok_p.
26414         * config/s390/s390.c (s390_got_symbol): New function.
26415         (s390_rel_address_ok_p): New function.
26416         (legitimize_pic_address): Use s390_rel_address_ok_p.
26417         (s390_load_got): Use s390_got_symbol.
26418         (s390_option_override): Issue error if
26419         -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
26420         * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
26421         New macro.
26422         * config/s390/s390.opt: New option mpic-data-is-text-relative.
26423
26424 2017-06-27  Andrew Pinski  <apinski@cavium.com>
26425
26426         * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
26427         (X * copysign (1.0, X)): New pattern.
26428         (X * copysign (1.0, -X)): New pattern.
26429         (copysign (-1.0, CST)): New pattern.
26430
26431 2017-06-27  Joseph Myers  <joseph@codesourcery.com>
26432
26433         * genmultilib (combination_space): Remove variable.
26434         Validate reuse rules against regular expression for any sequence
26435         of multilib options in any order.
26436
26437 2017-06-27  Michael Collison  <michael.collison@arm.com>
26438
26439         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
26440         call aarch64_split_simd_combine.
26441         * (aarch64_combine_internal<mode>): Delete pattern.
26442         * config/aarch64/aarch64.c (aarch64_split_simd_combine):
26443         Allow register and subreg operands.
26444
26445 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26446
26447         * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
26448         specific need, just fallback on defaults.
26449         (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
26450
26451 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26452             Olivier Hainque  <hainque@adacore.com>
26453
26454         * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
26455         map for 64bits.
26456         (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
26457         targets. Pick a default if no particular attempt applied.
26458         (STACK_CHECK_PROTECT): Double for 64bit targets, which have
26459         larger contexts.
26460
26461 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26462
26463         * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
26464         (x86_64-wrs-vxworks7): Likewise.
26465
26466 2017-06-27  Marek Polacek  <polacek@redhat.com>
26467
26468         PR sanitizer/81223
26469         * ubsan.c (instrument_null): Check get_base_address's result for null.
26470
26471 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
26472
26473         * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
26474
26475 2017-06-27  Marc Glisse  <marc.glisse@inria.fr>
26476
26477         * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
26478         BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
26479         (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
26480         BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
26481         New function types.
26482         * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
26483         BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
26484         BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
26485         BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
26486         BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
26487         BUILT_IN_FEUPDATEENV): New builtins.
26488         * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
26489         TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
26490         * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
26491         fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
26492         macros.
26493         (builtin_structptr_types): Adjust size.
26494         * tree.c (builtin_structptr_types): Add four entries.
26495
26496 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26497             Olivier Hainque  <hainque@adacore.com>
26498
26499         * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
26500         (TLS_SYM): New local macro, forcing reference to __tls__ on
26501         link command lines for VxWorks 7 RTPs, triggering initialization
26502         of tlsLib.
26503         (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
26504         OS features TLS support, true for RTPs on VxWorks 7.
26505         * config/vxworks.c (vxworks_override_options): Setup emutls
26506         accordingly.
26507
26508 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
26509
26510         * predict.c (test_prediction_value_range): Use -1U instead of -1
26511         to avoid narrowing conversion warning.
26512         * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
26513         to avoid narrowing conversion warning.
26514         * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
26515         -1.
26516         * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
26517
26518 2017-06-27  Jerome Lambourg  <lambourg@adacore.com>
26519
26520         * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
26521         64bit configurations.
26522         (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
26523         (SIZE_TYPE): Likewise.
26524         * config/vxworks.c (vxworks_emutls_var_fields): Use
26525         long_unsigned_type_node instead of unsigned_type_node as the offset
26526         field type, which is "pointer" mode in emutls.c.
26527
26528 2017-06-27  Jakub Jelinek  <jakub@redhat.com>
26529
26530         PR sanitizer/81209
26531         * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
26532
26533         PR middle-end/81207
26534         * gimple-fold.c (replace_call_with_call_and_fold): Handle
26535         gimple_vuse copying separately from gimple_vdef copying.
26536
26537 2017-06-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
26538
26539         * value-prof.c (free_hist): Remove call to memset and the enclosing if
26540         condition.
26541
26542 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
26543             Olivier Hainque  <hainque@adacore.com>
26544
26545         * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
26546         for all vxworks7 targets.
26547         * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
26548         (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
26549         (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
26550         variations for VX6/VX7 and 32/64bits later on in ...
26551         (VXWORKS_LIB_SPEC): Leverage new macros.
26552         (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
26553         as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
26554
26555 2017-06-26  Jerome Lambourg  <lambourg@adacore.com>
26556
26557         * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
26558         _VX_TOOL_FAMILY and _VX_TOOL to gnu.
26559
26560 2017-06-26  Carl Love  <cel@us.ibm.com>
26561
26562         * config/rs6000/rs6000-c.c: Add support for built-in functions
26563         vector bool char vec_reve (vector bool char);
26564         vector signed char vec_reve (vector signed char);
26565         vector unsigned char vec_reve (vector unsigned char);
26566         vector bool int vec_reve (vector bool int);
26567         vector signed int vec_reve (vector signed int);
26568         vector unsigned int vec_reve (vector unsigned int);
26569         vector bool long long vec_reve (vector bool long long);
26570         vector signed long long vec_reve (vector signed long long);
26571         vector unsigned long long vec_reve (vector unsigned long long);
26572         vector bool short vec_reve (vector bool short);
26573         vector signed short vec_reve (vector signed short);
26574         vector double vec_reve (vector double);
26575         vector float vec_reve (vector float);
26576         * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
26577         VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
26578         * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
26579         (altivec_vreve): New pattern.
26580         * config/rs6000/altivec.h (vec_reve): New define.
26581         * doc/extend.texi (vec_rev): Update the built-in documentation file
26582         for the new built-in functions.
26583
26584 2016-06-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26585
26586         PR tree-optimization/71815
26587         * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
26588         function.
26589         (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
26590         has_single_use.
26591         (slsr_process_phi): Likewise.
26592         (replace_uncond_cands_and_profitable_phis): Don't replace a
26593         multiply candidate with a stride of 1 (copy or cast).
26594         (phi_incr_cost): Call uses_consumed_by_stmt rather than
26595         has_single_use.
26596         (lowest_cost_path): Likewise.
26597         (total_savings): Likewise.
26598
26599 2017-06-26  Richard Biener  <rguenther@suse.de>
26600
26601         PR target/81175
26602         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
26603         Use def_builtin_pure for all gather builtins.
26604
26605 2017-06-26  Richard Biener  <rguenther@suse.de>
26606
26607         PR tree-optimization/81203
26608         * tree-tailcall.c (find_tail_calls): Do not move stmts into
26609         non-dominating BBs.
26610
26611 2017-06-26  Marek Polacek  <polacek@redhat.com>
26612
26613         PR c/80116
26614         * doc/invoke.texi: Document -Wmultistatement-macros.
26615
26616 2017-06-26  Christophe Lyon  <christophe.lyon@linaro.org>
26617
26618         * doc/sourcebuild.texi (ARM-specific attributes): Document new
26619         arm_neon_ok_no_float_abi effective target.
26620
26621 2017-06-26  Richard Biener  <rguenther@suse.de>
26622
26623         PR tree-optimization/80928
26624         * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
26625         (copy_bbs): Set BB_DUPLICATED flag early.
26626         (execute_on_growing_pred): Do not execute for BB_DUPLICATED
26627         marked blocks.
26628         (execute_on_shrinking_pred): Likewise.
26629         * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
26630         BB_DUPLICATED blocks.
26631         * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
26632         iterate over all PHIs considering removal of *gsi.
26633
26634 2017-06-23  Jim Wilson  <jim.wilson@linaro.org>
26635
26636         * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
26637         qdf24xx.
26638
26639 2017-06-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
26640
26641         * config/rs6000/rs6000-string.c: (expand_block_clear,
26642         do_load_for_compare, select_block_compare_mode,
26643         compute_current_alignment, expand_block_compare,
26644         expand_strncmp_align_check, expand_strn_compare,
26645         expand_block_move, rs6000_output_load_multiple)
26646         Move functions related to string/block move/compare
26647         to a separate file.
26648         * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
26649         * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
26650         for this function which is now used in two files.
26651         * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
26652         * config.gcc: Add rs6000-string.o to extra_objs for
26653         targets powerpc*-*-* and rs6000*-*-*.
26654
26655 2017-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
26656
26657         PR target/80510
26658         * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
26659         32-bit, since indexed is not valid for DImode.
26660         (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
26661         3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
26662         (define_peephole2 for Altivec d-form load): Add 32-bit support.
26663         (define_peephole2 for Altivec d-form store): Likewise.
26664
26665         PR ipa/81185
26666         * multiple_target.c (create_dispatcher_calls): Only create the
26667         dispatcher call if the function is the default clone of a
26668         versioned function.
26669
26670 2017-06-23  Segher Boessenkool  <segher@kernel.crashing.org>
26671
26672         PR middle-end/80902
26673         * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
26674         a call, force the call to not be a tail call.
26675
26676 2017-06-23  Jeff Law  <law@redhat.com>
26677
26678         * doc/contrib.texi: Add entry for Steven Pemberton's work on
26679         enquire.
26680
26681 2017-06-23  Will Schmidt  <will_schmidt@vnet.ibm.com>
26682
26683         * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
26684         update_call_from_tree().  (rs6000_gimple_fold_builtin): Add
26685         handling for early expansion of vector shifts (sl,sr,sra,rl).
26686         (builtin_function_type): Add vector shift right instructions
26687         to the unsigned argument list.
26688
26689 2017-06-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
26690
26691         rtl-optimizatoin/79286
26692         * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
26693         * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
26694         trap.  PIC register plus a const unspec without offset can never trap.
26695
26696 2017-06-23  Marc Glisse  <marc.glisse@inria.fr>
26697
26698         * tree.h (builtin_structptr_type): New type.
26699         (builtin_structptr_types): Declare new array.
26700         * tree.c (builtin_structptr_types): New array.
26701         (free_lang_data, build_common_tree_nodes): Use it.
26702
26703 2017-06-23  Jonathan Wakely  <jwakely@redhat.com>
26704
26705         PR c++/81187
26706         * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
26707         -Wnoexcept.
26708
26709 2017-06-22  Matt Turner  <mattst88@gmail.com>
26710
26711         * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
26712         Lake models to skylake case.  Assume skylake for unknown
26713         models with clflushopt.
26714
26715 2017-06-22  Jeff Law  <law@redhat.com>
26716
26717         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
26718         frame sizes that do not satisfy aarch64_uimm12_shift.
26719
26720 2017-06-22  Jan Hubicka <hubicka@ucw.cz>
26721
26722         * profile-count.h (apply_probability,
26723         apply_scale, probability_in): Fix checks for zero.
26724
26725 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26726
26727         * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
26728         * doc/cppdiropts.texi (-I @var{dir}): Document it.
26729
26730 2016-06-22  Richard Biener  <rguenther@suse.de>
26731
26732         * tree-vect-loop.c (vect_model_reduction_cost): Handle
26733         COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
26734         REDUC_MAX_EXPR support.
26735         (vectorizable_reduction): Likewise.
26736         (vect_create_epilog_for_reduction): Likewise.
26737
26738 2017-06-22  James Greenhalgh  <james.greenhalgh@arm.com>
26739
26740         * match.pd (A / (1 << B) -> A >> B): New.
26741         * generic-match-head.c: Include optabs-tree.h.
26742         * gimple-match-head.c: Likewise.
26743         * optabs-tree.h (target_supports_op_p): New.
26744         * optabs-tree.c (target_supports_op_p): New.
26745
26746 2017-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
26747
26748         * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
26749         $gcc_cv_ld --help output.
26750         (gcc_cv_ld_demangle): Likewise.
26751         (gcc_cv_ld_eh_frame_hdr): Likewise.
26752         (gcc_cv_ld_pie): Likewise.
26753         (gcc_cv_ld_as_needed): Likewise.  Prefer native forms unless $gnu_ld.
26754         (gcc_cv_ld_buildid): Likewise.
26755         (gcc_cv_ld_sysroot): Likewise.
26756         (ld_bndplt_support): Likewise.
26757         (ld_pushpopstate_support): Likewise.
26758         * configure: Regenerate.
26759         * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
26760
26761 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26762
26763         PR target/81151
26764         * config/i386/sse.md (round<mode>2): Renumber match_dup and
26765         operands indexes to avoid gap between operands and match_dups.
26766
26767 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26768
26769         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
26770         Increment Arith_shift and Arith_shift_reg by 1.
26771         * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
26772         New tuning flag.
26773         * config/aarch64/aarch64.c (thunderx_tunings): Enable
26774         AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
26775         (aarch64_strip_extend): Add new argument and test for it.
26776         (aarch64_cheap_mult_shift_p): New function.
26777         (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
26778         add a cost if it is true.
26779         Update calls to aarch64_strip_extend.
26780         (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
26781
26782 2017-06-21  Andrew Pinski  <apinski@cavium.com>
26783
26784         * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
26785         tunings.
26786         (thunderxt88): Likewise.
26787         * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
26788         (thunderx_prefetch_tune): New variable.
26789         (thunderx2t99_prefetch_tune): Update for the correct values.
26790         (thunderxt88_tunings): New variable.
26791         (thunderx_tunings): Use thunderx_prefetch_tune instead of
26792         generic_prefetch_tune.
26793         (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
26794
26795 2017-06-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26796
26797         * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
26798         SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
26799         (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
26800         (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
26801         (aarch64_atomic_cas<mode>, GPI): Likewise.
26802
26803 2017-06-21  Martin Liska  <mliska@suse.cz>
26804
26805         * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
26806         statements on cold and hot labels.
26807         * predict.c (tree_estimate_probability_bb): Remove the
26808         prediction from this place.
26809
26810 2017-06-21  Martin Liska  <mliska@suse.cz>
26811
26812         PR tree-optimization/79489
26813         * gimplify.c (maybe_add_early_return_predict_stmt): New
26814         function.
26815         (gimplify_return_expr): Call the function.
26816         * predict.c (tree_estimate_probability_bb): Remove handling
26817         of early return.
26818         * predict.def: Update comment about early return predictor.
26819         * gimple-predict.h (is_gimple_predict): New function.
26820         * predict.def: Change default value of early return to 66.
26821         * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
26822         statements.
26823         * passes.def: Put pass_strip_predict_hints to the beginning of
26824         IPA passes.
26825
26826 2017-06-21  Pierre-Marie de Rodat  <derodat@adacore.com>
26827
26828         * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
26829         FUNCTION_DECL declarations.
26830         (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
26831         declarations.
26832         (dwaf2out_decl): Likewise.
26833         * godump.c (go_early_global_decl): Skip call to the real debug hook
26834         for FUNCTION_DECL declarations.
26835         * passes.c (rest_of_decl_compilation): Skip call to the
26836         early_global_decl debug hook for FUNCTION_DECL declarations, unless
26837         -fdump-go-spec is passed.
26838
26839 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26840
26841         * config/i386/i386.c (struct builtin_isa): New field pure_p.
26842         Reorder for compactness.
26843         (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
26844         (def_builtin_pure, def_builtin_pure2): New functions.
26845         (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
26846
26847 2017-06-21  Marc Glisse  <marc.glisse@inria.fr>
26848
26849         * match.pd (nop_convert): New predicate.
26850         ((A +- CST1) +- CST2): Allow some NOP conversions.
26851
26852 2017-06-21  Jakub Jelinek  <jakub@redhat.com>
26853
26854         PR c++/81130
26855         * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
26856         with ctors/dtors if GOVD_SHARED is set.
26857
26858 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26859
26860         * config/aarch64/aarch64.md (movti_aarch64):
26861         Emit mov rather than orr.
26862         (movtf_aarch64): Likewise.
26863         * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
26864         Emit mov rather than orr.
26865
26866 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26867
26868         * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
26869         Swap alternatives, make integer dup more expensive.
26870
26871 2017-06-21  Wilco Dijkstra  <wdijkstr@arm.com>
26872
26873         * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
26874         Return true for non-tls symbols.
26875
26876 2017-06-21  James Greenhalgh  <james.greenhalgh@arm.com>
26877
26878         * config/aarch64/aarch64-cores.def (cortex-a55): New.
26879         (cortex-a75): Likewise.
26880         (cortex-a75.cortex-a55): Likewise.
26881         * config/aarch64/aarch64-tune.md: Regenerate.
26882         * doc/invoke.texi (-mtune): Document new values for -mtune.
26883
26884 2017-06-21  Tom de Vries  <tom@codesourcery.com>
26885
26886         * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
26887         stack_size feature.
26888         (Effective-Target Keywords, Other attributes): Suggest using
26889         dg-add-options stack_size feature to get stack limit in stack_size
26890         effective target documentation.
26891
26892 2017-06-21  Julian Brown  <julian@codesourcery.com>
26893             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
26894
26895         * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
26896         (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
26897         * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
26898         reservation.
26899         * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
26900         attribute type list for neon_multiply.
26901         * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
26902         attribute type list for neon_multiply.
26903         * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
26904         * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
26905         attribute type list for neon_multiply.
26906         * config/arm/types.md (crypto_pmull): Add.
26907         * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
26908         attribute type list.
26909
26910 2017-06-20  Andreas Tobler  <andreast@gcc.gnu.org>
26911
26912         * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
26913         arm1176jzf-s.
26914
26915 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26916
26917         * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
26918         to make sure not to dereference a NULL cost_classes_ptr pointer.
26919
26920 2017-06-20  Carl Love  <cel@us.ibm.com>
26921
26922         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
26923         ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
26924         ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
26925         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
26926         builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
26927         * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
26928         VMULOSW): New enum "unspec" values.
26929         (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
26930         vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
26931         altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
26932         altivec_vmulosw): New patterns.
26933         * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
26934         VMULOSW): Add definitions.
26935
26936 2017-06-20  Julia Koval  <julia.koval@intel.com>
26937
26938         * config/i386/i386.c: Fix rounding expand for new pattern.
26939         * config/i386/subst.md: Fix pattern (parallel -> unspec).
26940
26941 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26942
26943         * config/aarch64/aarch64-option-extensions.def (rcpc): New.
26944         * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
26945
26946 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26947
26948         * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
26949         feature string.
26950
26951 2017-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
26952
26953         * config/aarch64/aarch64-cores.def: Rearrange to sort by
26954         architecture, then by implementer ID.
26955         * config/aarch64/aarch64-tune.md: Regenerate.
26956
26957 2017-06-20  Richard Biener  <rguenther@suse.de>
26958
26959         PR middle-end/81097
26960         * fold-const.c (split_tree): Fold to type before negating.
26961
26962 2017-06-20  David Malcolm  <dmalcolm@redhat.com>
26963
26964         * diagnostic-show-locus.c
26965         (selftest::test_fixit_deletion_affecting_newline): New function.
26966         (selftest::diagnostic_show_locus_c_tests): Call it.
26967
26968 2017-06-20  Andreas Schwab  <schwab@suse.de>
26969
26970         PR target/80970
26971         * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
26972         instead of "+d".
26973
26974 2017-06-20  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
26975
26976         * config/arm/arm-c.c (arm_cpu_builtins): New block to define
26977         __ARM_FEATURE_COPROC according to support.
26978
26979 2017-06-20  Jakub Jelinek  <jakub@redhat.com>
26980
26981         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
26982         Rewritten to avoid overflow for > 32-bit pointers.
26983
26984         PR sanitizer/81125
26985         * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
26986         by removing enum keyword.
26987         (ubsan_type_descriptor): Likewise.  Formatting fix.
26988
26989         PR target/81121
26990         * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
26991         splitter): Require TARGET_SSE2 in the condition.
26992
26993 2017-06-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
26994
26995         PR target/79799
26996         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
26997         for doing vector set of SFmode on ISA 3.0.
26998         * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
26999         (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
27000         element.
27001         (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
27002         SFmode value into a V4SF variable that was extracted from another
27003         V4SF variable without converting the element to double precision
27004         and back to single precision vector format.
27005         (vsx_insert_extract_v4sf_p9_2): Likewise.
27006
27007 2017-06-19  Jakub Jelinek  <jakub@redhat.com>
27008
27009         * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
27010         in UWHI to avoid undefined overflow.
27011
27012         PR sanitizer/81125
27013         * ubsan.h (enum ubsan_encode_value_phase): New.
27014         (ubsan_encode_value): Change second argument to
27015         enum ubsan_encode_value_phase with default value of
27016         UBSAN_ENCODE_VALUE_GENERIC.
27017         * ubsan.c (ubsan_encode_value): Change second argument to
27018         enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
27019         adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
27020         create_tmp_var_raw instead of create_tmp_var and use a
27021         TARGET_EXPR.
27022         (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
27023         instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
27024         ubsan_encode_value callers.
27025
27026         PR sanitizer/81111
27027         * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
27028         use create_tmp_var_raw instead of create_tmp_var, mark it addressable
27029         just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
27030
27031 2017-06-19  Richard Biener  <rguenther@suse.de>
27032
27033         PR middle-end/81118
27034         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
27035         estimates if we changed anything.
27036
27037 2017-06-19  Richard Biener  <rguenther@suse.de>
27038
27039         PR tree-optimization/80887
27040         * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
27041         (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
27042         simplified lookups, then reset mprts_hook.
27043         (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
27044         simplifying.
27045         (try_to_simplify): Likewise.
27046
27047 2017-06-19  Martin Liska  <mliska@suse.cz>
27048
27049         PR sanitizer/80879
27050         * gimplify.c (gimplify_switch_expr):
27051         Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
27052
27053 2017-06-19  Martin Liska  <mliska@suse.cz>
27054
27055         * doc/install.texi: Document that PGO runs in 4 stages.
27056
27057 2017-06-19  Martin Liska  <mliska@suse.cz>
27058
27059         PR ipa/80732
27060         * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
27061         to dispatcher function name.
27062         * multiple_target.c (replace_function_decl): New function.
27063         (create_dispatcher_calls): Redirect both edges and references.
27064
27065 2017-06-19  Jan Hubicka <hubicka@ucw.cz>
27066
27067         * profile-count.c (profile_count::dump): Dump quality.
27068         (profile_count::differs_from_p): Update for unsigned val.
27069         * profile-count.h (profile_count_quality): New enum.
27070         (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
27071
27072 2017-06-19  Richard Biener  <rguenther@suse.de>
27073
27074         * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
27075         struct function as arg.
27076         (estimate_numbers_of_iterations): Export overload with loop arg.
27077         (free_numbers_of_iterations_estimates_loop): Use an overload of
27078         free_numbers_of_iterations_estimates instead.
27079         * tree-cfg.c (remove_bb): Adjust.
27080         * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
27081         * tree-parloops.c (gen_parallel_loop): Likewise.
27082         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
27083         Likewise.
27084         (tree_unroll_loops_completely): Likewise.
27085         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
27086         Use an overload instead and export.
27087         (estimated_loop_iterations): Adjust.
27088         (max_loop_iterations): Likewise.
27089         (likely_max_loop_iterations): Likewise.
27090         (estimate_numbers_of_iterations): Take struct function as arg
27091         and adjust.
27092         (loop_exits_before_overflow): Adjust.
27093         (free_numbers_of_iterations_estimates_loop): Use an overload.
27094         * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
27095         * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
27096
27097 2017-06-19  Richard Biener  <rguenther@suse.de>
27098
27099         PR ipa/81112
27100         * ipa-prop.c (find_constructor_constant_at_offset): Handle
27101         RANGE_EXPR conservatively.
27102
27103 2017-06-16  Carl Love  <cel@us.ibm.com>
27104
27105         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
27106         definitions for vec_float, vec_float2, vec_floato,
27107         vec_floate built-ins.
27108         * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
27109         for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
27110         floate.
27111         * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
27112         FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
27113         UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
27114         * config/altivec.md (define_insn "p8_vmrgew_<mode>",
27115         define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
27116         * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
27117         vec_floato): Add builtin defines.
27118         * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
27119         Update the built-in documentation file for the new built-in
27120         functions.
27121
27122 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27123
27124         * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
27125         (mthumb): Mark as the negative of -marm.
27126
27127 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27128
27129         * doc/invoke.texi (ARM Options, -mcpu): Document supported
27130         extension options.
27131         (ARM Options, -mtune): Document that this accepts the same
27132         extension options as -mcpu.
27133         (ARM Options, -mfpu): Document addition of -mfpu=auto.
27134
27135 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27136
27137         * doc/invoke.texi (ARM Options, -march=): Document new syntax and
27138         permitted extensions.
27139
27140 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27141
27142         * config/arm/arm-cpus.in (armv7): Add extension +nofp.
27143         (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
27144         (armv8-m.main): Add option +nodsp.
27145         * config/arm/arm-cpu-cdata.h: Regenerated.
27146
27147 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27148
27149         * config/arm/t-fuchsia: New file.
27150         * config.gcc (arm*-*-fuchsia*): Use it.
27151
27152 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27153
27154         * config/arm/t-symbian: Rewrite for new option infrastructure.
27155
27156 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27157
27158         * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
27159         (MULTILIB_REQUIRED): Likewise.
27160
27161 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27162
27163         * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
27164         (MULTILIB_RESUE): Likewise.
27165         (MULTILIB_MATCHES): Likewise.
27166         (MULTLIB_REQUIRED): Likewise.
27167
27168 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27169
27170         * config/arm/t-rtems: Rewrite for new option framework.
27171
27172 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27173
27174         * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
27175         (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
27176         (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
27177         (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
27178         * config/arm/t-multilib: ... here.
27179         (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
27180         (MULTILIB_MATCHES): Use armv7 libraries for armv7-r.  Also use for
27181         armv7-a and armv8*-a when A-profile libraries have not been built.
27182         * config/arm/t-rmprofile: Rewrite.
27183
27184 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27185
27186         * genmultilib (multilib_reuse): Allow an explicit period to be escaped
27187         with a backslash.  Remove the backslash after substituting unescaped
27188         periods.
27189         * doc/fragments.texi (MULTILIB_REUSE): Document it.
27190
27191 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27192
27193         * config.gcc: (arm*-*-*): When building a-profile libraries, force
27194         the driver to pass through the default setting of -mfloat-abi.
27195         * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
27196         rather than NULL.
27197         * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
27198         (all_feat_combs): New rule.
27199         (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories.  Rework
27200         default libraries.
27201         * config/arm/t-aprofile: Rewrite.
27202
27203 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27204
27205         * config/arm/arm.h (FPUTYPE_AUTO): Define.
27206         * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
27207         fpu is not specified by the user/command-line.
27208         * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
27209         * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
27210         * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
27211         * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
27212         * common/config/arm/arm-common.c (arm_canon_arch_option): Use
27213         FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
27214
27215 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27216
27217         * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
27218         * config/arm/t-arm-elf: Rewritten.
27219
27220 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27221
27222         * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
27223         have some floating-point instructions.
27224         (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
27225         (TARGET_MAYBE_HARD_FLOAT): New macro.
27226         * config/arm/arm-builtins.c (arm_init_builtins): Use
27227         TARGET_MAYBE_HARD_FLOAT.
27228         * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
27229
27230 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27231
27232         * common/config/arm/arm-common.c: Define INCLUDE_LIST.
27233         (configargs.h): Include it.
27234         (arm_print_hint_for_fpu_option): New function.
27235         (arm_parse_fpu_option): New function.
27236         (candidate_extension): New class.
27237         (arm_canon_for_multilib): New function.
27238         * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
27239         (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
27240         (ARCH_CANONICAL_SPECS): New macro.
27241         (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
27242
27243 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27244
27245         * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
27246         are set after handling multilib fragments.  Set target_cpu_default2
27247         from with_cpu.
27248
27249 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27250
27251         * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
27252         cpu name.
27253         (arm*-*-*): Set target_cpu_default2 to a quoted string.
27254         * config/arm/parsecpu.awk (check_cpu): Validate any extension
27255         options.
27256         (check_arch): Likewise.
27257         * config/arm/arm.c (arm_configure_build_target): Handle
27258         TARGET_CPU_DEFAULT being a string constant.  Scan any feature
27259         options in the default.
27260
27261 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27262
27263         * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
27264         when an option is an alias of another.
27265         * config/arm/parsecpu.awk (optalias): New parser token.
27266         (gen_comm_data): Mark non-alias options as such.  Emit entries
27267         for extension aliases.
27268         * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
27269         (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
27270         (armv6kz, armv6zk, armv6t2): Likewise.
27271         (armv7): Make vfpv3-d16 an alias.
27272         (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases.  Sort in
27273         canonical order.
27274         (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
27275         Sort in canonical order.
27276         (armv8-a): Sort in canonical order.
27277         (armv8.1-a, armv8.2-a):  Likewise.
27278         (generic-armv7-a): Make neon and neon-vfpv3 aliases.  Sort in
27279         canonical order.
27280         (cortex-a9): Sort in canonical order.
27281         * config/arm/arm.c (selftests.h): Include it.
27282         (arm_test_cpu_arch_data): New function.
27283         (arm_run_self_tests): New function.
27284         (TARGET_RUN_TARGET_SELFTESTS): Redefine.
27285         (targetm): Move declaration to the end of the file.
27286         * arm-cpu-cdata.h: Regenerated.
27287
27288 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27289
27290         * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
27291         call to target_mode_check describing the type of option passed.
27292         * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
27293         (arm_target_thumb_only): Use arm_parse_arch_option_name or
27294         arm_parse_cpu_option_name to match parameters against list of
27295         available targets.
27296         * config/arm/parsecpu.awk (gen_comm_data): Don't generate
27297         arm_arch_core_flags data structure.
27298         * config/arm/arm-cpu_cdata.h: Regenerated.
27299
27300 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27301
27302         * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
27303         config/arm/arm.c.
27304         (arm_print_hint_for_cpu_option): Likewise.
27305         (arm_print_hint_for_arch_option): Likewise.
27306         (arm_parse_cpu_option_name): Likewise.
27307         (arm_parse_arch_option_name): Likewise.
27308         * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
27309         of entries in the all_fpus list.
27310         * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
27311         (arm_parse_cpu_option_name): Declare.
27312         (arm_parse_arch_option_name): Declare.
27313         (arm_parse_option_features): Declare.
27314         (arm_intialize_isa): Declare.
27315         * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
27316         data tables to ...
27317         (gen_comm_data): ... here.  Make definitions non-static.
27318         * config/arm/arm-cpu-data.h: Regenerated.
27319         * config/arm/arm-cpu-cdata.h: Regenerated.
27320
27321 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27322
27323         * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
27324         (cpu_arch_extension): New structure.
27325         (cpu_arch_option, arch_option, cpu_option): New structures.
27326         * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
27327         architecture types.
27328         (gen_data): Generate new format data tables.
27329         * config/arm/arm.c (cpu_tune): New structure.
27330         (cpu_option, processors): Delete.
27331         (arm_print_hint_for_core_or_arch): Delete.  Replace with ...
27332         (arm_print_hint_for_cpu_option): ... this and ...
27333         (arm_print_hint_for_arch_option): ... this.
27334         (arm_parse_arch_cpu_name): Delete.  Replace with ...
27335         (arm_parse_cpu_option_name): ... this and ...
27336         (arm_parse_arch_option_name): ... this.
27337         (arm_unrecognized_feature): Change type of target parameter to
27338         cpu_arch_option.
27339         (arm_parse_arch_cpu_features): Delete.  Replace with ...
27340         (arm_parse_option_features): ... this.
27341         (arm_configure_build_target): Rework to use new configuration data
27342         tables.
27343         (arm_print_tune_info): Rework for new configuration data tables.
27344         * config/arm/arm-cpu-data.h: Regenerated.
27345         * config/arm/arm-cpu.h: Regenerated.
27346
27347 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27348
27349         * Makefile.in (OBJS): Move sbitmap.o from here ...
27350         (OBJS-libcommon): ... to here.
27351
27352 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27353
27354         * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
27355         (ISA_ALL_CRYPTO): New macro.
27356         (ISA_ALL_SIMD): New macro
27357         (ISA_ALL_FP): New macro.
27358         * config/arm/arm.c (fpu_bitlist): Update initializer.
27359         * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
27360         simd or fp.
27361         (arm9e): Add fpu.  Add option for nofp
27362         (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
27363         (arm926ej-s, arm1026ej-s): Likewise.
27364         (generic-armv7-a): Add fpu.  Add options for simd, vfpv3, vfpv3-d16,
27365         vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
27366         neon-fp16, neon-vfpv4, nofp and nosimd.
27367         (cortex-a5, cortex-a7): Add fpu.  Add options for nosimd and nofp.
27368         (cortex-a8): Add fpu.  Add option for nofp.
27369         (cortex-a9): Add fpu.  Add options for nosimd and nofp.
27370         (cortex-a12, cortex-a15, cortex-a17): Add fpu.  Add option for nofp.
27371         (cortex-r4f): Add fpu.
27372         (cortex-r5): Add fpu.  Add options for nofp.dp and nofp.
27373         (cortex-r7): Use idiv option from architecture.  Add fpu.  Add option
27374         for nofp.
27375         (cortex-r8): Likewise.
27376         (cortex-m4): Add fpu.  Add option for nofp.
27377         (cortex-a15.cortex-a7): Add fpu.  Add option for nofp.
27378         (cortex-a17.cortex-a7): Likewise.
27379         (cortex-a32): Add fpu.  Add options for crypto and nofp.
27380         (cortex-a35, cortex-a53): Likewise.
27381         (cortex-a57): Add fpu.  Add option for crypto.
27382         (cortex-a72, cortex-a73): Likewise.
27383         (exynos-m1): Likewise.
27384         (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
27385         (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
27386         (cortex-m33): Add fpu.  Add option for nofp.
27387         * config/arm/arm-cpu-cdata.h: Regenerated
27388         * config/arm/arm-cpu-data.h: Regenerated.
27389
27390 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27391
27392         * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
27393         (armv5te, armv5tej): Likewise.
27394         (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
27395         (armv7): Add options fp and vfpv3-d16.
27396         (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
27397         vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
27398         nofp and nosimd.
27399         (armv7ve): Likewise.
27400         (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
27401         (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
27402         (armv8-a): Add nocrypto option.
27403         (armv8.1-a, armv8.2-a): Likewise.
27404         (armv8-m.main): add options fp, fp.dp and nofp.
27405
27406 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27407
27408         * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
27409         nofp.
27410         (armv8-a+crc): Delete.
27411         (armv8.1-a): Add options simd, crypto and nofp.
27412         (armv8.2-a): Add options fp16, simd, crypto and nofp.
27413         (armv8.2-a+fp16): Delete.
27414         (armv8-m.main): Add option dsp.
27415         (armv8-m.main+dsp): Delete.
27416         (cortex-a8): Add fpu.  Add nofp option.
27417         (cortex-a9): Add fpu.  Add nofp and nosimd options.
27418         * config/arm/parsecpu.awk (gen_data): Generate option tables and
27419         link to main cpu and architecture data structures.
27420         (gen_comm_data): Only put isa attributes from the main architecture
27421         in common tables.
27422         (option): New statement for architecture and CPU entries.
27423         * arm.c (struct cpu_option): New structure.
27424         (struct processors): Add entry for options.
27425         (arm_unrecognized_feature): New function.
27426         (arm_parse_arch_cpu_name): Ignore any characters after the first
27427         '+' character.
27428         (arm_parse_arch_cpu_feature): New function.
27429         (arm_configure_build_target): Separate out any CPU and architecture
27430         features and parse separately.  Don't error out if -mfpu=auto is
27431         used with only an architecture string.
27432         (arm_print_asm_arch_directives): New function.
27433         (arm_file_start): Call it.
27434         * config/arm/arm-cpu-cdata.h: Regenerated.
27435         * config/arm/arm-cpu-data.h: Likewise.
27436         * config/arm/arm-tables.opt: Likewise.
27437
27438 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27439
27440         * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
27441         assembler when it is not -mfpu=auto.
27442
27443 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27444
27445         * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
27446         (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
27447         (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
27448         (ASM_CPU_SPEC): Rewrite.
27449         (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
27450         (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef.  Use
27451         MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS.  Remove
27452         reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
27453         * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
27454         copied string is NUL-terminated.  Also strip any characters prefixed
27455         by '+'.
27456         (arm_rewrite_selected_arch): New function.
27457         (arm_rewrite_march): New function.
27458
27459 2017-06-16  Richard Earnshaw  <rearnsha@arm.com>
27460
27461         * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
27462         (x_arm_cpu_string, x_arm_tune_string): Likewise.
27463         (march, mcpu, mtune): Convert to string-based options.
27464         * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
27465         (arm_parse_arch_cpu_name): New function.
27466         (arm_configure_build_target): Use arm_parse_arch_cpu_name to
27467         identify selected architecture or CPU.
27468         (arm_option_save): New function.
27469         (TARGET_OPTION_SAVE): Redefine.
27470         (arm_option_restore): Restore string options.
27471         (arm_option_print): Print string options.
27472
27473 2017-06-16  Martin Sebor  <msebor@redhat.com>
27474
27475         PR tree-optimization/80933
27476         PR tree-optimization/80934
27477         * builtins.c (fold_builtin_3): Do not handle bcmp here.
27478         * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
27479         (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
27480         (gimple_fold_builtin): Call them.
27481
27482 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27483
27484         * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
27485         as unlikely; update profile.
27486
27487 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27488
27489         * predict.c (force_edge_cold): Handle declaring edges impossible
27490         more aggresively.
27491
27492 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27493
27494         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
27495         profile.
27496         (try_unroll_loop_completely): Fix reporting.
27497
27498 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27499
27500         * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
27501
27502 2017-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
27503
27504         PR target/71778
27505         * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
27506         if given a non-constant argument for an intrinsic which requires a
27507         constant.
27508
27509 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27510
27511         * profile.c (compare_freqs): New function.
27512         (branch_prob): Sort edge list.
27513         (find_spanning_tree): Assume that the list is priority sorted.
27514
27515 2017-06-16  Richard Biener  <rguenther@suse.de>
27516
27517         PR tree-optimization/81090
27518         * passes.def (pass_record_bounds): Remove.
27519         * tree-pass.h (make_pass_record_bounds): Likewise.
27520         * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
27521         make_pass_record_bounds): Likewise.
27522         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
27523         not free niter estimates at the beginning but at the end.
27524         * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
27525
27526 2017-06-16  Richard Biener  <rguenther@suse.de>
27527
27528         * tree-switch-conversion.c (emit_case_bit_tests): Adjust
27529         initializer to workaround ICE in host GCC 4.8.
27530
27531 2017-06-16  Jan Hubicka  <hubicka@ucw.cz>
27532
27533         * ipa-inline-transform.c (update_noncloned_frequencies): Update also
27534         counts.
27535         (clone_inlined_nodes): Update.
27536
27537 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27538
27539         * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
27540         prefetch settings, and enable prefetching by default at -O3.
27541
27542 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27543
27544         * config/aarch64/aarch64.c (aarch64_override_options_internal):
27545         Set flag_prefetch_loop_arrays according to tuning data.
27546
27547 2017-06-16  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
27548
27549         * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
27550         New tune structure.
27551         (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
27552         [Unrelated to main purpose of the patch] Place the pointer field last
27553         to enable type checking errors when tune structure are wrongly merged.
27554         * config/aarch64/aarch64.c (generic_prefetch_tune,)
27555         (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
27556         (thunderx2t99_prefetch_tune): New tune constants.
27557         (tune_params *_tunings): Update all tunings (no functional change).
27558         (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
27559         PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
27560         from tunings structures.
27561
27562 2017-06-16  Jakub Jelinek  <jakub@redhat.com>
27563
27564         PR sanitizer/81094
27565         * ubsan.c (instrument_null): Add T argument, use it instead
27566         of computing it based on IS_LHS.
27567         (instrument_object_size): Likewise.
27568         (pass_ubsan::execute): Adjust instrument_null and
27569         instrument_object_size callers to pass gimple_get_lhs or
27570         gimple_assign_rhs1 result to it.  Use instrument_null instead of
27571         calling get_base_address and instrument_mem_ref.  Handle
27572         aggregate call arguments for object-size sanitization.
27573
27574 2017-06-16  Yury Gribov  <tetra2005@gmail.com>
27575
27576         PR tree-optimization/81089
27577         * tree-vrp.c (is_masked_range_test): Validate operands of
27578         subexpression.
27579
27580 2017-06-15  Martin Sebor  <msebor@redhat.com>
27581
27582         PR c++/80560
27583         * dumpfile.c (dump_register): Avoid calling memset to initialize
27584         a class with a default ctor.
27585         * gcc.c (struct compiler): Remove const qualification.
27586         * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
27587         * hash-table.h: Ditto.
27588         * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
27589           assignment.
27590         * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
27591         * omp-low.c (lower_omp_ordered_clauses): Replace memset with
27592         default ctor.
27593         * params.h (struct param_info): Make struct members non-const.
27594         * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
27595         with default initialization.
27596         * vec.h (vec_copy_construct, vec_default_construct): New helper
27597         functions.
27598         (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
27599         with vec_copy_construct.
27600         (vect<T>::quick_grow_cleared): Replace memset with default ctor.
27601         (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
27602         * doc/invoke.texi (-Wclass-memaccess): Document.
27603
27604 2017-06-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
27605
27606         * emit-rtl.h (is_leaf): Update comment about local
27607         register allocator.
27608
27609 2017-06-15  Jozef Lawrynowicz   <jozef.l@somniumtech.com>
27610
27611         PR target/78818
27612         * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
27613         for a variable to have a section before checking if the section has a
27614         name.
27615         Set section to.persistent if persistent attribute is set.
27616         Warn if .persistent attribute is used on an automatic variable.
27617
27618 2017-06-15  Eric Botcazou  <ebotcazou@adacore.com>
27619
27620         PR rtl-optimization/80474
27621         * reorg.c (update_block): Do not ignore instructions in a delay slot.
27622
27623 2017-06-15  Segher Boessenkool  <segher@kernel.crashing.org>
27624
27625         * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
27626         of REGNO.
27627
27628 2017-06-14  Maciej W. Rozycki  <macro@imgtec.com>
27629
27630         * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
27631         (casesi): Emit bounds checking as RTL.
27632         (casesi_internal_mips16_<mode>): Remove bounds checking.
27633
27634 2017-06-14  Max Filippov  <jcmvbkbc@gmail.com>
27635
27636         * config/xtensa/xtensa.c (xtensa_option_override): Append
27637         MASK_CONST16 to target_flags in the absence of TARGET_L32R.
27638         (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
27639          xtensa_doloop_hooks): Define unconditionally.
27640         (xtensa_reorg_loops): Only call reorg_loops in the presence of
27641         TARGET_LOOPS.
27642         * config/xtensa/xtensa.h (TARGET_L32R): New definition.
27643         (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
27644         for it in xtensa_option_override.
27645         (HARD_FRAME_POINTER_IS_FRAME_POINTER,
27646          HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
27647
27648 2017-06-14  Boris Kolpackov  <boris@codesynthesis.com>
27649
27650         * doc/cppopts.texi: Document '-' special value to -MF.
27651
27652 2017-06-14  Wilco Dijkstra  <wdijkstr@arm.com>
27653
27654         * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
27655         (cortex_a53_fconst): Likewise.
27656         (cortex_a53_fpmul): Likewise.
27657         (cortex_a53_f_load_64): Likewise.
27658         (cortex_a53_f_load_many): Likewise.
27659         (cortex_a53_advsimd_alu): Likewise.
27660         (cortex_a53_advsimd_alu_q): Likewise.
27661         (cortex_a53_advsimd_mul): Likewise.
27662         (cortex_a53_advsimd_mul_q): Likewise.
27663         (fpmac bypass): Add new bypass for fpmac-fpmac case.
27664         Add missing fmul, r2f_cvt and fconst cases.
27665
27666 2017-06-14  Richard Biener  <rguenther@suse.de>
27667
27668         PR middle-end/81088
27669         * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
27670         literal constants.
27671         (fold_binary_loc): When associating do not treat pre-existing
27672         TREE_OVERFLOW on literal constants as a reason to allow
27673         TREE_OVERFLOW on associated literal constants.
27674
27675 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27676
27677         * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
27678         (MASK_FEATURES): New macro.
27679         * config/sparc/sparc.c (sparc_option_override): Remove the special
27680         handling of -mfpu and generalize it to all MASK_FEATURES switches.
27681
27682 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27683
27684         * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
27685         a division of 0 if non-call exceptions are enabled.
27686
27687 2017-06-14  Andrew Pinski  <apinski@cavium.com>
27688             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
27689
27690         PR target/71663
27691         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
27692         Improve vector initialization code gen for only variable case.
27693
27694 2017-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27695
27696         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
27697
27698 2017-06-14  Richard Biener  <rguenther@suse.de>
27699
27700         PR tree-optimization/81083
27701         * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
27702         as values.
27703
27704 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27705
27706         * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
27707         (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
27708         * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
27709         * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete.  Adjust former use.
27710         * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
27711         * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
27712
27713 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27714
27715         * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
27716         * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
27717
27718 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27719
27720         * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
27721
27722 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27723
27724         * config/rs6000/t-rtems: Don't handle SPE.
27725
27726 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27727
27728         * config/rs6000/t-linux: Don't handle SPE.
27729
27730 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27731
27732         * config/rs6000/eabispe.h: Delete file.
27733
27734 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27735
27736         * config/rs6000/t-spe: Delete file.
27737
27738 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27739
27740         * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
27741         (rs6000_legitimate_offset_address_p): Return false for anything in
27742         V2SImode or V2SFmode.
27743
27744 2017-06-13  Segher Boessenkool  <segher@kernel.crashing.org>
27745
27746         * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
27747         except V2SF and V2SI.  Rearrange the vector modes, and add comments.
27748         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
27749         and V4HImode.
27750         (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
27751         (rs6000_legitimate_offset_address_p): Ditto.
27752         (rs6000_emit_move): Ditto.
27753         (rs6000_init_builtins): Remove V4HI_type_node.
27754
27755 2017-06-13  Martin Liska  <mliska@suse.cz>
27756
27757         PR sanitize/78204
27758         * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
27759         (gate_asan): Likewise.
27760         * asan.h (asan_no_sanitize_address_p): Remove the function.
27761         (sanitize_flags_p): New function.
27762         * builtins.def: Fix coding style.
27763         * common.opt: Use renamed enum value.
27764         * convert.c (convert_to_integer_1): Use sanitize_flags_p.
27765         * doc/extend.texi: Document no_sanitize attribute.
27766         * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
27767         to SANITIZE_UNDEFINED_NONDEFAULT.
27768         * gcc.c (sanitize_spec_function): Use the renamed enum value.
27769         * gimple-fold.c (optimize_atomic_compare_exchange_p):
27770         Use sanitize_flags_p.
27771         * gimplify.c (gimplify_function_tree): Likewise.
27772         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
27773         * opts.c (parse_no_sanitize_attribute): New function.
27774         (common_handle_option): Use renamed enum value.
27775         * opts.h (parse_no_sanitize_attribute): Declare.
27776         * tree.c (sanitize_flags_p): New function.
27777         * tree.h: Declared here.
27778         * tsan.c: Use sanitize_flags_p.
27779         * ubsan.c (ubsan_expand_null_ifn): Likewise.
27780         (instrument_mem_ref): Likewise.
27781         (instrument_bool_enum_load): Likewise.
27782         (do_ubsan_in_current_function): Remove the function.
27783         (pass_ubsan::execute): Use sanitize_flags_p.
27784         * ubsan.h: Remove do_ubsan_in_current_function
27785         * tree-cfg.c (print_no_sanitize_attr_value): New function.
27786         (dump_function_to_file): Use it here.
27787
27788 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27789
27790         PR tree-optimization/80803
27791         PR tree-optimization/81063
27792         * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
27793         (propagate_subaccesses_across_link): Enqueue subtree whenever
27794         necessary instead of relying on the caller.
27795
27796 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27797
27798         * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
27799         that have a first_link.
27800         (sort_and_splice_var_accesses): Do not check first_link before
27801         enquing.
27802         (subtree_mark_written_and_enqueue): Likewise.
27803         (propagate_all_subaccesses): Likewise and do not stop at first
27804         parent with a first_link.
27805
27806 2017-06-13  Martin Jambor  <mjambor@suse.cz>
27807
27808         * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
27809         instead of f.
27810
27811 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27812
27813         * match.pd: New pattern.
27814
27815 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27816
27817         * tree-vrp.c (is_masked_range_test): New function.
27818         (register_edge_assert_for): Determine ranges for
27819         some bit tests.
27820
27821 2017-06-13  Yury Gribov  <tetra2005@gmail.com>
27822
27823         PR tree-optimization/67328
27824         * fold-const.c (maskable_range_p): New function.
27825         (build_range_check): Generate bittests if possible.
27826
27827 2017-06-13  Martin Liska  <mliska@suse.cz>
27828
27829         * gimple-pretty-print.c (dump_probability): Add new argument.
27830         (dump_edge_probability): Dump both probability and count.
27831         (dump_gimple_label): Likewise.
27832         (dump_gimple_bb_header): Likewise.
27833
27834 2017-06-13  Georg-Johann Lay  <avr@gjlay.de>
27835
27836         PR target/81072
27837         * config/avr/avr-devices.c: Fix indentation.
27838         * config/avr/gen-avr-mmcu-specs.c: Dito.
27839
27840 2017-06-13  Richard Biener  <rguenther@suse.de>
27841
27842         * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
27843         instead get vector type from stmt_info.
27844         (vectorizable_reduction): Adjust.  Remove dead code.
27845
27846 2017-06-13  Richard Biener  <rguenther@suse.de>
27847
27848         PR middle-end/81065
27849         * fold-const.c (extract_muldiv_1): Remove bogus distribution
27850         case of C * (x * C2 + C3).
27851         (fold_addr_of_array_ref_difference): Properly fold index difference.
27852
27853 2017-06-12  David S. Miller  <davem@davemloft.net>
27854
27855         PR target/80968
27856         * config/sparc/sparc.md (return expander): Emit frame blockage if
27857         function uses alloca.
27858
27859 2017-06-12  Richard Sandiford  <richard.sandiford@linaro.org>
27860
27861         * combine.c (make_field_assignment): Check len rather than the mode
27862         precision when calling force_to_mode.
27863
27864 2017-06-12  Georg-Johann Lay  <avr@gjlay.de>
27865
27866         Support multilibs and devices that see flash in RAM address range.
27867
27868         PR target/81072
27869         * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
27870         (avr_mcu_t) <flash_pm_offset>: New field.
27871         (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
27872         * config/avr/avr.h (AVR_SHORT_CALLS): New define.
27873         (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
27874         (AVR_TINY_PM_OFFSET): Remove macro.
27875         * config/avr/avr.opt (-mshort-calls): New option.
27876         * config/avr/gen-avr-mmcu-specs.c (print_mcu)
27877         [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
27878         * config/avr/avr-c.c (avr_cpu_cpp_builtins)
27879         <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
27880         <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
27881         instead of avr_arch->have_jmp_call.
27882         <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
27883         [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
27884         avr_arch->flash_pm_offset to define.
27885         * config/avr/avr-devices.c (avr_arch_types): Add initializers for
27886         new field flash_pm_offset.  Add entry for avrxmega3.
27887         (avr_texinfo): Add entry for avrxmega3.
27888         * config/avr/avr-mcus.def: Add entries for: avrxmega3,
27889         attiny212, attiny214,
27890         attiny412, attiny414, attiny416, attiny417,
27891         attiny814, attiny816, attiny817,
27892         attiny1614, attiny1616, attiny1617,
27893         attiny3214, attiny3216, attiny3217.
27894         * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
27895         avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
27896         (avr_print_operand_address) [AVR_TINY]: Same.
27897         (avr_asm_init_sections) <readonly_data_section>: Only patch
27898         callback if avr_arch->flash_pm_offset = 0.
27899         (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
27900         for rodata if avr_arch->flash_pm_offset != 0.
27901         (avr_encode_section_info) [AVR_TINY]: Adjust comment.
27902         * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
27903         (opts) [AVR_ISA_RCALL]: Append opt_rcall.
27904         (m_options): Append opt_rcall.
27905         (m_dirnames): Append dir_rcall.
27906         * config/avr/t-multilib: Regenerate.
27907
27908         * configure.ac [target=avr]: Check whether avrxmega3 default
27909         linker description file works as needed.
27910         * configure: Regenerate.
27911         * doc/avr-mmcu.texi: Regenerate.
27912         * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
27913         <__AVR_ARCH__>: Document avrxmega3 and 103.
27914         <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
27915         <__AVR_SHORT_CALLS__>: Document it.
27916         <__AVR_PM_BASE_ADDRESS__>: Document it.
27917         * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
27918         (AVR Variable Attributes) <progmem>: Document this is
27919         not needed for avrxmega3.
27920         (AVR Named Address Spaces) <__flash>: Dito.
27921
27922 2017-06-12  Jan Hubicka  <hubicka@ucw.cz>
27923
27924         * cgraph.c (cgraph_node::dump): Complain about profile insanities.
27925
27926 2017-06-12  Doug Rupp  <rupp@adacore.com>
27927
27928         * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
27929         Append vxworks-stdint.h to the tm_file list.
27930         * config/vxworks-stdint.h: New file.
27931
27932 2017-06-12  Martin Liska  <mliska@suse.cz>
27933
27934         PR tree-optimization/81041
27935         * tree-profile.c (gimple_gen_ic_func_profiler):
27936         Create an extra BB in profile-generate
27937         (gimple_gen_time_profiler): Likewise.
27938
27939 2017-06-12  Jakub Jelinek  <jakub@redhat.com>
27940
27941         PR tree-optimization/81003
27942         * tree-ssa-reassoc.c (force_into_ssa_name): New function.
27943         (update_range_test): Use it instead of force_gimple_operand_gsi.
27944
27945 2017-06-12  Richard Biener  <rguenther@suse.de>
27946
27947         PR tree-optimization/81053
27948         * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
27949         with backedge value not defined in loop.  Simplify def stmt
27950         compute.
27951
27952 2017-06-11  Tom de Vries  <tom@codesourcery.com>
27953
27954         PR target/79939
27955         * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
27956         Return true.
27957         (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
27958         nvptx_cannot_force_const_mem.
27959
27960 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27961
27962         * opts.c (finish_options): Move test for flag_split_stack after
27963         it has been initialized.
27964
27965 2017-06-11  Jason Merrill  <jason@redhat.com>
27966
27967         * tree.h (id_equal): New.
27968         * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
27969         omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
27970         instead of strcmp of IDENTIFIER_POINTER.
27971
27972 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27973
27974         * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
27975         (mark_all_inlined_calls_cdtor): Fix formating.
27976         (inline_transform): Rescale profile before inlining.
27977
27978 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
27979
27980         * cgraph.h (cgraph_edge::clone): Update prototype.
27981         * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
27982         (cgraph_node::create_clone): Update.
27983         (cgraph_node::create_version_clone): Update.
27984         * tree-inline.c (copy_bb): Update.
27985         (expand_call_inline): Update.
27986
27987 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27988
27989         * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
27990         factored out from ...
27991         (rs6000_emit_prologue): ... here.
27992
27993 2017-06-10  Segher Boessenkool  <segher@kernel.crashing.org>
27994
27995         * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
27996         factored out from ...
27997         (rs6000_emit_prologue): ... here.
27998
27999 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
28000
28001         * predict.c (drop_profile): Also drop individual bb/edge and cgraph
28002         edge counts.
28003         (handle_missing_profiles): Fix computation of tp_first_run.
28004         (counts_to_freqs): Do not touch freqs when count is 0.
28005
28006 2017-06-10  Jan Hubicka  <hubicka@ucw.cz>
28007
28008         * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
28009         profile.
28010
28011 2017-06-10  Tom de Vries  <tom@codesourcery.com>
28012
28013         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
28014         attributes): Document signal effective target.
28015
28016 2017-06-10  Tom de Vries  <tom@codesourcery.com>
28017
28018         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
28019         Document effective target stack_size.
28020
28021 2017-06-09  David Malcolm  <dmalcolm@redhat.com>
28022
28023         * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
28024         to the edit_context if they can be auto-applied.
28025
28026 2017-06-9  Ian Lance Taylor  <iant@golang.org>
28027
28028         * opts.c (finish_options): If -fsplit-stack, disable implicit
28029         -forder-blocks-and-partition.
28030         * doc/invoke.texi (Optimize Options): Document that when using
28031         -fsplit-stack -forder-blocks-and-partition is not implicitly
28032         enabled.
28033
28034 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
28035
28036         * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
28037         ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
28038         ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
28039         * builtins.def (abort, trap, unreachable): Declare cold.
28040         * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
28041         * tree-core.h (ECF_COLD): New.
28042         * tree.c (set_call_expr_flags): Handle ECF_COLD.
28043         (build_common_builtin_nodes): Mark unreachable and abort as cold.
28044
28045 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
28046
28047         * predict.c (unlikely_executed_stmt_p): Cleanup.
28048
28049 2017-06-09  Richard Biener  <rguenther@suse.de>
28050
28051         * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
28052         model if the ref is always written to.
28053
28054 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
28055
28056         * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
28057
28058 2017-06-09  Tamar Christina  <tamar.christina@arm.com>
28059
28060         * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
28061         than udiv.
28062
28063 2017-06-09  Tom de Vries  <tom@codesourcery.com>
28064
28065         PR target/80855
28066         * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
28067         "target cannot support label values" when encountering LABEL_REF.
28068
28069 2017-06-09  Martin Liska  <mliska@suse.cz>
28070
28071         * tree-profile.c (gimple_gen_ic_profiler): Update comment.
28072         (gimple_gen_ic_func_profiler): Emit direct comparison
28073         of __gcov_indirect_call_callee with NULL.
28074         (gimple_gen_time_profiler): Change probability from
28075         PROB_VERY_UNLIKELY to PROB_UNLIKELY.
28076
28077 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
28078
28079         * profile.c (edge_gcov_counts): Turn to pointer.
28080         (compute_branch_probabilities, compute_branch_probabilities): Update.
28081         (branch_prob): Do not clear edge_gcov_count.
28082         * profile.h (edge_gcov_counts): Turn to pointer.
28083         (edge_gcov_count): Update.
28084
28085 2017-06-09  Jan Hubicka  <hubicka@ucw.cz>
28086
28087         * gimple.h (gimple_check_failed): Mark cold.
28088
28089 2017-06-09  Richard Biener  <rguenther@suse.de>
28090
28091         PR tree-optimization/66623
28092         * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
28093         refactor check_reduction into two parts, properly computing
28094         whether we have to check reduction validity for outer loop
28095         vectorization.
28096
28097 2017-06-09  Richard Biener  <rguenther@suse.de>
28098
28099         PR tree-optimization/79483
28100         * graphite-scop-detection.c (order): New global.
28101         (get_order): Compute bb to order mapping that satisfies code
28102         generation constraints.
28103         (cmp_pbbs): New helper.
28104         (build_scops): Start domwalk at entry block, sort generated
28105         pbbs.
28106
28107 2017-06-09  Richard Biener  <rguenther@suse.de>
28108
28109         PR middle-end/81007
28110         * ipa-polymorphic-call.c
28111         (ipa_polymorphic_call_context::restrict_to_inner_class):
28112         Skip FIELD_DECLs with error_mark_node type.
28113         * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
28114         last again.
28115
28116 2017-06-09  Martin Liska  <mliska@suse.cz>
28117
28118         * predict.c (struct branch_predictor): New struct.
28119         (test_prediction_value_range): New test.
28120         (predict_c_tests): New function.
28121         * selftest-run-tests.c (selftest::run_tests): Run the function.
28122         * selftest.h: Declare new tests.
28123
28124 2017-06-09  Segher Boessenkool  <segher@kernel.crashing.org>
28125
28126         PR target/80966
28127         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
28128         gen_add3_insn did not fail.
28129         * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
28130         r0, construct that number in a temporary reg and add that reg to r0.
28131         If asked to put the result in r0 as well, fail.
28132
28133 2017-06-08  Will Schmidt  <will_schmidt@vnet.ibm.com>
28134
28135         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
28136         for early expansion of vec_eqv.
28137
28138 2017-06-08  Jakub Jelinek  <jakub@redhat.com>
28139
28140         PR middle-end/81005
28141         * ubsan.c (instrument_null): Avoid pointless code temporary.
28142         (pass_ubsan::execute): Instrument aggregate arguments of calls.
28143
28144 2017-06-08  Uros Bizjak  <ubizjak@gmail.com>
28145
28146         PR target/81015
28147         Revert:
28148         2016-12-14  Uros Bizjak  <ubizjak@gmail.com>
28149
28150         PR target/59874
28151         * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
28152         (*clzhi2): Ditto.
28153
28154 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28155
28156         * predict.c (unlikely_executed_edge_p): Move ahead.
28157         (probably_never_executed_edge_p): Use it.
28158
28159 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28160
28161         PR middle-end/79988
28162         * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
28163         gimple_call_builtin_p call.
28164
28165 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28166
28167         * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
28168         * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
28169         rtl_check_failed_type2, rtl_check_failed_code1,
28170         rtl_check_failed_code2, rtl_check_failed_code_mode,
28171         rtl_check_failed_block_symbol, cwi_check_failed_bounds,
28172         rtvec_check_failed_bounds, rtl_check_failed_flag,
28173         _fatal_insn_not_found, _fatal_insn): Likewise.
28174         * tree.h (tree_contains_struct_check_failed,
28175         tree_check_failed, tree_not_check_failed,
28176         tree_class_check_failed, tree_range_check_failed,
28177         tree_not_class_check_failed, tree_int_cst_elt_check_failed,
28178         tree_vec_elt_check_failed, phi_node_elt_check_failed,
28179         tree_operand_check_failed, omp_clause_check_failed,
28180         omp_clause_operand_check_failed, omp_clause_range_check_failed):
28181         Likewise.
28182
28183 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28184
28185         * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
28186         flag_branch_probabilities.
28187         * ipa-inline.c (edge_badness): Likewise.
28188         * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
28189         * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
28190         * predict.c (maybe_hot_frequency_p): Likewise.
28191         (probably_never_executed): Likewise.
28192         * sched-ebb.c (schedule_ebbs): Likewise.
28193         * sched-rgn.c (find_single_block_region): Likewise.
28194         * tracer.c (tail_duplicate): Likewise.
28195
28196 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28197
28198         * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
28199         longer requires x_flag_profile_use.
28200
28201 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28202
28203         * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
28204         instead of flag_reorder_blocks_and_partition.
28205         * dbxout.c (dbxout_function_end): Likewise.
28206         * dwarf2out.c (gen_subprogram_die): Likewise.
28207         * haifa-sched.c (sched_create_recovery_edges): Likewise.
28208         * hw-doloop.c (reorg_loops): Likewise.
28209         * varasm.c (assemble_start_function,
28210         assemble_end_function): Likewise.
28211         (decide_function_section): Do not check for
28212         flag_reorder_blocks_and_partition.
28213
28214 2017-06-08  Alexander Ivchenko  <alexander.ivchenko@intel.com>
28215
28216         * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
28217         New function.
28218         (chkp_get_hard_register_fake_addr_expr): Ditto.
28219         (chkp_build_addr_expr): Add check for hard reg case.
28220         (chkp_parse_array_and_component_ref): Ditto.
28221         (chkp_find_bounds_1): Ditto.
28222         (chkp_process_stmt): Don't generate bounds store for
28223         hard reg case.
28224
28225 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28226
28227         * predict.c (maybe_hot_bb_p): Do not check profile status.
28228         (maybe_hot_edge_p): Likewise.
28229         (probably_never_executed): Check for zero counts even if profile
28230         is not read.
28231         (unlikely_executed_edge_p): New function.
28232         (unlikely_executed_stmt_p): New function.
28233         (unlikely_executed_bb_p): New function.
28234         (set_even_probabilities): Use unlikely predicates.
28235         (combine_predictions_for_bb): Likewise.
28236         (predict_paths_for_bb): Likewise.
28237         (predict_paths_leading_to_edge): Likewise.
28238         (determine_unlikely_bbs): New function.
28239         (estimate_bb_frequencies): Use it.
28240         (compute_function_frequency): Use zero counts even if profile is
28241         not read.
28242         * profile-count.h: Fix typo.
28243
28244 2017-08-08  Julia Koval  <julia.koval@intel.com>
28245
28246         * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
28247         _mm512_mask_cvtsepi16_storeu_epi8,
28248         _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
28249         * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
28250         _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
28251         _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
28252         _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
28253         * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
28254         (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
28255         VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
28256         * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
28257         __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
28258         __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
28259         __builtin_ia32_pmovuswb256mem_mask,
28260         __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
28261         __builtin_ia32_pmovwb512mem_mask): New builtins.
28262
28263 2017-08-08  Julia Koval  <julia.koval@intel.com>
28264
28265         PR target/73350,80862
28266         * config/i386/subst.md (round): Fix round pattern.
28267         * config/i386/i386.c (ix86_erase_embedded_rounding):
28268         Fix erasing rounding for the fixed pattern.
28269
28270 2017-06-08  Jan Hubicka  <hubicka@ucw.cz>
28271
28272         * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
28273
28274 2017-06-08  Martin Liska  <mliska@suse.cz>
28275
28276         PR gcov-profile/80911
28277         * gcov.c (block_info::block_info): New constructor.
28278
28279 2017-06-07  Carl Love  <cel@us.ibm.com>
28280
28281         * config/rs6000/rs6000-c: The return type of the following
28282         built-in functions was implemented as int not long long.  Fix sign
28283         of return value for the unsigned version of vec_mulo and vec_mule.
28284         vector unsigned long long vec_bperm (vector unsigned long long,
28285                                              vector unsigned char)
28286         vector signed long long vec_mule (vector signed int,
28287                                           vector signed int)
28288         vector unsigned long long vec_mule (vector unsigned int,
28289                                             vector unsigned int)
28290         vector signed long long vec_mulo (vector signed int,
28291                                           vector signed int)
28292         vector unsigned long long vec_mulo (vector unsigned int,
28293                                             vector unsigned int)
28294         * doc/extend.texi: Fix the documentation for the built-in
28295         functions.
28296
28297 2017-06-07  Carl Love  <cel@us.ibm.com>
28298
28299         PR target/80982
28300         * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
28301         for BE.
28302
28303 2017-06-07  Carl Love  <cel@us.ibm.com>
28304
28305         * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
28306         support, Generate       doublehv for signed int/float for BE case only.
28307
28308 2017-06-07  Alexander Monakov  <amonakov@ispras.ru>
28309
28310         * doc/invoke.texi (mcx16): Rewrite.
28311
28312 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28313
28314         * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
28315         * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
28316         *mov<mode>_softfloat, and an anonymous splitter): Use
28317         nonimmediate_operand instead of rs6000_nonimmediate_operand.
28318
28319 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28320
28321         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
28322         SPEFSCR registers.
28323         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
28324         (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
28325         (rs6000_debug_reg_global): Adjust.
28326         (rs6000_init_hard_regno_mode_ok): Adjust.
28327         (rs6000_dbx_register_number): Adjust.
28328         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
28329         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
28330         Remove SPE_ACC and SPEFSCR.
28331         (REG_ALLOC_ORDER): Ditto.
28332         (FRAME_POINTER_REGNUM): Change to 111.
28333         (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
28334         (REG_CLASS_NAMES): Ditto.
28335         (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
28336         (REGISTER_NAMES): Ditto.
28337         (ADDITIONAL_REG_NAMES): Ditto.
28338         (rs6000_reg_names): Ditto.
28339         * config/rs6000/rs6000.md: Renumber some register number
28340         define_constants.
28341
28342 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28343
28344         * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
28345         registers.
28346         * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
28347         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
28348         to 117.
28349         (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
28350         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
28351         Delete the SPE high registers.
28352         (REG_ALLOC_ORDER): Ditto.
28353         (enum reg_class): Remove SPE_HIGH_REGS.
28354         (REG_CLASS_NAMES): Ditto.
28355         (REG_CLASS_CONTENTS): Delete the SPE high registers.
28356         (REGISTER_NAMES): Ditto.
28357         (rs6000_reg_names): Ditto.
28358         * doc/tm.texi.in: Remove SPE as example.
28359         * doc/tm.texi: Regenerate.
28360
28361 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28362
28363         * config/rs6000/8540.md (ppc8540_brinc): Delete.
28364         * config/rs6000/e500mc.md (e500mc_brinc): Delete.
28365         * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
28366         * config/rs6000/rs6000.md (type): Remove "brinc".
28367
28368 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28369
28370         * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
28371         (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
28372         * config/rs6000/linuxspe.h: Delete file.
28373         * config/rs6000/rs6000.md: Don't include spe.md.
28374         * config/rs6000/spe.h: Delete file.
28375         * config/rs6000/spe.md: Delete file.
28376         * config/rs6000/t-rs6000: Remove spe.md.
28377
28378 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28379
28380         * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
28381         (reg_or_none500mem_operand): Delete.
28382         * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
28383         instead of reg_or_none500mem_operand.
28384
28385 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28386
28387         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
28388         handling of SPE flags.
28389         * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
28390
28391 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28392
28393         * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
28394         SPE ABI handling.
28395         * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
28396         (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
28397         paired_divv2sf3): Similar.
28398         * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
28399         SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
28400         * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
28401         RS6000_BUILTIN_S.
28402         Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
28403         Rename the paired_* instruction patterns.
28404         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
28405         define __SPE__.
28406         * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
28407         * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
28408         (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
28409         spe_padding_size, and spe_64bit_regs_used.  Replace TARGET_SPE and
28410         TARGET_SPE_ABI with 0, simplify.  Replace SPE_VECTOR_MODE with
28411         PAIRED_VECTOR_MODE.
28412         (struct machine_function): Delete field spe_insn_chain_scanned_p.
28413         (spe_func_has_64bit_regs_p): Delete.
28414         (spe_expand_predicate_builtin): Delete.
28415         (spe_expand_evsel_builtin): Delete.
28416         (TARGET_DWARF_REGISTER_SPAN): Do not define.
28417         (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
28418         (invalid_e500_subreg): Delete.
28419         (rs6000_legitimize_address): Always force_reg op2 as well, for
28420         paired single memory accesses.
28421         (rs6000_member_type_forces_blk): Delete.
28422         (rs6000_spe_function_arg): Delete.
28423         (rs6000_expand_unop_builtin): Delete SPE handling.
28424         (rs6000_expand_binop_builtin): Ditto.
28425         (spe_expand_stv_builtin): Delete.
28426         (bdesc_2arg_spe): Delete.
28427         (spe_expand_builtin): Delete.
28428         (spe_expand_predicate_builtin): Delete.
28429         (spe_expand_evsel_builtin): Delete.
28430         (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
28431         (spe_init_builtins): Delete.
28432         (spe_func_has_64bit_regs_p): Delete.
28433         (savres_routine_name): Delete "info" parameter.  Adjust callers.
28434         (rs6000_emit_stack_reset): Ditto.
28435         (rs6000_dwarf_register_span): Delete.
28436         * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
28437         UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
28438         SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
28439         Delete.
28440         * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
28441         Delete.
28442         * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
28443         * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
28444         * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
28445         mulv2sf3, divv2sf3): Delete expanders.
28446
28447 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28448
28449         config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
28450
28451 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28452
28453         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
28454         * config/rs6000/rs6000.c: Ditto.
28455
28456 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28457
28458         * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
28459         * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
28460         comparison_operator.
28461
28462 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28463
28464         * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
28465         * config/rs6000/rs6000.opt: Ditto.
28466         * config/rs6000/t-rtems: Ditto.
28467
28468 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28469
28470         * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
28471         TARGET_E500_SINGLE by 0, simplify.
28472         * config/rs6000/rs6000.c: Ditto.
28473         (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
28474         (spe_build_register_parallel): Delete.
28475         * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
28476         TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
28477         * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
28478         TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
28479         (E500_CONVERT): Delete.
28480         * config/rs6000/spe.md: Remove many patterns and all define_constants.
28481
28482 2017-06-07  Segher Boessenkool  <segher@kernel.crashing.org>
28483
28484         * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
28485         * config/rs6000/dfp.md: Ditto.
28486         (negdd2, *negdd2_fpr): Merge.
28487         (absdd2, *absdd2_fpr): Merge.
28488         (negtd2, *negtd2_fpr): Merge.
28489         (abstd2, *abstd2_fpr): Merge.
28490         * config/rs6000/e500.h: Delete file.
28491         * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
28492         TARGET_FPRS by 1 and simplify.
28493         * config/rs6000/rs6000-c.c: Ditto.
28494         * config/rs6000/rs6000.c: Ditto.  Also replace TARGET_SF_SPE and
28495         TARGET_DF_SPE by 0.
28496         * config/rs6000/rs6000.h: Ditto.  Delete TARGET_SF_SPE and
28497         TARGET_DF_SPE.
28498         * config/rs6000/rs6000.md: Ditto.
28499         (floatdidf2, *floatdidf2_fpr): Merge.
28500         (move_from_CR_gt_bit): Delete.
28501         * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
28502         (E500_CR_IOR_COMPARE): Delete.
28503         (All patterns that require !TARGET_FPRS): Delete.
28504         * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
28505
28506 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28507
28508         * passes.def (pass_iv_canon): Move before pass_loop_distribution.
28509
28510 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28511
28512         * graphds.c (add_edge): Intitialize edge's attached data.
28513         (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
28514         pointer parameter.  Call pointed function on each edge during
28515         graph traversing.  Skip traversing the edge when the function
28516         returns true.
28517         (graphds_dfs, graphds_scc): Ditto.
28518         (for_each_edge): New parameter.  Pass the new parameter to callback
28519         function.
28520         * graphds.h (skip_edge_callback): New function pointer type.
28521         (graphds_dfs, graphds_scc): New function pointer parameter.
28522         (graphds_edge_callback, for_each_edge): New parameter.
28523
28524 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28525
28526         * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
28527         out code checking if runtime alias check is possible to below ...
28528         Call the new function.
28529         * tree-data-ref.c (runtime_alias_check_p): ... to new function.
28530         * tree-data-ref.h (runtime_alias_check_p): New decalaration.
28531
28532 2017-06-07  Marek Polacek  <polacek@redhat.com>
28533
28534         PR sanitizer/80932
28535         * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
28536         TYPE_OVERFLOW_WRAPS check.
28537
28538 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28539
28540         * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
28541         if versioning is required.
28542         * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
28543         peeling with the check for versioning.
28544
28545 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28546
28547         * tree-vectorizer.h (vect_build_loop_niters): New parameter.
28548         * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
28549         Set true to new parameter if new ssa variable is defined.
28550         (vect_gen_vector_loop_niters): Refactor.  Set range information
28551         for the new vector loop bound variable.
28552         (vect_do_peeling): Ditto.
28553
28554 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28555
28556         * tree-affine.c (ssa.h): Include header file.
28557         (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
28558         has wrapping overflow behavior.
28559
28560 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28561
28562         * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
28563
28564 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28565
28566         (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
28567         (tree_to_aff_combination): ... here.
28568
28569 2017-06-07  Bin Cheng  <bin.cheng@arm.com>
28570
28571         * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
28572         reg_pressure model function.
28573         (ivopts_global_cost_for_size): Delete.
28574         (determine_set_costs, iv_ca_recount_cost): Call new model function
28575         ivopts_estimate_reg_pressure.
28576
28577 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28578
28579         * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
28580         expensive than udiv.  Remove floating point cases from mod.
28581
28582 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28583
28584         * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
28585         Increase idiv cost.
28586
28587 2017-06-07  Tamar Christina  <tamar.christina@arm.com>
28588
28589         * config/aarch64/aarch64.md
28590         (copysignsf3): Fix mask generation.
28591
28592 2017-06-07  Jakub Jelinek  <jakub@redhat.com>
28593
28594         * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
28595         TDI_gimple.
28596         (class dump_manager): Add register_dumps method.
28597         * dumpfile.c: Include langhooks.h.
28598         (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
28599         (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
28600         (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
28601         (dump_manager::dump_register): Start with 512 entries instead of 32.
28602         (dump_manager::register_dumps): New method.
28603         * toplev.c (general_init): Instead of invoking register_dumps
28604         langhook, invoke register_dumps method on the dump manager.
28605         * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
28606         TDI_generic.
28607
28608 2017-06-07  Richard Sandiford  <richard.sandiford@linaro.org>
28609
28610         * doc/md.texi: Clarify the restrictions on a define_insn condition.
28611         Say that # requires an associated define_split to exist, and that
28612         the define_split must be suitable for use after register allocation.
28613
28614 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28615
28616         * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
28617         (compute_outgoing_frequencies): Also initialize zero counts.
28618         (find_many_sub_basic_blocks): Do not produce uninitialized profile
28619         around loops; preserve more of profile when nothing changes.
28620
28621 2017-06-06  Jim Wilson  <jim.wilson@linaro.org>
28622
28623         * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
28624         here.
28625         * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
28626         * config/arm/arm-cpu-cdata.h: Regenerate.
28627         * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
28628         * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
28629         * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
28630         * config/arm/arm.c (arm_qdf24xx_tune): Delete.
28631         * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
28632         support.
28633         * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
28634         support.
28635         * config/arm/t-rmprofile: Likewise.
28636         * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
28637
28638 2017-06-06  David S. Miller  <davem@davemloft.net>
28639
28640         PR target/80968
28641         * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
28642         blockage if function uses alloca.
28643
28644 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28645
28646         * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
28647         New "uid" fields to hold pretty-print IDs of group and ref.
28648         Memory references are now identified as <group_id>:<ref_id>
28649         instead of using [random] addresses.
28650         (dump_mem_details): Simplify, no functional change.
28651         (dump_mem_ref): Simplify and make output more concise.
28652         Replace couple of fprintf's throughout code with calls to dump_mem_ref.
28653         (find_or_create_group): Initialize group uid.
28654         (record_ref): Initialize ref uid.  Improve debug output.
28655         (prune_group_by_reuse, should_issue_prefetch_p,)
28656         (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
28657         (mark_nontemporal_store, determine_loop_nest_reuse):
28658         Improve debug output.
28659
28660 2017-06-06  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
28661
28662         * dbgcnt.def (prefetch): New debug counter.
28663         * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
28664         (schedule_prefetches): Stop issueing prefetches if debug counter
28665         tripped.
28666
28667 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28668
28669         * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
28670         gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
28671
28672 2017-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28673
28674         * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
28675         Use aarch64_reg_or_zero predicate for operand 4.
28676         (aarch64_compare_and_swap<mode> define_insn_and_split):
28677         Use aarch64_reg_or_zero predicate for operand 3.  Add 'Z' constraint.
28678         (aarch64_store_exclusive<mode>): Likewise for operand 2.
28679
28680 2017-06-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28681
28682         * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
28683         (arm_compute_save_core_reg_mask): This.
28684         (thumb1_compute_save_reg_mask): Rename into ...
28685         (thumb1_compute_save_core_reg_mask): This.
28686         (arm_compute_save_reg0_reg12_mask): Adapt comment.
28687         (arm_compute_frame_layout): Likewise.
28688
28689 2017-06-06  Richard Biener  <rguenther@suse.de>
28690
28691         PR tree-optimization/80974
28692         * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
28693         keep or clear leaders SSA info.
28694
28695 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28696
28697         * config/nvptx/nvptx.c (split_mode_p): New function.
28698         (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
28699
28700 2017-06-06  Tom de Vries  <tom@codesourcery.com>
28701
28702         * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
28703
28704 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28705
28706         PR bootstrap/80978
28707         * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
28708         profile.
28709
28710 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28711
28712         * shrink-wrap.c (handle_simple_exit): Update profile.
28713         (try_shrink_wrapping): Upate profile.
28714
28715 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28716
28717         * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
28718         (tree_guess_outgoing_edge_probabilities): New.
28719         * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
28720         * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
28721
28722 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28723
28724         * ipa-split.c (split_function): Initialize return bb profile.
28725
28726 2017-06-06  Jan Hubicka  <hubicka@ucw.cz>
28727
28728         * profile.c (compute_branch_probabilities): Also initialize
28729         EXIT_BLOCK profile.
28730
28731 2017-06-06  Richard Biener  <rguenther@suse.de>
28732
28733         PR tree-optimization/80928
28734         * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
28735         (vect_analyze_loop_operations): Properly guard analysis for
28736         pure SLP case.
28737         (vect_transform_loop): Likewise.
28738         (vect_analyze_loop_2): Also reset SLP type on PHIs.
28739         (vect_model_induction_cost): Do not cost for pure SLP.
28740         (vectorizable_induction): Pass in SLP node, implement SLP vectorization
28741         of induction in inner loop vectorization.
28742         * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
28743         (vect_get_and_check_slp_defs): Handle vect_induction_def.
28744         (vect_build_slp_tree): Likewise.  Handle PHIs as terminating the
28745         recursion.
28746         (vect_analyze_slp_cost_1): Cost induction.
28747         (vect_detect_hybrid_slp_stmts): Handle PHIs.
28748         (vect_get_slp_vect_defs): Likewise.
28749         * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
28750         (vect_transform_stmt): Handle SLP reductions.
28751         * tree-vectorizer.h (vectorizable_induction): Adjust.
28752
28753 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
28754
28755         * config/rs6000/rs6000.c (make_resolver_func): Update
28756         init_lowered_empty_function call.
28757
28758 2017-06-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28759
28760         * doc/invoke.texi: Document the -fprofile-abs-path option.
28761         * common.opt (fprofile-abs-path): New option.
28762         * gcov-io.h (gcov_write_filename): Declare.
28763         * gcov-io.c (gcov_write_filename): New function.
28764         * coverage.c (coverage_begin_function): Use gcov_write_filename.
28765         * profile.c (output_location): Likewise.
28766
28767 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28768
28769         * shring-wrap.c: Revert accidental commit.
28770
28771 2017-06-05  Volker Reichelt  <v.reichelt@netcologne.de>
28772
28773         * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
28774
28775 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28776
28777         * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
28778         new edge.
28779         * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
28780         profile in callgraph edge.
28781         * profile-count.h (apply_probability): If THIS is 0, then result is 0
28782         (apply_scale): Likewise.
28783         * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
28784         Also scale profile when inlining function with zero profile.
28785         (initialize_cfun): Update exit block profile even when it is zero.
28786         * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
28787         when profile is read.
28788
28789 2017-06-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
28790
28791         * config/rs6000/rs6000.c (toplevel): Include attribs.h.
28792         (CLONE_*): New constants to define the processors we can generate
28793         code for with the target_clone attribute.
28794         (rs6000_clone_map): New array to identify which clone processors
28795         the current program is running on.
28796         (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
28797         target_clone attribute.
28798         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
28799         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
28800         (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
28801         (cpu_expand_builtin): Add support for target_clone attribute.
28802         (rs6000_valid_attribute_p): Allow "default" attribute.
28803         (get_decl_name): New debug function to simplify printing the
28804         current function name in debugging statements.
28805         (rs6000_clone_priority): New functions to support the target_clone
28806         attribute, and be able to generate code to switch between ISA 2.05
28807         through ISA 3.0 (power6 through power9).
28808         (rs6000_compare_version_priority): Likewise.
28809         (rs6000_get_function_versions_dispatcher): Likewise.
28810         (make_resolver_func): Likewise.
28811         (add_condition_to_bb): Likewise.
28812         (dispatch_function_versions): Likewise.
28813         (rs6000_generate_version_dispatcher_body): Likewise.
28814         (rs6000_can_inline_p): Call get_decl_name for debugging usage.
28815         (fusion_gpr_load_p): Fix a spacing issue.
28816         * doc/extend.texi (Common Function Attributes): Document that the
28817         PowerPC supports the target_clone attribute.
28818
28819 2017-06-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
28820
28821         * config/arm/arm.h: explain F symbol found in description of ARM
28822         register allocation in its legend.
28823
28824 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28825
28826         * config/mips/frame-header-opt.c: Include profile-count.h.
28827         * config/riscv/riscv.c: Include profile-count.h
28828
28829 2017-06-05  Jan Hubicka  <hubicka@ucw.cz>
28830
28831         * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
28832         update profile.
28833         (sm_set_flag_if_changed): Add bbs field.
28834         (execute_sm_if_changed_flag_set): Pass BBS.
28835         (execute_sm): Update.
28836
28837 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28838
28839         * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
28840         New pattern.
28841
28842 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28843
28844         * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
28845         (peephole2): New peephole2 to emit the above.
28846         * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
28847
28848 2017-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28849
28850         * config/aarch64/aarch64.c (define_peephole2 above
28851         *sub_<shift>_<mode>): New peephole.
28852
28853 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
28854
28855         * config/i386/i386.c (make_resolver_func): Update.
28856         * Makefile.in: Add profile-count.h and profile-count.o
28857         * auto-profile.c (afdo_indirect_call): Update to new API.
28858         (afdo_set_bb_count): Update.
28859         (afdo_propagate_edge): Update.
28860         (afdo_propagate_circuit): Update.
28861         (afdo_calculate_branch_prob): Update.
28862         (afdo_annotate_cfg): Update.
28863         * basic-block.h: Include profile-count.h
28864         (struct edge_def): Turn count to profile_count.
28865         (struct basic_block_def): Likewie.
28866         (REG_BR_PROB_BASE): Move to profile-count.h
28867         (RDIV): Move to profile-count.h
28868         * bb-reorder.c (max_entry_count): Turn to profile_count.
28869         (find_traces): Update.
28870         (rotate_loop):Update.
28871         (connect_traces):Update.
28872         (sanitize_hot_paths):Update.
28873         * bt-load.c (migrate_btr_defs): Update.
28874         * cfg.c (RDIV): Remove.
28875         (init_flow): Use alloc_block.
28876         (alloc_block): Uninitialize count.
28877         (unchecked_make_edge): Uninitialize count.
28878         (check_bb_profile): Update.
28879         (dump_edge_info): Update.
28880         (dump_bb_info): Update.
28881         (update_bb_profile_for_threading): Update.
28882         (scale_bbs_frequencies_int): Update.
28883         (scale_bbs_frequencies_gcov_type): Update.
28884         (scale_bbs_frequencies_profile_count): New.
28885         * cfg.h (update_bb_profile_for_threading): Update.
28886         (scale_bbs_frequencies_profile_count): Declare.
28887         * cfgbuild.c (compute_outgoing_frequencies): Update.
28888         (find_many_sub_basic_blocks): Update.
28889         * cfgcleanup.c (try_forward_edges): Update.
28890         (try_crossjump_to_edge): Update.
28891         * cfgexpand.c (expand_gimple_tailcall): Update.
28892         (construct_exit_block): Update.
28893         * cfghooks.c (verify_flow_info): Update.
28894         (dump_bb_for_graph): Update.
28895         (split_edge): Update.
28896         (make_forwarder_block): Update.
28897         (duplicate_block): Update.
28898         (account_profile_record): Update.
28899         * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
28900         (get_estimated_loop_iterations): Update.
28901         * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
28902         (single_likely_exit): Update.
28903         * cfgloopmanip.c (scale_loop_profile): Update.
28904         (loopify): Update.
28905         (set_zero_probability): Update.
28906         (lv_adjust_loop_entry_edge): Update.
28907         * cfgrtl.c (force_nonfallthru_and_redirect): Update.
28908         (purge_dead_edges): Update.
28909         (rtl_account_profile_record): Update.
28910         * cgraph.c (cgraph_node::create): Uninitialize count.
28911         (symbol_table::create_edge): Uninitialize count.
28912         (cgraph_update_edges_for_call_stmt_node): Update.
28913         (cgraph_edge::dump_edge_flags): Update.
28914         (cgraph_node::dump): Update.
28915         (cgraph_edge::maybe_hot_p): Update.
28916         * cgraph.h: Include profile-count.h
28917         (create_clone), create_edge, create_indirect_edge): Update.
28918         (cgraph_node): Turn count to profile_count.
28919         (cgraph_edge0: Likewise.
28920         (make_speculative, clone): Update.
28921         (create_edge): Update.
28922         (init_lowered_empty_function): Update.
28923         * cgraphclones.c (cgraph_edge::clone): Update.
28924         (duplicate_thunk_for_node): Update.
28925         (cgraph_node::create_clone): Update.
28926         * cgraphunit.c (cgraph_node::analyze): Update.
28927         (cgraph_node::expand_thunk): Update.
28928         * final.c (dump_basic_block_info): Update.
28929         * gimple-streamer-in.c (input_bb): Update.
28930         * gimple-streamer-out.c (output_bb): Update.
28931         * graphite.c (print_global_statistics): Update.
28932         (print_graphite_scop_statistics): Update.
28933         * hsa-brig.c: Include basic-block.h.
28934         * hsa-dump.c: Include basic-block.h.
28935         * hsa-gen.c (T sum_slice): Update.
28936         (convert_switch_statements):Update.
28937         * hsa-regalloc.c: Include basic-block.h.
28938         * ipa-chkp.c (chkp_produce_thunks): Update.
28939         * ipa-cp.c (struct caller_statistics): Update.
28940         (init_caller_stats): Update.
28941         (gather_caller_stats): Update.
28942         (ipcp_cloning_candidate_p): Update.
28943         (good_cloning_opportunity_p): Update.
28944         (get_info_about_necessary_edges): Update.
28945         (dump_profile_updates): Update.
28946         (update_profiling_info): Update.
28947         (update_specialized_profile): Update.
28948         (perhaps_add_new_callers): Update.
28949         (decide_about_value): Update.
28950         (ipa_cp_c_finalize): Update.
28951         * ipa-devirt.c (struct odr_type_warn_count): Update.
28952         (struct decl_warn_count): Update.
28953         (struct final_warning_record): Update.
28954         (possible_polymorphic_call_targets): Update.
28955         (ipa_devirt): Update.
28956         * ipa-fnsummary.c (redirect_to_unreachable): Update.
28957         * ipa-icf.c (sem_function::merge): Update.
28958         * ipa-inline-analysis.c (do_estimate_edge_time): Update.
28959         * ipa-inline.c (compute_uninlined_call_time): Update.
28960         (compute_inlined_call_time): Update.
28961         (want_inline_small_function_p): Update.
28962         (want_inline_self_recursive_call_p): Update.
28963         (edge_badness): Update.
28964         (lookup_recursive_calls): Update.
28965         (recursive_inlining): Update.
28966         (inline_small_functions): Update.
28967         (dump_overall_stats): Update.
28968         (dump_inline_stats): Update.
28969         * ipa-profile.c (ipa_profile_generate_summary): Update.
28970         (ipa_propagate_frequency): Update.
28971         (ipa_profile): Update.
28972         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
28973         * ipa-utils.c (ipa_merge_profiles): Update.
28974         * loop-doloop.c (doloop_modify): Update.
28975         * loop-unroll.c (report_unroll): Update.
28976         (unroll_loop_runtime_iterations): Update.
28977         * lto-cgraph.c (lto_output_edge): Update.
28978         (lto_output_node): Update.
28979         (input_node): Update.
28980         (input_edge): Update.
28981         (merge_profile_summaries): Update.
28982         * lto-streamer-in.c (input_cfg): Update.
28983         * lto-streamer-out.c (output_cfg): Update.
28984         * mcf.c (create_fixup_graph): Update.
28985         (adjust_cfg_counts): Update.
28986         (sum_edge_counts): Update.
28987         * modulo-sched.c (sms_schedule): Update.
28988         * postreload-gcse.c (eliminate_partially_redundant_load): Update.
28989         * predict.c (maybe_hot_count_p): Update.
28990         (probably_never_executed): Update.
28991         (dump_prediction): Update.
28992         (combine_predictions_for_bb): Update.
28993         (propagate_freq): Update.
28994         (handle_missing_profiles): Update.
28995         (counts_to_freqs): Update.
28996         (rebuild_frequencies): Update.
28997         (force_edge_cold): Update.
28998         * predict.h: Include profile-count.h
28999         (maybe_hot_count_p, counts_to_freqs): UPdate.
29000         * print-rtl-function.c: Do not include cfg.h
29001         * print-rtl.c: Include basic-block.h
29002         * profile-count.c: New file.
29003         * profile-count.h: New file.
29004         * profile.c (is_edge_inconsistent): Update.
29005         (correct_negative_edge_counts): Update.
29006         (is_inconsistent): Update.
29007         (set_bb_counts): Update.
29008         (read_profile_edge_counts): Update.
29009         (compute_frequency_overlap): Update.
29010         (compute_branch_probabilities): Update; Initialize and deinitialize
29011         gcov_count tables.
29012         (branch_prob): Update.
29013         * profile.h (bb_gcov_counts, edge_gcov_counts): New.
29014         (edge_gcov_count): New.
29015         (bb_gcov_count): New.
29016         * shrink-wrap.c (try_shrink_wrapping): Update.
29017         * tracer.c (better_p): Update.
29018         * trans-mem.c (expand_transaction): Update.
29019         (ipa_tm_insert_irr_call): Update.
29020         (ipa_tm_insert_gettmclone_call): Update.
29021         * tree-call-cdce.c: Update.
29022         * tree-cfg.c (gimple_duplicate_sese_region): Update.
29023         (gimple_duplicate_sese_tail): Update.
29024         (gimple_account_profile_record): Update.
29025         (execute_fixup_cfg): Update.
29026         * tree-inline.c (copy_bb): Update.
29027         (copy_edges_for_bb): Update.
29028         (initialize_cfun): Update.
29029         (freqs_to_counts): Update.
29030         (copy_cfg_body): Update.
29031         (expand_call_inline): Update.
29032         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
29033         * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
29034         (try_unroll_loop_completely): Update.
29035         (try_peel_loop): Update.
29036         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
29037         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
29038         * tree-ssa-loop-split.c (connect_loops): Update.
29039         * tree-ssa-loop-unswitch.c (hoist_guard): Update.
29040         * tree-ssa-reassoc.c (branch_fixup): Update.
29041         * tree-ssa-tail-merge.c (replace_block_by): Update.
29042         * tree-ssa-threadupdate.c (create_block_for_threading): Update.
29043         (compute_path_counts): Update.
29044         (update_profile): Update.
29045         (recompute_probabilities): Update.
29046         (update_joiner_offpath_counts): Update.
29047         (estimated_freqs_path): Update.
29048         (freqs_to_counts_path): Update.
29049         (clear_counts_path): Update.
29050         (ssa_fix_duplicate_block_edges): Update.
29051         (duplicate_thread_path): Update.
29052         * tree-switch-conversion.c (case_bit_test_cmp): Update.
29053         (struct switch_conv_info): Update.
29054         * tree-tailcall.c (decrease_profile): Update.
29055         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
29056         * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
29057         * value-prof.c (check_counter): Update.
29058         (gimple_divmod_fixed_value): Update.
29059         (gimple_mod_pow2): Update.
29060         (gimple_mod_subtract): Update.
29061         (gimple_ic_transform): Update.
29062         (gimple_stringop_fixed_value): Update.
29063         * value-prof.h (gimple_ic): Update.
29064
29065 2017-06-02  Carl Love  <cel@us.ibm.com>
29066
29067         * config/rs6000/rs6000-c: Add support for built-in functions
29068         vector double vec_doublee (vector signed int);
29069         vector double vec_doublee (vector unsigned int);
29070         vector double vec_doublee (vector float);
29071         vector double vec_doubleh (vector signed int);
29072         vector double vec_doubleh (vector unsigned int);
29073         vector double vec_doubleh (vector float);
29074         vector double vec_doublel (vector signed int);
29075         vector double vec_doublel (vector unsigned int);
29076         vector double vec_doublel (vector float);
29077         vector double vec_doubleo (vector signed int);
29078         vector double vec_doubleo (vector unsigned int);
29079         vector double vec_doubleo (vector float);.
29080         * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
29081         DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
29082         UNS_DOUBLEL.
29083         * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
29084         unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
29085         unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
29086         VS_sxwsp.
29087         * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
29088         vec_doublel, vec_doubleh.
29089         * doc/extend.texi: Update the built-in documentation file for the
29090         new built-in functions.
29091
29092 2017-06-02  David Malcolm  <dmalcolm@redhat.com>
29093
29094         PR jit/80954
29095         * ipa-inline-analysis.c (free_growth_caches): Set
29096         edge_removal_hook_holder to NULL after removing it.
29097
29098 2017-06-02  Sudakshina Das  <sudi.das@arm.com>
29099
29100         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
29101         comparision with zero.
29102
29103 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
29104         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
29105         for early expansion of vec_min and vec_max builtins.
29106         (builtin_function_type): Add min/max unsigned variants to those
29107         identified as having unsigned arguments.
29108
29109 2017-06-02  Olivier Hainque  <hainque@adacore.com>
29110
29111         * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
29112
29113 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29114
29115         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
29116         Use VALL_F16 iterator rather than VALL.
29117
29118 2017-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29119
29120         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
29121         Emit CBNZ inside loop when doing a strong exchange and comparing
29122         against zero.  Generate the CC flags after the loop.
29123
29124 2017-06-02  David Edelsohn  <dje.gcc@gmail.com>
29125
29126         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
29127         (dl_section_ref): New.
29128         (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
29129         On AIX, append an expression to subtract the size of the
29130         section length to dl_section_ref.
29131
29132 2017-06-02  Will Schmidt  <will_schmidt@vnet.ibm.com>
29133
29134         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
29135         for early expansion of vector absolute builtins.
29136
29137 2017-06-02  Richard Biener  <rguenther@suse.de>
29138
29139         * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
29140         what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
29141
29142 2017-06-02  Richard Biener  <rguenther@suse.de>
29143
29144         PR tree-optimization/80948
29145         * tree-tailcall.c (find_tail_calls): Track stmts to move in
29146         stmt order as well.
29147
29148 2017-06-02  Richard Biener  <rguenther@suse.de>
29149
29150         * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
29151         PHIs are ok.
29152         * tree-vect-stmts.c (process_use): Do not mark backedge defs
29153         for inductions as relevant.
29154
29155 2017-06-02  Richard Biener  <rguenther@suse.de>
29156
29157         * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
29158         (vectorizable_induction): ... this.  Remove dead code.
29159
29160 2017-06-02  Eric Botcazou  <ebotcazou@adacore.com>
29161
29162         * builtins. (expand_builtin_alloca): Remove second parameter and
29163         infer its value from the first parameter instead.
29164         (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
29165
29166 2017-06-02  Jakub Jelinek  <jakub@redhat.com>
29167
29168         PR rtl-optimization/80903
29169         * loop-doloop.c (add_test): Unshare sequence.
29170
29171 2017-06-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
29172
29173         * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
29174
29175 2017-06-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
29176
29177         * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
29178         static.
29179         (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
29180         xlogue_layout::get_instance, logue_layout::xlogue_layout,
29181         sp_valid_at, fp_valid_at, choose_basereg): Formatting.
29182         (xlogue_layout::get_stub_rtx): Make static.
29183         (xlogue_layout::get_stub_name): Avoid const-cast, make static.
29184         (xlogue_layout::compute_stub_managed_regs): Rename to...
29185         (xlogue_layout::count_stub_managed_regs): ...this.
29186         (xlogue_layout::is_stub_managed_reg): New function.
29187         (xlogue_layout::m_stub_names): Rename to...
29188         (xlogue_layout::s_stub_names): ...this, make static.
29189         (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
29190         xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
29191         xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
29192         xlogue_layout::s_stub_names): Instantiate statics.
29193         (stub_managed_regs): Remove.
29194         (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
29195         (disable_call_ms2sysv_xlogues): Rename to...
29196         (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
29197         (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
29198         warning logic.
29199         (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
29200         change after reload_completed.
29201         (ix86_can_use_return_insn_p): Use the ix86_frame data structure
29202         directly.
29203         (ix86_expand_prologue): Likewise.
29204         (ix86_expand_epilogue): Likewise.
29205         (ix86_expand_split_stack_prologue): Likewise.
29206         (ix86_compute_frame_layout): Remove frame parameter ...
29207         (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
29208         (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
29209         only if necessary.
29210         (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
29211         (ix86_frame): Move from here ...
29212         * config/i386/i386.h (ix86_frame): ... to here.
29213         (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
29214         complete ix86_frame data structure instead.  Remove some_ld_name.
29215
29216 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
29217
29218         * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
29219         symbols that hold a DECL_VALUE_EXPR.
29220
29221 2017-06-01  Martin Jambor  <mjambor@suse.cz>
29222
29223         PR tree-optimization/80898
29224         * tree-sra.c (process_subtree_disqualification): Removed.
29225         (disqualify_candidate): Do not acll
29226         process_subtree_disqualification.
29227         (subtree_mark_written_and_enqueue): New function.
29228         (propagate_all_subaccesses): Set grp_write of LHS subtree if the
29229         RHS has been disqualified and re-queue LHS if necessary.  Apart
29230         from that, ignore disqualified RHS.
29231
29232 2017-06-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29233
29234         * config/s390/s390.c (s390_emit_epilogue): Disable early return
29235         address fetch for z10 or later.
29236
29237 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29238
29239         * config/arc/arc.md (tst_movb): Add guard when splitting.
29240
29241 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29242
29243         * config/arc/arc.c (arc_can_eliminate): Test against
29244         arc_frame_pointer_needed.
29245
29246 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29247
29248         * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
29249         to prevent store reordering.
29250         * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
29251         (type): Add block type.
29252         (stack_tie): Define special instruction to be used in
29253         expand_prologue.
29254
29255 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29256
29257         * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
29258         constraint. It is not valid for the pattern.
29259         (noncommutative_binary_comparison): Likewise.
29260
29261 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29262
29263         * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
29264         scaled addresses.
29265
29266 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29267
29268         * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
29269         be used by the reg-alloc.
29270
29271 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29272
29273         * config/arc/arc.md (mulsi3): Avoid use of hard registers before
29274         reg-alloc when having mul64 or mul32x16 instructions.
29275         (mulsidi3): Likewise.
29276         (umulsidi3): Likewise.
29277         (mulsi32x16): New pattern.
29278         (mulsi64): Likewise.
29279         (mulsidi64): Likewise.
29280         (umulsidi64): Likewise.
29281         (MUL32x16_REG): Define.
29282         (mul64_600): Use MUL32x16_REG.
29283         (mac64_600): Likewise.
29284         (umul64_600): Likewise.
29285         (umac64_600): Likewise.
29286
29287 2017-06-01  Claudiu Zissulescu  <claziss@synopsys.com>
29288
29289         * config/arc/arc.md (mulsi3_700): Make it commutative.
29290
29291 2017-06-01  Jose E. Marchesi  <jose.marchesi@oracle.com>
29292
29293         * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
29294         type for movstouw.
29295         (*sign_extendsidi2_insn): Likewise for movstosw.
29296
29297 2017-06-01  Pierre-Marie de Rodat  <derodat@adacore.com>
29298
29299         * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
29300         the type of the input discriminant value.  Convert the
29301         discriminant value of signedness vary.
29302
29303 2017-06-01  Volker Reichelt  <v.reichelt@netcologne.de>
29304
29305         * doc/invoke.texi (-Wcatch-value): Document new shortcut.
29306         Add to -Wall section.
29307
29308 2017-06-01  Richard Biener  <rguenther@suse.de>
29309
29310         PR middle-end/66313
29311         * fold-const.c (fold_plusminus_mult_expr): If the factored
29312         factor may be zero use a wrapping type for the inner operation.
29313         * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
29314         and handle moved defs.
29315         (process_assignment): Properly guard the unary op case.  Return a
29316         tri-state indicating that moving the stmt before the call may allow
29317         to continue.  Pass through to_move.
29318         (find_tail_calls): Handle moving unrelated defs before
29319         the call.
29320
29321 2017-05-31  Segher Boessenkool  <segher@kernel.crashing.org>
29322
29323         PR target/80618
29324         * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
29325         splitter result in the canonical way.
29326
29327 2017-05-31  Uros Bizjak  <ubizjak@gmail.com>
29328
29329         * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
29330         also for 32bit target.  Update insn attributes.
29331         (zero-extendsidi2 splitter): Allow all registers for operand 1.
29332
29333 2017-05-31  Sebastian Peryt  <sebastian.peryt@intel.com>
29334
29335         * config/i386/avx512fintrin.h (_mm_mask_max_sd)
29336         (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
29337         (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
29338         (_mm_maskz_min_ss): New intrinsics.
29339
29340 2017-05-31  Martin Liska  <mliska@suse.cz>
29341
29342         * tree-vect-loop.c (vect_create_epilog_for_reduction):
29343         Change comment style to one we normally use.
29344         (vectorizable_reduction): Likewise.
29345         (vectorizable_induction): Likewise.
29346         * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
29347         (vectorizable_call): Likewise.
29348         (vectorizable_simd_clone_call): Likewise.
29349         (vectorizable_conversion): Likewise.
29350         (vectorizable_assignment): Likewise.
29351         (vectorizable_shift): Likewise.
29352         (vectorizable_operation): Likewise.
29353         (vectorizable_store): Likewise.
29354         (vectorizable_load): Likewise.
29355         * tree-vectorizer.h: Likewise.
29356
29357 2017-05-31  Alexander Monakov  <amonakov@ispras.ru>
29358
29359         * passes.c (emergency_dump_function): New.
29360         * tree-pass.h (emergency_dump_function): Declare.
29361         * plugin.c (plugins_internal_error_function): Remove.
29362         * plugin.h (plugins_internal_error_function): Remove declaration.
29363         * toplev.c (internal_error_function): New static function.  Use it...
29364         (general_init): ...here.
29365
29366 2017-05-31  Graham Markall  <graham.markall@embecosm.com>
29367
29368         * config/arc/arc.c (arc_print_operand): Handle constant operands.
29369         (arc_rtx_costs): Add costs for new patterns.
29370         * config/arc/arc.md: Additional *add_n and *sub_n patterns.
29371         * config/arc/predicates.md: Add _1_2_3_operand predicate.
29372
29373 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
29374
29375         * tree-ssa-strlen.c (get_next_strinfo): New function.
29376         (get_stridx_plus_constant): Use it.
29377         (zero_length_string): Likewise.
29378         (adjust_related_strinfos): Likewise.
29379         (adjust_last_stmt): Likewise.
29380
29381 2017-05-31  Richard Biener  <rguenther@suse.de>
29382
29383         PR target/80880
29384         * config/i386/i386.c (ix86_expand_builtin): Remove assert
29385         for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
29386
29387 2017-05-31  Richard Sandiford  <richard.sandiford@linaro.org>
29388
29389         * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
29390         loop_vinfo argument and use of dependence distance vectors.
29391         Check instead whether the two references differ only in their
29392         initial value and assume that they have the same alignment if the
29393         difference is a multiple of the vector alignment.
29394         (vect_analyze_data_refs_alignment): Update call accordingly.
29395
29396 2017-05-31  Martin Liska  <mliska@suse.cz>
29397
29398         PR target/79155
29399         * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
29400
29401 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
29402
29403         * tree-vect-loop-manip.c (create_intersect_range_checks_index)
29404         (create_intersect_range_checks): Move from ...
29405         * tree-data-ref.c (create_intersect_range_checks_index)
29406         (create_intersect_range_checks): ... to here.
29407         (create_runtime_alias_checks): New function factored from ...
29408         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
29409         here.  Call above function.
29410         * tree-data-ref.h (create_runtime_alias_checks): New function.
29411
29412 2017-05-31  Bin Cheng  <bin.cheng@arm.com>
29413
29414         * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
29415         segment length for dr_b and compute it in wide_int.
29416
29417 2017-05-31  Richard Biener  <rguenther@suse.de>
29418
29419         PR tree-optimization/80906
29420         * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
29421         and pass through iv_map.
29422         (copy_bb_and_scalar_dependences): Adjust.
29423         (translate_pending_phi_nodes): Likewise.
29424         (copy_loop_close_phi_args): Handle code-generating IVs instead
29425         of ICEing.
29426
29427 2017-05-30  David Malcolm  <dmalcolm@redhat.com>
29428
29429         * diagnostic-color.c (color_dict): Add "type-diff".
29430         (parse_gcc_colors): Update comment.
29431         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
29432         -fdiagnostics-show-template-tree and -fno-elide-type.
29433         (GCC_COLORS): Add type-diff to example.
29434         (type-diff=): New.
29435         (-fdiagnostics-show-template-tree): New.
29436         (-fno-elide-type): New.
29437         * pretty-print.c (pp_format): Pass quote and formatters[argno] to
29438         the pp_format_decoder callback.  Call any m_format_postprocessor's
29439         "handle" method.
29440         (pretty_printer::pretty_printer): Initialize
29441         m_format_postprocessor.
29442         (pretty_printer::~pretty_printer): Delete any
29443         m_format_postprocessor.
29444         * pretty-print.h (printer_fn): Add bool and const char ** parameters.
29445         (class format_postprocessor): New class.
29446         (struct pretty_printer::format_decoder): Document the new parameters.
29447         (struct pretty_printer::m_format_postprocessor): New field.
29448         * tree-diagnostic.c (default_tree_printer): Update for new
29449         bool and const char ** params.
29450         * tree-diagnostic.h (default_tree_printer): Likewise.
29451
29452 2017-05-30  Segher Boessenkool  <segher@kernel.crashing.org>
29453
29454         * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
29455         (lwa_operand): Delete rs6000_gen_cell_microcode test.
29456         * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
29457         rs6000_gen_cell_microcode code.
29458         (rs6000_final_prescan_insn): Delete.
29459         (rs6000_opt_vars): Delete the "gen-cell-microcode" and
29460         "warn-cell-microcode" entries.
29461         * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
29462         * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
29463         throughout.  Change cc_reg_not_micro_cr0_operand to
29464         cc_reg_not_cr0_operand throughout.
29465         (*extendhi<mode>2_noload): Delete.
29466         * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
29467         (mwarn-cell-microcode): Delete.
29468         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
29469         -mgen-cell-microcode and -mwarn-cell-microcode.
29470
29471 2017-05-30  Uros Bizjak  <ubizjak@gmail.com>
29472
29473         PR target/80833
29474         * config/i386/constraints.md (Yd): New constraint.
29475         (Ye): Ditto.
29476         * config/i386/i386.md (*movti_internal): Add (?r, Ye)
29477         and (?Yd, r) alternatives.  Update insn attributes.
29478         * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
29479         and (?*Yd, r) alternatives.  Update insn attributes.
29480         (double-mode inter-unit splitters): Add new GR<->XMM splitters.
29481
29482 2017-05-30  Pierre-Marie de Rodat  <derodat@adacore.com>
29483
29484         * gimplify.c (gimplify_modify_expr): Don't create a
29485         DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
29486         function.
29487
29488 2017-05-30  Wilco Dijkstra  <wdijkstr@arm.com>
29489
29490         * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
29491
29492 2017-05-30  Richard Biener  <rguenther@suse.de>
29493
29494         * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
29495         and reduc_def fields.
29496         (STMT_VINFO_REDUC_TYPE): New define.
29497         (STMT_VINFO_REDUC_DEF): Likewise.
29498         (vect_force_simple_reduction): Adjust prototype.
29499         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
29500         (vect_is_simple_reduction): Remove check_reduction argument.
29501         (vect_force_simple_reduction): Adjust and set
29502         STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
29503         (vectorizable_reduction): Do not re-do reduction analysis
29504         but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
29505         * tree-parloops.c (gather_scalar_reductions): Adjust.
29506
29507 2017-05-30  Richard Biener  <rguenther@suse.de>
29508
29509         PR middle-end/80901
29510         * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
29511         split_edge code.
29512
29513 2017-05-24  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29514
29515         * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
29516         Introduce unknown_misalignment parameter and remove vf.
29517         (vect_peeling_hash_get_lowest_cost):
29518         Pass unknown_misalignment parameter.
29519         (vect_enhance_data_refs_alignment):
29520         Fix unsupportable data ref treatment.
29521
29522 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29523
29524         * tree-vect-data-refs.c (vect_get_data_access_cost):
29525         Workaround for SLP handling.
29526         (vect_enhance_data_refs_alignment):
29527         Compute costs for doing no peeling at all, compare to the best
29528         peeling costs so far and avoid peeling if cheaper.
29529
29530 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29531
29532         * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
29533         Return peeling info and set costs to zero for unlimited cost
29534         model.
29535         (vect_enhance_data_refs_alignment): Also inspect all datarefs
29536         with unknown misalignment. Compute and costs for unknown
29537         misalignment, compare them to the costs for known misalignment
29538         and choose the cheapest for peeling.
29539
29540 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29541
29542         * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
29543         (vect_get_peeling_costs_all_drs): Create function.
29544         (vect_peeling_hash_get_lowest_cost):
29545         Use vect_get_peeling_costs_all_drs.
29546         (vect_peeling_supportable): Create function.
29547         (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
29548
29549 2017-05-30  Robin Dapp  <rdapp@linux.vnet.ibm.com>
29550
29551         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
29552         DR_HAS_NEGATIVE_STEP.
29553         (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
29554         (vect_enhance_data_refs_alignment): Use.
29555         (vect_duplicate_ssa_name_ptr_info): Use.
29556         * tree-vectorizer.h (dr_misalignment): Use.
29557         (known_alignment_for_access_p): Use.
29558
29559 2017-05-30  Jozef Lawrynowicz  <jozef.l@somniumtech.com>
29560
29561         PR target/78838
29562         * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
29563         .lowtext.
29564         (has_section_name): New function.
29565
29566 2017-05-30  Martin Liska  <mliska@suse.cz>
29567
29568         PR other/80909
29569         * auto-profile.c (get_function_decl_from_block): Fix
29570         parenthesis.
29571
29572 2017-05-30  Richard Biener  <rguenther@suse.de>
29573
29574         PR middle-end/80876
29575         * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
29576
29577 2017-05-30  Martin Liska  <mliska@suse.cz>
29578
29579         * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
29580         * dumpfile.h (struct dump_file_info): Remove ctors.
29581
29582 2017-05-30  Martin Liska  <mliska@suse.cz>
29583
29584         * predict.def: Fix GNU coding style.
29585
29586 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
29587
29588         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
29589         Mark 'to' argument with ATTRIBUTE_UNUSED.
29590
29591 2017-05-29  Max Filippov  <jcmvbkbc@gmail.com>
29592
29593         * config/xtensa/xtensa.c (xtensa_emit_call): Use
29594         HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
29595         (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
29596         format string.
29597
29598 2017-05-29  Eric Botcazou  <ebotcazou@adacore.com>
29599
29600         * doc/install.texi (Options specification): Restore entry of
29601         --enable-sjlj-exceptions.
29602
29603 2017-05-27  Michael Eager  <eager@eagercon.com>
29604
29605         Revert:
29606         2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
29607
29608         See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
29609
29610         * config/microblaze/microblaze.h
29611         (FIXED_REGISTERS): Update in macro.
29612         (CALL_USED_REGISTERS): Update in macro.
29613
29614 2017-05-27  François-Xavier Coudett  <fxcoudert@gcc.gnu.org>
29615
29616         * doc/install.texi: Add links to macOS binary distributions.
29617
29618 2017-05-27  Jakub Jelinek  <jakub@redhat.com>
29619
29620         PR bootstrap/80887
29621         Revert:
29622         2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29623
29624         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
29625
29626 2017-05-26  Martin Liska  <mliska@suse.cz>
29627
29628         * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
29629
29630 2017-05-26  Martin Liska  <mliska@suse.cz>
29631
29632         * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
29633         always leading ';; '.
29634         (dump_bb_info): Likewise.
29635         (brief_dump_cfg): Likewise.
29636         * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
29637         * dumpfile.c: Remove usage of TDF_VERBOSE.
29638         * dumpfile.h (enum dump_kind): Likewise.
29639         (dump_gimple_bb_header): Do not use TDF_COMMENT.
29640         * print-tree.c (debug_verbose): Remove.
29641         * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
29642         (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
29643         * tree-diagnostic.c (default_tree_printer): Replace
29644         TDF_DIAGNOSTIC with TDF_SLIM.
29645
29646 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29647
29648         * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
29649         in parameter loop, rather than loop_vinfo.
29650         (create_intersect_range_checks): Ditto.
29651         (vect_create_cond_for_alias_checks): Update call to above functions.
29652
29653 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29654
29655         PR tree-optimization/80815
29656         * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
29657         for merging runtime alias checks.  Handle negative DR_STEPs.
29658
29659 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29660
29661         * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
29662         Move from ...
29663         * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
29664         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
29665         out code pruning runtime alias checks.
29666         * tree-data-ref.c (prune_runtime_alias_test_list): New function
29667         factored out from above.
29668         * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
29669         Move from ...
29670         * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
29671         ... to here.
29672         (prune_runtime_alias_test_list): New decalaration.
29673
29674 2017-05-26  Bin Cheng  <bin.cheng@arm.com>
29675
29676         * tree-vect-data-refs.c (compare_tree): Rename and move ...
29677         * tree-data-ref.c (data_ref_compare_tree): ... to here.
29678         * tree-data-ref.h (data_ref_compare_tree): New decalaration.
29679         * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
29680         (operator==, comp_dr_with_seg_len_pair): Ditto.
29681         (vect_prune_runtime_alias_test_list): Ditto.
29682
29683 2017-05-26  Martin Liska  <mliska@suse.cz>
29684
29685         PR ipa/80663
29686         * params.def: Bound partial-inlining-entry-probability param.
29687
29688 2017-05-26  Marek Polacek  <polacek@redhat.com>
29689
29690         PR sanitizer/80875
29691         * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
29692         can be negated.
29693
29694 2017-05-26  Richard Biener  <rguenther@suse.de>
29695
29696         PR tree-optimization/80842
29697         * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
29698         value.
29699
29700 2017-05-26  Richard Biener  <rguenther@suse.de>
29701
29702         PR tree-optimization/80844
29703         * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
29704
29705 2017-05-25  Sebastian Peryt  <sebastian.peryt@intel.com>
29706
29707         * doc/md.texi (Machine Constraints): Update x86 family
29708         machine constraints section to match 'config/i386/constraints.md'.
29709
29710 2017-05-25  Volker Reichelt  <v.reichelt@netcologne.de>
29711
29712         * doc/invoke.texi (-Wcatch-value=): Document new warning option.
29713
29714 2017-05-25  Nathan Sidwell  <nathan@acm.org>
29715
29716         * doc/invoke.texi (--enable-languages): Update documentation.
29717
29718 2017-05-25  Martin Liska  <mliska@suse.cz>
29719
29720         * dumpfile.c: Add TDF_FOLDING.
29721         * dumpfile.h (enum dump_kind): Likewise.
29722         * genmatch.c (dt_simplify::gen_1): Use it.
29723
29724 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29725
29726         * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
29727
29728 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29729
29730         * match.pd ((A +- CST1) +- CST2): Allow some conversions.
29731         * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
29732
29733 2017-05-25  Marc Glisse  <marc.glisse@inria.fr>
29734
29735         * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
29736         * match.pd (X == C): Rewrite it here.
29737         (with_possible_nonzero_bits, with_possible_nonzero_bits2,
29738         with_certain_nonzero_bits2): New predicates.
29739         * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
29740
29741 2017-05-24  Nathan Sidwell  <nathan@acm.org>
29742
29743         * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
29744         avoid warning.
29745
29746         * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
29747         warning.
29748
29749 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
29750
29751         * config/powerpcspe: New port.  Files are copied from the rs6000
29752         port, with "rs6000" in filenames replaced by "powerpcspe".
29753
29754 2017-05-24  Wilco Dijkstra  <wdijkstr@arm.com>
29755
29756         PR rtl-optimization/80754
29757         * lra-remat.c (do_remat): Add overlap checks for dst_regno.
29758
29759 2017-05-24  Sheldon Lobo  <smlobo@sheldon.us.oracle.com>
29760
29761         * config/sparc/sparc.md (length): Return the correct value for -mflat
29762         sibcalls to match output_sibcall.
29763
29764 2017-05-24  Segher Boessenkool  <segher@kernel.crashing.org>
29765
29766         PR bootstrap/80860
29767         PR bootstrap/80843
29768         * config/rs6000/rs6000.c (struct machine_function): Add new field
29769         n_components.
29770         (rs6000_get_separate_components): Init that field, use it.
29771         (rs6000_components_for_bb): Use the field.
29772
29773 2017-05-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29774
29775         * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
29776
29777 2017-05-24  Peter Bergner  <bergner@vnet.ibm.com>
29778
29779         PR middle-end/80823
29780         * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
29781
29782 2017-05-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29783
29784         PR target/80725
29785         * config/s390/s390.c (s390_check_qrst_address): Check incoming
29786         address against address_operand predicate.
29787         * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
29788
29789 2017-05-24  Eric Botcazou  <ebotcazou@adacore.com>
29790
29791         * var-tracking.c (track_expr_p): Do not return 0 for tracked record
29792         parameters passed indirectly.
29793
29794 2017-05-23  Uros Bizjak  <ubizjak@gmail.com>
29795
29796         * config/i386/i386.md (*movdi_internal): Remove SSE4
29797         alternative 18 (?r, *v).  Update insn attributes.
29798         (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
29799         Update insn attributes.
29800         (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
29801         Update insn attributes.
29802         * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
29803         alternative 1 (r, v). Remove isa attribute.
29804         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
29805         Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
29806         and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
29807
29808 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29809
29810         * doc/sourcebuild.texi (Directives, Verify compiler message): Document
29811         dg-line directive.
29812
29813 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29814
29815         * cgraphunit.c (symbol_table::process_new_functions): Update.
29816         * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
29817         (inline_generate_summary): Rename to ...
29818         (ipa_fn_summary_generate): ... this one.
29819         (inline_read_summary): Rename to ...
29820         (ipa_fn_summary_read): ... this one.
29821         (inline_write_summary): Rename to ...
29822         (ipa_fn_summary_write): ... this one.
29823         (inline_free_summary): Rename to ...
29824         (ipa_free_fn_summary): ... this one.
29825         (pass_data_local_fn_summary, pass_local_fn_summary,
29826         make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
29827         pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
29828         pass_data_ipa_fn_summary, pass_ipa_fn_summary,
29829         make_pass_ipa_fn_summary): New.
29830         * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
29831         inline_write_summary, inline_free_summary): Remove.
29832         (ipa_free_fn_summary) : New.
29833         * ipa-inline.c (ipa_inline): Update.
29834         (pass_ipa_inline): Do not generate summaries.
29835         * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
29836         Remove.
29837         * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
29838         and add pass_ipa_fn_summary.
29839         * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
29840         New.
29841         (make_pass_inline_parameters): Remove.
29842
29843 2017-05-23  Thomas Schwinge  <thomas@codesourcery.com>
29844
29845         * omp-low.c (struct omp_context): Remove "default_kind" member.
29846         Adjust all users.
29847
29848         * omp-offload.c (execute_oacc_device_lower): Remove the
29849         parallelism dimensions function attributes for unparallelized
29850         OpenACC kernels constructs.
29851
29852 2017-05-23  Martin Liska  <mliska@suse.cz>
29853
29854         * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
29855         functions.
29856         (cgraph_edge::make_speculative): Likewise.
29857         (cgraph_edge::resolve_speculation): Likewise.
29858         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
29859         (cgraph_node::dump): Likewise.
29860         * cgraph.h: Likewise.
29861         * cgraphunit.c (analyze_functions): Likewise.
29862         (symbol_table::compile): Likewise.
29863         * ipa-cp.c (print_all_lattices): Likewise.
29864         (determine_versionability): Likewise.
29865         (initialize_node_lattices): Likewise.
29866         (ipcp_verify_propagated_values): Likewise.
29867         (estimate_local_effects): Likewise.
29868         (update_profiling_info): Likewise.
29869         (create_specialized_node): Likewise.
29870         (perhaps_add_new_callers): Likewise.
29871         (decide_about_value): Likewise.
29872         (decide_whether_version_node): Likewise.
29873         (identify_dead_nodes): Likewise.
29874         (ipcp_store_bits_results): Likewise.
29875         * ipa-devirt.c (dump_targets): Likewise.
29876         (ipa_devirt): Likewise.
29877         * ipa-icf.c (sem_item::dump): Likewise.
29878         (sem_function::equals): Likewise.
29879         (sem_variable::equals): Likewise.
29880         (sem_item_optimizer::read_section): Likewise.
29881         (sem_item_optimizer::execute): Likewise.
29882         (congruence_class::dump): Likewise.
29883         * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
29884         (dump_inline_summary): Likewise.
29885         (estimate_node_size_and_time): Likewise.
29886         (inline_analyze_function): Likewise.
29887         * ipa-inline-transform.c (inline_call): Likewise.
29888         * ipa-inline.c (report_inline_failed_reason): Likewise.
29889         (want_early_inline_function_p): Likewise.
29890         (edge_badness): Likewise.
29891         (update_edge_key): Likewise.
29892         (inline_small_functions): Likewise.
29893         * ipa-profile.c (ipa_profile): Likewise.
29894         * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
29895         (ipa_make_edge_direct_to_target): Likewise.
29896         (remove_described_reference): Likewise.
29897         (ipa_impossible_devirt_target): Likewise.
29898         (propagate_controlled_uses): Likewise.
29899         (ipa_print_node_params): Likewise.
29900         (ipcp_transform_function): Likewise.
29901         * ipa-pure-const.c (pure_const_read_summary): Likewise.
29902         (propagate_pure_const): Likewise.
29903         * ipa-reference.c (generate_summary): Likewise.
29904         (read_write_all_from_decl): Likewise.
29905         (propagate): Likewise.
29906         (ipa_reference_read_optimization_summary): Likewise.
29907         * ipa-utils.c (ipa_merge_profiles): Likewise.
29908         * ipa.c (walk_polymorphic_call_targets): Likewise.
29909         (symbol_table::remove_unreachable_nodes): Likewise.
29910         (ipa_single_use): Likewise.
29911         * passes.c (execute_todo): Likewise.
29912         * predict.c (drop_profile): Likewise.
29913         * symtab.c (symtab_node::get_dump_name): New function.
29914         (symtab_node::dump_name): Likewise.
29915         (symtab_node::dump_asm_name): Likewise.
29916         (symtab_node::dump_references): Likewise.
29917         (symtab_node::dump_referring): Likewise.
29918         (symtab_node::dump_base): Likewise.
29919         (symtab_node::debug_symtab): Likewise.
29920         * tree-sra.c (convert_callers_for_node): Likewise.
29921         * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
29922         * value-prof.c (init_node_map): Likewise.
29923
29924 2017-05-23  Martin Liska  <mliska@suse.cz>
29925
29926         * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
29927         and symtab_node::debug_symtab to symbol_table::debug.
29928         * cgraphunit.c (analyze_functions): Use the renamed function.
29929         (symbol_table::compile): Likewise.
29930         * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
29931         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
29932         * passes.c (execute_todo): Likewise.
29933         * symtab.c (symbol_table::dump): New function.
29934         * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
29935
29936 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29937
29938         * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
29939         that nonconst implies exec.
29940
29941 2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
29942
29943         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
29944         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
29945         (inline_edge_summary_vec): Turn into ...
29946         (ipa_call_summaries): ... this one.
29947         (redirect_to_unreachable, edge_set_predicate,
29948         evaluate_properties_for_edge, inline_summary_alloc,
29949         reset_ipa_call_summary, reset_inline_summary,
29950         inline_summary_t::duplicate): Update.
29951         (inline_edge_duplication_hook): Turn to ...
29952         (ipa_call_summary_t::duplicate): ... this one.
29953         (inline_edge_removal_hook): Turn to ...
29954         (ipa_call_summary_t::remove): ... this one.
29955         (dump_inline_edge_summary): Turn to ...
29956         (dump_ipa_call_summary): ... this one.
29957         (estimate_function_body_sizes): Update.
29958         (inline_update_callee_summaries): Update.
29959         (remap_edge_change_prob): Update.
29960         (remap_edge_summaries): Update.
29961         (inline_merge_summary): Update.
29962         (do_estimate_edge_time): Update.
29963         (inline_generate_summary): Update.
29964         (inline_read_section): Update.
29965         (inline_read_summary): Update.
29966         (inline_free_summary): Update.
29967         * ipa-inline.c (can_inline_edge_p): Update.
29968         (compute_inlined_call_time): Update.
29969         (want_inline_small_function_p): Update.
29970         (edge_badness): Update.
29971         (early_inliner): Update.
29972         * ipa-inline.h (inline_edge_summary): Turn to ...
29973         (ipa_call_summary): ... this one.
29974         (ipa_call_summary_t): New class.
29975         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
29976         (ipa_call_summaries): New.
29977         (inline_edge_summary): Remove.
29978         (estimate_edge_growth): Update.
29979         * ipa-profile.c (ipa_propagate_frequency_1): Update.
29980         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
29981         * ipa-split.c (execute_split_functions): Update.
29982         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
29983
29984 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29985
29986         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29987         attributes): Document rdrand effective target.
29988
29989 2017-05-23  Tom de Vries  <tom@codesourcery.com>
29990
29991         * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
29992         attributes): Sort alphabetically.
29993
29994 2017-05-23  Georg-Johann Lay  <avr@gjlay.de>
29995
29996         * config/avr/genmultilib.awk: Use gsub instead of gensub.
29997
29998 2017-05-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
29999
30000         PR target/80718
30001         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
30002         V2DF/V2DI splat into two separate patterns, one that handles
30003         registers, and the other that only handles memory.  Drop support
30004         for splatting from a GPR on ISA 2.07 and then splitting the
30005         splat into direct move and splat.
30006         (vsx_splat_<mode>_reg): Likewise.
30007         (vsx_splat_<mode>_mem): Likewise.
30008
30009 2017-05-22  Segher Boessenkool  <segher@kernel.crashing.org>
30010
30011         * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
30012
30013 2017-05-22  Jakub Jelinek  <jakub@redhat.com>
30014
30015         PR middle-end/80809
30016         * omp-low.c (finish_taskreg_remap): New function.
30017         (finish_taskreg_scan): If unit size of ctx->record_type
30018         is non-constant, unshare the size expression and replace
30019         decls in it with possible outer var refs.
30020
30021         PR middle-end/80809
30022         * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
30023         GOVD_SHARED rather than GOVD_PRIVATE with it.
30024         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
30025         GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
30026
30027         PR middle-end/80853
30028         * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
30029         as last argument to build_outer_var_ref for pointer bases of array
30030         section reductions.
30031
30032 2017-05-19  Martin Sebor  <msebor@redhat.com>
30033
30034         * print-tree.c (print_node): Print DECL_READ_P flag.
30035
30036 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
30037
30038         * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
30039         * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
30040         * cgraph.c: Likewise.
30041         * cgraphunit.c: Likewise.
30042         * gengtype.c: Likewise.
30043         * ipa-cp.c: Likewise.
30044         * ipa-devirt.c: Likewise.
30045         * ipa-icf.c: Likewise.
30046         * ipa-predicate.c: Likewise.
30047         * ipa-profile.c: Likewise.
30048         * ipa-prop.c: Likewise.
30049         * ipa-split.c: Likewise.
30050         * ipa.c: Likewise.
30051         * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
30052         edge_predicate_pool, dump_inline_hints,
30053         inline_summary::account_size_time, redirect_to_unreachable,
30054         edge_set_predicate, set_hint_predicate,
30055         evaluate_conditions_for_known_args, evaluate_properties_for_edge,
30056         inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
30057         inline_summary_t::remove, remap_hint_predicate_after_duplication,
30058         inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
30059         ipa_call_summary_t::remove, initialize_growth_caches,
30060         free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
30061         debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
30062         mark_modified, unmodified_parm_1, unmodified_parm,
30063         unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
30064         set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
30065         compute_bb_predicates, will_be_nonconstant_expr_predicate,
30066         will_be_nonconstant_predicate, record_modified_bb_info,
30067         get_minimal_bb, record_modified, param_change_prob,
30068         phi_result_unknown_predicate, predicate_for_phi_result,
30069         array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
30070         estimate_function_body_sizes, compute_inline_parameters,
30071         compute_inline_parameters_for_curren, pass_data_inline_parameters,
30072         estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
30073         inline_update_callee_summaries, remap_edge_change_prob,
30074         remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
30075         inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
30076         inline_analyze_function, inline_summary_t::insert,
30077         inline_generate_summary, read_ipa_call_summary, inline_read_section,
30078         inline_read_summary, write_ipa_call_summary, inline_write_summary,
30079         inline_free_summary): Move to ipa-fnsummary.h
30080         (predicate_t): Remove.
30081         * ipa-fnsummary.c: New file.
30082         * ipa-inline.h:  Do not include sreal.h and ipa-predicate.h
30083         (enum inline_hints_vals, inline_hints, agg_position_info,
30084         INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
30085         inline_summaries, ipa_call_summary, ipa_call_summary_t,
30086         ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
30087         dump_inline_summary, dump_inline_hints, inline_generate_summary,
30088         inline_read_summary, inline_write_summary, inline_free_summary,
30089         inline_analyze_function, initialize_inline_failed,
30090         inline_merge_summary, inline_update_overall_summary,
30091         compute_inline_parameters): Move to ipa-fnsummary.h
30092         * ipa-fnsummary.h: New file.
30093         * ipa-inline-transform.h: Include ipa-inline.h.
30094         * ipa-inline.c: LIkewise.
30095
30096 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
30097
30098         * ipa-inline.c (edge_badness): Use inlined_time instead of
30099         inline_summaries->get.
30100
30101 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
30102
30103         * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
30104
30105 2017-05-22  Nathan Sidwell  <nathan@acm.org>
30106
30107         * doc/invoke.texi (fdump-translation-unit): Delete documentation.
30108         (fdump-lang): Document 'raw' option.
30109         * dumpfile.h (TDI_tu): Delete.
30110         * dumpfile.c (dump_files): Remove translation-unit.
30111         (FIRST_AUTO_NUMBERED_DUMP): Decrement.
30112
30113 2017-05-22  Georg-Johann Lay  <avr@gjlay.de>
30114
30115         * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
30116         command option from $(AWK) call.
30117         * config/avr/genmultilib.awk: Simplify and rewrite so that it
30118         generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
30119         [FORMAT]: Remove handling of variable.
30120         * config/avr/t-multilib: Regenerate.
30121
30122 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
30123
30124         * ipa-inline-analysis.c (inline_summary::reset): Do not reset
30125         self_time.
30126         (dump_inline_summary): Do not print self_time.
30127         (estimate_function_body_sizes): Do not set self_time.
30128         (compute_inline_parameters): Likewise.
30129         (inline_read_section, inline_write_summary): Do not stream self_time.
30130         * ipa-inline.h (inline_summary): Drop self_time.
30131
30132 2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
30133
30134         * ipa-inline-analysis.c (account_size_time): Rename to ...
30135         (inline_summary::account_size_time): ... this one.
30136         (reset_ipa_call_summary): Turn to ...
30137         (ipa_call_summary::reset): ... this one.
30138         (reset_inline_summary): Turn to ...
30139         (inline_summary::reset): ... this one.
30140         (inline_summary_t::remove): Update.
30141         (inline_summary_t::duplicate): Update.
30142         (ipa_call_summary_t::remove): Update.
30143         (dump_inline_summary): Update.
30144         (estimate_function_body_sizes): Update.
30145         (compute_inline_parameters): Update.
30146         (estimate_node_size_and_time): Update.
30147         (inline_merge_summary): Update.
30148         (inline_update_overall_summary): Update.
30149         (inline_read_section): Update.
30150         (inline_write_summary): Update.
30151         * ipa-inline.h (inline_summary): Rename entry to size_time_table;
30152         add account_size_time and reset member functions.
30153         (ipa_call_summary): Add reset function.
30154         * ipa-predicate.h (predicate::operator &): Constify.
30155
30156 2017-05-22  Richard Biener  <rguenther@suse.de>
30157
30158         * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
30159
30160 2017-05-19  Jason Merrill  <jason@redhat.com>
30161
30162         * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
30163
30164 2017-05-19  Marek Polacek  <polacek@redhat.com>
30165
30166         PR sanitizer/80800
30167         * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
30168         TYPE_OVERFLOW_WRAPS checks.
30169
30170 2017-05-19  Thomas Schwinge  <thomas@codesourcery.com>
30171
30172         * tree-core.h (enum omp_clause_default_kind): Add
30173         "OMP_CLAUSE_DEFAULT_PRESENT".
30174         * tree-pretty-print.c (dump_omp_clause): Handle it.
30175         * gimplify.c (enum gimplify_omp_var_data): Add
30176         "GOVD_MAP_FORCE_PRESENT".
30177         (gimplify_adjust_omp_clauses_1): Map it to
30178         "GOMP_MAP_FORCE_PRESENT".
30179         (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
30180
30181         * gimplify.c (oacc_default_clause): Clarify.
30182
30183 2017-05-19  Nathan Sidwell  <nathan@acm.org>
30184
30185         LANG_HOOK_REGISTER_DUMPS
30186         * toplev.c (general_init): Call register dump lang hook.
30187         * doc/invoke.texi: Document -fdump-lang option family.
30188         * dumpfile.c (dump_files): Remove class dump here.
30189         (FIRST_AUTO_NUMBERED_DUMP): Adjust.
30190         * dumpfile.h (tree_dump_index): Remove TDI_class.
30191         * langhooks-def.h (lhd_register_dumps): Declare.
30192         (LANG_HOOKS_REGISTER_DUMPS): Define.
30193         (LANG_HOOKS_INITIALIZER): Add it.
30194         * langhooks.c (lhd_register_dumps): Define.
30195         * langhooks.h (struct lang_hooks): Add register_dumps.
30196
30197 2017-05-19  Nathan Sidwell  <nathan@acm.org>
30198
30199         * context.h (context::set_passes): New.
30200         * context.c (context::context): Do not create pass manager.
30201         * toplev.c (general_init): Create pass manager here.
30202
30203 2017-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
30204
30205         * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
30206         use this splitter if two add or or instructions would also work for
30207         the constant we want to generate.
30208
30209 2017-05-19  Richard Biener  <rguenther@suse.de>
30210
30211         PR build/80821
30212         * genmatch.c (dt_node::gen_kids_1): Add missing scope around
30213         predicate evaluation.
30214
30215 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
30216
30217         * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
30218         add ctor.
30219         * ipa-inline.c (want_inline_small_function_p): Do not cast to
30220         unsigned.
30221
30222 2017-05-19  Jan Hubicka  <hubicka@ucw.cz>
30223
30224         * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
30225         inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
30226         (inline_edge_summary_vec): Turn into ...
30227         (ipa_call_summaries): ... this one.
30228         (redirect_to_unreachable, edge_set_predicate,
30229         evaluate_properties_for_edge, inline_summary_alloc,
30230         reset_ipa_call_summary, reset_inline_summary,
30231         inline_summary_t::duplicate): Update.
30232         (inline_edge_duplication_hook): Turn to ...
30233         (ipa_call_summary_t::duplicate): ... this one.
30234         (inline_edge_removal_hook): Turn to ...
30235         (ipa_call_summary_t::remove): ... this one.
30236         (dump_inline_edge_summary): Turn to ...
30237         (dump_ipa_call_summary): ... this one.
30238         (estimate_function_body_sizes): Update.
30239         (inline_update_callee_summaries): Update.
30240         (remap_edge_change_prob): Update.
30241         (remap_edge_summaries): Update.
30242         (inline_merge_summary): Update.
30243         (do_estimate_edge_time): Update.
30244         (inline_generate_summary): Update.
30245         (inline_read_section): Update.
30246         (inline_read_summary): Update.
30247         (inline_free_summary): Update.
30248         * ipa-inline.c (can_inline_edge_p): Update.
30249         (compute_inlined_call_time): Update.
30250         (want_inline_small_function_p): Update.
30251         (edge_badness): Update.
30252         (early_inliner): Update.
30253         * ipa-inline.h (inline_edge_summary): Turn to ...
30254         (ipa_call_summary): ... this one.
30255         (ipa_call_summary_t): New class.
30256         (inline_edge_summary_t, inline_edge_summary_vec): Remove.
30257         (ipa_call_summaries): New.
30258         (inline_edge_summary): Remove.
30259         (estimate_edge_growth): Update.
30260         * ipa-profile.c (ipa_propagate_frequency_1): Update.
30261         * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
30262         * ipa-split.c (execute_split_functions): Update.
30263         * ipa.c (symbol_table::remove_unreachable_nodes): Update.
30264
30265 2017-05-19  Richard Biener  <rguenther@suse.de>
30266
30267         PR middle-end/80764
30268         * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
30269
30270 2017-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
30271
30272         * config/rs6000/rs6000.c (struct machine_function): Add field
30273         fpr_is_wrapped_separately.
30274         (rs6000_get_separate_components): Use 64 components.  Handle the
30275         new FPR components.
30276         (rs6000_components_for_bb): Handle the FPR components.
30277         (rs6000_emit_prologue_components): Handle the FPR components.
30278         (rs6000_emit_epilogue_components): Handle the FPR components.
30279         (rs6000_set_handled_components): Handle the FPR components.
30280         (rs6000_emit_prologue): Don't output prologue code for those FPRs
30281         that are already separately shrink-wrapped.
30282         (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
30283         that are already separately shrink-wrapped.
30284
30285 2017-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
30286
30287         PR target/80510
30288         * config/rs6000/predicates.md (simple_offsettable_mem_operand):
30289         New predicate.
30290
30291         * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
30292         (define_peephole2 for Altivec d-form load): Add peepholes to catch
30293         cases where the register allocator uses a move and an offsettable
30294         memory operation to/from a FPR register on ISA 2.06/2.07.
30295         (define_peephole2 for Altivec d-form store): Likewise.
30296
30297 2017-05-18  Uros Bizjak  <ubizjak@gmail.com>
30298
30299         PR target/80799
30300         * config/i386/mmx.md (*mov<mode>_internal): Enable
30301         alternatives 11, 12, 13 and 14 also for 32bit targets.
30302         Remove alternatives 15, 16, 17 and 18.
30303         * config/i386/sse.md (vec_concatv2di): Change
30304         alternative (!x, *y) to (x, ?!*Yn).
30305
30306 2017-05-18  Paolo Carlini  <paolo.carlini@oracle.com>
30307
30308         * dumpfile.h (enum dump_kind): Remove stray comma.
30309
30310 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
30311
30312         * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
30313         * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
30314         predicate::num_conditions
30315         (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
30316         (CHANGED): turn into predicate::changed.
30317         (agg_position_info): Move to ipa-predicate.h
30318         (add_condition, predicate::add_clause, predicate::operator &=,
30319         predicate::or_with, predicate::evaluate, predicate::probability,
30320         dump_condition, dump_clause, predicate::dump,
30321         predicate::remap_after_duplication, predicate::remap_after_inlining,
30322         predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
30323         (evaluate_conditions_for_known_args): Update.
30324         (set_cond_stmt_execution_predicate): Update.
30325         * ipa-inline.h: Include ipa-predicate.h
30326         (condition, inline_param_summary, conditions, agg_position_info,
30327         predicate): Move to ipa-predicate.h
30328         * ipa-predicate.c: New file.
30329         * ipa-predicate.h: New file.
30330
30331 2017-05-18  Wilco Dijkstra  <wdijkstr@arm.com>
30332
30333         * final.c (leaf_function_p): Check we are not in a sequence.
30334
30335 2017-05-18  Martin Liska  <mliska@suse.cz>
30336
30337         * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
30338         * dumpfile.c (dump_register): Use new enum dump_kind.
30339         (get_dump_file_name): Likewise.
30340         (dump_enable_all): Likewise.
30341         (dump_switch_p_1): Likewise.
30342         (enable_rtl_dump_file): Remove usage of TDF_RTL.
30343         * dumpfile.h (enum dump_kind): New enum type.
30344         (struct dump_file_info): Create constructor and
30345         format fields and comments.
30346         * passes.c (pass_manager::register_one_dump_file):
30347         Use num dump_kind.
30348         * statistics.c (statistics_early_init): Likewise.
30349         * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
30350         TDF_TREE with TDF_SLIM.
30351         (gather_memory_references_ref): Likewise.
30352
30353 2017-05-18  Martin Liska  <mliska@suse.cz>
30354
30355         * vec.h (struct vnull): Use it.
30356
30357 2017-05-18  Jan Hubicka  <hubicka@ucw.cz>
30358
30359         * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
30360         (true_predicate, false_predicate, true_predicate_p,
30361         false_predicate_p): Remove.
30362         (single_cond_predicate, not_inlined_predicate): Turn to member function
30363         in ipa-inline.h
30364         (add_condition): Update.
30365         (add_clause): Turn to...
30366         (predicate::add_clause): ... this one; update; allow passing NULL
30367         as parameter.
30368         (and_predicates): Turn to ...
30369         (predicate::operator &=): ... this one.
30370         (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
30371         (or_predicates): Turn to ...
30372         (predicate::or_with): ... this one.
30373         (evaluate_predicate): Turn to ...
30374         (predicate::evaluate): ... this one.
30375         (predicate_probability): Turn to ...
30376         (predicate::probability): ... this one.
30377         (dump_condition): Update.
30378         (dump_predicate): Turn to ...
30379         (predicate::dump): ... this one.
30380         (account_size_time): Update.
30381         (edge_set_predicate): Update.
30382         (set_hint_predicate): UPdate.
30383         (evaluate_conditions_for_known_args): Update.
30384         (evaluate_properties_for_edge): Update.
30385         (remap_predicate_after_duplication): Turn to...
30386         (predicate::remap_after_duplication): ... this one.
30387         (remap_hint_predicate_after_duplication): Update.
30388         (inline_summary_t::duplicate): UPdate.
30389         (dump_inline_edge_summary): Update.
30390         (dump_inline_summary): Update.
30391         (set_cond_stmt_execution_predicate): Update.
30392         (set_switch_stmt_execution_predicate): Update.
30393         (compute_bb_predicates): Update.
30394         (will_be_nonconstant_expr_predicate): Update.
30395         (will_be_nonconstant_predicate): Update.
30396         (phi_result_unknown_predicate): Update.
30397         (predicate_for_phi_result): Update.
30398         (array_index_predicate): Update.
30399         (estimate_function_body_sizes): Update.
30400         (estimate_node_size_and_time): Update.
30401         (estimate_ipcp_clone_size_and_time): Update.
30402         (remap_predicate): Rename to ...
30403         (predicate::remap_after_inlining): ... this one.
30404         (remap_hint_predicate): Update.
30405         (inline_merge_summary): Update.
30406         (inline_update_overall_summary): Update.
30407         (estimate_size_after_inlining): Update.
30408         (read_predicate): Rename to ...
30409         (predicate::stream_in): ... this one.
30410         (read_inline_edge_summary): Update.
30411         (write_predicate): Rename to ...
30412         (predicate::stream_out): ... this one.
30413         (write_inline_edge_summary): Update.
30414         * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
30415         (clause_t): Turn to uint32_t
30416         (predicate): Turn to class; implement constructor and operators
30417         ==, !=, &
30418         (size_time_entry): Update.
30419         (inline_summary): Update.
30420         (inline_edge_summary): Update.
30421
30422 2017-05-18  Marc Glisse  <marc.glisse@inria.fr>
30423
30424         * fold-const.c (fold_binary_loc): Move transformation...
30425         * match.pd (C - X CMP X): ... here.
30426
30427 2017-05-18  Sheldon Lobo  <sheldon.lobo@oracle.com>
30428
30429         * config/sparc/sparc.c (sparc_option_override): Set function
30430         alignment for -mcpu=niagara7 to 64 to match the I$ line.
30431         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
30432         latency to 1.
30433         * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
30434         latency to 2.
30435         * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
30436
30437 2017-05-18  Marek Polacek  <polacek@redhat.com>
30438
30439         PR sanitizer/80797
30440         * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
30441         (pass_ubsan::execute): Call gimple_assign_single_p instead of
30442         gimple_assign_load_p.
30443
30444 2017-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
30445
30446         PR middle-end/80692
30447         * real.c (do_compare): Give decimal_do_compare preference over
30448         comparing just the signs.
30449
30450 2017-05-17  Uros Bizjak  <ubizjak@gmail.com>
30451
30452         * doc/md.texi (Canonicalization of Instructions): Describe the
30453         canonical form of instructions that inherently set a condition
30454         code register.
30455
30456 2017-05-17  Peter Bergner  <bergner@vnet.ibm.com>
30457
30458         PR middle-end/80775
30459         * tree-cfg.c: Move deletion of unreachable case statements to after
30460         the merging of consecutive case labels.
30461
30462 2017-05-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30463
30464         * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
30465         readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
30466         restoring of callee-saved registers.
30467
30468 2017-05-17  Eric Botcazou  <ebotcazou@adacore.com>
30469
30470         * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
30471         * config/visium/visium.c (single_set_and_flags): Likewise.
30472         * config/visium/visium.md (Substitutions): Likewise.
30473
30474 2017-05-17  Martin Liska  <mliska@suse.cz>
30475
30476         * cfg.c: Introduce dump_flags_t type and
30477         use it instead of int type.
30478         * cfg.h: Likewise.
30479         * cfghooks.c: Likewise.
30480         * cfghooks.h (struct cfg_hooks): Likewise.
30481         * cfgrtl.c: Likewise.
30482         * cfgrtl.h: Likewise.
30483         * cgraph.c (cgraph_node::get_body): Likewise.
30484         * coretypes.h: Likewise.
30485         * domwalk.c: Likewise.
30486         * domwalk.h: Likewise.
30487         * dumpfile.c (struct dump_option_value_info): Likewise.
30488         (dump_enable_all): Likewise.
30489         (dump_switch_p_1): Likewise.
30490         (opt_info_switch_p): Likewise.
30491         * dumpfile.h (enum tree_dump_index): Likewise.
30492         (struct dump_file_info): Likewise.
30493         * genemit.c: Likewise.
30494         * generic-match-head.c: Likewise.
30495         * gengtype.c (open_base_files): Likewise.
30496         * gimple-pretty-print.c: Likewise.
30497         * gimple-pretty-print.h: Likewise.
30498         * graph.c (print_graph_cfg): Likewise.
30499         * graphite-scop-detection.c (dot_all_sese): Likewise.
30500         * ipa-devirt.c (build_type_inheritance_graph): Likewise.
30501         * loop-unroll.c (report_unroll): Likewise.
30502         * passes.c (pass_manager::register_one_dump_file): Likewise.
30503         * print-tree.c: Likewise.
30504         * statistics.c: Likewise.
30505         * tree-cfg.c: Likewise.
30506         * tree-cfg.h: Likewise.
30507         * tree-dfa.c: Likewise.
30508         * tree-dfa.h: Likewise.
30509         * tree-dump.c (dump_function): Likewise.
30510         * tree-dump.h (struct dump_info): Likewise.
30511         * tree-pretty-print.c: Likewise.
30512         * tree-pretty-print.h: Likewise.
30513         * tree-ssa-live.c: Likewise.
30514         * tree-ssa-live.h: Likewise.
30515         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
30516         * tree-vect-loop.c: Likewise.
30517         * tree-vect-slp.c: Likewise.
30518
30519 2017-05-16  James Greenhalgh  <james.greenhalgh@arm.com>
30520             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30521
30522         PR tree-optimization/80457
30523         * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
30524         of all arguments to a statement as scalar_to_vec operations.
30525         (vectorizable_call): Adjust call to vect_model_simple_cost for
30526         new parameter.
30527         (vectorizable_conversion): Likewise.
30528         (vectorizable_assignment): Likewise.
30529         (vectorizable_shift): Likewise.
30530         (vectorizable_operation): Likewise.
30531         (vectorizable_comparison): Likewise.
30532         (vect_is_simple_cond): Record the def types for operands.
30533         (vectorizable_condition): Likewise, call vect_model_simple_cost.
30534         * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
30535         for statement argument count.
30536
30537 2017-05-16  Carl Love  <cel@us.ibm.com>
30538
30539         * config/rs6000/rs6000-c: Add support for built-in functions
30540         vector unsigned long long vec_bperm (vector unsigned long long,
30541                                              vector unsigned char)
30542         vector signed long long vec_mule (vector signed int,
30543                                           vector signed int)
30544         vector unsigned long long vec_mule (vector unsigned int,
30545                                             vector unsigned int)
30546         vector signed long long vec_mulo (vector signed int,
30547                                           vector signed int)
30548         vector unsigned long long vec_mulo (vector unsigned int,
30549                                             vector unsigned int)
30550         vector signed char vec_sldw (vector signed char,
30551                                      vector signed char,
30552                                      const int)
30553         vector unsigned char vec_sldw (vector unsigned char,
30554                                        vector unsigned char,
30555                                        const int)
30556         vector signed short vec_sldw (vector signed short,
30557                                       vector signed short,
30558                                       const int)
30559         vector unsigned short vec_sldw (vector unsigned short,
30560                                         vector unsigned short,
30561                                         const int)
30562         vector signed int vec_sldw (vector signed int,
30563                                     vector signed int,
30564                                     const int)
30565         vector unsigned int vec_sldw (vector unsigned int,
30566                                       vector unsigned int,
30567                                       const int)
30568         vector signed long long vec_sldw (vector signed long long,
30569                                           vector signed long long,
30570                                           const int)
30571         vector unsigned long long vec_sldw (vector unsigned long long,
30572                                             vector unsigned long long,
30573                                             const int)
30574         * config/rs6000/rs6000-c: Add support for built-in functions
30575         * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
30576         * config/rs6000/altivec.h: Add defintion for vec_sldw.
30577         * doc/extend.texi: Update the built-in documentation for the
30578         new built-in functions.
30579
30580 2017-05-16  Marek Polacek  <polacek@redhat.com>
30581
30582         PR sanitizer/80536
30583         PR sanitizer/80386
30584         * tree.c (save_expr): Don't fold the expression.
30585
30586 2017-05-16  Uros Bizjak  <ubizjak@gmail.com>
30587
30588         * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
30589         to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
30590         and (?*y,m).  Update insn attributes.
30591
30592 2017-05-16  Martin Liska  <mliska@suse.cz>
30593
30594         * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
30595         flags argument of print_gimple_stmt, print_gimple_expr,
30596         print_generic_stmt and print_generic_expr.
30597         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
30598         * coretypes.h: Likewise.
30599         * except.c (dump_eh_tree): Likewise.
30600         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
30601         * gimple-pretty-print.h: Likewise.
30602         * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
30603         (backprop::push_to_worklist): Likewise.
30604         (backprop::pop_from_worklist): Likewise.
30605         (backprop::process_use): Likewise.
30606         (backprop::intersect_uses): Likewise.
30607         (note_replacement): Likewise.
30608         * gimple-ssa-store-merging.c
30609         (pass_store_merging::terminate_all_aliasing_chains): Likewise.
30610         (imm_store_chain_info::coalesce_immediate_stores): Likewise.
30611         (pass_store_merging::execute): Likewise.
30612         * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
30613         (ssa_base_cand_dump_callback): Likewise.
30614         (dump_incr_vec): Likewise.
30615         (replace_refs): Likewise.
30616         (replace_mult_candidate): Likewise.
30617         (create_add_on_incoming_edge): Likewise.
30618         (create_phi_basis): Likewise.
30619         (insert_initializers): Likewise.
30620         (all_phi_incrs_profitable): Likewise.
30621         (introduce_cast_before_cand): Likewise.
30622         (replace_one_candidate): Likewise.
30623         * gimplify.c (gimplify_expr): Likewise.
30624         * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
30625         (set_rename): Likewise.
30626         (rename_uses): Likewise.
30627         (copy_loop_phi_nodes): Likewise.
30628         (add_close_phis_to_merge_points): Likewise.
30629         (copy_loop_close_phi_args): Likewise.
30630         (copy_cond_phi_args): Likewise.
30631         (graphite_copy_stmts_from_block): Likewise.
30632         (translate_pending_phi_nodes): Likewise.
30633         * graphite-poly.c (print_pdr): Likewise.
30634         (dump_gbb_cases): Likewise.
30635         (dump_gbb_conditions): Likewise.
30636         (print_scop_params): Likewise.
30637         * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
30638         (build_cross_bb_scalars_use): Likewise.
30639         (gather_bbs::before_dom_children): Likewise.
30640         * hsa-dump.c (dump_hsa_immed): Likewise.
30641         * ipa-cp.c (print_ipcp_constant_value): Likewise.
30642         (get_replacement_map): Likewise.
30643         * ipa-inline-analysis.c (dump_condition): Likewise.
30644         (estimate_function_body_sizes): Likewise.
30645         * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
30646         (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
30647         * ipa-prop.c (ipa_dump_param): Likewise.
30648         (ipa_print_node_jump_functions_for_edge): Likewise.
30649         (ipa_modify_call_arguments): Likewise.
30650         (ipa_modify_expr): Likewise.
30651         (ipa_dump_param_adjustments): Likewise.
30652         (ipa_dump_agg_replacement_values): Likewise.
30653         (ipcp_modif_dom_walker::before_dom_children): Likewise.
30654         * ipa-pure-const.c (check_stmt): Likewise.
30655         (pass_nothrow::execute): Likewise.
30656         * ipa-split.c (execute_split_functions): Likewise.
30657         * omp-offload.c (dump_oacc_loop_part): Likewise.
30658         (dump_oacc_loop): Likewise.
30659         * trans-mem.c (tm_log_emit): Likewise.
30660         (tm_memopt_accumulate_memops): Likewise.
30661         (dump_tm_memopt_set): Likewise.
30662         (dump_tm_memopt_transform): Likewise.
30663         * tree-cfg.c (gimple_verify_flow_info): Likewise.
30664         (print_loop): Likewise.
30665         * tree-chkp-opt.c (chkp_print_addr): Likewise.
30666         (chkp_gather_checks_info): Likewise.
30667         (chkp_get_check_result): Likewise.
30668         (chkp_remove_check_if_pass): Likewise.
30669         (chkp_use_outer_bounds_if_possible): Likewise.
30670         (chkp_reduce_bounds_lifetime): Likewise.
30671         * tree-chkp.c (chkp_register_addr_bounds): Likewise.
30672         (chkp_mark_completed_bounds): Likewise.
30673         (chkp_register_incomplete_bounds): Likewise.
30674         (chkp_mark_invalid_bounds): Likewise.
30675         (chkp_maybe_copy_and_register_bounds): Likewise.
30676         (chkp_build_returned_bound): Likewise.
30677         (chkp_get_bound_for_parm): Likewise.
30678         (chkp_build_bndldx): Likewise.
30679         (chkp_get_bounds_by_definition): Likewise.
30680         (chkp_generate_extern_var_bounds): Likewise.
30681         (chkp_get_bounds_for_decl_addr): Likewise.
30682         * tree-chrec.c (chrec_apply): Likewise.
30683         * tree-data-ref.c (dump_data_reference): Likewise.
30684         (dump_subscript): Likewise.
30685         (dump_data_dependence_relation): Likewise.
30686         (analyze_overlapping_iterations): Likewise.
30687         * tree-inline.c (expand_call_inline): Likewise.
30688         (tree_function_versioning): Likewise.
30689         * tree-into-ssa.c (dump_defs_stack): Likewise.
30690         (dump_currdefs): Likewise.
30691         (dump_names_replaced_by): Likewise.
30692         (dump_update_ssa): Likewise.
30693         (update_ssa): Likewise.
30694         * tree-object-size.c (pass_object_sizes::execute): Likewise.
30695         * tree-parloops.c (build_new_reduction): Likewise.
30696         (try_create_reduction_list): Likewise.
30697         (ref_conflicts_with_region): Likewise.
30698         (oacc_entry_exit_ok_1): Likewise.
30699         (oacc_entry_exit_single_gang): Likewise.
30700         * tree-pretty-print.h: Likewise.
30701         * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
30702         (get_scalar_evolution): Likewise.
30703         (add_to_evolution): Likewise.
30704         (get_loop_exit_condition): Likewise.
30705         (analyze_evolution_in_loop): Likewise.
30706         (analyze_initial_condition): Likewise.
30707         (analyze_scalar_evolution): Likewise.
30708         (instantiate_scev): Likewise.
30709         (number_of_latch_executions): Likewise.
30710         (gather_chrec_stats): Likewise.
30711         (final_value_replacement_loop): Likewise.
30712         (scev_const_prop): Likewise.
30713         * tree-sra.c (dump_access): Likewise.
30714         (disqualify_candidate): Likewise.
30715         (create_access): Likewise.
30716         (reject): Likewise.
30717         (maybe_add_sra_candidate): Likewise.
30718         (create_access_replacement): Likewise.
30719         (analyze_access_subtree): Likewise.
30720         (analyze_all_variable_accesses): Likewise.
30721         (sra_modify_assign): Likewise.
30722         (initialize_constant_pool_replacements): Likewise.
30723         (find_param_candidates): Likewise.
30724         (decide_one_param_reduction): Likewise.
30725         (replace_removed_params_ssa_names): Likewise.
30726         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
30727         * tree-ssa-copy.c (dump_copy_of): Likewise.
30728         (copy_prop_visit_cond_stmt): Likewise.
30729         * tree-ssa-dce.c (mark_operand_necessary): Likewise.
30730         * tree-ssa-dom.c (pass_dominator::execute): Likewise.
30731         (record_equivalences_from_stmt): Likewise.
30732         * tree-ssa-dse.c (compute_trims): Likewise.
30733         (delete_dead_call): Likewise.
30734         (delete_dead_assignment): Likewise.
30735         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
30736         (forward_propagate_into_cond): Likewise.
30737         (pass_forwprop::execute): Likewise.
30738         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
30739         * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
30740         Likewise.
30741         (move_computations_worker): Likewise.
30742         (execute_sm): Likewise.
30743         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
30744         (remove_exits_and_undefined_stmts): Likewise.
30745         (remove_redundant_iv_tests): Likewise.
30746         * tree-ssa-loop-ivopts.c (dump_use): Likewise.
30747         (adjust_iv_update_pos): Likewise.
30748         * tree-ssa-math-opts.c (bswap_replace): Likewise.
30749         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
30750         (value_replacement): Likewise.
30751         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
30752         * tree-ssa-pre.c (print_pre_expr): Likewise.
30753         (get_representative_for): Likewise.
30754         (create_expression_by_pieces): Likewise.
30755         (insert_into_preds_of_block): Likewise.
30756         (eliminate_insert): Likewise.
30757         (eliminate_dom_walker::before_dom_children): Likewise.
30758         (eliminate): Likewise.
30759         (remove_dead_inserted_code): Likewise.
30760         * tree-ssa-propagate.c (substitute_and_fold): Likewise.
30761         * tree-ssa-reassoc.c (get_rank): Likewise.
30762         (eliminate_duplicate_pair): Likewise.
30763         (eliminate_plus_minus_pair): Likewise.
30764         (eliminate_not_pairs): Likewise.
30765         (undistribute_ops_list): Likewise.
30766         (eliminate_redundant_comparison): Likewise.
30767         (update_range_test): Likewise.
30768         (optimize_range_tests_var_bound): Likewise.
30769         (optimize_vec_cond_expr): Likewise.
30770         (rewrite_expr_tree): Likewise.
30771         (rewrite_expr_tree_parallel): Likewise.
30772         (linearize_expr): Likewise.
30773         (break_up_subtract): Likewise.
30774         (linearize_expr_tree): Likewise.
30775         (attempt_builtin_powi): Likewise.
30776         (attempt_builtin_copysign): Likewise.
30777         (transform_stmt_to_copy): Likewise.
30778         (transform_stmt_to_multiply): Likewise.
30779         (dump_ops_vector): Likewise.
30780         * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
30781         (print_scc): Likewise.
30782         (set_ssa_val_to): Likewise.
30783         (visit_reference_op_store): Likewise.
30784         (visit_use): Likewise.
30785         (sccvn_dom_walker::before_dom_children): Likewise.
30786         (run_scc_vn): Likewise.
30787         * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
30788         Likewise.
30789         (expr_hash_elt::print): Likewise.
30790         (const_and_copies::pop_to_marker): Likewise.
30791         (const_and_copies::record_const_or_copy_raw): Likewise.
30792         * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
30793         * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
30794         (dump_predicates): Likewise.
30795         (find_uninit_use): Likewise.
30796         (warn_uninitialized_phi): Likewise.
30797         (pass_late_warn_uninitialized::execute): Likewise.
30798         * tree-ssa.c (verify_vssa): Likewise.
30799         (verify_ssa): Likewise.
30800         (maybe_optimize_var): Likewise.
30801         * tree-vrp.c (dump_value_range): Likewise.
30802         (dump_all_value_ranges): Likewise.
30803         (dump_asserts_for): Likewise.
30804         (register_edge_assert_for_2): Likewise.
30805         (vrp_visit_cond_stmt): Likewise.
30806         (vrp_visit_switch_stmt): Likewise.
30807         (vrp_visit_stmt): Likewise.
30808         (vrp_visit_phi_node): Likewise.
30809         (simplify_cond_using_ranges_1): Likewise.
30810         (fold_predicate_in): Likewise.
30811         (evrp_dom_walker::before_dom_children): Likewise.
30812         (evrp_dom_walker::push_value_range): Likewise.
30813         (evrp_dom_walker::pop_value_range): Likewise.
30814         (execute_early_vrp): Likewise.
30815
30816 2017-05-16  Richard Biener  <rguenther@suse.de>
30817
30818         * dwarf2out.c (loc_list_from_tree_1): Do not create
30819         DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
30820
30821 2017-05-16  Richard Biener  <rguenther@suse.de>
30822
30823         * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
30824         just generated.
30825         (note_variable_value_in_expr): If we resolved the decl ref
30826         do not push to the stack.
30827
30828 2017-05-16  Matthew Wahab  <matthew.wahab@arm.com>
30829
30830         * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
30831         operations in fast-math mode.
30832         (vaddq_f16): Likewise.
30833         (vmul_f16): Likewise.
30834         (vmulq_f16): Likewise.
30835         (vsub_f16): Likewise.
30836         (vsubq_f16): Likewise.
30837         * config/arm/neon.md (add<mode>3): New.
30838         (sub<mode>3): New.
30839         (fma:<VH:mode>3): New.  Also remove outdated comment.
30840         (mul<mode>3): New.
30841
30842 2017-05-16  Martin Liska  <mliska@suse.cz>
30843
30844         PR ipa/79849.
30845         PR ipa/79850.
30846         * ipa-devirt.c (warn_types_mismatch): Fix typo.
30847         (odr_types_equivalent_p): Likewise.
30848
30849 2017-05-15  Sylvestre Ledru  <sylvestre@debian.org>
30850
30851         * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
30852
30853 2017-05-15  Uros Bizjak  <ubizjak@gmail.com>
30854
30855         PR target/80425
30856         * config/i386.i386.md (*zero_extendsidi2): Do not penalize
30857         non-interunit SSE move alternatives with '?'.
30858         (zero-extendsidi peephole2): New peephole to skip intermediate
30859         general register in SSE zero-extend sequence.
30860
30861 2017-05-15  Jeff Law  <law@redhat.com>
30862
30863         * reorg.c (relax_delay_slots): Create a new variable to hold
30864         the temporary target rather than clobbering TARGET_LABEL.
30865
30866         * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
30867         missing argument to extract_bit_field call.
30868         * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
30869
30870 2017-05-15  Martin Liska  <mliska@suse.cz>
30871
30872         PR driver/31468
30873         * gcc.c (process_command): Do not allow empty argument of -o option.
30874
30875 2017-05-15  Renlin Li  <renlin.li@arm.com>
30876
30877         * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
30878         * config/aarch64/aarch64.c (aarch64_expand_call): Define.
30879         * config/aarch64/constraints.md (Usf): Add long call check.
30880         * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
30881         (call_value): Likewise.
30882         (sibcall): Likewise.
30883         (sibcall_value): Likewise.
30884         (call_insn): New.
30885         (call_value_insn): New.
30886         (sibcall_insn): Update rtx pattern.
30887         (sibcall_value_insn): Likewise.
30888         (call_internal): Remove.
30889         (call_value_internal): Likewise.
30890         (sibcall_internal): Likewise.
30891         (sibcall_value_internal): Likewise.
30892         (call_reg): Likewise.
30893         (call_symbol): Likewise.
30894         (call_value_reg): Likewise.
30895         (call_value_symbol): Likewise.
30896
30897 2017-05-14  Krister Walfridsson  <krister.walfridsson@gmail.com>
30898
30899         PR target/80600
30900         * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
30901
30902 2017-05-14  Uros Bizjak  <ubizjak@gmail.com>
30903
30904         * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
30905         compatible with CCGOCmode and with CCZmode.
30906
30907 2017-05-14  Martin Sebor  <msebor@redhat.com>
30908
30909         PR middle-end/77671
30910         * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
30911         (gimple_fold_builtin_snprintf): Same.
30912         * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
30913         (gimple_fold_builtin_snprintf): Same.
30914         * gimple-ssa-sprintf.c (get_format_string): Correct the detection
30915         of character types.
30916         (is_call_safe): New function.
30917         (try_substitute_return_value): Call it.
30918         (try_simplify_call): New function.
30919         (pass_sprintf_length::handle_gimple_call): Call it.
30920
30921 2017-05-14  Martin Sebor  <msebor@redhat.com>
30922
30923         PR middle-end/80669
30924         * builtins.c (expand_builtin_stpncpy): Simplify.
30925
30926 2017-05-14  Daniel Santos  <daniel.santos@pobox.com>
30927
30928         * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
30929         * config/i386/i386.h
30930         (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
30931         (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
30932         (struct machine_function): Add new members call_ms2sysv,
30933         call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
30934         (struct machine_frame_state): New fields sp_realigned and
30935         sp_realigned_offset.
30936         * config/i386/i386.c
30937         (enum xlogue_stub): New enum.
30938         (enum xlogue_stub_sets): New enum.
30939         (class xlogue_layout): New class.
30940         (struct ix86_frame): New fields stack_realign_allocate_offset,
30941         stack_realign_offset and outlined_save_offset.  Modify comments to
30942         detail stack layout when using out-of-line stubs.
30943         (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
30944         (ix86_option_override_internal): Add sorry() for TARGET_SEH and
30945         -mcall-ms2sysv-xlogues.
30946         (stub_managed_regs): New static variable.
30947         (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
30948         registers managed by out-of-line stub.
30949         (disable_call_ms2sysv_xlogues): New function.
30950         (ix86_compute_frame_layout): Modify re-alignment calculations, disable
30951         m->call_ms2sysv when appropriate and compute frame layout for
30952         out-of-line stubs.
30953         (sp_valid_at, fp_valid_at): New inline functions.
30954         (choose_basereg): New function.
30955         (choose_baseaddr): Add align parameter, use choose_basereg and modify
30956         all callers.
30957         (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
30958         Use align parameter of choose_baseaddr to generated aligned SSE movs
30959         when possible.
30960         (pro_epilogue_adjust_stack): Modify to track
30961         machine_frame_state::sp_realigned.
30962         (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
30963         (ix86_nsaved_sseregs): Likewise.
30964         (ix86_emit_save_regs): Likewise.
30965         (ix86_emit_save_regs_using_mov): Likewise.
30966         (ix86_emit_save_sse_regs_using_mov): Likewise.
30967         (get_scratch_register_on_entry): Likewise.
30968         (gen_frame_set): New function.
30969         (gen_frame_load): Likewise.
30970         (gen_frame_store): Likewise.
30971         (emit_outlined_ms2sysv_save): Likewise.
30972         (emit_outlined_ms2sysv_restore): Likewise.
30973         (ix86_expand_prologue): Modify stack re-alignment code and call
30974         emit_outlined_ms2sysv_save when appropriate.
30975         (ix86_emit_leave): Clear machine_frame_state::sp_realigned.  Add
30976         parameter rtx_insn *insn, which allows the function to be used to only
30977         generate the notes.
30978         (ix86_expand_epilogue): Modify validity checks of frame and stack
30979         pointers, and call emit_outlined_ms2sysv_restore when appropriate.
30980         (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
30981         * config/i386/predicates.md
30982         (save_multiple): New predicate.
30983         (restore_multiple): Likewise.
30984         * config/i386/sse.md
30985         (save_multiple<mode>): New pattern.
30986         (save_multiple_realign<mode>): Likewise.
30987         (restore_multiple<mode>): Likewise.
30988         (restore_multiple_and_return<mode>): Likewise.
30989         (restore_multiple_leave_return<mode>): Likewise.
30990         * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
30991
30992 2017-05-14  Julia Koval  <julia.koval@intel.com>
30993
30994         * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
30995         * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
30996         (__builtin_ia32_xsetbv): New builtins.
30997         * config/i386/i386.c (ix86_expand_special_args_builtin):
30998         Process new types.
30999         (ix86_expand_builtin): Special expand for new intrinsics.
31000         * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
31001         (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
31002         * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
31003
31004 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31005
31006         * cfganal.c (inverted_post_order_compute): Change argument type
31007         to vec *.
31008         * cfganal.h (inverted_post_order_compute): Adjust prototype.
31009         * df-core.c (rest_of_handle_df_initialize): Adjust.
31010         (rest_of_handle_df_finish): Likewise.
31011         (df_analyze_1): Likewise.
31012         (df_analyze): Likewise.
31013         (loop_inverted_post_order_compute): Change argument to be a vec *.
31014         (df_analyze_loop): Adjust.
31015         (df_get_n_blocks): Likewise.
31016         (df_get_postorder): Likewise.
31017         * df.h (struct df_d): Change field to be a vec.
31018         * lcm.c (compute_laterin): Adjust.
31019         (compute_available): Likewise.
31020         * lra-lives.c (lra_create_live_ranges_1): Likewise.
31021         * tree-ssa-dce.c (remove_dead_stmt): Likewise.
31022         * tree-ssa-pre.c (compute_antic): Likewise.
31023
31024 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31025
31026         * cfganal.c (connect_infinite_loops_to_exit): Adjust.
31027         (depth_first_search::depth_first_search): Change structure init
31028         function to this constructor.
31029         (depth_first_search::add_bb): Rename function to this member.
31030         (depth_first_search::execute): Likewise.
31031         (flow_dfs_compute_reverse_finish): Adjust.
31032
31033 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31034
31035         * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
31036         (longest_simple_path): Likewise.
31037         * shrink-wrap.c (spread_components): Likewise.
31038         (disqualify_problematic_components): Likewise.
31039         (emit_common_heads_for_components): Likewise.
31040         (emit_common_tails_for_components): Likewise.
31041         (insert_prologue_epilogue_for_components): Likewise.
31042
31043 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31044
31045         * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
31046         auto_sbitmap.
31047
31048 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31049
31050         * df-core.c (df_set_blocks): Start using auto_bitmap.
31051         (df_compact_blocks): Likewise.
31052         * df-problems.c (df_rd_confluence_n): Likewise.
31053         * df-scan.c (df_insn_rescan_all): Likewise.
31054         (df_process_deferred_rescans): Likewise.
31055         (df_update_entry_block_defs): Likewise.
31056         (df_update_exit_block_uses): Likewise.
31057         (df_entry_block_bitmap_verify): Likewise.
31058         (df_exit_block_bitmap_verify): Likewise.
31059         (df_scan_verify): Likewise.
31060         * lra-constraints.c (lra_constraints): Likewise.
31061         (undo_optional_reloads): Likewise.
31062         (lra_undo_inheritance): Likewise.
31063         * lra-remat.c (calculate_gen_cands): Likewise.
31064         (do_remat): Likewise.
31065         * lra-spills.c (assign_spill_hard_regs): Likewise.
31066         (spill_pseudos): Likewise.
31067         * tree-ssa-pre.c (bitmap_set_and): Likewise.
31068         (bitmap_set_subtract_values): Likewise.
31069
31070 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31071
31072         * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
31073         management with auto_bitmap.
31074         (fix_inter_tick): Likewise.
31075         (fix_recovery_deps): Likewise.
31076         * ira.c (add_store_equivs): Likewise.
31077         (find_moveable_pseudos): Likewise.
31078         (split_live_ranges_for_shrink_wrap): Likewise.
31079         * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
31080         (rtx_reuse_manager::seen_def_p): Likewise.
31081         (rtx_reuse_manager::set_seen_def): Likewise.
31082         * print-rtl.h (class rtx_reuse_manager): Likewise.
31083
31084 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31085
31086         * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
31087         lifetime.
31088         (migrate_btr_def): Likewise.
31089         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
31090         * df-core.c (loop_post_order_compute): Likewise.
31091         (loop_inverted_post_order_compute): Likewise.
31092         * hsa-common.h: Likewise.
31093         * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
31094         * init-regs.c (initialize_uninitialized_regs): Likewise.
31095         * ipa-inline.c (resolve_noninline_speculation): Likewise.
31096         (inline_small_functions): Likewise.
31097         * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
31098         * ira.c (combine_and_move_insns): Likewise.
31099         (build_insn_chain): Likewise.
31100         * loop-invariant.c (find_invariants): Likewise.
31101         * lower-subreg.c (propagate_pseudo_copies): Likewise.
31102         * predict.c (tree_predict_by_opcode): Likewise.
31103         (predict_paths_leading_to): Likewise.
31104         (predict_paths_leading_to_edge): Likewise.
31105         (estimate_loops_at_level): Likewise.
31106         (estimate_loops): Likewise.
31107         * shrink-wrap.c (try_shrink_wrapping): Likewise.
31108         (spread_components): Likewise.
31109         * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
31110         * tree-loop-distribution.c (rdg_build_partitions): Likewise.
31111         * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
31112         * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
31113         * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
31114         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
31115         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
31116         * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
31117         (mark_threaded_blocks): Likewise.
31118         (thread_through_all_blocks): Likewise.
31119         * tree-ssa.c (verify_ssa): Likewise.
31120         (execute_update_addresses_taken): Likewise.
31121         * tree-ssanames.c (verify_ssaname_freelists): Likewise.
31122
31123 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31124
31125         * cfganal.c (mark_dfs_back_edges): Replace manual stack with
31126         auto_vec.
31127         (post_order_compute): Likewise.
31128         (inverted_post_order_compute): Likewise.
31129         (pre_and_rev_post_order_compute_fn): Likewise.
31130
31131 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31132
31133         * genrecog.c (int_set::int_set): Explicitly construct our
31134         auto_vec base class.
31135         * vec.h (auto_vec::auto_vec): New constructor.
31136
31137 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31138
31139         * bitmap.h (class auto_bitmap): New constructor taking
31140         bitmap_obstack * argument.
31141
31142 2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
31143
31144         * bitmap.h (class auto_bitmap): Change type of m_bits to
31145         bitmap_head, and adjust ctor / dtor and member operators.
31146
31147 2017-05-13  Uros Bizjak  <ubizjak@gmail.com>
31148
31149         * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
31150         when returned register mode doesn't match original mode.
31151
31152 2017-05-12  Jeff Law  <law@redhat.com>
31153             Jakub Jelinek  <jakub@redhat.com>
31154
31155         * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
31156         we look for cc setter after the compare-elim changes.
31157         * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
31158         within the vector to match what compare-elim now expects.
31159         (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
31160         (xorsi3_flags, one_cmplsi2_flags): Likewise.
31161
31162         * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
31163         after the compare-elim changes.
31164         * config/rx/rx.md (abssi2_flags): Fix order of patterns within
31165         the vector to match what compare-elim now expects.
31166         (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
31167         (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
31168         (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
31169         (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
31170         (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
31171
31172         * config/visium/visium.c (single_set_and_flags): Fix where
31173         we look for cc setter after the compare-elim changes.
31174         * config/visium/visium.md (flags_subst_logic): Fix order of patterns
31175         with the vector to match what compare-elim now expects.
31176         (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
31177         (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
31178         (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
31179         (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
31180         (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
31181         (neg<mode>2_insn_set_overflow): Likewise.
31182
31183 2017-05-12  Jim Wilson  <jim.wilson@linaro.org>
31184
31185         PR middle-end/79794
31186         * expmed.c (extract_bit_field_1): Add alt_rtl argument.  Before
31187         maybe_expand_insn call, set ops[0].target.  If still set after call,
31188         set alt_rtl.  Add extra arg to recursive calls.
31189         (extract_bit_field): Add alt_rtl argument.  Pass to
31190         extract_bit_field.
31191         * expmed.h (extract_bit_field): Fix prototype.
31192         * expr.c (emit_group_load_1, copy_blkmode_from_reg)
31193         (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
31194         to extract_bit_field_calls.
31195         (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
31196         Pass alt_rtl to extract_bit_field calls.
31197         * calls.c (store_unaligned_arguments_into_psuedos)
31198         load_register_parameters): Pass extra NULL to extract_bit_field calls.
31199         * optabs.c (maybe_legitimize_operand): Clear op->target when call
31200         gen_reg_rtx.
31201         * optabs.h (struct expand_operand): Add target bitfield.
31202
31203 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
31204
31205         * compare-elim.c (try_eliminate_compare): Canonicalize
31206         operation with embedded compare to
31207         [(set (reg:CCM) (compare:CCM (operation) (immediate)))
31208          (set (reg) (operation)].
31209
31210         * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
31211
31212 2017-05-12  Uros Bizjak  <ubizjak@gmail.com>
31213
31214         PR target/80723
31215         * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
31216         cost of adding a carry flag for ADC instruction.
31217         [case MINUS]: Ignore the cost of subtracting a carry flag
31218         for SBB instruction.
31219
31220 2017-05-12  Steven Munroe  <munroesj@gcc.gnu.org>
31221
31222         * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
31223         and x86intrin.h
31224         * config/rs6000/bmiintrin.h: New file.
31225         * config/rs6000/bmi2intrin.h: New file.
31226         * config/rs6000/x86intrin.h: New file.
31227
31228 2017-05-12  Jeff Law  <law@redhat.com>
31229
31230         * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
31231         markers.
31232
31233 2017-05-12  Peter Bergner  <bergner@vnet.ibm.com>
31234
31235         PR middle-end/80707
31236         * tree-cfg.c: Remove cfg edges of unreachable case statements.
31237
31238 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31239
31240         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
31241         early expansion of vector divide builtins.
31242         (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
31243         builtins identified as having unsigned arguments.
31244
31245 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31246
31247         * config/rs6000/rs6000.c (gimple-fold.h): New #include.
31248         (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
31249         expansion of vector logical operations (and, andc, or, xor,
31250         nor, orc, nand).
31251
31252 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31253
31254         * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
31255         * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
31256
31257 2017-05-12  Will Schmidt  <will_schmidt@vnet.ibm.com>
31258
31259         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
31260         early GIMPLE expansion of vector multiplies.
31261
31262 2017-05-12  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
31263
31264         * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
31265         TARGET_HAVE_MOVT conditional.
31266         (movt splitter): Likewise.
31267
31268 2017-05-12  Richard Biener  <rguenther@suse.de>
31269
31270         * tree-ssa-sccvn.h (has_VN_INFO): Declare.
31271         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
31272         Fold all stmts not inplace.
31273
31274 2017-05-12  Richard Biener  <rguenther@suse.de>
31275
31276         PR tree-optimization/80713
31277         * tree-ssa-pre.c (remove_dead_inserted_code): Clear
31278         inserted_exprs bit for not removed stmts.
31279
31280 2017-05-12  Thomas Schwinge  <thomas@codesourcery.com>
31281
31282         PR middle-end/69921
31283         * tree-parloops.c (create_parallel_loop): Set "oacc kernels
31284         parallelized" attribute for parallelized OpenACC kernels.
31285         * omp-offload.c (execute_oacc_device_lower): Use it.
31286
31287         * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
31288         Set "oacc kernels" attribute.
31289         * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
31290         parameter.  Adjust all users.
31291         (oacc_fn_attrib_kernels_p): Remove function.
31292         * omp-offload.c (execute_oacc_device_lower): Look for "oacc
31293         kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
31294         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
31295         * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
31296         assert "oacc kernels" attribute is set.
31297
31298 2017-05-11  Carl Love  <cel@us.ibm.com>
31299
31300         * config/rs6000/rs6000-c: Add support for built-in functions
31301         vector unsigned char vec_popcnt (vector signed char)
31302         vector unsigned char vec_popcnt (vector unsigned char)
31303         vector unsigned short vec_popcnt (vector signed short)
31304         vector unsigned short vec_popcnt (vector unsigned short)
31305         vector unsigned int vec_popcnt (vector signed int)
31306         vector unsigned int vec_popcnt (vector unsigned int)
31307         vector unsigned long long vec_popcnt (vector signed long long)
31308         vector unsigned long long vec_popcnt (vector unsigned long long)
31309         vector signed long long vec_slo (vector signed long long,
31310                                          vector signed char)
31311         vector signed long long vec_slo (vector signed long long,
31312                                          vector unsigned char)
31313         vector unsigned long long vec_slo (vector unsigned long long,
31314                                            vector signed char)
31315         vector unsigned long long vec_slo (vector unsigned long long,
31316                                            vector unsigned char)
31317         * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
31318         VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
31319         * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
31320         vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
31321         * doc/extend.texi: Update the built-in documentation file for the
31322         new built-in functions.
31323
31324 2017-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
31325
31326         * attribs.h (sorted_attr_string): Move machine independent
31327         functions for target clone support from the i386 port to common
31328         code.  Rename ix86_function_versions to common_function_versions.
31329         Rename make_name to make_unique_name.
31330         (common_function_versions): Likewise.
31331         (make_unique_name): Likewise.
31332         (make_dispatcher_decl): Likewise.
31333         (is_function_default_version): Likewise.
31334         * attribs.c (attr_strcmp): Likewise.
31335         (sorted_attr_string): Likewise.
31336         (common_function_versions): Likewise.
31337         (make_unique_name): Likewise.
31338         (make_dispatcher_decl): Likewise.
31339         (is_function_default_version): Likewise.
31340         * config/i386/i386.c (attr_strcmp): Likewise.
31341         (sorted_attr_string): Likewise.
31342         (ix86_function_versions): Likewise.
31343         (make_name): Likewise.
31344         (make_dispatcher_decl): Likewise.
31345         (is_function_default_version): Likewise.
31346         (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
31347
31348 2017-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31349
31350         PR target/80695
31351         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
31352         Account for direct move costs for vec_construct of integer
31353         vectors.
31354
31355 2017-05-11  Uros Bizjak  <ubizjak@gmail.com>
31356
31357         PR target/80706
31358         * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
31359         (UNSPEC_STX_ATOMIC): Ditto.
31360         (loaddi_via_sse): New insn.
31361         (storedi_via_sse): Ditto.
31362         (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
31363         Update corresponding peephole2 patterns.
31364         (atomic_storedi_fpu): Ditto.
31365
31366 2017-05-11  Julia Koval  <julia.koval@intel.com>
31367
31368         * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
31369         (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
31370         New intrinsics.
31371         * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
31372         (__builtin_ia32_rsqrt14ss_mask): New builtins.
31373         * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
31374
31375 2017-05-11  Nathan Sidwell  <nathan@acm.org>
31376
31377         * graphite-poly.c: Include dumpfile.h.
31378
31379         * dumpfle.h (dump_function): Declare here ...
31380         * tree-dump.h (dump_function): ... not here.
31381         * dumpfile.c: #include tree-cfg.h.
31382         (dump_function): Move here from ...
31383         * tree-dump.c (dump_function): ... here.
31384         * gimplify.c: #include splay-tree.h, not tree-dump.h.
31385         * graphite-poly.c: Don't include tree-dump.h.
31386         * cgraphclones.c: Include dumpfile.h not tree-dump.h.
31387         * print-tree.c: Likewise.
31388         * stor-layout.c: Likewise.
31389         * tree-nested.c: Likewise.
31390
31391         * dumpfile.c (dump_start): Use TDF_FLAGS.
31392         (dump_enable_all): Fix TDF_KIND check thinko.
31393
31394 2017-05-11  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31395
31396         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
31397         array entries to represent two legal parameterizations of the
31398         overloaded __builtin_cmpb function, as represented by the
31399         P6_OV_BUILTIN_CMPB constant.
31400         (altivec_resolve_overloaded_builtin): Add special case handling
31401         for the __builtin_cmpb function, as represented by the
31402         P6_OV_BUILTIN_CMPB constant.
31403         * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
31404         (BU_P6_64BIT_2): New macro.
31405         (BU_P6_OVERLOAD_2): New macro
31406         (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
31407         (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
31408         (CMPB): Add overload support to represent both 32-bit and 64-bit
31409         compare-bytes function.
31410         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
31411         support for TARGET_CMPB.
31412         * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
31413         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
31414         documentation of the __builtin_cmpb overloaded built-in function.
31415
31416 2017-05-11  Richard Biener  <rguenther@suse.de>
31417
31418         PR tree-optimization/80705
31419         * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
31420         bases are not vectorizable.
31421
31422 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31423
31424         * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
31425         when counting register pressure.
31426
31427 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31428
31429         * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
31430         (iv_ca_more_deps): Renamed to ...
31431         (iv_ca_compare_deps): ... this.
31432         (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
31433
31434 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31435
31436         * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
31437         to ...
31438         (determine_group_iv_costs): ... here.
31439         (find_inv_vars_cb): Record inv var if it's not recorded before.
31440
31441 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31442
31443         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
31444         (get_shiftadd_cost): Ditto.
31445
31446 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31447
31448         * tree-ssa-address.c: Include header file.
31449         (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
31450         address.
31451         (add_to_parts): Refactor.
31452         (addr_to_parts): New parameter.  Update use of move_hint_to_base.
31453         (create_mem_ref): Update use of addr_to_parts.  Re-associate addr
31454         in new order.
31455
31456 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31457
31458         PR tree-optimization/53090
31459         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
31460         COMP_IV_EXPR_2.
31461         (extract_cond_operands): Detect condition with IV on both sides
31462         and return COMP_IV_EXPR_2.
31463         (find_interesting_uses_cond): Add iv_use for both IVs in condition.
31464         (rewrite_use_compare): Simplify by removing call to function
31465         extract_cond_operands.
31466
31467 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31468
31469         * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
31470         (extract_cond_operands): Detect condition comparing against non-
31471         invariant bound and return appropriate enum value.
31472         (find_interesting_uses_cond): Update use of extract_cond_operands.
31473         Handle its return value accordingly.
31474         (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
31475
31476 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31477
31478         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
31479         nonlinear iv_use computation in loop invariant sensitive way.
31480
31481 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31482
31483         * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
31484         (find_iv_candidates): Call relate_compare_use_with_all_cands.
31485
31486 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31487
31488         * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
31489         (dump_cand): Support iv_cand.inv_exprs.
31490         (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
31491         for candidates.
31492         (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
31493         iv_cand.inv_exprs.
31494
31495 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31496
31497         * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
31498         from ...
31499         * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
31500         as local function.  Include necessary header files.
31501         * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
31502
31503 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31504
31505         * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
31506
31507 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31508
31509         * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
31510         operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
31511         RSHIFT_EXPR and BIT_NOT_EXPR.
31512
31513 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31514
31515         * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
31516         (adjust_setup_cost): New parameter supporting round up adjustment.
31517         (struct address_cost_data): Delete.
31518         (force_expr_to_var_cost): Don't bound cost with spill_cost.
31519         (split_address_cost, ptr_difference_cost): Delete.
31520         (difference_cost, compare_aff_trees, record_inv_expr): Delete.
31521         (struct ainc_cost_data): New struct.
31522         (get_address_cost_ainc): New function.
31523         (get_address_cost, get_computation_cost): Reimplement.
31524         (determine_group_iv_cost_address): Record inv_expr for all uses of
31525         a group.
31526         (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
31527         (iv_ca_has_deps): Reimplemented to ...
31528         (iv_ca_more_deps): ... this.  Check if NEW_CP introduces more deps
31529         than OLD_CP.
31530         (iv_ca_extend): Call iv_ca_more_deps.
31531
31532 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31533
31534         * tree-ssa-address.c (struct mem_address): Move to header file.
31535         (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
31536         * tree-ssa-address.h (struct mem_address): Move from C file.
31537         (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
31538
31539 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31540
31541         * tree-affine.h (aff_combination_type): New interface.
31542         (aff_combination_zero_p): Remove static.
31543         (aff_combination_const_p): New interface.
31544         (aff_combination_singleton_var_p): New interfaces.
31545
31546 2017-05-11  Richard Biener  <rguenther@suse.de>
31547
31548         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
31549         Skip unreachable blocks and destinations.
31550         (eliminate): Move stmt removal and fixup ...
31551         (fini_eliminate): ... here.  Skip inserted exprs.
31552         (pass_pre::execute): Move fini_pre after fini_eliminate.
31553         * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
31554         (tail_merge_optimize): Run cleanup_tree_cfg if requested by
31555         PRE to get rid of dead code that has invalid SSA form and
31556         split critical edges again.
31557
31558 2017-05-11  Bin Cheng  <bin.cheng@arm.com>
31559
31560         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
31561
31562 2017-05-11  Richard Biener  <rguenther@suse.de>
31563
31564         * passes.c (execute_function_todo): Verify loops if they are
31565         said to be up-to-date.
31566         * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
31567         * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
31568
31569 2017-05-10  John David Anglin  <danglin@gcc.gnu.org>
31570
31571         PR target/80090
31572         * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
31573         handle calling assemble_external ourself.
31574
31575         PR target/79027
31576         * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
31577         modes with zero size.  Enhance comment.
31578
31579 2017-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31580
31581         * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
31582         built-ins for vec_xl and vec_xst with short and char pointer
31583         arguments.
31584
31585 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
31586
31587         * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
31588         (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
31589         (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
31590         (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
31591         (_mm_maskz_min_round_ss): New intrinsics.
31592         * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
31593         (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
31594         * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
31595         (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
31596         (__builtin_ia32_minss_mask_round): New builtins.
31597         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31598         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31599         * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
31600         Rename to ...
31601         (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
31602         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
31603         Change to ...
31604         (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
31605         ... this.
31606
31607 2017-05-10  Sebastian Peryt  <sebastian.peryt@intel.com>
31608
31609         * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
31610         (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
31611         (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
31612         (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
31613         (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
31614         (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
31615         (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
31616         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31617         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
31618         * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
31619         (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
31620         (__builtin_ia32_mulss_mask_round): New builtins.
31621         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
31622         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
31623         * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
31624         Rename to ...
31625         (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
31626         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
31627         Change to ...
31628         (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
31629         ... this.
31630
31631 2017-05-10  Julia Koval  <julia.koval@intel.com>
31632
31633         * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
31634         (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
31635         (_mm256_setr_m128i): New intrinsics.
31636
31637 2017-05-10  Julia Koval  <julia.koval@intel.com>
31638
31639         * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
31640         (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
31641         (_mm_maskz_rcp14_ss): New intrinsics.
31642         * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
31643         (__builtin_ia32_rcp14ss_mask): New builtins.
31644         * config/i386/sse.md (srcp14<mode>_mask): New pattern.
31645
31646 2017-05-10  Peter Bergner  <bergner@vnet.ibm.com>
31647
31648         PR tree-optimization/51513
31649         * tree-cfg.c (gimple_seq_unreachable_p): New function.
31650         (assert_unreachable_fallthru_edge_p): Use it.
31651         (group_case_labels_stmt): Likewise.
31652         * tree-cfg.h: Prototype it.
31653         * stmt.c: Include cfghooks.h and tree-cfg.h.
31654         (emit_case_dispatch_table) <gap_label>: New local variable.
31655         Use it to fill dispatch table gaps.
31656         Test for default_label before updating probabilities.
31657         (expand_case) <default_label>: Remove unneeded initialization.
31658         Test for unreachable default case statement and remove its edge.
31659         Set default_label accordingly.
31660         * tree-ssa-ccp.c (optimize_unreachable): Update comment.
31661
31662 2017-05-10  Carl Love  <cel@us.ibm.com>
31663
31664         * config/rs6000/rs6000-c: Add support for built-in functions
31665         vector signed char      vec_neg (vector signed char)
31666         vector signed short int vec_neg (vector short int)
31667         vector signed int       vec_neg (vector signed int)
31668         vector signed long long vec_neg (vector signed long long)
31669         vector float            vec_neg (vector float)
31670         vector double           vec_neg (vector double)
31671         * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
31672         overload.
31673         * config/rs6000/altivec.h: Add define for vec_neg
31674         * doc/extend.texi: Update the built-in documentation for the
31675         new built-in functions.
31676
31677 2017-05-10  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
31678
31679         PR tree-optimization/77644
31680         * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
31681
31682 2017-05-10  Nathan Sidwell  <nathan@acm.org>
31683
31684         * dumpfile.h (TDI_lang_all): New.
31685         (TDF_KIND): New. Renumber others
31686         (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
31687         than bits.
31688         * dumpfile.c (dump_files): Mark language dumps as TDF_LANG.  add
31689         lang-all.
31690         (get_dump_file_name): Adjust suffix generation.
31691         (dump_enable_all): Use TDF_KIND.
31692         * doc/invoke.texi (-fdump-lang-all): Document.
31693
31694         * dumpfile.h: Tabify.
31695
31696 2017-05-10  Wilco Dijkstra  <wdijkstr@arm.com>
31697
31698         PR target/80671
31699         * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
31700         Move member access before delete.
31701
31702 2017-05-10  Alexandre Oliva  <aoliva@redhat.com>
31703
31704         * tree-inline.c (expand_call_inline): Split block at stmt
31705         before the call.
31706
31707 2017-05-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
31708
31709         PR target/68163
31710         * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
31711         are now unused after splitting mov{sf,sd}_hardfloat.
31712         (f32_lr2): Likewise.
31713         (f32_lm): Likewise.
31714         (f32_lm2): Likewise.
31715         (f32_li): Likewise.
31716         (f32_li2): Likewise.
31717         (f32_lv): Likewise.
31718         (f32_sr): Likewise.
31719         (f32_sr2): Likewise.
31720         (f32_sm): Likewise.
31721         (f32_sm2): Likewise.
31722         (f32_si): Likewise.
31723         (f32_si2): Likewise.
31724         (f32_sv): Likewise.
31725         (f32_dm): Likewise.
31726         (f32_vsx): Likewise.
31727         (f32_av): Likewise.
31728         (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
31729         For movsf, order stores so the VSX stores occur before the GPR
31730         store which encourages the register allocator to use a traditional
31731         FPR instead of a GPR.  For movsd, order the stores so that the GPR
31732         store comes before the VSX stores to allow the power6 to work.
31733         This is due to the power6 not having a 32-bit integer store
31734         instruction from a FPR.
31735         (movsf_hardfloat): Likewise.
31736         (movsd_hardfloat): Likewise.
31737
31738 2017-05-09  Martin Sebor  <msebor@redhat.com>
31739
31740         PR translation/80280
31741         * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
31742         added in r247778.
31743
31744         PR translation/80280
31745         * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
31746         data member added in r247778.
31747         (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
31748
31749 2017-05-09  Nathan Sidwell  <nathan@acm.org>
31750
31751         * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
31752
31753         * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
31754         typedefs.
31755
31756 2017-05-09  Marek Polacek  <polacek@redhat.com>
31757
31758         * doc/invoke.texi: Fix typo.
31759
31760 2017-05-09  Richard Biener  <rguenther@suse.de>
31761
31762         * tree-vrp.c (vrp_val_is_max): Adjust comment.
31763         (vrp_val_is_min): Likewise.
31764         (set_value_range_to_value): Likewise.
31765         (set_value_range_to_nonnegative): Likewise.
31766         (gimple_assign_nonzero_p): Likewise.
31767         (gimple_stmt_nonzero_p): Likewise.
31768         (vrp_int_const_binop): Likewise.  Remove unreachable case.
31769         (adjust_range_with_scev): Adjust comments.
31770         (compare_range_with_value): Likewise.
31771         (extract_range_from_phi_node): Likewise.
31772         (test_for_singularity): Likewise.
31773
31774 2017-05-09  Richard Biener  <rguenther@suse.de>
31775
31776         * tree-vrp.c (get_single_symbol): Add assert that we don't
31777         get overflowed constants as invariant part.
31778         (compare_values_warnv): Add comment before the TREE_NO_WARNING
31779         checks.  Use wi::cmp instead of recursing for integer constants.
31780         (compare_values): Just ignore whether we assumed undefined
31781         overflow instead of failing the compare.
31782         (extract_range_for_var_from_comparison_expr): Add comment before the
31783         TREE_NO_WARNING sets.
31784         (test_for_singularity): Likewise.
31785         (extract_range_from_comparison): Do not disable optimization
31786         when we assumed undefined overflow.
31787         (extract_range_basic): Remove init of unused var.
31788
31789 2017-05-09  Richard Biener  <rguenther@suse.de>
31790
31791         * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
31792         (extract_range_from_multiplicative_op_1): Adjust.
31793         (extract_range_from_binary_expr_1): Use int_const_binop.
31794
31795 2017-05-08  Kelvin Nilsen  <kelvin@gcc.gnu.org>
31796
31797         PR target/80101
31798         * config/rs6000/power6.md: Replace store_data_bypass_p calls with
31799         rs6000_store_data_bypass_p in seven define_bypass directives and
31800         in several comments.
31801         * config/rs6000/rs6000-protos.h: Add prototype for
31802         rs6000_store_data_bypass_p function.
31803         * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
31804         function implements slightly different (rs6000-specific) semantics
31805         than store_data_bypass_p, returning false rather than aborting
31806         with assertion error when arguments do not satisfy the
31807         requirements of store data bypass.
31808         (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
31809         rs6000_store_data_bypass_p.
31810
31811 2017-05-08  Max Filippov  <jcmvbkbc@gmail.com>
31812
31813         * config/xtensa/xtensa-protos.h
31814         (xtensa_initial_elimination_offset): New declaration.
31815         * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
31816         New function. Move its body from the INITIAL_ELIMINATION_OFFSET
31817         macro definition, add case for FRAME_POINTER_REGNUM when
31818         FRAME_GROWS_DOWNWARD.
31819         * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
31820         (INITIAL_ELIMINATION_OFFSET): Replace body with call to
31821         xtensa_initial_elimination_offset.
31822
31823 2017-05-08  Nathan Sidwell  <nathan@acm.org>
31824
31825         * doc/invoke.texi: Alphabetize -fdump options.
31826
31827 2017-05-08  Martin Sebor  <msebor@redhat.com>
31828
31829         PR translation/80280
31830         * config/sol2-c.c (solaris_pragma_align): Correct quoting.
31831
31832 2017-05-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
31833
31834         * target.def (compute_frame_layout): New optional target hook.
31835         * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
31836         * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
31837         * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
31838         target hook.
31839         * reload1.c (verify_initial_elim_offsets): Likewise.
31840         * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
31841         (use_simple_return_p): Call arm_compute_frame_layout if needed.
31842         (arm_get_frame_offsets): Split up into this ...
31843         (arm_compute_frame_layout): ... and this function.
31844
31845 2017-05-08  Richard Sandiford  <richard.sandiford@arm.com>
31846
31847         * config/aarch64/constraints.md (Usa): New constraint.
31848         * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
31849
31850 2017-05-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
31851
31852         * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
31853         with_multilib_list after it has been checked.
31854
31855 2017-05-08  Richard Biener  <rguenther@suse.de>
31856
31857         * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
31858         (bitmap_set_subtract_values): Likewise.
31859
31860 2017-05-08  Richard Biener  <rguenther@suse.de>
31861
31862         * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
31863         (gimple_assign_nonzero): ... this and remove strict_overflow_p
31864         argument.
31865         (gimple_stmt_nonzero_warnv_p): Rename to ...
31866         (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
31867         argument.
31868         (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
31869         (extract_range_basic): Adjust, do not disable propagation on
31870         strict overflow sensitive simplification.
31871         (vrp_visit_cond_stmt): Likewise.
31872
31873 2017-05-05  Jan Hubicka  <hubicka@ucw.cz>
31874
31875         * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
31876         body size unconditionally.
31877
31878 2017-05-07  Jeff Law  <law@redhat.com>
31879
31880         Revert:
31881         2017-05-06  Jeff Law  <law@redhat.com>
31882         PR tree-optimization/78496
31883         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31884         code.
31885
31886         PR tree-optimization/78496
31887         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31888         (simplify_stmt_using_ranges): Call it.
31889         (vrp_dom_walker::before_dom_children): Extract equivalences
31890         from an ASSERT_EXPR with an equality comparison against a
31891         constant.
31892
31893 2017-05-06  Jeff Law  <law@redhat.com>
31894
31895         PR tree-optimization/78496
31896         * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
31897         code.
31898
31899         PR tree-optimization/78496
31900         * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
31901         (simplify_stmt_using_ranges): Call it.
31902         (vrp_dom_walker::before_dom_children): Extract equivalences
31903         from an ASSERT_EXPR with an equality comparison against a
31904         constant.
31905
31906 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31907
31908         * lra-constraints.c (lra_copy_reg_equiv): New function.
31909         (split_reg): Use it to copy equivalence information from the
31910         original register to the spill register.
31911
31912 2017-05-06  Richard Sandiford  <richard.sandiford@linaro.org>
31913
31914         PR rtl-optimization/75964
31915         * simplify-rtx.c (simplify_const_relational_operation): Remove
31916         invalid handling of comparisons of integer ABS.
31917
31918 2017-05-06  Uros Bizjak  <ubizjak@gmail.com>
31919
31920         * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
31921         initialize to zero.
31922         (init_regs): Remove declaration.
31923         (function_arg_advance_32): Initialize error_p as boolean variable.
31924
31925 2017-05-05  Nathan Sidwell  <nathan@acm.org>
31926
31927         * store-motion.c (remove_reachable_equiv_notes): Reformat long
31928         lines.  Use for (;;).
31929
31930 2017-05-05  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
31931
31932         * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
31933         (rs6000_init_cost): Initialize rs6000_vect_nonmem.
31934         (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
31935         (rs6000_finish_cost): Avoid vectorizing simple copy loops with
31936         VF=2 that require versioning.
31937
31938 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31939
31940         * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
31941         int.
31942
31943 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31944
31945         * diagnostic.h (diagnostic_override_option_index): Convert from
31946         macro to inline function.
31947
31948 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31949
31950         * diagnostic.c (last_module_changed_p): New function.
31951         (set_last_module): New function.
31952         (diagnostic_report_current_module): Convert macro usage to
31953         the above functions.
31954         * diagnostic.h (diagnostic_context::last_module): Strengthen
31955         from const line_map * to const line_map_ordinary *.
31956         (diagnostic_last_module_changed): Delete macro.
31957         (diagnostic_set_last_module): Delete macro.
31958
31959 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31960
31961         * diagnostic.c (diagnostic_impl): Replace report_diagnostic
31962         with diagnostic_report_diagnostic.
31963         (diagnostic_n_impl_richloc): Likewise.
31964         * diagnostic.h (report_diagnostic): Delete macro.
31965         * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
31966         with diagnostic_report_diagnostic.
31967         * substring-locations.c (format_warning_va): Likewise.
31968
31969 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31970
31971         * diagnostic.c (diagnostic_report_diagnostic): Eliminate
31972         save/restor of format_spec.  Move option-printing code to...
31973         (print_option_information): ...this new function, and
31974         reimplement by simply printing to the pretty_printer,
31975         rather than appending to the format string.
31976
31977 2017-05-05  David Malcolm  <dmalcolm@redhat.com>
31978
31979         * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
31980         handling logic into...
31981         (update_effective_level_from_pragmas): ...this new function.
31982
31983 2017-05-04  Andrew Waterman  <andrew@sifive.com>
31984
31985         * config/riscv/riscv.opt (mstrict-align): New option.
31986         * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it.  Update comment.
31987         (SLOW_UNALIGNED_ACCESS): Define.
31988         (riscv_slow_unaligned_access): Declare.
31989         * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
31990         field.
31991         (riscv_slow_unaligned_access): New variable.
31992         (rocket_tune_info): Set slow_unaligned_access to true.
31993         (optimize_size_tune_info): Set slow_unaligned_access to false.
31994         (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
31995         (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
31996         (riscv_option_override): Set riscv_slow_unaligned_access.
31997         * doc/invoke.texi: Add -mstrict-align to RISC-V.
31998
31999 2017-05-04  Kito Cheng  <kito.cheng@gmail.com>
32000
32001         * config/riscv/riscv.md: Unify indentation.
32002
32003 2017-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
32004
32005         PR target/79038
32006         PR target/79202
32007         PR target/79203
32008         * config/rs6000/rs6000.md (u code attribute): Add FIX and
32009         UNSIGNED_FIX.
32010         (extendsi<mode>2): Add support for doing sign extension via
32011         VUPKHSW and XXPERMDI if the value is in Altivec registers and we
32012         don't have ISA 3.0 instructions.
32013         (extendsi<mode>2 splitter): Likewise.
32014         (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
32015         generate the normal insns since SImode can now go in vector
32016         registers.  Disallow the special UNSPECs needed for previous
32017         machines to hide SImode being used.  Add new insns
32018         fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
32019         (fix_trunc<mode>si2_stfiwx): Likewise.
32020         (fix_trunc<mode>si2_internal): Likewise.
32021         (fixuns_trunc<mode>si2): Likewise.
32022         (fixuns_trunc<mode>si2_stfiwx): Likewise.
32023         (fctiw<u>z_<mode>_smallint): Likewise.
32024         (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
32025         of floating point to 32-bit integer from doing a direct move to
32026         the GPR registers to do a store.
32027         (fctiwz_<mode>): Break long line.
32028
32029 2017-05-05  Bin Cheng  <bin.cheng@arm.com>
32030
32031         * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
32032         * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
32033         (addr_list, addr_offset_valid_p): New.
32034         (split_address_groups): Check offset validity with above function.
32035         (gt-tree-ssa-loop-ivopts.h): Include header file.
32036
32037 2017-05-05  Nathan Sidwell  <nathan@acm.org>
32038
32039         * config.gcc (arm*-*-*): Add missing 'fi'.
32040
32041 2017-05-05  Steve Ellcey  <sellcey@cavium.com>
32042
32043         * doc/invoke.texi (-fopt-info): Explicitly say order of options
32044         included in -fopt-info does not matter.
32045         * doc/optinfo.texi (-fopt-info): Fix description of default
32046         behavour. Explicitly say order of options included in -fopt-info
32047         does not matter.
32048
32049 2017-05-05  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32050
32051         * config.gcc: Allow combinations of aprofile and rmprofile values for
32052         --with-multilib-list.
32053         * config/arm/t-multilib: New file.
32054         * config/arm/t-aprofile: Remove initialization of MULTILIB_*
32055         variables.  Remove setting of ISA and floating-point ABI in
32056         MULTILIB_OPTIONS and MULTILIB_DIRNAMES.  Set architecture and FPU in
32057         MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
32058         and MULTILIB_DIRNAMES respectively.  Add comment to introduce all
32059         matches.  Add architecture matches for marvel-pj4 and generic-armv7-a
32060         CPU options.
32061         * config/arm/t-rmprofile: Likewise except for the matches changes.
32062         * doc/install.texi (--with-multilib-list): Document the combination of
32063         aprofile and rmprofile values and warn about pitfalls in doing that.
32064
32065 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
32066
32067         * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
32068         (movdi_aarch64): Likewise.
32069
32070 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
32071
32072         PR tree-optimization/80632
32073         * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
32074         field.
32075         (build_arrays): Initialize it for virtual phis.
32076         (fix_phi_nodes): Use it for virtual phis.
32077
32078         PR tree-optimization/80558
32079         * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
32080         [x, y] op z into [x op, y op z] for op & or | if conditions
32081         are met.
32082
32083 2017-05-05  Andre Vieira  <andre.simoesdiasvieira@arm.com>
32084             Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
32085
32086         PR target/71607
32087         * config/arm/arm.md (use_literal_pool): Remove.
32088         (64-bit immediate split): No longer takes cost into consideration
32089         if arm_disable_literal_pool is enabled.
32090         * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
32091         used when arm_disable_literal_pool is enabled.
32092         (arm_max_const_double_inline_cost): Remove use of
32093         arm_disable_literal_pool.
32094         (push_minipool_fix): Add assert.
32095         (arm_reorg): Add return if arm_disable_literal_pool is enabled.
32096         * config/arm/vfp.md (no_literal_pool_df_immediate): New.
32097         (no_literal_pool_sf_immediate): New.
32098
32099 2017-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32100
32101         PR tree-optimization/80613
32102         * tree-ssa-dce.c (propagate_necessity): Remove cases for
32103         BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
32104
32105 2017-05-05  Richard Biener  <rguenther@suse.de>
32106
32107         * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
32108
32109 2017-05-05  Georg-Johann Lay  <avr@gjlay.de>
32110
32111         * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
32112         of this flag from insn conditions due to removal from r247495.
32113
32114 2017-05-05  Wilco Dijkstra  <wdijkstr@arm.com>
32115
32116         * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
32117         New function.
32118         (arm_early_store_addr_dep_ptr): Likewise.
32119         * config/arm/aarch-common-protos.h
32120         (arm_early_load_addr_dep_ptr): Add prototype.
32121         (arm_early_store_addr_dep_ptr): Likewise.
32122         * config/arm/cortex-a53.md: Add new bypasses.
32123
32124 2017-05-05  Jakub Jelinek  <jakub@redhat.com>
32125
32126         * tree.c (next_type_uid): Change type to unsigned.
32127         (type_hash_canon): Decrement back next_type_uid if
32128         freeing a type node with the highest TYPE_UID.  For INTEGER_TYPEs
32129         also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
32130         if possible.
32131
32132 2017-05-04  Martin Sebor  <msebor@redhat.com>
32133
32134         * builtins.c: Fix a trivial typo in a comment.
32135
32136         PR middle-end/79234
32137         * builtins.c (check_sizes): Adjust to handle reading past the end.
32138         Avoid printing excessive upper bound of ranges.  Use %E to print
32139         tree nodes instead of converting them to %wu.
32140         (expand_builtin_memchr): New function.
32141         (compute_dest_size): Rename...
32142         (compute_objsize): ...to this.
32143         (expand_builtin_memcpy): Adjust.
32144         (expand_builtin_mempcpy): Adjust.
32145         (expand_builtin_strcat): Adjust.
32146         (expand_builtin_strcpy): Adjust.
32147         (check_strncat_sizes): Adjust.
32148         (expand_builtin_strncat): Adjust.
32149         (expand_builtin_strncpy): Adjust and simplify.
32150         (expand_builtin_memset): Adjust.
32151         (expand_builtin_bzero): Adjust.
32152         (expand_builtin_memcmp): Adjust.
32153         (expand_builtin): Handle memcmp.
32154         (maybe_emit_chk_warning): Check strncat just once.
32155
32156 2017-05-04  Martin Sebor  <msebor@redhat.com>
32157
32158         PR preprocessor/79214
32159         PR middle-end/79222
32160         PR middle-end/79223
32161         * builtins.c (check_sizes): Add inlining context and issue
32162         warnings even when -Wno-system-headers is set.
32163         (check_strncat_sizes): Same.
32164         (expand_builtin_strncat): Same.
32165         (expand_builtin_memmove): New function.
32166         (expand_builtin_stpncpy): Same.
32167         (expand_builtin): Handle memmove and stpncpy.
32168
32169 2017-05-04  Bin Cheng  <bin.cheng@arm.com>
32170
32171         * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
32172         which is not used any more.
32173
32174 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32175
32176         * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
32177
32178 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32179
32180         * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
32181         (cortexa53_tunings): Likewise.
32182         (cortexa57_tunings): Likewise.
32183         (cortexa72_tunings): Likewise.
32184         (cortexa73_tunings): Likewise.
32185
32186 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32187
32188         * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
32189         Set loop alignment to 8.
32190
32191 2017-05-04  Martin Sebor  <msebor@redhat.com>
32192
32193         PR translation/80280
32194         * builtins.c (expand_builtin_object_size): Add missing quoting to
32195         %D and like directives.
32196         * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
32197         (hsa_type_for_tree_type): Same.
32198         (verify_function_arguments): Same.
32199         * symtab.c (symbol_table::change_decl_assembler_name): Same.
32200         * varasm.c (get_section): Same.
32201         (mark_weak): Same.
32202
32203 2017-05-04  Martin Sebor  <msebor@redhat.com>
32204
32205         PR translation/80280
32206         * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
32207
32208 2017-05-04  Wilco Dijkstra  <wdijkstr@arm.com>
32209
32210         * config/aarch64/aarch64.c (generic_addrcost_table):
32211         Change HI/TI mode setting.
32212
32213 2017-05-04  Martin Jambor  <mjambor@suse.cz>
32214
32215         PR tree-optimization/80622
32216         * tree-sra.c (comes_initialized_p): New function.
32217         (build_accesses_from_assign): Only set write lazily when
32218         comes_initialized_p is false.
32219         (analyze_access_subtree): Use comes_initialized_p.
32220         (propagate_subaccesses_across_link): Assert !comes_initialized_p
32221         instead of testing for PARM_DECL.
32222
32223 2017-05-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32224
32225         * config/aarch64/aarch64.md (prefetch); Adjust predicate and
32226         constraint on operand 0 to allow more general addressing modes.
32227         Adjust output template.
32228         * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
32229         New function.
32230         * config/aarch64/aarch64-protos.h
32231         (aarch64_address_valid_for_prefetch_p): Declare prototype.
32232         * config/aarch64/constraints.md (Dp): New address constraint.
32233         * config/aarch64/predicates.md (aarch64_prefetch_operand): New
32234         predicate.
32235
32236 2017-05-04  Jan Hubicka  <hubicka@ucw.cz>
32237
32238         * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
32239         update use of estimate_ipcp_clone_size_and_time.
32240         (estimate_local_effects): Update use of
32241         estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
32242         * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
32243         * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
32244         Return nonspecialized time.
32245
32246 2017-05-04  Richard Biener  <rguenther@suse.de>
32247
32248         * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
32249         for the last VUSE which def dominates the PHI.  Directly call
32250         maybe_skip_until.
32251         (get_continuation_for_phi_1): Remove.
32252
32253 2017-05-04  Richard Sandiford  <richard.sandiford@linaro.org>
32254
32255         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
32256         to explain the use of truncating division.  Cap the number of
32257         iterations to the maximum given by nb_iterations_upper_bound,
32258         if defined.
32259
32260 2017-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32261
32262         * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
32263         * configure: Regenerate.
32264         * config.in: Regenerate.
32265         * config/i386/driver-mingw32.c: new file.
32266         * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
32267         * config.host: Link driver-mingw32.o on MinGW host.
32268         * doc/install.texi: Document new --enable-mingw-wildcard configure
32269         option.
32270
32271 2017-05-04  Marek Polacek  <polacek@redhat.com>
32272
32273         PR tree-optimization/80612
32274         * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
32275
32276 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
32277             Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
32278
32279         * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
32280         (movt splitter): Likewise.
32281         * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
32282         to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
32283         (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
32284         block for Thumb-1 with MOVT.
32285         (thumb2_legitimate_address_p): Move code block ...
32286         (can_avoid_literal_pool_for_label_p): ... into this new function.
32287         (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
32288         literal pool.
32289         (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
32290         * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
32291         "M-profile targets with the MOVT instruction".
32292
32293 2017-05-04  Prakhar Bahuguna  <prakhar.bahuguna@arm.com>
32294
32295         * config/arm/arm-builtins.c (arm_init_builtins): Rename
32296         __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
32297         __builtin_arm_stfscr to __builtin_arm_set_fpscr.
32298
32299 2017-05-04  Martin Liska  <mliska@suse.cz>
32300
32301         * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
32302         variable cond_code.
32303
32304 2017-05-04  Richard Biener  <rguenther@suse.de>
32305
32306         * tree.c (array_at_struct_end_p): Handle arrays at struct
32307         end with flexarrays more conservatively.  Refactor and treat
32308         arrays of arrays or aggregates more strict.  Fix
32309         VIEW_CONVERT_EXPR handling.  Remove allow_compref argument.
32310         * tree.c (array_at_struct_end_p): Adjust prototype.
32311         * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
32312         * gimple-fold.c (get_range_strlen): Likewise.
32313         * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
32314
32315 2017-05-04  Richard Biener  <rguenther@suse.de>
32316
32317         PR tree-optimization/31130
32318         * tree-vrp.c (needs_overflow_infinity): Remove as always returning
32319         false.
32320         (supports_overflow_infinity): Likewise.
32321         (is_negative_overflow_infinity): Likewise.
32322         (is_positive_overflow_infinity): Likewise.
32323         (is_overflow_infinity): Likewise.
32324         (stmt_overflow_infinity): Likewise.
32325         (overflow_infinity_range_p): Likewise.
32326         (usable_range_p): Remove as always returning true.
32327         (make_overflow_infinity): Remove.
32328         (negative_overflow_infinity): Likewise.
32329         (positive_overflow_infinity): Likewise.
32330         (avoid_overflow_infinity): Likewise.
32331         (set_value_range): Adjust accordingly.
32332         (set_value_range_to_nonnegative): Likewise, remove now unused
32333         overflow_infinity arg.
32334         (vrp_operand_equal_p): Adjust.
32335         (update_value_range): Likewise.
32336         (range_int_cst_singleton_p): Likewise.
32337         (operand_less_p): Likewise.
32338         (compare_values_warnv): Likewise.
32339         (extract_range_for_var_from_comparison_expr): Likewise.
32340         (vrp_int_const_binop): Likewise.
32341         (zero_nonzero_bits_from_vr): Likewise.
32342         (extract_range_from_multiplicative_op_1): Likewise.
32343         (extract_range_from_binary_expr_1): Likewise.
32344         (extract_range_from_unary_expr): Likewise.
32345         (extract_range_from_comparison): Likewise.
32346         (extract_range_basic): Likewise.
32347         (adjust_range_with_scev): Likewise.
32348         (compare_ranges): Likewise.
32349         (compare_range_with_value): Likewise.
32350         (dump_value_range): Likewise.
32351         (test_for_singularity): Likewise, remove strict_overflow_p parameter
32352         never used.
32353         (simplify_cond_using_ranges): Adjust.
32354
32355 2017-05-04  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
32356
32357         * brig-builtins.def: Added a builtin for class_f64.
32358         * builtin-types.def: Added a builtin type needed by class_f64.
32359
32360 2017-05-03  Jason Merrill  <jason@redhat.com>
32361
32362         * timevar.def: Add TV_CONSTEXPR.
32363
32364 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
32365
32366         * common.opt (fdiagnostics-parseable-fixits): Fix typo.
32367
32368 2017-05-03  Martin Jambor  <mjambor@suse.cz>
32369
32370         * ipa-prop.c (ipa_update_after_lto_read): Removed.
32371         * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
32372         * ipa-cp.c (ipcp_propagate_stage): Do not call
32373         ipa_update_after_lto_read.
32374         * ipa-inline.c (ipa_inline): Likewise.
32375
32376 2017-05-03  Martin Jambor  <mjambor@suse.cz>
32377
32378         * ipa-prop.h (ipa_edge_args): Make a class.  Mark with for_user GTY
32379         tag.  Added a default constructor and a destructor.
32380         (ipa_edge_args_sum_t): New class;
32381         (ipa_edge_args_sum): Declare.
32382         (ipa_edge_args_vector): Remove declaration.
32383         (IPA_EDGE_REF): Use ipa_edge_args_sum.
32384         (ipa_free_edge_args_substructures): Remove declaration.
32385         (ipa_check_create_edge_args): Use ipa_edge_args_sum.
32386         (ipa_edge_args_info_available_for_edge_p): Likewise.
32387         * ipa-prop.c (ipa_edge_args_vector): Removed.
32388         (edge_removal_hook_holder): Likewise.
32389         (edge_duplication_hook_holder): Likewise.
32390         (ipa_edge_args_sum): New variable.
32391         (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
32392         ipa_edge_args_vector.
32393         (ipa_free_edge_args_substructures): Likewise.
32394         (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
32395         ipa_edge_args_vector.
32396         (ipa_edge_removal_hook): Turned into method
32397         ipa_edge_args_sum_t::remove.
32398         (ipa_edge_duplication_hook): Turned into method
32399         ipa_edge_args_sum_t::duplicate.
32400         (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
32401         registering edge hooks.
32402         (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
32403         * ipa-inline-analysis.c (estimate_function_body_sizes): Test
32404         ipa_edge_args_sum instead of ipa_edge_args_vector.
32405         * ipa-profile.c (ipa_profile): Likewise.
32406
32407 2017-05-03  Martin Jambor  <mjambor@suse.cz>
32408
32409         * symbol-summary.h (function_summary): New method exists.
32410         (function_summary::symtab_removal): Deallocate through release.
32411         (call_summary): New class.
32412         (gt_ggc_mx): New overload.
32413         (gt_pch_nx): Likewise.
32414         (gt_pch_nx): Likewise.
32415
32416 2017-05-03  Jeff Law  <law@redhat.com>
32417
32418         PR tree-optimization/78496
32419         * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
32420         from simplify_cond_using_ranges.  Split off code to walk
32421         backwards through casts into ...
32422         (simplify_cond_using_ranges_2): New function.
32423         (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
32424         (execute_vrp): After identifying jump threads, call
32425         simplify_cond_using_ranges_2.
32426
32427 2017-05-03  Jan Hubicka  <hubicka@ucw.cz>
32428
32429         PR bootstrap/80609
32430         * ipa-inline.h (inline_summary): Add ctor.
32431         (create_ggc): Do not use ggc_cleared_alloc.
32432
32433 2017-05-03  Jeff Downs  <heydowns@somuchpressure.net>
32434             Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32435
32436         * gcc.c (handle_braces): Support escaping in switch matching
32437         text.
32438         * doc/invoke.texi (Spec Files): Document it.
32439         Remove superfluous @code markup in items.
32440
32441 2017-05-03  David Malcolm  <dmalcolm@redhat.com>
32442
32443         * diagnostic-show-locus.c (struct column_range): New struct.
32444         (get_affected_columns): New function.
32445         (get_printed_columns): New function.
32446         (struct correction): New struct.
32447         (correction::ensure_capacity): New function.
32448         (correction::ensure_terminated): New function.
32449         (struct line_corrections): New struct.
32450         (line_corrections::~line_corrections): New dtor.
32451         (line_corrections::add_hint): New function.
32452         (layout::print_trailing_fixits): Reimplement in terms of the new
32453         classes.
32454         (selftest::test_overlapped_fixit_printing): New function.
32455         (selftest::diagnostic_show_locus_c_tests): Call it.
32456
32457 2017-05-03  Nathan Sidwell  <nathan@acm.org>
32458
32459         Canonicalize canonical type hashing
32460         * tree.h (type_hash_canon_hash): Declare.
32461         * tree.c (type_hash_list, attribute_hash_list): Move into
32462         type_hash_canon_hash.
32463         (build_type_attribute_qual_variant): Break out hash code calc into
32464         type_hash_canon_hash.
32465         (type_hash_canon_hash): New.  Generic type hash computation.
32466         (build_range_type_1, build_array_type_1, build_function_type,
32467         build_method_type_directly, build_offset_type, build_complex_type,
32468         make_vector_type): Call it.
32469
32470 2017-05-03  Richard Biener  <rguenther@suse.de>
32471
32472         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
32473         When all DRs have unknown misaligned do not always peel
32474         when there is a store but apply the same costing model as if
32475         there were only loads.
32476
32477 2017-05-03  Richard Biener  <rguenther@suse.de>
32478
32479         Revert
32480         PR tree-optimization/80492
32481         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
32482         compare_base_decls returning dont-know properly.
32483
32484 2017-05-03  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32485
32486         * config/arm/iterators.md (CCSI): New mode iterator.
32487         (arch): New mode attribute.
32488         * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
32489         (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
32490         (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This.  Use CCSI
32491         code iterator for success result mode.
32492         * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
32493         the corresponding new insn generators.
32494
32495 2017-05-03  Bin Cheng  <bin.cheng@arm.com>
32496
32497         Revert r247509
32498         2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32499         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
32500
32501 2017-05-03  Richard Sandiford  <richard.sandiford@linaro.org>
32502
32503         * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
32504         (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
32505         (DDR_A): Wrap DDR argument in brackets.
32506         (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
32507         (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
32508         (DDR_REVERSED_P): Likewise.
32509
32510 2017-05-03  Jakub Jelinek  <jakub@redhat.com>
32511
32512         PR tree-optimization/79472
32513         * tree-switch-conversion.c (struct switch_conv_info): Add
32514         contiguous_range and default_case_nonstandard fields.
32515         (collect_switch_conv_info): Compute contiguous_range and
32516         default_case_nonstandard fields, don't clear final_bb if
32517         contiguous_range and only the default case doesn't have the required
32518         structure.
32519         (check_all_empty_except_final): Set default_case_nonstandard instead
32520         of failing if contiguous_range and the default case doesn't have empty
32521         block.
32522         (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
32523         and only the default case doesn't have the required constants.  Skip
32524         virtual phis.
32525         (gather_default_values): Skip virtual phis.  Allow non-NULL CASE_LOW
32526         if default_case_nonstandard.
32527         (build_constructors): Build constant 1 just once.  Assert that default
32528         values aren't inserted in between cases if contiguous_range.  Skip
32529         virtual phis.
32530         (build_arrays): Skip virtual phis.
32531         (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
32532         (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
32533         Handle virtual phis.
32534         (gen_inbound_check): Handle default_case_nonstandard case.
32535         (process_switch): Adjust check_final_bb caller.  Call
32536         gather_default_values with the first non-default case instead of
32537         default case if default_case_nonstandard.
32538
32539 2017-05-02  Nathan Sidwell  <nathan@acm.org>
32540
32541         * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
32542         check.  Fix formatting.
32543
32544 2017-05-02  Jan Hubicka  <hubicka@ucw.cz>
32545
32546         * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
32547         errors when comparing specialized and unspecialized times.
32548
32549 2017-05-02  David Malcolm  <dmalcolm@redhat.com>
32550
32551         * diagnostic-show-locus.c
32552         (layout::should_print_annotation_line_p): Make private.
32553         (layout::print_annotation_line): Make private.
32554         (layout::annotation_line_showed_range_p): Make private.
32555         (layout::show_ruler): Make private.
32556         (layout::print_source_line): Make private.  Pass in line and
32557         line_width, rather than calling location_get_source_line.  Drop
32558         returned value.
32559         (layout::print_leading_fixits): New method.
32560         (layout::print_any_fixits): Rename to...
32561         (layout::print_trailing_fixits): ...this, and make private.
32562         Don't print newline fixits.
32563         (diagnostic_show_locus): Move logic for printing one row into...
32564         (layout::print_line): ...this new function.  Move the
32565         location_get_source_line call and error-handling from
32566         print_source_line to here.  Call print_leading_fixits, and rename
32567         print_any_fixits to print_trailing_fixits.
32568         (selftest::test_fixit_insert_containing_newline): Update now that
32569         newlines are partially supported.
32570         (selftest::test_fixit_insert_containing_newline_2): New test.
32571         (selftest::test_fixit_replace_containing_newline): Update comments.
32572         (selftest::diagnostic_show_locus_c_tests): Call the new test.
32573         * edit-context.c (class added_line): New class.
32574         (class edited_line): Describe newline handling in comment.
32575         (edited_line::actually_edited_p): New method.
32576         (edited_line::print_content): Delete redundant decl.
32577         (edited_line::m_predecessors): New field.
32578         (edited_file::print_content): Call edited_line::print_content.
32579         (edited_file::print_diff): Update to support newlines.
32580         (edited_file::print_diff_hunk): Likewise.
32581         (edited_file::print_run_of_changed_lines): New function.
32582         (edited_file::print_diff_line): Convert to...
32583         (print_diff_line): ...this.
32584         (edited_file::get_effective_line_count): New function.
32585         (edited_line::edited_line): Initialize new field m_predecessors.
32586         (edited_line::~edited_line): Clean up m_predecessors.
32587         (edited_line::apply_fixit): Handle newlines.
32588         (edited_line::get_effective_line_count): New function.
32589         (edited_line::print_content): New function.
32590         (edited_line::print_diff_lines): New function.
32591         (selftest::test_applying_fixits_insert_containing_newline): New
32592         test.
32593         (selftest::test_applying_fixits_replace_containing_newline): New
32594         test.
32595         (selftest::insert_line): New function.
32596         (selftest::test_applying_fixits_multiple_lines): Add example of
32597         inserting a line.
32598         (selftest::edit_context_c_tests): Call the new tests.
32599
32600 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32601
32602         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
32603         parameter cand.  Update dump information.
32604         (get_computation_cost): Update uses.
32605
32606 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32607
32608         * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
32609         (get_computation_aff): Reorder parameters.  Use get_computation_aff_1.
32610         (get_computation_at, rewrite_use_address): Update use of
32611         get_computation_aff.
32612
32613 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32614
32615         * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
32616         (get_computation): Delete.
32617         (get_computation_cost): Implement like get_computation_cost_at.
32618         Use get_computation_at.
32619         (get_computation_cost_at): Delete.
32620         (rewrite_use_nonlinear_expr): Use get_computation_at.
32621         (rewrite_use_compare, remove_unused_ivs): Ditto.
32622
32623 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32624
32625         * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
32626
32627 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32628
32629         * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
32630         (ivopts_global_cost_for_size): Rename parameter and update uses.
32631         (iv_ca_recount_cost): Update uses.
32632         (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
32633         candidates seperately in n_invs and n_cands.
32634         (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
32635
32636 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32637
32638         * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
32639         (find_inv_vars_cb): New.
32640         (find_depends): Renamed to ...
32641         (find_inv_vars): ... this.
32642         (add_candidate_1, force_var_cost): Call find_inv_vars.
32643         (split_address_cost, determine_group_iv_cost_cond): Ditto.
32644
32645 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32646
32647         * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
32648         inv_vars.  Add inv_exprs.
32649         (struct iv_cand): Rename depends_on to inv_vars.
32650         (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
32651         max_inv_var_id/n_inv_var_uses.  Move max_inv_expr_id around.
32652         Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
32653         (dump_cand): Dump inv_vars.
32654         (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
32655         (record_invariant, find_depends, add_candidate_1): Ditto.
32656         (set_group_iv_cost, force_var_cost): Ditto.
32657         (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
32658         (get_computation_cost_at, get_computation_cost): Ditto.
32659         (determine_group_iv_cost_generic): Ditto.
32660         (determine_group_iv_cost_address): Ditto.
32661         (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
32662         (determine_group_iv_costs): Ditto.
32663         (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
32664         (iv_ca_set_remove_invariants): Renamed to ...
32665         (iv_ca_set_remove_invs): ... this.  Support inv_vars and inv_exprs.
32666         (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
32667         (iv_ca_set_add_invariants):  Renamed to ...
32668         (iv_ca_set_add_invs): ... this.  Support inv_vars and inv_exprs.
32669         (iv_ca_set_cp): Use iv_ca_set_add_invs.
32670         (iv_ca_has_deps): Support inv_vars and inv_exprs.
32671         (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
32672         (create_new_ivs): Remove useless dump.
32673
32674 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32675
32676         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
32677         iv_cand code.
32678         (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
32679         (iv_ca_set_no_cp, create_new_iv): Ditto.
32680
32681 2017-05-02  Bin Cheng  <bin.cheng@arm.com>
32682
32683         * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
32684
32685 2017-05-02  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
32686
32687         * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
32688         function tree_check2.
32689
32690 2017-05-02  Martin Liska  <mliska@suse.cz>
32691
32692         * doc/gcov.texi: Add missing preposition.
32693         * gcov.c (function_info::function_info): Properly fill up
32694         all member variables.
32695
32696 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
32697
32698         * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
32699
32700 2017-05-02  Tamar Christina  <tamar.christina@arm.com>
32701
32702         * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
32703
32704 2017-05-02  Martin Liska  <mliska@suse.cz>
32705
32706         PR lto/77954.
32707         * lto-streamer-in.c (lto_read_tree_1): Remove
32708         LTO_STREAMER_DEBUG.
32709         * lto-streamer.c (struct tree_hash_entry): Likewise.
32710         (struct tree_entry_hasher): Likewise.
32711         (tree_entry_hasher::hash): Likewise.
32712         (tree_entry_hasher::equal): Likewise.
32713         (lto_streamer_init): Likewise.
32714         (lto_orig_address_map): Likewise.
32715         (lto_orig_address_get): Likewise.
32716         (lto_orig_address_remove): Likewise.
32717         * lto-streamer.h: Likewise.
32718         * tree-streamer-in.c (streamer_alloc_tree): Likewise.
32719         * tree-streamer-out.c (streamer_write_tree_header): Likewise.
32720
32721 2017-05-02  Sebastian Peryt  <sebastian.peryt@intel.com>
32722
32723         * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
32724         (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
32725         (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
32726         (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
32727         (mm_maskz_sub_round_ss, _mm_mask_add_sd)
32728         (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
32729         (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
32730         (mm_maskz_sub_ss): New intrinsics.
32731         * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
32732         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
32733         * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
32734         (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
32735         (__builtin_ia32_subss_mask_round): New builtins.
32736         * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
32737         (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
32738         * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
32739         Renamed to ...
32740         (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
32741         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
32742         Changed to ...
32743         (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
32744         ... this.
32745
32746 2017-05-02  Martin Jambor  <mjambor@suse.cz>
32747
32748         PR tree-optimization/78687
32749         * tree-sra.c (access): New field parent.
32750         (process_subtree_disqualification): New function.
32751         (disqualify_candidate): Call it.
32752         (build_accesses_from_assign): Reset write flag if creating an
32753         assighnment link.
32754         (build_access_subtree): Fill in parent field and also prpagate
32755         down grp_write flag.
32756         (create_artificial_child_access): New parameter set_grp_write, set
32757         grp_write to its value.
32758         (propagate_subaccesses_across_link): Also propagate grp_write flag
32759         values.
32760         (propagate_all_subaccesses): Push the closest parent back to work
32761         queue if add_access_to_work_queue returned true.
32762
32763 2017-05-02  Richard Biener  <rguenther@suse.de>
32764
32765         * common.opt (fstrict-overflow): Alias negative to fwrapv.
32766         * doc/invoke.texi (fstrict-overflow): Remove all traces of
32767         -fstrict-overflow documentation.
32768         * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
32769         (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
32770         flag_strict_overflow.
32771         * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
32772         * lto-opts.c (lto_write_options): Do not stream it.
32773         * lto-wrapper.c (merge_and_complain): Do not handle it.
32774         * opts.c (default_options_table): Do not set -fstrict-overflow.
32775         (finish_options): Likewise do not clear it when sanitizing.
32776         * simplify-rtx.c (simplify_const_relational_operation): Do not
32777         test flag_strict_overflow.
32778
32779 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32780
32781         * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
32782         using enabled attribute.
32783         (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
32784         (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
32785         (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
32786         (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
32787         (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
32788         (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
32789         (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
32790         (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
32791         (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
32792         (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
32793
32794 2017-05-02  Uros Bizjak  <ubizjak@gmail.com>
32795
32796         * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
32797
32798 2017-05-02  Richard Biener  <rguenther@suse.de>
32799
32800         PR tree-optimization/80591
32801         Revert
32802         2017-04-10  Richard Biener  <rguenther@suse.de>
32803
32804         * tree-ssa-structalias.c (find_func_aliases): Properly handle
32805         asm inputs.
32806
32807 2017-05-02  Richard Biener  <rguenther@suse.de>
32808
32809         PR tree-optimization/80549
32810         * tree-cfgcleanup.c (mfb_keep_latches): New helper.
32811         (cleanup_tree_cfg_noloop): Create forwarders to known loop
32812         headers if they do not have a preheader.
32813
32814 2017-05-02  Martin Liska  <mliska@suse.cz>
32815
32816         PR other/80589
32817         * common.opt: Fix typo.
32818         * doc/invoke.texi: Likewise.
32819
32820 2017-05-01  Jan Beulich  <jbeulich@suse.com>
32821
32822         * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
32823         swapping, add (x,x,m,x,n) alternative.
32824
32825 2017-05-01  Nathan Sidwell  <nathan@acm.org>
32826
32827         * calls.c (combine_pending_stack_adjustment_and_call): Remove
32828         unnecessary unadjusted_alignment check.
32829
32830 2017-05-01  Xi Ruoyao  <ryxi@stu.xidian.edu.cn>
32831
32832         PR c++/80038
32833         * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
32834         operations here.
32835         * gimplify.c (gimplify_cilk_detach): New function.
32836         (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
32837         * tree-core.h: Document EXPR_CILK_SPAWN.
32838         * tree.h (EXPR_CILK_SPAWN): Define.
32839
32840 2017-05-01  David Malcolm  <dmalcolm@redhat.com>
32841
32842         * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
32843         to use new fixit_hint representation, using the "replace" logic.
32844         (get_line_span_for_fixit_hint): Likewise.
32845         (layout::print_any_fixits): Likewise.
32846         (selftest::test_one_liner_many_fixits): Rename to...
32847         (selftest::test_one_liner_many_fixits_1): ...this, and update
32848         comment and expected output to reflect that the multiple fix-it
32849         hints are now consolidated into one insertion.
32850         (selftest::test_one_liner_many_fixits_2): New test.
32851         (selftest::test_diagnostic_show_locus_one_liner): Update for
32852         above.
32853         (selftest::test_fixit_consolidation): Update for fix-it API
32854         change.
32855         * diagnostic.c (print_parseable_fixits): Likewise.
32856         * edit-context.c (edited_line::m_line_events): Convert from
32857         auto_vec <line_event *> to auto_vec <line_event>.
32858         (class line_event): Convert from abstract base class to a concrete
32859         class, taking over the role of replace_event.
32860         (class insert_event): Delete.
32861         (class replace_event): Rename to class line_event.  Convert to
32862         half-open range.
32863         (edit_context::add_fixits): Reimplement.
32864         (edit_context::apply_insert): Delete.
32865         (edit_context::apply_replace): Rename to...
32866         (edit_context::apply_fixit): ...this.  Convert to half-open range.
32867         (edited_file::apply_insert): Delete.
32868         (edited_file::apply_replace): Rename to...
32869         (edited_file::apply_fixit): ...this.
32870         (edited_line::~edited_line): Drop deletion of events.
32871         (edited_line::apply_insert): Delete.
32872         (edited_line::apply_replace): Rename to...
32873         (edited_line::apply_fixit): ...this.  Convert to half-open range.
32874         Update for change to type of m_line_events.
32875         * edit-context.h (edit_context::apply_insert): Delete.
32876         (edit_context::apply_replace): Rename to...
32877         (edit_context::apply_fixit): ...this.
32878
32879 2017-05-01  Martin Sebor  <msebor@redhat.com>
32880
32881         * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
32882         known.
32883
32884 2017-05-01  Uros Bizjak  <ubizjak@gmail.com>
32885
32886         PR target/68491
32887         * config/i386/cpuid.h (__get_cpuid): Always return 0 when
32888         __get_cpuid_max returns 0.
32889         (__get_cpuid_count): Ditto.
32890
32891 2017-05-01  Eric Botcazou  <ebotcazou@adacore.com>
32892
32893         * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
32894         replacement expression is another instance of one of its arguments.
32895
32896 2017-05-01  Jakub Jelinek  <jakub@redhat.com>
32897
32898         PR target/79430
32899         * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
32900         check for stack push/pop autoinc.
32901         * config/i386/i386.c (ix86_agi_dependent): Return false
32902         if the only reason why modified_in_p returned true is that
32903         addr is SP based and set_insn is a push or pop.
32904
32905 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32906
32907         * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
32908         overflow check.
32909
32910 2017-04-29  Jan Hubicka  <hubicka@ucw.cz>
32911
32912         PR ipa/79224
32913         * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
32914         (account_size_time): Use two predicates - exec_pred and
32915         nonconst_pred_ptr.
32916         (evaluate_conditions_for_known_args): Compute both clause and
32917         nonspec_clause.
32918         (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
32919         (inline_summary_t::duplicate): Update.
32920         (estimate_function_body_sizes): Caluculate exec and nonconst predicates
32921         separately.
32922         (compute_inline_parameters): Likewise.
32923         (estimate_edge_size_and_time): Update caluclation of time.
32924         (estimate_node_size_and_time): Compute both time and nonspecialized
32925         time.
32926         (estimate_ipcp_clone_size_and_time): Update.
32927         (inline_merge_summary): Update.
32928         (do_estimate_edge_time): Update.
32929         (do_estimate_edge_size): Update.
32930         (do_estimate_edge_hints): Update.
32931         (inline_read_section, inline_write_summary): Stream both new predicates.
32932         * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
32933         as argument.
32934         (compute_inlined_call_time): Cleanup.
32935         (big_speedup_p): Update.
32936         (edge_badness): Update.
32937         * ipa-inline.h (INLINE_TIME_SCALE): Remove.
32938         (size_time_entry): Replace predicate by exec_predicate and
32939         nonconst_predicate.
32940         (edge_growth_cache_entry): Cache both time nad nonspecialized time.
32941         (estimate_edge_time): Return also nonspec_time.
32942         (reset_edge_growth_cache): Update.
32943
32944 2017-04-29  Jakub Jelinek  <jakub@redhat.com>
32945
32946         PR rtl-optimization/80491
32947         * ifcvt.c (noce_process_if_block): When looking for x setter
32948         with missing else_bb, don't check only the insn right before
32949         cond_earliest, but look for the last insn that x is modified in
32950         within the same bb.
32951
32952         PR rtl-optimization/80491
32953         * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
32954
32955 2017-04-29  Marc Glisse  <marc.glisse@inria.fr>
32956
32957         PR tree-optimization/80487
32958         * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
32959
32960 2017-04-29  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
32961
32962         PR tree-optimization/79697
32963         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
32964         is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
32965         (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
32966         BUILT_IN_STRNDUP.
32967         * gimple-fold.c (gimple_fold_builtin_realloc): New function.
32968         (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
32969
32970 2017-04-28  Martin Sebor  <msebor@redhat.com>
32971
32972         PR tree-optimization/80523
32973         * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
32974         (init_target_to_host_charmap, target_to_host, target_strtol10): New
32975         functions.
32976         (maybe_warn, format_directive, parse_directive): Use new functions.
32977         (pass_sprintf_length::execute): Call init_target_to_host_charmap.
32978
32979 2017-04-28  Marc Glisse  <marc.glisse@inria.fr>
32980
32981         * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
32982
32983 2017-04-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32984
32985         * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
32986         target_header_dir): Set correctly.
32987         * configure: Regenerated.
32988         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
32989         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
32990         instead of SYSTEM_HEADER_DIR.
32991
32992 2017-04-28  Jan Hubicka  <hubicka@ucw.cz>
32993
32994         * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
32995         (estimate_local_effects): Likewise.
32996         * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
32997         edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
32998         * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
32999         estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
33000         do_estimate_edge_time, estimate_edge_time): Likewise.
33001         * ipa-inline-analysis.c (estimate_node_size_and_time,
33002         estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
33003         (estimate_time_after_inlining): Remove.
33004
33005 2017-04-28  Martin Liska  <mliska@suse.cz>
33006
33007         * doc/gcov.texi: Enhance documentation of gcov.
33008
33009 2017-04-28  Martin Liska  <mliska@suse.cz>
33010
33011         * doc/gcov.texi: Sort options in alphabetic order.
33012         * doc/gcov-dump.texi: Likewise.
33013         * doc/gcov-tool.texi: Likewise.
33014         * gcov.c (print_usage): Likewise.
33015         * gcov-dump.c (print_usage): Likewise.
33016         * gcov-tool.c (print_merge_usage_message): Likewise.
33017         (print_rewrite_usage_message): Likewise.
33018         (print_overlap_usage_message): Likewise.
33019
33020 2017-04-28  Martin Liska  <mliska@suse.cz>
33021
33022         PR gcov-profile/53915
33023         * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
33024
33025 2017-04-28  Martin Liska  <mliska@suse.cz>
33026
33027         PR gcov-profile/79891
33028         * gcov.c (add_line_counts): Assign BBs to lines just if the BB
33029         is marked by compiler as living on a line.
33030         (get_cycles_count): Remove usage of the union.
33031         (output_intermediate_file): Likewise.
33032         (find_source): Fix GNU coding style.
33033         (accumulate_line_counts): Remove old non-all block mode.
33034         (output_lines): Remove usage of the union.
33035         * profile.c (output_location): Include all BBs, even if
33036         belonging to a same line (and file) as a previous BB.
33037
33038 2017-04-28  Martin Liska  <mliska@suse.cz>
33039
33040         * gcov.c (process_args): Handle new argument 'w'.
33041         (read_graph_file): Assign ID to BBs.
33042         (output_branch_count): Display BB # if verbose flag is set.
33043         (output_lines): Likewise for arcs.
33044         (print_usage): Add '--verbose' option help.
33045         * doc/gcov.texi: Document --verbose (-w) option.
33046
33047 2017-04-28  Martin Liska  <mliska@suse.cz>
33048
33049         * gcov.c (struct block_location_info): New struct.
33050         (process_file): Fill up the new structure.
33051         (read_graph_file): Replace usage of encoding by the newly added
33052         struct.
33053         (add_line_counts): Likewise.
33054         (accumulate_line_counts): Remove usage of the union.
33055         (function_info::function_info): New function.
33056         (function_info::~function_info): Likewise.
33057         (process_file): Call delete instead of release_function.
33058         (release_function): Release the function.
33059         (release_structures): Call delete instead of release_function.
33060         (solve_flow_graph): Replace usage of num_blocks.
33061         (find_exception_blocks): Likewise.
33062         (output_lines): Fix GNU coding style.
33063
33064 2017-04-28  Martin Liska  <mliska@suse.cz>
33065
33066         PR driver/56469
33067         * coverage.c (coverage_remove_note_file): New function.
33068         * coverage.h: Declare the function.
33069         * toplev.c (finalize): Clean if an error has been seen.
33070
33071 2017-04-28  Martin Liska  <mliska@suse.cz>
33072
33073         PR gcov-profile/80031
33074         * gcov-dump.c (tag_blocks): Just print number of basic blocks.
33075         * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
33076         * gcov.c (read_graph_file): Read just number of blocks.
33077         * profile.c (branch_prob): Do not stream 0 flags per a basic
33078         block.
33079
33080 2017-04-28  Martin Liska  <mliska@suse.cz>
33081
33082         * gcov-dump.c (tag_*): Add new argument to declarations.
33083         (dump_gcov_file): Likewise.
33084         (tag_blocks): Add and use new argument depth.
33085         (tag_arcs): Likewise.
33086         (tag_lines): Likewise.
33087         (tag_counters): Likewise.
33088         (tag_summary): Likewise.
33089         (dump_working_sets): Use depth to do a proper indentation.
33090
33091 2017-04-28  Jakub Jelinek  <jakub@redhat.com>
33092
33093         PR bootstrap/80531
33094         * cgraph.h (symtab_node::debug_symtab): No longer inline.
33095         * symtab.c (symtab_node::debug_symtab): Move definition here.
33096
33097 2017-04-28  Richard Biener  <rguenther@suse.de>
33098
33099         * lto-streamer.h (LTO_major_version): Bump to 7.
33100
33101 2017-04-28  Richard Biener  <rguenther@suse.de>
33102
33103         * tree-vrp.c (assert_info): New struct.
33104         (add_assert_info): New helper.
33105         (register_edge_assert_for_2): Refactor to add asserts to a vector
33106         of assert_info.
33107         (register_edge_assert_for_1): Likewise.
33108         (register_edge_assert_for): Likewise.
33109         (finish_register_edge_assert_for): New helper actually registering
33110         asserts where live on edge.
33111         (find_conditional_asserts): Adjust.
33112         (find_switch_asserts): Likewise.
33113         (evrp_dom_walker::try_find_new_range): Generalize.
33114         (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
33115
33116 2017-04-27  Marek Polacek  <polacek@redhat.com>
33117
33118         PR sanitizer/80349
33119         * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
33120         arg10 and arg11 to itype.
33121
33122 2017-04-27  Jonathan Wakely  <jwakely@redhat.com>
33123
33124         * doc/extend.texi (Object Size Checking): Improve grammar.
33125
33126 2017-04-27  Richard Earnshaw  <rearnsha@arm.com>
33127
33128         PR target/80530
33129         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
33130         that the logic for permitting reciprocal estimates matches that
33131         in use_rsqrt_p.
33132
33133 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
33134
33135         PR c++/80534
33136         * tree.c (type_cache_hasher::equal): Only compare
33137         TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
33138         (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
33139         non-aggregate element types.
33140         * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
33141         about the flag on ARRAY_TYPEs in the comment, formatting fix.
33142
33143 2017-04-27  Richard Biener  <rguenther@suse.de>
33144
33145         PR middle-end/80533
33146         * emit-rtl.c (set_mem_attributes_minus_bitpos): When
33147         stripping ARRAY_REFs from MEM_EXPR make sure we're not
33148         keeping a reference to a trailing array.
33149
33150 2017-04-27  Richard Biener  <rguenther@suse.de>
33151
33152         PR middle-end/80539
33153         * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
33154         being in loop-closed SSA form conservatively.
33155         (chrec_fold_multiply_poly_poly): Likewise.
33156
33157 2017-04-27  Tamar Christina  <tamar.christina@arm.com>
33158
33159         PR middle-end/79665
33160         * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
33161         CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
33162
33163 2017-04-27  Jakub Jelinek  <jakub@redhat.com>
33164
33165         PR target/77728
33166         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
33167         (aarch64_function_arg_alignment): Return unsigned int again, but still
33168         ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
33169         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
33170         Don't emit -Wpsabi note.
33171         (aarch64_function_arg_boundary): Likewise.
33172         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
33173         caller.
33174
33175 2017-04-26  Nathan Sidwell  <nathan@acm.org>
33176
33177         * tree.h (crc32_unsigned_n): Declare.
33178         (crc32_unsigned, crc32_unsigned): Make inline.
33179         * tree.c (crc32_unsigned_bits): Replace with ...
33180         (crc32_unsigned_n): ... this.
33181         (crc32_unsigned, crc32_byte): Remove.
33182         (crc32_string): Remove unnecessary braces.
33183
33184 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
33185
33186         * ipa-cp.c (estimate_local_effects): Convert sreal to int.
33187         * ipa-inline-analysis.c (MAX_TIME): Remove.
33188         (account_size_time): Use sreal for time.
33189         (dump_inline_summary): Update.
33190         (estimate_function_body_sizes): Update.
33191         (estimate_edge_size_and_time): Update.
33192         (estimate_calls_size_and_time): Update.
33193         (estimate_node_size_and_time): Update.
33194         (inline_merge_summary): Update.
33195         (inline_update_overall_summary): Update.
33196         (estimate_time_after_inlining): Update.
33197         (inline_read_section): Update.
33198         (inline_write_summary): Update.
33199         * ipa-inline.c (compute_uninlined_call_time): Update.
33200         (compute_inlined_call_time): Update.
33201         (recursive_inlining): Update.
33202         (inline_small_functions): Update.
33203         (dump_overall_stats): Update.
33204         * ipa-inline.h: Include sreal.h.
33205         (size_time_entry): Turn time to sreal.
33206         (inline_summary): Turn self_time nad time to sreal.
33207
33208 2017-04-25  Jan Hubicka  <hubicka@ucw.cz>
33209
33210         * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
33211         data-streamer.h
33212         (sreal::stream_out, sreal::stream_in): New.
33213         * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
33214
33215 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
33216
33217         * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
33218         environment.
33219
33220 2017-04-25  Uros Bizjak  <ubizjak@gmail.com>
33221
33222         PR target/70799
33223         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
33224         Handle ASHIFTRT.
33225         (dimode_scalar_chain::compute_convert_gain): Ditto.
33226         (dimode_scalar_chain::make_vector_copies): Ditto.
33227         (dimode_scalar_chain::convert_reg): Ditto.
33228         (dimode_scalar_chain::convert_insn): Ditto.
33229         * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
33230         (VI248_AVX512BW_1): New mode iterator.
33231         (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
33232         <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
33233         mode iterator.
33234
33235 2017-04-25  Martin Sebor  <msebor@redhat.com>
33236
33237         PR tree-optimization/80497
33238         * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
33239         constants are representable in HOST_WIDE_INT.
33240         (parse_directive): Ditto.
33241
33242 2017-04-25  Martin Sebor  <msebor@redhat.com>
33243
33244         PR bootstrap/80486
33245         * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
33246         (new_zero_array): Adjust signature.
33247         (dom_info::dom_init): Used unsigned rather that size_t.
33248         (dom_info::dom_info): Same.
33249
33250 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33251             Jakub Jelinek  <jakub@redhat.com>
33252
33253         PR target/77728
33254         * config/arm/arm.c: Include gimple.h.
33255         (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
33256         returns negative, increment ncrn only if it returned positive.
33257         (arm_needs_doubleword_align): Return int instead of bool,
33258         ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
33259         members, but if there is any such non-FIELD_DECL
33260         > PARM_BOUNDARY aligned decl, return -1 instead of false.
33261         (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
33262         returns negative, increment nregs only if it returned positive.
33263         (arm_setup_incoming_varargs): Likewise.
33264         (arm_function_arg_boundary): Emit -Wpsabi note if
33265         arm_needs_doubleword_align returns negative, return
33266         DOUBLEWORD_ALIGNMENT only if it returned positive.
33267
33268 2017-04-25  Marek Polacek  <polacek@redhat.com>
33269
33270         PR sanitizer/80349
33271         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
33272         first argument to type.
33273
33274 2017-04-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
33275
33276         PR target/80482
33277         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
33278         type checks to test for compatibility instead of equality.
33279
33280 2017-04-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33281             Jakub Jelinek  <jakub@redhat.com>
33282
33283         PR target/77728
33284         * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
33285         type.
33286         (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
33287         struct.  Ignore DECL_ALIGN of decls other than FIELD_DECL for
33288         the alignment computation, but return their maximum in warn_alignment.
33289         (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
33290         Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
33291         is smaller.
33292         (aarch64_function_arg_boundary): Likewise.  Simplify using MIN/MAX.
33293         (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
33294         caller.
33295
33296 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33297
33298         * config/arc/simdext.md (dmpyh): Fix typo.
33299
33300 2017-04-25  Richard Biener  <rguenther@suse.de>
33301
33302         PR tree-optimization/80492
33303         * alias.c (compare_base_decls): Handle registers with asm
33304         specification conservatively.
33305         * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
33306         compare_base_decls returning dont-know properly.
33307
33308 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33309
33310         * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
33311         (legitimate_offset_address_p): New function.
33312         (arc_legitimate_address_p): Use above function.
33313
33314 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33315
33316         * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
33317
33318 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33319
33320         * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
33321         ACCH registers whenever they are available.
33322
33323 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33324
33325         * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
33326         double regs fix when not used.
33327
33328 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33329
33330         * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
33331         core registers.
33332         (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
33333         (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
33334
33335 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33336
33337         * config/arc/arc.c (arc_output_addsi): Check for h-register class
33338         when emitting short ADD instructions.
33339
33340 2017-04-25  Claudiu Zissulescu  <claziss@synopsys.com>
33341
33342         * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
33343         constraint.
33344         (cmpsi_cc_c_insn): Likewise.
33345         (cbranchsi4_scratch): Compute proper instruction length using
33346         compact_hreg_operand.
33347         * config/arc/predicates.md (compact_hreg_operand): New predicate.
33348
33349 2017-04-25  Richard Biener  <rguenther@suse.de>
33350
33351         PR middle-end/80509
33352         * passes.c (pass_manager::pass_manager): Initialize
33353         m_name_to_pass_map.
33354
33355 2017-04-25  Richard Biener  <rguenther@suse.de>
33356
33357         PR tree-optimization/79201
33358         * tree-ssa-sink.c (statement_sink_location): Handle calls.
33359
33360 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33361
33362         PR target/80464
33363         * config/s390/vector.md: Split MEM->GPR vector moves for
33364         non-s_operand addresses.
33365
33366 2017-04-25  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
33367
33368         PR target/79895
33369         * config/s390/predicates.md (reload_const_wide_int_operand): New
33370         predicate.
33371         * config/s390/s390.md ("movti"): Remove d/P alternative.
33372         ("movti_bigconst"): New pattern definition.
33373
33374 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33375
33376         PR target/80080
33377         * s390-protos.h (s390_expand_cs_hqi): Removed.
33378         (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
33379         * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
33380         modes as well as CCZ1mode and CCZmode.
33381         (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
33382         signature of s390_emit_compare_and_swap.
33383         (s390_expand_cs_hqi): Likewise, make static.
33384         (s390_expand_cs_tdsi): Generate an explicit compare before trying
33385         compare-and-swap, in some cases.
33386         (s390_expand_cs): Wrapper function.
33387         (s390_expand_atomic_exchange_tdsi): New backend specific expander for
33388         atomic_exchange.
33389         (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
33390         * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
33391         patterns for small and large integers.  Forbid symref memory operands.
33392         Move expander to s390.c.  Require cc register.
33393         ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
33394         ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
33395         ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
33396         ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
33397         symref memory operands.  Remove CC mode and call s390_match_ccmode
33398         instead.
33399         ("atomic_exchange<mode>"): Allow and implement all integer modes.
33400
33401 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33402
33403         * config/s390/s390.md (define_peephole2): New peephole to help
33404         combining the load-and-test pattern with volatile memory.
33405
33406 2017-04-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33407
33408         * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
33409         with CCZmode for TARGET_Z196.
33410
33411 2017-04-25  Jakub Jelinek  <jakub@redhat.com>
33412
33413         PR rtl-optimization/80501
33414         * combine.c (make_compound_operation_int): Set subreg_code to SET
33415         even for AND with mask of the sign bit of mode.
33416
33417         PR rtl-optimization/80500
33418         * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
33419         sum's initial value.
33420
33421 2017-04-25  Julian Brown  <julian@codesourcery.com>
33422             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
33423
33424         * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
33425
33426 2017-04-25  Marc Glisse  <marc.glisse@inria.fr>
33427
33428         * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
33429
33430 2017-04-25  Julian Brown  <julian@codesourcery.com>
33431             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
33432
33433         * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
33434         (thunderx2t99_sha): New Reservation.
33435
33436 2017-04-25  Julian Brown  <julian@codesourcery.com>
33437             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
33438
33439         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
33440         type for 1-element load.
33441
33442 2017-04-24  Marc Glisse  <marc.glisse@inria.fr>
33443
33444         * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
33445
33446 2017-04-24  Martin Jambor  <mjambor@suse.cz>
33447
33448         PR tree-optimization/80293
33449         * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
33450         char arrays not totally scalarizable if it is false.
33451         (analyze_all_variable_accesses): Pass correct value in the new
33452         parameter.  Add a statistics counter.
33453
33454 2017-04-24  Jan Hubicka  <hubicka@ucw.cz>
33455
33456         PR middle-end/79931
33457         * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
33458
33459 2017-04-24  Richard Biener  <rguenther@suse.de>
33460
33461         PR tree-optimization/80494
33462         * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
33463         out for complex types.
33464
33465 2017-04-24  Richard Biener  <rguenther@suse.de>
33466
33467         * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
33468         * tree-ssa-sccvn.c (print_scc): Print SCC size.
33469         (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
33470         (DFS): Adjust and never fail.
33471         (sccvn_dom_walker::fail): Remove.
33472         (sccvn_dom_walker::before_dom_children): Adjust.
33473         (run_scc_vn): Likewise and never fail.
33474         * tree-ssa-pre.c (pass_pre::execute): Adjust.
33475         (pass_fre::execute): Likewise.
33476
33477 2017-04-24  Richard Biener  <rguenther@suse.de>
33478
33479         PR tree-optimization/79725
33480         * tree-ssa-sink.c (statement_sink_location): Return whether
33481         failure reason was zero uses.  Move that check later.
33482         (sink_code_in_bb): Deal with zero uses by removing the stmt
33483         if possible.
33484
33485 2017-04-24  Richard Biener  <rguenther@suse.de>
33486
33487         PR c++/2972
33488         * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
33489         pointer-based references.
33490
33491 2017-04-24  Richard Biener  <rguenther@suse.de>
33492
33493         PR bootstrap/79814
33494         * pass_manager.h (pass_manager::operator new): Remove.
33495         (pass_manager::operator delete): Likewise.
33496         * passes.c (pass_manager::operator new): Remove.
33497         (pass_manager::operator delete): Likewise.
33498         (pass_manager::pass_manager): Zero individual pass members.
33499
33500 2017-04-23  Uros Bizjak  <ubizjak@gmail.com>
33501
33502         PR target/70799
33503         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
33504         <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
33505         Check "XEXP (src, 1)" operand here.
33506         <case PLUS, case MINUS, case IOR, case XOR, case AND>:
33507         Check "XEXP (src, 1)" operand here.
33508         (dimode_scalar_chain::make_vector_copies): Detect count register
33509         of a shift instruction.  Zero extend count register from QImode
33510         to DImode to satisfy vector shift pattern count operand predicate.
33511         Substitute vector shift count operand with a DImode copy.
33512         (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
33513         vector register.
33514
33515 2017-04-21  Uros Bizjak  <ubizjak@gmail.com>
33516
33517         * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
33518         Remove UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
33519         (*insvqi_1_mem_rex64): Move above insv<mode>_1.  Remove
33520         UNSPEC_NOREX_MEM tag.  Update corresponding peephole2 pattern.
33521         (UNSPEC_NOREX_MEM): Remove definition.
33522
33523 2017-04-21  Richard Biener  <rguenther@suse.de>
33524
33525         PR tree-optimization/79547
33526         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
33527         Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
33528         bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
33529         without any constraints.
33530
33531 2017-04-21  Richard Biener  <rguenther@suse.de>
33532
33533         PR tree-optimization/78847
33534         * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
33535
33536 2017-04-21  Richard Biener  <rguenther@suse.de>
33537
33538         * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
33539         (build_distinct_type_copy): Likewise.
33540         (build_variant_type_copy): Likewise.
33541         * tree.c (build_qualified_type): Pass down mem-stat info.
33542         (build_distinct_type_copy): Likewise.
33543         (build_variant_type_copy): Likewise.
33544
33545 2017-04-21  Richard Biener  <rguenther@suse.de>
33546
33547         PR tree-optimization/80237
33548         * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
33549         defaulted to NULL.
33550         (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
33551         for a simplified result.
33552
33553 2016-04-21  Richard Biener  <rguenther@suse.de>
33554
33555         * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
33556         sth as strict as a simple_iv but a chrec without symbols and an
33557         operand defined in the loop we are peeling (and not some subloop).
33558         (propagate_constants_for_unrolling): Propagate all constants.
33559
33560 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
33561
33562         PR target/79804
33563         * config/i386/i386.c (print_reg): Remove assert for disalowed
33564         regno values, call output_operand_lossage instead.
33565
33566 2017-04-20  Uros Bizjak  <ubizjak@gmail.com>
33567
33568         PR target/78090
33569         * config/i386/constraints.md (Yc): New register constraint.
33570         * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
33571         Use Yc constraint for alternative 2 of operand 0.  Remove
33572         preferred_for_speed attribute.
33573
33574 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
33575
33576         * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
33577         lastprivate clauses in SIMT case.
33578
33579 2017-04-20  Volker Reichelt  <v.reichelt@netcologne.de>
33580
33581         * doc/invoke.texi (-Wextra-semi): Document new warning option.
33582
33583 2017-04-20  Richard Biener  <rguenther@suse.de>
33584
33585         PR tree-optimization/57796
33586         * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
33587         as N scalar stores.
33588         (vect_model_load_cost): Cost gathers as N scalar loads.
33589
33590 2017-04-20  Richard Biener  <rguenther@suse.de>
33591
33592         * ggc-page.c (ggc_allocated_p): Rename to ...
33593         (safe_lookup_page_table_entry): ... this and return the lookup
33594         result.
33595         (gt_ggc_m_S): Use safe_lookup_page_table_entry.
33596
33597 2017-04-20  Richard Biener  <rguenther@suse.de>
33598
33599         PR tree-optimization/80453
33600         * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
33601         * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
33602         from the conditions.
33603         (vn_phi_eq): Pass them down.
33604         (vn_phi_lookup): Record them.
33605         (vn_phi_insert): Likewise.
33606
33607 2017-04-20  Matthew Fortune  <matthew.fortune@imgtec.com>
33608
33609         * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
33610         uninitialized variable warning to avoid buffer overrun.
33611
33612 2017-04-20  Alexander Monakov  <amonakov@ispras.ru>
33613
33614         PR other/71250
33615         * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
33616         is suppressed for '{ 0 }' in C.
33617
33618 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
33619
33620         * BASE-VER: Set to 8.0.0.
33621
33622 2017-04-20  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33623
33624         * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
33625         priority .init_array and .fini_array section with SECTION_NOTYPE
33626         flag.
33627
33628 2017-04-20  Jakub Jelinek  <jakub@redhat.com>
33629
33630         PR middle-end/80423
33631         * tree.h (build_array_type): Add typeless_storage default argument.
33632         * tree.c (type_cache_hasher::equal): Also compare
33633         TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
33634         (build_array_type): Add typeless_storage argument, set
33635         TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
33636         recursive call.
33637         (build_nonshared_array_type): Adjust build_array_type_1 caller.
33638         (build_array_type): Likewise.  Add typeless_storage argument.
33639
33640 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33641             Jakub Jelinek  <jakub@redhat.com>
33642
33643         PR tree-optimization/80426
33644         * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
33645         operation on symbolic operands, also compute the overflow for the
33646         invariant part when the operation degenerates into a negation.
33647
33648 2017-04-19  Jakub Jelinek  <jakub@redhat.com>
33649
33650         PR debug/80461
33651         * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
33652         Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
33653
33654         PR debug/80436
33655         * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
33656
33657 2017-04-19  Georg-Johann Lay  <avr@gjlay.de>
33658
33659         PR target/80462
33660         * config/avr/avr.c (tree.h): Include it.
33661         (cgraph.h): Include it.
33662         (avr_encode_section_info): Don't warn for uninitialized progmem
33663         variable if it's just an alias.
33664
33665 2017-04-19  Richard Biener  <rguenther@suse.de>
33666
33667         PR ipa/65972
33668         * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
33669         when needed by AutoPGO.
33670
33671 2017-04-19  Paulo J. Matos  <paulo@matos-sorge.com>
33672
33673         PR lto/50345
33674         * doc/lto.texi: Remove an extra 'that'.
33675
33676 2017-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
33677
33678         PR rtl-optimization/80429
33679         * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
33680         are only used in debug insns.
33681
33682 2017-04-19  Eric Botcazou  <ebotcazou@adacore.com>
33683             Vladimir Makarov  <vmakarov@redhat.com>
33684
33685         * config/sparc/predicates.md (input_operand): Add comment.  Return
33686         true for any memory operand when LRA is in progress.
33687         * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
33688
33689 2017-04-18  Jeff Law  <law@redhat.com>
33690
33691         PR target/74563
33692         * mips.md ({return,simple_return}_internal): Do not overwrite
33693         operands[0].
33694
33695 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33696
33697         PR tree-optimization/80443
33698         * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
33699         instead of adding 1, subtract -1 and similarly instead of subtracting
33700         1 add -1.
33701
33702 2017-04-18  Richard Sandiford  <richard.sandiford@arm.com>
33703
33704         PR rtl-optimization/80357
33705         * haifa-sched.c (tmp_bitmap): New variable.
33706         (model_recompute): Handle duplicate use records.
33707         (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
33708         (free_global_sched_pressure_data): Free it.
33709
33710 2017-04-18  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33711
33712         Revert:
33713         2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33714         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
33715         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
33716         instead of SYSTEM_HEADER_DIR.
33717
33718 2017-04-18  Jeff Law  <law@redhat.com>
33719
33720         PR middle-end/80422
33721         * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
33722         predecessors after walking up the insn chain.
33723
33724 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33725
33726         PR debug/80263
33727         * dwarf2out.c (modified_type_die): Try harder not to emit internal
33728         sizetype type into debug info.
33729
33730 2017-04-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
33731
33732         PR target/80099
33733         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
33734         unneeded test for TARGET_UPPER_REGS_SF.
33735         * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
33736
33737 2017-04-18  Jakub Jelinek  <jakub@redhat.com>
33738
33739         PR sanitizer/80444
33740         * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
33741         instead of gsi_after_labels.
33742
33743 2017-04-18  Jeff Law  <law@redhat.com>
33744
33745         * regcprop.c (maybe_mode_change): Avoid creating copies of the
33746         stack pointer.
33747
33748         Revert:
33749         2017-04-13  Jeff Law  <law@redhat.com>
33750         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
33751         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
33752
33753 2017-04-18  Georg-Johann Lay  <avr@gjlay.de>
33754
33755         PR target/79453
33756         * config/avr/avr.c (intl.h): Include it.
33757         (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
33758
33759 2017-04-18  Martin Liska  <mliska@suse.cz>
33760
33761         PR gcov-profile/78783
33762         * gcov-tool.c (gcov_output_files): Validate that destination
33763         file is either removed by the tool or by a user.
33764
33765 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33766             Guy Benyei  <guybe@mellanox.com>
33767
33768         * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
33769         block, and do not negate it, the stored id is already negative.
33770
33771 2017-04-14  Andrew Burgess  <andrew.burgess@embecosm.com>
33772
33773         * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
33774
33775 2017-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
33776
33777         PR target/80098
33778         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
33779         masks of options that should be turned off if the VSX vector
33780         options are turned off.
33781         (OTHER_P8_VECTOR_MASKS): Likewise.
33782         (OTHER_VSX_VECTOR_MASKS): Likewise.
33783         * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
33784         rs6000_disable_incompatible_switches to validate no type switches
33785         like -mvsx.
33786         (rs6000_incompatible_switch): New function to disallow turning on
33787         other vector options if -mno-vsx, -mno-power8-vector, or
33788         -mno-power9-vector are specified.
33789
33790 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33791
33792         * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
33793
33794 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33795
33796         * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
33797         * config/arc/arc.c (arc_decl_pretend_args): Likewise.
33798         * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
33799         (ARG_POINTER_CFA_OFFSET): Likewise.
33800
33801 2017-04-14  Claudiu Zissulescu  <claziss@synopsys.com>
33802
33803         * config/arc/arc.c (arc_mode_dependent_address_p): Relax
33804         conditions to take advantage of various optimizations.
33805
33806 2017-04-13  Jeff Law  <law@redhat.com>
33807
33808         * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
33809         in operands[1] if it is a MEM and TARGET_MIPS16 is active.
33810         (zero_extendsidi2_dext): Likewise.
33811
33812 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33813
33814         PR sanitizer/80403
33815         * fold-const.c (fold_ternary_loc): Revert
33816         use op0 instead of fold_convert_loc (loc, type, arg0) part of
33817         2017-04-12 change.
33818
33819 2017-04-13  Vladimir Makarov  <vmakarov@redhat.com>
33820
33821         PR rtl-optimization/80343
33822         * lra-remat.c (update_scratch_ops): Assign original hard reg to
33823         new scratch pseudo.
33824
33825 2017-04-13  Denis Khalikov <d.khalikov@partner.samsung.com>
33826
33827         PR sanitizer/80414
33828         * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
33829         to ubsan_encode_value.
33830
33831 2017-04-13  Jeff Law  <law@redhat.com>
33832
33833         * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
33834         appearing in DEBUG_INSNs.
33835
33836 2017-04-13  Martin Liska  <mliska@suse.cz>
33837
33838         PR gcov-profile/80413
33839         * gcov-io.c (gcov_write_string): Copy to buffer just when
33840         allocated size is greater than zero.
33841
33842 2017-04-13  Jakub Jelinek  <jakub@redhat.com>
33843
33844         PR debug/80321
33845         * dwarf2out.c (decls_for_scope): Ignore declarations of
33846         current_function_decl in BLOCK_NONLOCALIZED_VARS.
33847
33848 2017-04-12  Jan Hubicka  <hubicka@ucw.cz>
33849
33850         PR lto/69953
33851         * ipa-visibility.c (non_local_p): Fix typos.
33852         (localize_node): When localizing symbol in same comdat group,
33853         dissolve the group only when we know external symbols are going
33854         to be privatized.
33855         (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
33856
33857 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33858
33859         PR tree-optimization/79390
33860         * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
33861         order does not result in usable sequence, retry with reversed operand
33862         order.
33863
33864         PR sanitizer/80403
33865         PR sanitizer/80404
33866         PR sanitizer/80405
33867         * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
33868         to fold_build2_loc.  Convert TREE_OPERAND (tem, 0) to type.  Use
33869         op0 instead of fold_convert_loc (loc, type, arg0).
33870
33871 2017-04-12  Jeff Law  <law@redhat.com>
33872
33873         * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
33874         has a delay slot in the generated code.
33875
33876         * config/cris/cris.md (cris_preferred_reload_class): Return
33877         GENNONACR_REGS rather than GENERAL_REGS.
33878
33879 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33880
33881         PR c/80163
33882         * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
33883         vs. ZERO_EXTEND based on signedness of treeop0's type rather than
33884         signedness of the result type.
33885
33886 2017-04-12  Richard Biener  <rguenther@suse.de>
33887             Jeff Law  <law@redhat.com>
33888
33889         PR tree-optimization/80359
33890         * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
33891         trim stores to TARGET_MEM_REFs.
33892
33893 2017-04-12  Richard Biener  <rguenther@suse.de>
33894
33895         PR tree-optimization/79390
33896         * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
33897         threading case even more.
33898
33899 2017-04-12  Segher Boessenkool  <segher@kernel.crashing.org>
33900
33901         PR target/80382
33902         * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
33903         for quad_address_p for TImode, instead of just not indexed_address.
33904
33905 2017-04-12  Richard Biener  <rguenther@suse.de>
33906             Bernd Edlinger  <bernd.edlinger@hotmail.de>
33907
33908         PR middle-end/79671
33909         * alias.c (component_uses_parent_alias_set_from): Handle
33910         TYPE_TYPELESS_STORAGE.
33911         (get_alias_set): Likewise.
33912         * tree-core.h (tree_type_common): Add typeless_storage flag.
33913         * tree.h (TYPE_TYPELESS_STORAGE): New macro.
33914         * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
33915         for types containing members with TYPE_TYPELESS_STORAGE.
33916         (place_field): Likewise.
33917         (layout_type): Likewise for ARRAY_TYPE.
33918         * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
33919         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
33920         TYPE_TYPELESS_STORAGE.
33921         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
33922
33923 2017-04-12  Jakub Jelinek  <jakub@redhat.com>
33924
33925         PR sanitizer/80349
33926         * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
33927         first argument to type.
33928
33929 2017-04-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
33930
33931         PR target/80376
33932         PR target/80315
33933         * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
33934         CONST0_RTX (mode) rather than const0_rtx where appropriate.
33935         (rs6000_expand_binop_builtin): Likewise.
33936         (rs6000_expand_ternop_builtin): Likewise; also add missing
33937         vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
33938         vshasigma built-ins.
33939         * doc/extend.texi: Document that vec_xxpermdi's third argument
33940         must be a constant.
33941
33942 2017-04-11  Uros Bizjak  <ubizjak@gmail.com>
33943
33944         * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
33945         Use shift_const cost parameter when calculating gain of STV shifts.
33946
33947 2017-04-11  Vladimir Makarov  <vmakarov@redhat.com>
33948
33949         PR rtl-optimization/70478
33950         * lra-constraints.c (process_alt_operands): Check memory for
33951         disfavoring memory insn operand.
33952
33953 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
33954
33955         PR middle-end/80100
33956         * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
33957         left shift in unsigned HOST_WIDE_INT type.
33958
33959         PR rtl-optimization/80385
33960         * simplify-rtx.c (simplify_unary_operation_1): Don't transform
33961         (not (neg X)) into (plus X -1) for complex or non-integral modes.
33962
33963         PR libgomp/80394
33964         * omp-low.c (scan_omp_task): Don't optimize away empty tasks
33965         if they have any depend clauses.
33966
33967 2017-04-11  Martin Liska  <mliska@suse.cz>
33968
33969         PR ipa/80212
33970         * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
33971         * ipa-split.c (split_function): Create a local comdat symbol
33972         if caller is in a comdat group.
33973
33974 2017-04-11  Martin Liska  <mliska@suse.cz>
33975
33976         PR ipa/80212
33977         * ipa-cp.c (determine_versionability): Handle calls_comdat_local
33978         flags.
33979
33980 2017-04-11  Martin Sebor  <msebor@redhat.com>
33981
33982         PR middle-end/80364
33983         * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
33984         always use the int type.  Use INTEGRAL_TYPE_P() rather than testing
33985         for INTEGER_TYPE.
33986         (directive::set_width, directive::set_precision, format_character):
33987         Adjust.
33988         (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
33989         INTEGER_TYPE.
33990
33991 2017-04-11  Richard Earnshaw  <rearnsha@arm.com>
33992
33993         PR target/80389
33994         * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
33995         conflict, set target->arch_name instead of target->cpu_name.
33996
33997 2017-04-11  Richard Biener  <rguenther@suse.de>
33998
33999         PR tree-optimization/80374
34000         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
34001         build_zero_cst, remove fold_convertible_p check again.
34002
34003 2017-04-11  Martin Liska  <mliska@suse.cz>
34004
34005         PR sanitizer/70878
34006         * ubsan.c (instrument_object_size): Do not instrument register
34007         variables.
34008
34009 2017-04-11  Jakub Jelinek  <jakub@redhat.com>
34010
34011         PR target/80381
34012         * config/i386/i386-builtin-types.def
34013         (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
34014         V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
34015         V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
34016         V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
34017         V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
34018         V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
34019         V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
34020         V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
34021         V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
34022         V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
34023         V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
34024         V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
34025         V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
34026         V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
34027         V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
34028         V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
34029         V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
34030         V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
34031         * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
34032         __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
34033         __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
34034         __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
34035         __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
34036         __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
34037         __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
34038         __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
34039         __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
34040         __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
34041         __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
34042         __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
34043         __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
34044         __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
34045         __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
34046         __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
34047         __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
34048         __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
34049         __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
34050         __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
34051         __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
34052         __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
34053         __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
34054         __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
34055         __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
34056         __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
34057         __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
34058         __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
34059         aliases.
34060         * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
34061         flag to second_arg_count, handle 4 argument function type _COUNT
34062         aliases, handle second_arg_count on second argument rather than last.
34063
34064 2017-04-10  Jeff Law  <law@redhat.com>
34065
34066         PR tree-optimization/80374
34067         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
34068         record anything if we can not convert integer_zero_node to the
34069         desired type.
34070
34071 2017-04-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34072
34073         PR target/80108
34074         * config/rs6000/rs6000.c (rs6000_option_override_internal):
34075         Enhance special handling given to the TARGET_P9_MINMAX option in
34076         relation to certain other options.
34077
34078 2017-04-10  Bin Cheng  <bin.cheng@arm.com>
34079
34080         PR tree-optimization/80153
34081         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
34082         remove POINTER_PLUS_EXPR's base part directly, rather than through
34083         aff_tree.
34084
34085 2017-04-10  Richard Biener  <rguenther@suse.de>
34086             Bin Cheng  <bin.cheng@arm.com>
34087
34088         PR tree-optimization/80153
34089         * tree-affine.c (aff_combination_to_tree): Get base pointer from
34090         the first element of pointer type aff_tree.  Build result expr in
34091         aff_tree's type.
34092         (add_elt_to_tree): Convert to type unconditionally.  Remove other
34093         fold_convert calls.
34094         * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
34095         (rewrite_use_nonlinear_expr): Check invariant using iv information.
34096
34097 2017-04-10  Richard Biener  <rguenther@suse.de>
34098
34099         * tree-ssa-structalias.c (find_func_aliases): Properly handle
34100         asm inputs.
34101
34102 2017-04-10  Vladimir Makarov  <vmakarov@redhat.com>
34103
34104         PR rtl-optimization/70478
34105         * lra-constraints.c (curr_small_class_check): New.
34106         (update_and_check_small_class_inputs): New.
34107         (process_alt_operands): Update curr_small_class_check.  Disfavor
34108         alternative insn memory operands.  Check available regs for small
34109         class operands.
34110
34111 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
34112
34113         PR target/80057
34114         * config/mips/mips.opt (-mvirt): Update description.
34115         * doc/invoke.texi (-mvirt): Likewise.
34116
34117 2017-04-10  Richard Biener  <rguenther@suse.de>
34118
34119         PR middle-end/80362
34120         * fold-const.c (fold_binary_loc): Look at unstripped ops when
34121         looking for NEGATE_EXPR in -A / -B to A / B folding.
34122
34123 2017-04-10  Martin Liska  <mliska@suse.cz>
34124
34125         PR gcov-profile/80224
34126         * gcov.c (print_usage): Fix usage string.
34127         (get_gcov_intermediate_filename): Remove.
34128         (output_gcov_file): Use both for normal and intermediate format.
34129         (generate_results): Do not initialize special file for
34130         intermediate format.
34131
34132 2017-04-10  Richard Biener  <rguenther@suse.de>
34133
34134         PR tree-optimization/80304
34135         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
34136         for safelen.
34137
34138 2017-04-10  Nathan Sidwell  <nathan@acm.org>
34139
34140         PR target/79905
34141         * config/rs6000/rs6000.c (rs6000_vector_type): New.
34142         (rs6000_init_builtins): Use it.
34143
34144 2016-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34145
34146         * config/arm/arm.md (<mrc>): Add mode to SET source.
34147         (<mrrc>): Likewise.
34148
34149 2017-04-10  Richard Biener  <rguenther@suse.de>
34150
34151         PR middle-end/80344
34152         * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
34153
34154 2017-04-10  Jakub Jelinek  <jakub@redhat.com>
34155
34156         PR target/80324
34157         * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
34158         _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
34159         _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
34160         _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
34161         _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
34162         _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
34163         _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
34164         _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
34165         _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
34166         _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
34167         _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
34168         _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
34169         _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
34170         _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
34171         _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
34172         _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
34173         _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
34174         _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
34175         _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
34176         _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
34177         _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
34178         _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
34179         _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
34180
34181 2017-04-08  Vladimir Makarov  <vmakarov@redhat.com>
34182
34183         PR rtl-optimization/70478
34184         * lra-constraints.c: Reverse the last patch.
34185
34186 2017-04-08  Andreas Tobler  <andreast@gcc.gnu.org>
34187
34188         * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
34189         Add comment for WCHAR_T.
34190
34191 2017-04-08  Martin Liska  <mliska@suse.cz>
34192
34193         Revert:
34194         2017-04-07  Martin Liska  <mliska@suse.cz>
34195
34196         PR ipa/80212
34197         * ipa-split.c (split_function): Add function part to a same comdat
34198         group.
34199
34200 2017-04-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
34201
34202         PR target/80358
34203         * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
34204
34205 2017-04-07  Pat Haugen  <pthaugen@us.ibm.com>
34206
34207         * rs6000/rs6000.c (vec_load_pendulum): Rename...
34208         (vec_pairing): ...to this.
34209         (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
34210         (rs6000_sched_init): Adjust for name change.
34211         (struct rs6000_sched_context): Likewise.
34212         (rs6000_init_sched_context): Likewise.
34213         (rs6000_set_sched_context): Likewise.
34214
34215 2017-04-07  Jakub Jelinek  <jakub@redhat.com>
34216
34217         PR target/80322
34218         PR target/80323
34219         PR target/80325
34220         PR target/80326
34221         * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
34222         intrinsics.
34223         * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
34224         _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
34225         _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
34226
34227 2017-04-07  Andreas Tobler  <andreast@gcc.gnu.org>
34228
34229         * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
34230
34231 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
34232
34233         PR rtl-optimization/70703
34234         * ira-color.c (update_conflict_hard_regno_costs): Use
34235         int64_t instead of HOST_WIDE_INT.
34236
34237 2017-04-07  Vladimir Makarov  <vmakarov@redhat.com>
34238
34239         PR rtl-optimization/70478
34240         * lra-constraints.c (process_alt_operands): Disfavor alternative
34241         insn memory operands.
34242
34243 2017-04-07  Jeff Law  <law@redhat.com>
34244
34245         * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
34246         CALL and NOTE_INSN_CALL_ARG_LOCATION.
34247
34248 2017-04-07  Martin Liska  <mliska@suse.cz>
34249
34250         PR target/79889
34251         * config/aarch64/aarch64.c (aarch64_process_target_attr):
34252         Show error message instead of an ICE.
34253
34254 2017-04-07  Martin Liska  <mliska@suse.cz>
34255
34256         PR ipa/80212
34257         * ipa-split.c (split_function): Add function part to a same comdat
34258         group.
34259
34260 2017-04-07  Richard Biener  <rguenther@suse.de>
34261
34262         PR middle-end/80341
34263         * tree.c (get_unwidened): Also handle ! for_type case for
34264         INTEGER_CSTs.
34265         * convert.c (do_narrow): Split out from ...
34266         (convert_to_integer_1): ... here.  Do not pass final truncation
34267         type to get_unwidened for TRUNC_DIV_EXPR.
34268
34269 2017-04-07  Richard Biener  <rguenther@suse.de>
34270
34271         * tree-affine.c (wide_int_ext_for_comb): Take type rather
34272         than aff_tree.
34273         (aff_combination_const): Adjust.
34274         (aff_combination_scale): Likewise.
34275         (aff_combination_add_elt): Likewise.
34276         (aff_combination_add_cst): Likewise.
34277         (aff_combination_convert): Likewise.
34278         (add_elt_to_tree): Likewise.  Remove unused argument.
34279         (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
34280
34281 2017-04-07  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34282
34283         * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
34284         definition.
34285         * config/arm/arm.c (arm_default_short_enums): Use
34286         ARM_DEFAULT_SHORT_ENUMS.
34287         * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
34288
34289 2017-04-06  Jakub Jelinek  <jakub@redhat.com>
34290
34291         PR debug/80234
34292         * dwarf2out.c (gen_member_die): Handle C++17 inline static data
34293         members with redundant out-of-class redeclaration.
34294
34295 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
34296
34297         PR target/80286
34298         * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
34299         * config/i386/i386.md (*zero_extendsidi2):
34300         Add (?*x,*x) and (?*v,*v) alternatives.
34301
34302 2017-04-06  Uros Bizjak  <ubizjak@gmail.com>
34303
34304         PR target/79733
34305         * config/i386/i386.c (ix86_expand_builtin)
34306         <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
34307         mode from insn data. Convert operands to insn operand mode.
34308         Copy operands that don't satisfy insn predicate to a register.
34309
34310 2017-04-06  Sam Thursfield  <sam.thursfield@codethink.co.uk>
34311
34312         * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
34313         Update comments.
34314
34315 2017-04-06  Richard Biener  <rguenther@suse.de>
34316
34317         PR tree-optimization/80334
34318         * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
34319         preserve alignment of accesses.
34320
34321 2017-04-06  Richard Biener  <rguenther@suse.de>
34322
34323         PR tree-optimization/80262
34324         * tree-sra.c (build_ref_for_offset): Preserve address-space
34325         information.
34326         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
34327         Drop useless address-space information on MEM_REF offsets.
34328
34329 2017-04-05  Andreas Schwab  <schwab@linux-m68k.org>
34330
34331         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
34332
34333 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
34334
34335         PR rtl-optimization/70703
34336         * ira-color.c (update_conflict_hard_regno_costs): Use
34337         HOST_WIDE_INT instead of long.
34338
34339 2017-04-05  Uros Bizjak  <ubizjak@gmail.com>
34340
34341         PR target/80298
34342         * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
34343         not defined for x86_64 target.  Add -mmmx target option when __SSE2__
34344         is not defined.
34345         * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
34346         for x86_64 target.  Handle -m3dnowa option.
34347
34348 2017-04-05  Vladimir Makarov  <vmakarov@redhat.com>
34349
34350         PR rtl-optimization/70703
34351         * ira-color.c (update_costs_from_allocno): Use the smallest mode.
34352         (update_conflict_hard_regno_costs): Use long instead of unsigned
34353         arithmetic for cost calculation.
34354
34355 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
34356             Bernd Edlinger  <bernd.edlinger@hotmail.de>
34357
34358         PR sanitizer/80308
34359         * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
34360         for big endian.
34361
34362 2017-04-05  Eric Botcazou  <ebotcazou@adacore.com>
34363
34364         PR target/78002
34365         * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
34366         ptr_mode with Pmode throughout.
34367         * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
34368         into probe_stack_range and use DImode.
34369
34370 2017-04-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
34371
34372         PR target/79890
34373         * config/s390/s390.c (s390_register_info_gprtofpr): Return if
34374         call_eh_return is true.
34375
34376 2017-04-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34377
34378         * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
34379         Initialize last_match_fntype_index.
34380
34381 2017-04-05  Jakub Jelinek  <jakub@redhat.com>
34382
34383         PR target/80310
34384         * tree-nvr.c: Include internal-fn.h.
34385         (pass_return_slot::execute): Ignore internal calls without
34386         direct optab.
34387
34388 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
34389             Richard Biener  <rguenther@suse.de>
34390
34391         PR c++/80297
34392         * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
34393         captures used multiple times, except for the last use.
34394         * generic-match-head.c: Include gimplify.h.
34395
34396 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
34397
34398         PR tree-optimization/79390
34399         * target.h (struct noce_if_info): Declare.
34400         * targhooks.h (default_noce_conversion_profitable_p): Declare.
34401         * target.def (noce_conversion_profitable_p): New target hook.
34402         * ifcvt.h (struct noce_if_info): New type, moved from ...
34403         * ifcvt.c (struct noce_if_info): ... here.
34404         (noce_conversion_profitable_p): Renamed to ...
34405         (default_noce_conversion_profitable_p): ... this.  No longer
34406         static nor inline.
34407         (noce_try_store_flag_constants, noce_try_addcc,
34408         noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
34409         noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
34410         instead of noce_conversion_profitable_p.
34411         * config/i386/i386.c: Include ifcvt.h.
34412         (ix86_option_override_internal): Don't override
34413         PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
34414         (ix86_noce_conversion_profitable_p): New function.
34415         (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
34416         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
34417         * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
34418         * doc/tm.texi: Regenerated.
34419
34420 2017-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34421
34422         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
34423         correction.
34424
34425 2017-04-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
34426
34427         PR target/80307
34428         * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
34429         instructions for small multiply cores.
34430
34431 2017-04-04  Jeff Law  <law@redhat.com>
34432
34433         * config/mips/mips.c (mips_multi_add): Zero initialize the newly
34434         added member.
34435         (mips_expand_vec_perm_const): Initialize elements in orig_perm
34436         that are not set by the loop over the elements.
34437
34438 2017-04-04  Jakub Jelinek  <jakub@redhat.com>
34439
34440         PR target/80286
34441         * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
34442         int mode, convert_modes it to mode as unsigned, otherwise use
34443         lowpart_subreg to mode rather than SImode.
34444         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
34445         ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
34446         Use DImode instead of SImode for the shift count operand.
34447         * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
34448         Likewise.
34449
34450 2017-04-04  Richard Biener  <rguenther@suse.de>
34451
34452         PR middle-end/80281
34453         * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
34454         arithmetic done for the negate or the plus.  Simplify.
34455         (A - (-B) -> A + B): Likewise.
34456         * fold-const.c (split_tree): Make sure to not negate pointers.
34457
34458 2017-04-04  Segher Boessenkool  <segher@kernel.crashing.org>
34459
34460         PR rtl-optimization/60818
34461         * simplify-rtx.c (simplify_binary_operation_1): Do not replace
34462         a compare of comparisons with the thing compared if this results
34463         in a different machine mode.
34464
34465 2017-04-03  Jonathan Wakely  <jwakely@redhat.com>
34466
34467         * alias.c (base_alias_check): Fix typo in comment.
34468         * cgraph.h (class ipa_polymorphic_call_context): Likewise.
34469         * cgraphunit.c (symbol_table::compile): Likewise.
34470         * collect2.c (maybe_run_lto_and_relink): Likewise.
34471         * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
34472         * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
34473         * config/avr/avr.c (avr_map_op_t): Likewise.
34474         * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
34475         * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
34476         * config/epiphany/epiphany.md (movcc): Likewise.
34477         * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
34478         * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
34479         Likewise.
34480         * config/mips/mips.c (mips_save_restore_reg): Likewise.
34481         * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
34482         * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
34483         * config/sh/sh.c (sh_rtx_costs): Likewise.
34484         * fold-const.c (fold_truth_andor): Likewise.
34485         * genautomata.c (collapse_flag): Likewise.
34486         * gengtype.h (struct type::u::s): Likewise.
34487         * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
34488         * input.c (FORMAT_AMOUNT): Likewise.
34489         * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
34490         (known_aggs_to_agg_replacement_list): Likewise.
34491         * ipa-inline-analysis.c: Likewise.
34492         * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
34493         * ipa-polymorphic-call.c
34494         (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
34495         * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
34496         * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
34497         Likewise.
34498         * modulo-sched.c (apply_reg_moves): Likewise.
34499         * omp-expand.c (build_omp_regions_1): Likewise.
34500         * trans-mem.c (struct tm_wrapper_hasher): Likewise.
34501         * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
34502         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
34503         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
34504         * value-prof.c: Likewise.
34505         * var-tracking.c (val_reset): Likewise.
34506
34507 2017-04-03  Richard Biener  <rguenther@suse.de>
34508
34509         PR tree-optimization/80275
34510         * fold-const.c (split_address_to_core_and_offset): Handle
34511         POINTER_PLUS_EXPR.
34512
34513 2017-04-03  Eric Botcazou  <ebotcazou@adacore.com>
34514
34515         * tree-nested.c (get_descriptor_type): Make sure that the alignment of
34516         descriptors is at least equal to that of functions.
34517
34518 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
34519
34520         * config/i386/sse.md (movdi_to_sse): Add missing DONE.
34521
34522 2017-04-02  Uros Bizjak  <ubizjak@gmail.com>
34523
34524         PR target/80250
34525         * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
34526         (mov<IMOD4:mode>): New expander.
34527         (*mov<IMOD4:mode>_internal): New insn and split pattern.
34528
34529 2017-03-31  Segher Boessenkool  <segher@kernel.crashing.org>
34530
34531         PR rtl-optimization/79405
34532         * fwprop.c (propagations_left): New variable.
34533         (forward_propagate_into): Decrement it.
34534         (fwprop_init): Initialize it.
34535         (fw_prop): If the variable has reached zero, stop propagating.
34536         (fwprop_addr): Ditto.
34537
34538 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
34539
34540         PR debug/79255
34541         * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
34542         a FUNCTION_DECL, pass it as decl instead of origin to
34543         process_scope_var.
34544
34545 2017-03-31  Alexander Monakov  <amonakov@ispras.ru>
34546
34547         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
34548         string.
34549
34550 2017-03-31  Pat Haugen  <pthaugen@us.ibm.com>
34551
34552         PR target/80107
34553         * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
34554         TARGET_VSX_SMALL_INTEGER.
34555
34556 2017-03-31  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34557
34558         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
34559         reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
34560
34561 2017-03-31  Matthew Fortune  <matthew.fortune@imgtec.com>
34562
34563         * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
34564         extraction from odd-numbered MSA register.
34565
34566 2017-03-31  Jakub Jelinek  <jakub@redhat.com>
34567
34568         PR middle-end/80173
34569         * expmed.c (store_bit_field_1): Don't attempt to create
34570         a word subreg out of hard registers wider than word if they
34571         have HARD_REGNO_NREGS of 1 for their mode.
34572
34573         PR middle-end/80163
34574         * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
34575         conversions to integer types wider than word and pointer.
34576
34577         PR debug/80025
34578         * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
34579         (rtx_equal_for_cselib_p): Pass 0 to it.
34580         * cselib.c (cselib_hasher::equal): Likewise.
34581         (rtx_equal_for_cselib_1): Add depth argument.  If depth
34582         is 128, don't look up VALUE locs and punt.  Increment
34583         depth in recursive calls when walking VALUE locs.
34584
34585 2017-03-31  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34586
34587         * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
34588         (make_gcov_file_name): Use the canonical path name for generating
34589         the MD5 value.
34590         (read_line): Fix handling of files with ascii null bytes.
34591
34592 2017-03-30  Matthew Fortune  <matthew.fortune@imgtec.com>
34593
34594         * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
34595         to initialise a vector register instead
34596         of using a const_int.
34597
34598 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
34599
34600         PR translation/80189
34601         * gimplify.c (omp_default_clause): Use %qs instead of %s in
34602         diagnostic messages.
34603
34604 2017-03-30  Peter Bergner  <bergner@vnet.ibm.com>
34605
34606         PR target/80246
34607         * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
34608         (dfp_diex_<mode>): Update mode of operand 1.
34609         * doc/extend.texi (dxex, dxexq): Document change to return type.
34610         (diex, diexq): Document change to argument type.
34611
34612 2017-03-30  Martin Jambor  <mjambor@suse.cz>
34613
34614         PR ipa/77333
34615         * cgraph.h (cgraph_build_function_type_skip_args): Declare.
34616         * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
34617         it reflects the signature changes performed at the callee side.
34618         * cgraphclones.c (build_function_type_skip_args): Make public, renamed
34619         to cgraph_build_function_type_skip_args.
34620         (build_function_decl_skip_args): Adjust call to the above function.
34621
34622 2017-03-30  Jakub Jelinek  <jakub@redhat.com>
34623
34624         PR target/80206
34625         * config/i386/sse.md
34626         (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
34627         register as dest whenever it is a MEM not rtx_equal_p to the
34628         corresponding dup operand, and when forcing into reg move the
34629         reg into the memory afterwards.
34630         (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
34631         Likewise.  Use <ssehalfvecmode> instead of <ssequartermode>
34632         for the force_reg mode.
34633         (avx512vl_vextractf128<mode>): Use register as dest either
34634         always when a MEM, or when it is a MEM not rtx_equal_p to the
34635         corresponding dup operand, or even not when it is a CONST_VECTOR
34636         depending on the mode and lo vs. hi.
34637         (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
34638         parens.
34639         (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
34640         (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
34641         Likewise.  Require that operands[2] is even.
34642         (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
34643         Remove extraneous parens.  Require that operands[2] is a multiple
34644         of 4.
34645         (vec_extract_lo_<mode><mask_name>): Don't bother testing if
34646         operands[0] is a MEM if <mask_applied>, the predicates/constraints
34647         disallow memory then.
34648
34649 2017-03-30  Richard Biener  <rguenther@suse.de>
34650
34651         PR tree-optimization/77498
34652         * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
34653         to non-constants over backedges.
34654
34655 2017-03-29  Segher Boessenkool  <segher@kernel.crashing.org>
34656
34657         PR rtl-optimization/80233
34658         * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
34659         as last_combined_insn.  Do not test for BARRIER_P separately.
34660
34661 2017-03-29  Andreas Schwab  <schwab@suse.de>
34662
34663         PR ada/80146
34664         * calls.c (prepare_call_address): Convert funexp to Pmode before
34665         copying to temp reg.
34666
34667 2017-03-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
34668
34669         PR tree-optimization/80158
34670         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
34671         Handle possible future case of more than one alternate
34672         interpretation.
34673         (replace_rhs_if_not_dup): Likewise.
34674         (replace_one_candidate): Likewise.
34675
34676 2017-03-28  Vladimir Makarov  <vmakarov@redhat.com>
34677
34678         PR rtl-optimization/80193
34679         * ira.c (ira): Do not check allocation for LRA.
34680
34681 2017-03-28  Alexander Monakov  <amonakov@ispras.ru>
34682
34683         * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
34684         (nvptx_output_simt_exit): Declare.
34685         * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
34686         cfun->machine->unisimt_location.  Handle NULL unisimt_predicate.
34687         (init_softstack_frame): Move initialization of crtl->is_leaf to...
34688         (nvptx_declare_function_name): ...here.  Emit declaration of local
34689         memory space buffer for omp_simt_enter insn.
34690         (nvptx_output_unisimt_switch): New.
34691         (nvptx_output_softstack_switch): New.
34692         (nvptx_output_simt_enter): New.
34693         (nvptx_output_simt_exit): New.
34694         * config/nvptx/nvptx.h (struct machine_function): New fields
34695         has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
34696         * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
34697         (UNSPECV_SIMT_EXIT): Ditto.
34698         (omp_simt_enter_insn): New insn.
34699         (omp_simt_enter): New expansion.
34700         (omp_simt_exit): New insn.
34701         * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
34702
34703         * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
34704         (expand_GOMP_SIMT_ENTER_ALLOC): New.
34705         (expand_GOMP_SIMT_EXIT): New.
34706         * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
34707         (GOMP_SIMT_ENTER_ALLOC): Ditto.
34708         (GOMP_SIMT_EXIT): Ditto.
34709         * target-insns.def (omp_simt_enter): New insn.
34710         (omp_simt_exit): Ditto.
34711         * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
34712         simt_dlist.
34713         (lower_rec_simd_input_clauses): Implement SIMT privatization.
34714         (lower_rec_input_clauses): Likewise.
34715         (lower_lastprivate_clauses): Handle SIMT privatization.
34716
34717         * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
34718         (ompdevlow_adjust_simt_enter): New.
34719         (find_simtpriv_var_op): New.
34720         (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
34721         IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
34722
34723         * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
34724         * tree-inline.c (expand_call_inline): Handle SIMT privatization.
34725         (copy_decl_for_dup_finish): Ditto.
34726
34727         * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
34728
34729 2017-03-28  Uros Bizjak  <ubizjak@gmail.com>
34730
34731         PR target/53383
34732         * config/i386/i386.c (ix86_option_override_internal): Always
34733         allow -mpreferred-stack-boundary=3 for 64-bit targets.
34734
34735 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
34736
34737         * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
34738
34739 2017-03-28  Bin Cheng  <bin.cheng@arm.com>
34740
34741         * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
34742         mark new edge's irreducible flag accordign to it.
34743         (vect_do_peeling): Check loop preheader edge's irreducible flag
34744         and pass it to function slpeel_add_loop_guard.
34745
34746 2017-03-28  Richard Sandiford  <richard.sandiford@arm.com>
34747
34748         PR tree-optimization/80218
34749         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
34750         Update block frequencies and counts.
34751
34752 2017-03-28  Richard Biener  <rguenther@suse.de>
34753
34754         PR tree-optimization/78644
34755         * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
34756         of a simplification result we may not use it at all.
34757
34758 2017-03-28  Richard Biener  <rguenther@suse.de>
34759
34760         PR ipa/80205
34761         * tree-inline.c (copy_phis_for_bb): Do not create PHI node
34762         without arguments, generate default definition of a SSA name.
34763
34764 2017-03-28  Richard Biener  <rguenther@suse.de>
34765
34766         PR middle-end/80222
34767         * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
34768         TYPE_REF_CAN_ALIAS_ALL references.
34769         * fold-const.c (fold_indirect_ref_1): Likewise.
34770
34771 2017-03-28  Martin Liska  <mliska@suse.cz>
34772
34773         PR ipa/80104
34774         * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
34775         thunk call as DECL_GIMPLE_REG_P when vector or complex type.
34776
34777 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34778             Thomas Petazzoni  <thomas.petazzoni@free-electrons.com>
34779
34780         * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
34781         (EXTRA_SPECS): Define.
34782         (SUBTARGET_EXTRA_SPECS): Likewise.
34783         (SUBTARGET_CPP_SPEC): Likewise.
34784         * config/arc/elf.h (EXTRA_SPECS): Renamed to
34785         SUBTARGET_EXTRA_SPECS.
34786         * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
34787
34788 2017-03-28  Claudiu Zissulescu  <claziss@synopsys.com>
34789
34790         * config/arc/simdext.md (vst64_insn): Update pattern.
34791         (vld32wh_insn): Likewise.
34792         (vld32wl_insn): Likewise.
34793         (vld64_insn): Likewise.
34794         (vld32_insn): Likewise.
34795
34796 2017-03-28  Marek Polacek  <polacek@redhat.com>
34797
34798         PR sanitizer/80067
34799         * fold-const.c (fold_comparison): Use protected_set_expr_location
34800         instead of SET_EXPR_LOCATION.
34801
34802 2017-03-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
34803
34804         * tree.c (add_expr): Avoid name lookup warning.
34805
34806 2017-03-27  Jeff Law  <law@redhat.com>
34807
34808         PR tree-optimization/80216
34809         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
34810         function name.  Limit recursion depth.
34811         (record_temporary_equivalences): Corresponding changes.
34812
34813 2017-03-27  Jonathan Wakely  <jwakely@redhat.com>
34814
34815         * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
34816         covered first.
34817
34818 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34819
34820         PR target/80102
34821         * reg-notes.def (REG_CFA_NOTE): Define.  Use it for CFA related
34822         notes.
34823         * cfgcleanup.c (reg_note_cfa_p): New array.
34824         (insns_have_identical_cfa_notes): New function.
34825         (old_insns_match_p): Don't cross-jump in between /f
34826         and non-/f instructions.  If both i1 and i2 are frame related,
34827         verify all CFA notes, their order and content.
34828
34829 2017-03-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
34830
34831         PR target/78543
34832         * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
34833         HImode and SImode with zero extend to DImode to one insn.
34834         (bswap<mode>2_extenddi): Likewise.
34835         (bswapsi2_extenddi): Likewise.
34836         (bswaphi2_extendsi): Likewise.
34837         (bswaphi2): Combine bswap HImode and SImode into one insn.
34838         Separate memory insns from swapping register.
34839         (bswapsi2): Likewise.
34840         (bswap<mode>2): Likewise.
34841         (bswaphi2_internal): Delete, no longer used.
34842         (bswapsi2_internal): Likewise.
34843         (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
34844         store, and gpr<-gpr swap insns.
34845         (bswap<mode>2_store): Likewise.
34846         (bswaphi2_reg): Register only splitter, combine with the splitter.
34847         (bswaphi2 splitter): Likewise.
34848         (bswapsi2_reg): Likewise.
34849         (bswapsi2 splitter): Likewise.
34850         (bswapdi2): If we have the LDBRX and STDBRX instructions, split
34851         the insns into load, store, and register/register insns.
34852         (bswapdi2_ldbrx): Likewise.
34853         (bswapdi2_load): Likewise.
34854         (bswapdi2_store): Likewise.
34855         (bswapdi2_reg): Likewise.
34856
34857 2017-03-27  Gunther Nikl  <gnikl@users.sourceforge.net>
34858
34859         * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
34860         (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
34861
34862 2017-03-27  Kelvin Nilsen  <kelvin@gcc.gnu.org>
34863
34864         PR target/80103
34865         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
34866         add comments.
34867         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
34868         special handling for target option conflicts between dform
34869         options (-mpower9-dform, -mpower9-dform-vector,
34870         -mpower9-dform-scalar) and -mno-direct-move.
34871
34872 2017-03-27  Richard Biener  <rguenther@suse.de>
34873
34874         PR tree-optimization/80181
34875         * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
34876
34877 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34878
34879         * config/arc/predicates.md (move_double_src_operand): Replace the
34880         call to move_double_src_operand with a call to address_operand.
34881
34882 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34883
34884         * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
34885         * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
34886         * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
34887
34888 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34889
34890         * config/arc/predicates.md (long_immediate_loadstore_operand):
34891         Consider scaled addresses cases.
34892
34893 2017-03-27  Claudiu Zissulescu  <claziss@synopsys.com>
34894
34895         * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
34896         restored when in interrupt.
34897         * config/arc/arc.md (simple_return): ARCv2 rtie instruction
34898         doesn't have delay slot.
34899
34900 2017-03-27  Richard Biener  <rguenther@suse.de>
34901
34902         PR ipa/79776
34903         * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
34904         inlined thunk clones.
34905
34906 2017-03-27  Jakub Jelinek  <jakub@redhat.com>
34907
34908         PR sanitizer/80168
34909         * asan.c (instrument_derefs): Copy over last operand from
34910         original COMPONENT_REF to the new COMPONENT_REF with
34911         DECL_BIT_FIELD_REPRESENTATIVE.
34912         * ubsan.c (instrument_object_size): Likewise.
34913
34914 2017-03-27  Richard Biener  <rguenther@suse.de>
34915
34916         PR tree-optimization/80170
34917         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
34918         sure DR/SCEV didnt fold in constants we do not see when looking
34919         at the reference base alignment.
34920
34921 2017-03-27  Richard Biener  <rguenther@suse.de>
34922
34923         PR middle-end/80171
34924         * gimple-fold.c (fold_ctor_reference): Properly guard against
34925         NULL return value from canonicalize_constructor_val.
34926
34927 2017-03-25  Uros Bizjak  <ubizjak@gmail.com>
34928
34929         PR target/80180
34930         * config/i386/i386.c (ix86_expand_builtin)
34931         <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
34932         flags reg setting and flags reg using instructions.
34933         <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto.  Use non-flags reg
34934         clobbering instructions to zero extend op2.
34935
34936 2017-03-25  Gerald Pfeifer  <gerald@pfeifer.com>
34937
34938         * doc/install.texi (Configuration) <--with-aix-soname>:
34939         Update link to AIX ld.
34940
34941 2017-03-25  Bernd Schmidt  <bschmidt@redhat.com>
34942
34943         PR rtl-optimization/80160
34944         PR rtl-optimization/80159
34945         * lra-assigns.c (must_not_spill_p): Tighten new test to also take
34946         reg_alternate_class into account.
34947
34948 2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>
34949
34950         PR target/80148
34951         * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
34952         to consider in curr_insn_transform.
34953
34954 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
34955
34956         * genrecog.c (validate_pattern): Add VEC_SELECT validation.
34957         * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
34958         and emit_mode_inner.
34959
34960 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
34961
34962         * config/s390/s390-builtins.def: Add VXE builtins.  Add a flags
34963         argument to the overloaded builtin variants.  Use the new flag to
34964         deprecate certain builtin variants.
34965         * config/s390/s390-builtin-types.def: Add new builtin types.
34966         * config/s390/s390-builtins.h: Support new flags field for
34967         overloaded builtins.
34968         * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
34969         (s390_macro_to_expand): Enable vector float data type.
34970         (s390_cpu_cpp_builtins_internal): Indicate support of the new
34971         builtins by incrementing the __VEC__ version number.
34972         (s390_expand_overloaded_builtin): Support expansion of vec_xl and
34973         vec_xst.
34974         (s390_resolve_overloaded_builtin): Emit error messages depending
34975         on the builtin flags.
34976         * config/s390/s390.c (s390_expand_builtin): Support additional
34977         flags argument.  Change error message to match the messages
34978         emitted in s390-c.c.
34979         * config/s390/s390.md: New UNSPEC_* constants.
34980         (op_type): Add new instruction types.
34981         * config/s390/vecintrin.h: Add new builtins and test data class
34982         constants.
34983         * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
34984         (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
34985         (VEC_INEXACT, VEC_NOINEXACT): New constants.
34986         ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
34987         ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
34988         ("vec_mergel<mode>"): V_HW -> VEC_HW.
34989
34990         ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
34991         ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
34992         ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
34993         ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
34994
34995         ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
34996         ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
34997         ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
34998         ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
34999
35000         ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
35001         ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
35002         ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
35003         ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
35004         ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
35005         ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
35006         ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
35007
35008         ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
35009         ("vec_scatter_element<V_HW_4:mode>_DI")
35010         ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
35011         ("vec_fpint<mode>", "vflls")
35012         ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
35013         ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
35014         ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
35015         ("*vec_cmphe<mode>_cc"): ... these.
35016
35017         ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
35018         mode constant instead of magic value.
35019
35020 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35021
35022         * config/s390/s390.c (s390_expand_vec_compare): Support other
35023         vector floating point modes than just V2DF.
35024         (s390_expand_vcond): Likewise.
35025         (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
35026         (s390_cannot_change_mode_class): Prevent mode changes between TF
35027         and V1TF in vector registers.
35028         * config/s390/s390.md (DF, SF): New mode attributes.
35029         ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
35030         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
35031         SFmode support for VRs.
35032         * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
35033         vector fp modes.
35034         (VFT, VF_HW): New mode iterators.
35035         (vw, sdx): New mode attributes.
35036         ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
35037         ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
35038         ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
35039         ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
35040         ("vec_unorderedv2df"): Adjust the v2df only patterns to support
35041         also the new vector floating point modes.  Renaming to ...
35042
35043         ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
35044         ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
35045         ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
35046         ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
35047         ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
35048         ("vec_unordered<mode>"): ... these.
35049
35050         ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
35051         ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
35052         ("*vec_extendv2df"): New insn definitions.
35053
35054 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35055
35056         * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
35057         ("mulditi3_2", "*muldi3_sign"): New patterns.
35058         ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
35059         rename the pattern definition.
35060
35061 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35062
35063         * config/s390/s390.md ("indirect_jump"): Turn insn definition into
35064         expander.
35065         ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
35066
35067 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35068
35069         * config/s390/s390.c (s390_expand_vec_init): Use vllezl
35070         instruction if possible.
35071         * config/s390/vector.md (vec_halfnumelts): New mode
35072         attribute.
35073         ("*vec_vllezlf<mode>"): New pattern.
35074
35075 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35076
35077         * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
35078         ("popcountv4si2", "popcountv2di2"): Rename to ...
35079         ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
35080         ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
35081         condition.
35082         ("popcount<mode>2_vxe"): New pattern.
35083
35084 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35085
35086         * common/config/s390/s390-common.c (processor_flags_table): Add
35087         arch12.
35088         * config.gcc: Add arch12.
35089         * config/s390/driver-native.c (s390_host_detect_local_cpu):
35090         Default to arch12 for unknown CPU model numbers.
35091         * config/s390/s390-builtins.def: Add B_VXE builtin flag.
35092         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
35093         PROCESSOR_max sanity check.
35094         * config/s390/s390-opts.h (enum processor_type): Add
35095         PROCESSOR_ARCH12.
35096         * config/s390/s390.c (processor_table): Add arch12.
35097         (s390_expand_builtin): Add check for B_VXE flag.
35098         (s390_issue_rate): Add PROCESSOR_ARCH12.
35099         (s390_get_sched_attrmask): Likewise.
35100         (s390_get_unit_mask): Likewise.
35101         (s390_sched_score): Enable z13 scheduling for arch12.
35102         (s390_sched_reorder): Likewise.
35103         (s390_sched_variable_issue): Likewise.
35104         * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
35105         PF_VXE.
35106         (s390_tune_attr): Use z13 scheduling also for arch12.
35107         (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
35108         (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
35109         (TARGET_VXE_P): New macros.
35110         * config/s390/s390.md: Add arch12 to cpu attribute.  Add arch12
35111         and vxe to cpu_facility.  Add arch12 and vxe to enabled attribute.
35112         * config/s390/s390.opt: Add arch12 as processor_type.
35113
35114 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35115
35116         * config/s390/s390.md
35117         ("fixuns_truncdddi2", "fixuns_trunctddi2")
35118         ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
35119         ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
35120
35121         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
35122         Rename expanders to ...
35123
35124         ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
35125         ("fixuns_truncdddi2_emu"): ... these.
35126
35127         ("fixuns_trunc<mode>si2_emu"): New expander.
35128
35129         ("*fixuns_truncdfdi2_z13"): Rename to ...
35130         ("*fixuns_truncdfdi2_vx"): ... this.
35131
35132 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35133
35134         * config/s390/2964.md: Remove the single element vector compare
35135         instructions which are no longer used.
35136         * config/s390/s390.c (s390_select_ccmode): Remove handling of
35137         vector CCmodes.
35138         (s390_canonicalize_comparison): Remove handling of DFmode
35139         compares.
35140         (s390_expand_vec_compare_scalar): Remove function.
35141         (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
35142         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
35143         pattern.
35144         ("*cmp<mode>_ccs"): Add wfcdb instruction.
35145
35146 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35147
35148         * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
35149         FP zero.
35150         ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
35151         will anyway by matched by mov<mode>_64dfp.
35152
35153 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35154
35155         * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
35156         vlef/vstef.  Add missing operand to vleif.
35157
35158 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35159
35160         * config/s390/s390.c (s390_expand_vec_init): Enable vector load
35161         pair for all vector types with 64 bit elements.
35162         * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
35163         * config/s390/vector.md (V_HW_64): ... here.
35164         (V_128_NOSINGLE): New mode iterator.
35165         ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
35166         ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
35167         ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
35168         ("*vec_load_pairv2di"): Change to ...
35169         ("*vec_load_pair<mode>"): ... this one.
35170
35171 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35172
35173         * config/s390/constraints.md: Add comments.
35174         (jKK): Reject element sizes > 8 bytes.
35175         * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
35176         s_operands.
35177         * config/s390/s390.md: Add the s_operand checks formerly in
35178         s390_split_ok_p to various splitters where they are still
35179         required.
35180         * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
35181         for 128 bit vectors.  Plus two splitters.
35182
35183 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35184
35185         * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
35186         the file.
35187
35188 2017-03-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35189
35190         PR target/79893
35191         * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
35192         error if the boundary argument is not constant.
35193
35194 2017-03-24  Jakub Jelinek  <jakub@redhat.com>
35195
35196         PR rtl-optimization/80112
35197         * loop-doloop.c (doloop_condition_get): Don't check condition
35198         if cmp isn't SET with IF_THEN_ELSE src.
35199
35200 2017-03-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35201
35202         PR tree-optimization/80158
35203         * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
35204         replacing a candidate statement, also replace it for the
35205         candidate's alternate interpretation.
35206         (replace_rhs_if_not_dup): Likewise.
35207         (replace_one_candidate): Likewise.
35208
35209 2017-03-24  Richard Biener  <rguenther@suse.de>
35210
35211         PR tree-optimization/80167
35212         * graphite-isl-ast-to-gimple.c
35213         (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
35214         properly.
35215         (translate_isl_ast_to_gimple::get_rename): Likewise.
35216
35217 2017-03-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35218
35219         * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
35220         handling of certain combinations of target options, including the
35221         combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
35222         -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
35223
35224 2017-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35225
35226         PR target/71436
35227         * config/arm/arm.md (*load_multiple): Add reload_completed to
35228         matching condition.
35229
35230 2017-03-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35231             Richard Biener  <rguenth@suse.de>
35232
35233         PR tree-optimization/79908
35234         PR tree-optimization/80136
35235         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
35236         been cast away, gimplify_and_add suffices.
35237
35238 2017-03-23  Markus Trippelsdorf  <markus@trippelsdorf.de>
35239
35240         * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
35241
35242 2017-03-23  Richard Biener  <rguenther@suse.de>
35243
35244         PR tree-optimization/80032
35245         * gimplify.c (gimple_push_cleanup): Forced unconditional
35246         cleanups still have to go to the conditional_cleanups
35247         sequence.
35248
35249 2017-03-22  Jakub Jelinek  <jakub@redhat.com>
35250
35251         PR tree-optimization/80072
35252         * tree-ssa-reassoc.c (struct operand_entry): Change id field type
35253         to unsigned int.
35254         (next_operand_entry_id): Change type to unsigned int.
35255         (sort_by_operand_rank): Make sure to return the right return value
35256         even if unsigned fields are bigger than INT_MAX.
35257         (struct oecount): Change cnt and id type to unsigned int.
35258         (oecount_hasher::equal): Formatting fix.
35259         (oecount_cmp): Make sure to return the right return value
35260         even if unsigned fields are bigger than INT_MAX.
35261         (undistribute_ops_list): Change next_oecount_id type to unsigned int.
35262
35263         PR c++/80129
35264         * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
35265         TREE_READONLY on result if writing it more than once.
35266
35267         PR sanitizer/80110
35268         * doc/invoke.texi (-fsanitize=thread): Document that with
35269         -fnon-call-exceptions atomics are not able to throw
35270         exceptions.
35271
35272         PR sanitizer/80110
35273         * tsan.c: Include tree-eh.h.
35274         (instrument_builtin_call): Call maybe_clean_eh_stmt or
35275         maybe_clean_or_replace_eh_stmt where needed.
35276         (instrument_memory_accesses): Add cfg_changed argument.
35277         Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
35278         if it returned true.
35279         (tsan_pass): Adjust caller.  Return TODO_cleanup_cfg if cfg_changed.
35280
35281         PR rtl-optimization/63191
35282         * config/i386/i386.c (ix86_delegitimize_address): Turn into small
35283         wrapper function, moved the whole old content into ...
35284         (ix86_delegitimize_address_1): ... this.  New inline function.
35285         (ix86_find_base_term): Use ix86_delegitimize_address_1 with
35286         true as last argument instead of ix86_delegitimize_address.
35287
35288 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
35289
35290         * config/aarch64/aarch64.c (generic_branch_cost): Copy
35291         cortexa57_branch_cost.
35292
35293 2017-03-22  Wilco Dijkstra  <wdijkstr@arm.com>
35294
35295         * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
35296
35297 2017-03-21  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35298
35299         PR target/80123
35300         * doc/md.texi (Constraints): Document wA constraint.
35301         * config/rs6000/constraints.md (wA): New.
35302         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
35303         (rs6000_init_hard_regno_mode_ok): Init wA constraint.
35304         * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
35305         * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
35306
35307 2017-03-22  Cesar Philippidis  <cesar@codesourcery.com>
35308
35309         PR c++/80029
35310         * gimplify.c (is_oacc_declared): New function.
35311         (oacc_default_clause): Use it to set default flags for acc declared
35312         variables inside parallel regions.
35313         (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
35314         declared variables.
35315         (gimplify_oacc_declare): Gimplify the declare clauses.  Add the
35316         declare attribute to any decl as necessary.
35317
35318 2017-03-22  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35319
35320         PR target/80082
35321         * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
35322         (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
35323         * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
35324         (arm_arch_lpae): This.
35325         * config/arm/arm.c (arm_arch7ve): Rename into ...
35326         (arm_arch_lpae): This.  Define it in term of isa_bit_lpae.
35327         * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
35328         arm_arch_lpae.
35329
35330 2017-03-22  Martin Liska  <mliska@suse.cz>
35331
35332         PR target/79906
35333         * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
35334         error message instead of an ICE.
35335
35336 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35337
35338         * doc/extend.texi (6.11 Additional Floating Types): Revise.
35339
35340 2017-03-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35341
35342         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
35343         comments.
35344         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
35345         comments.
35346
35347 2017-03-21  Martin Sebor  <msebor@redhat.com>
35348
35349         * doc/extend.texi: Use "cannot" instead of "can't."
35350         * doc/hostconfig.texi: Same.
35351         * doc/install.texi: Same.
35352         * doc/invoke.texi: Same.
35353         * doc/loop.texi: Same.
35354         * doc/md.texi: Same.
35355         * doc/objc.texi: Same.
35356         * doc/rtl.texi: Same.
35357         * doc/tm.texi: Same.
35358         * doc/tm.texi.in: Same.
35359         * doc/trouble.texi: Same.
35360
35361 2017-03-21  Alexandre Oliva  <aoliva@redhat.com>
35362
35363         PR debug/63238
35364         * dwarf2out.c (struct checksum_attributes): Add at_alignment.
35365         (collect_checksum_attributes): Set it.
35366         (die_checksum_ordered): Use it.
35367
35368 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35369
35370         PR tree-optimization/79908
35371         * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
35372         change: For a VA_ARG whose LHS has been cast away, use
35373         force_gimple_operand to construct the side effects.
35374
35375 2017-03-21  David Malcolm  <dmalcolm@redhat.com>
35376
35377         PR translation/80001
35378         * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
35379         more amenable to translation.
35380         (oacc_loop_auto_partitions): Likewise.
35381
35382 2017-03-21  Marek Polacek  <polacek@redhat.com>
35383             Martin Sebor  <msebor@redhat.com>
35384
35385         PR tree-optimization/80109
35386         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
35387         on INTEGRAL_TYPE_P.
35388
35389 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
35390             Segher Boessenkool  <segher@kernel.crashing.org>
35391
35392         PR target/80125
35393         * combine.c (can_combine_p): Revert the 2017-03-20 change, only
35394         check reg_used_between_p between insn and one of succ or succ2
35395         depending on if succ is artificial insn not inserted into insn
35396         stream.
35397
35398 2017-03-21  Martin Liska  <mliska@suse.cz>
35399
35400         PR gcov-profile/80081
35401         * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
35402         * doc/gcc.texi: Include gcov-dump stuff.
35403         * doc/gcov-dump.texi: New file.
35404
35405 2017-03-21  Toma Tabacu  <toma.tabacu@imgtec.com>
35406
35407         PR rtl-optimization/79150
35408         * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
35409         conditional jump, if the jump is the last insn of the loop.
35410
35411 2017-03-21  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35412             Richard Biener  <rguenth@suse.de>
35413
35414         PR tree-optimization/79908
35415         * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
35416         been cast away, use force_gimple_operand to construct the side
35417         effects.
35418
35419 2017-03-21  Martin Liska  <mliska@suse.cz>
35420
35421         PR libfortran/79956
35422         * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
35423         to NULL.
35424
35425 2017-03-21  Brad Spengler <spender@grsecurity.net>
35426
35427         PR plugins/80094
35428         * plugin.c (htab_hash_plugin): New function.
35429         (add_new_plugin): Use it and adjust.
35430         (parse_plugin_arg_opt): Adjust.
35431         (init_one_plugin): Likewise.
35432
35433 2017-03-21  Richard Biener  <rguenther@suse.de>
35434
35435         PR tree-optimization/80032
35436         * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
35437         if set force the cleanup to happen unconditionally.
35438         (gimplify_target_expr): Push inserted clobbers with force_uncond
35439         to avoid them being removed by control-dependent DCE.
35440
35441 2017-03-21  Richard Biener  <rguenther@suse.de>
35442
35443         PR tree-optimization/80122
35444         * tree-inline.c (copy_bb): Do not expans va-arg packs or
35445         va_arg_pack_len when the inlined call stmt requires pack
35446         expansion itself.
35447         * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
35448
35449 2017-03-21  Jakub Jelinek  <jakub@redhat.com>
35450
35451         PR sanitizer/78158
35452         * tsan.c (instrument_builtin_call): If the memory model argument
35453         is not a constant, assume it is valid.
35454
35455         PR c/67338
35456         * fold-const.c (round_up_loc): Negate divisor in unsigned type to
35457         avoid UB.
35458
35459 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
35460
35461         PR rtl-optimization/79910
35462         * combine.c (can_combine_p): Do not allow combining an I0 or I1
35463         if its dest is used by an insn before I2 (other than the combined
35464         insns themselves, which are properly handled already).
35465
35466 2017-03-20  Segher Boessenkool  <segher@kernel.crashing.org>
35467
35468         Revert:
35469         2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
35470
35471         * combine.c (record_used_regs): New static function.
35472         (try_combine): Handle situations where there is an additional
35473         instruction between I2 and I3 which needs to have a LOG_LINK
35474         updated.
35475
35476         Revert:
35477         2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
35478
35479         * combine.c (try_combine): Delete redundant i1 test.  Call
35480         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
35481
35482 2017-03-20  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
35483
35484         PR target/80083
35485         * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
35486         alternatives 13/14.
35487
35488 2017-03-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
35489
35490         PR tree-optimization/80054
35491         * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
35492         the optimization if a PHI or any of its arguments is not dominated
35493         by the candidate's basis.  Use gphi* rather than gimple* as
35494         appropriate.
35495         (replace_profitable_candidates): Clean up a gimple* variable that
35496         should be a gphi* variable.
35497
35498 2017-03-20  Martin Sebor  <msebor@redhat.com>
35499
35500         PR c++/52477
35501         * doc/extend.texi (attribute constructor): Document present limitation.
35502
35503 2017-03-20  Kelvin Nilsen  <kelvin@gcc.gnu.org>
35504
35505         PR target/79963
35506         * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
35507         __POWER9_VECTOR__ #ifdef control, change template definition to
35508         use Power9-specific built-in function.
35509         (vec_any_eq): Likewise.
35510         * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
35511         to control outcomes from this test.
35512         (vector_ae_<mode>p): For VEC_F modes, likewise.
35513
35514 2017-03-20  Ian Lance Taylor  <iant@google.com>
35515
35516         * config/i386/i386.c (ix86_function_regparm): Save an extra
35517         register for -fsplit-stack with DECL_STATIC_CHAIN.
35518
35519 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
35520
35521         PR target/79912
35522         * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
35523         (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
35524
35525 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com>
35526
35527         * config/riscv/riscv.c (riscv_print_operand): Use "fence
35528         iorw,ow".
35529         * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
35530         iorw,iorw".
35531
35532 2017-03-20  Marek Polacek  <polacek@redhat.com>
35533
35534         PR sanitizer/80063
35535         * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
35536
35537 2017-03-20  Richard Biener  <rguenther@suse.de>
35538
35539         PR tree-optimization/80113
35540         * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
35541         allocate extra SSA name for PHI def.
35542         (add_close_phis_to_outer_loops): Likewise.
35543         (add_close_phis_to_merge_points): Likewise.
35544         (copy_loop_close_phi_args): Likewise.
35545         (copy_cond_phi_nodes): Likewise.
35546
35547 2017-03-20  Martin Liska  <mliska@suse.cz>
35548
35549         PR middle-end/79753
35550         * tree-chkp.c (chkp_build_returned_bound): Do not build
35551         returned bounds for a LHS that's not a BOUNDED_P type.
35552
35553 2017-03-20  Martin Liska  <mliska@suse.cz>
35554
35555         PR target/79769
35556         PR target/79770
35557         * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
35558         COMPLEX_CST and VECTOR_CST.
35559
35560 2017-03-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
35561
35562         PR target/78857
35563         * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
35564         target operand.  A new splitter adds the clobber statement in case
35565         the target operand is dead anyway.
35566
35567 2017-03-19  Gerald Pfeifer  <gerald@pfeifer.com>
35568
35569         * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
35570         to age-old versions of binutils and glibc.
35571
35572 2017-03-18  Segher Boessenkool  <segher@kernel.crashing.org>
35573
35574         * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
35575
35576 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
35577
35578         * doc/contrib.texi (Contributors): Add Segher Boessenkool.
35579
35580 2017-03-18  Gerald Pfeifer  <gerald@pfeifer.com>
35581
35582         * doc/install.texi (Specific) <arm-*-eabi>: Remove old
35583         requirement for binutils 2.13.
35584
35585 2017-03-17  Jim Wilson  <jim.wilson@linaro.org>
35586
35587         * combine.c (try_combine): Delete redundant i1 test.  Call
35588         prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
35589
35590 2017-03-17  Palmer Dabbelt  <palmer@dabbelt.com
35591
35592         * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
35593         riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
35594         contents.
35595         <riscv64-*-elf>: Re-arrange section
35596         <riscv32-*-elf>: Add a note about requiring binutils 2.28.
35597         <riscv32-*-linux>: Likewise.
35598         <riscv64-*-elf>: Likewise
35599         <riscv64-*-linux>: Likewise.
35600
35601 2017-03-17  Richard Earnshaw  <rearnsha@arm.com>
35602
35603         PR target/80052
35604         * aarch64.opt(verbose-cost-dump): Fix typo.
35605
35606 2017-03-17  Pat Haugen  <pthaugen@us.ibm.com>
35607
35608         PR target/79951
35609         * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
35610         for VECTOR_UNIT_VSX_P (<MODE>mode) too.
35611
35612 2017-03-17  Bernd Schmidt  <bschmidt@redhat.com>
35613
35614         * reload.c (find_reloads): When reloading a nonoffsettable address,
35615         use RELOAD_OTHER for it and its address reloads.
35616
35617         PR rtl-optimization/79910
35618         * combine.c (record_used_regs): New static function.
35619         (try_combine): Handle situations where there is an additional
35620         instruction between I2 and I3 which needs to have a LOG_LINK
35621         updated.
35622
35623 2017-03-17  Jeff Law  <law@redhat.com>
35624
35625         PR tree-optimization/71437
35626         * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
35627         conditional in the hash table first.
35628         (vrp_dom_walker::before_dom_children): Extract condition from
35629         ASSERT_EXPR.  Record condition, its inverion and any implied
35630         conditions as well.
35631
35632 2017-03-17  Marek Polacek  <polacek@redhat.com>
35633             Markus Trippelsdorf  <markus@trippelsdorf.de>
35634
35635         PR tree-optimization/80079
35636         * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
35637         m_stores_head.
35638
35639 2017-03-17  Richard Biener  <rguenther@suse.de>
35640
35641         PR middle-end/80075
35642         * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
35643         Properly verify the LHS before the RHS possibly claims to be
35644         handled.
35645         (stmt_could_throw_p): Hande gimple conds fully here.  Clobbers
35646         do not throw.
35647
35648 2017-03-17  Martin Jambor  <mjambor@suse.cz>
35649
35650         * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
35651         (List of -O2 options): Likewise.
35652         (-fipa-bit-cp): Replace "ipa" with "interprocedural."
35653         (-fipa-vrp) New.
35654
35655 2017-03-17  Tom de Vries  <tom@codesourcery.com>
35656
35657         * gcov-dump.c (print_usage): Print bug_report_url.
35658
35659 2017-03-17  Richard Biener  <rguenther@suse.de>
35660
35661         PR middle-end/80050
35662         * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
35663         (parser::peek): Likewise.
35664
35665 2017-03-17  Richard Biener  <rguenther@suse.de>
35666
35667         PR tree-optimization/80048
35668         * sese.c (free_sese_info): Properly release rename_map and
35669         copied_bb_map elements.
35670
35671 2017-03-16  Alexandre Oliva  <aoliva@redhat.com>
35672
35673         * gimple-ssa-store-merging.c (struct imm_store_chain_info):
35674         Add linked-list forward and backlinks.  Insert on
35675         construction, remove on destruction.
35676         (class pass_store_merging): Add m_stores_head field.
35677         (pass_store_merging::terminate_and_process_all_chains):
35678         Iterate over m_stores_head list.
35679         (pass_store_merging::terminate_all_aliasing_chains):
35680         Likewise.
35681         (pass_store_merging::execute): Check for debug stmts first.
35682         Push new chains onto the m_stores_head stack.
35683
35684 2017-03-16  Michael Meissner  <meissner@linux.vnet.ibm.com>
35685
35686         PR target/71294
35687         * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
35688         SPLAT operation on ISA 2.07 64-bit systems that have direct move,
35689         but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
35690
35691 2017-03-16  Jeff Law  <law@redhat.com>
35692
35693         PR tree-optimization/71437
35694         * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
35695         member function.  Implementation moved into after_dom_children
35696         member function and into the threader's thread_outgoing_edges
35697         function.
35698         (dom_opt_dom_walker::after_dom_children): Simplify by moving
35699         some code into new thread_outgoing_edges.
35700         * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
35701         definition.  Simplify marker handling (do it here).   Assume we always
35702         have the available expression and the const/copies tables.
35703         (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
35704         and tree-vrp.c
35705         * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
35706         * tree-vrp.c (equiv_stack): No longer file scoped.
35707         (vrp_dom_walker): New class.
35708         (vrp_dom_walker::before_dom_children): New member function.
35709         (vrp_dom_walker::after_dom_children): Likewise.
35710         (identify_jump_threads):  Setup domwalker.  Use it rather than
35711         walking edges in a random order by hand.  Simplify setup/finalization.
35712         (finalize_jump_threads): Remove.
35713         (vrp_finalize): Do not call identify_jump_threads here.
35714         (execute_vrp): Do it here instead and call thread_through_all_blocks
35715         here too.
35716
35717         PR tree-optimization/71437
35718         * tree-ssa-dom.c (pfn_simplify): Add basic_block argument.  All
35719         callers changed.
35720         (simplify_stmt_for_jump_threading): Add basic_block argument.  All
35721         callers changed.
35722         (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
35723         (dom_opt_dom_walker::thread_across_edge): Remove
35724         handle_dominating_asserts argument.  All callers changed.
35725         (record_temporary_equivalences_from_stmts_at_dest): Corresponding
35726         changes.  Remove calls to lhs_of_dominating_assert.  Other
35727         uses of handle_dominating_asserts turn into unconditional code
35728         (simplify_control_stmt_condition_1): Likewise.
35729         (simplify_control_stmt_condition): Likewise.
35730         (thread_through_normal_block, thread_across_edge): Likewise.
35731         * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
35732         * tree-vrp.c (lhs_of_dominating_assert): Move here.  Return original
35733         object if it is not an SSA_NAME.
35734         (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
35735         before calling into the VRP specific simplifiers.
35736         (identify_jump_threads): Remove handle_dominating_asserts
35737         argument.
35738
35739 2017-03-16  Jakub Jelinek  <jakub@redhat.com>
35740
35741         PR fortran/79886
35742         * tree-diagnostic.c (default_tree_printer): No longer static.
35743         * tree-diagnostic.h (default_tree_printer): New prototype.
35744
35745 2017-03-16  Tamar Christina  <tamar.christina@arm.com>
35746
35747         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
35748         Change ins into fmov.
35749
35750 2017-03-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35751
35752         * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
35753         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
35754         Use h_con constraint for operand 1.
35755         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
35756         (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
35757
35758 2017-03-15  Jeff Law  <law@redhat.com>
35759
35760         PR tree-optimization/71437
35761         * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
35762         (record_temporary_equivalences): Use it.
35763
35764         PR tree-optimization/71437
35765         * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
35766         tree-ssa-scopedtables.
35767         (lookup_avail_expr, build_and_record_new_cond): Likewise.
35768         (record_conditions, record_cond, vuse_eq): Likewise.
35769         (record_edge_info): Adjust to API tweak of record_conditions.
35770         (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
35771         (record_temporary_equivalences, optimize_stmt): Likewise.
35772         (eliminate_redundant_computations): Likewise.
35773         (record_equivalences_from_stmt): Likewise.
35774         * tree-ssa-scopedtables.c: Include options.h and params.h.
35775         (vuse_eq): New function, moved from tree-ssa-dom.c
35776         (build_and_record_new_cond): Likewise.
35777         (record_conditions): Likewise.  Accept vector of conditions rather
35778         than edge_equivalence structure for first argument.
35779         for the first argument.
35780         (avail_exprs_stack::lookup_avail_expr): New member function, moved
35781         from tree-ssa-dom.c.
35782         (avail_exprs_stack::record_cond): Likewise.
35783         * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
35784         from tree-ssa-dom.c.
35785         (avail_exprs_stack): Add new member functions lookup_avail_expr
35786         and record_cond.
35787         (record_conditions): Declare.
35788
35789 2017-03-15  Vladimir Makarov  <vmakarov@redhat.com>
35790
35791         PR target/80017
35792         * lra-constraints.c (process_alt_operands): Increase reject for
35793         reloading an input/output operand.
35794
35795 2017-03-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
35796
35797         PR target/79038
35798         * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
35799         insns to convert from signed/unsigned char/short to IEEE 128-bit
35800         floating point.
35801         (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
35802
35803 2017-03-15  Uros Bizjak  <ubizjak@gmail.com>
35804
35805         PR target/80019
35806         * config/i386/i386.c (ix86_vector_duplicate_value): Create
35807         subreg of inner mode for values already in registers.
35808
35809 2017-03-15  Bernd Schmidt  <bschmidt@redhat.com>
35810
35811         * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
35812         iteration reg is used after the loop.
35813
35814 2017-03-14  Martin Sebor  <msebor@redhat.com>
35815
35816         PR tree-optimization/79800
35817         * gimple-ssa-sprintf.c (format_floating: Add argument.  Handle
35818         precision in negative-positive range.
35819         (format_floating): Call non-const overload with adjusted precision.
35820
35821 2017-03-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
35822
35823         PR target/79947
35824         * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
35825         -mpowerpc-gfxopt.
35826
35827 2017-03-14  Martin Sebor  <msebor@redhat.com>
35828
35829         PR middle-end/80020
35830         * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
35831         * builtins.def (aligned_alloc): Use it.
35832
35833         PR c/79936
35834         * Makefile.in (GTFILES): Add calls.c.
35835         * calls.c: Include "gt-calls.h".
35836
35837 2017-03-14  Bernd Schmidt  <bschmidt@redhat.com>
35838
35839         PR rtl-optimization/79728
35840         * regs.h (struct target_regs): New field
35841         x_contains_allocatable_regs_of_mode.
35842         (contains_allocatable_regs_of_mode): New macro.
35843         * reginfo.c (init_reg_sets_1): Initialize it, and change
35844         contains_reg_of_mode so it includes global regs as well.
35845         * reload.c (push_reload): Use contains_allocatable_regs_of_mode
35846         rather than contains_regs_of_mode.
35847
35848 2017-03-14  Martin Liska  <mliska@suse.cz>
35849
35850         * doc/invoke.texi: Document options that can't be combined with
35851         -fcheck-pointer-bounds.
35852
35853 2017-03-14  Martin Liska  <mliska@suse.cz>
35854
35855         PR middle-end/79831
35856         * doc/invoke.texi (-Wchkp): Document the option.
35857
35858 2017-03-14  Martin Liska  <mliska@suse.cz>
35859
35860         * Makefile.in: Install gcov-dump.
35861
35862 2017-03-14  Martin Liska  <mliska@suse.cz>
35863
35864         * multiple_target.c (expand_target_clones): Bail out for
35865         an invalid attribute.
35866
35867 2017-03-14  Richard Biener  <rguenther@suse.de>
35868
35869         * alias.c (struct alias_set_entry): Pack properly.
35870         * cfgloop.h (struct loop): Likewise.
35871         * cse.c (struct set): Likewise.
35872         * ipa-utils.c (struct searchc_env): Likewise.
35873         * loop-invariant.c (struct invariant): Likewise.
35874         * lra-remat.c (struct cand): Likewise.
35875         * recog.c (struct change_t): Likewise.
35876         * rtl.h (struct address_info): Likewise.
35877         * symbol-summary.h (function_summary): Likewise.
35878         * tree-loop-distribution.c (struct partition): Likewise.
35879         * tree-object-size.c (struct object_size_info): Likewise.
35880         * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
35881         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
35882         * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
35883         * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
35884         * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
35885         * tree-vectorizer.h (struct _loop_vec_info): Likewise.
35886         (struct _stmt_vec_info): Likewise.
35887
35888 2017-03-14  Martin Liska  <mliska@suse.cz>
35889
35890         PR target/79892
35891         * multiple_target.c (create_dispatcher_calls): Check that
35892         a target can create a function dispatcher.
35893
35894 2017-03-14  Martin Liska  <mliska@suse.cz>
35895
35896         PR lto/66295
35897         * multiple_target.c (expand_target_clones): Drop local.local
35898         flag for default implementation.
35899
35900 2017-03-14  Richard Biener  <rguenther@suse.de>
35901
35902         PR tree-optimization/80030
35903         * tree-vect-stmts.c (vectorizable_store): Plug memleak.
35904
35905 2017-03-13  Kito Cheng  <kito.cheng@gmail.com>
35906
35907         * config/riscv/riscv.c (riscv_emit_float_compare>: Use
35908         gcc_fallthrough() instead of __attribute__((fallthrough));
35909
35910 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35911
35912         * doc/gcc.texi: Remove "up" link to (DIR).
35913         * doc/gccint.texi: Ditto.
35914
35915 2017-03-13  Gerald Pfeifer  <gerald@pfeifer.com>
35916
35917         * doc/install.texi (Specific) <avr>: Remove reference to
35918         binutils 2.13.
35919
35920 2017-03-13  Jeff Law  <law@redhat.com>
35921
35922         * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
35923         attribute rather than comments.
35924
35925         * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
35926         match_scratch operand is highest.
35927
35928 2017-03-13  Martin Liska  <mliska@suse.cz>
35929
35930         PR middle-end/78339
35931         * ipa-pure-const.c (warn_function_noreturn): If the declarations
35932         is a CHKP clone, use original declaration.
35933
35934 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35935
35936         * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
35937         (arc_conditional_register_usage): Use a different allocation order
35938         when optimizing for size.
35939         * common/config/arc/arc-common.c (arc_option_optimization_table):
35940         Section anchors default on when optimizing for size.
35941
35942 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35943
35944         * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
35945
35946 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35947
35948         * config/arc/arc.c (arc_output_addsi): Emit code density adds.
35949         * config/arc/arc.md (cpu_facility): Add cd variant.
35950         (*movqi_insn): Add code density variant.
35951         (*movhi_insn): Likewise.
35952         (*movqi_insn): Likewise.
35953         (*addsi3_mixed): Likewise.
35954         (subsi3_insn): Likewise.
35955
35956 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35957
35958         * config/arc/arc.md (movsi_cond_exec): Update constraint.
35959
35960 2017-03-13  Claudiu Zissulescu  <claziss@synopsys.com>
35961
35962         * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
35963         expressions with MINUS and UNARY ops.
35964
35965 2017-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35966
35967         PR target/79911
35968         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
35969         Rename to...
35970         (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
35971         between vec_select and vector argument.
35972         (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
35973         (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
35974         (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
35975         (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
35976         (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
35977         (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
35978
35979 2017-03-13  Richard Biener  <rguenther@suse.de>
35980
35981         PR other/79991
35982         * params.def (vect-max-peeling-for-alignment): Fix typo.
35983
35984 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35985
35986         * doc/install.texi (Specific) <mips-*-*>: Remove description of
35987         issue that only occurred with binutils below 2.18.
35988
35989 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35990
35991         * doc/install.texi (Specific) <cris-axis-elf>: No longer
35992         refer to binutils 2.11/2.12 minimum.
35993
35994 2017-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
35995
35996         * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
35997         ftp.kernel.org and simplify binutils requirement.
35998
35999 2017-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
36000
36001         * doc/invoke.texi (Warning Options): Fix spelling of link-time
36002         optimization.
36003         (Optimize Options): Ditto.  Also remove redundancy.
36004
36005 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
36006
36007         PR translation/79848
36008         * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
36009         "%qs".
36010         * ipa-pure-const.c (suggest_attribute): Likewise.  Convert _
36011         to G_ to avoid double translation.
36012
36013 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
36014
36015         PR translation/79923
36016         * auto-profile.c (get_combined_location): Convert leading
36017         character of diagnostics to lower case and remove trailing period.
36018         (read_profile): Likewise for various diagnostics.
36019         * config/arm/arm.c (arm_option_override): Remove trailing period
36020         from various diagnostics.
36021         * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
36022         (msp430_expand_delay_cycles): Likewise.
36023
36024 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
36025
36026         PR target/79925
36027         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
36028         full command-line argument, rather than just "str".
36029         (aarch64_validate_march): Likewise.
36030         (aarch64_validate_mtune): Likewise.
36031
36032 2017-03-10  Bernd Schmidt  <bschmidt@redhat.com>
36033
36034         PR rtl-optimization/78911
36035         * lra-assigns.c (must_not_spill_p): New function.
36036         (spill_for): Use it.
36037
36038 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
36039
36040         PR tree-optimization/79981
36041         * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
36042         ATOMIC_COMPARE_EXCHANGE ifn result.
36043         (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
36044         IFN_ATOMIC_COMPARE_EXCHANGE.
36045
36046 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
36047
36048         PR driver/79875
36049         * opts.c (parse_sanitizer_options): Add missing question mark to
36050         "did you mean" message.
36051
36052 2017-03-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36053
36054         * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
36055         built-in.
36056         (VMULEUH_UNS): Likewise.
36057         (VMULOUB_UNS): Likewise.
36058         (VMULOUH_UNS): Likewise.
36059         * config/rs6000/rs6000.c (builtin_function_type): Remove
36060         references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
36061
36062 2017-03-10  David Malcolm  <dmalcolm@redhat.com>
36063
36064         PR bootstrap/79952
36065         * read-rtl-function.c (function_reader::read_rtx_operand): Update
36066         x with result of extra_parsing_for_operand_code_0.
36067         (function_reader::extra_parsing_for_operand_code_0): Convert
36068         return type from void to rtx, returning x.  When reading
36069         SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
36070         larger size containing struct block_symbol.
36071
36072 2017-03-10  Segher Boessenkool  <segher@kernel.crashing.org>
36073
36074         * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
36075         -mfloat128-hardware without -m64.
36076
36077 2017-03-10  Will Schmidt <will_schmidt@vnet.ibm.com>
36078
36079         PR target/79941
36080         * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
36081         entries to the case statement that marks unsigned arguments to
36082         overloaded functions.
36083
36084 2017-03-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
36085
36086         * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
36087         two typographic errors in the handling of TARGET_UPPER_REGS_DI.
36088
36089 2017-03-10  Pat Haugen  <pthaugen@us.ibm.com>
36090
36091         PR target/79907
36092         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
36093         TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
36094
36095 2017-03-10  Martin Liska  <mliska@suse.cz>
36096
36097         PR target/65705
36098         PR target/69804
36099         * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
36100         * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
36101         FIELD != NULL.
36102
36103 2017-03-10  Olivier Hainque  <hainque@adacore.com>
36104
36105         * tree-switch-conversion (array_value_type): Start by resetting
36106         candidate type to it's main variant.
36107
36108 2017-03-10  Jakub Jelinek  <jakub@redhat.com>
36109
36110         PR rtl-optimization/79909
36111         * combine.c (try_combine): Use simplify_replace_rtx on individual
36112         CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
36113         of the whole CALL_INSN_FUNCTION_USAGE.
36114
36115         PR tree-optimization/79972
36116         * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
36117         get_range_info on SSA_NAMEs.  Formatting fixes.
36118
36119 2017-03-10  Richard Biener  <rguenther@suse.de>
36120             Jakub Jelinek  <jakub@redhat.com>
36121
36122         PR tree-optimization/77975
36123         * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
36124         edge to be constant.
36125         (get_val_for): For constant x return it.  Formatting fix.
36126         (loop_niter_by_eval): Avoid pointless looping if the next iteration
36127         would use the same bases as the current one.
36128
36129 2017-03-09  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36130
36131         * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
36132         instead of vec_select for V1TImode.
36133         * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
36134         longer needed.
36135         (VSX_LE_128): Add V1TI to this mode iterator.
36136         (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
36137         (*vsx_le_perm_store_<mode>): Likewise.
36138         (pre-reload splitter for VSX stores): Likewise.
36139         (post-reload splitter for VSX stores): Likewise.
36140         (*vsx_xxpermdi2_le_<mode>): Likewise.
36141         (*vsx_lxvd2x2_le_<mode>): Likewise.
36142         (*vsx_stxvd2x2_le_<mode>): Likewise.
36143
36144 2017-03-09  Michael Eager  <eager@eagercon.com>
36145
36146         Correct failures with --enable-checking=yes,rtl.
36147
36148         * config/microblaze/microblaze.c (microblaze_expand_shift):
36149         Replace GET_CODE test with CONST_INT_P and INTVAL test with
36150         test for const0_rtx.
36151         * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
36152         lshrsi3_byone): Replace INTVAL with test for const1_rtx.
36153
36154 2017-03-09  Richard Biener  <rguenther@suse.de>
36155
36156         PR tree-optimization/79977
36157         * graphite-scop-detection.c (scop_detection::merge_sese):
36158         Handle the case of extra exits to blocks dominating the entry.
36159
36160 2017-03-09  Toma Tabacu  <toma.tabacu@imgtec.com>
36161
36162         * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
36163         Document rdynamic.
36164
36165 2017-03-09  Vladimir Makarov  <vmakarov@redhat.com>
36166
36167         PR rtl-optimization/79949
36168         * lra-constraints.c (process_alt_operands): Check memory when
36169         trying to predict a cycle.  Print about the overall increase.
36170
36171 2017-03-09  Richard Biener  <rguenther@suse.de>
36172
36173         PR middle-end/79971
36174         * gimple-expr.c (useless_type_conversion_p): Preserve
36175         TYPE_SATURATING for fixed-point types.
36176
36177 2017-03-09  Richard Biener  <rguenther@suse.de>
36178
36179         PR ipa/79970
36180         * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
36181         alignment of BLKmode params.
36182
36183 2017-03-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36184
36185         PR target/79913
36186         * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
36187         (VALL_NO_V2Q): Likewise.
36188         (VDQF_DF): Delete.
36189         * config/aarch64/aarch64-simd.md
36190         (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
36191         iterator.
36192         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
36193         VALL_NO_V2Q mode iterator.
36194         (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
36195
36196 2017-03-09  Martin Liska  <mliska@suse.cz>
36197
36198         PR tree-optimization/79631
36199         * tree-chkp-opt.c (chkp_is_constant_addr): Call
36200         tree_int_cst_sign_bit just for INTEGER constants.
36201
36202 2017-03-09  Martin Liska  <mliska@suse.cz>
36203
36204         PR target/65705
36205         PR target/69804
36206         * toplev.c (process_options): Disable -fcheck-pointer-bounds with
36207         sanitizers.
36208
36209 2017-03-09  Marek Polacek  <polacek@redhat.com>
36210
36211         PR c++/79672
36212         * tree.c (inchash::add_expr): Handle TREE_VEC.
36213
36214 2017-03-09  Martin Liska  <mliska@suse.cz>
36215
36216         PR ipa/79764
36217         (chkp_narrow_size_and_offset): New function.
36218         (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
36219         (void chkp_parse_bit_field_ref): New function.
36220         (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
36221         (chkp_process_stmt): Use chkp_parse_bit_field_ref.
36222
36223 2017-03-09  Martin Liska  <mliska@suse.cz>
36224
36225         PR ipa/79761
36226         * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
36227         (chkp_find_bounds_1): Remove gcc_unreachable.
36228
36229 2017-03-09  Jakub Jelinek  <jakub@redhat.com>
36230
36231         PR sanitizer/79944
36232         * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
36233         BUILT_IN_SYNC*, determine the access type from the size suffix and
36234         always build a MEM_REF with that type.  Handle forgotten
36235         BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
36236
36237         PR target/79932
36238         * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
36239         _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
36240         _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
36241         _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
36242         _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
36243         _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
36244         _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
36245         _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
36246         _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
36247         _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
36248         _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
36249         _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
36250         _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
36251         _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
36252         _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
36253         _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
36254         _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
36255         _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
36256         _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
36257         _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
36258         _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
36259         _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
36260         _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
36261         _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
36262         _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
36263         _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
36264         _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
36265         _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
36266         _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
36267         _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
36268         definitions outside of __OPTIMIZE__ guarded section.
36269
36270         PR target/79932
36271         * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
36272         _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
36273         _mm512_packus_epi32, _mm512_maskz_packus_epi32,
36274         _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
36275         guarded section.
36276
36277 2017-03-09  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
36278
36279         * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
36280         ("vfenez<mode>"): Add missing constraints.
36281
36282 2017-03-08  Martin Sebor  <msebor@redhat.com>
36283
36284         PR target/79928
36285         * config/nds32/nds32.c (nds32_option_override):
36286         Fix misspelled diagnostic.
36287
36288 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
36289
36290         PR c/79940
36291         * gimplify.c (gimplify_omp_for): Replace index var in outer
36292         taskloop statement with an artificial variable and add
36293         OMP_CLAUSE_PRIVATE clause for it.
36294
36295 2017-03-08  Richard Biener  <rguenther@suse.de>
36296
36297         PR tree-optimization/79955
36298         * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
36299         for accesses that are completely outside of the variable.
36300
36301 2017-03-08  Andrew Haley  <aph@redhat.com>
36302
36303         PR tree-optimization/79943
36304         * tree-ssa-loop-split.c (compute_new_first_bound): When
36305         calculating the new upper bound, (END-BEG) should be added, not
36306         subtracted.
36307
36308 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
36309
36310         * config/avr/avr.md (setmemhi): Make sure match_dup
36311         operand number comes before match_scratch.
36312
36313 2017-03-08  Richard Biener  <rguenther@suse.de>
36314
36315         PR tree-optimization/79920
36316         * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
36317         with ncopies == 1 to ...
36318         (vect_transform_slp_perm_load): ... here.  Properly compute
36319         all element loads by iterating VF times over the group.  Do
36320         not handle ncopies (computed in a broken way) in
36321         vect_create_mask_and_perm.
36322
36323 2017-03-08  Jakub Jelinek  <jakub@redhat.com>
36324
36325         PR sanitizer/79904
36326         * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
36327         is a uniform vector, use uniform_vector_p return value instead of
36328         building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
36329
36330 2017-03-07  Marek Polacek  <polacek@redhat.com>
36331
36332         PR middle-end/79809
36333         * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
36334         (alloca_call_type): Likewise.
36335
36336 2017-03-07  Martin Liska  <mliska@suse.cz>
36337
36338         * gcov.c (process_args): Put comment to correct location.
36339
36340 2017-03-07  Martin Liska  <mliska@suse.cz>
36341
36342         PR middle-end/68270
36343         * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
36344         Use array_at_struct_end_p instead of DECL_CHAIN (field).
36345         (chkp_narrow_bounds_for_field): Likewise.
36346         (chkp_parse_array_and_component_ref): Pass one more argument to
36347         call.
36348
36349 2017-03-07  Richard Biener  <rguenther@suse.de>
36350
36351         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
36352         preheaders.
36353
36354 2017-03-07  Segher Boessenkool  <segher@kernel.crashing.org>
36355
36356         * config/i386/i386.c (ix86_local_alignment): Align most aggregates
36357         of 16 bytes and more to 16 bytes, not those of 16 bits and more.
36358
36359 2017-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36360
36361         PR c/79855
36362         * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
36363         to end of description.
36364         (PARAM_MAX_STORES_TO_MERGE): Likewise.
36365
36366 2017-03-07  Jakub Jelinek  <jakub@redhat.com>
36367
36368         PR rtl-optimization/79901
36369         * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
36370         ...
36371         (*avx512f_<code><mode>3<mask_name>): ... this.
36372         (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
36373         iterator instead of VI8_AVX2_AVX512BW.
36374
36375         PR rtl-optimization/79901
36376         * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
36377         min/max expander, expand it using expand_vec_cond_expr.
36378
36379         PR sanitizer/79897
36380         * ubsan.c (ubsan_encode_value): Call mark_addressable on the
36381         temporary.
36382
36383 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
36384
36385         PR c++/79821
36386         * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
36387         to void * for PCH reasons.
36388         * dwarf2out.c (output_loc_operands, output_die): Cast
36389         v.val_vec.array to unsigned char *.
36390
36391 2017-03-06  John David Anglin  <danglin@gcc.gnu.org>
36392
36393         PR target/77850
36394         * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
36395         vector types.
36396
36397 2017-03-06  Vladimir Makarov  <vmakarov@redhat.com>
36398
36399         PR rtl-optimization/79571
36400         * lra-constraints.c (process_alt_operands): Calculate static
36401         reject and subtract it from overall when only addresses will be
36402         reloaded.
36403
36404 2017-03-06  Julia Koval  <julia.koval@intel.com>
36405
36406         PR target/79793
36407         * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
36408         incoming stack boundary to 128 for 64-bit targets.
36409
36410 2017-03-06  Richard Biener  <rguenther@suse.de>
36411
36412         PR tree-optimization/79894
36413         * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
36414         to NULL after folding it.
36415
36416 2017-03-06  Richard Biener  <rguenther@suse.de>
36417
36418         PR tree-optimization/79824
36419         * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
36420         check disabling peeling for gaps.
36421
36422 2017-03-06  Toma Tabacu  <toma.tabacu@imgtec.com>
36423
36424         * doc/sourcebuild.texi (Effective-Target Keywords, Environment
36425         attributes): Document gettimeofday.
36426
36427 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
36428
36429         * config/s390/s390.c (s390_option_override_internal): Set
36430         PARAM_MIN_VECT_LOOP_BOUND
36431
36432 2017-03-06  Robin Dapp  <rdapp@linux.vnet.ibm.com>
36433
36434         * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
36435         * config/s390/s390.md: Likewise.
36436
36437 2017-03-06  Jakub Jelinek  <jakub@redhat.com>
36438
36439         PR target/79812
36440         * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
36441         (<avx2_avx512>_perm<mode>): Rename to ...
36442         (avx2_perm<mode>): ... this.  Use VI8F_256 iterator instead
36443         of VI8F_256_512.
36444         (<avx512>_perm<mode>_mask): Rename to ...
36445         (avx512vl_perm<mode>_mask): ... this.  Use VI8F_256 iterator instead
36446         of VI8F_256_512.
36447         (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
36448         (avx2_perm<mode>_1<mask_name): ... this.  Use VI8F_256 iterator
36449         instead of VI8F_256_512.
36450         (avx512f_perm<mode>): New define_expand.
36451         (avx512f_perm<mode>_mask): Likewise.
36452         (avx512f_perm<mode>_1<mask_name>): New define_insn.
36453         (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
36454
36455 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
36456
36457         * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
36458         msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
36459         if_then_else.
36460         (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
36461
36462 2017-03-06  Martin Liska  <mliska@suse.cz>
36463
36464         PR sanitize/79783
36465         * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
36466         when having a SSA NAME w/o VAR_DECL assigned to it.
36467
36468 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
36469
36470         * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
36471         msa_dpsub_<su>_d): Fix MODE for vec_select.
36472
36473 2017-03-06  Prachi Godbole  <prachi.godbole@imgtec.com>
36474
36475         * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
36476         argument.
36477         * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
36478
36479 2017-03-06  Richard Biener  <rguenther@suse.de>
36480
36481         * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
36482         * plugin.c (register_plugin_info): Likewise.
36483         * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
36484
36485 2017-03-05  Jakub Jelinek  <jakub@redhat.com>
36486
36487         * config/i386/sse.md (sse_storehps, sse_storelps,
36488         avx_<castmode><avxsizesuffix>_<castmode>,
36489         avx512f_<castmode><avxsizesuffix>_<castmode>,
36490         avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
36491         in condition that at least one operand is not a MEM.
36492
36493 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
36494
36495         PR middle-end/79805
36496         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
36497         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
36498         ECF_NOTHROW.
36499         * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
36500         gimple_call_nothrow_p flag based on whether original builtin can throw.
36501         If it can, emit following stmts on the fallthrough edge.
36502         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
36503         don't create new bb if inserting just debug stmts on the edge, try to
36504         insert them on the fallthru bb or just reset debug stmts.
36505
36506 2017-03-03  Segher Boesssenkool  <segher@kernel.crashing.org>
36507
36508         PR target/43763
36509         * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
36510         restore recog_data (including the operand rtxes inside it) around
36511         the call to get_insn_template.
36512
36513 2017-03-03  Martin Sebor  <msebor@redhat.com>
36514
36515         PR tree-optimization/79699
36516         * context.c (context::~context): Free MPFR caches to avoid
36517         a memory leak on program exit.
36518
36519 2017-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
36520
36521         * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
36522         Use wide_int::ulow () instead of .elt (0).
36523
36524 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
36525
36526         * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
36527         (*pushxf): Limit oF constraint to 32bit targets and add oC
36528         constraint for 64bit targets.
36529         (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
36530         (*pushdf): Change rmF constraint to rmC.
36531
36532 2017-03-03  Martin Liska  <mliska@suse.cz>
36533
36534         * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
36535         Remove unused variable.
36536
36537 2017-03-03  Jakub Jelinek  <jakub@redhat.com>
36538
36539         PR target/79807
36540         * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
36541         is a memory operand, increase num_memory.
36542         (ix86_expand_args_builtin): Likewise.
36543
36544 2017-03-03  Jan Hubicka  <jh@suse.cz>
36545
36546         PR lto/79760
36547         * ipa-devirt.c (maybe_record_node): Properly handle
36548         __cxa_pure_virtual visibility.
36549
36550 2017-03-03  Martin Liska  <mliska@suse.cz>
36551
36552         PR tree-optimization/79803
36553         * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
36554         assert.
36555         (pass_loop_prefetch::execute): Disabled optimization if an
36556         assumption about L1 cache size is not met.
36557
36558 2017-03-03  Martin Liska  <mliska@suse.cz>
36559
36560         PR rtl-optimization/79574
36561         * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
36562         (hash_scan_set): Likewise.
36563         (dump_hash_table): Likewise.
36564         (hoist_code): Likewise.
36565
36566 2017-03-03  Richard Biener  <rguenther@suse.de>
36567
36568         * fixed-value.c (fixed_from_string): Restore use of elt (1)
36569         in place of uhigh ().
36570         (fixed_convert_from_real): Likewise.
36571
36572 2017-03-03  Uros Bizjak  <ubizjak@gmail.com>
36573
36574         PR target/79514
36575         * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
36576
36577 2017-03-03  Richard Biener  <rguenther@suse.de>
36578
36579         PR middle-end/79818
36580         * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
36581         TYPE_OVERFLOW_UNDEFINED check.
36582
36583 2017-03-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36584
36585         * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
36586         numbers.
36587         (vector_ae_<mode>_p): Likewise.
36588         (vector_nez_<mode>_p): Likewise.
36589         (vector_ne_v2di_p): Likewise.
36590         (vector_ae_v2di_p): Likewise.
36591         (vector_ne_<mode>_p): Likewise.
36592         * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
36593         numbers.
36594         (vsx_tsqrt<mode>2_fe): Likewise.
36595
36596 2017-03-02  Uros Bizjak  <ubizjak@gmail.com>
36597
36598         PR target/79514
36599         * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
36600
36601 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
36602
36603         PR rtl-optimization/79780
36604         * cprop.c (one_cprop_pass): When second and further conditional trap
36605         in a single basic block is turned into an unconditional trap, turn it
36606         into a deleted note to avoid RTL verification failures.
36607
36608 2017-03-02  Richard Biener  <rguenther@suse.de>
36609
36610         * fold-const.c (const_binop): Use ulow () instead of elt (0).
36611
36612 2017-03-02  Richard Biener  <rguenther@suse.de>
36613
36614         PR tree-optimization/79345
36615         PR c++/42000
36616         * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
36617         param and abort the walk, returning -1 if it is hit.
36618         (walk_aliased_vdefs): Take a limit param and pass it on.
36619         * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
36620         defaulting to 0 and return a signed int.
36621         * tree-ssa-uninit.c (struct check_defs_data): New struct.
36622         (check_defs): New helper.
36623         (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
36624         about uninitialized memory.
36625         * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
36626         bogus uninitialized warning.
36627         (fixed_convert_from_real): Likewise.
36628
36629 2017-03-02  Bin Cheng  <bin.cheng@arm.com>
36630
36631         PR tree-optimization/66768
36632         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
36633         iv_use if base object can't be determined.
36634
36635 2017-03-02  Jakub Jelinek  <jakub@redhat.com>
36636
36637         PR tree-optimization/79345
36638         * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
36639         * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
36640         (get_pattern_stats): Initialize it.
36641         * genemit.c (gen_expand): Verify match_scratch numbers come after
36642         match_operand/match_dup numbers.
36643         * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
36644         match_scratch numbers.
36645         * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
36646         Likewise.
36647         * config/s390/s390.md (trunctdsd2): Likewise.
36648
36649 2017-03-02  Richard Biener  <rguenther@suse.de>
36650
36651         * wide-int.h (wide_int_storage::operator=): Implement in terms
36652         of wi::copy.
36653
36654 2017-03-02  Richard Biener  <rguenther@suse.de>
36655
36656         PR tree-optimization/79777
36657         * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
36658         the to insert expression to sth existing.
36659
36660 2017-03-01  Martin Sebor  <msebor@redhat.com>
36661
36662         PR middle-end/79692
36663         * gimple-ssa-sprintf.c
36664         (directive::known_width_and_precision): New function.
36665         (format_integer): Use it.
36666         (get_mpfr_format_length): Consider the full range of precision
36667         when computing %g output with the # flag.  Set the likely byte
36668         count to 3 rather than 1 when precision is indeterminate.
36669         (format_floating): Correct the lower bound of precision.
36670
36671 2017-03-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
36672
36673         * doc/invoke.texi: Document default code model for 64-bit Linux.
36674
36675 2017-03-01  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
36676
36677         PR target/79752
36678         * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
36679         udiv rather than div since input pattern is unsigned.
36680
36681 2017-03-01  Uros Bizjak  <ubizjak@gmail.com>
36682
36683         * config/i386/i386.c (print_reg): Warn for values of
36684         unsupported size in integer register.
36685
36686 2017-03-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
36687
36688         PR target/79439
36689         * config/rs6000/predicates.md (current_file_function_operand): Do
36690         not allow self calls to be local if the function is replaceable.
36691
36692 2017-03-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
36693
36694         PR target/79395
36695         * config/rs6000/altivec.h (vec_ctz and others): Change the
36696         preprocessor macro that controls conditional compilation from
36697         _ARCH_PWR9 to __POWER9_VECTOR__.
36698         (vec_all_ne): Change parameterization of __altivec_scalar_pred
36699         macro expansion under preprocessor #ifdef __POWER9_VECTOR__
36700         control (instead of _ARCH_PWR9 control) so that template
36701         definition uses power9-specific function.
36702         (vec_any_eq): Likewise.
36703         (vec_all_ne): Change macro definition to use a power9-specific
36704         expansion under #ifdef __POWER9_VECTOR__ control (instead of
36705         _ARCH_PWR9 control).
36706         (vec_any_eq) Likewise.
36707         * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
36708         expansion for CMPNEF to remove support for xvcmpnesp instruction.
36709         (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
36710         support for xvcmpnedp instruction.
36711         (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
36712         macro expansion so that Power9 implementation of vec_all_ne does
36713         not use the AltiVec predicate framework.
36714         (VCMPNEH_P): Likewise.
36715         (VCMPNEW_P): Likewise.
36716         (VCMPNED_P): Likewise.
36717         (VCMPNEFP_P): Likewise.
36718         (VCMPNEDP_P): Likewise.
36719         (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
36720         implementation of vec_any_eq to not use AltiVec predicate
36721         framework.
36722         (VCMPAEH_P): Likewise.
36723         (VCMPAEW_P): Likewise.
36724         (VCMPAED_P): Likewise.
36725         (VCMPAEFP_P): Likewise.
36726         (VCMPAEDP_P): Likewise.
36727         (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
36728         BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
36729         not use the AltiVec predicate framework.
36730         (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
36731         of vec_any_eq to not use AltiVec predicate framework.
36732         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
36733         support for predefined __POWER9_VECTOR__ macro to indicate that
36734         Power9 instruction selection is enabled.
36735         (altivec_overloaded_builtins): Remove extraneous
36736         ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
36737         function argument types RS6000_BTI_bool_V16QI and
36738         RS6000_BTI_bool_V16QI.  Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
36739         entry for overloaded function argument types RS6000_BTI_bool_V4SI
36740         andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB.  Remove
36741         two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
36742         P9V_BUILTIN_CMPNEF to force use of instructions not specific to
36743         Power9 for implementations of vec_cmpne.  Change the signature for
36744         all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
36745         (representing vec_all_ne) to remove the previously described first
36746         argument of type RS6000_BTI_INTSI, as this was an artifact of
36747         reliance on the AltiVec predicate framework, which is no longer
36748         used in the implementation of these functions.  Add
36749         P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
36750         function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
36751         since, unlike the AltiVec predicate framework implementation, we
36752         do not share function descriptors between vec_alle and vec_anyeq.
36753         (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
36754         set of modes that receive special treatment even when
36755         TARGET_P9_VECTOR is true.  The special treatment emits code that
36756         does not depend on Power9 instructions.
36757         * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
36758         define_expand to not rely on AltiVec predicate framework.
36759         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36760         function.
36761         (vector_ne_v2di_p): Change this define_expand to not rely on
36762         AltiVec predicate framework.
36763         (vector_ae_v2di_p): New define_expand to represent vec_any_eq
36764         function.
36765         (vector_ne_<mode>_p): Change this define_expand to not rely on
36766         AltiVec predicate framework.
36767         (vector_ae_<mode>p): New define_expand to represent vec_any_eq
36768         function.
36769         * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
36770         (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
36771         define_insn pattern.
36772         (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
36773         define_insn pattern because the xvcmpne<VSs>. instruction is not
36774         supported.
36775         (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
36776         instruction is not supported.
36777
36778 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36779
36780         * config/nvptx/nvptx.c: Include intl.h.
36781
36782 2017-03-01  Martin Jambor  <mjambor@suse.cz>
36783
36784         PR lto/78140
36785         * ipa-prop.h (ipa_bits): Removed field known.
36786         (ipa_jump_func): Removed field vr_known.  Changed fields bits and m_vr
36787         to pointers.  Adjusted their comments to warn about their sharing.
36788         (ipcp_transformation_summary): Change bits to a vector of pointers.
36789         (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
36790         (ipa_get_ipa_bits_for_value): Declare.
36791         * tree-vrp.h (value_range): Mark as GTY((for_user)).
36792         * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
36793         (ipa_bits_hash_table): Likewise.
36794         (ipa_vr_ggc_hash_traits): Likewise.
36795         (ipa_vr_hash_table): Likewise.
36796         (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
36797         being pointers and vr_known being removed.
36798         (ipa_set_jf_unknown): Likewise.
36799         (ipa_get_ipa_bits_for_value): New function.
36800         (ipa_set_jfunc_bits): Likewise.
36801         (ipa_get_value_range): New overloaded functions.
36802         (ipa_set_jfunc_vr): Likewise.
36803         (ipa_compute_jump_functions_for_edge): Use the above functions to
36804         construct bits and vr parts of jump functions.
36805         (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
36806         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36807         exist.
36808         (ipcp_grow_transformations_if_necessary): Also allocate
36809         ipa_bits_hash_table and ipa_vr_hash_table if they do not already
36810         exist.
36811         (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
36812         them.  Fix too long lines.
36813         (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
36814         vr_known being removed.
36815         (ipa_read_jump_function): Use new setter functions to construct bits
36816         and vr parts of jump functions or set them to NULL.
36817         (write_ipcp_transformation_info): Adjust for bits being pointers.
36818         (read_ipcp_transformation_info): Likewise.
36819         (ipcp_update_bits): Likewise.  Fix excessively long lines a trailing
36820         space.
36821         Include gt-ipa-prop.h.
36822         * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
36823         being pointers.
36824         (ipcp_store_bits_results): Likewise.
36825         (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
36826         Do not write to existing jump functions but use a temporary instead.
36827
36828 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36829
36830         PR c++/79681
36831         * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
36832         attempt to use its first operand as BIT_FIELD_REF base.
36833
36834 2017-03-01  Richard Biener  <rguenther@suse.de>
36835
36836         PR middle-end/79721
36837         * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
36838         interpolating formula in wrapping arithmetic.
36839         (chrec_apply): Convert chrec_evaluate return value to wanted type.
36840
36841 2017-03-01  Jakub Jelinek  <jakub@redhat.com>
36842
36843         PR tree-optimization/79734
36844         * tree-vect-generic.c (expand_vector_condition): Optimize
36845         AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
36846         Handle VEC_COND_EXPR where comparison has different inner width from
36847         type's inner width.
36848
36849 2017-02-28  Sandra Loosemore  <sandra@codesourcery.com>
36850
36851         * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
36852         markup, and similar issues.  Remove @opindex entries for things
36853         that aren't options.  Add missing -mmpy-option entries.
36854
36855 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36856
36857         PR tree-optimization/79737
36858         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
36859         a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
36860         tmpbuf[byte_size - 1].  Call natice_encode_expr with byte_size - 1
36861         instead of byte_size.  Formatting fix.
36862         (shift_bytes_in_array_right): Formatting fix.
36863
36864 2017-02-28  Eric Botcazou  <ebotcazou@adacore.com>
36865
36866         PR target/79749
36867         * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
36868         condition on optimize for the leaf function test.
36869
36870 2017-02-28  Martin Liska  <mliska@suse.cz>
36871
36872         PR lto/79625
36873         * read-rtl-function.c (function_reader::handle_unknown_directive):
36874         Bail out when one uses -flto.
36875
36876 2017-02-28  Martin Liska  <mliska@suse.cz>
36877
36878         * common.opt: Replace space with tabular for options of <number>
36879         type.
36880         * config/i386/i386.opt: Show <number> value for
36881         -mlarge-data-threshold.
36882         * opts.c (print_filtered_help): Do not display number in hexadecimal
36883         format.
36884
36885 2017-02-28  Martin Liska  <mliska@suse.cz>
36886
36887         * common.opt: Fix --help=option -Q for options which are of
36888         an enum type.
36889
36890 2017-02-28  Uros Bizjak  <ubizjak@gmail.com>
36891
36892         * config/i386/i386.c (print_reg): Error out for values
36893         of 8-bit size in invalid integer register.
36894
36895 2017-02-28  Martin Sebor  <msebor@redhat.com>
36896
36897         PR tree-optimization/79691
36898         * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
36899
36900 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36901
36902         PR target/79729
36903         * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
36904         gcc_unreachable with output_operand_lossage.
36905
36906 2017-02-28  Richard Biener  <rguenther@suse.de>
36907
36908         PR tree-optimization/79740
36909         * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
36910         inserts.
36911         (visit_nary_op): Insert the nary into the hashtable if we
36912         pattern-matched sth.
36913         * tree-ssa-pre.c (eliminate_insert): Robustify.
36914
36915 2017-02-28  Richard Biener  <rguenther@suse.de>
36916
36917         PR middle-end/79731
36918         * fold-const.c (decode_field_reference): Reject out-of-bound
36919         accesses.
36920
36921 2017-02-28  Jakub Jelinek  <jakub@redhat.com>
36922
36923         * config/i386/i386.c: Include intl.h.
36924         (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
36925         instead of just cond ? "..." : "...".
36926         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
36927         * coverage.c (read_counts_file): Likewise.
36928         * omp-offload.c: Include intl.h.
36929         (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
36930         of just cond ? "..." : "...".
36931         * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
36932         of just cond ? "..." : "...".
36933
36934 2017-02-28  Richard Earnshaw  <rearnsha@arm.com>
36935
36936         PR target/79742
36937         * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
36938         entry, if present.
36939         * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
36940         'tune for' CPU name.
36941         * config/arm/arm-cpu-data.h: Regenerated.
36942
36943 2017-02-28  Richard Biener  <rguenther@suse.de>
36944
36945         PR tree-optimization/79732
36946         * tree-inline.c (expand_call_inline): Do not shadow var.
36947
36948 2017-02-28  Richard Biener  <rguenther@suse.de>
36949
36950         PR tree-optimization/79723
36951         * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
36952         address-space properly.
36953
36954 2017-02-28  Thomas Schwinge  <thomas@codesourcery.com>
36955
36956         * doc/optinfo.texi (Optimization groups): Fix option used for
36957         OPTGROUP_ALL.
36958         * doc/invoke.texi (-fopt-info): Document "omp".
36959         * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
36960         (OPTGROUP_ALL): Add OPTGROUP_OMP.
36961         * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
36962         * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
36963         * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
36964
36965         * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP.  Adjust
36966         all users.
36967         * dumpfile.c (optgroup_options): Instead of "openmp", associate
36968         OPTGROUP_OMP with "omp".
36969
36970 2017-02-27  Pat Haugen  <pthaugen@us.ibm.com>
36971
36972         PR target/79544
36973         * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
36974         for arithmetic shift of unsigned V2DI.
36975
36976 2017-02-27  Claudiu Zissulescu  <claziss@synopsys.com>
36977
36978         * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
36979         arc/linux.h headers.
36980         * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
36981         (LINK_SPEC): Likewise.
36982         (ARC_TLS_EXTRA_START_SPEC): Likewise.
36983         (EXTRA_SPECS): Likewise.
36984         (STARTFILE_SPEC): Likewise.
36985         (ENDFILE_SPEC): Likewise.
36986         (LIB_SPEC): Likewise.
36987         (TARGET_SDATA_DEFAULT): Likewise.
36988         (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
36989         (MULTILIB_DEFAULTS): Likewise.
36990         (DWARF2_UNWIND_INFO): Likewise.
36991         * config/arc/big.h: New file.
36992         * config/arc/elf.h: Likewise.
36993         * config/arc/linux.h: Likewise.
36994         * config/arc/t-uClibc: Remove.
36995
36996 2017-02-27  Bin Cheng  <bin.cheng@arm.com>
36997
36998         PR tree-optimization/77536
36999         * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
37000         (tree_transform_and_unroll_loop): Use above function to compute the
37001         estimated niter of unrolled loop and use it when scaling profile.
37002         Also use count info rather than frequency if it's non-zero.
37003         * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
37004         * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
37005         (vect_transform_loop): Call above function.
37006
37007 2017-02-27  Richard Biener  <rguenther@suse.de>
37008
37009         PR tree-optimization/45397
37010         * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
37011         * tree-ssa-sccvn.c (valueized_wider_op): New helper.
37012         (visit_nary_op): Add pattern matching for CSEing sign-changed
37013         or truncated operations with wider ones.
37014
37015 2017-02-27  Richard Biener  <rguenther@suse.de>
37016
37017         PR tree-optimization/79690
37018         * tree-vect-stmts.c (vectorizable_store): Use vector type
37019         built from the DR with address-space.
37020
37021 2017-02-26  Gerald Pfeifer  <gerald@pfeifer.com>
37022
37023         * doc/invoke.texi (Optimize Options): Refine the description
37024         of asan-use-after-return.
37025
37026 2017-02-25  Alan Modra  <amodra@gmail.com>
37027
37028         PR rtl-optimization/79584
37029         * lra-constraints.c (base_to_reg): Reload ad->base, the entire
37030         base, not ad->base_term, the reg within base.  Remove assertion
37031         that ad->base == ad->base_term.  Replace gen_int_mode using
37032         bogus mode with const0_rtx.
37033
37034 2017-02-25  Jakub Jelinek  <jakub@redhat.com>
37035
37036         PR middle-end/79396
37037         * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
37038         FMA_EXPR like tcc_binary or tcc_unary.
37039
37040         * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
37041
37042         PR debug/77589
37043         * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
37044         bitfield.
37045         (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
37046         (output_loc_operands): Handle DW_OP_call_ref and
37047         DW_OP_GNU_variable_value.
37048         (struct variable_value_struct): New type.
37049         (struct variable_value_hasher): Likewise.
37050         (variable_value_hash): New variable.
37051         (string_types): Remove.
37052         (copy_loc_descr): New function.
37053         (add_loc_descr_to_each): Clarify comment.  Use copy_loc_descr.
37054         (prepend_loc_descr_to_each): New function.
37055         (add_loc_list): Fix comment typo.  Use prepend_loc_descr_to_each
37056         instead of add_loc_descr_to_each if the first argument is single
37057         location list and the second has multiple.
37058         (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
37059         (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
37060         when looking for variable value which doesn't have other location info.
37061         (loc_list_from_tree): Formatting fix.
37062         (gen_array_type_die): Simplify DW_AT_string_length handling.
37063         (adjust_string_types): Remove.
37064         (gen_subprogram_die): Don't call adjust_string_types nor test/set
37065         string_types.  Call resolve_variable_values.
37066         (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
37067         (resolve_addr_in_expr): Likewise.  Add A argument.
37068         (copy_deref_exprloc): Remove deref argument.  Adjust for the
37069         original expression being DW_OP_GNU_variable_value with optionally
37070         DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
37071         optionally after it.
37072         (optimize_string_length): Rework for DW_OP_GNU_variable_value.
37073         (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
37074         callers.  Set remove_AT_byte_size if removing DW_AT_string_length.
37075         (variable_value_hasher::hash, variable_value_hasher::equal): New
37076         methods.
37077         (resolve_variable_value_in_expr, resolve_variable_value,
37078         resolve_variable_values, note_variable_value_in_expr,
37079         note_variable_value): New functions.
37080         (dwarf2out_early_finish): Call note_variable_value on all toplevel
37081         DIEs.
37082
37083 2017-02-24  Jakub Jelinek  <jakub@redhat.com>
37084
37085         PR c/79677
37086         * opts.h (handle_generated_option): Add GENERATED_P argument.
37087         * opts-common.c (handle_option): Adjust function comment.
37088         (handle_generated_option): Add GENERATED_P argument, pass it to
37089         handle_option.
37090         (control_warning_option): Pass false to handle_generated_option
37091         GENERATED_P.
37092         * opts.c (maybe_default_option): Pass true to handle_generated_option
37093         GENERATED_P.
37094         * optc-gen.awk: Likewise.
37095
37096 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
37097
37098         * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
37099         a REG, look at the REG it is a SUBREG of.
37100         (splitter for cmpeqsi_t): Ditto.
37101
37102 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
37103
37104         * config/pa/pa.c (pa_combine_instructions): Do not share RTL.  Make
37105         the special USEs with the pattern of the insn, not the insn itself.
37106
37107 2017-02-24  Matthew Fortune  <matthew.fortune@imgtec.com>
37108
37109         PR target/79473
37110         * doc/invoke.texi: Document -mload-store-pairs.
37111
37112 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
37113             Sandra Loosemore  <sandra@codesourcery.com>
37114
37115         * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
37116         argument isn't a CONST_INT.
37117         (nios2_alternate_compare_const): Assert op is a CONST_INT.
37118         (nios2_valid_compare_const_p): Assert op is a CONST_INT.
37119         (nios2_validate_compare): Bypass alternate compare logic if *op2
37120         is not a CONST_INT.
37121         (ldstwm_operation_p): Return false if first_base is not a REG or
37122         if first_offset is not a CONST_INT.
37123
37124 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
37125
37126         * config/cris/cris.md: Use correct operand in a define_peephole2.
37127
37128 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
37129
37130         * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
37131
37132 2017-02-24  Segher Boessenkool  <segher@kernel.crashing.org>
37133
37134         * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
37135         this_insn if it is an INSN or JUMP_INSN.
37136         (force_offsettable): Look at base, not at addr.
37137         * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
37138         on things that aren't necessarily CONST_INTs.
37139
37140 2017-02-24  Uros Bizjak  <ubizjak@gmail.com>
37141
37142         * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
37143         -mfpmath=sse is the default also for x86-32 targets with SSE2
37144         instruction set when @option{-ffast-math} is enabled
37145
37146 2017-02-24  Jeff Law  <law@redhat.com>
37147
37148         PR rtl-optimizatoin/79286
37149         * ira.c (update_equiv_regs): Drop may_trap_p exception to
37150         dominance test.
37151
37152 2017-02-24  Richard Biener  <rguenther@suse.de>
37153
37154         PR tree-optimization/79389
37155         * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
37156         debug insns.
37157
37158 2017-02-24  Aldy Hernandez  <aldyh@redhat.com>
37159
37160         * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
37161         function comment to reflect reality.
37162         (loop_exits_before_overflow): Fix typo in function description.
37163
37164 2017-02-24  Richard Biener  <rguenther@suse.de>
37165
37166         PR tree-optimization/79389
37167         * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
37168         properly that a threading opportunity exists.  Detect conditional
37169         copy/constant propagation opportunities.
37170
37171 2017-02-23  Eric Botcazou  <ebotcazou@adacore.com>
37172
37173         * config/visium/visium.md (type): Add trap.
37174         (b): New mode attribute.
37175         (*btst): Rename into...
37176         (*btst<mode>): ...this and adjust.
37177         (*cbranchsi4_btst_insn): Rename into...
37178         (*cbranch<mode>4_btst_insn): ...this and adjust.
37179         (trap): New define_insn.
37180
37181 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
37182
37183         PR tree-optimization/79389
37184         * ifcvt.c (struct noce_if_info): Add rev_cond field.
37185         (noce_reversed_cond_code): New function.
37186         (noce_emit_store_flag): Use rev_cond if non-NULL instead of
37187         reversed_comparison_code.  Formatting fix.
37188         (noce_try_store_flag): Test rev_cond != NULL in addition to
37189         reversed_comparison_code.
37190         (noce_try_store_flag_constants): Likewise.
37191         (noce_try_store_flag_mask): Likewise.
37192         (noce_try_addcc): Use rev_cond if non-NULL instead of
37193         reversed_comparison_code.
37194         (noce_try_cmove_arith): Likewise.  Formatting fixes.
37195         (noce_try_minmax, noce_try_abs): Clear rev_cond.
37196         (noce_find_if_block): Initialize rev_cond.
37197         (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
37198         instead of false as last argument never attempt to reverse it
37199         afterwards.
37200
37201 2017-02-23  Bin Cheng  <bin.cheng@arm.com>
37202
37203         PR tree-optimization/79663
37204         * tree-predcom.c (combine_chains): Process refs in reverse order
37205         only for ZERO length chains, and add explaining comment.
37206
37207 2017-02-23  Jeff Law  <law@redhat.com>
37208
37209         PR tree-optimization/79578
37210         * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
37211         in call to operand_equal_p.
37212
37213 2017-01-23  Dominique d'Humieres  <dominiq@lps.ens.fr>
37214
37215         PR target/71017
37216         * config/i386/cpuid.h: Fix another undefined behavior.
37217
37218 2017-02-23  Richard Biener  <rguenther@suse.de>
37219
37220         PR tree-optimization/79683
37221         * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
37222         vector types for data-refs.
37223
37224 2017-02-23  Martin Liska  <mliska@suse.cz>
37225
37226         * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
37227
37228 2017-02-23  Jakub Jelinek  <jakub@redhat.com>
37229
37230         PR middle-end/79665
37231         * internal-fn.c (get_range_pos_neg): Moved to ...
37232         * tree.c (get_range_pos_neg): ... here.  No longer static.
37233         * tree.h (get_range_pos_neg): New prototype.
37234         * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
37235         are known to be in between 0 and signed maximum inclusive, try to
37236         expand both unsigned and signed divmod and use the cheaper one from
37237         those.
37238
37239 2017-02-22  Jeff Law  <law@redhat.com>
37240
37241         PR tree-optimization/79578
37242         * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
37243         to compare base operands.
37244
37245 2017-02-22  Segher Boessenkool  <segher@kernel.crashing.org>
37246
37247         PR target/79211
37248         * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
37249         gpc_reg_operand instead of fpr_reg_operand.
37250
37251 2017-02-22  Sameera Deshpande  <sameera.deshpande@imgtec.com>
37252
37253         * config/mips/mips.c (mips_return_in_memory): Force FP
37254         vector types to be returned in memory for o32 ABI.
37255
37256 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
37257
37258         * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
37259         instead of DW_TAG_member for static data member declarations and don't
37260         set no_linkage_name for static inline data members.
37261         (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
37262         to DW_TAG_member.
37263
37264 2017-02-22  Martin Liska  <mliska@suse.cz>
37265
37266         * doc/invoke.texi: Replace inequality signs with square brackets
37267         for -Wnormalized.
37268
37269 2017-02-22  Matthew Fortune  <matthew.fortune@imgtec.com>
37270
37271         PR target/78660
37272         * lra-constraints.c (simplify_operand_subreg): Handle
37273         WORD_REGISTER_OPERATIONS targets.
37274
37275 2017-02-22  Jakub Jelinek  <jakub@redhat.com>
37276
37277         PR target/70465
37278         * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
37279         and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
37280         elimination by swapping fld*.
37281
37282 2017-02-22  Richard Biener  <rguenther@suse.de>
37283
37284         PR tree-optimization/79673
37285         * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
37286         convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
37287         irrelevant address-space qualifiers and avoiding a
37288         ADDR_SPACE_CONVERT_EXPR from fold_convert.
37289
37290 2017-02-22  Richard Biener  <rguenther@suse.de>
37291
37292         PR tree-optimization/79666
37293         * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
37294         to not symbolically negate if that may introduce undefined
37295         overflow.
37296
37297 2017-02-22  Martin Liska  <mliska@suse.cz>
37298
37299         PR lto/79587
37300         * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
37301         * data-streamer-out.c (streamer_write_gcov_count_stream):
37302         Likewise.
37303         * value-prof.c (stream_out_histogram_value): Make assert more
37304         precise based on type of counter.
37305
37306 2017-02-21  Uros Bizjak  <ubizjak@gmail.com>
37307
37308         PR target/79593
37309         * config/i386/i386.md (standard_x87sse_constant_load splitter):
37310         Use nonimmediate_operand instead of memory_operand for operand 1.
37311         (float-extend standard_x87sse_constant_load splitter): Ditto.
37312
37313 2017-02-21  Jeff Law  <law@redhat.com>
37314
37315         PR tree-optimization/79621
37316         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
37317         blocks with edges to themselves.
37318
37319 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
37320
37321         PR target/79633
37322         * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
37323         is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
37324         Use gimple_call_builtin_p.
37325
37326         PR target/79570
37327         * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
37328         on temporarily removed DEBUG_INSNs.
37329
37330         PR tree-optimization/79649
37331         * tree-loop-distribution.c (classify_partition): Give up on
37332         non-generic address space loads/stores.
37333
37334 2017-02-21  Aldy Hernandez  <aldyh@redhat.com>
37335
37336         * doc/loop.texi (Loop manipulation): Remove nonexistent
37337         tree_ssa_loop_version from the documentation.
37338         * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
37339
37340 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
37341
37342         PR target/79494
37343         * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
37344         make_reg_eh_region_note_nothrow_nononlocal on call_insn.
37345         * config/rs6000/rs6000.c: Include except.h.
37346         (rs6000_expand_split_stack_prologue): Call
37347         make_reg_eh_region_note_nothrow_nononlocal on the call insn.
37348
37349 2017-02-21  Martin Jambor  <mjambor@suse.cz>
37350
37351         PR lto/79579
37352         * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
37353         have been analyzed.
37354
37355 2017-02-21  Martin Jambor  <mjambor@suse.cz>
37356
37357         * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
37358         for backward compatibility only.
37359         * doc/invoke.texi (Option Summary): Remove all references to
37360         -fipa-cp-alignment.
37361
37362 2017-02-21  Matthew Fortune  <matthew.fortune@imgtec.com>
37363
37364         PR target/78660
37365         Revert:
37366         2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37367
37368         * lra-constraints.c (curr_insn_transform): Handle
37369         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
37370
37371 2017-02-21  Martin Liska  <mliska@suse.cz>
37372
37373         * config/i386/i386.opt: Replace -masm-dialect with -masm.
37374
37375 2017-02-21  Thomas Schwinge  <thomas@codesourcery.com>
37376
37377         PR translation/79638
37378         * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
37379
37380 2017-02-21  Eric Botcazou  <ebotcazou@adacore.com>
37381
37382         PR ada/67205
37383         * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
37384         (arm_function_ok_for_sibcall): Return false for an indirect call by
37385         descriptor if all the argument registers are used.
37386         (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
37387         alignment of the function.
37388
37389 2017-02-21  Jakub Jelinek  <jakub@redhat.com>
37390
37391         PR tree-optimization/61441
37392         * simplify-rtx.c (simplify_const_unary_operation): For
37393         -fsignaling-nans and sNaN operand, return NULL_RTX rather than
37394         the sNaN unmodified.
37395
37396 2017-02-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
37397
37398         * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
37399         (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
37400         instead of SYSTEM_HEADER_DIR.
37401
37402 2017-02-20  Gerald Pfeifer  <gerald@pfeifer.com>
37403             Martin LiÅ¡ka  <mliska@suse.cz>
37404
37405         * doc/invoke.texi (use-after-scope-direct-emission-threshold):
37406         Fix typos and grammar, use active voice, and clarify.
37407
37408 2017-02-20  Marek Polacek  <polacek@redhat.com>
37409
37410         PR middle-end/79537
37411         * gimplify.c (gimplify_expr): Handle unused *&&L;.
37412
37413         PR sanitizer/79558
37414         * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
37415
37416 2017-02-20  Jakub Jelinek  <jakub@redhat.com>
37417
37418         PR target/79568
37419         * config/i386/i386.c (ix86_expand_builtin): Handle
37420         OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
37421         ix86_builtins_isa[fcode].isa as a requirement of those
37422         flags and any other flag in the bitmask.
37423         (ix86_init_mmx_sse_builtins): Use 0 instead of
37424         ~OPTION_MASK_ISA_64BIT as mask.
37425         * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
37426         __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
37427         __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
37428         __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
37429
37430 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37431
37432         PR target/78012
37433         * lra-constraints.c (split_reg): Check requested split mode
37434         is supported by the register.
37435
37436 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37437
37438         * lra-constraints.c (simplify_operand_subreg): Remove early
37439         return false.
37440
37441 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37442
37443         PR target/78660
37444         * lra-constraints.c (curr_insn_transform): Tighten condition
37445         for converting SUBREG reloads from OP_OUT to OP_INOUT.
37446
37447 2017-02-20  Matthew Fortune  <matthew.fortune@imgtec.com>
37448
37449         PR target/78660
37450         * lra-constraints.c (curr_insn_transform): Handle
37451         WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
37452
37453 2017-02-19  Uros Bizjak  <ubizjak@gmail.com>
37454
37455         Revert:
37456         2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
37457
37458         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
37459
37460 2017-02-19  Jonathan Wakely  <jwakely@redhat.com>
37461
37462         PR c++/69523
37463         * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
37464         description.
37465
37466 2017-02-19  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37467
37468         * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
37469         for FMA_EXPR.
37470
37471 2017-02-18  Jakub Jelinek  <jakub@redhat.com>
37472
37473         * final.c (last_columnnum, override_columnnum): New variables.
37474         (final_start_function): Set last_columnnum, pass it to begin_prologue
37475         hook and pass 0 to dwarf2out_begin_prologue.
37476         (final_scan_insn): Update override_columnnum.  Pass last_columnnum
37477         to source_line debug hook.
37478         (notice_source_line): Compute last_columnnum and for debug_column_info
37479         return true on column changes.
37480         * debug.h (struct gcc_debug_hooks): Add column argument to
37481         source_line and begin_prologue hooks.
37482         (debug_nothing_int_charstar_int_bool): Remove prototype.
37483         (debug_nothing_int_int_charstar,
37484         debug_nothing_int_int_charstar_int_bool): New prototypes.
37485         (dwarf2out_begin_prologue): Add column argument.
37486         * debug.c (do_nothing_debug_hooks): Adjust source_line and
37487         begin_prologue hooks.
37488         (debug_nothing_int_charstar_int_bool): Remove.
37489         (debug_nothing_int_int_charstar,
37490         debug_nothing_int_int_charstar_int_bool): New functions.
37491         * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
37492         through to dwarf2out_source_line.
37493         (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
37494         (dwarf2out_source_line): Add column argument, emit it if requested.
37495         * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
37496         arguments.
37497         * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
37498         * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
37499         * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
37500         through to dwarf2out_begin_prologue.
37501         (vmsdbgout_source_line): Add column argument, pass it through to
37502         dwarf2out_source_line.
37503         * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
37504         dbxout_source_line caller.
37505         (dbxout_source_line): Add column argument.
37506
37507         * common.opt (gno-column-info, gcolumn-info): New options.
37508         * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
37509         (check_die): Also test for multiple DW_AT_decl_column attributes.
37510         (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
37511         DW_AT_decl_column if requested.
37512         (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
37513         if requested.
37514         (gen_variable_die): Likewise.
37515         (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
37516         * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
37517
37518         PR target/79569
37519         * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
37520         * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
37521         (ix86_handle_option): Handle OPT_m3dnowa.
37522         * doc/invoke.texi (-m3dnowa): Document.
37523         * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
37524         -m3dnowa instead of -m3dnow -march=athlon.
37525
37526         PR target/79559
37527         * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
37528         instead of gcc_assert for K, r and R code checks.  Formatting fixes.
37529
37530 2017-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
37531
37532         PR target/79261
37533         * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
37534         support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
37535         * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
37536         generator for vsx_xxpermdi_<mode>_be.
37537         * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
37538         force big-endian semantics.
37539         (vsx_xxpermdi_<mode>_be): New define_expand with same
37540         implementation as previous version of vsx_xxpermdi_<mode>.
37541
37542 2017-02-17  Jakub Jelinek  <jakub@redhat.com>
37543
37544         PR tree-optimization/79327
37545         * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
37546         variable, its initialization and use.
37547
37548 2017-02-17  Julia Koval  <julia.koval@intel.com>
37549
37550         * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
37551         (OPTION_MASK_ISA_PKU_UNSET): New.
37552         (ix86_handle_option): Handle -mrdpid.
37553         * config/i386/cpuid.h (bit_RDPID): New.
37554         * config/i386/driver-i386.c (host_detect_local_cpu):
37555         Detect RDPID feature.
37556         * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
37557         * config/i386/i386-c.c (ix86_target_macros_internal):
37558         Handle RDPID flag.
37559         * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
37560         (ix86_valid_target_attribute_inner_p): Add "rdpid".
37561         (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
37562         * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
37563         * config/i386/i386.md (define_insn "rdpid"): New.
37564         * config/i386/i386.opt Add -mrdpid.
37565         * config/i386/immintrin.h (_rdpid_u32): New.
37566
37567 2017-02-17  Vladimir Makarov  <vmakarov@redhat.com>
37568
37569         PR rtl-optimization/79541
37570         * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
37571         instead of transforming it into USE.
37572
37573 2017-02-17  Segher Boessenkool  <segher@kernel.crashing.org>
37574
37575         * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
37576         If HONOR_SNANS (SFmode) force the input to a register.
37577         (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
37578         (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
37579         an frsp or similar insn.
37580
37581 2017-02-17  Martin Liska  <mliska@suse.cz>
37582
37583         PR rtl-optimization/79577
37584         * params.def (selsched-max-sched-times): Increase minimum to 1.
37585
37586 2017-02-17  Martin Liska  <mliska@suse.cz>
37587
37588         PR rtl-optimization/79574
37589         * gcse.c (want_to_gcse_p): Prevent integer overflow.
37590
37591 2017-02-17  Martin Liska  <mliska@suse.cz>
37592
37593         PR tree-optimization/79529
37594         * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
37595         ssa_defined_default_def_p to handle cases which are implicitly
37596         defined.
37597         * tree-ssa.c (ssa_defined_default_def_p): New function.
37598         (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
37599         which are implicitly defined.
37600         * tree-ssa.h (ssa_defined_default_def_p): Declare.
37601
37602 2017-02-17  Richard Biener  <rguenther@suse.de>
37603
37604         PR middle-end/79576
37605         * params.def (max-ssa-name-query-depth): Limit to 10.
37606
37607 2017-02-17  Richard Biener  <rguenther@suse.de>
37608
37609         PR tree-optimization/79552
37610         * tree-ssa-structalias.c (visit_loadstore): Properly verify
37611         default defs.
37612
37613 2017-02-17  Richard Biener  <rguenther@suse.de>
37614
37615         PR bootstrap/79567
37616         * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
37617
37618 2017-02-17  Marek Polacek  <polacek@redhat.com>
37619
37620         PR middle-end/79536
37621         * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
37622         (fold_negate_expr): New wrapper.
37623
37624 2017-02-16  Sandra Loosemore  <sandra@codesourcery.com>
37625
37626         * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: 
37627         Correct terminology and de-emphasize pre-standard behavior.
37628
37629 2017-02-16  Alan Modra  <amodra@gmail.com>
37630
37631         PR rtl-optimization/79286
37632         * ira.c (def_dominates_uses): New function.
37633         (update_equiv_regs): Don't create an equivalence for insns that
37634         may trap where the register def does not dominate the use.
37635
37636 2017-02-16  Vladimir Makarov  <vmakarov@redhat.com>
37637
37638         PR rtl-optimization/78127
37639         * lra.c (lra): Call lra_eliminate before finish the loop after
37640         lra_constraint.
37641
37642 2017-02-16  Richard Biener  <rguenther@suse.de>
37643
37644         * graphite.h: Do not include isl/isl_val_gmp.h, instead include
37645         isl/isl_val.h.
37646         * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
37647         (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
37648         * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
37649         (isl_val_int_from_wi): New function.
37650         (extract_affine_gmp): Rename to ...
37651         (extract_affine_wi): ... this, take a widest_int.
37652         (extract_affine_int): Just wrap extract_affine_wi.
37653         (add_param_constraints): Use isl_val_int_from_wi.
37654         (add_loop_constraints): Likewise, and extract_affine_wi.
37655
37656 2017-02-15  Jeff Law  <law@redhat.com>
37657
37658         PR middle-end/79521
37659         * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
37660         ira_init_register_move_cost_if_necessary.
37661
37662 2017-02-15  Martin Sebor  <msebor@redhat.com>
37663
37664         PR middle-end/32003
37665         * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
37666         removed in a prior commit.
37667
37668 2017-02-15  Bin Cheng  <bin.cheng@arm.com>
37669
37670         PR tree-optimization/79347
37671         * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
37672         counters during peeling.
37673
37674 2017-02-15  Thomas Schwinge  <thomas@codesourcery.com>
37675
37676         * Makefile.in (site.exp): Remove "set ISLVER".
37677
37678 2017-02-15  Jakub Jelinek  <jakub@redhat.com>
37679
37680         PR target/79487
37681         * real.c (real_from_integer): Call real_convert even for decimal.
37682
37683 2017-02-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
37684
37685         PR target/79421
37686         * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
37687
37688 2017-02-14  Andrew Pinski  <apinski@cavium.com>
37689
37690         * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
37691         cores and change the partno/implementer to be correct.
37692         (thunderx2t99p1): New core which replaces thunderx2t99 and still has
37693         the 'B" as the implementer.
37694         * config/aarch64/aarch64-tune.md: Regenerate.
37695
37696 2017-02-14  Carl Love  <cel@us.ibm.com>
37697
37698         * config/rs6000/rs6000.c: Add case statement entry to make the
37699         xvcvuxdsp built-in argument unsigned.
37700         * config/rs6000/vsx.md: Fix the source and return operand types so they
37701         match the instruction definitions from the ISA document.  Fix typo
37702         in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
37703         statement.
37704
37705 2017-02-14  Vladimir Makarov  <vmakarov@redhat.com>
37706
37707         PR target/79282
37708         * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
37709         member early_clobber_alts.
37710         * lra-lives.c (reg_early_clobber_p): New.
37711         (process_bb_lives): Use it.
37712         * lra.c (new_insn_reg): New arg early_clobber_alts.  Use it.
37713         (debug_operand_data): Initialize early_clobber_alts.
37714         (setup_operand_alternative): Set up early_clobber_alts.
37715         (collect_non_operand_hard_regs): Ditto.  Pass early clobber
37716         alternatives to new_insn_reg.
37717         (add_regs_to_insn_regno_info): Add arg early_clobber_alts.  Use
37718         it.
37719         (lra_update_insn_regno_info): Pass the new arg.
37720
37721 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
37722
37723         PR middle-end/79505
37724         * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
37725         (new_oacc_loop_raw): Don't clear already cleared fields.
37726
37727         PR target/79481
37728         * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
37729         _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
37730         _mm512_prefetch_i64gather_ps): New inline functions and macros.
37731
37732 2017-02-14  Uros Bizjak  <ubizjak@gmail.com>
37733
37734         PR target/79495
37735         * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
37736
37737 2017-02-14  H.J. Lu  <hongjiu.lu@intel.com>
37738
37739         PR target/79498
37740         * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
37741         the extra instruction to the right place to store 128-bit constant
37742         when needed.
37743
37744 2017-02-14  Martin Sebor  <msebor@redhat.com>
37745
37746         PR middle-end/79448
37747         * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
37748           warning for strings of unknown length.
37749
37750 2017-02-13  Segher Boessenkool  <segher@kernel.crashing.org>
37751
37752         * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
37753
37754 2017-02-14  Jeff Law  <law@redhat.com>
37755
37756         PR target/79404
37757         * ira-costs.c (scan_one_insn): Initialize register move costs
37758         for pseudos seen in USE/CLOBBER insns.
37759
37760         PR tree-optimization/79095
37761         * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
37762         if the numerator has the range ~[0,0] make the resultant range ~[0,0].
37763         (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
37764         if the operands are known to be not equal, then the resulting range
37765         is ~[0,0].
37766         (intersect_ranges): If the new range is ~[0,0] and the old range is
37767         wide, then prefer ~[0,0].
37768         * tree-vrp.c (overflow_comparison_p_1): New function.
37769         (overflow_comparison_p): New function.
37770         * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
37771         if NAME is used in an overflow test.
37772         (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
37773         overflow check that can be expressed as an equality test, then adjust
37774         ops to be that equality test.
37775
37776 2017-02-14  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
37777
37778         * config/s390/s390-builtin-types.def: Remove flags argument.
37779         * config/s390/s390.c (s390_init_builtins): Likewise.
37780
37781 2017-02-14  Martin Liska  <mliska@suse.cz>
37782
37783         * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
37784         vector.  Fix trailing white spaces.
37785
37786 2017-02-14  James Greenhalgh  <james.greenhalgh@arm.com>
37787
37788         * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
37789         HFmode.
37790
37791 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37792
37793         PR rtl-optimization/68664
37794         * config/arm/arm.c (arm_sched_can_speculate_insn):
37795         New function.  Declare prototype.
37796         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37797
37798 2017-02-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37799
37800         PR rtl-optimization/68664
37801         * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
37802         New function.
37803         (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
37804
37805 2017-02-14  Amit Pawar  <amit.pawar@amd.com>
37806
37807         * config/i386/i386.c (znver1_cost): Fix the alignment for function and
37808         max skip bytes for function, loop and jump.
37809
37810 2017-02-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
37811
37812         * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
37813         ABS_EXPR for gimple dump.
37814
37815 2017-02-14  Jakub Jelinek  <jakub@redhat.com>
37816
37817         PR target/79462
37818         * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
37819
37820         PR tree-optimization/79408
37821         * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
37822         case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
37823         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
37824         also if rhs1 is INTEGER_CST.
37825
37826 2017-02-14  Richard Biener  <rguenther@suse.de>
37827
37828         PR middle-end/79432
37829         * tree-into-ssa.c (insert_phi_nodes): When the function can
37830         have abnormal edges rewrite SSA names with broken use-def
37831         dominance out of SSA and register them for PHI insertion.
37832
37833 2017-02-13  Martin Sebor  <msebor@redhat.com>
37834
37835         PR middle-end/79496
37836         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
37837         clearing info.nowrite flag when snprintf size argument is a range.
37838
37839 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37840
37841         * cprop.c (cprop_jump): Add missing space in string literal.
37842         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
37843         (get_constraint_for_component_ref): Likewise.
37844         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
37845         * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
37846         * lra-constraints.c (process_alt_operands): Likewise.
37847         * ipa-inline.c (inline_small_functions): Likewise.
37848         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
37849         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
37850         * trans-mem.c (diagnose_tm_1_op): Likewise.
37851         * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
37852         (grid_parallel_clauses_gridifiable): Likewise.
37853
37854         * config/nvptx/mkoffload.c (process): Add space in between
37855         , and %d.
37856
37857         * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
37858         "MOD4_SSE_REGS" and "ALL_REGS".
37859
37860         * spellcheck.c (test_data): Add , in between "foo" and "food".
37861
37862 2017-02-13  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37863
37864         PR target/79449
37865         * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
37866         boundary crossing check and subsequent code generation agree.
37867
37868 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37869
37870         * config/aarch64/aarch64.c (has_memory_op): Delete.
37871         (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
37872         has_memory_op.
37873
37874 2017-02-13  Jakub Jelinek  <jakub@redhat.com>
37875
37876         PR rtl-optimization/79388
37877         PR rtl-optimization/79450
37878         * combine.c (distribute_notes): When removing TEM_INSN for which
37879         corresponding dest has last value recorded, invalidate that last
37880         value.
37881
37882 2017-02-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
37883
37884         * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
37885         of explicit '@'.  Add missing assembly comment marker on branch costs
37886         printout.
37887
37888 2017-02-13  Nathan Sidwell  <nathan@acm.org>
37889
37890         * gengtype-lex.l (<in_struct>): Add '/'.
37891
37892 2017-02-13  Martin Liska  <mliska@suse.cz>
37893
37894         PR c/79471
37895         * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
37896
37897 2017-02-13  Richard Biener  <rguenther@suse.de>
37898
37899         * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
37900         Remove.
37901         * configure: Re-generate.
37902         * config.in: Likewise.
37903         * graphite-dependences.c: Simplify as if
37904         HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
37905         * graphite-isl-ast-to-gimple.c: Likewise.
37906         * graphite-optimize-isl.c: Likewise.
37907         * graphite-poly.c: Likewise.
37908         * graphite-sese-to-poly.c: Likewise.
37909         * graphite.h: Likewise.
37910         * toplev.c: Include isl/version.h and use isl_version () for
37911         printing the ISL version.
37912         * doc/install.texi: Update ISL requirement.
37913
37914 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37915
37916         * doc/standards.texi (Standards): Update reference to
37917         Objective-C 2.0.
37918
37919 2017-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
37920
37921         * doc/extend.texi (Named Address Spaces): sourceware.org now
37922         defaults to https.
37923         * doc/install.texi (Binaries): Ditto.
37924         (Specific): Ditto.
37925
37926 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37927
37928         * doc/cpp.texi: Replace "stringify"/"stringification" with C
37929         standard terminology "stringize"/"stringizing" throughout.
37930         * doc/cppinternals.texi: Likewise.
37931
37932 2017-02-11  Sandra Loosemore  <sandra@codesourcery.com>
37933
37934         * doc/extend.texi: Fix some spelling mistakes and typos.
37935         * doc/invoke.texi: Likewise.
37936
37937 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37938
37939         PR ipa/79224
37940         * params.def (inline-min-speedup) Change from 10 to 8.
37941
37942 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37943
37944         * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
37945         4.5.
37946
37947 2017-02-11  Jan Hubicka  <hubicka@ucw.cz>
37948
37949         PR ipa/79224
37950         * ipa-inline-analysis.c (get_minimal_bb): New function.
37951         (record_modified): Use it.
37952         (remap_edge_change_prob): Handle also ancestor functions.
37953
37954 2017-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
37955
37956         * doc/contrib.texi (Contributors): Remove broken link into
37957         the Mauve CVS repository.
37958
37959 2017-02-11  Jakub Jelinek  <jakub@redhat.com>
37960
37961         PR middle-end/79454
37962         * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
37963         result computation whenever lhs doesn't have vector mode, not
37964         just when it has BLKmode.
37965
37966 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37967
37968         * doc/makefile.texi (profiledbootstrap): Refer to the
37969         installation instructions only in textual form.
37970
37971 2017-02-10  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
37972
37973         PR target/79295
37974         * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
37975
37976 2017-02-10  Gerald Pfeifer  <gerald@pfeifer.com>
37977
37978         * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
37979         (Specific): Update mingw-w64 reference.
37980         (Binaries): Ditto.
37981         (Specific): Remove broken link to Renesas RX processor.
37982
37983 2017-02-10  Richard Biener  <rguenther@suse.de>
37984
37985         * toplev.c (process_options): Do not mention obsolete graphite
37986         options when printing sorry message about missing graphite support.
37987         Mention -floop-nest-optimize.
37988
37989 2017-02-10  Christophe Lyon  <christophe.lyon@linaro.org>
37990
37991         * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
37992         (vtst_p16): Likewise.
37993         (vtstq_p8): Likewise.
37994         (vtstq_p16): Likewise.
37995         (vtst_p64): New.
37996         (vtstq_p64): Likewise.
37997         * config/arm/arm_neon.h (vgetq_lane_p64): New.
37998         (vset_lane_p64): New.
37999         (vsetq_lane_p64): New.
38000
38001 2017-02-10  Jakub Jelinek  <jakub@redhat.com>
38002
38003         PR tree-optimization/79411
38004         * tree-ssa-reassoc.c (is_reassociable_op): Return false if
38005         stmt operands are SSA_NAMEs used in abnormal phis.
38006         (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
38007         phis.
38008
38009 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
38010
38011         PR ipa/70795
38012         * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
38013         flag if needed.
38014
38015 2017-02-09  Jan Hubicka  <hubicka@ucw.cz>
38016
38017         * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
38018
38019 2017-02-09  Jakub Jelinek  <jakub@redhat.com>
38020
38021         * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
38022         to avoid warning.
38023
38024         PR c/79413
38025         * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
38026         not arbitrary TREE_CONSTANT.
38027
38028         PR c/79431
38029         * gimplify.c (gimplify_adjust_omp_clauses): Ignore
38030         "omp declare target link" attribute unless is_global_var.
38031         * omp-offload.c (find_link_var_op): Likewise.
38032
38033 2017-02-09  Nathan Sidwell  <nathan@codesourcery.com>
38034             Chung-Lin Tang  <cltang@codesourcery.com>
38035
38036         * gimplify.c (gimplify_scan_omp_clauses): No special handling for
38037         OMP_CLAUSE_TILE.
38038         (gimplify_adjust_omp_clauses): Don't delete TILE.
38039         (gimplify_omp_for): Deal with TILE.
38040         * internal-fn.c (expand_GOACC_TILE): New function.
38041         * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
38042         (GOACC_TILE): New.
38043         * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
38044         (expand_oacc_collapse_init): Add LOC paramter.  Initialize tile
38045         element fields.
38046         (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
38047         avoid DIV for outermost collapse var.
38048         (expand_oacc_for): Insert tile element loop as needed.  Adjust.
38049         Remove out of date comments, fix whitespace.
38050         * omp-general.c (omp_extract_for_data): Deal with tiling.
38051         * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
38052         adjust OLF_DIM_BASE value.
38053         (struct omp_for_data): Add tiling field.
38054         * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
38055         (lower_oacc_head_mark): Add OLF_TILE as appropriate.  Ensure 2 levels
38056         for auto loops.  Remove default auto determining, moved to
38057         oacc_loop_fixed_partitions.
38058         * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
38059         stmts, add e_mask field.
38060         (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
38061         (oacc_thread_numbers): Use oacc_dim_call.
38062         (oacc_xform_tile): New.
38063         (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
38064         (finish_oacc_loop): Adjust for ifns vector.
38065         (oacc_loop_discover_walk): Append loop abstraction sites to list,
38066         add case for GOACC_TILE fns.
38067         (oacc_loop_xform_loop): Delete.
38068         (oacc_loop_process): Iterate over call list directly, and add
38069         handling for GOACC_TILE fns.
38070         (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
38071         dump partitioning.
38072         (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
38073         vector partitioning to outer loops.  Assign 2 partitions to loops
38074         when available. Add TILE handling.
38075         (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
38076         (execite_oacc_device_lower): Process GOACC_TILE fns,
38077         ignore unknown specs.
38078         * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
38079         * tree.c (omp_clause_num_ops): Adjust TILE ops.
38080         * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
38081
38082 2017-02-09  Gerald Pfeifer  <gerald@pfeifer.com>
38083
38084         * configure.ac (ACX_BUGURL): Update.
38085         * configure: Regenerate.
38086
38087 2017-02-09  Richard Biener  <rguenther@suse.de>
38088
38089         PR tree-optimization/69823
38090         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
38091         Properly enumerate all BBs in the region.  Use auto_vec/auto_bitmap.
38092
38093 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
38094
38095         * config/arc/arc-c.def: Add __NPS400__ definition.
38096         * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
38097         (TARGET_NPS400): Define.
38098
38099 2017-02-09  Andrew Burgess  <andrew.burgess@embecosm.com>
38100
38101         * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
38102         file.
38103         (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
38104         pointer, arch_info.
38105         (arc_cpu_types): Fill the arch_info field with a pointer into the
38106         arc_arch_types table.
38107         (arc_selected_cpu): Declare.
38108         * config/arc/arc.c (arc_selected_cpu): Make global.
38109         (arc_selected_arch): Delete.
38110         (arc_base_cpu): Delete.
38111         (arc_override_options): Remove references to deleted variables,
38112         update access to arch information.
38113         (ARC_OPT): Update access to arch information.
38114         (ARC_OPTX): Likewise.
38115         * config/arc/arc.h (arc_base_cpu): Remove declaration.
38116         (TARGET_ARC600): Update access to arch information.
38117         (TARGET_ARC601): Likewise.
38118         (TARGET_ARC700): Likewise.
38119         (TARGET_EM): Likewise.
38120         (TARGET_HS): Likewise.
38121         * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
38122         information.
38123
38124 2017-02-08  Pat Haugen  <pthaugen@us.ibm.com>
38125
38126         PR target/78604
38127         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
38128         condition/operands for integer GE/LE/GEU/LEU operations.
38129
38130 2017-02-08  Segher Boessenkool  <segher@kernel.crashing.org>
38131
38132         PR translation/79397
38133         * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
38134         of AltiVec.
38135
38136 2017-02-08  Martin Jambor  <mjambor@suse.cz>
38137
38138         PR ipa/79375
38139         * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
38140         whether allocation happened.
38141         (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
38142         nothing was allocated.
38143
38144 2017-02-08  Jakub Jelinek  <jakub@redhat.com>
38145
38146         PR tree-optimization/79408
38147         * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
38148         constant, but SSA_NAME with a known integer range, use the minimum
38149         of that range instead of op1 to determine if modulo can be replaced
38150         with its first operand.
38151
38152 2016-02-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38153
38154         * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
38155
38156 2017-02-08  Richard Biener  <rguenther@suse.de>
38157
38158         PR tree-optimization/71824
38159         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
38160         Check all loops contained in the merged region.
38161
38162 2017-02-07  Andrew Pinski  <apinski@cavium.com>
38163
38164         * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
38165
38166 2017-02-07  Andrew Pinski  <apinski@cavium.com>
38167
38168         * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
38169         (thunderxt88): Likewise.
38170         (thunderxt81): Disable LSE and change v8.1 to v8.
38171         (thunderxt83): Likewise.
38172
38173 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
38174             Richard Biener  <rguenther@suse.de>
38175
38176         PR middle-end/79399
38177         * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
38178         type from int to size_t.
38179         * ira-costs.c (struct_costs_size): Change type from int to size_t.
38180
38181 2017-02-07  Jakub Jelinek  <jakub@redhat.com>
38182
38183         PR rtl-optimization/79386
38184         * cprop.c (bypass_conditional_jumps): Initialize
38185         bypass_last_basic_block already before splitting bbs after
38186         unconditional traps...
38187         (bypass_conditional_jumps): ... rather than here.
38188
38189         PR target/79299
38190         * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
38191         (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
38192         *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
38193         fix -masm=intel patterns.
38194
38195 2017-02-07  Richard Biener  <rguenther@suse.de>
38196
38197         PR tree-optimization/79256
38198         PR middle-end/79278
38199         * builtins.c (get_object_alignment_2): Use min_align_of_type
38200         to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
38201         and ADJUST_FIELD_ALIGN.
38202
38203         * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
38204         type parameter.
38205         * doc/tm.texi: Regenerate.
38206         * stor-layout.c (layout_decl): Adjust.
38207         (update_alignment_for_field): Likewise.
38208         (place_field): Likewise.
38209         (min_align_of_type): Likewise.
38210         * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
38211         * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
38212         * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
38213         * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
38214         * config/frv/frv.c (frv_adjust_field_align): Likewise.
38215         * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
38216         * config/i386/i386.c (x86_field_alignment): Likewise.
38217         * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
38218         * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
38219         * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
38220         * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
38221         * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
38222         * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
38223          Likewise.
38224
38225         Revert
38226         2017-01-30  Richard Biener  <rguenther@suse.de>
38227
38228         PR tree-optimization/79256
38229         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
38230         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
38231         alignment on TYPE.
38232
38233 2017-02-07  Toma Tabacu  <toma.tabacu@imgtec.com>
38234
38235         * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
38236         argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
38237         builtins to SImode and emit a zero-extend, if necessary.
38238
38239 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
38240
38241         * docs/invoke.texi (RISC-V Options): Alphabetize.
38242
38243 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
38244
38245         * doc/invoke.texi (RISC-V Options): Use two spaces to separate
38246         options.
38247
38248 2017-02-06  Palmer Dabbelt  <palmer@dabbelt.com>
38249
38250         * config/riscv/riscv.c: New file.
38251         * common/config/riscv/riscv-common.c: Likewise.
38252         * config.gcc: Likewise.
38253         * config/riscv/constraints.md: Likewise.
38254         * config/riscv/elf.h: Likewise.
38255         * config/riscv/generic.md: Likewise.
38256         * config/riscv/linux.h: Likewise.
38257         * config/riscv/multilib-generator: Likewise.
38258         * config/riscv/peephole.md: Likewise.
38259         * config/riscv/pic.md: Likewise.
38260         * config/riscv/predicates.md: Likewise.
38261         * config/riscv/riscv-builtins.c: Likewise.
38262         * config/riscv/riscv-c.c: Likewise.
38263         * config/riscv/riscv-ftypes.def: Likewise.
38264         * config/riscv/riscv-modes.def: Likewise.
38265         * config/riscv/riscv-opts.h: Likewise.
38266         * config/riscv/riscv-protos.h: Likewise.
38267         * config/riscv/riscv.h: Likewise.
38268         * config/riscv/riscv.md: Likewise.
38269         * config/riscv/riscv.opt: Likewise.
38270         * config/riscv/sync.md: Likewise.
38271         * config/riscv/t-elf-multilib: Likewise.
38272         * config/riscv/t-linux: Likewise.
38273         * config/riscv/t-linux-multilib: Likewise.
38274         * config/riscv/t-riscv: Likewise.
38275         * configure.ac: Likewise.
38276         * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
38277         Waterman as RISC-V maintainers.
38278         * doc/install.texi: Add RISC-V entries.
38279         * doc/invoke.texi: Add RISC-V options section.
38280         * doc/md.texi: Add RISC-V constraints section.
38281         * configure: Regenerated.
38282
38283 2017-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
38284
38285         PR target/66144
38286         * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
38287         false values to be constant vectors with all 0 or all 1 bits set.
38288         (vcondu<mode><mode>): Likewise.
38289         * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
38290         predicate.
38291         (fpmask_comparison_operator): Update comment.
38292         (vecint_comparison_operator): New predicate.
38293         * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
38294         vector conditionals when the true and false values are constant
38295         vectors with all 0 bits or all 1 bits set.
38296
38297 2017-02-06  Martin Sebor  <msebor@redhat.com>
38298
38299         PR  tree-optimization/79376
38300         * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
38301
38302 2017-02-06  Uros Bizjak  <ubizjak@gmail.com>
38303
38304         * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
38305         explicit subreg RTX with operand 1.  Use VECTOR_MODE_P predicate
38306         to simplify split condition.
38307
38308 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
38309
38310         * omp-expand.c (oxpand_omp_atomic_fetch_op,
38311         expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
38312         false.
38313
38314 2017-02-06  Segher Boessenkool  <segher@kernel.crashing.org>
38315
38316         PR rtl-optimization/68664
38317         * target.def (can_speculate_insn): New hook.
38318         * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
38319         * doc/tm.texi: Regenerate.
38320         * sched-rgn.c (can_schedule_ready_p): Use the new hook.
38321         * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
38322         (rs6000_sched_can_speculate_insn): New function.
38323
38324 2017-02-06  Jakub Jelinek  <jakub@redhat.com>
38325
38326         PR tree-optimization/79284
38327         * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
38328         * tree-vect-stmts.c (vect_get_vec_def_for_operand,
38329         vectorizable_mask_load_store, vectorizable_operation,
38330         vect_is_simple_cond, get_same_sized_vectype): Use it instead
38331         of comparing TREE_CODE of a type against BOOLEAN_TYPE.
38332         * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
38333         vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
38334         * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
38335         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
38336         Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
38337         is_gimple_assign (stmt).  Replace another such test with
38338         is_gimple_assign (stmt).
38339
38340 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
38341
38342         PR target/78883
38343         * config/avr/avr.c (rtl-iter.h): Include it.
38344         (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
38345         (avr_legitimate_combined_insn): ...and implementation.
38346
38347 2017-02-06  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38348
38349         * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
38350         * config/s390/s390.c (s390_const_operand_ok)
38351         (s390_canonicalize_comparison, s390_extract_part)
38352         (s390_single_part, s390_contiguous_bitmask_nowrap_p)
38353         (s390_contiguous_bitmask_p, s390_rtx_costs)
38354         (legitimize_pic_address): Likewise.
38355         * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
38356         * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
38357         ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
38358         ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
38359         * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
38360
38361 2017-02-06  Georg-Johann Lay  <avr@gjlay.de>
38362
38363         * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
38364         REGNO($0) == REGNO($1).
38365
38366 2017-02-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38367
38368         * config/s390/linux.h(SIZE_TYPE): Add comment.
38369
38370 2017-02-06  Julian Brown  <julian@codesourcery.com>
38371             Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
38372             Virendra Pathak  <virendra.pathak@broadcom.com>
38373
38374         * config/aarch64/aarch64-cores.def: Change the scheduler
38375         to Thunderx2t99.
38376         * config/aarch64/aarch64.md: Include thunderx2t99.md.
38377         * config/aarch64/thunderx2t99.md: New file.
38378
38379 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
38380
38381         * doc/standards.texi (Go Language): Update link to language
38382         standard.
38383
38384 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
38385
38386         * tree-eh.c (lower_resx): Sanitize profile.
38387         (cleanup_empty_eh_move_lp): Likewise.
38388
38389 2017-02-05  Jan Hubicka  <hubicka@ucw.cz>
38390
38391         PR tree-ssa/79347
38392         * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
38393         ELSE_PROB.
38394         * cfgloopmanip.h (loop_version): Update prototype.
38395         * modulo-sched.c (sms_schedule): Update call of loop_version.
38396         * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
38397         * tree-parloops.c (gen_parallel_loop): Likewise.
38398         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
38399         * tree-ssa-loop-split.c (split_loop): Likewise.
38400         * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
38401         * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
38402
38403 2017-02-05  Martin Liska  <mliska@suse.cz>
38404
38405         PR bootstrap/78985
38406         * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
38407         variable to NULL.
38408         (print_operand_address): Initialize a struct to zero.
38409
38410 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
38411
38412         * doc/contrib.texi (Contributors): Refer to Hans Boehm's
38413         garbage collector only in textual form.
38414
38415 2017-02-05  Gerald Pfeifer  <gerald@pfeifer.com>
38416
38417         * doc/extend.texi (x86 specific memory model extensions for
38418         transactional memory): Simplify a phrase.
38419
38420 2017-02-05  Eric Botcazou  <ebotcazou@adacore.com>
38421
38422         PR target/79353
38423         * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
38424         'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
38425         (atomic_storedi_1): Likewise.
38426
38427 2017-02-04  Jakub Jelinek  <jakub@redhat.com>
38428
38429         PR tree-optimization/79338
38430         * tree-parloops.c (gather_scalar_reductions): Don't call
38431         vect_analyze_loop_form for loop->inner before destroying loop's
38432         loop_vinfo.
38433
38434 2017-02-03  Martin Sebor  <msebor@redhat.com>
38435
38436         PR tree-optimization/79327
38437         * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
38438         when precision has resulted in leading zeros.
38439         (format_integer): Adjust the likely counter to assume an unknown
38440         argument that may be zero is non-zero.
38441
38442 2017-02-03  Jason Merrill  <jason@redhat.com>
38443
38444         PR c++/78689
38445         * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
38446         avoid copying non-taken branch.
38447
38448 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
38449
38450         PR tree-optimization/79340
38451         * tree-vect-loop.c (vectorizable_reduction): Release
38452         vec_defs elements after safe_splicing them into other vectors.
38453         Formatting fixes.
38454
38455         PR tree-optimization/79327
38456         * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
38457         true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
38458         dirtype.
38459         (format_integer): Use wide_int_to_tree instead of build_int_cst
38460         + to_?hwi.  If argmin is NULL, just set argmin and argmax to
38461         TYPE_{MIN,MAX}_VALUE of argtype.  Simplify and fix computation
38462         of shortest and longest sequence.
38463
38464 2017-02-03  Uros Bizjak  <ubizjak@gmail.com>
38465
38466         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
38467         Use pextrd for TARGET_SSE4_1 when creating scalar copy.
38468
38469 2017-02-03  Walter Lee  <walt@tilera.com>
38470
38471         PR target/78862
38472         * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
38473         after initial stackframe link reg save.
38474         * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
38475
38476 2017-02-03  Jakub Jelinek  <jakub@redhat.com>
38477
38478         PR target/79354
38479         * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
38480         wu for stxssp alternative.
38481
38482 2017-02-03  Martin Sebor  <msebor@redhat.com>
38483
38484         PR tree-optimization/79352
38485         * gimple-fold.c (get_range_strlen): Add argument.
38486         (get_range_strlen): Change return type to bool.
38487         (get_maxval_strlen): Pass in a dummy argument.
38488         * gimple-fold.h (get_range_strlen): Change return type to bool.
38489         * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
38490         * tree.h (array_at_struct_end_p): Add argument.
38491         * tree.c (array_at_struct_end_p): Handle it.
38492
38493 2017-02-03  Martin Liska  <mliska@suse.cz>
38494
38495         PR lto/66295
38496         * multiple_target.c (create_dispatcher_calls): Redirect edge
38497         from a caller of a dispatcher.
38498         (expand_target_clones): Make the clones local.
38499         (ipa_target_clone): Do both target clones and resolvers.
38500         (ipa_dispatcher_calls): Remove the pass.
38501         (pass_dispatcher_calls::gate): Likewise.
38502         (make_pass_dispatcher_calls): Likewise.
38503         * passes.def (pass_target_clone): Put as very first IPA early
38504         pass.
38505
38506 2017-02-03  Martin Liska  <mliska@suse.cz>
38507
38508         * symtab.c (symtab_node::binds_to_current_def_p): Bail out
38509         in case of a function with ifunc attribute.
38510
38511 2017-02-03  Martin Liska  <mliska@suse.cz>
38512
38513         * cgraph.c (cgraph_node::dump): Dump function version info.
38514         * symtab.c (symtab_node::dump_base): Add missing new line.
38515
38516 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
38517
38518         * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
38519         (ifcombine_ifandif): Use it.
38520
38521 2017-02-03  Martin Liska  <mliska@suse.cz>
38522
38523         * doc/invoke.texi: Document default value for
38524         use-after-scope-direct-emission-threshold.
38525
38526 2017-02-03  Martin Liska  <mliska@suse.cz>
38527
38528         PR tree-optimization/79339
38529         * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
38530         (format_floating): Likewise.
38531
38532 2017-02-03  Martin Liska  <mliska@suse.cz>
38533
38534         PR ipa/79337
38535         * ipa-prop.c (ipa_node_params_t::insert): Remove current
38536         implementation.
38537         (ipa_node_params_t::remove): Likewise.
38538         * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
38539         initialization from removed ipa_node_params_t::insert.
38540         (ipa_node_params::~ipa_node_params): Move from removed
38541         ipa_node_params_t::release.
38542         * symbol-summary.h (symbol_summary::m_released): New member.
38543         Do not release a summary twice.  Do not allow to call finalizer
38544         for types of a summary that live in GGC memory.
38545
38546 2017-02-02  Naveen H.S  <Naveen.Hurugalawadi@cavium.com>
38547
38548         * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
38549         cmp_branch fusion.
38550
38551 2017-02-02  Martin Sebor  <msebor@redhat.com>
38552
38553         PR middle-end/79275
38554         * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
38555         (format_string): Tighten up the range of output for non-constant
38556         strings and correct the expected range for wide non-constant strings.
38557
38558 2017-02-02  Martin Sebor  <msebor@redhat.com>
38559
38560         * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
38561
38562         PR middle-end/32003
38563         * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
38564         index.
38565         (-fdump-tree-@var): Add to index and document how to come up
38566         with pass-specific option and dump file names.
38567         (-fdump-passes): Clarify where to look for output.
38568
38569 2017-02-02  Jan Hubicka  <hubicka@ucw.cz>
38570
38571         PR middle-end/77445
38572         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
38573         statistics of the analyzed path; allow threading for speed when
38574         any of BBs along the path are optimized for speed.
38575
38576 2017-02-02  Eric Botcazou  <ebotcazou@adacore.com>
38577
38578         PR middle-end/78468
38579         * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
38580         settings of the virtual registers.
38581
38582         Revert again
38583         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38584
38585         * explow.c (get_dynamic_stack_size): Take known alignment of stack
38586         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
38587         needed.
38588
38589 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38590
38591         * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
38592         ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
38593
38594 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38595
38596         * config/s390/s390.md: Add missing comments with the expanded
38597         mnemonics.
38598         * config/s390/vector.md: Likewise.
38599         * config/s390/vx-builtins.md: Likewise.
38600
38601 2017-02-02  Jakub Jelinek  <jakub@redhat.com>
38602
38603         PR target/79197
38604         * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
38605         (fixuns_trunc<mode>di2): ... this, remove previous expander.  Put all
38606         conditions on a single line.
38607
38608 2017-02-02  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38609
38610         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
38611         __S390_VX__ to __VX__.
38612
38613 2017-02-01  Andrew Pinski  <apinski@cavium.com>
38614
38615         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
38616         stmt_info to record_stmt_cost.
38617         (vect_get_known_peeling_cost): Pass stmt_info if known to
38618         record_stmt_cost.
38619         * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
38620         cpu_vector_cost field into
38621         scalar_int_stmt_cost and scalar_fp_stmt_cost.  Split vec_stmt_cost
38622         field into vec_int_stmt_cost and vec_fp_stmt_cost.
38623         * config/aarch64/aarch64.c (generic_vector_cost): Update for the
38624         splitting of scalar_stmt_cost and vec_stmt_cost.
38625         (thunderx_vector_cost): Likewise.
38626         (cortexa57_vector_cost): LIkewise.
38627         (exynosm1_vector_cost): Likewise.
38628         (xgene1_vector_cost): Likewise.
38629         (thunderx2t99_vector_cost): Improve after the splitting of the two
38630         fields.
38631         (aarch64_builtin_vectorization_cost): Update for the splitting of
38632         scalar_stmt_cost and vec_stmt_cost.
38633
38634 2017-02-01  Torvald Riegel  <triegel@redhat.com>
38635             Richard Henderson  <rth@redhat.com>
38636
38637         * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
38638         conditional on existance of a fast atomic load.
38639         * optabs-query.c (can_atomic_load_p): New function.
38640         * optabs-query.h (can_atomic_load_p): Declare it.
38641         * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
38642         no fast atomic load is available for the particular size of access.
38643         (expand_atomic_compare_and_swap): Likewise.
38644         (expand_atomic_load): Likewise.
38645         (expand_atomic_store): Likewise.
38646         (expand_atomic_fetch_op): Likewise.
38647         * testsuite/lib/target-supports.exp
38648         (check_effective_target_sync_int_128): Remove x86 because it provides
38649         no fast atomic load.
38650         (check_effective_target_sync_int_128_runtime): Likewise.
38651
38652 2017-02-01  Richard Biener  <rguenther@suse.de>
38653
38654         * graphite.c: Include tree-vectorizer.h for find_loop_location.
38655         (graphite_transform_loops): Provide opt-info for optimized nests.
38656         * tree-parloop.c (parallelize_loops): Provide opt-info for
38657         parallelized loops.
38658
38659 2017-02-01  Richard Biener  <rguenther@suse.de>
38660
38661         PR middle-end/79315
38662         * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
38663         was not set before.
38664
38665 2017-02-01  Richard Biener  <rguenther@suse.de>
38666
38667         PR tree-optimization/71824
38668         * graphite-scop-detection.c (scop_detection::build_scop_breadth):
38669         Verify the loops are valid in the merged SESE region.
38670         (scop_detection::can_represent_loop_1): Check analyzing the
38671         evolution of the number of iterations in the region succeeds.
38672
38673 2017-01-31  Ian Lance Taylor  <iant@golang.org>
38674
38675         * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
38676         REG_ARGS_SIZE note to 32-bit push insns and call insn.
38677
38678 2017-01-31  David Malcolm  <dmalcolm@redhat.com>
38679
38680         PR preprocessor/79210
38681         * input.c (get_substring_ranges_for_loc): Replace line_width
38682         assertion with error-handling.
38683
38684 2017-01-31  Richard Biener  <rguenther@suse.de>
38685
38686         PR tree-optimization/77318
38687         * graphite-sese-to-poly.c (extract_affine): Fix assert.
38688         (create_pw_aff_from_tree): Take loop parameter.
38689         (add_condition_to_pbb): Pass loop of the condition to
38690         create_pw_aff_from_tree.
38691
38692 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
38693
38694         * config/s390/s390.c (s390_asan_shadow_offset): New function.
38695         (TARGET_ASAN_SHADOW_OFFSET): Redefine.
38696
38697 2017-01-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
38698
38699         PR target/78597
38700         PR target/79038
38701         * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
38702         no longer used.
38703         (convert_int_to_float128): Likewise.
38704         * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
38705         (convert_int_to_float128): Likewise.
38706         * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
38707         (UNSPEC_IEEE128_CONVERT): Likewise.
38708         (floatsi<mode>2, FLOAT128 iterator): Bypass calling
38709         rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
38710         Use local variables for IBM extended format.
38711         (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
38712         (fix_trunc<mode>si2_fprs): Likewise.
38713         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
38714         (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
38715         (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
38716         to know that we can now have integers of all sizes in vector
38717         registers.
38718         (fix<uns>_<mode>di2_hw): Likewise.
38719         (float<uns>_<mode>si2_hw): Likewise.
38720         (fix_<mode>si2_hw): Likewise.
38721         (fixuns_<mode>si2_hw): Likewise.
38722         (float<uns>_<mode>di2_hw): Likewise.
38723         (float_<mode>di2_hw): Likewise.
38724         (float_<mode>si2_hw): Likewise.
38725         (floatuns_<mode>di2_hw): Likewise.
38726         (floatuns_<mode>si2_hw): Likewise.
38727         (xscvqp<su>wz_<mode>): Delete, no longer used.
38728         (xscvqp<su>dz_<mode>): Likewise.
38729         (xscv<su>dqp_<mode>): Likewise.
38730         (ieee128_mfvsrd_64bit): Likewise.
38731         (ieee128_mfvsrd_32bit): Likewise.
38732         (ieee128_mfvsrwz): Likewise.
38733         (ieee128_mtvsrw): Likewise.
38734         (ieee128_mtvsrd_64bit): Likewise.
38735         (ieee128_mtvsrd_32bit): Likewise.
38736
38737 2017-01-31  Martin Liska  <mliska@suse.cz>
38738
38739         PR ipa/79285
38740         * ipa-prop.c (ipa_free_all_node_params): Call release method
38741         instead of ~sumbol_summary to not to trigger double times
38742         dtor of hash_map.
38743
38744 2017-01-31  Aldy Hernandez  <aldyh@redhat.com>
38745
38746         PR tree-optimization/71691
38747         * bitmap.h (class auto_bitmap): New.
38748         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
38749         is_maybe_undefined instead of ssa_undefined_value_p.
38750
38751 2017-01-31  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
38752
38753         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
38754         __S390_ARCH_LEVEL__ to __ARCH__.
38755
38756 2017-01-31  Jakub Jelinek  <jakub@redhat.com>
38757
38758         PR tree-optimization/79267
38759         * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
38760         if should_remove_lhs_p is true.
38761
38762 2017-01-30  Alexandre Oliva  <aoliva@redhat.com>
38763
38764         PR debug/63238
38765         * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
38766         (add_alignment_attribute): New.
38767         (base_type_die): Add alignment attribute.
38768         (subrange_type_die): Likewise.
38769         (modified_type_die): Likewise.
38770         (gen_array_type_die): Likewise.
38771         (gen_descr_array_type_die: Likewise.
38772         (gen_enumeration_type_die): Likewise.
38773         (gen_subprogram_die): Likewise.
38774         (gen_variable_die): Likewise.
38775         (gen_field_die): Likewise.
38776         (gen_ptr_to_mbr_type_die): Likewise.
38777         (gen_struct_or_union_type_die): Likewise.
38778         (gen_subroutine_type_die): Likewise.
38779         (gen_typedef_die): Likewise.
38780         (base_type_cmp): Compare alignment attribute.
38781
38782 2017-01-30  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
38783
38784         PR target/79170
38785         * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
38786         (setb_unsigned) New pattern for setb with CCUNS.
38787         * config/rs6000/rs6000.c (expand_block_compare): Use a different
38788         subfc./subfe sequence to avoid overflow problems.  Generate a
38789         shorter sequence with cmpld/setb for power9.
38790         * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
38791         for generating subfc. instruction.
38792         (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
38793         now uses this instruction.
38794
38795 2017-01-30  Ian Lance Taylor  <iant@google.com>
38796
38797         PR debug/79289
38798         * dwarf2out.c (gen_type_die_with_usage): When picking a variant
38799         for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
38800
38801 2017-01-30  Martin Sebor  <msebor@redhat.com>
38802
38803         * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
38804         Move constant to the right of a relational operator.
38805         (get_mpfr_format_length, format_character, format_string): Ditto.
38806         (should_warn_p, maybe_warn): Same.
38807
38808         * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
38809
38810 2017-01-30  Maxim Ostapenko  <m.ostapenko@samsung.com>
38811
38812         PR lto/79061
38813         * asan.c (get_translation_unit_decl): Remove function.
38814         (asan_add_global): Force has_dynamic_init to zero in LTO mode.
38815
38816 2017-01-30  Martin Liska  <mliska@suse.cz>
38817
38818         PR gcov-profile/79259
38819         * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
38820         -fprofile-generate.
38821
38822 2017-01-30  Martin Liska  <mliska@suse.cz>
38823
38824         PR bootstrap/78985
38825         * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
38826         Initialize variables with NULL value.
38827
38828 2017-01-30  Richard Earnshaw  <rearnsh@arm.com>
38829
38830         PR target/79260
38831         * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
38832         tm_p_file.
38833         * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
38834
38835 2017-01-30  Richard Biener  <rguenther@suse.de>
38836
38837         PR tree-optimization/79276
38838         * tree-vrp.c (process_assert_insertions): Properly adjust common
38839         when removing a duplicate.
38840
38841 2017-01-30  Richard Biener  <rguenther@suse.de>
38842
38843         PR tree-optimization/79256
38844         * targhooks.c (default_builtin_vector_alignment_reachable): Honor
38845         BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
38846         alignment on TYPE.
38847         * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
38848
38849 2017-01-30  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38850
38851         PR target/79240
38852         * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
38853         ("*r<noxa>sbg_<mode>_sll_bitmask")
38854         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
38855         ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
38856         Use contiguous_bitmask_nowrap_operand.
38857
38858 2017-01-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
38859
38860         PR target/79268
38861         * config/rs6000/altivec.h (vec_xl): Revise #define.
38862         (vec_xst): Likewise.
38863
38864 2017-01-27  Uros Bizjak  <ubizjak@gmail.com>
38865
38866         * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
38867
38868 2017-01-27  Bernd Schmidt  <bschmidt@redhat.com>
38869
38870         PR rtl-optimization/79194
38871         * cprop.c (one_cprop_pass): Move deletion of code after unconditional
38872         traps before call to bypass_conditional_jumps.
38873
38874 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38875
38876         PR tree-optimization/71374
38877         * lra-constraints.c (check_conflict_input_operands): New.
38878         (match_reload): Use it.
38879
38880 2017-01-27  Vladimir Makarov  <vmakarov@redhat.com>
38881
38882         PR target/79131
38883         * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
38884         account to calculate conflict_set.
38885
38886 2017-01-27  Bin Cheng  <bin.cheng@arm.com>
38887
38888         PR rtl-optimization/78559
38889         * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
38890         other_insn in combine.
38891
38892 2017-01-27  Pekka Jääskeläinen  <pekka.jaaskelainen@parmance.com>
38893
38894         * builtin-types.def: Use unsigned_char_type_node for BT_UINT8.  Use
38895         uint16_type_node for BT_UINT16.
38896
38897 2017-01-27  David Malcolm  <dmalcolm@redhat.com>
38898
38899         * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
38900         "RTL Tests" to menu.
38901         (GIMPLE Tests): New node.
38902         (RTL Tests): New node.
38903
38904 2017-01-27  Richard Biener  <rguenther@suse.de>
38905
38906         PR tree-optimization/79245
38907         * tree-loop-distribution.c (distribute_loop): Apply cost
38908         modeling also to detected patterns.
38909
38910 2017-01-27  Richard Biener  <rguenther@suse.de>
38911
38912         PR tree-optimization/71433
38913         * tree-vrp.c (register_new_assert_for): Revert earlier changes.
38914         (compare_assert_loc): New function.
38915         (process_assert_insertions): Sort and optimize assert locations
38916         to remove duplicates and push down identical assertions on
38917         edges to their destination block.
38918
38919 2017-01-27  Richard Biener  <rguenther@suse.de>
38920
38921         PR tree-optimization/79244
38922         * tree-vrp.c (remove_range_assertions): Forcefully propagate
38923         out SSA names even if abnormal.
38924
38925 2017-01-27  Jakub Jelinek  <jakub@redhat.com>
38926
38927         * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
38928         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
38929         instead of MPFR_RNDN.
38930
38931 2017-01-27  Richard Earnshaw  <rearnsha@arm.com>
38932
38933         PR target/79239
38934         * arm.c (arm_option_override): Don't call build_target_option_node
38935         until after doing all option overrides.
38936         (arm_valid_target_attribute_tree): Likewise.
38937
38938 2017-01-27  Martin Liska  <mliska@suse.cz>
38939
38940         * doc/invoke.texi (-fprofile-arcs): Document profiling support
38941         for {cd}tors and C++ {cd}tors.
38942
38943 2017-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
38944
38945         * config/s390/s390.md ("*setmem_long_and")
38946         ("*setmem_long_and_31z"): Use zero_extend instead of and.
38947
38948 2017-01-26  Martin Sebor  <msebor@redhat.com>
38949
38950         * gimple-ssa-sprintf.c (format_floating): Simplify the computation
38951         of precision.
38952
38953 2017-01-26  Martin Sebor  <msebor@redhat.com>
38954
38955         * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
38956         HAVE_DFmode before using XFmode or DFmode.
38957         (parse_directive): Avoid using the z length modifier to avoid
38958         the ISO C++98 does not support the â€˜z’ gnu_printf length modifier.
38959
38960         PR middle-end/78703
38961         * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
38962         to accept adjustment as an array.
38963         (get_int_range): New function.
38964         (struct directive): Make width and prec arrays.
38965         (directive::set_width, directive::set_precision): Call get_int_range.
38966         (format_integer, format_floating): Handle width and precision ranges.
38967         (format_string, parse_directive): Same.
38968
38969 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
38970
38971         PR debug/79129
38972         * dwarf2out.c (generate_skeleton_bottom_up): For children with
38973         comdat_type_p set, just clone them, but keep the children in the
38974         original DIE.
38975
38976         PR debug/78835
38977         * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
38978         which have direct callers with -fvar-tracking-assignments enabled
38979         in the current TU.
38980         (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
38981         inside of type units.
38982
38983 2017-01-26  Martin Sebor  <msebor@redhat.com>
38984
38985         PR middle-end/78703
38986         * gimple-ssa-sprintf.c (struct result_range): Add likely and
38987         unlikely counters.
38988         (struct format_result): Replace number_chars, number_chars_min,
38989         and number_chars_max with a single member of struct result_range.
38990         Remove bounded.
38991         (format_result::operator+=): Adjust.
38992         (struct fmtresult): Remove bounded.  Handle likely and unlikely
38993         counters.
38994         (fmtresult::adjust_for_width_or_precision): New function.
38995         (fmtresult:type_max_digits): New function.
38996         (bytes_remaining): Handle likely and unlikely counters.
38997         (min_bytes_remaining): Remove.
38998         (format_percent): Simplify.
38999         (format_integer, format_floating): Set likely and unlikely counters.
39000         (get_string_length, format_character, format_string): Same.
39001         (format_plain, should_warn_p): New function.
39002         (maybe_warn): Call should_warn_p.  Update diagnostic messages
39003         and handle those for all directives, including plain strings.
39004         (format_directive): Handle likely and unlikely counters.
39005         Remove unnecessary quoting from diagnostics.  Add an informational
39006         note.
39007         (add_bytes): Remove.
39008         (pass_sprintf_length::compute_format_length): Simplify.
39009         (try_substitute_return_value): Handle likely and unlikely counters.
39010
39011 2017-01-26  Carl Love  <cel@us.ibm.com>
39012
39013         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
39014         bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
39015
39016 2017-01-26  Vladimir Makarov  <vmakarov@redhat.com>
39017
39018         PR target/79131
39019         * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
39020         endianess for subregs into account.
39021         * lra-constraints.c (lra_constraints): Do risky transformations
39022         always on the first iteration.
39023         * lra-lives.c (check_pseudos_live_through_calls): Add arg
39024         last_call_used_reg_set.
39025         (process_bb_lives): Define and use last_call_used_reg_set.
39026         * lra.c (lra): Always continue after lra_constraints on the first
39027         iteration.
39028
39029 2017-01-26  Kirill Yukhin  <kirill.yukhin@gmail.com>
39030
39031         * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
39032         constant.
39033         * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
39034
39035 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
39036
39037         * config/i386/avx512fintrin.h (_ktest_mask16_u8,
39038         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
39039         * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
39040         _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
39041         * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
39042         __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
39043         OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
39044         * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
39045         (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
39046
39047 2017-01-26  Marek Polacek  <polacek@redhat.com>
39048
39049         PR c/79199
39050         * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
39051         for the third operand.
39052
39053 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
39054
39055         PR middle-end/79236
39056         * omp-low.c (struct omp_context): Add simt_stmt field.
39057         (scan_omp_for): Return omp_context *.
39058         (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
39059         context to the _simt_ SIMD stmt.
39060         (lower_omp_for): For combined SIMD with sibling _simt_
39061         SIMD, make sure to use the same decls in _looptemp_
39062         clauses as in the sibling.
39063
39064 2017-01-26  David Sherwood  <david.sherwood@arm.com>
39065
39066         PR middle-end/79212
39067         * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
39068         all contexts.
39069
39070 2017-01-26  Jakub Jelinek  <jakub@redhat.com>
39071
39072         PR target/70465
39073         * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
39074         emit fld b; fld a; if possible.
39075
39076         * brig-builtins.def: Update copyright years.
39077         * config/arm/arm_acle_builtins.def: Update copyright years.
39078
39079 2017-01-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
39080
39081         PR target/79179
39082         * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
39083         constraint instead of o for the stxsd instruction.
39084
39085 2017-01-25  Carl Love  <cel@us.ibm.com>
39086
39087         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
39088         of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
39089
39090 2017-01-25  Jonathan Wakely  <jwakely@redhat.com>
39091
39092         * doc/invoke.texi (C++ Dialect Options): Fix typo.
39093
39094 2017-01-25  Richard Biener  <rguenther@suse.de>
39095
39096         PR tree-optimization/69264
39097         * target.def (vector_alignment_reachable): Improve documentation.
39098         * doc/tm.texi: Regenerate.
39099         * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
39100         and add a comment.
39101         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
39102         earlier changes with respect to TYPE_USER_ALIGN.
39103         (vector_alignment_reachable_p): Likewise.  Improve dumping.
39104
39105 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39106
39107         PR target/79145
39108         * config/arm/arm.md (xordi3): Force constant operand into a register
39109         for TARGET_IWMMXT.
39110
39111 2016-01-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39112
39113         * doc/invoke.texi (-fstore-merging): Correct default optimization
39114         levels at which it is enabled.
39115         (-O): Move -fstore-merging from list to...
39116         (-O2): ... Here.
39117
39118 2017-01-25  Richard Biener  <rguenther@suse.de>
39119
39120         PR debug/78363
39121         * omp-expand.c: Include debug.h.
39122         (expand_omp_taskreg): Make sure to generate early debug before
39123         outlining anything from a function.
39124         (expand_omp_target): Likewise.
39125         (grid_expand_target_grid_body): Likewise.
39126
39127 2017-01-25  Maxim Ostapenko  <m.ostapenko@samsung.com>
39128
39129         PR lto/79061
39130         * asan.c (get_translation_unit_decl): New function.
39131         (asan_add_global): Extract modules file name from globals
39132         TRANSLATION_UNIT_DECL name.
39133
39134 2017-01-24  Eric Botcazou  <ebotcazou@adacore.com>
39135
39136         PR target/77439
39137         * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
39138         for long calls with APCS frame and VFP.
39139
39140 2017-01-24  David Malcolm  <dmalcolm@redhat.com>
39141
39142         * cfg.c (original_copy_tables_initialized_p): New function.
39143         * cfg.h (original_copy_tables_initialized_p): New decl.
39144         * cfgrtl.c (relink_block_chain): Guard the call to
39145         free_original_copy_tables with a call to
39146         original_copy_tables_initialized_p.
39147         * cgraph.h (symtab_node::native_rtl_p): New decl.
39148         * cgraphunit.c (symtab_node::native_rtl_p): New function.
39149         (symtab_node::needed_p): Don't assert for early assembly output
39150         for __RTL functions.
39151         (cgraph_node::finalize_function): Set "force_output" for __RTL
39152         functions.
39153         (cgraph_node::analyze): Bail out early for __RTL functions.
39154         (analyze_functions): Update assertion to support __RTL functions.
39155         (cgraph_node::expand): Bail out early for __RTL functions.
39156         * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
39157         __RTL functions.
39158         * function.h (struct function): Update comment for field
39159         "pass_startwith".
39160         * gimple-expr.c: Include "tree-pass.h".
39161         (gimple_has_body_p): Return false for __RTL functions.
39162         * Makefile.in (OBJS): Add run-rtl-passes.o.
39163         * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
39164         accessor.
39165         (gcc::pass_manager::get_clean_slate): New accessor.
39166         * passes.c: Include "insn-addr.h".
39167         (should_skip_pass_p): Add logging.  Update logic for running
39168         "expand" to be compatible with both __GIMPLE and __RTL.  Guard
39169         property-provider override so it is only done for gimple passes.
39170         Don't skip dfinit.
39171         (skip_pass): New function.
39172         (execute_one_pass): Call skip_pass when skipping passes.
39173         * read-md.c (md_reader::read_char): Support filtering
39174         the input to a subset of line numbers.
39175         (md_reader::md_reader): Initialize fields
39176         m_first_line and m_last_line.
39177         (md_reader::read_file_fragment): New function.
39178         * read-md.h (md_reader::read_file_fragment): New decl.
39179         (md_reader::m_first_line): New field.
39180         (md_reader::m_last_line): New field.
39181         * read-rtl-function.c (function_reader::create_function): Only
39182         create cfun if it doesn't already exist.  Set PROP_rtl on cfun's
39183         curr_properties.  Set DECL_INITIAL to a dummy block.
39184         (read_rtl_function_body_from_file_range): New function.
39185         * read-rtl-function.h (read_rtl_function_body_from_file_range):
39186         New decl.
39187         * run-rtl-passes.c: New file.
39188         * run-rtl-passes.h: New file.
39189
39190 2017-01-24  Jeff Law  <law@redhat.com>
39191
39192         * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
39193         buffer size.
39194
39195 2017-01-24  Bin Cheng  <bin.cheng@arm.com>
39196
39197         PR tree-optimization/79159
39198         * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
39199         (record_nonwrapping_iv): Improve boundary using above function if no
39200         value range information.
39201
39202 2017-01-24  Pekka Jääskeläinen  <pekka@parmance.com>
39203             Martin Jambor  <mjambor@suse.cz>
39204
39205         * brig-builtins.def: New file.
39206         * builtins.def (DEF_HSAIL_BUILTIN): New macro.
39207         (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
39208         (DEF_HSAIL_SAT_BUILTIN): Likewise.
39209         (DEF_HSAIL_INTR_BUILTIN): Likewise.
39210         (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
39211         * builtin-types.def (BT_INT8): New.
39212         (BT_INT16): Likewise.
39213         (BT_UINT8): Likewise.
39214         (BT_UINT16): Likewise.
39215         (BT_FN_ULONG): Likewise.
39216         (BT_FN_UINT_INT): Likewise.
39217         (BT_FN_UINT_ULONG): Likewise.
39218         (BT_FN_UINT_LONG): Likewise.
39219         (BT_FN_UINT_PTR): Likewise.
39220         (BT_FN_ULONG_PTR): Likewise.
39221         (BT_FN_INT8_FLOAT): Likewise.
39222         (BT_FN_INT16_FLOAT): Likewise.
39223         (BT_FN_UINT32_FLOAT): Likewise.
39224         (BT_FN_UINT16_FLOAT): Likewise.
39225         (BT_FN_UINT8_FLOAT): Likewise.
39226         (BT_FN_UINT64_FLOAT): Likewise.
39227         (BT_FN_UINT16_UINT32): Likewise.
39228         (BT_FN_UINT32_UINT16): Likewise.
39229         (BT_FN_UINT16_UINT16_UINT16): Likewise.
39230         (BT_FN_INT_PTR_INT): Likewise.
39231         (BT_FN_UINT_PTR_UINT): Likewise.
39232         (BT_FN_LONG_PTR_LONG): Likewise.
39233         (BT_FN_ULONG_PTR_ULONG): Likewise.
39234         (BT_FN_VOID_UINT64_UINT64): Likewise.
39235         (BT_FN_UINT8_UINT8_UINT8): Likewise.
39236         (BT_FN_INT8_INT8_INT8): Likewise.
39237         (BT_FN_INT16_INT16_INT16): Likewise.
39238         (BT_FN_INT_INT_INT): Likewise.
39239         (BT_FN_UINT_FLOAT_UINT): Likewise.
39240         (BT_FN_FLOAT_UINT_UINT): Likewise.
39241         (BT_FN_ULONG_UINT_UINT): Likewise.
39242         (BT_FN_ULONG_UINT_PTR): Likewise.
39243         (BT_FN_ULONG_ULONG_ULONG): Likewise.
39244         (BT_FN_UINT_UINT_UINT): Likewise.
39245         (BT_FN_VOID_UINT_PTR): Likewise.
39246         (BT_FN_UINT_UINT_PTR: Likewise.
39247         (BT_FN_UINT32_UINT64_PTR): Likewise.
39248         (BT_FN_INT_INT_UINT_UINT): Likewise.
39249         (BT_FN_UINT_UINT_UINT_UINT): Likewise.
39250         (BT_FN_UINT_UINT_UINT_PTR): Likewise.
39251         (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
39252         (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
39253         (BT_FN_LONG_LONG_UINT_UINT): Likewise.
39254         (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
39255         (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
39256         (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
39257         (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
39258         (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
39259         (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
39260         * doc/frontends.texi: List BRIG FE.
39261         * doc/install.texi (Testing): Add BRIG tesring requirements.
39262         * doc/invoke.texi (Overall Options): Mention BRIG.
39263         * doc/standards.texi (Standards): Doucment BRIG HSA version.
39264
39265 2017-01-24  Richard Biener  <rguenther@suse.de>
39266
39267         PR translation/79208
39268         * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
39269
39270 2017-01-24  Martin Jambor  <mjambor@suse.cz>
39271
39272         PR bootstrap/79198
39273         * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
39274         * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
39275         and known_contexts.
39276
39277 2017-01-24  Aldy Hernandez  <aldyh@redhat.com>
39278
39279         PR middle-end/79123
39280         * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
39281         casts from signed to unsigned really don't have a range.
39282
39283 2017-01-24  Markus Trippelsdorf  <markus@trippelsdorf.de>
39284
39285         * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
39286         GMP_RNDx for compatiblity.
39287
39288 2017-01-24  Martin Liska  <mliska@suse.cz>
39289
39290         PR bootstrap/79132
39291         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
39292         that would prevent us to call alloca with -1 as argument.
39293
39294 2017-01-24  Jakub Jelinek  <jakub@redhat.com>
39295
39296         * dwarf2out.c (output_compilation_unit_header, output_file_names):
39297         Avoid -Wformat-security warning.
39298
39299 2017-01-23  Andrew Pinski  <apinski@cavium.com>
39300
39301         * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
39302         cost table.
39303
39304 2017-01-23  Martin Sebor  <msebor@redhat.com>
39305
39306         PR middle-end/78703
39307         * gimple-ssa-sprintf.c (warn_level): New global.
39308         (format_integer): Use it here and throughout the rest of the file.
39309         Use the same switch to compute sign as base.
39310         (maybe_warn): New function.
39311         (format_directive): Factor out warnings into maybe_warn.
39312         Add debugging output.  Use warn_level.
39313         (add_bytes): Use warn_level.
39314         (pass_sprintf_length::compute_format_length): Add debugging output.
39315         (try_substitute_return_value): Same.
39316         (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
39317
39318         PR middle-end/78703
39319         * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
39320         (struct fmtresult, format_integer, format_floating): Adjust.
39321         (fmtresult::fmtresult): Set max correctly in two argument ctor.
39322         (get_string_length, format_string,format_directive): Same.
39323         (pass_sprintf_length::compute_format_length): Same.
39324         (try_substitute_return_value): Simplify slightly.
39325
39326         PR middle-end/78703
39327         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
39328         (fmtresult::operator+=): Outlined.
39329         (struct fmtresult): Add ctors.
39330         (struct conversion_spec): Rename...
39331         (struct directive): ...to this.  Add and remove data members.
39332         (directive::set_width, directive::set_precision): New functions.
39333         (format_percent): Use fmtresult ctor.
39334         (get_width_and_precision): Remove.
39335         (format_integer): Make naming changes.  Avoid computing width and
39336         precision.
39337         (format_floating): Same.  Adjust indentation.
39338         (format_character, format_none): New functions.
39339         (format_string): Moved character handling to format_character.
39340         (format_directive): Remove arguments, change return type.
39341         (parse_directive): New function.
39342         (pass_sprintf_length::compute_format_length): Move directive
39343         parsing to parse_directive.
39344
39345 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
39346
39347         * tree.h (assign_assembler_name_if_neeeded): Rename to ...
39348         (assign_assembler_name_if_needed): ... this.
39349         * tree.c (assign_assembler_name_if_neeeded): Rename to ...
39350         (assign_assembler_name_if_needed): ... this.
39351         (free_lang_data_in_cgraph): Adjust callers.
39352         * cgraphunit.c (cgraph_node::analyze): Likewise.
39353         * omp-expand.c (expand_omp_taskreg, expand_omp_target):
39354         Likewise.
39355
39356 2017-01-23  Richard Biener  <rguenther@suse.de>
39357
39358         PR tree-optimization/79088
39359         PR tree-optimization/79188
39360         * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
39361         resetting loop bounds after last path deletion.  Reset loop
39362         bounds of the target loop, make code match the comments.
39363         * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
39364         Make sure loops need no fixups.
39365
39366 2017-01-23  Kelvin Nilsen  <kelvin@gcc.gnu.org>
39367
39368         * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
39369         exponent support with double type for first argument.
39370         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
39371         type returned by __builtin_vec_extract_sig,
39372         __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
39373         functions from "vector int" to "vector unsigned int" or from
39374         "vector long long int" to "vector unsigned long long int".
39375         Changed type returned by __builtin_vec_extract_exp,
39376         __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
39377         functions from "vector int" to "vector unsigned int" or from
39378         "vector long long int" to "vector unsigned long long int".
39379         Changed return type of __builtin_vec_test_data_class,
39380         __builtin_vec_test_data_class_sp, and
39381         __builtin_vec_test_data_class_dp from "vector int" to
39382         "vector bool int" or from "vector long long int" to "vector bool
39383         long long int" and changed second argument type from "unsigned
39384         int" to "int".  Added new overloaded function forms "vector float
39385         __builtin_vec_insert_exp (vector float, vector unsigned int)" and
39386         "vector float __builtin_vec_insert_exp_sp (vector float, vector
39387         unsigned int)" and "vector double __builtin_vec_insert_exp (vector
39388         double, vector unsigned long long int)" and "vector double
39389         __builtin_vec_insert_exp_dp (vector double, vector unsigned long
39390         long int)".  Changed return type of
39391         __builtin_scalar_test_data_class and
39392         __builtin_scalar_test_data_class_sp and
39393         __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
39394         int" and changed second argument from "unsigned int" to "int".
39395         Changed type returned by __builtin_scalar_test_neg,
39396         __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
39397         from "int" to "bool int".  Added new overloaded function form
39398         "double __builtin_scalar_insert_exp (double, unsigned long long int)".
39399         * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
39400         exponent double-precision with floating point first argument.
39401         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
39402         documentation of scalar_test_data_class, scalar_test_neg,
39403         scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
39404         vector_extract_exp, vec_extract_sig, vec_insert_exp, and
39405         vec_test_data_class built-in functions to reflect refinements in
39406         their type signatures.
39407
39408 2017-01-23  Andreas Tobler  <andreast@gcc.gnu.org>
39409
39410         * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
39411         size of buf.
39412         (aarch64_elf_asm_destructor): Likewise.
39413
39414 2017-01-23  Bernd Schmidt  <bschmidt@redhat.com>
39415
39416         PR rtl-optimization/78634
39417         * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
39418         (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
39419         * ifcvt.c (noce_try_cmove): Add missing cost check.
39420
39421         PR rtl-optimization/71724
39422         * combine.c (if_then_else_cond): Look for situations where it is
39423         beneficial to undo the work of one of the recursive calls.
39424
39425 2017-01-23  Bin Cheng  <bin.cheng@arm.com>
39426
39427         PR tree-optimization/70754
39428         * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
39429         (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE.  Insert
39430         combined stmt before it if not NULL.
39431         (combine_chains): Process refs reversely and compute dominance point
39432         for root ref.
39433
39434 2017-01-23  Martin Liska  <mliska@suse.cz>
39435
39436         PR tree-optimization/79196
39437         * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
39438         (fold_strstr_to_strncmp): ... this.  Fold the pattern to strncmp
39439         instead of memcmp.
39440         (strlen_optimize_stmt): Call the renamed function.
39441
39442 2017-01-23  Michael Matz  <matz@suse.de>
39443
39444         PR tree-optimization/78384
39445         * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
39446
39447 2017-01-23  Richard Biener  <rguenther@suse.de>
39448
39449         PR tree-optimization/79186
39450         * tree-vrp.c (register_new_assert_for): Make sure we've seen
39451         both incoming edges before moving an assert.
39452
39453 2017-01-23  Martin Jambor  <mjambor@suse.cz>
39454
39455         * ipa-prop.c (load_from_param_1): Removed.
39456         (load_from_unmodified_param): Bits from load_from_param_1 put back
39457         here.
39458         (load_from_param): Removed.
39459         (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
39460         with stmt.  Reverted back to use of load_from_unmodified_param.
39461
39462 2017-01-23  Martin Jambor  <mjambor@suse.cz>
39463
39464         PR ipa/79108
39465         * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
39466         (ipa_node_params): Annotate with GTY((for_user)).  Make descriptors
39467         field a pointer to garbage collected vector, mark lattices and
39468         ipcp_orig_node with GTY((skip)).
39469         (ipa_get_param_count): Adjust to descriptors being a pointer.
39470         (ipa_get_param): Likewise.
39471         (ipa_get_type): Likewise.
39472         (ipa_get_param_move_cost): Likewise.
39473         (ipa_set_param_used): Likewise.
39474         (ipa_get_controlled_uses): Likewise.
39475         (ipa_set_controlled_uses): Likewise.
39476         (ipa_is_param_used): Likewise.
39477         (ipa_node_params_t): Move into garbage collector.  New methods insert
39478         and remove.
39479         (ipa_node_params_sum): Annotate wth GTY(()).
39480         (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
39481         garbage collected.
39482         (ipa_load_from_parm_agg): Adjust declaration.
39483         * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
39484         * ipa-profile.c (ipa_profile): Likewise.
39485         * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
39486         (ipa_populate_param_decls): Make descriptors parameter garbage
39487         collected.
39488         (ipa_dump_param): Adjust to descriptors being a pointer.
39489         (ipa_alloc_node_params): Likewise.
39490         (ipa_initialize_node_params): Likewise.
39491         (load_from_param_1): Make descriptors parameter garbage collected.
39492         (load_from_unmodified_param): Likewise.
39493         (load_from_param): Likewise.
39494         (ipa_load_from_parm_agg): Likewise.
39495         (ipa_node_params::~ipa_node_params): Removed.
39496         (ipa_free_all_node_params): Remove call to delete operator.
39497         (ipa_node_params_t::insert): New.
39498         (ipa_node_params_t::remove): Likewise.
39499         (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
39500         copy known_csts and known_contexts vectors.
39501         (ipa_read_node_info): Adjust to descriptors being a pointer.
39502         (ipcp_modif_dom_walker): Make m_descriptors field garbage
39503         collected.
39504         (ipcp_transform_function): Make descriptors variable garbage
39505         collected.
39506
39507 2017-01-23  Andrew Senkevich  <andrew.senkevich@intel.com>
39508
39509         * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
39510         * config/i386/avx512dqintrin.h: Ditto.
39511         * config/i386/avx512fintrin.h: Ditto.
39512         * config/i386/i386.c: Handle new builtins.
39513         * config/i386/i386-builtin.def: Add new builtins.
39514         * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
39515         (UNSPEC_KORTEST, UNSPEC_KTEST): New.
39516
39517 2017-01-23  Jakub Jelinek  <jakub@redhat.com>
39518             Martin Liska  <mliska@suse.cz>
39519
39520         * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
39521         * asan.c (asan_expand_poison_ifn): Support stores and use
39522         appropriate ASAN report function.
39523         * internal-fn.c (expand_ASAN_POISON_USE): New function.
39524         * internal-fn.def (ASAN_POISON_USE): Declare.
39525         * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
39526         (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
39527         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
39528         ASAN_POISON calls w/o LHS.
39529         * tree-ssa.c (execute_update_addresses_taken): Create clobber
39530         for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
39531         from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
39532         * gimplify.c (asan_poison_variables): Add attribute
39533         use_after_scope_memory to variables that really needs to live
39534         in memory.
39535         * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
39536         having the attribute.
39537
39538 2017-01-23  Martin Liska  <mliska@suse.cz>
39539
39540         * asan.c (create_asan_shadow_var): New function.
39541         (asan_expand_poison_ifn): Likewise.
39542         * asan.h (asan_expand_poison_ifn): New declaration.
39543         * internal-fn.c (expand_ASAN_POISON): Likewise.
39544         * internal-fn.def (ASAN_POISON): New builtin.
39545         * sanopt.c (pass_sanopt::execute): Expand
39546         asan_expand_poison_ifn.
39547         * tree-inline.c (copy_decl_for_dup_finish): Make function
39548         external.
39549         * tree-inline.h (copy_decl_for_dup_finish): Likewise.
39550         * tree-ssa.c (is_asan_mark_p): New function.
39551         (execute_update_addresses_taken): Rewrite local variables
39552         (identified just by use-after-scope as addressable) into SSA.
39553
39554 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
39555
39556         * doc/install.texi (Specific): opensource.apple.com uses https
39557         now. Remove trailing slash.
39558
39559 2017-01-22  Gerald Pfeifer  <gerald@pfeifer.com>
39560
39561         * README.Portability: Remove note on an Irix compatibility issue.
39562
39563 2017-01-22  Dimitry Andric <dim@FreeBSD.org>
39564
39565         * gcov.c (INCLUDE_ALGORITHM): Define.
39566         (INCLUDE_VECTOR): Define.
39567         No longer include <vector> and <algorithm> directly.
39568
39569 2017-01-21  Gerald Pfeifer  <gerald@pfeifer.com>
39570
39571         * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
39572         to https.
39573         * doc/invoke.texi (Code Gen Options): Ditto.
39574
39575 2017-01-21  Jan Hubicka  <hubicka@ucw.cz>
39576
39577         PR lto/78407
39578         * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
39579
39580 2017-01-21  Bernd Schmidt  <bschmidt@redhat.com>
39581
39582         rtl-optimization/79125
39583         * cprop.c (local_cprop_pass): Handle cases where we make an
39584         unconditional trap.
39585
39586 2017-01-20  Segher Boessenkool  <segher@kernel.crashing.org>
39587
39588         PR target/61729
39589         PR target/77850
39590         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
39591         read from, for big endian.
39592
39593 2017-01-20  Jiong Wang  <jiong.wang@arm.com>
39594
39595         * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
39596         register pauth builtins for LP64 only.
39597
39598 2017-01-20  Marek Polacek  <polacek@redhat.com>
39599
39600         PR c/79152
39601         * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
39602         non-case labels.
39603
39604 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
39605
39606         * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
39607         of safelen status.
39608         * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
39609         * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
39610         * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
39611
39612 2017-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39613
39614         PR target/71270
39615         * config/arm/arm.c (neon_valid_immediate): Reject vector constants
39616         in big-endian mode when they are not a single duplicated value.
39617
39618 2017-01-20  Richard Biener  <rguenther@suse.de>
39619
39620         * BASE-VER: Bump to 7.0.1.
39621
39622 2017-01-20  Alexander Monakov  <amonakov@ispras.ru>
39623
39624         * omp-low.c (omplow_simd_context): New struct.  Use it...
39625         (lower_rec_simd_input_clauses): ...here and...
39626         (lower_rec_input_clauses): ...here to hold common data.  Adjust all
39627         references to idx, lane, max_vf, is_simt.
39628
39629 2017-01-20  Graham Markall  <graham.markall@embecosm.com>
39630
39631         * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
39632         mcpu=nps400.
39633
39634 2017-01-20  Martin Jambor  <mjambor@suse.cz>
39635
39636         * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
39637         * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
39638         gt-hsa-common.h.
39639         * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
39640         (GTFILES): Rename hsa.c to hsa-common.c.
39641         * hsa-brig.c: Change include of hsa.h to hsa-common.h.
39642         * hsa-dump.c: Likewise.
39643         * hsa-gen.c: Likewise.
39644         * hsa-regalloc.c: Likewise.
39645         * ipa-hsa.c: Likewise.
39646         * omp-expand.c: Likewise.
39647         * omp-low.c: Likewise.
39648         * toplev.c: Likewise.
39649
39650 2017-01-20  Marek Polacek  <polacek@redhat.com>
39651
39652         PR c/64279
39653         * doc/invoke.texi: Document -Wduplicated-branches.
39654         * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
39655         COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
39656         POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
39657         STATEMENT_LIST, and RETURN_EXPR.  For non-pure non-const functions
39658         return 0 only when not OEP_LEXICOGRAPHIC.
39659         (fold_build_cleanup_point_expr): Use the expression
39660         location when building CLEANUP_POINT_EXPR.
39661         * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
39662         * tree.c (add_expr): Handle error_mark_node.
39663
39664 2017-01-20  Martin Liska  <mliska@suse.cz>
39665
39666         PR lto/69188
39667         * tree-profile.c (init_ic_make_global_vars): Do not call
39668         finalize_decl.
39669         (gimple_init_gcov_profiler): Likewise.
39670
39671 2017-01-20  Martin Liska  <mliska@suse.cz>
39672
39673         PR ipa/71190
39674         * cgraph.h (maybe_create_reference): Remove argument and
39675         update comment.
39676         * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
39677         argument.
39678         * ipa-cp.c (create_specialized_node): Likewise.
39679         * symtab.c (symtab_node::maybe_create_reference): Handle
39680         VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
39681
39682 2017-01-20  Martin Liska  <mliska@suse.cz>
39683
39684         * read-rtl-function.c (function_reader::create_function): Use
39685         build_decl instread of build_decl_stat.
39686
39687 2017-01-20  Andrew Senkevich  <andrew.senkevich@intel.com>
39688
39689         * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
39690         * config/i386/avx512dqintrin.h: Ditto.
39691         * config/i386/avx512fintrin.h: Ditto.
39692         * config/i386/i386-builtin-types.def: Add new types.
39693         * config/i386/i386.c: Handle new types.
39694         * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
39695         (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
39696         (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
39697         (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
39698         (__builtin_ia32_kshiftridi): New.
39699         * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
39700
39701 2017-01-19  Segher Boessenkool  <segher@kernel.crashing.org>
39702
39703         PR target/78875
39704         PR target/79140
39705         * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
39706         define to rs6000_init_stack_protect_guard.
39707         (rs6000_init_stack_protect_guard): New function.
39708
39709 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39710             Yunqiang Su  <yunqiang.su@imgtec.com>
39711
39712         * config.gcc (supported_defaults): Add madd4.
39713         (with_madd4): Add validation.
39714         (all_defaults): Add madd4.
39715         * config/mips/mips.opt (mmadd4): New option.
39716         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
39717         mmadd4.
39718         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
39719         __mips_no_madd4.
39720         (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
39721         (ISA_HAS_FUSED_MADD4): Likewise.
39722         * doc/invoke.texi (-mmadd4): Document the new option.
39723         * doc/install.texi (--with-madd4): Document the new option.
39724
39725 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39726
39727         * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
39728         entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
39729         AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
39730         (aarch64_init_pauth_hint_builtins): New.
39731         (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
39732         (aarch64_expand_builtin): Expand new builtins.
39733
39734 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39735
39736         * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
39737         * combine-stack-adj.c (no_unhandled_cfa): Handle
39738         REG_CFA_TOGGLE_RA_MANGLE.
39739         * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
39740         * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
39741         info for return address signing.
39742         (aarch64_expand_epilogue): Likewise.
39743
39744 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39745
39746         * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
39747         * config/aarch64/aarch64-protos.h
39748         (aarch64_return_address_signing_enabled): New declaration.
39749         * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
39750         New function.
39751         (aarch64_expand_prologue): Sign return address before it's pushed onto
39752         stack.
39753         (aarch64_expand_epilogue): Authenticate return address fetched from
39754         stack.
39755         (aarch64_override_options): Sanity check for ILP32 and ISA level.
39756         (aarch64_attributes): New function attributes for "sign-return-address".
39757         * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
39758         UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
39759         ("*do_return"): Generate combined instructions according to key index.
39760         ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
39761         * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
39762         iterators.
39763         (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
39764         * config/aarch64/aarch64.opt (msign-return-address=): New.
39765         * doc/extend.texi (AArch64 Function Attributes): Documents
39766         "sign-return-address=".
39767         * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
39768
39769 2017-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
39770
39771         * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
39772         overall option summary.
39773
39774 2017-01-19  Jiong Wang  <jiong.wang@arm.com>
39775
39776         * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
39777         * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
39778         AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
39779         * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
39780
39781 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
39782
39783         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
39784         -mpower9-minmax by default for -mcpu=power9.
39785         (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
39786         128-bit floating point.
39787
39788 2017-01-20  Alan Modra  <amodra@gmail.com>
39789
39790         * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
39791         optimizing for size.
39792
39793 2017-01-20  Alan Modra  <amodra@gmail.com>
39794
39795         PR target/79144
39796         * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
39797         for strcmp and strncmp from corresponding builtin decl.
39798
39799 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39800
39801         * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
39802         instead of i386/rtems-64.h.
39803         * config/i386/rtems-64.h: Remove.
39804
39805 2017-01-19  Uros Bizjak  <ubizjak@gmail.com>
39806
39807         PR target/78478
39808         Revert:
39809         2013-11-05  Uros Bizjak  <ubizjak@gmail.com>
39810
39811         * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
39812
39813 2017-01-19  Tamar Christina  <tamar.christina@arm.com>
39814
39815         * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
39816         Change int to HOST_WIDE_INT.
39817         * config/aarch64/aarch64-protos.h
39818         (aarch64_simd_gen_const_vector_dup): Likewise.
39819         * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
39820
39821 2017-01-19  David Malcolm  <dmalcolm@redhat.com>
39822
39823         * langhooks-def.h (lhd_type_for_size): New decl.
39824         (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
39825         * langhooks.c (lhd_type_for_size): New function, taken from
39826         lto_type_for_size.
39827
39828 2017-01-19  Pat Haugen  <pthaugen@us.ibm.com>
39829
39830         * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
39831         define_bypass for CR latency.
39832         (power9-cracked-alu): Update bypass latency and remove power9-branch.
39833         (power9-alu2): Add define_bypass for CR latency.
39834         (power9-cmp): New.
39835         (power9-mul): Update insn latency.
39836         (power9-mul-compare): Update insn latency, bypass latency and remove
39837         power9-branch.
39838
39839 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
39840
39841         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
39842         Delete.
39843         * config/aarch64/aarch64.md
39844         (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
39845         aarch64_nopcrelative_literal_loads.
39846         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
39847
39848 2017-01-19  Chenghua Xu  <paul.hua.gm@gmail.com>
39849
39850         * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
39851         TARGET_LOONGSON_3A.
39852         (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
39853
39854 2017-01-19  Doug Gilmore  <doug.gilmore@imgtec.com>
39855
39856         PR target/78176
39857         * config.gcc (supported_defaults): Add lxc1-sxc1.
39858         (with_lxc1_sxc1): Add validation.
39859         (all_defaults): Add lxc1-sxc1.
39860         * config/mips/mips.opt (mlxc1-sxc1): New option.
39861         * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
39862         mlxc1-sxc1.
39863         (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
39864         __mips_no_lxc1_sxc1.
39865         (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
39866         * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
39867         * doc/install.texi (--with-lxc1-sxc1): Document the new option.
39868
39869 2017-01-19  Richard Biener  <rguenther@suse.de>
39870
39871         PR tree-optimization/72488
39872         * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
39873         sure to restore SSA info.
39874         * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
39875
39876 2017-01-19  Richard Earnshaw  <rearnsha@arm.com>
39877
39878         PR rtl-optimization/79121
39879         * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
39880         of the inner type when shifting an extended value.
39881
39882 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
39883
39884         PR lto/78407
39885         * symtab.c (symtab_node::equal_address_to): Fix comparing of
39886         interposable aliases.
39887
39888 2017-01-18  Peter Bergner  <bergner@vnet.ibm.com>
39889
39890         PR target/78516
39891         * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
39892         Use the evmergelohi instruction.
39893         (mov_si<mode>_e500_subreg4_2_le): Likewise.
39894         (mov_sitf_e500_subreg8_2_be): Likewise.
39895         (mov_sitf_e500_subreg12_2_le): Likewise.
39896         (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
39897         (mov_si<mode>_e500_subreg4_2_be): Likewise.
39898         (mov_sitf_e500_subreg8_2_le): Likewise.
39899         (mov_sitf_e500_subreg12_2_be): Likewise.
39900
39901 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39902
39903         * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
39904         attribute from vecsimple to vecperm.
39905         (altivec_vbpermq2): Likewise.
39906
39907 2017-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39908
39909         PR target/79040
39910         * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
39911
39912 2017-01-18  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
39913         * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
39914         * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
39915         strcmp. Fix bug where comparison didn't stop with zero byte. Fix
39916         case where N arg is SIZE_MAX.
39917         * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
39918         (cmpstrsi): Add pattern.
39919
39920 2017-01-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
39921
39922         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
39923         __builtin_vec_revb builtins.
39924         * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
39925         built-in functions to support generation of the ISA 3.0 XXBR<x>
39926         vector byte reverse instructions.
39927         (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
39928         (P9V_BUILTIN_XXBRD_V2DI): Likewise.
39929         (P9V_BUILTIN_XXBRD_V2DF): Likewise.
39930         (P9V_BUILTIN_XXBGW_V4SI): Likewise.
39931         (P9V_BUILTIN_XXBGW_V4SF): Likewise.
39932         (P9V_BUILTIN_XXBGH_V8HI): Likewise.
39933         (P9V_BUILTIN_VEC_REVB): Likewise.
39934         * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
39935         generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
39936         (p9_xxbrq_v16qi): Likewise.
39937         (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
39938         (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
39939         (p9_xxbrh_v8hi): Likewise.
39940         * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
39941         * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
39942         vec_revb built-in functions.
39943
39944 2017-01-18  Uros Bizjak  <ubizjak@gmail.com>
39945
39946         PR rtl-optimization/78952
39947         * config/i386/i386.md (any_extract): New code iterator.
39948         (*insvqi_2): Use any_extract for source operand.
39949         (*insvqi_3): Use any_shiftrt for source operand.
39950
39951 2017-01-18  Wilco Dijkstra  <wdijkstr@arm.com>
39952
39953         * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
39954         New function.
39955         (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
39956
39957 2017-01-18  Matthias Klose  <doko@ubuntu.com>
39958
39959         * doc/install.texi: Allow default for --with-target-bdw-gc-include.
39960
39961 2016-01-18  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
39962
39963         * config/rs6000/altivec.h (vec_bperm): Change #define.
39964         * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
39965         (altivec_vbpermq2): New define_insn.
39966         (altivec_vbpermd): Likewise.
39967         * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
39968         function interface.
39969         (VBPERMD): Likewise.
39970         (VBPERM): New polymorphic function interface.
39971         * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
39972         Add entries for P9V_BUILTIN_VEC_VBPERM.
39973         * doc/extend.texi: Add interfaces for vec_bperm.
39974
39975 2017-01-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
39976
39977         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
39978         first letter of error messages.
39979         (s390_resolve_overloaded_builtin): Likewise.
39980         * config/s390/s390.c (s390_expand_builtin): Likewise.
39981         (s390_invalid_arg_for_unprototyped_fn): Likewise.
39982         (s390_valid_target_attribute_inner_p): Likewise.
39983         * config/s390/s390.md ("tabort"): Likewise.
39984
39985 2017-01-18  Toma Tabacu  <toma.tabacu@imgtec.com>
39986
39987         * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
39988         (ISA_AVOID_DIV_HILO): New macro.
39989         (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
39990         (ISA_HAS_DDIV): Likewise.
39991
39992 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39993
39994         * doc/invoke.texi (fabi-version): Correct number of occurrences.
39995
39996 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
39997
39998         * doc/invoke.texi (fabi-version): Spelling fix.
39999
40000 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
40001
40002         PR c++/70182
40003         * doc/invoke.texi (fabi-version): Mention mangling fix for
40004         operator names.
40005
40006 2017-01-18  Markus Trippelsdorf  <markus@trippelsdorf.de>
40007
40008         PR c++/77489
40009         * doc/invoke.texi (fabi-version): Document discriminator mangling.
40010
40011 2017-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
40012
40013         PR target/78875
40014         * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
40015         * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
40016         the new options.
40017         * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
40018         flexible settings.
40019         (stack_protect_test): Ditto.
40020         * config/rs6000/rs6000.opt (mstack-protector-guard=,
40021         mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
40022         options.
40023         * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
40024         Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
40025         -mstack-protector-guard-offset=.
40026         (RS/6000 and PowerPC Options): Ditto.
40027
40028 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
40029
40030         * config/i386/i386.h (MASK_CLASS_P): New define.
40031         * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
40032         there are no registers from different register sets also when
40033         mask registers are used.  Update function comment.
40034         * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
40035         to (*k/*r) and (*k/*km) alternatives.
40036
40037 2017-01-17  Wilco Dijkstra  <wdijkstr@arm.com>
40038
40039         * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
40040         * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
40041         (EH_RETURN_HANDLER_RTX): New define.
40042         * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
40043         Force frame pointer in EH return functions.
40044         (aarch64_expand_epilogue): Add barrier for eh_return.
40045         (aarch64_final_eh_return_addr): Remove.
40046         (aarch64_eh_return_handler_rtx): New function.
40047         * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
40048         Remove.
40049         (aarch64_eh_return_handler_rtx): New prototype.
40050
40051 2017-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40052
40053         * config/rs6000/altivec.h (vec_rlmi): New #define.
40054         (vec_vrlnm): Likewise.
40055         (vec_rlnm): Likewise.
40056         * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
40057         (UNSPEC_VRLNM): Likewise.
40058         (VIlong): New mode iterator.
40059         (altivec_vrl<VI_char>mi): New define_insn.
40060         (altivec_vrl<VI_char>nm): Likewise.
40061         * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
40062         function entry.
40063         (VRLDNM): Likewise.
40064         (RLNM): New polymorphic function entry.
40065         (VRLWMI): New monomorphic function entry.
40066         (VRLDMI): Likewise.
40067         (RLMI): New polymorphic function entry.
40068         * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
40069         new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
40070         * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
40071         vec_vrlnm.
40072
40073 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
40074
40075         PR debug/78839
40076         * dwarf2out.c (field_byte_offset): Restore the
40077         PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
40078         and DECL_FIELD_BIT_OFFSET.  Use fold_build2 instead of build2 + fold.
40079         (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
40080         of build2 + fold.
40081
40082 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
40083
40084         PR ada/67205
40085         * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
40086
40087 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
40088
40089         PR debug/71669
40090         * dwarf2out.c (add_data_member_location_attribute): For constant
40091         offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
40092         instead of DW_AT_data_member_location, DW_AT_bit_offset and
40093         DW_AT_byte_size attributes.
40094
40095 2017-01-17  Eric Botcazou  <ebotcazou@adacore.com>
40096
40097         * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
40098         after forcing to constant memory when the code model is medium.
40099
40100 2017-01-17  Julia Koval  <julia.koval@intel.com>
40101
40102         PR target/76731
40103         * config/i386/avx512fintrin.h
40104         (_mm512_i32gather_ps): Change __addr type to void const*.
40105         (_mm512_mask_i32gather_ps): Ditto.
40106         (_mm512_i32gather_pd): Ditto.
40107         (_mm512_mask_i32gather_pd): Ditto.
40108         (_mm512_i64gather_ps): Ditto.
40109         (_mm512_mask_i64gather_ps): Ditto.
40110         (_mm512_i64gather_pd): Ditto.
40111         (_mm512_mask_i64gather_pd): Ditto.
40112         (_mm512_i32gather_epi32): Ditto.
40113         (_mm512_mask_i32gather_epi32): Ditto.
40114         (_mm512_i32gather_epi64): Ditto.
40115         (_mm512_mask_i32gather_epi64): Ditto.
40116         (_mm512_i64gather_epi32): Ditto.
40117         (_mm512_mask_i64gather_epi32): Ditto.
40118         (_mm512_i64gather_epi64): Ditto.
40119         (_mm512_mask_i64gather_epi64): Ditto.
40120         (_mm512_i32scatter_ps): Change __addr type to void*.
40121         (_mm512_mask_i32scatter_ps): Ditto.
40122         (_mm512_i32scatter_pd): Ditto.
40123         (_mm512_mask_i32scatter_pd): Ditto.
40124         (_mm512_i64scatter_ps): Ditto.
40125         (_mm512_mask_i64scatter_ps): Ditto.
40126         (_mm512_i64scatter_pd): Ditto.
40127         (_mm512_mask_i64scatter_pd): Ditto.
40128         (_mm512_i32scatter_epi32): Ditto.
40129         (_mm512_mask_i32scatter_epi32): Ditto.
40130         (_mm512_i32scatter_epi64): Ditto.
40131         (_mm512_mask_i32scatter_epi64): Ditto.
40132         (_mm512_i64scatter_epi32): Ditto.
40133         (_mm512_mask_i64scatter_epi32): Ditto.
40134         (_mm512_i64scatter_epi64): Ditto.
40135         (_mm512_mask_i64scatter_epi64): Ditto.
40136         * config/i386/avx512pfintrin.h
40137         (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
40138         (_mm512_mask_prefetch_i32gather_ps): Ditto.
40139         (_mm512_mask_prefetch_i64gather_pd): Ditto.
40140         (_mm512_mask_prefetch_i64gather_ps): Ditto.
40141         (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
40142         (_mm512_prefetch_i32scatter_ps): Ditto.
40143         (_mm512_mask_prefetch_i32scatter_pd): Ditto.
40144         (_mm512_mask_prefetch_i32scatter_ps): Ditto.
40145         (_mm512_prefetch_i64scatter_pd): Ditto.
40146         (_mm512_prefetch_i64scatter_ps): Ditto.
40147         (_mm512_mask_prefetch_i64scatter_pd): Ditto.
40148         (_mm512_mask_prefetch_i64scatter_ps): Ditto.
40149         * config/i386/avx512vlintrin.h
40150         (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
40151         (_mm_mmask_i32gather_ps): Ditto.
40152         (_mm256_mmask_i32gather_pd): Ditto.
40153         (_mm_mmask_i32gather_pd): Ditto.
40154         (_mm256_mmask_i64gather_ps): Ditto.
40155         (_mm_mmask_i64gather_ps): Ditto.
40156         (_mm256_mmask_i64gather_pd): Ditto.
40157         (_mm_mmask_i64gather_pd): Ditto.
40158         (_mm256_mmask_i32gather_epi32): Ditto.
40159         (_mm_mmask_i32gather_epi32): Ditto.
40160         (_mm256_mmask_i32gather_epi64): Ditto.
40161         (_mm_mmask_i32gather_epi64): Ditto.
40162         (_mm256_mmask_i64gather_epi32): Ditto.
40163         (_mm_mmask_i64gather_epi32): Ditto.
40164         (_mm256_mmask_i64gather_epi64): Ditto.
40165         (_mm_mmask_i64gather_epi64): Ditto.
40166         (_mm256_i32scatter_ps): Change __addr type to void*.
40167         (_mm256_mask_i32scatter_ps): Ditto.
40168         (_mm_i32scatter_ps): Ditto.
40169         (_mm_mask_i32scatter_ps): Ditto.
40170         (_mm256_i32scatter_pd): Ditto.
40171         (_mm256_mask_i32scatter_pd): Ditto.
40172         (_mm_i32scatter_pd): Ditto.
40173         (_mm_mask_i32scatter_pd): Ditto.
40174         (_mm256_i64scatter_ps): Ditto.
40175         (_mm256_mask_i64scatter_ps): Ditto.
40176         (_mm_i64scatter_ps): Ditto.
40177         (_mm_mask_i64scatter_ps): Ditto.
40178         (_mm256_i64scatter_pd): Ditto.
40179         (_mm256_mask_i64scatter_pd): Ditto.
40180         (_mm_i64scatter_pd): Ditto.
40181         (_mm_mask_i64scatter_pd): Ditto.
40182         (_mm256_i32scatter_epi32): Ditto.
40183         (_mm256_mask_i32scatter_epi32): Ditto.
40184         (_mm_i32scatter_epi32): Ditto.
40185         (_mm_mask_i32scatter_epi32): Ditto.
40186         (_mm256_i32scatter_epi64): Ditto.
40187         (_mm256_mask_i32scatter_epi64): Ditto.
40188         (_mm_i32scatter_epi64): Ditto.
40189         (_mm_mask_i32scatter_epi64): Ditto.
40190         (_mm256_i64scatter_epi32): Ditto.
40191         (_mm256_mask_i64scatter_epi32): Ditto.
40192         (_mm_i64scatter_epi32): Ditto.
40193         (_mm_mask_i64scatter_epi32): Ditto.
40194         (_mm256_i64scatter_epi64): Ditto.
40195         (_mm256_mask_i64scatter_epi64): Ditto.
40196         (_mm_i64scatter_epi64): Ditto.
40197         (_mm_mask_i64scatter_epi64): Ditto.
40198         * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
40199         (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
40200         (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
40201         (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
40202         (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
40203         (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
40204         (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
40205         (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
40206         (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
40207         (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
40208         (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
40209         (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
40210         (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
40211         (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
40212         (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
40213         (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
40214         (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
40215         (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
40216         (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
40217         (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
40218         (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
40219         (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
40220         (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
40221         (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
40222         (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
40223         (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
40224         (VOID_QI_V8DI_PCINT_INT_INT): Remove.
40225         (V16SF_V16SF_PCVOID_V16SI_HI_INT,  V8DF_V8DF_PCVOID_V8SI_QI_INT)
40226         (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
40227         (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
40228         (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
40229         (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
40230         (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
40231         (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
40232         (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
40233         (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
40234         (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
40235         (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
40236         (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
40237         (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
40238         (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
40239         (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
40240         (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
40241         (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
40242         (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
40243         (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
40244         (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
40245         (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
40246         (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
40247         (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
40248         (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
40249         (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
40250         (VOID_QI_V8DI_PCVOID_INT_INT): Add.
40251         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
40252         definitions accordingly.
40253
40254 2017-01-17  Kito Cheng  <kito.cheng@gmail.com>
40255             Kuan-Lin Chen  <kuanlinchentw@gmail.com>
40256
40257         PR target/79079
40258         * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
40259         gen_lowpart.
40260
40261 2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>
40262
40263         PR target/79058
40264         * ira-conflicts.c (ira_build_conflicts): Update total conflict
40265         hard regs for inner regno.
40266
40267 2017-01-17  Martin Liska  <mliska@suse.cz>
40268
40269         PR ipa/71207
40270         * ipa-polymorphic-call.c (contains_type_p): Fix wrong
40271         assumption and add comment.
40272
40273 2017-01-17  Nathan Sidwell  <nathan@acm.org>
40274
40275         * ipa-visibility.c (localize_node): New function, broken out of ...
40276         (function_and_variable_visibility): ... here. Call it.
40277
40278 2017-01-17  Jan Hubicka  <hubicka@ucw.cz>
40279
40280         PR middle-end/77445
40281         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
40282         correctly set frequency of oudgoing edge.
40283         (duplicate_thread_path): Fix profile updating.
40284
40285 2017-01-17  Jakub Jelinek  <jakub@redhat.com>
40286
40287         PR other/79046
40288         * configure.ac: Add GCC_BASE_VER.
40289         * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
40290         version from BASE-VER file.
40291         (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
40292         (gcc.o): Depend on $(BASEVER).
40293         * common.opt (dumpfullversion): New option.
40294         * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
40295         * doc/invoke.texi: Document -dumpfullversion.
40296         * doc/install.texi: Document --with-gcc-major-version-only.
40297         * configure: Regenerated.
40298
40299 2017-01-17  Richard Biener  <rguenther@suse.de>
40300
40301         PR tree-optimization/71433
40302         * tree-vrp.c (register_new_assert_for): Merge same asserts
40303         on all incoming edges.
40304         (process_assert_insertions_for): Handle insertions at the
40305         beginning of BBs.
40306
40307 2017-01-17  Gerald Pfeifer  <gerald@pfeifer.com>
40308
40309         * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
40310         * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
40311
40312 2017-01-17  Kaz Kojima  <kkojima@gcc.gnu.org>
40313
40314         PR target/78633
40315         * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
40316         RTL sharing.
40317
40318 2017-01-17  Alan Modra  <amodra@gmail.com>
40319
40320         PR target/79066
40321         * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
40322         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
40323         symbolic stack limit when pic.
40324
40325 2017-01-16  Martin Sebor  <msebor@redhat.com>
40326
40327         PR tree-optimization/78608
40328         * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
40329
40330 2017-01-16  Jeff Law  <law@redhat.com>
40331
40332         Revert:
40333         2016-12-02  Tadek Kijkowski  <tkijkowski@gmail.com>
40334         * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
40335         for several include directories that may be relative to sysroot.
40336         * config/i386/x-mingw32 (gplus_includedir): Define.
40337         (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
40338         (native_system_includedir): Likewise.
40339         * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
40340         override if TARGET_SYSTEM_ROOT is defined.
40341         (NATIVE_SYSTEM_HEADER_DIR): Likewise.
40342
40343         PR tree-optimization/79090
40344         PR tree-optimization/33562
40345         PR tree-optimization/61912
40346         PR tree-optimization/77485
40347         * tree-ssa-dse.c (compute_trims): Accept STMT argument.  Dump STMT
40348         and computed trims into the dump file.
40349
40350 2017-01-17  Uros Bizjak  <ubizjak@gmail.com>
40351
40352         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
40353
40354 2017-01-16  Jakub Jelinek  <jakub@redhat.com>
40355
40356         PR c/79089
40357         * gimplify.c (gimplify_init_constructor): If want_value and
40358         object == lhs, unshare lhs to avoid invalid tree sharing.  Formatting
40359         fix.
40360
40361         PR target/79080
40362         * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
40363         sequence.  Formatting fixes.
40364         (doloop_optimize): Formatting fixes.
40365
40366         PR driver/49726
40367         * gcc.c (debug_level_greater_than_spec_func): New function.
40368         (static_spec_functions): Add debug-level-gt spec function.
40369         (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
40370         !g0.
40371         * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
40372         * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
40373         * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
40374         gpubnames, ggnu-pubnames, gno-record-gcc-switches,
40375         grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
40376         gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
40377
40378 2017-01-16  Uros Bizjak  <ubizjak@gmail.com>
40379
40380         * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
40381         QImode fixups to general and mask registers only.
40382
40383 2017-01-16  Carl Love  <cel@us.ibm.com>
40384
40385         * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
40386         for built-in functions
40387         vector signed char vec_nabs (vector signed char)
40388         vector signed short vec_nabs (vector signed short)
40389         vector signed int vec_nabs (vector signed int)
40390         vector signed long long vec_nabs (vector signed long long)
40391         vector float vec_nabs (vector float)
40392         vector double vec_nabs (vector double)
40393         * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
40394         and NABS overload.
40395         * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
40396         * config/rs6000/altivec.h: New define for vec_nabs built-in function.
40397         * doc/extend.texi: Update the documentation file for the new built-in
40398         functions.
40399
40400 2017-01-16  Martin Sebor  <msebor@redhat.com>
40401
40402         * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
40403         message.
40404
40405 2017-01-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40406
40407         * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
40408         UNSPEC_VSX__XXSPLTD to require special splat handling.
40409
40410 2017-01-16  David Malcolm  <dmalcolm@redhat.com>
40411
40412         PR bootstrap/78616
40413         * system.h: Poison strndup.
40414
40415 2017-01-16  Alan Modra  <amodra@gmail.com>
40416
40417         PR target/79098
40418         * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
40419         use a switch.
40420
40421 2017-01-16  Georg-Johann Lay  <avr@gjlay.de>
40422
40423         * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
40424
40425 2017-01-15  Uros Bizjak  <ubizjak@gmail.com>
40426
40427         * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
40428         call recog here.  Assert that INSN_CODE (insn) is non-negative.
40429
40430 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
40431
40432         PR target/72749
40433         * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
40434         fallthrough.
40435         * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
40436         in the currently scheduled RTL fragment.
40437
40438 2017-01-15  Segher Boessenkool  <segher@kernel.crashing.org>
40439
40440         PR rtl-optimization/78751
40441         * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
40442         give up.
40443
40444 2017-01-14  Jeff Law  <law@redhat.com>
40445
40446         PR tree-optimization/79090
40447         * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
40448         variable length stores.
40449         (compute_trims): Delete dead assignment to *trim_tail.
40450         (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
40451         zero length.
40452
40453 2017-01-14  Bernd Schmidt  <bschmidt@redhat.com>
40454
40455         PR rtl-optimization/78626
40456         PR rtl-optimization/78727
40457         * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
40458         of a block, and split such blocks after everything else is finished.
40459
40460 2017-01-14  Alan Modra  <amodra@gmail.com>
40461
40462         PR target/72749
40463         * combine.c (recog_for_combine_1): Set INSN_CODE before calling
40464         target legitimate_combined_insn.
40465         * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
40466         (rs6000_legitimate_combined_insn): New function.
40467         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
40468         all uses.
40469         (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
40470         (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
40471         (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
40472
40473 2017-01-14  Gerald Pfeifer  <gerald@pfeifer.com>
40474
40475         * doc/frontends.texi (G++ and GCC): Remove references to Java.
40476
40477 2017-01-13  Jeff Law  <law@redhat.com>
40478
40479         PR tree-optimization/33562
40480         PR tree-optimization/61912
40481         PR tree-optimization/77485
40482         * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
40483         a statement.
40484         (delete_dead_assignment): Likewise.
40485         (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
40486         statement to delete_dead_call and delete_dead_assignment.
40487
40488 2017-01-13  David Malcolm  <dmalcolm@redhat.com>
40489
40490         PR c/78304
40491         * substring-locations.c (format_warning_va): Strengthen case 1 so
40492         that both endpoints of the substring must be within the format
40493         range for just the substring to be printed.
40494
40495 2017-01-13  Uros Bizjak  <ubizjak@gmail.com>
40496
40497         * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
40498         * config/i386/i386.c (ix86_target_string): Add missing options
40499         to isa_opts and reorder options by implied ISAs.  Rename isa_opts2 to
40500         isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
40501         flags_other and ix86_target_other to flags2_other.  Display unknown
40502         isa2 options.
40503         (ix86_valid_target_attribute_inner_p): Add missing options and
40504         reorder options by implied ISAs, as in ix86_target_string.
40505
40506 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40507
40508         * hash-table.h (hash_table::too_empty_p): New function.
40509         (hash_table::expand): Use it.
40510         (hash_table::traverse): Likewise.
40511         (hash_table::empty_slot): Use sizeof (value_type) instead of
40512         sizeof (PTR) to convert bytes to elements.  Shrink the table
40513         if the current size is excessive for the current number of
40514         elements.
40515
40516 2017-01-13  Richard Sandiford  <richard.sandiford@arm.com>
40517
40518         * ira-costs.c (record_reg_classes): Break from the inner loop
40519         early once alt_fail is known to be true.  Update outer loop
40520         handling accordingly.
40521
40522 2017-01-13  Jeff Law  <law@redhat.com>
40523
40524         * tree-ssa-dse.c (decrement_count): New function.
40525         (increment_start_addr, maybe_trim_memstar_call): Likewise.
40526         (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
40527         when we know the partially dead statement is a mem* function.
40528
40529         PR tree-optimization/61912
40530         PR tree-optimization/77485
40531         * tree-ssa-dse.c: Include expr.h.
40532         (maybe_trim_constructor_store): New function.
40533         (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
40534
40535         PR tree-optimization/33562
40536         PR tree-optimization/61912
40537         PR tree-optimization/77485
40538         * doc/invoke.texi: Document new dse-max-object-size param.
40539         * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
40540         * tree-ssa-dse.c: Include params.h.
40541         (dse_store_status): New enum.
40542         (initialize_ao_ref_for_dse): New, partially extracted from
40543         dse_optimize_stmt.
40544         (valid_ao_ref_for_dse, normalize_ref): New.
40545         (setup_live_bytes_from_ref, compute_trims): Likewise.
40546         (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
40547         (maybe_trim_partially_dead_store): Likewise.
40548         (maybe_trim_complex_store): Likewise.
40549         (dse_classify_store): Renamed from dse_possibly_dead_store_p.
40550         Track what bytes live from the original store.  Return tri-state
40551         for dead, partially dead or live.
40552         (dse_dom_walker): Add constructor, destructor and new private members.
40553         (delete_dead_call, delete_dead_assignment): New extracted from
40554         dse_optimize_stmt.
40555         (dse_optimize_stmt): Make a member of dse_dom_walker.
40556         Use initialize_ao_ref_for_dse.
40557
40558         PR tree-optimization/33562
40559         PR tree-optimization/61912
40560         PR tree-optimization/77485
40561         * sbitmap.h (bitmap_count_bits): Prototype.
40562         (bitmap_clear_range, bitmap_set_range): Likewise.
40563         * sbitmap.c (bitmap_clear_range): New function.
40564         (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
40565
40566 2017-01-13  Martin Liska  <mliska@suse.cz>
40567
40568         PR ipa/79043
40569         * function.c (set_cfun): Add new argument force.
40570         * function.h (set_cfun): Likewise.
40571         * ipa-inline-transform.c (inline_call): Use the function when
40572         strict alising from is dropped for function we inline to.
40573
40574 2017-01-13  Richard Biener  <rguenther@suse.de>
40575
40576         * tree-pretty-print.c (dump_generic_node): Fix inverted condition
40577         for dumping GIMPLE INTEGER_CSTs.
40578
40579 2017-01-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
40580
40581         * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
40582         to 201112L since C++17.
40583
40584 2017-01-13  Maxim Ostapenko  <m.ostapenko@samsung.com>
40585
40586         PR sanitizer/78887
40587         * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
40588         if -fsanitize=kernel-address is present.
40589
40590 2017-01-13  Richard Biener  <rguenther@suse.de>
40591
40592         * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
40593         as _Literal ( type ) number in case usual suffixes do not
40594         preserve all information.
40595
40596 2017-01-13  Richard Biener  <rguenther@suse.de>
40597
40598         PR tree-optimization/77283
40599         * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
40600         and ssa-iterators.h.
40601         (is_feasible_trace): Implement a cost model based on joiner
40602         PHI node uses.
40603
40604 2017-01-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
40605
40606         PR target/79004
40607         * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
40608         char or short to __float128/_Float128 directly.
40609
40610 2017-01-12  Martin Sebor  <msebor@redhat.com>
40611
40612         to -Wformat-overflow.
40613         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
40614         (min_bytes_remaining): Same.
40615         (get_string_length): Same.
40616         (format_string): Same.
40617         (format_directive): Same.
40618         (add_bytes): Same.
40619         (pass_sprintf_length::handle_gimple_call): Same.
40620
40621 2017-01-12  Jakub Jelinek  <jakub@redhat.com>
40622
40623         * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
40624         info.nowrite calls with no lhs that can't throw.  Return bool
40625         whether gsi_remove has been called or not.
40626         (pass_sprintf_length::handle_gimple_call): Return bool whether
40627         try_substitute_return_value called gsi_remove.  Formatting fix.
40628         (pass_sprintf_length::execute): Don't use gsi_remove if
40629         handle_gimple_call returned true.
40630
40631         PR bootstrap/79069
40632         * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
40633         be removed due to side-effects, don't remove following barrier nor
40634         turn the successor edge into fallthru edge.
40635
40636 2017-01-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
40637
40638         PR target/79044
40639         * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
40640         element-reversing loads and stores as not swappable.
40641
40642 2017-01-12  Nathan Sidwell  <nathan@acm.org>
40643             Nicolai Stange  <nicstange@gmail.com>
40644
40645         * combine.c (try_combine): Don't ignore result of overlap checking
40646         loop.  Combine overlap & asm check into single loop.
40647
40648 2017-01-12  Richard Biener  <rguenther@suse.de>
40649
40650         * tree-pretty-print.c (dump_generic_node): Provide -gimple
40651         variant for MEM_REF.  Sanitize INTEGER_CST for -gimple.
40652
40653 2017-01-12  Richard Biener  <rguenther@suse.de>
40654
40655         * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
40656         and TS_TARGET_OPTION directly derive from TS_BASE.
40657         * tree-core.h (tree_optimization_option): Derive from tree_base.
40658         (tree_target_option): Likewise.
40659
40660 2017-01-11  Uros Bizjak  <ubizjak@gmail.com>
40661
40662         * config/i386/i386.c (memory_address_length): Increase len
40663         only when rip_relative_addr_p returns false.
40664
40665 2017-01-11  Julia Koval  <julia.koval@intel.com>
40666
40667         * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
40668         (OPTION_MASK_ISA_SGX_SET): New.
40669         (ix86_handle_option): Handle OPT_msgx.
40670         * config.gcc: Added sgxintrin.h.
40671         * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
40672         * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
40673         * config/i386/i386.c (ix86_target_string): Add -msgx.
40674         (PTA_SGX): New.
40675         (ix86_option_override_internal): Handle new options.
40676         (ix86_valid_target_attribute_inner_p): Add sgx.
40677         * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
40678         * config/i386/i386.opt: Add msgx.
40679         * config/i386/sgxintrin.h: New file.
40680         * config/i386/x86intrin.h: Add sgxintrin.h.
40681
40682 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
40683
40684         PR c++/71537
40685         * fold-const.c (maybe_nonzero_address): Return 1 for function
40686         local objects.
40687         (tree_single_nonzero_warnv_p): Don't handle function local objects
40688         here.
40689
40690         PR c++/72813
40691         * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
40692         of c-header.
40693
40694 2017-01-11  David Malcolm  <dmalcolm@redhat.com>
40695
40696         PR driver/78877
40697         * opts.c: Include "spellcheck.h"
40698         (struct string_fragment): New struct.
40699         (struct edit_distance_traits<const string_fragment &>): New
40700         struct.
40701         (get_closest_sanitizer_option): New function.
40702         (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
40703
40704 2017-01-11  Jakub Jelinek  <jakub@redhat.com>
40705
40706         * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
40707         by 12.
40708         (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
40709         DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
40710         (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
40711         (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
40712         for initial die_offset if dwarf_split_debug_info.
40713         (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
40714         initial next_die_offset if dwo_id is non-NULL.  Don't emit padding
40715         fields.
40716         (output_skeleton_debug_sections): Formatting fix.  Use
40717         DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
40718         DWARF_COMPILE_UNIT_HEADER_SIZE.  Don't emit padding.
40719
40720 2017-01-11  Wilco Dijkstra  <wdijkstr@arm.com>
40721
40722         * config/arm/cortex-a53.md: Add bypasses for
40723         cortex_a53_r2f_cvt.
40724         (cortex_a53_r2f): Only use for transfers.
40725         (cortex_a53_f2r): Likewise.
40726         (cortex_a53_r2f_cvt): Add reservation for conversions.
40727         (cortex_a53_f2r_cvt): Likewise.
40728
40729 2017-01-11  Tamar Christina  <tamar.christina@arm.com>
40730
40731         * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
40732         to all inlined functions, change static to extern.
40733
40734 2017-01-11  Christophe Lyon  <christophe.lyon@linaro.org>
40735
40736         PR target/78253
40737         * config/arm/arm.c (legitimize_pic_address): Handle reference to
40738         weak symbol.
40739         (arm_assemble_integer): Likewise.
40740
40741 2017-01-11  Richard Earnshaw  <rearnsha@arm.com>
40742
40743         * config.gcc: Use new awk script to check CPU, FPU and architecture
40744         parameters for --with-... options.
40745         * config/arm/parsecpu.awk: New file
40746         * config/arm/arm-cpus.in: New file.
40747         * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
40748         files.
40749         * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
40750         files.
40751         * config/arm/t-arm: Update dependency rules.
40752         * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
40753         of processing .def files.
40754         * config/arm/genopt.sh: Deleted.
40755         * config/arm/gentune.sh: Deleted.
40756         * config/arm/arm-cores.def: Deleted.
40757         * config/arm/arm-arches.def: Deleted.
40758         * config/arm/arm-fpus.def: Deleted.
40759         * config/arm/arm-tune.md: Regenerated.
40760         * config/arm/arm-tables.opt: Regenerated.
40761         * config/arm/arm-cpu.h: New generated file.
40762         * config/arm/arm-cpu-data.h: New generated file.
40763         * config/arm/arm-cpu-cdata.h: New generated file.
40764
40765 2017-01-11  Maxim Ostapenko  <m.ostapenko@samsung.com>
40766
40767         PR lto/79042
40768         * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
40769         bit.
40770         (input_varpool_node): Unpack dynamically_initialized bit.
40771
40772 2017-01-11  Eric Botcazou  <ebotcazou@adacore.com>
40773
40774         PR rtl-optimization/79032
40775         * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
40776         the alignment of the adjusted memory reference against that of MODE,
40777         instead of the alignment of the original memory reference.
40778
40779 2017-01-11  Martin Jambor  <mjambor@suse.cz>
40780
40781         * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
40782         test.
40783         * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
40784         decorated functions.
40785
40786 2017-01-11  Richard Biener  <rguenther@suse.de>
40787
40788         * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
40789         set range/nonnull info for PHI results.  Do not set it on
40790         stmts marked for removal.
40791
40792 2017-01-10  Eric Botcazou  <ebotcazou@adacore.com>
40793
40794         * expr.c (store_field): In the bitfield case, fetch the return value
40795         from the registers before applying a single big-endian adjustment.
40796         Always do a final load for a BLKmode value not larger than a word.
40797
40798 2017-01-10  David Malcolm  <dmalcolm@redhat.com>
40799
40800         PR c++/77949
40801         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
40802         that we correctly handle column numbers greater than
40803         LINE_MAP_MAX_COLUMN_NUMBER.
40804
40805 2017-01-10  Martin Sebor  <msebor@redhat.com>
40806
40807         PR middle-end/78245
40808         * gimple-ssa-sprintf.c (get_destination_size): Call
40809         {init,fini}object_sizes.
40810         * tree-object-size.c (addr_object_size): Adjust.
40811         (pass_through_call): Adjust.
40812         (pass_object_sizes::execute): Adjust.
40813         * tree-object-size.h (fini_object_sizes): Declare.
40814
40815 2017-01-10  Martin Sebor  <msebor@redhat.com>
40816
40817         PR tree-optimization/78775
40818         * builtins.c (get_size_range): Move...
40819         * calls.c: ...to here.
40820         (alloc_max_size): Accept zero argument.
40821         (operand_signed_p): Remove.
40822         (maybe_warn_alloc_args_overflow): Call get_size_range.
40823         * calls.h (get_size_range): Declare.
40824
40825 2017-01-10  Joe Seymour  <joe.s@somniumtech.com>
40826
40827         * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
40828         from TI's devices.csv file as of September 2016.
40829         * config/msp430/msp430.c (msp430_mcu_data): Likewise.
40830
40831 2017-01-10  Sandra Loosemore  <sandra@codesourcery.com>
40832
40833         * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
40834         * doc/invoke.texi: Likewise.
40835         * doc/md.texi: Likewise.
40836         * doc/objc.texi: Likewise.
40837
40838 2017-01-10  Joshua Conner  <joshconner@google.com>
40839
40840         * config/arm/fuchsia-elf.h: New file.
40841         * config/fuchsia.h: New file.
40842         * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
40843         (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
40844         targets.
40845         * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
40846
40847 2016-01-10  Richard Biener  <rguenther@suse.de>
40848
40849         PR tree-optimization/79034
40850         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
40851         Propagate out degenerate PHIs in the joiner.
40852
40853 2017-01-10  Martin Liska  <mliska@suse.cz>
40854
40855         * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
40856         (sort_congruence_classes_by_decl_uid): Likewise.
40857         (sort_congruence_class_groups_by_decl_uid): Likewise.
40858         (sem_item_optimizer::merge_classes): Sort class, groups in these
40859         classes and members in the groups by DECL_UID of declarations.
40860         This would make merge operations stable.
40861
40862 2017-01-10  Martin Liska  <mliska@suse.cz>
40863
40864         * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
40865         usage of m_classes_vec.
40866         (sem_item_optimizer::~sem_item_optimizer):  Likewise.
40867         (sem_item_optimizer::get_group_by_hash): Likewise.
40868         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
40869         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
40870         (sem_item_optimizer::verify_classes): Likewise.
40871         (sem_item_optimizer::process_cong_reduction): Likewise.
40872         (sem_item_optimizer::dump_cong_classes): Likewise.
40873         (sem_item_optimizer::merge_classes): Likewise.
40874         * ipa-icf.h (congruence_class_hash): Rename from
40875         congruence_class_group_hash.  Remove declaration of m_classes_vec.
40876
40877 2017-01-10  Andrew Senkevich  <andrew.senkevich@intel.com>
40878
40879         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
40880         OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
40881         * config.gcc: Add avx512vpopcntdqintrin.h.
40882         * config/i386/avx512vpopcntdqintrin.h: New.
40883         * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
40884         * config/i386/i386-builtin-types.def: Add new types.
40885         * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
40886         __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
40887         __builtin_ia32_vpopcountq_v8di_mask): New.
40888         * config/i386/i386-c.c (ix86_target_macros_internal): Define
40889         __AVX512VPOPCNTDQ__.
40890         * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
40891         (PTA_AVX512VPOPCNTDQ): Define.
40892         * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
40893         TARGET_AVX512VPOPCNTDQ_P): Define.
40894         * config/i386/i386.opt: Add mavx512vpopcntdq.
40895         * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
40896         * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
40897
40898 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
40899
40900         PR middle-end/77484
40901         * predict.def (PRED_CALL): Set to 67.
40902
40903 2017-01-09  Eric Botcazou  <ebotcazou@adacore.com>
40904
40905         * expr.c (store_field): In the bitfield case, if the value comes from
40906         a function call and is of an aggregate type returned in registers, do
40907         not modify the field mode; extract the value in all cases if the mode
40908         is BLKmode and the size is not larger than a word.
40909
40910 2017-01-09  Dominique d'Humieres  <dominiq@lps.ens.fr>
40911
40912         PR target/71017
40913         * config/i386/cpuid.h: Fix undefined behavior.
40914
40915 2017-01-04  Jeff Law  <law@redhat.com>
40916
40917         PR tree-optimization/79007
40918         PR tree-optimization/67955
40919         * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
40920         conservative for pt.null when flag_non_call_exceptions is on.
40921
40922 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
40923
40924         PR translation/79019
40925         PR translation/79020
40926         * params.def (PARAM_INLINE_MIN_SPEEDUP,
40927         PARAM_IPA_CP_SINGLE_CALL_PENALTY,
40928         PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
40929         in descriptions.
40930         * config/avr/avr.opt (maccumulate-args): Likewise.
40931         * config/msp430/msp430.opt (mwarn-mcu): Likewise.
40932         * common.opt (freport-bug): Likewise.
40933         * cif-code.def (CIF_FINAL_ERROR): Likewise.
40934         * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
40935         * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
40936         translatable string.
40937         * config/i386/i386.c (function_value_32): Likewise.
40938         * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
40939         * config/msp430/msp430.c (msp430_option_override, msp430_attr):
40940         Likewise.
40941         * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
40942         * common/config/msp430/msp430-common.c (msp430_handle_option):
40943         Likewise.
40944         * symtab.c (symtab_node::verify_base): Likewise.
40945         * opts.c (set_debug_level): Likewise.
40946         * tree.c (verify_type_variant): Likewise.  Fix typo in comment.
40947         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
40948         missing whitespace to translatable strings.
40949         * config/avr/avr.md (bswapsi2): Fix typo in comment.
40950         * config/sh/superh.h: Likewise.
40951         * config/i386/xopintrin.h: Likewise.
40952         * config/i386/znver1.md: Likewise.
40953         * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
40954         * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
40955         * double-int.h (struct double_int): Likewise.
40956         * double-int.c (div_and_round_double): Likewise.
40957         * wide-int.cc: Likewise.
40958         * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
40959         * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
40960         * cfgcleanup.c (crossjumps_occured): Renamed to ...
40961         (crossjumps_occurred): ... this.
40962         (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
40963         Adjust all uses.
40964
40965         PR tree-optimization/78899
40966         * tree-if-conv.c (version_loop_for_if_conversion): Instead of
40967         returning bool return struct loop *, NULL for failure and the new
40968         loop on success.
40969         (versionable_outer_loop_p): Don't version outer loop if it has
40970         dont_vectorized bit set.
40971         (tree_if_conversion): When versioning outer loop, ensure
40972         tree_if_conversion is performed also on the inner loop of the
40973         non-vectorizable outer loop copy.
40974         * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix.  Fold
40975         LOOP_VECTORIZED in inner loop of the scalar outer loop and
40976         prevent vectorization of it.
40977         (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
40978         the outer loop vectorization of the non-scalar version is attempted
40979         before vectorization of the inner loop in scalar version.  If
40980         outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
40981         vectorization of its inner loop.
40982         * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
40983         has 2 inner loops, rename also on edges from bb whose single pred
40984         is outer_loop->header.  Fix typo in function comment.
40985
40986 2017-01-09  Martin Sebor  <msebor@redhat.com>
40987
40988         PR bootstrap/79033
40989         * asan.c (asan_emit_stack_protection): Increase local buffer size
40990         to avoid snprintf truncation warning.
40991
40992 2017-01-09  Andrew Pinski  <apinski@cavium.com>
40993
40994         * config/aarch64/aarch64-cores.def: Add thunderx2t99.  Change vulcan
40995         to reference thunderx2t99 for the tuning structure
40996         * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
40997         Rename to ...
40998         (thunderx2t99_extra_costs): This.
40999         * config/aarch64/aarch64-tune.md: Regenerate.
41000         * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
41001         (vulcan_addrcost_table): This.
41002         (vulcan_regmove_cost): Rename to ...
41003         (thunderx2t99_regmove_cost): This.
41004         (vulcan_vector_cost): Rename to ...
41005         (thunderx2t99_vector_cost): this.
41006         (vulcan_branch_cost): Rename to ...
41007         (thunderx2t99_branch_cost): This.
41008         (vulcan_tunings): Rename to ...
41009         (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
41010         * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
41011
41012 2017-01-09  Martin Jambor  <mjambor@suse.cz>
41013
41014         PR ipa/78365
41015         PR ipa/78599
41016         * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
41017         * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
41018         (propagate_vr_accross_jump_function): Use the above function for all
41019         value range computations for pass-through jump functions and type
41020         converasion from explicit value range values.
41021         (ipcp_propagate_stage): Do not attempt to deduce types of formal
41022         parameters from TYPE_ARG_TYPES.
41023         * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
41024         (ipa_write_node_info): Stream type of the actual argument.
41025         (ipa_read_node_info): Likewise. Also remove trailing whitespace.
41026
41027 2017-01-09  Martin Liska  <mliska@suse.cz>
41028
41029         PR pch/78970
41030         * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
41031         (lookup_compiler): Do not show error message with have_E.
41032
41033 2017-01-09  Jakub Jelinek  <jakub@redhat.com>
41034
41035         PR tree-optimization/78938
41036         * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
41037         where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
41038         BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
41039         {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR.  Formatting
41040         fixes.
41041
41042 2017-01-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
41043
41044         * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
41045         is const0_rtx.
41046
41047 2017-01-09  Richard Biener  <rguenther@suse.de>
41048
41049         PR tree-optimization/78997
41050         * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
41051         name condition properly.
41052
41053 2017-01-09  Richard Biener  <rguenther@suse.de>
41054
41055         PR debug/79000
41056         * dwarf2out.c (is_cxx): New overload with context.
41057         (is_naming_typedef_decl): Use it.
41058
41059 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
41060
41061         * invoke.texi (Option Summary): Correct spacing in option lists
41062         and add line breaks to fix over-long lines.
41063
41064 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
41065
41066         PR middle-end/17660
41067
41068         * extend.texi (Common Variable Attributes): Add xref to GCC
41069         Internals manual to explain mode attribute keywords.
41070
41071 2017-01-08  Sandra Loosemore  <sandra@codesourcery.com>
41072
41073         PR other/16519
41074         * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
41075         and Preprocessor Options.
41076         (Options for Linking): Document -pthread here....
41077         (RS/6000 and PowerPC Options): ...not here.
41078         (Solaris 2 Options): ...or here.
41079         * doc/cppopts.texi: Document -pthread.
41080
41081 2017-01-08  Martin Sebor  <msebor@redhat.com>
41082
41083         PR middle-end/77708
41084         * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
41085         * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
41086         New member functions.
41087         (format_directive): Used them.
41088         (add_bytes): Same.
41089         (pass_sprintf_length::handle_gimple_call): Same.
41090         * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
41091         to avoid truncation for any argument.
41092         (extract_affine_mul): Same.
41093         * tree.c (get_file_function_name): Same.
41094
41095 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41096
41097         PR middle-end/77484
41098         * predict.def (PRED_INDIR_CALL): Set to 86.
41099
41100 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41101
41102         PR preprocessor/54124
41103         * doc/cppopts.texi: Reformat -d subtable to list the full name
41104         of the options.  Add cross-reference to the docs for the general
41105         compiler -d options.
41106         * doc/invoke.texi (Developer Options): Add cross-reference to the
41107         preprocessor-specific -d option documentation.
41108
41109 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41110
41111         PR preprocessor/13498
41112         * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
41113         redudant material, and reflect new command-line options.
41114         (System Headers): Likewise.
41115
41116 2017-01-07  Sandra Loosemore  <sandra@codesourcery.com>
41117
41118         * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
41119         -isystem, and -idirafter.  Copy-edit.
41120         * doc/cppopts.texi: Copy-edit.  Remove contradiction about
41121         default for -ftrack-macro-expansion.  Delete obsolete and
41122         badly-formatted implementation details about -fdebug-cpp output.
41123         * doc/cppwarnopts.texi: Copy-edit.
41124
41125 2017-01-07  David Malcolm  <dmalcolm@redhat.com>
41126
41127         PR c++/72803
41128         * input.c (selftest::test_accessing_ordinary_linemaps): Verify
41129         that the transition from a max line width >= 1<<10 to narrower
41130         lines works correctly.
41131
41132 2017-01-07  Alexandre Oliva  <aoliva@redhat.com>
41133
41134         * doc/options.texi (PerFunction): New.
41135         * opt-functions.awk (switch_flags): Map both Optimization and
41136         PerFunction to CL_OPTIMIZATION.
41137         * opth-gen.awk: Test for PerFunction flag along with
41138         Optimization.
41139         * optc-save-gen.awk: Likewise.  Introduce var_opt_hash and set
41140         it only when the latter is present.  Skip those that don't in
41141         the hash function generator.
41142         * common.opt (fvar-tracking): Mark as PerFunction instead of
41143         Optimization.
41144         (fvar-tracking-assignments): Likewise.
41145         (fvar-tracking-assignments-toggle): Likewise.
41146         (fvar-tracking-uninit): Likewise.
41147
41148 2017-01-07  Jakub Jelinek  <jakub@redhat.com>
41149
41150         PR translation/79018
41151         * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
41152         the and store.
41153
41154 2017-01-06  Mikael Pettersson  <mikpelinux@gmail.com>
41155
41156         PR target/57583
41157         * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
41158         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
41159         TARGET_LONG_JUMP_TABLE_OFFSETS.
41160         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
41161         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
41162         * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
41163         (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
41164         * config/m68k/m68k.md (tablejump expander): Likewise.
41165         (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
41166         TARGET_LONG_JUMP_TABLE_OFFSETS.
41167         (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
41168         * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
41169
41170 2017-01-06  Edgar E. Iglesias <edgar.iglesias@xilinx.com>
41171             David Holsgrove <david.holsgrove@xilinx.com>
41172
41173         * common/config/microblaze/microblaze-common.c
41174         (TARGET_EXCEPT_UNWIND_INFO): Remove.
41175         * config/microblaze/microblaze-protos.h (microblaze_eh_return):
41176         New prototype.
41177         * config/microblaze/microblaze.c (microblaze_must_save_register)
41178         (microblaze_expand_epilogue, microblaze_return_addr): Handle
41179         calls_eh_return.
41180         (microblaze_eh_return): New function.
41181         * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
41182         (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
41183         (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
41184         * config/microblaze/microblaze.md (eh_return): New pattern.
41185
41186 2017-01-06  Jakub Jelinek  <jakub@redhat.com>
41187
41188         * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
41189         GCC_DIAGNOSTIC_STRINGIFY): Define.
41190
41191         * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
41192
41193 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41194
41195         * config/arm/arm.md (<mcrr>): New.
41196         (<mrrc>): New.
41197         * config/arm/arm.c (arm_arch5te): New.
41198         (arm_option_override): Set arm_arch5te.
41199         (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
41200         and mrrc2.
41201         * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
41202         (arm_mcrr_qualifiers): ... this. New.
41203         (MRRC_QUALIFIERS): Define to...
41204         (arm_mrrc_qualifiers): ... this. New.
41205         * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
41206         __arm_mrrc2): New.
41207         * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
41208         * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
41209         (MRRCI, mrrc, MRRC): New.
41210         * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
41211         VUNSPEC_MRRC2): New.
41212
41213 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41214
41215         * config/arm/arm.md (<mcr>): New.
41216         (<mrc>): New.
41217         * config/arm/arm.c (arm_coproc_builtin_available): Add
41218         support for mcr, mrc, mcr2 and mrc2.
41219         * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
41220         (arm_mcr_qualifiers): ... this. New.
41221         (MRC_QUALIFIERS): Define to ...
41222         (arm_mrc_qualifiers): ... this. New.
41223         (MCR_QUALIFIERS): Define to ...
41224         (arm_mcr_qualifiers): ... this. New.
41225         * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
41226         __arm_mrc2): New.
41227         * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
41228         * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
41229         * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
41230         VUNSPEC_MRC2): New.
41231
41232 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41233
41234         * config/arm/arm.md (*ldc): New.
41235         (*stc): New.
41236         (<ldc>): New.
41237         (<stc>): New.
41238         * config/arm/arm.c (arm_coproc_builtin_available): Add
41239         support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
41240         (arm_coproc_ldc_stc_legitimate_address): New.
41241         * config/arm/arm-builtins.c (arm_type_qualifiers): Add
41242         'qualifier_const_pointer'.
41243         (LDC_QUALIFIERS): Define to...
41244         (arm_ldc_qualifiers): ... this. New.
41245         (STC_QUALIFIERS): Define to...
41246         (arm_stc_qualifiers): ... this. New.
41247         * config/arm/arm-protos.h
41248         (arm_coproc_ldc_stc_legitimate_address): New.
41249         * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
41250         __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
41251         * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
41252         stc2, stcl, stc2l): New.
41253         * config/arm/constraints.md (Uz): New.
41254         * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
41255         * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
41256         VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
41257         VUNSPEC_STC2L): New.
41258
41259 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41260
41261         * config/arm/arm.md (<cdp>): New.
41262         * config/arm/arm.c (neon_const_bounds): Rename this ...
41263         (arm_const_bounds): ... this.
41264         (arm_coproc_builtin_available): New.
41265         * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
41266         (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
41267         (CDP_QUALIFIERS): Define to...
41268         (arm_cdp_qualifiers): ... this. New.
41269         (void_UP): Define.
41270         (arm_expand_builtin_args): Add case for 6 arguments.
41271         * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
41272         (arm_const_bounds): ... this.
41273         (arm_coproc_builtin_available): New.
41274         * config/arm/arm_acle.h (__arm_cdp): New.
41275         (__arm_cdp2): New.
41276         * config/arm/arm_acle_builtins.def (cdp): New.
41277         (cdp2): New.
41278         * config/arm/iterators.md (CDPI,CDP,cdp): New.
41279         * config/arm/neon.md: Rename all 'neon_const_bounds' to
41280         'arm_const_bounds'.
41281         * config/arm/types.md (coproc): New.
41282         * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
41283         * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
41284         * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
41285         arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
41286
41287 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41288
41289         * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
41290         (UBINOP_QUALIFIERS): New.
41291         (si_UP): Define.
41292         (acle_builtin_data): New. Change comment.
41293         (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
41294         ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
41295         ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
41296         arm_acle_builtins.def.
41297         (ARM_BUILTIN_ACLE_PATTERN_START): Define.
41298         (arm_init_acle_builtins): New.
41299         (CRC32_BUILTIN): Remove.
41300         (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
41301         crc32cb, crc32ch and crc32cw.
41302         (arm_init_crc32_builtins): Remove.
41303         (arm_init_builtins): Use arm_init_acle_builtins rather
41304         than arm_init_crc32_builtins.
41305         (arm_expand_acle_builtin): New.
41306         (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
41307         * config/arm/arm_acle_builtins.def: New.
41308
41309 2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>
41310
41311         * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
41312         (arm_builtin_datum): ... this.
41313         (arm_init_neon_builtin): Rename to ...
41314         (arm_init_builtin): ... this. Add a new parameters PREFIX
41315         and USE_SIG_IN_NAME.
41316         (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
41317         'arm_init_builtin'. Replace type 'neon_builtin_datum' with
41318         'arm_builtin_datum'.
41319         (arm_init_vfp_builtins): Likewise.
41320         (builtin_arg): Rename enum's replacing 'NEON_ARG' with
41321         'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
41322         (arm_expand_neon_args): Rename to ...
41323         (arm_expand_builtin_args): ... this. Rename builtin_arg
41324         enum values and differentiate between ARG_BUILTIN_MEMORY
41325         and ARG_BUILTIN_NEON_MEMORY.
41326         (arm_expand_neon_builtin_1): Rename to ...
41327         (arm_expand_builtin_1): ... this. Rename builtin_arg enum
41328         values, arm_expand_builtin_args and add bool parameter NEON.
41329         (arm_expand_neon_builtin): Use arm_expand_builtin_1.
41330         (arm_expand_vfp_builtin): Likewise.
41331         (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
41332
41333 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41334
41335         PR middle-end/77484
41336         * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
41337         * predict.c (tree_estimate_probability_bb): Reverse direction of
41338         polymorphic call predictor.
41339
41340 2017-01-06  David Malcolm  <dmalcolm@redhat.com>
41341
41342         * passes.c (execute_one_pass): Split out pass-skipping logic into...
41343         (determine_pass_name_match): ...this new function and...
41344         (should_skip_pass_p): ...this new function.
41345
41346 2017-01-06  Nathan Sidwell  <nathan@acm.org>
41347
41348         * ipa-visibility.c (function_and_variable_visibility): Reformat
41349         comments and long lines.  Remove extrneous if.
41350         * symtab.c (symtab_node::make_decl_local): Fix code format.
41351         (symtab_node::set_section_for_node): Fix comment typo.
41352
41353 2017-01-06  Martin Liska  <mliska@suse.cz>
41354
41355         PR bootstrap/79003
41356         * lra-constraints.c: Rename invariant to lra_invariant.
41357         * predict.c (set_even_probabilities): Initialize e to NULL.
41358
41359 2017-01-05  Martin Sebor  <msebor@redhat.com>
41360
41361         PR tree-optimization/78910
41362         * gimple-ssa-sprintf.c (tree_digits): Add an argument.
41363         (format_integer): Correct off-by-one error in the handling
41364         of precision with negative numbers in signed conversions..
41365
41366 2017-01-05  Eric Botcazou  <ebotcazou@adacore.com>
41367
41368         * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
41369
41370 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
41371
41372         PR tree-optimization/71016
41373         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
41374         factor_out_conditional_conversion.  Formatting fix.
41375         (factor_out_conditional_conversion): Add cond_stmt argument.
41376         If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
41377         cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
41378         Formatting fix.
41379
41380 2017-01-05  David Malcolm  <dmalcolm@redhat.com>
41381
41382         * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
41383         read-rtl-function.o, and selftest-rtl.o.
41384         * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
41385         (selftest::aarch64_test_loading_full_dump): New function.
41386         (selftest::aarch64_run_selftests): New function.
41387         (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
41388         selftest::aarch64_run_selftests.
41389         * config/i386/i386.c
41390         (selftest::ix86_test_loading_dump_fragment_1): New function.
41391         (selftest::ix86_test_loading_call_insn): New function.
41392         (selftest::ix86_test_loading_full_dump): New function.
41393         (selftest::ix86_test_loading_unspec): New function.
41394         (selftest::ix86_run_selftests): Call the new functions.
41395         * emit-rtl.c (maybe_set_max_label_num): New function.
41396         * emit-rtl.h (maybe_set_max_label_num): New decl.
41397         * function.c (instantiate_decls): Guard call to
41398         instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
41399         * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
41400         "static".
41401         * gensupport.c (gen_reader::gen_reader): Pass "false"
41402         for new "compact" param of rtx_reader.
41403         * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
41404         rather than an empty string for NULL strings.
41405         * read-md.c: Potentially include config.h rather than bconfig.h.
41406         Wrap include of errors.h with #ifdef GENERATOR_FILE.
41407         (have_error): New global, copied from errors.c.
41408         (md_reader::read_name): Rename to...
41409         (md_reader::read_name_1): ...this, adding "out_loc" param,
41410         and converting "missing name or number" to returning false, rather
41411         than failing.
41412         (md_reader::read_name): Reimplement in terms of read_name_1.
41413         (md_reader::read_name_or_nil): New function.
41414         (md_reader::read_string): Handle "(nil)" by returning NULL.
41415         (md_reader::md_reader): Add new param "compact".
41416         (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
41417         (md_reader::read_file): New method.
41418         * read-md.h (md_reader::md_reader): Add new param "compact".
41419         (md_reader::read_file): New method.
41420         (md_reader::is_compact): New accessor.
41421         (md_reader::read_name): Convert return type from void to file_location.
41422         (md_reader::read_name_or_nil): New decl.
41423         (md_reader::read_name_1): New decl.
41424         (md_reader::m_compact): New field.
41425         (noop_reader::noop_reader): Pass "false" for new "compact" param
41426         of rtx_reader.
41427         (rtx_reader::rtx_reader): Add new "compact" param.
41428         (rtx_reader::read_rtx_operand): Make virtual and convert return
41429         type from void to rtx.
41430         (rtx_reader::read_until): New decl.
41431         (rtx_reader::handle_any_trailing_information): New virtual function.
41432         (rtx_reader::postprocess): New virtual function.
41433         (rtx_reader::finalize_string): New virtual function.
41434         (rtx_reader::m_in_call_function_usage): New field.
41435         (rtx_reader::m_reuse_rtx_by_id): New field.
41436         * read-rtl-function.c: New file.
41437         * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
41438         * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
41439         (selftest::verify_three_block_rtl_cfg): New decl.
41440         * read-rtl-function.h: New file.
41441         * read-rtl.c: Potentially include config.h rather than bconfig.h.
41442         For host, include function.h, memmodel.h, and emit-rtl.h.
41443         (one_time_initialization): New function.
41444         (struct compact_insn_name): New struct.
41445         (compact_insn_names): New array.
41446         (find_code): Handle insn codes in compact dumps.
41447         (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
41448         (bind_subst_iter_and_attr): Likewise.
41449         (add_condition_to_string): Likewise.
41450         (add_condition_to_rtx): Likewise.
41451         (apply_attribute_uses): Likewise.
41452         (add_current_iterators): Likewise.
41453         (apply_iterators): Likewise.
41454         (initialize_iterators): Guard usage of apply_subst_iterator with
41455         #ifdef GENERATOR_FILE.
41456         (read_conditions): Wrap with #ifdef GENERATOR_FILE.
41457         (md_reader::read_mapping): Likewise.
41458         (add_define_attr_for_define_subst): Likewise.
41459         (add_define_subst_attr): Likewise.
41460         (read_subst_mapping): Likewise.
41461         (check_code_iterator): Likewise.
41462         (rtx_reader::read_rtx): Likewise.  Move one-time initialization
41463         logic to...
41464         (one_time_initialization): New function.
41465         (rtx_reader::read_until): New method.
41466         (read_flags): New function.
41467         (parse_reg_note_name): New function.
41468         (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
41469         Handle reuse_rtx ids.
41470         Wrap iterator lookup within #ifdef GENERATOR_FILE.
41471         Add parsing support for RTL dumps, mirroring the special-cases in
41472         print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
41473         values, and calling handle_any_trailing_information.
41474         (rtx_reader::read_rtx_operand): Convert return type from void
41475         to rtx, returning return_rtx.  Handle case 'e'.  Call
41476         finalize_string on XSTR and XTMPL fields.
41477         (rtx_reader::read_nested_rtx):  Handle dumps in which trailing
41478          "(nil)" values were omitted.  Call the postprocess vfunc on the
41479         return_rtx.
41480         (rtx_reader::rtx_reader): Add new "compact" param and pass to base
41481         class ctor.  Initialize m_in_call_function_usage.  Call
41482         one_time_initialization.
41483         * rtl-tests.c (selftest::test_uncond_jump): Call
41484         set_new_first_and_last_insn.
41485         * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
41486         * selftest-rtl.c: New file.
41487         * selftest-rtl.h (class selftest::rtl_dump_test): New class.
41488         (selftest::get_insn_by_uid): New decl.
41489         * selftest-run-tests.c (selftest::run_tests): Call
41490         read_rtl_function_c_tests.
41491         * selftest.h  (selftest::read_rtl_function_c_tests): New decl.
41492         * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
41493         dumps.
41494
41495 2017-01-05  Uros Bizjak  <ubizjak@gmail.com>
41496
41497         * config/i386/i386.md (*testqi_ext_3): No need to handle memory
41498         operands in a special way.  Assert that pos+len <= mode precision.
41499
41500 2017-01-05  Jakub Jelinek  <jakub@redhat.com>
41501
41502         * common.opt (fvect-cost-model): Remove RejectNegative flag, use
41503         3 argument Alias with unlimited for the negative form.
41504         (fno-vect-cost-model): Removed.
41505
41506 2017-01-05  Martin Liska  <mliska@suse.cz>
41507
41508         * hsa-gen.c (gen_hsa_divmod): New function.
41509         (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
41510
41511 2017-01-05  Martin Liska  <mliska@suse.cz>
41512
41513         PR pch/78970
41514         * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
41515         header.
41516
41517 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
41518
41519         * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
41520         small constant length operands.
41521
41522 2017-01-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
41523
41524         * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
41525         between loop iterations.
41526
41527 2017-01-05  Martin Liska  <mliska@suse.cz>
41528
41529         PR sanitizer/78815
41530         * gimplify.c (gimplify_decl_expr): Compare to
41531         asan_poisoned_variables instread of checking flags.
41532         (gimplify_target_expr): Likewise.
41533         (gimplify_expr): Likewise.
41534         (gimplify_function_tree): Conditionally initialize
41535         asan_poisoned_variables.
41536
41537 2017-01-04  Jeff Law  <law@redhat.com>
41538
41539         PR tree-optimizatin/78812
41540         * rtl.h (contains_mem_rtx_p): Prototype.
41541         * ifcvt.c (containts_mem_rtx_p): Move from here to...
41542         * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
41543         * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
41544         and prune MEMs that are not at the toplevel of a SET_SRC rtx.  Look
41545         through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
41546
41547 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41548
41549         * input.c (assert_char_at_range): Default-initialize actual_range.
41550
41551 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41552
41553         * df-scan.c (df_ref_create_structure): Make regno unsigned,
41554         to match the caller.
41555
41556 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41557
41558         * cfgexpand.c (expand_gimple_basic_block): Disregard debug
41559         insns after final jump in test to emit dummy move.
41560
41561 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41562
41563         * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
41564         * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
41565
41566 2017-01-04  Alexandre Oliva  <aoliva@redhat.com>
41567
41568         * multiple_target.c (create_dispatcher_calls): Init e_next.
41569         * tree-ssa-loop-split.c (split_loop): Init border.
41570         * tree-vect-loop.c (vect_determine_vectorization_factor): Init
41571         scalar_type.
41572
41573 2017-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
41574
41575         PR target/71977
41576         PR target/70568
41577         PR target/78823
41578         * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
41579         (altivec_register_operand): Do not return true if the operand
41580         contains a SUBREG mixing SImode and SFmode.
41581         (vsx_register_operand): Likewise.
41582         (vsx_reg_sfsubreg_ok): New predicate.
41583         (vfloat_operand): Do not return true if the operand contains a
41584         SUBREG mixing SImode and SFmode.
41585         (vint_operand): Likewise.
41586         (vlogical_operand): Likewise.
41587         (gpc_reg_operand): Likewise.
41588         (int_reg_operand): Likewise.
41589         * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
41590         * config/rs6000/rs6000.c (valid_sf_si_move): New function to
41591         determine if a MOVSI or MOVSF operation contains SUBREGs that mix
41592         SImode and SFmode.
41593         (rs6000_emit_move_si_sf_subreg): New helper function.
41594         (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
41595         fixup SUBREGs involving SImode and SFmode.
41596         * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
41597         numbers for the new peephole2 optimization.
41598         (peephole2 for SFmode unions): New peephole2 to optimize cases in
41599         the GLIBC math library that do AND/IOR/XOR operations on single
41600         precision floating point.
41601         * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
41602         target macros to say whether we need to avoid SUBREGs mixing
41603         SImode and SFmode.
41604         (TARGET_ALLOW_SF_SUBREG): Likewise.
41605         * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
41606         (UNSPEC_SI_FROM_SF): Likewise.
41607         (iorxor): Change spacing.
41608         (and_ior_xor): New iterator for AND, IOR, and XOR.
41609         (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
41610         (movdi_from_sf_zero_ext): Likewise.
41611         (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
41612         instead of gpc_reg_operand.  Add SImode/SFmode SUBREG support.
41613         (movsf_from_si): New insn for SImode/SFmode SUBREG support.
41614         (fma<mode>4): Use gpc_reg_operand instead of register_operand.
41615         (fms<mode>4): Likewise.
41616         (fnma<mode>4): Likewise.
41617         (fnms<mode>4): Likewise.
41618         (nfma<mode>4): Likewise.
41619         (nfms<mode>4): Likewise.
41620
41621 2017-01-04  Marek Polacek  <polacek@redhat.com>
41622
41623         PR c++/64767
41624         * doc/invoke.texi: Document -Wpointer-compare.
41625
41626 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41627
41628         * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
41629         RejectNegative.
41630
41631         * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
41632         descriptions for -gdwarf-5 and emit them as uleb128 instead of
41633         2-byte data.
41634
41635 2017-01-04  Kelvin Nilsen  <kelvin@gcc.gnu.org>
41636
41637         PR target/78056
41638         * doc/sourcebuild.texi (PowerPC-specific attributes): Add
41639         documentation of the powerpc_popcntb_ok attribute.
41640         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
41641         code to issue warning messages if a requested CPU configuration is
41642         not supported by the binary (assembler and loader) toolchain.
41643         (spe_init_builtins): Add two assertions to prevent ICE if attempt is
41644         made to define a built-in function that has been disabled.
41645         (paired_init_builtins): Add assertion to prevent ICE if attempt is
41646         made to define a built-in function that has been disabled.
41647         (altivec_init_builtins): Add comment explaining why definition
41648         of the DST built-in functions is not preceded by an assertion
41649         check.  Add assertions to prevent ICE if attempts are made to
41650         define an altivec predicate or an abs* built-in function that has
41651         been disabled.
41652         (htm_init_builtins): Add comment explaining why definition of the
41653         htm built-in functions is not preceded by an assertion check.
41654
41655 2017-01-04  Jeff Law  <law@redhat.com>
41656
41657         PR tree-optimizatin/67955
41658         * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
41659         Allow any SSA_VAR_P as the base objects.  Use integer_zerop.  Verify
41660         the points-to solution does not include pt_null.  Use DECL_PT_UID
41661         unconditionally.
41662
41663 2017-01-04  Uros Bizjak  <ubizjak@gmail.com>
41664
41665         * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
41666         Use gen_int_mode instead of gen_lopwart for const_int operands.
41667
41668 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41669
41670         PR tree-optimization/71563
41671         * match.pd: Simplify X << Y into X if Y is known to be 0 or
41672         out of range value - has low bits known to be zero.
41673
41674 2017-01-04  Alan Modra  <amodra@gmail.com>
41675
41676         * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
41677         * configure: Regenerate.
41678         * config.in: Regenerate.
41679
41680 2017-01-04  Jakub Jelinek  <jakub@redhat.com>
41681
41682         PR bootstrap/77569
41683         * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
41684         a substring of the message, but strcmp with the whole message.  Ifdef
41685         ENABLE_NLS, translate the message first using dgettext.
41686
41687 2017-01-03  Jeff Law  <law@redhat.com>
41688
41689         PR tree-optimizatin/78856
41690         * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
41691         (mark_threaded_blocks): Remove code to truncate thread paths that
41692         cross multiple loop headers.  Instead invalidate the cached loop
41693         iteration information and handle case of a thread path walking
41694         into an irreducible region.
41695
41696 2017-01-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
41697
41698         PR target/78900
41699         * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
41700         assertions.  Add support for doing the signbit if the IEEE 128-bit
41701         floating point value is in a GPR.
41702         * config/rs6000/rs6000.md (Fsignbit): Delete.
41703         (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
41704         Update the length attribute if the value is in a GPR.
41705         (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
41706         the sign or zero extension instruction, since the value is always 0/1.
41707         (signbit<mode>2_dm2): Delete using <Fsignbit>.
41708
41709         PR target/78953
41710         * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
41711         extracting SImode to a GPR register so that we can generate a
41712         store, limit the vector to be in a traditional Altivec register
41713         for the vextuwrx instruction.
41714
41715 2017-01-03  Ian Lance Taylor  <iant@google.com>
41716
41717         * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
41718
41719 2017-01-03  Martin Sebor  <msebor@redhat.com>
41720
41721         PR tree-optimization/78696
41722         * gimple-ssa-sprintf.c (format_floating): Correct handling of
41723         precision.  Use MPFR for %f for greater fidelity.  Correct handling
41724         of %g.
41725         (pass_sprintf_length::compute_format_length): Set width and precision
41726         specified by asrerisk to void_node for vararg functions.
41727         (try_substitute_return_value): Adjust dump output.
41728
41729 2017-01-03  David Edelsohn  <dje.gcc@gmail.com>
41730
41731         * doc/invoke.texi (RS6000 options): LRA is enabled by default.
41732
41733 2017-01-03  Eric Botcazou  <ebotcazou@adacore.com>
41734
41735         * doc/invoke.texi (SPARC options): Document -mlra as the default.
41736         * config/sparc/sparc.c (sparc_option_override): Force LRA unless
41737         -mlra/-mno-lra was passed to the compiler.
41738
41739 2017-01-03  James Cowgill  <James.Cowgill@imgtec.com>
41740
41741         PR rtl-optimization/65618
41742         * emit-rtl.c (try_split): Move initialization of "before" and
41743         "after" to just before the call to emit_insn_after_setloc.
41744
41745 2017-01-03  Gerald Pfeifer  <gerald@pfeifer.com>
41746
41747         * doc/md.texi (Standard Names): Remove reference to Java frontend.
41748
41749 2017-01-03  Pierre-Marie de Rodat  <derodat@adacore.com>
41750
41751         * dwarf2out.c (gen_enumeration_type_die): When
41752         -gno-strict-dwarf, add a DW_AT_encoding attribute.
41753
41754 2017-01-03  Jakub Jelinek  <jakub@redhat.com>
41755
41756         PR tree-optimization/78965
41757         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
41758         Change first argument from const call_info & to call_info &.  For %n
41759         set info.nowrite to false.
41760
41761         PR middle-end/78901
41762         * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
41763         possibly throwing calls.
41764
41765         * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
41766         and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
41767         and fns handling, rather than in a separate case SSA_NAME.
41768
41769 2017-01-02  Jeff Law  <law@redhat.com>
41770
41771         * config/darwin-driver.c (darwin_driver_init): Const-correctness
41772         fixes for first_period and second_period variables.
41773
41774 2017-01-02  Uros Bizjak  <ubizjak@gmail.com>
41775
41776         PR target/78967
41777         * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
41778         (*insvqi_1): New insn pattern.
41779         (*insvqi_1_mem_rex64): Ditto.
41780         (*insvqi_2): Ditto.
41781         (*insvqi_3): Rename from *insvqi.
41782
41783         (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
41784
41785 2017-01-02  Gerald Pfeifer  <gerald@pfeifer.com>
41786
41787         * doc/cfg.texi (Edges): Remove reference to Java.
41788         (Maintaining the CFG): Ditto.
41789
41790 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41791
41792         PR middle-end/77674
41793         * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
41794         transparent aliases.
41795
41796 2017-01-01  Jan Hubicka  <hubicka@ucw.cz>
41797
41798         PR middle-end/77484
41799         * predict.def (PRED_CALL): Update hitrate.
41800         (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
41801         * predict.c (tree_estimate_probability_bb): Split CALL predictor
41802         into direct/indirect/polymorphic variants.
41803
41804 2017-01-01  Jakub Jelinek  <jakub@redhat.com>
41805
41806         Update copyright years.
41807
41808         * gcc.c (process_command): Update copyright notice dates.
41809         * gcov-dump.c (print_version): Ditto.
41810         * gcov.c (print_version): Ditto.
41811         * gcov-tool.c (print_version): Ditto.
41812         * gengtype.c (create_file): Ditto.
41813         * doc/cpp.texi: Bump @copying's copyright year.
41814         * doc/cppinternals.texi: Ditto.
41815         * doc/gcc.texi: Ditto.
41816         * doc/gccint.texi: Ditto.
41817         * doc/gcov.texi: Ditto.
41818         * doc/install.texi: Ditto.
41819         * doc/invoke.texi: Ditto.
41820 \f
41821 Copyright (C) 2017 Free Software Foundation, Inc.
41822
41823 Copying and distribution of this file, with or without modification,
41824 are permitted in any medium without royalty provided the copyright
41825 notice and this notice are preserved.