]>
Commit | Line | Data |
---|---|---|
65e6aea3 JJ |
1 | 2017-12-31 Jakub Jelinek <jakub@redhat.com> |
2 | ||
3 | PR target/83536 | |
4 | * config/i386/i386.c (ix86_attribute_table): Remove excess | |
5 | initializer for "shared" attribute. | |
6 | ||
7 | 2017-12-30 Tom de Vries <tom@codesourcery.com> | |
8 | ||
9 | PR libgomp/83046 | |
10 | * omp-expand.c (expand_omp_target): If in_lto_p, mark offload_funcs with | |
11 | DECL_PRESERVE_P. | |
12 | * lto-streamer-out.c (prune_offload_funcs): New function. Remove | |
13 | offload_funcs entries that no longer have a corresponding cgraph_node. | |
14 | Mark the remaining ones as DECL_PRESERVE_P. | |
15 | (output_lto): Call prune_offload_funcs. | |
16 | ||
17 | 2017-12-30 Jakub Jelinek <jakub@redhat.com> | |
18 | ||
19 | * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, | |
20 | vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>, | |
21 | vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>, | |
22 | vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz, | |
23 | vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask, | |
24 | vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1, vpdpbusd_<mode>, | |
25 | vpdpbusd_<mode>_mask, vpdpbusd_<mode>_maskz, vpdpbusd_<mode>_maskz_1, | |
26 | vpdpbusds_<mode>, vpdpbusds_<mode>_mask, vpdpbusds_<mode>_maskz, | |
27 | vpdpbusds_<mode>_maskz_1, vpdpwssd_<mode>, vpdpwssd_<mode>_mask, | |
28 | vpdpwssd_<mode>_maskz, vpdpwssd_<mode>_maskz_1, vpdpwssds_<mode>, | |
29 | vpdpwssds_<mode>_mask, vpdpwssds_<mode>_maskz, | |
30 | vpdpwssds_<mode>_maskz_1, vaesdec_<mode>, vaesdeclast_<mode>, | |
31 | vaesenc_<mode>, vpclmulqdq_<mode>, | |
32 | avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Formatting fixes. | |
33 | ||
34 | 2017-12-28 Michael Meissner <meissner@linux.vnet.ibm.com> | |
35 | ||
36 | * builtins.def: (_Float<N> and _Float<N>X BUILT_IN_CEIL): Add | |
37 | _Float<N> and _Float<N>X variants for rounding built-in | |
38 | functions. | |
39 | (_Float<N> and _Float<N>X BUILT_IN_FLOOR): Likewise. | |
40 | (_Float<N> and _Float<N>X BUILT_IN_NEARBYINT): Likewise. | |
41 | (_Float<N> and _Float<N>X BUILT_IN_RINT): Likewise. | |
42 | (_Float<N> and _Float<N>X BUILT_IN_ROUND): Likewise. | |
43 | (_Float<N> and _Float<N>X BUILT_IN_TRUNC): Likewise. | |
44 | * builtins.c (mathfn_built_in_2): Likewise. | |
45 | * internal-fn.def (CEIL): Likewise. | |
46 | (FLOOR): Likewise. | |
47 | (NEARBYINT): Likewise. | |
48 | (RINT): Likewise. | |
49 | (ROUND): Likewise. | |
50 | (TRUNC): Likewise. | |
51 | * convert.c (convert_to_integer_1): Likewise. | |
52 | * fold-const.c (tree_call_nonnegative_warnv_p): Likewise. | |
53 | (integer_valued_real_call_p): Likewise. | |
54 | * fold-const-call.c (fold_const_call_ss): Likewise. | |
55 | * gencfn-macros.c (print_case_cfn): Change CFN and operator | |
56 | printers to take a const char * suffix instead of a bool. | |
57 | (print_define_operator_list): Likewise. | |
58 | (fltall_suffixes): New list of suffixes, that include the | |
59 | traditional suffixes as well as all of the _Float<N> and | |
60 | _Float<N>X suffixes. | |
61 | (main): For _Float<N> and _Float<N>X functions, emit both | |
62 | <name>_FN and <name>_ALL variants. The <macro>_FN variant only | |
63 | has the _Float<N> and _Float<N>X case names or operators. The | |
64 | <name>_ALL variant has both the traditional and the | |
65 | _Float<N>/_Float<N>X case names or operators. | |
66 | * match.pd (COPYSIGN optimizations): Provide optimizations for | |
67 | _Float<N> and _Float<N>X types where possible. | |
68 | (MIN/MAX optimizations): Likewise. | |
69 | (sqrt optimizations): Likewise. | |
70 | (rounding optimizations): Likewise. | |
71 | ||
72 | 2017-12-28 Richard Sandiford <richard.sandiford@linaro.org> | |
73 | ||
74 | * config/powerpcspe/powerpcspe.md (ieee_128bit_negative_zero): Use | |
75 | gen_int_mode rather than GEN_INT. | |
76 | * config/rs6000/rs6000.md (ieee_128bit_negative_zero): Likewise. | |
77 | ||
78 | 2017-12-28 Richard Sandiford <richard.sandiford@linaro.org> | |
79 | ||
80 | * emit-rtl.c (gen_const_vec_series): Use valid_for_const_vector_p | |
81 | instead of CONSTANT_P. | |
82 | (gen_vec_series): Likewise. | |
83 | * simplify-rtx.c (simplify_binary_operation_1): Likewise. | |
84 | ||
85 | 2017-12-28 Andreas Schwab <schwab@linux-m68k.org> | |
86 | ||
87 | * config/m68k/m68k.md (ashrdi3_const1, lshrdi3_const1): Add | |
88 | CC_STATUS_INIT. | |
89 | ||
90 | 2017-12-27 Kugan Vivekanandarajah <kuganv@linaro.org> | |
91 | ||
92 | * config/aarch64/aarch64-simd.md (aarch64_ld1x2<VQ:mode>): New. | |
93 | (aarch64_ld1x2<VDC:mode>): Likewise. | |
94 | (aarch64_simd_ld1<mode>_x2): Likewise. | |
95 | (aarch64_simd_ld1<mode>_x2): Likewise. | |
96 | * config/aarch64/arm_neon.h (vld1_u8_x2): New. | |
97 | (vld1_s8_x2): Likewise. | |
98 | (vld1_u16_x2): Likewise. | |
99 | (vld1_s16_x2): Likewise. | |
100 | (vld1_u32_x2): Likewise. | |
101 | (vld1_s32_x2): Likewise. | |
102 | (vld1_u64_x2): Likewise. | |
103 | (vld1_s64_x2): Likewise. | |
104 | (vld1_f16_x2): Likewise. | |
105 | (vld1_f32_x2): Likewise. | |
106 | (vld1_f64_x2): Likewise. | |
107 | (vld1_p8_x2): Likewise. | |
108 | (vld1_p16_x2): Likewise. | |
109 | (vld1_p64_x2): Likewise. | |
110 | (vld1q_u8_x2): Likewise. | |
111 | (vld1q_s8_x2): Likewise. | |
112 | (vld1q_u16_x2): Likewise. | |
113 | (vld1q_s16_x2): Likewise. | |
114 | (vld1q_u32_x2): Likewise. | |
115 | (vld1q_s32_x2): Likewise. | |
116 | (vld1q_u64_x2): Likewise. | |
117 | (vld1q_s64_x2): Likewise. | |
118 | (vld1q_f16_x2): Likewise. | |
119 | (vld1q_f32_x2): Likewise. | |
120 | (vld1q_f64_x2): Likewise. | |
121 | (vld1q_p8_x2): Likewise. | |
122 | (vld1q_p16_x2): Likewise. | |
123 | (vld1q_p64_x2): Likewise. | |
124 | ||
125 | 2017-12-27 Martin Liska <mliska@suse.cz> | |
126 | ||
127 | PR tree-optimization/83552 | |
128 | * tree-ssa-strlen.c (fold_strstr_to_strncmp): Assign result | |
129 | of get_string_lenth to a SSA_NAME if not a GIMPLE value. | |
130 | ||
131 | 2017-12-27 Tom de Vries <tom@codesourcery.com> | |
132 | ||
133 | * config/nvptx/nvptx.c (nvptx_option_override): Disable | |
134 | -gstatement-frontiers. | |
135 | ||
136 | 2017-12-26 Alexander Monakov <amonakov@ispras.ru> | |
137 | ||
138 | PR rtl-optimization/83513 | |
139 | * sel-sched.c (sel_rank_for_schedule): Order by non-zero usefulness | |
140 | before priority comparison. | |
141 | ||
142 | 2017-12-25 Jakub Jelinek <jakub@redhat.com> | |
143 | ||
144 | PR target/83488 | |
145 | * config/i386/i386.opt (-mavx512vpopcntdq, -mmavx512bitalg): Move from | |
146 | ix86_isa_flags2 to ix86_isa_flags. | |
147 | * config/i386/i386-c.c (ix86_target_macros_internal): Test | |
148 | OPTION_MASK_ISA_AVX512BITALG and OPTION_MASK_ISA_AVX512VPOPCNTDQ in | |
149 | isa_flags rather than isa_flags2. | |
150 | * config/i386/i386.c (ix86_target_string): Move -mavx512vpopcntdq | |
151 | and -mavx512bitalg from isa2_opts to isa_opts. | |
152 | (ix86_option_override_internal): Test OPTION_MASK_ISA_AVX512VPOPCNTDQ | |
153 | in x_ix86_isa_flags_explicit rather than x_ix86_isa_flags2_explicit | |
154 | and set it in x_ix86_isa_flags rather than x_ix86_isa_flags2. | |
155 | Formatting fixes. | |
156 | (def_builtin): Treat OPTION_MASK_ISA_AVX512BW or | |
157 | OPTION_MASK_ISA_AVX512F ored with another option similarly to | |
158 | OPTION_MASK_ISA_AVX512VL. Even for OPTION_MASK_ISA_AVX512VL don't | |
159 | clear it if mask is just OPTION_MASK_ISA_AVX512VL itself. | |
160 | (ix86_expand_builtin): Don't handle OPTION_MASK_ISA_GFNI and | |
161 | OPTION_MASK_ISA_VPCLMULQDQ specially, instead handle | |
162 | OPTION_MASK_ISA_AVX512BW and OPTION_MASK_ISA_AVX512F that way. | |
163 | * config/i386/i386-builtin.def: Move AVX512VPOPCNTDQ and AVX512BITALG | |
164 | builtins from bdesc_args2 to bdesc_args section. | |
165 | (__builtin_ia32_compressstoreuqi512_mask, | |
166 | __builtin_ia32_compressstoreuhi512_mask, | |
167 | __builtin_ia32_compressstoreuqi256_mask, | |
168 | __builtin_ia32_expandloadqi512_mask, | |
169 | __builtin_ia32_expandloadqi512_maskz, | |
170 | __builtin_ia32_expandloadhi512_mask, | |
171 | __builtin_ia32_expandloadhi512_maskz, | |
172 | __builtin_ia32_compressqi512_mask, __builtin_ia32_compresshi512_mask, | |
173 | __builtin_ia32_compressqi256_mask, __builtin_ia32_expandqi512_mask, | |
174 | __builtin_ia32_expandqi512_maskz, __builtin_ia32_expandhi512_mask, | |
175 | __builtin_ia32_expandhi512_maskz, __builtin_ia32_expandqi256_mask, | |
176 | __builtin_ia32_expandqi256_maskz, __builtin_ia32_vpshrd_v32hi_mask, | |
177 | __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshrdv_v32hi_mask, | |
178 | __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshldv_v32hi_mask, | |
179 | __builtin_ia32_vpshldv_v32hi_maskz, | |
180 | __builtin_ia32_vpopcountb_v64qi_mask, | |
181 | __builtin_ia32_vpopcountw_v32hi_mask, | |
182 | __builtin_ia32_vpshufbitqmb512_mask, | |
183 | __builtin_ia32_vpshufbitqmb256_mask): Add | |
184 | " | OPTION_MASK_ISA_AVX512BW". | |
185 | (__builtin_ia32_expandloadqi256_mask, | |
186 | __builtin_ia32_expandloadqi256_maskz, | |
187 | __builtin_ia32_vpopcountb_v32qi_mask): Add | |
188 | " | OPTION_MASK_ISA_AVX512VL | OPTION_MASK_ISA_AVX512BW". | |
189 | (__builtin_ia32_expandloadhi256_mask, | |
190 | __builtin_ia32_expandloadhi256_maskz, | |
191 | __builtin_ia32_expandloadqi128_mask, | |
192 | __builtin_ia32_expandloadqi128_maskz, | |
193 | __builtin_ia32_expandloadhi128_mask, | |
194 | __builtin_ia32_expandloadhi128_maskz, | |
195 | __builtin_ia32_vpshrd_v16hi, __builtin_ia32_vpshrd_v16hi_mask, | |
196 | __builtin_ia32_vpshrd_v8hi, __builtin_ia32_vpshrd_v8hi_mask, | |
197 | __builtin_ia32_vpshrd_v8si, __builtin_ia32_vpshrd_v8si_mask, | |
198 | __builtin_ia32_vpshrd_v4si, __builtin_ia32_vpshrd_v4si_mask, | |
199 | __builtin_ia32_vpshrd_v4di, __builtin_ia32_vpshrd_v4di_mask, | |
200 | __builtin_ia32_vpshrd_v2di, __builtin_ia32_vpshrd_v2di_mask, | |
201 | __builtin_ia32_vpshld_v16hi, __builtin_ia32_vpshld_v16hi_mask, | |
202 | __builtin_ia32_vpshld_v8hi, __builtin_ia32_vpshld_v8hi_mask, | |
203 | __builtin_ia32_vpshld_v8si, __builtin_ia32_vpshld_v8si_mask, | |
204 | __builtin_ia32_vpshld_v4si, __builtin_ia32_vpshld_v4si_mask, | |
205 | __builtin_ia32_vpshld_v4di, __builtin_ia32_vpshld_v4di_mask, | |
206 | __builtin_ia32_vpshld_v2di, __builtin_ia32_vpshld_v2di_mask, | |
207 | __builtin_ia32_vpshrdv_v16hi, __builtin_ia32_vpshrdv_v16hi_mask, | |
208 | __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi, | |
209 | __builtin_ia32_vpshrdv_v8hi_mask, __builtin_ia32_vpshrdv_v8hi_maskz, | |
210 | __builtin_ia32_vpshrdv_v8si, __builtin_ia32_vpshrdv_v8si_mask, | |
211 | __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si, | |
212 | __builtin_ia32_vpshrdv_v4si_mask, __builtin_ia32_vpshrdv_v4si_maskz, | |
213 | __builtin_ia32_vpshrdv_v4di, __builtin_ia32_vpshrdv_v4di_mask, | |
214 | __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di, | |
215 | __builtin_ia32_vpshrdv_v2di_mask, __builtin_ia32_vpshrdv_v2di_maskz, | |
216 | __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask, | |
217 | __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi, | |
218 | __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz, | |
219 | __builtin_ia32_vpshldv_v8si, __builtin_ia32_vpshldv_v8si_mask, | |
220 | __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si, | |
221 | __builtin_ia32_vpshldv_v4si_mask, __builtin_ia32_vpshldv_v4si_maskz, | |
222 | __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask, | |
223 | __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di, | |
224 | __builtin_ia32_vpshldv_v2di_mask, __builtin_ia32_vpshldv_v2di_maskz, | |
225 | __builtin_ia32_vpopcountb_v32qi, __builtin_ia32_vpopcountb_v16qi, | |
226 | __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v16hi, | |
227 | __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi, | |
228 | __builtin_ia32_vpopcountw_v8hi_mask): Add | |
229 | " | OPTION_MASK_ISA_AVX512VL". | |
230 | * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16, | |
231 | _mm512_shrdi_epi32, _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, | |
232 | _mm512_shrdi_epi64, _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64, | |
233 | _mm512_shldi_epi16, _mm512_shldi_epi32, _mm512_mask_shldi_epi32, | |
234 | _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, _mm512_mask_shldi_epi64, | |
235 | _mm512_maskz_shldi_epi64, _mm512_shrdv_epi16, _mm512_shrdv_epi32, | |
236 | _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64, | |
237 | _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64, _mm512_shldv_epi16, | |
238 | _mm512_shldv_epi32, _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, | |
239 | _mm512_shldv_epi64, _mm512_mask_shldv_epi64, | |
240 | _mm512_maskz_shldv_epi64): Don't require avx512bw for these intrinsics. | |
241 | * config/i386/avx512bitalgintrin.h (_mm_bitshuffle_epi64_mask, | |
242 | _mm_mask_bitshuffle_epi64_mask): Likewise. | |
243 | * common/config/i386/i386-common.c | |
244 | (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET, | |
245 | OPTION_MASK_ISA_AVX512BITALG_SET): Or in OPTION_MASK_ISA_AVX512F_SET. | |
246 | (OPTION_MASK_ISA_AVX512F_UNSET): Or in | |
247 | OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET and | |
248 | OPTION_MASK_ISA_AVX512BITALG_UNSET. | |
249 | (OPTION_MASK_ISA2_AVX512F_UNSET, | |
250 | OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Define. | |
251 | (ix86_handle_option): For -mno-general-regs-only, clear from | |
252 | ix86_isa_flags2 OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET rather than | |
253 | just OPTION_MASK_ISA_MPX. For -mno-sse{,2,3,4,4.1,4.2,avx,avx2} and | |
254 | -mno-ssse3 clear OPTION_MASK_ISA2_AVX512F_UNSET bits from | |
255 | ix86_isa_flags2. For -mno-avx512f likewise, instead of masking | |
256 | individually listed ISAs. For -m{,no-}avx512{vpopcntdq,bitalg} adjust | |
257 | for moving from ix86_isa_flags2 to ix86_isa_flags. | |
258 | ||
259 | 2017-12-23 Jakub Jelinek <jakub@redhat.com> | |
260 | ||
261 | PR c++/83553 | |
262 | * fold-const.c (struct contains_label_data): New type. | |
263 | (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless | |
264 | inside of a SWITCH_BODY seen during the walk. | |
265 | (contains_label_p): Use walk_tree instead of | |
266 | walk_tree_without_duplicates, prepare data for contains_label_1 and | |
267 | provide own pset. | |
268 | ||
269 | 2017-12-22 Jakub Jelinek <jakub@redhat.com> | |
270 | ||
271 | PR debug/83547 | |
272 | * tree-iterator.c (alloc_stmt_list): Start with cleared | |
273 | TREE_SIDE_EFFECTS regardless whether a new STATEMENT_LIST is allocated | |
274 | or old one reused. | |
275 | ||
276 | PR target/83488 | |
277 | * config/i386/avx512vnniintrin.h: Don't check for __AVX512F__ nor | |
278 | enable avx512f explicitly in #pragma GCC target. | |
279 | * config/i386/i386-builtin.def (__builtin_ia32_vpdpbusd_v8si, | |
280 | __builtin_ia32_vpdpbusd_v8si_mask, __builtin_ia32_vpdpbusd_v8si_maskz, | |
281 | __builtin_ia32_vpdpbusd_v4si, __builtin_ia32_vpdpbusd_v4si_mask, | |
282 | __builtin_ia32_vpdpbusd_v4si_maskz, __builtin_ia32_vpdpbusds_v8si, | |
283 | __builtin_ia32_vpdpbusds_v8si_mask, | |
284 | __builtin_ia32_vpdpbusds_v8si_maskz, __builtin_ia32_vpdpbusds_v4si, | |
285 | __builtin_ia32_vpdpbusds_v4si_mask, | |
286 | __builtin_ia32_vpdpbusds_v4si_maskz, __builtin_ia32_vpdpwssd_v8si, | |
287 | __builtin_ia32_vpdpwssd_v8si_mask, __builtin_ia32_vpdpwssd_v8si_maskz, | |
288 | __builtin_ia32_vpdpwssd_v4si, __builtin_ia32_vpdpwssd_v4si_mask, | |
289 | __builtin_ia32_vpdpwssd_v4si_maskz, __builtin_ia32_vpdpwssds_v8si, | |
290 | __builtin_ia32_vpdpwssds_v8si_mask, | |
291 | __builtin_ia32_vpdpwssds_v8si_maskz, __builtin_ia32_vpdpwssds_v4si, | |
292 | __builtin_ia32_vpdpwssds_v4si_mask, | |
293 | __builtin_ia32_vpdpwssds_v4si_maskz): Use | |
294 | OPTION_MASK_ISA_AVX512VNNI | OPTION_MASK_ISA_AVX512VL instead of | |
295 | just OPTION_MASK_ISA_AVX512VNNI. | |
296 | ||
297 | 2017-12-22 Martin Jambor <mjambor@suse.cz> | |
298 | ||
299 | PR lto/82027 | |
300 | * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former | |
301 | clones. | |
302 | ||
303 | 2017-12-22 Julia Koval <julia.koval@intel.com> | |
304 | Sebastian Peryt <sebastian.peryt@intel.com> | |
305 | ||
306 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BITALG_SET, | |
307 | OPTION_MASK_ISA_AVX512BITALG_UNSET): New. | |
308 | (ix86_handle_option): Handle -mavx512bitalg, fix 4VNNIW formatting. | |
309 | * config.gcc: Add avx512vpopcntdqvlintrin.h and avx512bitalgintrin.h. | |
310 | * config/i386/avx512bitalgintrin.h (_mm512_popcnt_epi8, _mm512_popcnt_epi16, | |
311 | _mm512_mask_popcnt_epi8, _mm512_maskz_popcnt_epi8, _mm512_mask_popcnt_epi16, | |
312 | _mm512_maskz_popcnt_epi16, _mm512_bitshuffle_epi64_mask, _mm256_popcnt_epi8, | |
313 | _mm512_mask_bitshuffle_epi64_mask, _mm256_mask_popcnt_epi8, _mm_popcnt_epi8, | |
314 | _mm256_maskz_popcnt_epi8, _mm_bitshuffle_epi64_mask, _mm256_popcnt_epi16, | |
315 | _mm_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, | |
316 | _mm256_mask_bitshuffle_epi64_mask, _mm_popcnt_epi16, _mm_maskz_popcnt_epi8, | |
317 | _mm256_mask_popcnt_epi16, _mm256_maskz_popcnt_epi16, _mm_mask_popcnt_epi8, | |
318 | _mm_mask_popcnt_epi16, _mm_maskz_popcnt_epi16): New intrinsics. | |
319 | * config/i386/avx512vpopcntdqvlintrin.h (_mm_popcnt_epi32, _mm_popcnt_epi64, | |
320 | _mm_mask_popcnt_epi32, _mm_maskz_popcnt_epi32, _mm256_popcnt_epi32, | |
321 | _mm256_mask_popcnt_epi32, _mm256_maskz_popcnt_epi32, _mm_mask_popcnt_epi64, | |
322 | _mm_maskz_popcnt_epi64, _mm256_popcnt_epi64, _mm256_mask_popcnt_epi64, | |
323 | _mm256_maskz_popcnt_epi64): New intrinsics. | |
324 | * config/i386/cpuid.h (bit_AVX512BITALG): New bit. | |
325 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mavx512bitalg. | |
326 | * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI, V64QI_FTYPE_V64QI, | |
327 | V4DI_FTYPE_V4DI, UHI_FTYPE_V2DI_V2DI_UHI, USI_FTYPE_V4DI_V4DI_USI, | |
328 | V4SI_FTYPE_V4SI_V4SI_UHI, V8SI_FTYPE_V8SI_V8SI_UHI): New types. | |
329 | * config/i386/i386-builtin.def (__builtin_ia32_vpopcountq_v4di, | |
330 | __builtin_ia32_vpopcountq_v4di_mask, __builtin_ia32_vpopcountq_v2di, | |
331 | __builtin_ia32_vpopcountq_v2di_mask, __builtin_ia32_vpopcountd_v4si, | |
332 | __builtin_ia32_vpopcountd_v4si_mask, __builtin_ia32_vpopcountd_v8si, | |
333 | __builtin_ia32_vpopcountd_v8si_mask, __builtin_ia32_vpopcountb_v64qi, | |
334 | __builtin_ia32_vpopcountb_v64qi_mask, __builtin_ia32_vpopcountb_v32qi, | |
335 | __builtin_ia32_vpopcountb_v32qi_mask, __builtin_ia32_vpopcountb_v16qi, | |
336 | __builtin_ia32_vpopcountb_v16qi_mask, __builtin_ia32_vpopcountw_v32hi, | |
337 | __builtin_ia32_vpopcountw_v32hi_mask, __builtin_ia32_vpopcountw_v16hi, | |
338 | __builtin_ia32_vpopcountw_v16hi_mask, __builtin_ia32_vpopcountw_v8hi, | |
339 | __builtin_ia32_vpopcountw_v8hi_mask, __builtin_ia32_vpshufbitqmb128_mask, | |
340 | __builtin_ia32_vpshufbitqmb256_mask, | |
341 | __builtin_ia32_vpshufbitqmb512_mask): New builtins. | |
342 | * config/i386/i386-c.c (__AVX512BITALG__): New. | |
343 | * config/i386/i386.c (isa2_opts): Add -mavx512bitalg. | |
344 | (ix86_valid_target_attribute_inner_p): Ditto. | |
345 | (ix86_expand_args_builtin): Handle new types. | |
346 | * config/i386/i386.h (TARGET_AVX512BITALG, TARGET_AVX512BITALG_P): New. | |
347 | * config/i386/i386.opt: Add -mavx512bitalg. | |
348 | * config/i386/immintrin.h: Add avx512vpopcntdqvlintrin.h and | |
349 | avx512bitalgintrin.h. | |
350 | * config/i386/sse.md (VI48_AVX512VLBW): New iterator. | |
351 | (vpopcount<mode><mask_name>): Add more types. | |
352 | (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): New. | |
353 | * doc/invoke.texi: Add -mavx512bitalg and -mavx512vpopcntdq. | |
354 | ||
355 | 2017-12-22 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
356 | ||
357 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET): | |
358 | Or in OPTION_MASK_ISA_AVX512F_SET. | |
359 | (OPTION_MASK_ISA_AVX512F_UNSET): Or in | |
360 | OPTION_MASK_ISA_AVX512VNNI_UNSET. | |
361 | (ix86_handle_option): Adjust for | |
362 | OPTION_MASK_ISA_AVX512VNNI_*SET being in ix86_isa_flags. | |
363 | * config/i386/i386-builtin.def: Move VNNI builtins from ARGS2 | |
364 | section to ARGS. | |
365 | * config/i386/i386-c.c: Check for OPTION_MASK_ISA_AVX512VNNI in | |
366 | isa_flag instead of isa_flag2. | |
367 | * config/i386/i386.c (ix86_target_string): Move -mavx512vnni from | |
368 | isa_opts2 to isa_opts. | |
369 | * config/i386/i386.opt (mavx512vnni): Move from ix86_isa_flags2 | |
370 | to ix86_isa_flags. | |
371 | ||
372 | 2017-12-22 Mike Stump <mikestump@comcast.net> | |
373 | Eric Botcazou <ebotcazou@adacore.com> | |
374 | ||
375 | * doc/extend.texi (Loop-Specific Pragmas): Document pragma GCC unroll. | |
376 | ||
377 | 2017-12-21 Jakub Jelinek <jakub@redhat.com> | |
378 | ||
379 | PR middle-end/83487 | |
380 | * config/i386/i386.c (ix86_function_arg_boundary): Return | |
381 | PARM_BOUNDARY for TYPE_EMPTY_P types. | |
382 | ||
383 | PR c/83448 | |
384 | * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index | |
385 | if navail is >= dir.len. | |
386 | ||
387 | 2017-12-21 Steve Ellcey <sellcey@cavium.com> | |
388 | ||
389 | * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Fix | |
390 | triplet for ilp32. | |
391 | ||
392 | 2017-12-21 Jakub Jelinek <jakub@redhat.com> | |
393 | ||
394 | PR rtl-optimization/80747 | |
395 | PR rtl-optimization/83512 | |
396 | * cfgrtl.c (force_nonfallthru_and_redirect): When splitting | |
397 | succ edge from ENTRY, copy partition from e->dest to the newly | |
398 | created bb. | |
399 | * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is | |
400 | ENTRY, use BB_PARTITION of its successor block as current_partition. | |
401 | Don't copy partition when splitting succ edge from ENTRY. | |
402 | ||
403 | PR tree-optimization/83523 | |
404 | * tree-ssa-math-opts.c (is_widening_mult_p): Return false if | |
405 | for INTEGER_TYPE TYPE_OVERFLOW_TRAPS. | |
406 | (convert_mult_to_fma): Likewise. | |
407 | ||
408 | PR tree-optimization/83521 | |
409 | * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use | |
410 | gimple_build_assign without code on result of | |
411 | fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create | |
412 | a VIEW_CONVERT_EXPR. | |
413 | ||
414 | 2017-12-21 Andrew Pinski <apinski@cavium.com> | |
415 | Steve Ellcey <sellcey@cavium.com> | |
416 | ||
417 | * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Handle | |
418 | multi-arch for ilp32. | |
419 | ||
420 | 2017-12-21 Uros Bizjak <ubizjak@gmail.com> | |
421 | ||
422 | PR target/83467 | |
423 | * config/i386/i386.md (*ashl<mode>3_mask): Add operand | |
424 | constraints to operand 2. | |
425 | (*ashl<mode>3_mask_1): Ditto. | |
426 | (*<shift_insn><mode>3_mask): Ditto. | |
427 | (*<shift_insn><mode>3_mask_1): Ditto. | |
428 | (*<rotate_insn><mode>3_mask): Ditto. | |
429 | (*<rotate_insn><mode>3_mask_1): Ditto. | |
430 | ||
431 | 2017-12-21 Alexandre Oliva <aoliva@redhat.com> | |
432 | ||
433 | * reorg.c (make_return_insns): Reemit each insn with its own location. | |
434 | ||
435 | 2017-12-21 James Greenhalgh <james.greenhalgh@arm.com> | |
436 | ||
437 | * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code | |
438 | generation for cases where splatting a value is not useful. | |
439 | * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge | |
440 | across a vec_duplicate and a paradoxical subreg forming a vector | |
441 | mode to a vec_concat. | |
442 | ||
443 | 2017-12-21 James Greenhalgh <james.greenhalgh@arm.com> | |
444 | ||
445 | * combine.c (simplify_set): Do not transform subregs to zero_extends | |
446 | if the destination is not a scalar int mode. | |
447 | ||
448 | 2017-12-21 Eric Botcazou <ebotcazou@adacore.com> | |
449 | ||
450 | PR c++/82872 | |
451 | * convert.c (convert_to_integer_1) <POINTER_TYPE>: Do not return the | |
452 | shared zero if the input has overflowed. | |
453 | ||
454 | 2017-12-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
455 | ||
456 | * config/arm/driver-arm.c (arm_cpu_table): Specify dotprod | |
457 | support for Cortex-A55 and Cortex-A75. | |
458 | ||
459 | 2017-12-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
460 | ||
461 | * common/config/arm/arm-common.c (compare_opt_names): Add function | |
462 | comment. Use strcmp instead of manual loop. | |
463 | ||
464 | 2017-12-21 Martin Liska <mliska@suse.cz> | |
465 | ||
466 | PR gcov-profile/83509 | |
467 | * gcov-dump.c (dump_gcov_file): Do not read info about | |
468 | support_unexecuted_blocks for gcda files. | |
469 | ||
470 | 2017-12-21 Jakub Jelinek <jakub@redhat.com> | |
471 | ||
472 | PR rtl-optimization/82973 | |
473 | * emit-rtl.h (valid_for_const_vec_duplicate_p): Rename to ... | |
474 | (valid_for_const_vector_p): ... this. | |
475 | * emit-rtl.c (valid_for_const_vec_duplicate_p): Rename to ... | |
476 | (valid_for_const_vector_p): ... this. Adjust function comment. | |
477 | (gen_vec_duplicate): Adjust caller. | |
478 | * optabs.c (expand_vector_broadcast): Likewise. | |
479 | * simplify-rtx.c (simplify_const_unary_operation): Don't optimize into | |
480 | CONST_VECTOR if some element isn't simplified valid_for_const_vector_p | |
481 | constant. | |
482 | (simplify_const_binary_operation): Likewise. Use CONST_FIXED_P macro | |
483 | instead of GET_CODE == CONST_FIXED. | |
484 | (simplify_subreg): Use CONST_FIXED_P macro instead of | |
485 | GET_CODE == CONST_FIXED. | |
486 | ||
487 | PR target/83488 | |
488 | * config/i386/i386.c (ix86_target_string): Move -mavx512vbmi2 and | |
489 | -mshstk entries from isa_opts2 to isa_opts and -mhle, -mmovbe, | |
490 | -mclzero and -mmwaitx entries from isa_opts to isa_opts2. | |
491 | (ix86_option_override_internal): Adjust for | |
492 | OPTION_MASK_ISA_{HLE,MOVBE,CLZERO,MWAITX} moving to ix86_isa_flags2 | |
493 | and OPTION_MASK_ISA_SHSTK moving to ix86_isa_flags. | |
494 | (BDESC_VERIFYS): Remove SPECIAL_ARGS2 related checks. | |
495 | (ix86_init_mmx_sse_builtins): Remove bdesc_special_args2 handling. | |
496 | Use def_builtin2 instead of def_builtin for OPTION_MASK_ISA_MWAITX | |
497 | and OPTION_MASK_ISA_CLZERO builtins. Use def_builtin instead of | |
498 | def_builtin2 for CET builtins. | |
499 | (ix86_expand_builtin): Remove bdesc_special_args2 handling. Fix | |
500 | up formatting in IX86_BUILTIN_RDPID code. | |
501 | * config/i386/i386-builtin.def: Move VBMI2 builtins from SPECIAL_ARGS2 | |
502 | section to SPECIAL_ARGS and from ARGS2 section to ARGS. | |
503 | * config/i386/i386.opt (mavx512vbmi2, mshstk): Move from | |
504 | ix86_isa_flags2 to ix86_isa_flags. | |
505 | (mhle, mmovbe, mclzero, mmwaitx): Move from ix86_isa_flags to | |
506 | ix86_isa_flags2. | |
507 | * config/i386/i386-c.c (ix86_target_macros_internal): Check for | |
508 | OPTION_MASK_ISA_{CLZERO,MWAITX} in isa_flag2 instead of isa_flag. | |
509 | Check for OPTION_MASK_ISA_{SHSTK,AVX512VBMI2} in isa_flag instead | |
510 | of isa_flag2. | |
511 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET): | |
512 | Or in OPTION_MASK_ISA_AVX512F_SET. | |
513 | (OPTION_MASK_ISA_AVX512F_UNSET): Or in | |
514 | OPTION_MASK_ISA_AVX512VBMI2_UNSET. | |
515 | (ix86_handle_option): Adjust for | |
516 | OPTION_MASK_ISA_{SHSTK,AVX512VBMI2}_*SET being in ix86_isa_flags | |
517 | and OPTION_MASK_ISA_{MOVBE,MWAITX,CLZERO}_*SET in ix86_isa_flags2. | |
518 | ||
519 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
520 | Alan Hayward <alan.hayward@arm.com> | |
521 | David Sherwood <david.sherwood@arm.com> | |
522 | ||
523 | * tree-data-ref.h (prune_runtime_alias_test_list): Take the | |
524 | factor as a poly_uint64 rather than an unsigned HOST_WIDE_INT. | |
525 | * tree-data-ref.c (prune_runtime_alias_test_list): Likewise. | |
526 | Track polynomial offsets. | |
527 | ||
528 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
529 | Alan Hayward <alan.hayward@arm.com> | |
530 | David Sherwood <david.sherwood@arm.com> | |
531 | ||
532 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): | |
533 | Treat drb->init as a poly_int. Fail if its misalignment wrt | |
534 | vector_alignment isn't known. | |
535 | ||
536 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
537 | Alan Hayward <alan.hayward@arm.com> | |
538 | David Sherwood <david.sherwood@arm.com> | |
539 | ||
540 | * tree-vectorizer.h (_loop_vec_info): Add a versioning_threshold | |
541 | field. | |
542 | (LOOP_VINFO_VERSIONING_THRESHOLD): New macro | |
543 | (vect_loop_versioning): Take the loop versioning threshold as a | |
544 | separate parameter. | |
545 | * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. | |
546 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize | |
547 | versioning_threshold. | |
548 | (vect_analyze_loop_2): Compute the loop versioning threshold | |
549 | whenever loop versioning is needed, and store it in the new | |
550 | field rather than combining it with the cost model threshold. | |
551 | (vect_transform_loop): Update call to vect_loop_versioning. | |
552 | Try to combine the loop versioning and cost thresholds here. | |
553 | ||
554 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
555 | Alan Hayward <alan.hayward@arm.com> | |
556 | David Sherwood <david.sherwood@arm.com> | |
557 | ||
558 | * tree-ssa-loop-ivopts.h (strip_offset): Return the offset as | |
559 | poly_uint64_pod rather than an unsigned HOST_WIDE_INT. | |
560 | * tree-loop-distribution.c (classify_builtin_st): Update accordingly. | |
561 | * tree-ssa-loop-ivopts.c (iv_use::addr_offset): Change from | |
562 | an unsigned HOST_WIDE_INT to a poly_uint64_pod. | |
563 | (group_compare_offset): Update accordingly. | |
564 | (split_small_address_groups_p): Likewise. | |
565 | (record_use): Take addr_offset as a poly_uint64 rather than | |
566 | an unsigned HOST_WIDE_INT. | |
567 | (strip_offset): Return the offset as a poly_uint64 rather than | |
568 | an unsigned HOST_WIDE_INT. | |
569 | (record_group_use, split_address_groups): Track polynomial offsets. | |
570 | (add_iv_candidate_for_use): Likewise. | |
571 | (addr_offset_valid_p): Take the offset as a poly_int64 rather | |
572 | than a HOST_WIDE_INT. | |
573 | (strip_offset_1): Return the offset as a poly_int64 rather than | |
574 | a HOST_WIDE_INT. | |
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.h (get_binfo_at_offset): Take the offset as a poly_int64 | |
581 | rather than a HOST_WIDE_INT. | |
582 | * tree.c (get_binfo_at_offset): Likewise. | |
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 | * ipa-prop.h (build_ref_for_offset): Take the offset as a poly_int64 | |
589 | rather than a HOST_WIDE_INT. | |
590 | * tree-sra.c (build_ref_for_offset): Likewise. | |
591 | ||
592 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
593 | Alan Hayward <alan.hayward@arm.com> | |
594 | David Sherwood <david.sherwood@arm.com> | |
595 | ||
596 | * fold-const.h (mem_ref_offset): Return a poly_offset_int rather | |
597 | than an offset_int. | |
598 | * tree.c (mem_ref_offset): Likewise. | |
599 | (build_simple_mem_ref_loc): Treat MEM_REF offsets as poly_ints. | |
600 | * builtins.c (get_object_alignment_2): Likewise. | |
601 | * expr.c (get_inner_reference, expand_expr_real_1): Likewise. | |
602 | * gimple-fold.c (get_base_constructor): Likewise. | |
603 | * gimple-ssa-strength-reduction.c (restructure_reference): Likewise. | |
604 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): | |
605 | Likewise. | |
606 | * ipa-polymorphic-call.c | |
607 | (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise. | |
608 | * ipa-prop.c (compute_complex_assign_jump_func): Likewise. | |
609 | (get_ancestor_addr_info): Likewise. | |
610 | * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Likewise. | |
611 | * match.pd: Likewise. | |
612 | * tree-data-ref.c (dr_analyze_innermost): Likewise. | |
613 | * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise. | |
614 | * tree-eh.c (tree_could_trap_p): Likewise. | |
615 | * tree-object-size.c (addr_object_size): Likewise. | |
616 | * tree-ssa-address.c (copy_ref_info): Likewise. | |
617 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise. | |
618 | (indirect_refs_may_alias_p): Likewise. | |
619 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. | |
620 | * tree-ssa.c (maybe_rewrite_mem_ref_base): Likewise. | |
621 | (non_rewritable_mem_ref_base): Likewise. | |
622 | * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise. | |
623 | * tree-vrp.c (vrp_prop::check_array_ref): Likewise. | |
624 | * varasm.c (decode_addr_const): Likewise. | |
625 | ||
626 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
627 | Alan Hayward <alan.hayward@arm.com> | |
628 | David Sherwood <david.sherwood@arm.com> | |
629 | ||
630 | * gimple-ssa-stor-merging.c (find_bswap_or_nop_load): Track polynomial | |
631 | offsets for MEM_REFs. | |
632 | ||
633 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
634 | Alan Hayward <alan.hayward@arm.com> | |
635 | David Sherwood <david.sherwood@arm.com> | |
636 | ||
637 | * tree-ssanames.h (adjust_ptr_info_misalignment): Take the increment | |
638 | as a poly_uint64 rather than an unsigned int. | |
639 | * tree-ssanames.c (adjust_ptr_info_misalignment): Likewise. | |
640 | ||
641 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
642 | Alan Hayward <alan.hayward@arm.com> | |
643 | David Sherwood <david.sherwood@arm.com> | |
644 | ||
645 | * varasm.c (addr_const::offset): Change from HOST_WIDE_INT | |
646 | to poly_int64. | |
647 | (decode_addr_const): Update accordingly. | |
648 | ||
649 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
650 | Alan Hayward <alan.hayward@arm.com> | |
651 | David Sherwood <david.sherwood@arm.com> | |
652 | ||
653 | * tree.h (bit_field_size, bit_field_offset): New functions. | |
654 | * hsa-gen.c (gen_hsa_addr): Use them. | |
655 | * tree-ssa-forwprop.c (simplify_bitfield_ref): Likewise. | |
656 | (simplify_vector_constructor): Likewise. | |
657 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. | |
658 | * tree-cfg.c (verify_expr): Require the sizes and offsets of a | |
659 | BIT_FIELD_REF to be poly_uint64s rather than uhwis. | |
660 | * fold-const.c (fold_ternary_loc): Protect tree_to_uhwi with | |
661 | tree_fits_uhwi_p. | |
662 | ||
663 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
664 | Alan Hayward <alan.hayward@arm.com> | |
665 | David Sherwood <david.sherwood@arm.com> | |
666 | ||
667 | * expr.h (emit_group_load, emit_group_load_into_temps) | |
668 | (emit_group_store): Take the size as a poly_int64 rather than an int. | |
669 | * expr.c (emit_group_load_1, emit_group_load): Likewise. | |
670 | (emit_group_load_into_temp, emit_group_store): Likewise. | |
671 | ||
672 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
673 | Alan Hayward <alan.hayward@arm.com> | |
674 | David Sherwood <david.sherwood@arm.com> | |
675 | ||
676 | * ira-int.h (ira_spilled_reg_stack_slot::width): Change from | |
677 | an unsigned int to a poly_uint64. | |
678 | * ira.h (ira_reuse_stack_slot, ira_mark_new_stack_slot): Take the | |
679 | sizes as poly_uint64s rather than unsigned ints. | |
680 | * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): | |
681 | Likewise. | |
682 | ||
683 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
684 | Alan Hayward <alan.hayward@arm.com> | |
685 | David Sherwood <david.sherwood@arm.com> | |
686 | ||
687 | * lra-constraints.c (emit_inc): Change inc_amount from an int | |
688 | to a poly_int64. | |
689 | ||
690 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
691 | Alan Hayward <alan.hayward@arm.com> | |
692 | David Sherwood <david.sherwood@arm.com> | |
693 | ||
694 | * cfgexpand.c (stack_var::size): Change from a HOST_WIDE_INT | |
695 | to a poly_uint64. | |
696 | (add_stack_var, stack_var_cmp, partition_stack_vars) | |
697 | (dump_stack_var_partition): Update accordingly. | |
698 | (alloc_stack_frame_space): Take the size as a poly_int64 rather | |
699 | than a HOST_WIDE_INT. | |
700 | (expand_stack_vars, expand_one_stack_var_1): Handle polynomial sizes. | |
701 | (defer_stack_allocation, estimated_stack_frame_size): Likewise. | |
702 | (account_stack_vars, expand_one_var): Likewise. Return a poly_uint64 | |
703 | rather than a HOST_WIDE_INT. | |
704 | ||
705 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
706 | Alan Hayward <alan.hayward@arm.com> | |
707 | David Sherwood <david.sherwood@arm.com> | |
708 | ||
709 | * target.def (return_pops_args): Treat both the input and output | |
710 | sizes as poly_int64s rather than HOST_WIDE_INTS. | |
711 | * targhooks.h (default_return_pops_args): Update accordingly. | |
712 | * targhooks.c (default_return_pops_args): Likewise. | |
713 | * doc/tm.texi: Regenerate. | |
714 | * emit-rtl.h (incoming_args): Change pops_args, size and | |
715 | outgoing_args_size from int to poly_int64_pod. | |
716 | * function.h (expr_status): Change x_pending_stack_adjust and | |
717 | x_stack_pointer_delta from int to poly_int64. | |
718 | (args_size::constant): Change from HOST_WIDE_INT to poly_int64. | |
719 | (ARGS_SIZE_RTX): Update accordingly. | |
720 | * calls.c (highest_outgoing_arg_in_use): Change from int to | |
721 | unsigned int. | |
722 | (stack_usage_watermark, stored_args_watermark): New variables. | |
723 | (stack_region_maybe_used_p, mark_stack_region_used): New functions. | |
724 | (emit_call_1): Change the stack_size and rounded_stack_size | |
725 | parameters from HOST_WIDE_INT to poly_int64. Track n_popped | |
726 | as a poly_int64. | |
727 | (save_fixed_argument_area): Check stack_usage_watermark. | |
728 | (initialize_argument_information): Change old_pending_adj from | |
729 | a HOST_WIDE_INT * to a poly_int64_pod *. | |
730 | (compute_argument_block_size): Return the size as a poly_int64 | |
731 | rather than an int. | |
732 | (finalize_must_preallocate): Track polynomial argument sizes. | |
733 | (compute_argument_addresses): Likewise. | |
734 | (internal_arg_pointer_based_exp): Track polynomial offsets. | |
735 | (mem_overlaps_already_clobbered_arg_p): Rename to... | |
736 | (mem_might_overlap_already_clobbered_arg_p): ...this and take the | |
737 | size as a poly_uint64 rather than an unsigned HOST_WIDE_INT. | |
738 | Check stored_args_used_watermark. | |
739 | (load_register_parameters): Update accordingly. | |
740 | (check_sibcall_argument_overlap_1): Likewise. | |
741 | (combine_pending_stack_adjustment_and_call): Take the unadjusted | |
742 | args size as a poly_int64 rather than an int. Return a bool | |
743 | indicating whether the optimization was possible and return | |
744 | the new adjustment by reference. | |
745 | (check_sibcall_argument_overlap): Track polynomail argument sizes. | |
746 | Update stored_args_watermark. | |
747 | (can_implement_as_sibling_call_p): Handle polynomial argument sizes. | |
748 | (expand_call): Likewise. Maintain stack_usage_watermark and | |
749 | stored_args_watermark. Update calls to | |
750 | combine_pending_stack_adjustment_and_call. | |
751 | (emit_library_call_value_1): Handle polynomial argument sizes. | |
752 | Call stack_region_maybe_used_p and mark_stack_region_used. | |
753 | Maintain stack_usage_watermark. | |
754 | (store_one_arg): Likewise. Update call to | |
755 | mem_overlaps_already_clobbered_arg_p. | |
756 | * config/arm/arm.c (arm_output_function_prologue): Add a cast to | |
757 | HOST_WIDE_INT. | |
758 | * config/avr/avr.c (avr_outgoing_args_size): Likewise. | |
759 | * config/microblaze/microblaze.c (microblaze_function_prologue): | |
760 | Likewise. | |
761 | * config/cr16/cr16.c (cr16_return_pops_args): Update for new | |
762 | TARGET_RETURN_POPS_ARGS interface. | |
763 | (cr16_compute_frame, cr16_initial_elimination_offset): Add casts | |
764 | to HOST_WIDE_INT. | |
765 | * config/ft32/ft32.c (ft32_compute_frame): Likewise. | |
766 | * config/i386/i386.c (ix86_return_pops_args): Update for new | |
767 | TARGET_RETURN_POPS_ARGS interface. | |
768 | (ix86_expand_split_stack_prologue): Add a cast to HOST_WIDE_INT. | |
769 | * config/moxie/moxie.c (moxie_compute_frame): Likewise. | |
770 | * config/m68k/m68k.c (m68k_return_pops_args): Update for new | |
771 | TARGET_RETURN_POPS_ARGS interface. | |
772 | * config/vax/vax.c (vax_return_pops_args): Likewise. | |
773 | * config/pa/pa.h (STACK_POINTER_OFFSET): Add a cast to poly_int64. | |
774 | (EXIT_IGNORE_STACK): Update reference to crtl->outgoing_args_size. | |
775 | * config/arm/arm.h (CALLER_INTERWORKING_SLOT_SIZE): Likewise. | |
776 | * config/powerpcspe/aix.h (STACK_DYNAMIC_OFFSET): Likewise. | |
777 | * config/powerpcspe/darwin.h (STACK_DYNAMIC_OFFSET): Likewise. | |
778 | * config/powerpcspe/powerpcspe.h (STACK_DYNAMIC_OFFSET): Likewise. | |
779 | * config/rs6000/aix.h (STACK_DYNAMIC_OFFSET): Likewise. | |
780 | * config/rs6000/darwin.h (STACK_DYNAMIC_OFFSET): Likewise. | |
781 | * config/rs6000/rs6000.h (STACK_DYNAMIC_OFFSET): Likewise. | |
782 | * dojump.h (saved_pending_stack_adjust): Change x_pending_stack_adjust | |
783 | and x_stack_pointer_delta from int to poly_int64. | |
784 | * dojump.c (do_pending_stack_adjust): Update accordingly. | |
785 | * explow.c (allocate_dynamic_stack_space): Handle polynomial | |
786 | stack_pointer_deltas. | |
787 | * function.c (STACK_DYNAMIC_OFFSET): Add a cast to poly_int64. | |
788 | (pad_to_arg_alignment): Track polynomial offsets. | |
789 | (assign_parm_find_stack_rtl): Likewise. | |
790 | (assign_parms, locate_and_pad_parm): Handle polynomial argument sizes. | |
791 | * toplev.c (output_stack_usage): Update reference to | |
792 | current_function_pushed_stack_size. | |
793 | ||
794 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
795 | Alan Hayward <alan.hayward@arm.com> | |
796 | David Sherwood <david.sherwood@arm.com> | |
797 | ||
798 | * function.c (in_arg_offset, var_offset, dynamic_offset) | |
799 | (out_arg_offset, cfa_offset): Change from int to poly_int64. | |
800 | (instantiate_new_reg): Return the new offset as a poly_int64_pod | |
801 | rather than a HOST_WIDE_INT. | |
802 | (instantiate_virtual_regs_in_rtx): Track polynomial offsets. | |
803 | (instantiate_virtual_regs_in_insn): Likewise. | |
804 | ||
805 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
806 | Alan Hayward <alan.hayward@arm.com> | |
807 | David Sherwood <david.sherwood@arm.com> | |
808 | ||
809 | * rtl.h (get_args_size, add_args_size_note): New functions. | |
810 | (find_args_size_adjust): Return a poly_int64 rather than a | |
811 | HOST_WIDE_INT. | |
812 | (fixup_args_size_notes): Likewise. Make the same change to the | |
813 | end_args_size parameter. | |
814 | * rtlanal.c (get_args_size, add_args_size_note): New functions. | |
815 | * builtins.c (expand_builtin_trap): Use add_args_size_note. | |
816 | * calls.c (emit_call_1): Likewise. | |
817 | * explow.c (adjust_stack_1): Likewise. | |
818 | * cfgcleanup.c (old_insns_match_p): Update use of | |
819 | find_args_size_adjust. | |
820 | * combine.c (distribute_notes): Track polynomial arg sizes. | |
821 | * dwarf2cfi.c (dw_trace_info): Change beg_true_args_size, | |
822 | end_true_args_size, beg_delay_args_size and end_delay_args_size | |
823 | from HOST_WIDE_INT to poly_int64. | |
824 | (add_cfi_args_size): Take the args_size as a poly_int64 rather | |
825 | than a HOST_WIDE_INT. | |
826 | (notice_args_size, notice_eh_throw, maybe_record_trace_start) | |
827 | (maybe_record_trace_start_abnormal, scan_trace, connect_traces): Track | |
828 | polynomial arg sizes. | |
829 | * emit-rtl.c (try_split): Use get_args_size. | |
830 | * recog.c (peep2_attempt): Likewise. | |
831 | * reload1.c (reload_as_needed): Likewise. | |
832 | * expr.c (find_args_size_adjust): Return the adjustment as a | |
833 | poly_int64 rather than a HOST_WIDE_INT. | |
834 | (fixup_args_size_notes): Change end_args_size from a HOST_WIDE_INT | |
835 | to a poly_int64 and change the return type in the same way. | |
836 | (emit_single_push_insn): Track polynomial arg sizes. | |
837 | ||
838 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
839 | Alan Hayward <alan.hayward@arm.com> | |
840 | David Sherwood <david.sherwood@arm.com> | |
841 | ||
842 | * expr.h (push_block, emit_push_insn): Change the "extra" parameter | |
843 | from HOST_WIDE_INT to poly_int64. | |
844 | * expr.c (push_block, emit_push_insn): Likewise. | |
845 | ||
846 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
847 | Alan Hayward <alan.hayward@arm.com> | |
848 | David Sherwood <david.sherwood@arm.com> | |
849 | ||
850 | * function.h (frame_space): Change start and length from HOST_WIDE_INT | |
851 | to poly_int64. | |
852 | (get_frame_size): Return the size as a poly_int64 rather than a | |
853 | HOST_WIDE_INT. | |
854 | (frame_offset_overflow): Take the offset as a poly_int64 rather | |
855 | than a HOST_WIDE_INT. | |
856 | (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type) | |
857 | (assign_stack_temp): Likewise for the size. | |
858 | * function.c (get_frame_size): Return a poly_int64 rather than | |
859 | a HOST_WIDE_INT. | |
860 | (frame_offset_overflow): Take the offset as a poly_int64 rather | |
861 | than a HOST_WIDE_INT. | |
862 | (try_fit_stack_local): Take the start, length and size as poly_int64s | |
863 | rather than HOST_WIDE_INTs. Return the offset as a poly_int64_pod | |
864 | rather than a HOST_WIDE_INT. | |
865 | (add_frame_space): Take the start and end as poly_int64s rather than | |
866 | HOST_WIDE_INTs. | |
867 | (assign_stack_local_1, assign_stack_local, assign_stack_temp_for_type) | |
868 | (assign_stack_temp): Likewise for the size. | |
869 | (temp_slot): Change size, base_offset and full_size from HOST_WIDE_INT | |
870 | to poly_int64. | |
871 | (find_temp_slot_from_address): Handle polynomial offsets. | |
872 | (combine_temp_slots): Likewise. | |
873 | * emit-rtl.h (rtl_data::x_frame_offset): Change from HOST_WIDE_INT | |
874 | to poly_int64. | |
875 | * cfgexpand.c (alloc_stack_frame_space): Return the offset as a | |
876 | poly_int64 rather than a HOST_WIDE_INT. | |
877 | (expand_one_stack_var_at): Take the offset as a poly_int64 rather | |
878 | than a HOST_WIDE_INT. | |
879 | (expand_stack_vars, expand_one_stack_var_1, expand_used_vars): Handle | |
880 | polynomial frame offsets. | |
881 | * config/m32r/m32r-protos.h (m32r_compute_frame_size): Take the size | |
882 | as a poly_int64 rather than an int. | |
883 | * config/m32r/m32r.c (m32r_compute_frame_size): Likewise. | |
884 | * config/v850/v850-protos.h (compute_frame_size): Likewise. | |
885 | * config/v850/v850.c (compute_frame_size): Likewise. | |
886 | * config/xtensa/xtensa-protos.h (compute_frame_size): Likewise. | |
887 | * config/xtensa/xtensa.c (compute_frame_size): Likewise. | |
888 | * config/pa/pa-protos.h (pa_compute_frame_size): Likewise. | |
889 | * config/pa/pa.c (pa_compute_frame_size): Likewise. | |
890 | * explow.h (get_dynamic_stack_base): Take the offset as a poly_int64 | |
891 | rather than a HOST_WIDE_INT. | |
892 | * explow.c (get_dynamic_stack_base): Likewise. | |
893 | * final.c (final_start_function): Use the constant lower bound | |
894 | of the frame size for -Wframe-larger-than. | |
895 | * ira.c (do_reload): Adjust for new get_frame_size return type. | |
896 | * lra.c (lra): Likewise. | |
897 | * reload1.c (reload): Likewise. | |
898 | * config/avr/avr.c (avr_asm_function_end_prologue): Likewise. | |
899 | * config/pa/pa.h (EXIT_IGNORE_STACK): Likewise. | |
900 | * rtlanal.c (get_initial_register_offset): Return the offset as | |
901 | a poly_int64 rather than a HOST_WIDE_INT. | |
902 | ||
903 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
904 | Alan Hayward <alan.hayward@arm.com> | |
905 | David Sherwood <david.sherwood@arm.com> | |
906 | ||
907 | * reload1.c (elim_table): Change initial_offset, offset and | |
908 | previous_offset from HOST_WIDE_INT to poly_int64_pod. | |
909 | (offsets_at): Change the target array's element type from | |
910 | HOST_WIDE_INT to poly_int64_pod. | |
911 | (set_label_offsets, eliminate_regs_1, eliminate_regs_in_insn) | |
912 | (elimination_costs_in_insn, update_eliminable_offsets) | |
913 | (verify_initial_elim_offsets, set_offsets_for_label) | |
914 | (init_eliminable_invariants): Update after above changes. | |
915 | ||
916 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
917 | Alan Hayward <alan.hayward@arm.com> | |
918 | David Sherwood <david.sherwood@arm.com> | |
919 | ||
920 | * reload.h (reload::inc): Change from an int to a poly_int64_pod. | |
921 | * reload.c (combine_reloads, debug_reload_to_stream): Likewise. | |
922 | (decomposition): Change start and end from HOST_WIDE_INT | |
923 | to poly_int64_pod. | |
924 | (decompose, immune_p): Update accordingly. | |
925 | (find_inc_amount): Return a poly_int64 rather than an int. | |
926 | * reload1.c (inc_for_reload): Take the inc_amount as a poly_int64 | |
927 | rather than an int. | |
928 | ||
929 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
930 | Alan Hayward <alan.hayward@arm.com> | |
931 | David Sherwood <david.sherwood@arm.com> | |
932 | ||
933 | * tree.h (get_inner_reference): Return the bitsize and bitpos | |
934 | as poly_int64_pods rather than HOST_WIDE_INT. | |
935 | * fold-const.h (ptr_difference_const): Return the pointer difference | |
936 | as a poly_int64_pod rather than a HOST_WIDE_INT. | |
937 | * expr.c (get_inner_reference): Return the bitsize and bitpos | |
938 | as poly_int64_pods rather than HOST_WIDE_INT. | |
939 | (expand_expr_addr_expr_1, expand_expr_real_1): Track polynomial | |
940 | offsets and sizes. | |
941 | * fold-const.c (make_bit_field_ref): Take the bitpos as a poly_int64 | |
942 | rather than a HOST_WIDE_INT. Update call to get_inner_reference. | |
943 | (optimize_bit_field_compare): Update call to get_inner_reference. | |
944 | (decode_field_reference): Likewise. | |
945 | (fold_unary_loc): Track polynomial offsets and sizes. | |
946 | (split_address_to_core_and_offset): Return the bitpos as a | |
947 | poly_int64_pod rather than a HOST_WIDE_INT. | |
948 | (ptr_difference_const): Likewise for the pointer difference. | |
949 | * asan.c (instrument_derefs): Track polynomial offsets and sizes. | |
950 | * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise. | |
951 | * dbxout.c (dbxout_expand_expr): Likewise. | |
952 | * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref) | |
953 | (loc_list_from_tree_1, fortran_common): Likewise. | |
954 | * gimple-laddress.c (pass_laddress::execute): Likewise. | |
955 | * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Likewise. | |
956 | * gimplify.c (gimplify_scan_omp_clauses): Likewise. | |
957 | * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. | |
958 | * tree-affine.c (tree_to_aff_combination): Likewise. | |
959 | (get_inner_reference_aff): Likewise. | |
960 | * tree-data-ref.c (split_constant_offset_1): Likewise. | |
961 | (dr_analyze_innermost): Likewise. | |
962 | * tree-scalar-evolution.c (interpret_rhs_expr): Likewise. | |
963 | * tree-sra.c (ipa_sra_check_caller): Likewise. | |
964 | * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise. | |
965 | * ubsan.c (maybe_instrument_pointer_overflow): Likewise. | |
966 | (instrument_bool_enum_load, instrument_object_size): Likewise. | |
967 | * gimple-ssa-strength-reduction.c (slsr_process_ref): Update call | |
968 | to get_inner_reference. | |
969 | * hsa-gen.c (gen_hsa_addr): Likewise. | |
970 | * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. | |
971 | * tsan.c (instrument_expr): Likewise. | |
972 | * match.pd: Update call to ptr_difference_const. | |
973 | ||
974 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
975 | Alan Hayward <alan.hayward@arm.com> | |
976 | David Sherwood <david.sherwood@arm.com> | |
977 | ||
978 | * fold-const.c (fold_comparison): Track sizes and offsets as | |
979 | poly_int64s rather than HOST_WIDE_INTs when folding address | |
980 | comparisons. | |
981 | ||
982 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
983 | Alan Hayward <alan.hayward@arm.com> | |
984 | David Sherwood <david.sherwood@arm.com> | |
985 | ||
986 | * expr.h (get_bit_range): Return the bitstart and bitend as | |
987 | poly_uint64s rather than unsigned HOST_WIDE_INTs. Return the bitpos | |
988 | as a poly_int64 rather than a HOST_WIDE_INT. | |
989 | * expr.c (get_bit_range): Likewise. | |
990 | (expand_assignment): Update call accordingly. | |
991 | * fold-const.c (optimize_bit_field_compare): Likewise. | |
992 | ||
993 | 2017-12-21 Richard Sandiford <richard.sandiford@linaro.org> | |
994 | Alan Hayward <alan.hayward@arm.com> | |
995 | David Sherwood <david.sherwood@arm.com> | |
996 | ||
997 | * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): New enum. | |
998 | (aarch64_legitimate_address_p): Use it instead of an rtx code, | |
999 | as an optional final parameter. | |
1000 | * config/aarch64/aarch64.c (aarch64_classify_address): Likewise. | |
1001 | (aarch64_legitimate_address_p): Likewise. | |
1002 | (aarch64_print_address_internal): Take an aarch64_addr_query_type | |
1003 | instead of an rtx code. | |
1004 | (aarch64_address_valid_for_prefetch_p): Update calls accordingly. | |
1005 | (aarch64_legitimate_address_hook_p): Likewise. | |
1006 | (aarch64_print_ldpstp_address): Likewise. | |
1007 | (aarch64_print_operand_address): Likewise. | |
1008 | (aarch64_address_cost): Likewise. | |
1009 | * config/aarch64/constraints.md (Uml, Umq, Ump, Utq): Likewise. | |
1010 | * config/aarch64/predicates.md (aarch64_mem_pair_operand): Likewise. | |
1011 | (aarch64_mem_pair_lanes_operand): Likewise. | |
1012 | ||
1013 | 2017-12-20 Richard Biener <rguenther@suse.de> | |
1014 | ||
1015 | * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Call | |
1016 | update_stmt_if_modified. | |
1017 | ||
1018 | 2017-12-20 Wilco Dijkstra <wdijkstr@arm.com> | |
1019 | ||
1020 | PR tree-optimization/83491 | |
1021 | * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Check for SSA_NAME | |
1022 | before walking uses. Improve coding style and comments. | |
1023 | ||
1024 | 2017-12-20 Tom de Vries <tom@codesourcery.com> | |
1025 | ||
1026 | * gimple-fold.c (fold_internal_goacc_dim): Simplify. | |
1027 | ||
1028 | 2017-12-20 Jakub Jelinek <jakub@redhat.com> | |
1029 | ||
1030 | PR ipa/83506 | |
1031 | * ipa-fnsummary.c (pass_data_ipa_free_fn_summary): Use 0 for | |
1032 | todo_flags_finish. | |
1033 | (pass_ipa_free_fn_summary): Add small_p private data member, | |
1034 | initialize to false in the ctor. | |
1035 | (pass_ipa_free_fn_summary::clone, | |
1036 | pass_ipa_free_fn_summary::set_pass_param, | |
1037 | pass_ipa_free_fn_summary::gate): New methods. | |
1038 | (pass_ipa_free_fn_summary::execute): Return TODO_remove_functions | |
1039 | | TODO_dump_symtab if small_p. | |
1040 | * passes.def: Add true parm for the existing pass_ipa_free_fn_summary | |
1041 | entry and add another instance of the pass with false parm after | |
1042 | ipa-pure-const. | |
1043 | * ipa-pure-const.c (pass_ipa_pure_const): Don't call | |
1044 | ipa_free_fn_summary here. | |
1045 | ||
1046 | 2017-12-20 Paolo Carlini <paolo.carlini@oracle.com> | |
1047 | ||
1048 | * gimplify.c (gimplify_return_expr): Remove dead error_mark_node check. | |
1049 | ||
1050 | 2017-12-20 Martin Sebor <msebor@redhat.com> | |
1051 | ||
1052 | PR testsuite/83131 | |
1053 | * builtins.c (expand_builtin_strlen): Use get_callee_fndecl. | |
1054 | (expand_builtin_strcmp): Call maybe_warn_nonstring_arg. | |
1055 | (expand_builtin_strncmp): Same. | |
1056 | ||
1057 | 2017-12-20 Alexandre Oliva <aoliva@redhat.com> | |
1058 | ||
1059 | PR bootstrap/83396 | |
1060 | * cfgexpand.c (label_rtx_for_bb): Revert SFN changes that | |
1061 | allowed debug stmts before labels. | |
1062 | (expand_gimple_basic_block): Likewise. | |
1063 | * gimple-iterator.c (gimple_find_edge_insert_loc): Likewise. | |
1064 | * gimple-iterator.h (gsi_after_labels): Likewise. | |
1065 | * tree-cfgcleanup (remove_forwarder_block): Likewise, but | |
1066 | rename reused variable, and simplify using gsi_move_before. | |
1067 | * tree-ssa-tail-merge.c (find_duplicate): Likewise. | |
1068 | * tree-cfg.c (make_edges, cleanup_dead_labels): Likewise. | |
1069 | (gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise. | |
1070 | (gimple_verify_flow_info, gimple_block_label): Likewise. | |
1071 | (make_blocks): Move debug markers after adjacent labels. | |
1072 | * cfgrtl.c (skip_insns_after_block): Revert SFN changes that | |
1073 | allowed debug insns outside blocks. | |
1074 | * df-scan.c (df_insn_delete): Likewise. | |
1075 | * lra-constraints.c (update_ebb_live_info): Likewise. | |
1076 | * var-tracking.c (get_first_insn, vt_emit_notes): Likewise. | |
1077 | (vt_initialize, delete_vta_debug_insns): Likewise. | |
1078 | (reemit_marker_as_note): Drop BB parm. Adjust callers. | |
1079 | ||
1080 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1081 | Alan Hayward <alan.hayward@arm.com> | |
1082 | David Sherwood <david.sherwood@arm.com> | |
1083 | ||
1084 | * poly-int-types.h (round_down_to_byte_boundary): New macro. | |
1085 | (round_up_to_byte_boundary): Likewise. | |
1086 | * expr.h (get_bit_range): Add temporary shim. | |
1087 | * gimple-ssa-store-merging.c (store_operand_info): Change the | |
1088 | bitsize, bitpos, bitregion_start and bitregion_end fields from | |
1089 | unsigned HOST_WIDE_INT to poly_uint64. | |
1090 | (merged_store_group): Likewise load_align_base. | |
1091 | (compatible_load_p, compatible_load_p): Update accordingly. | |
1092 | (imm_store_chain_info::coalesce_immediate_stores): Likewise. | |
1093 | (split_group, imm_store_chain_info::output_merged_store): Likewise. | |
1094 | (mem_valid_for_store_merging): Return the bitsize, bitpos, | |
1095 | bitregion_start and bitregion_end as poly_uint64s rather than | |
1096 | unsigned HOST_WIDE_INTs. Track polynomial offsets internally. | |
1097 | (handled_load): Take the bitsize, bitpos, | |
1098 | bitregion_start and bitregion_end as poly_uint64s rather than | |
1099 | unsigned HOST_WIDE_INTs. | |
1100 | (pass_store_merging::process_store): Update call to | |
1101 | mem_valid_for_store_merging. | |
1102 | ||
1103 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1104 | Alan Hayward <alan.hayward@arm.com> | |
1105 | David Sherwood <david.sherwood@arm.com> | |
1106 | ||
1107 | * builtins.c (get_object_alignment_2): Track polynomial offsets | |
1108 | and sizes. Update the alignment handling. | |
1109 | ||
1110 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1111 | Alan Hayward <alan.hayward@arm.com> | |
1112 | David Sherwood <david.sherwood@arm.com> | |
1113 | ||
1114 | * tree.h (get_inner_reference): Add a version that returns the | |
1115 | offset and size as poly_int64_pods rather than HOST_WIDE_INTs. | |
1116 | * cfgexpand.c (expand_debug_expr): Track polynomial offsets. Simply | |
1117 | the case in which bitpos is not associated with the first byte. | |
1118 | ||
1119 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1120 | Alan Hayward <alan.hayward@arm.com> | |
1121 | David Sherwood <david.sherwood@arm.com> | |
1122 | ||
1123 | * tree-affine.h (get_inner_reference_aff): Return the size as a | |
1124 | poly_widest_int. | |
1125 | * tree-affine.c (get_inner_reference_aff): Likewise. | |
1126 | * tree-data-ref.c (dr_may_alias_p): Update accordingly. | |
1127 | * tree-ssa-loop-im.c (mem_refs_may_alias_p): Likewise. | |
1128 | ||
1129 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1130 | Alan Hayward <alan.hayward@arm.com> | |
1131 | David Sherwood <david.sherwood@arm.com> | |
1132 | ||
1133 | * fold-const.c (pointer_may_wrap_p): Take the offset as a | |
1134 | HOST_WIDE_INT rather than a poly_int64. | |
1135 | ||
1136 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1137 | Alan Hayward <alan.hayward@arm.com> | |
1138 | David Sherwood <david.sherwood@arm.com> | |
1139 | ||
1140 | * gimple-ssa-store-merging.c (symbolic_number::bytepos): Change from | |
1141 | HOST_WIDE_INT to poly_int64_pod. | |
1142 | (perform_symbolic_merge): Update accordingly. | |
1143 | (bswap_replace): Likewise. | |
1144 | ||
1145 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1146 | Alan Hayward <alan.hayward@arm.com> | |
1147 | David Sherwood <david.sherwood@arm.com> | |
1148 | ||
1149 | * tree-affine.h (aff_tree::offset): Change from widest_int | |
1150 | to poly_widest_int. | |
1151 | (wide_int_ext_for_comb): Delete. | |
1152 | (aff_combination_const, aff_comb_cannot_overlap_p): Take the | |
1153 | constants as poly_widest_int rather than widest_int. | |
1154 | (aff_combination_constant_multiple_p): Return the multiplier | |
1155 | as a poly_widest_int. | |
1156 | (aff_combination_zero_p, aff_combination_singleton_var_p): Handle | |
1157 | polynomial offsets. | |
1158 | * tree-affine.c (wide_int_ext_for_comb): Make original widest_int | |
1159 | version static and add an overload for poly_widest_int. | |
1160 | (aff_combination_const, aff_combination_add_cst) | |
1161 | (wide_int_constant_multiple_p, aff_comb_cannot_overlap_p): Take | |
1162 | the constants as poly_widest_int rather than widest_int. | |
1163 | (tree_to_aff_combination): Generalize INTEGER_CST case to | |
1164 | poly_int_tree_p. | |
1165 | (aff_combination_to_tree): Track offsets as poly_widest_ints. | |
1166 | (aff_combination_add_product, aff_combination_mult): Handle | |
1167 | polynomial offsets. | |
1168 | (aff_combination_constant_multiple_p): Return the multiplier | |
1169 | as a poly_widest_int. | |
1170 | * tree-predcom.c (determine_offset): Return the offset as a | |
1171 | poly_widest_int. | |
1172 | (split_data_refs_to_components, suitable_component_p): Update | |
1173 | accordingly. | |
1174 | (valid_initializer_p): Update call to | |
1175 | aff_combination_constant_multiple_p. | |
1176 | * tree-ssa-address.c (addr_to_parts): Handle polynomial offsets. | |
1177 | * tree-ssa-loop-ivopts.c (get_address_cost_ainc): Take the step | |
1178 | as a poly_int64 rather than a HOST_WIDE_INT. | |
1179 | (get_address_cost): Handle polynomial offsets. | |
1180 | (iv_elimination_compare_lt): Likewise. | |
1181 | (rewrite_use_nonlinear_expr): Likewise. | |
1182 | ||
1183 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1184 | Alan Hayward <alan.hayward@arm.com> | |
1185 | David Sherwood <david.sherwood@arm.com> | |
1186 | ||
1187 | * tree-dfa.h (get_addr_base_and_unit_offset_1): Return the offset | |
1188 | as a poly_int64_pod rather than a HOST_WIDE_INT. | |
1189 | (get_addr_base_and_unit_offset): Likewise. | |
1190 | * tree-dfa.c (get_addr_base_and_unit_offset_1): Likewise. | |
1191 | (get_addr_base_and_unit_offset): Likewise. | |
1192 | * doc/match-and-simplify.texi: Change off from HOST_WIDE_INT | |
1193 | to poly_int64 in example. | |
1194 | * fold-const.c (fold_binary_loc): Update call to | |
1195 | get_addr_base_and_unit_offset. | |
1196 | * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. | |
1197 | (maybe_canonicalize_mem_ref_addr): Likewise. | |
1198 | (gimple_fold_stmt_to_constant_1): Likewise. | |
1199 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): | |
1200 | Likewise. | |
1201 | * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise. | |
1202 | * match.pd: Likewise. | |
1203 | * omp-low.c (lower_omp_target): Likewise. | |
1204 | * tree-sra.c (build_ref_for_offset): Likewise. | |
1205 | (build_debug_ref_for_model): Likewise. | |
1206 | * tree-ssa-address.c (maybe_fold_tmr): Likewise. | |
1207 | * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise. | |
1208 | * tree-ssa-ccp.c (optimize_memcpy): Likewise. | |
1209 | * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. | |
1210 | (constant_pointer_difference): Likewise. | |
1211 | * tree-ssa-loop-niter.c (expand_simple_operations): Likewise. | |
1212 | * tree-ssa-phiopt.c (jump_function_from_stmt): Likewise. | |
1213 | * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise. | |
1214 | * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise. | |
1215 | (vn_reference_maybe_forwprop_address, vn_reference_lookup_3): Likewise. | |
1216 | (set_ssa_val_to): Likewise. | |
1217 | * tree-ssa-strlen.c (get_addr_stridx, addr_stridxptr) | |
1218 | (maybe_diag_stxncpy_trunc): Likewise. | |
1219 | * tree-vrp.c (vrp_prop::check_array_ref): Likewise. | |
1220 | * tree.c (build_simple_mem_ref_loc): Likewise. | |
1221 | (array_at_struct_end_p): Likewise. | |
1222 | ||
1223 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1224 | Alan Hayward <alan.hayward@arm.com> | |
1225 | David Sherwood <david.sherwood@arm.com> | |
1226 | ||
1227 | * tree-dfa.h (get_ref_base_and_extent): Return the base, size and | |
1228 | max_size as poly_int64_pods rather than HOST_WIDE_INTs. | |
1229 | (get_ref_base_and_extent_hwi): Declare. | |
1230 | * tree-dfa.c (get_ref_base_and_extent): Return the base, size and | |
1231 | max_size as poly_int64_pods rather than HOST_WIDE_INTs. | |
1232 | (get_ref_base_and_extent_hwi): New function. | |
1233 | * cfgexpand.c (expand_debug_expr): Update call to | |
1234 | get_ref_base_and_extent. | |
1235 | * dwarf2out.c (add_var_loc_to_decl): Likewise. | |
1236 | * gimple-fold.c (get_base_constructor): Return the offset as a | |
1237 | poly_int64_pod rather than a HOST_WIDE_INT. | |
1238 | (fold_const_aggregate_ref_1): Track polynomial sizes and offsets. | |
1239 | * ipa-polymorphic-call.c | |
1240 | (ipa_polymorphic_call_context::set_by_invariant) | |
1241 | (extr_type_from_vtbl_ptr_store): Track polynomial offsets. | |
1242 | (ipa_polymorphic_call_context::ipa_polymorphic_call_context) | |
1243 | (check_stmt_for_type_change): Use get_ref_base_and_extent_hwi | |
1244 | rather than get_ref_base_and_extent. | |
1245 | (ipa_polymorphic_call_context::get_dynamic_type): Likewise. | |
1246 | * ipa-prop.c (ipa_load_from_parm_agg, compute_complex_assign_jump_func) | |
1247 | (get_ancestor_addr_info, determine_locally_known_aggregate_parts): | |
1248 | Likewise. | |
1249 | * ipa-param-manipulation.c (ipa_get_adjustment_candidate): Update | |
1250 | call to get_ref_base_and_extent. | |
1251 | * tree-sra.c (create_access, get_access_for_expr): Likewise. | |
1252 | * tree-ssa-alias.c (ao_ref_base, aliasing_component_refs_p) | |
1253 | (stmt_kills_ref_p): Likewise. | |
1254 | * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. | |
1255 | * tree-ssa-scopedtables.c (avail_expr_hash, equal_mem_array_ref_p): | |
1256 | Likewise. | |
1257 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise. | |
1258 | Use get_ref_base_and_extent_hwi rather than get_ref_base_and_extent | |
1259 | when calling native_encode_expr. | |
1260 | * tree-ssa-structalias.c (get_constraint_for_component_ref): Update | |
1261 | call to get_ref_base_and_extent. | |
1262 | (do_structure_copy): Use get_ref_base_and_extent_hwi rather than | |
1263 | get_ref_base_and_extent. | |
1264 | * var-tracking.c (track_expr_p): Likewise. | |
1265 | ||
1266 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1267 | Alan Hayward <alan.hayward@arm.com> | |
1268 | David Sherwood <david.sherwood@arm.com> | |
1269 | ||
1270 | * ipa-param-manipulation.h (ipa_parm_adjustment::offset): Change from | |
1271 | HOST_WIDE_INT to poly_int64_pod. | |
1272 | * ipa-param-manipulation.c (ipa_modify_call_arguments): Track | |
1273 | polynomail parameter offsets. | |
1274 | ||
1275 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1276 | Alan Hayward <alan.hayward@arm.com> | |
1277 | David Sherwood <david.sherwood@arm.com> | |
1278 | ||
1279 | * gengtype.c (main): Handle poly_int64_pod. | |
1280 | * dwarf2out.h (dw_cfi_oprnd_cfa_loc): New dw_cfi_oprnd_type. | |
1281 | (dw_cfi_oprnd::dw_cfi_cfa_loc): New field. | |
1282 | (dw_cfa_location::offset, dw_cfa_location::base_offset): Change | |
1283 | from HOST_WIDE_INT to poly_int64_pod. | |
1284 | * dwarf2cfi.c (queued_reg_save::cfa_offset): Likewise. | |
1285 | (copy_cfa): New function. | |
1286 | (lookup_cfa_1): Use the cached dw_cfi_cfa_loc, if it exists. | |
1287 | (cfi_oprnd_equal_p): Handle dw_cfi_oprnd_cfa_loc. | |
1288 | (cfa_equal_p, dwarf2out_frame_debug_adjust_cfa) | |
1289 | (dwarf2out_frame_debug_cfa_offset, dwarf2out_frame_debug_expr) | |
1290 | (initial_return_save): Treat offsets as poly_ints. | |
1291 | (def_cfa_0): Likewise. Cache the CFA in dw_cfi_cfa_loc if either | |
1292 | offset is nonconstant. | |
1293 | (reg_save): Take the offset as a poly_int64. Fall back to | |
1294 | DW_CFA_expression for nonconstant offsets. | |
1295 | (queue_reg_save): Take the offset as a poly_int64. | |
1296 | * dwarf2out.c (dw_cfi_oprnd2_desc): Handle DW_CFA_def_cfa_expression. | |
1297 | ||
1298 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1299 | Alan Hayward <alan.hayward@arm.com> | |
1300 | David Sherwood <david.sherwood@arm.com> | |
1301 | ||
1302 | * rtl.h (operand_subword, operand_subword_force): Take the offset | |
1303 | as a poly_uint64 an unsigned int. | |
1304 | * emit-rtl.c (operand_subword, operand_subword_force): Likewise. | |
1305 | ||
1306 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1307 | Alan Hayward <alan.hayward@arm.com> | |
1308 | David Sherwood <david.sherwood@arm.com> | |
1309 | ||
1310 | * doc/rtl.texi: Update documentation of SUBREG_BYTE. Document the | |
1311 | 'p' format code. Use INT_LIST rather than SUBREG as the example of | |
1312 | a code with an XINT and an XEXP. Remove the implication that | |
1313 | accessing an rtx field using XINT is expected to work. | |
1314 | * rtl.def (SUBREG): Change format from "ei" to "ep". | |
1315 | * rtl.h (rtunion::rt_subreg): New field. | |
1316 | (XCSUBREG): New macro. | |
1317 | (SUBREG_BYTE): Use it. | |
1318 | (subreg_shape): Change offset from an unsigned int to a poly_uint16. | |
1319 | Update constructor accordingly. | |
1320 | (subreg_shape::operator ==): Update accordingly. | |
1321 | (subreg_shape::unique_id): Return an unsigned HOST_WIDE_INT rather | |
1322 | than an unsigned int. | |
1323 | (subreg_lsb, subreg_lowpart_offset, subreg_highpart_offset): Return | |
1324 | a poly_uint64 rather than an unsigned int. | |
1325 | (subreg_lsb_1): Likewise. Take the offset as a poly_uint64 rather | |
1326 | than an unsigned int. | |
1327 | (subreg_size_offset_from_lsb, subreg_size_lowpart_offset) | |
1328 | (subreg_size_highpart_offset): Return a poly_uint64 rather than | |
1329 | an unsigned int. Take the sizes as poly_uint64s. | |
1330 | (subreg_offset_from_lsb): Return a poly_uint64 rather than | |
1331 | an unsigned int. Take the shift as a poly_uint64 rather than | |
1332 | an unsigned int. | |
1333 | (subreg_regno_offset, subreg_offset_representable_p): Take the offset | |
1334 | as a poly_uint64 rather than an unsigned int. | |
1335 | (simplify_subreg_regno): Likewise. | |
1336 | (byte_lowpart_offset): Return the memory offset as a poly_int64 | |
1337 | rather than an int. | |
1338 | (subreg_memory_offset): Likewise. Take the subreg offset as a | |
1339 | poly_uint64 rather than an unsigned int. | |
1340 | (simplify_subreg, simplify_gen_subreg, subreg_get_info) | |
1341 | (gen_rtx_SUBREG, validate_subreg): Take the subreg offset as a | |
1342 | poly_uint64 rather than an unsigned int. | |
1343 | * rtl.c (rtx_format): Describe 'p' in comment. | |
1344 | (copy_rtx, rtx_equal_p_cb, rtx_equal_p): Handle 'p'. | |
1345 | * emit-rtl.c (validate_subreg, gen_rtx_SUBREG): Take the subreg | |
1346 | offset as a poly_uint64 rather than an unsigned int. | |
1347 | (byte_lowpart_offset): Return the memory offset as a poly_int64 | |
1348 | rather than an int. | |
1349 | (subreg_memory_offset): Likewise. Take the subreg offset as a | |
1350 | poly_uint64 rather than an unsigned int. | |
1351 | (subreg_size_lowpart_offset, subreg_size_highpart_offset): Take the | |
1352 | mode sizes as poly_uint64s rather than unsigned ints. Return a | |
1353 | poly_uint64 rather than an unsigned int. | |
1354 | (subreg_lowpart_p): Treat subreg offsets as poly_ints. | |
1355 | (copy_insn_1): Handle 'p'. | |
1356 | * rtlanal.c (set_noop_p): Treat subregs offsets as poly_uint64s. | |
1357 | (subreg_lsb_1): Take the subreg offset as a poly_uint64 rather than | |
1358 | an unsigned int. Return the shift in the same way. | |
1359 | (subreg_lsb): Return the shift as a poly_uint64 rather than an | |
1360 | unsigned int. | |
1361 | (subreg_size_offset_from_lsb): Take the sizes and shift as | |
1362 | poly_uint64s rather than unsigned ints. Return the offset as | |
1363 | a poly_uint64. | |
1364 | (subreg_get_info, subreg_regno_offset, subreg_offset_representable_p) | |
1365 | (simplify_subreg_regno): Take the offset as a poly_uint64 rather than | |
1366 | an unsigned int. | |
1367 | * rtlhash.c (add_rtx): Handle 'p'. | |
1368 | * genemit.c (gen_exp): Likewise. | |
1369 | * gengenrtl.c (type_from_format, gendef): Likewise. | |
1370 | * gensupport.c (subst_pattern_match, get_alternatives_number) | |
1371 | (collect_insn_data, alter_predicate_for_insn, alter_constraints) | |
1372 | (subst_dup): Likewise. | |
1373 | * gengtype.c (adjust_field_rtx_def): Likewise. | |
1374 | * genrecog.c (find_operand, find_matching_operand, validate_pattern) | |
1375 | (match_pattern_2): Likewise. | |
1376 | (rtx_test::SUBREG_FIELD): New rtx_test::kind_enum. | |
1377 | (rtx_test::subreg_field): New function. | |
1378 | (operator ==, safe_to_hoist_p, transition_parameter_type) | |
1379 | (print_nonbool_test, print_test): Handle SUBREG_FIELD. | |
1380 | * genattrtab.c (attr_rtx_1): Say that 'p' is deliberately not handled. | |
1381 | * genpeep.c (match_rtx): Likewise. | |
1382 | * print-rtl.c (print_poly_int): Include if GENERATOR_FILE too. | |
1383 | (rtx_writer::print_rtx_operand): Handle 'p'. | |
1384 | (print_value): Handle SUBREG. | |
1385 | * read-rtl.c (apply_int_iterator): Likewise. | |
1386 | (rtx_reader::read_rtx_operand): Handle 'p'. | |
1387 | * alias.c (rtx_equal_for_memref_p): Likewise. | |
1388 | * cselib.c (rtx_equal_for_cselib_1, cselib_hash_rtx): Likewise. | |
1389 | * caller-save.c (replace_reg_with_saved_mem): Treat subreg offsets | |
1390 | as poly_ints. | |
1391 | * calls.c (expand_call): Likewise. | |
1392 | * combine.c (combine_simplify_rtx, expand_field_assignment): Likewise. | |
1393 | (make_extraction, gen_lowpart_for_combine): Likewise. | |
1394 | * loop-invariant.c (hash_invariant_expr_1, invariant_expr_equal_p): | |
1395 | Likewise. | |
1396 | * cse.c (remove_invalid_subreg_refs): Take the offset as a poly_uint64 | |
1397 | rather than an unsigned int. Treat subreg offsets as poly_ints. | |
1398 | (exp_equiv_p): Handle 'p'. | |
1399 | (hash_rtx_cb): Likewise. Treat subreg offsets as poly_ints. | |
1400 | (equiv_constant, cse_insn): Treat subreg offsets as poly_ints. | |
1401 | * dse.c (find_shift_sequence): Likewise. | |
1402 | * dwarf2out.c (rtl_for_decl_location): Likewise. | |
1403 | * expmed.c (extract_low_bits): Likewise. | |
1404 | * expr.c (emit_group_store, undefined_operand_subword_p): Likewise. | |
1405 | (expand_expr_real_2): Likewise. | |
1406 | * final.c (alter_subreg): Likewise. | |
1407 | (leaf_renumber_regs_insn): Handle 'p'. | |
1408 | * function.c (assign_parm_find_stack_rtl, assign_parm_setup_stack): | |
1409 | Treat subreg offsets as poly_ints. | |
1410 | * fwprop.c (forward_propagate_and_simplify): Likewise. | |
1411 | * ifcvt.c (noce_emit_move_insn, noce_emit_cmove): Likewise. | |
1412 | * ira.c (get_subreg_tracking_sizes): Likewise. | |
1413 | * ira-conflicts.c (go_through_subreg): Likewise. | |
1414 | * ira-lives.c (process_single_reg_class_operands): Likewise. | |
1415 | * jump.c (rtx_renumbered_equal_p): Likewise. Handle 'p'. | |
1416 | * lower-subreg.c (simplify_subreg_concatn): Take the subreg offset | |
1417 | as a poly_uint64 rather than an unsigned int. | |
1418 | (simplify_gen_subreg_concatn, resolve_simple_move): Treat | |
1419 | subreg offsets as poly_ints. | |
1420 | * lra-constraints.c (operands_match_p): Handle 'p'. | |
1421 | (match_reload, curr_insn_transform): Treat subreg offsets as poly_ints. | |
1422 | * lra-spills.c (assign_mem_slot): Likewise. | |
1423 | * postreload.c (move2add_valid_value_p): Likewise. | |
1424 | * recog.c (general_operand, indirect_operand): Likewise. | |
1425 | * regcprop.c (copy_value, maybe_mode_change): Likewise. | |
1426 | (copyprop_hardreg_forward_1): Likewise. | |
1427 | * reginfo.c (simplifiable_subregs_hasher::hash, simplifiable_subregs) | |
1428 | (record_subregs_of_mode): Likewise. | |
1429 | * rtlhooks.c (gen_lowpart_general, gen_lowpart_if_possible): Likewise. | |
1430 | * reload.c (operands_match_p): Handle 'p'. | |
1431 | (find_reloads_subreg_address): Treat subreg offsets as poly_ints. | |
1432 | * reload1.c (alter_reg, choose_reload_regs): Likewise. | |
1433 | (compute_reload_subreg_offset): Likewise, and return an poly_int64. | |
1434 | * simplify-rtx.c (simplify_truncation, simplify_binary_operation_1): | |
1435 | (test_vector_ops_duplicate): Treat subreg offsets as poly_ints. | |
1436 | (simplify_const_poly_int_tests<N>::run): Likewise. | |
1437 | (simplify_subreg, simplify_gen_subreg): Take the subreg offset as | |
1438 | a poly_uint64 rather than an unsigned int. | |
1439 | * valtrack.c (debug_lowpart_subreg): Likewise. | |
1440 | * var-tracking.c (var_lowpart): Likewise. | |
1441 | (loc_cmp): Handle 'p'. | |
1442 | ||
1443 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1444 | Alan Hayward <alan.hayward@arm.com> | |
1445 | David Sherwood <david.sherwood@arm.com> | |
1446 | ||
1447 | * ira.c (get_subreg_tracking_sizes): New function. | |
1448 | (init_live_subregs): Take an integer size rather than a register. | |
1449 | (build_insn_chain): Use get_subreg_tracking_sizes. Update calls | |
1450 | to init_live_subregs. | |
1451 | ||
1452 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1453 | Alan Hayward <alan.hayward@arm.com> | |
1454 | David Sherwood <david.sherwood@arm.com> | |
1455 | ||
1456 | * expr.c (store_constructor_field): Change bitsize from a | |
1457 | unsigned HOST_WIDE_INT to a poly_uint64 and bitpos from a | |
1458 | HOST_WIDE_INT to a poly_int64. | |
1459 | (store_constructor): Change size from a HOST_WIDE_INT to | |
1460 | a poly_int64. | |
1461 | (store_field): Likewise bitsize and bitpos. | |
1462 | ||
1463 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1464 | Alan Hayward <alan.hayward@arm.com> | |
1465 | David Sherwood <david.sherwood@arm.com> | |
1466 | ||
1467 | * expmed.h (store_bit_field): Change bitregion_start and | |
1468 | bitregion_end from unsigned HOST_WIDE_INT to poly_uint64. | |
1469 | * expmed.c (adjust_bit_field_mem_for_reg, strict_volatile_bitfield_p) | |
1470 | (store_bit_field_1, store_integral_bit_field, store_bit_field) | |
1471 | (store_fixed_bit_field, store_split_bit_field): Likewise. | |
1472 | * expr.c (store_constructor_field, store_field): Likewise. | |
1473 | (optimize_bitfield_assignment_op): Likewise. Make the same change | |
1474 | to bitsize and bitpos. | |
1475 | * machmode.h (bit_field_mode_iterator): Change m_bitregion_start | |
1476 | and m_bitregion_end from HOST_WIDE_INT to poly_int64. Make the | |
1477 | same change in the constructor arguments. | |
1478 | (get_best_mode): Change bitregion_start and bitregion_end from | |
1479 | unsigned HOST_WIDE_INT to poly_uint64. | |
1480 | * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): | |
1481 | Change bitregion_start and bitregion_end from HOST_WIDE_INT to | |
1482 | poly_int64. | |
1483 | (bit_field_mode_iterator::next_mode): Update for new types | |
1484 | of m_bitregion_start and m_bitregion_end. | |
1485 | (get_best_mode): Change bitregion_start and bitregion_end from | |
1486 | unsigned HOST_WIDE_INT to poly_uint64. | |
1487 | ||
1488 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1489 | Alan Hayward <alan.hayward@arm.com> | |
1490 | David Sherwood <david.sherwood@arm.com> | |
1491 | ||
1492 | * rtl.h (simplify_gen_subreg): Add a temporary overload that | |
1493 | accepts poly_uint64 offsets. | |
1494 | * expmed.h (extract_bit_field): Take bitsize and bitnum as | |
1495 | poly_uint64s rather than unsigned HOST_WIDE_INTs. | |
1496 | * expmed.c (lowpart_bit_field_p): Likewise. | |
1497 | (extract_bit_field_as_subreg): New function, split out from... | |
1498 | (extract_bit_field_1): ...here. Take bitsize and bitnum as | |
1499 | poly_uint64s rather than unsigned HOST_WIDE_INTs. For vector | |
1500 | extractions, check that BITSIZE matches the size of the extracted | |
1501 | value and that BITNUM is an exact multiple of that size. | |
1502 | If all else fails, try forcing the value into memory if | |
1503 | BITNUM is variable, and adjusting the address so that the | |
1504 | offset is constant. Split the part that can only handle constant | |
1505 | bitsize and bitnum out into... | |
1506 | (extract_integral_bit_field): ...this new function. | |
1507 | (extract_bit_field): Take bitsize and bitnum as poly_uint64s | |
1508 | rather than unsigned HOST_WIDE_INTs. | |
1509 | ||
1510 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1511 | Alan Hayward <alan.hayward@arm.com> | |
1512 | David Sherwood <david.sherwood@arm.com> | |
1513 | ||
1514 | * expmed.h (store_bit_field): Take bitsize and bitnum as | |
1515 | poly_uint64s rather than unsigned HOST_WIDE_INTs. | |
1516 | * expmed.c (simple_mem_bitfield_p): Likewise. Add a parameter | |
1517 | that returns the byte size. | |
1518 | (store_bit_field_1): Take bitsize and bitnum as | |
1519 | poly_uint64s rather than unsigned HOST_WIDE_INTs. Update call | |
1520 | to simple_mem_bitfield_p. Split the part that can only handle | |
1521 | constant bitsize and bitnum out into... | |
1522 | (store_integral_bit_field): ...this new function. | |
1523 | (store_bit_field): Take bitsize and bitnum as poly_uint64s rather | |
1524 | than unsigned HOST_WIDE_INTs. | |
1525 | (extract_bit_field_1): Update call to simple_mem_bitfield_p. | |
1526 | ||
1527 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1528 | Alan Hayward <alan.hayward@arm.com> | |
1529 | David Sherwood <david.sherwood@arm.com> | |
1530 | ||
1531 | * lra-int.h (lra_reg): Change offset from int to poly_int64. | |
1532 | (lra_insn_recog_data): Change sp_offset from HOST_WIDE_INT | |
1533 | to poly_int64. | |
1534 | (lra_eliminate_regs_1, eliminate_regs_in_insn): Change | |
1535 | update_sp_offset from a HOST_WIDE_INT to a poly_int64. | |
1536 | (lra_update_reg_val_offset, lra_reg_val_equal_p): Take the | |
1537 | offset as a poly_int64 rather than an int. | |
1538 | * lra-assigns.c (find_hard_regno_for_1): Handle poly_int64 offsets. | |
1539 | (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. | |
1540 | * lra-constraints.c (equiv_address_substitution): Track offsets | |
1541 | as poly_int64s. | |
1542 | (emit_inc): Check poly_int_rtx_p instead of CONST_INT_P. | |
1543 | (curr_insn_transform): Handle the new form of sp_offset. | |
1544 | * lra-eliminations.c (lra_elim_table): Change previous_offset | |
1545 | and offset from HOST_WIDE_INT to poly_int64. | |
1546 | (print_elim_table, update_reg_eliminate): Update accordingly. | |
1547 | (self_elim_offsets): Change from HOST_WIDE_INT to poly_int64_pod. | |
1548 | (get_elimination): Update accordingly. | |
1549 | (form_sum): Check poly_int_rtx_p instead of CONST_INT_P. | |
1550 | (lra_eliminate_regs_1, eliminate_regs_in_insn): Change | |
1551 | update_sp_offset from a HOST_WIDE_INT to a poly_int64. Handle | |
1552 | poly_int64 offsets generally. | |
1553 | (curr_sp_change): Change from HOST_WIDE_INT to poly_int64. | |
1554 | (mark_not_eliminable, init_elimination): Update accordingly. | |
1555 | (remove_reg_equal_offset_note): Return a bool and pass the new | |
1556 | offset back by pointer as a poly_int64. | |
1557 | * lra-remat.c (change_sp_offset): Take sp_offset as a poly_int64 | |
1558 | rather than a HOST_WIDE_INT. | |
1559 | (do_remat): Track offsets poly_int64s. | |
1560 | * lra.c (lra_update_insn_recog_data, setup_sp_offset): Likewise. | |
1561 | ||
1562 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1563 | Alan Hayward <alan.hayward@arm.com> | |
1564 | David Sherwood <david.sherwood@arm.com> | |
1565 | ||
1566 | * rtl.h (mem_attrs): Add a default constructor. Change size and | |
1567 | offset from HOST_WIDE_INT to poly_int64. | |
1568 | * emit-rtl.h (set_mem_offset, set_mem_size, adjust_address_1) | |
1569 | (adjust_automodify_address_1, set_mem_attributes_minus_bitpos) | |
1570 | (widen_memory_access): Take the sizes and offsets as poly_int64s | |
1571 | rather than HOST_WIDE_INTs. | |
1572 | * alias.c (ao_ref_from_mem): Handle the new form of MEM_OFFSET. | |
1573 | (offset_overlap_p): Take poly_int64s rather than HOST_WIDE_INTs | |
1574 | and ints. | |
1575 | (adjust_offset_for_component_ref): Change the offset from a | |
1576 | HOST_WIDE_INT to a poly_int64. | |
1577 | (nonoverlapping_memrefs_p): Track polynomial offsets and sizes. | |
1578 | * cfgcleanup.c (merge_memattrs): Update after mem_attrs changes. | |
1579 | * dce.c (find_call_stack_args): Likewise. | |
1580 | * dse.c (record_store): Likewise. | |
1581 | * dwarf2out.c (tls_mem_loc_descriptor, dw_sra_loc_expr): Likewise. | |
1582 | * print-rtl.c (rtx_writer::print_rtx): Likewise. | |
1583 | * read-rtl-function.c (test_loading_mem): Likewise. | |
1584 | * rtlanal.c (may_trap_p_1): Likewise. | |
1585 | * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. | |
1586 | * var-tracking.c (int_mem_offset, track_expr_p): Likewise. | |
1587 | * emit-rtl.c (mem_attrs_eq_p, get_mem_align_offset): Likewise. | |
1588 | (mem_attrs::mem_attrs): New function. | |
1589 | (set_mem_attributes_minus_bitpos): Change bitpos from a | |
1590 | HOST_WIDE_INT to poly_int64. | |
1591 | (set_mem_alias_set, set_mem_addr_space, set_mem_align, set_mem_expr) | |
1592 | (clear_mem_offset, clear_mem_size, change_address) | |
1593 | (get_spill_slot_decl, set_mem_attrs_for_spill): Directly | |
1594 | initialize mem_attrs. | |
1595 | (set_mem_offset, set_mem_size, adjust_address_1) | |
1596 | (adjust_automodify_address_1, offset_address, widen_memory_access): | |
1597 | Likewise. Take poly_int64s rather than HOST_WIDE_INT. | |
1598 | ||
1599 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1600 | Alan Hayward <alan.hayward@arm.com> | |
1601 | David Sherwood <david.sherwood@arm.com> | |
1602 | ||
1603 | * rtlanal.c (rtx_addr_can_trap_p_1): Take the offset and size | |
1604 | as poly_int64s rather than HOST_WIDE_INTs. Use a size of -1 | |
1605 | rather than 0 to represent an unknown size. Assert that the size | |
1606 | is known when the mode isn't BLKmode. | |
1607 | (may_trap_p_1): Use -1 for unknown sizes. | |
1608 | (rtx_addr_can_trap_p): Likewise. Pass BLKmode rather than VOIDmode. | |
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 | * dse.c (store_info): Change offset and width from HOST_WIDE_INT | |
1615 | to poly_int64. Update commentary for positions_needed.large. | |
1616 | (read_info_type): Change offset and width from HOST_WIDE_INT | |
1617 | to poly_int64. | |
1618 | (set_usage_bits): Likewise. | |
1619 | (canon_address): Return the offset as a poly_int64 rather than | |
1620 | a HOST_WIDE_INT. Use strip_offset_and_add. | |
1621 | (set_all_positions_unneeded, any_positions_needed_p): Use | |
1622 | positions_needed.large to track stores with non-constant widths. | |
1623 | (all_positions_needed_p): Likewise. Take the offset and width | |
1624 | as poly_int64s rather than ints. Assert that rhs is nonnull. | |
1625 | (record_store): Cope with non-constant offsets and widths. | |
1626 | Nullify the rhs of an earlier store if we can't tell which bytes | |
1627 | of it are needed. | |
1628 | (find_shift_sequence): Take the access_size and shift as poly_int64s | |
1629 | rather than ints. | |
1630 | (get_stored_val): Take the read_offset and read_width as poly_int64s | |
1631 | rather than HOST_WIDE_INTs. | |
1632 | (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Handle | |
1633 | non-constant offsets and widths. | |
1634 | ||
1635 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1636 | Alan Hayward <alan.hayward@arm.com> | |
1637 | David Sherwood <david.sherwood@arm.com> | |
1638 | ||
1639 | * inchash.h (inchash::hash::add_poly_int): New function. | |
1640 | * tree-ssa-alias.h (ao_ref::offset, ao_ref::size, ao_ref::max_size): | |
1641 | Use poly_int64 rather than HOST_WIDE_INT. | |
1642 | (ao_ref::max_size_known_p): New function. | |
1643 | * tree-ssa-sccvn.h (vn_reference_op_struct::off): Use poly_int64_pod | |
1644 | rather than HOST_WIDE_INT. | |
1645 | * tree-ssa-alias.c (ao_ref_base): Apply get_ref_base_and_extent | |
1646 | to temporaries until its interface is adjusted to match. | |
1647 | (ao_ref_init_from_ptr_and_size): Handle polynomial offsets and sizes. | |
1648 | (aliasing_component_refs_p, decl_refs_may_alias_p) | |
1649 | (indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p): Take | |
1650 | the offsets and max_sizes as poly_int64s instead of HOST_WIDE_INTs. | |
1651 | (refs_may_alias_p_1, stmt_kills_ref_p): Adjust for changes to | |
1652 | ao_ref fields. | |
1653 | * alias.c (ao_ref_from_mem): Likewise. | |
1654 | * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Likewise. | |
1655 | * tree-ssa-dse.c (valid_ao_ref_for_dse, normalize_ref) | |
1656 | (clear_bytes_written_by, setup_live_bytes_from_ref, compute_trims) | |
1657 | (maybe_trim_complex_store, maybe_trim_constructor_store) | |
1658 | (live_bytes_read, dse_classify_store): Likewise. | |
1659 | * tree-ssa-sccvn.c (vn_reference_compute_hash, vn_reference_eq): | |
1660 | (copy_reference_ops_from_ref, ao_ref_init_from_vn_reference) | |
1661 | (fully_constant_vn_reference_p, valueize_refs_1): Likewise. | |
1662 | (vn_reference_lookup_3): Likewise. | |
1663 | * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise. | |
1664 | ||
1665 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1666 | Alan Hayward <alan.hayward@arm.com> | |
1667 | David Sherwood <david.sherwood@arm.com> | |
1668 | ||
1669 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p) | |
1670 | (indirect_refs_may_alias_p): Use ranges_may_overlap_p | |
1671 | instead of ranges_overlap_p. | |
1672 | ||
1673 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1674 | Alan Hayward <alan.hayward@arm.com> | |
1675 | David Sherwood <david.sherwood@arm.com> | |
1676 | ||
1677 | * tree-ssa-alias.c (same_addr_size_stores_p): Take the offsets and | |
1678 | sizes as poly_int64s rather than HOST_WIDE_INTs. | |
1679 | ||
1680 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1681 | Alan Hayward <alan.hayward@arm.com> | |
1682 | David Sherwood <david.sherwood@arm.com> | |
1683 | ||
1684 | * gimple-fold.h (fold_ctor_reference): Take the offset and size | |
1685 | as poly_uint64 rather than unsigned HOST_WIDE_INT. | |
1686 | * gimple-fold.c (fold_ctor_reference): Likewise. | |
1687 | ||
1688 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1689 | Alan Hayward <alan.hayward@arm.com> | |
1690 | David Sherwood <david.sherwood@arm.com> | |
1691 | ||
1692 | * target.def (dwarf_poly_indeterminate_value): New hook. | |
1693 | * targhooks.h (default_dwarf_poly_indeterminate_value): Declare. | |
1694 | * targhooks.c (default_dwarf_poly_indeterminate_value): New function. | |
1695 | * doc/tm.texi.in (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Document. | |
1696 | * doc/tm.texi: Regenerate. | |
1697 | * dwarf2out.h (build_cfa_loc, build_cfa_aligned_loc): Take the | |
1698 | offset as a poly_int64. | |
1699 | * dwarf2out.c (new_reg_loc_descr): Move later in file. Take the | |
1700 | offset as a poly_int64. | |
1701 | (loc_descr_plus_const, loc_list_plus_const, build_cfa_aligned_loc): | |
1702 | Take the offset as a poly_int64. | |
1703 | (build_cfa_loc): Likewise. Use loc_descr_plus_const. | |
1704 | (frame_pointer_fb_offset): Change to a poly_int64. | |
1705 | (int_loc_descriptor): Take the offset as a poly_int64. Use | |
1706 | targetm.dwarf_poly_indeterminate_value for polynomial offsets. | |
1707 | (based_loc_descr): Take the offset as a poly_int64. | |
1708 | Use strip_offset_and_add to handle (plus X (const)). | |
1709 | Use new_reg_loc_descr instead of an open-coded version of the | |
1710 | previous implementation. | |
1711 | (mem_loc_descriptor): Handle CONST_POLY_INT. | |
1712 | (compute_frame_pointer_to_fb_displacement): Take the offset as a | |
1713 | poly_int64. Use strip_offset_and_add to handle (plus X (const)). | |
1714 | ||
1715 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1716 | Alan Hayward <alan.hayward@arm.com> | |
1717 | David Sherwood <david.sherwood@arm.com> | |
1718 | ||
1719 | * rtl.h (reg_attrs::offset): Change from HOST_WIDE_INT to poly_int64. | |
1720 | (gen_rtx_REG_offset): Take the offset as a poly_int64. | |
1721 | * inchash.h (inchash::hash::add_poly_hwi): New function. | |
1722 | * gengtype.c (main): Register poly_int64. | |
1723 | * emit-rtl.c (reg_attr_hasher::hash): Use inchash. Treat the | |
1724 | offset as a poly_int. | |
1725 | (reg_attr_hasher::equal): Use must_eq to compare offsets. | |
1726 | (get_reg_attrs, update_reg_offset, gen_rtx_REG_offset): Take the | |
1727 | offset as a poly_int64. | |
1728 | (set_reg_attrs_from_value): Treat the offset as a poly_int64. | |
1729 | * print-rtl.c (print_poly_int): New function. | |
1730 | (rtx_writer::print_rtx_operand_code_r): Treat REG_OFFSET as | |
1731 | a poly_int. | |
1732 | * var-tracking.c (track_offset_p, get_tracked_reg_offset): New | |
1733 | functions. | |
1734 | (var_reg_set, var_reg_delete_and_set, var_reg_delete): Use them. | |
1735 | (same_variable_part_p, track_loc_p): Take the offset as a poly_int64. | |
1736 | (vt_get_decl_and_offset): Return the offset as a poly_int64. | |
1737 | Enforce track_offset_p for parts of a PARALLEL. | |
1738 | (vt_add_function_parameter): Use const_offset for the final | |
1739 | offset to track. Use get_tracked_reg_offset for the parts | |
1740 | of a PARALLEL. | |
1741 | ||
1742 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1743 | Alan Hayward <alan.hayward@arm.com> | |
1744 | David Sherwood <david.sherwood@arm.com> | |
1745 | ||
1746 | * target.def (truly_noop_truncation): Take poly_uint64s instead of | |
1747 | unsigned ints. Change default to hook_bool_puint64_puint64_true. | |
1748 | * doc/tm.texi: Regenerate. | |
1749 | * hooks.h (hook_bool_uint_uint_true): Delete. | |
1750 | (hook_bool_puint64_puint64_true): Declare. | |
1751 | * hooks.c (hook_bool_uint_uint_true): Delete. | |
1752 | (hook_bool_puint64_puint64_true): New function. | |
1753 | * config/mips/mips.c (mips_truly_noop_truncation): Take poly_uint64s | |
1754 | instead of unsigned ints. | |
1755 | * config/spu/spu.c (spu_truly_noop_truncation): Likewise. | |
1756 | * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): Likewise. | |
1757 | ||
1758 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1759 | Alan Hayward <alan.hayward@arm.com> | |
1760 | David Sherwood <david.sherwood@arm.com> | |
1761 | ||
1762 | * optabs.h (expand_operand): Add an int_value field. | |
1763 | (create_expand_operand): Add an int_value parameter and use it | |
1764 | to initialize the new expand_operand field. | |
1765 | (create_integer_operand): Replace with a declaration of a function | |
1766 | that accepts poly_int64s. Move the implementation to... | |
1767 | * optabs.c (create_integer_operand): ...here. | |
1768 | (maybe_legitimize_operand): For EXPAND_INTEGER, check whether | |
1769 | the mode preserves the value of int_value, instead of calling | |
1770 | const_int_operand on the rtx. Use gen_int_mode to generate | |
1771 | the new rtx. | |
1772 | ||
1773 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1774 | Alan Hayward <alan.hayward@arm.com> | |
1775 | David Sherwood <david.sherwood@arm.com> | |
1776 | ||
1777 | * dumpfile.h (dump_dec): Declare. | |
1778 | * dumpfile.c (dump_dec): New function. | |
1779 | * pretty-print.h (pp_wide_integer): Turn into a function and | |
1780 | declare a poly_int version. | |
1781 | * pretty-print.c (pp_wide_integer): New function for poly_ints. | |
1782 | ||
1783 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1784 | Alan Hayward <alan.hayward@arm.com> | |
1785 | David Sherwood <david.sherwood@arm.com> | |
1786 | ||
1787 | * doc/generic.texi (POLY_INT_CST): Document. | |
1788 | * tree.def (POLY_INT_CST): New tree code. | |
1789 | * treestruct.def (TS_POLY_INT_CST): New tree layout. | |
1790 | * tree-core.h (tree_poly_int_cst): New struct. | |
1791 | (tree_node): Add a poly_int_cst field. | |
1792 | * tree.h (POLY_INT_CST_P, POLY_INT_CST_COEFF): New macros. | |
1793 | (wide_int_to_tree, force_fit_type): Take a poly_wide_int_ref | |
1794 | instead of a wide_int_ref. | |
1795 | (build_int_cst, build_int_cst_type): Take a poly_int64 instead | |
1796 | of a HOST_WIDE_INT. | |
1797 | (build_int_cstu, build_array_type_nelts): Take a poly_uint64 | |
1798 | instead of an unsigned HOST_WIDE_INT. | |
1799 | (build_poly_int_cst, tree_fits_poly_int64_p, tree_fits_poly_uint64_p) | |
1800 | (ptrdiff_tree_p): Declare. | |
1801 | (tree_to_poly_int64, tree_to_poly_uint64): Likewise. Provide | |
1802 | extern inline implementations if the target doesn't use POLY_INT_CST. | |
1803 | (poly_int_tree_p): New function. | |
1804 | (wi::unextended_tree): New class. | |
1805 | (wi::int_traits <unextended_tree>): New override. | |
1806 | (wi::extended_tree): Add a default constructor. | |
1807 | (wi::extended_tree::get_tree): New function. | |
1808 | (wi::widest_extended_tree, wi::offset_extended_tree): New typedefs. | |
1809 | (wi::tree_to_widest_ref, wi::tree_to_offset_ref): Use them. | |
1810 | (wi::tree_to_poly_widest_ref, wi::tree_to_poly_offset_ref) | |
1811 | (wi::tree_to_poly_wide_ref): New typedefs. | |
1812 | (wi::ints_for): Provide overloads for extended_tree and | |
1813 | unextended_tree. | |
1814 | (poly_int_cst_value, wi::to_poly_widest, wi::to_poly_offset) | |
1815 | (wi::to_wide): New functions. | |
1816 | (wi::fits_to_boolean_p, wi::fits_to_tree_p): Handle poly_ints. | |
1817 | * tree.c (poly_int_cst_hasher): New struct. | |
1818 | (poly_int_cst_hash_table): New variable. | |
1819 | (tree_node_structure_for_code, tree_code_size, simple_cst_equal) | |
1820 | (valid_constant_size_p, add_expr, drop_tree_overflow): Handle | |
1821 | POLY_INT_CST. | |
1822 | (initialize_tree_contains_struct): Handle TS_POLY_INT_CST. | |
1823 | (init_ttree): Initialize poly_int_cst_hash_table. | |
1824 | (build_int_cst, build_int_cst_type, build_invariant_address): Take | |
1825 | a poly_int64 instead of a HOST_WIDE_INT. | |
1826 | (build_int_cstu, build_array_type_nelts): Take a poly_uint64 | |
1827 | instead of an unsigned HOST_WIDE_INT. | |
1828 | (wide_int_to_tree): Rename to... | |
1829 | (wide_int_to_tree_1): ...this. | |
1830 | (build_new_poly_int_cst, build_poly_int_cst): New functions. | |
1831 | (force_fit_type): Take a poly_wide_int_ref instead of a wide_int_ref. | |
1832 | (wide_int_to_tree): New function that takes a poly_wide_int_ref. | |
1833 | (ptrdiff_tree_p, tree_to_poly_int64, tree_to_poly_uint64) | |
1834 | (tree_fits_poly_int64_p, tree_fits_poly_uint64_p): New functions. | |
1835 | * lto-streamer-out.c (DFS::DFS_write_tree_body, hash_tree): Handle | |
1836 | TS_POLY_INT_CST. | |
1837 | * tree-streamer-in.c (lto_input_ts_poly_tree_pointers): Likewise. | |
1838 | (streamer_read_tree_body): Likewise. | |
1839 | * tree-streamer-out.c (write_ts_poly_tree_pointers): Likewise. | |
1840 | (streamer_write_tree_body): Likewise. | |
1841 | * tree-streamer.c (streamer_check_handled_ts_structures): Likewise. | |
1842 | * asan.c (asan_protect_global): Require the size to be an INTEGER_CST. | |
1843 | * cfgexpand.c (expand_debug_expr): Handle POLY_INT_CST. | |
1844 | * expr.c (expand_expr_real_1, const_vector_from_tree): Likewise. | |
1845 | * gimple-expr.h (is_gimple_constant): Likewise. | |
1846 | * gimplify.c (maybe_with_size_expr): Likewise. | |
1847 | * print-tree.c (print_node): Likewise. | |
1848 | * tree-data-ref.c (data_ref_compare_tree): Likewise. | |
1849 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
1850 | * tree-ssa-address.c (addr_for_mem_ref): Likewise. | |
1851 | * tree-vect-data-refs.c (dr_group_sort_cmp): Likewise. | |
1852 | * tree-vrp.c (compare_values_warnv): Likewise. | |
1853 | * tree-ssa-loop-ivopts.c (determine_base_object, constant_multiple_of) | |
1854 | (get_loop_invariant_expr, add_candidate_1, get_computation_aff_1) | |
1855 | (force_expr_to_var_cost): Likewise. | |
1856 | * tree-ssa-loop.c (for_each_index): Likewise. | |
1857 | * fold-const.h (build_invariant_address, size_int_kind): Take a | |
1858 | poly_int64 instead of a HOST_WIDE_INT. | |
1859 | * fold-const.c (fold_negate_expr_1, const_binop, const_unop) | |
1860 | (fold_convert_const, multiple_of_p, fold_negate_const): Handle | |
1861 | POLY_INT_CST. | |
1862 | (size_binop_loc): Likewise. Allow int_const_binop_1 to fail. | |
1863 | (int_const_binop_2): New function, split out from... | |
1864 | (int_const_binop_1): ...here. Handle POLY_INT_CST. | |
1865 | (size_int_kind): Take a poly_int64 instead of a HOST_WIDE_INT. | |
1866 | * expmed.c (make_tree): Handle CONST_POLY_INT_P. | |
1867 | * gimple-ssa-strength-reduction.c (slsr_process_add) | |
1868 | (slsr_process_mul): Check for INTEGER_CSTs before using them | |
1869 | as candidates. | |
1870 | * stor-layout.c (bits_from_bytes): New function. | |
1871 | (bit_from_pos): Use it. | |
1872 | (layout_type): Likewise. For vectors, multiply the TYPE_SIZE_UNIT | |
1873 | by BITS_PER_UNIT to get the TYPE_SIZE. | |
1874 | * tree-cfg.c (verify_expr, verify_types_in_gimple_reference): Allow | |
1875 | MEM_REF and TARGET_MEM_REF offsets to be a POLY_INT_CST. | |
1876 | ||
1877 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1878 | Alan Hayward <alan.hayward@arm.com> | |
1879 | David Sherwood <david.sherwood@arm.com> | |
1880 | ||
1881 | * doc/rtl.texi (const_poly_int): Document. Also document the | |
1882 | rtl sharing behavior. | |
1883 | * gengenrtl.c (excluded_rtx): Return true for CONST_POLY_INT. | |
1884 | * rtl.h (const_poly_int_def): New struct. | |
1885 | (rtx_def::u): Add a cpi field. | |
1886 | (CASE_CONST_UNIQUE, CASE_CONST_ANY): Add CONST_POLY_INT. | |
1887 | (CONST_POLY_INT_P, CONST_POLY_INT_COEFFS): New macros. | |
1888 | (wi::rtx_to_poly_wide_ref): New typedef | |
1889 | (const_poly_int_value, wi::to_poly_wide, rtx_to_poly_int64) | |
1890 | (poly_int_rtx_p): New functions. | |
1891 | (trunc_int_for_mode): Declare a poly_int64 version. | |
1892 | (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT. | |
1893 | (immed_wide_int_const): Take a poly_wide_int_ref rather than | |
1894 | a wide_int_ref. | |
1895 | (strip_offset): Declare. | |
1896 | (strip_offset_and_add): New function. | |
1897 | * rtl.def (CONST_POLY_INT): New rtx code. | |
1898 | * rtl.c (rtx_size): Handle CONST_POLY_INT. | |
1899 | (shared_const_p): Use poly_int_rtx_p. | |
1900 | * emit-rtl.h (gen_int_mode): Take a poly_int64 instead of a | |
1901 | HOST_WIDE_INT. | |
1902 | (gen_int_shift_amount): Likewise. | |
1903 | * emit-rtl.c (const_poly_int_hasher): New class. | |
1904 | (const_poly_int_htab): New variable. | |
1905 | (init_emit_once): Initialize it when NUM_POLY_INT_COEFFS > 1. | |
1906 | (const_poly_int_hasher::hash): New function. | |
1907 | (const_poly_int_hasher::equal): Likewise. | |
1908 | (gen_int_mode): Take a poly_int64 instead of a HOST_WIDE_INT. | |
1909 | (immed_wide_int_const): Rename to... | |
1910 | (immed_wide_int_const_1): ...this and make static. | |
1911 | (immed_wide_int_const): New function, taking a poly_wide_int_ref | |
1912 | instead of a wide_int_ref. | |
1913 | (gen_int_shift_amount): Take a poly_int64 instead of a HOST_WIDE_INT. | |
1914 | (gen_lowpart_common): Handle CONST_POLY_INT. | |
1915 | * cse.c (hash_rtx_cb, equiv_constant): Likewise. | |
1916 | * cselib.c (cselib_hash_rtx): Likewise. | |
1917 | * dwarf2out.c (const_ok_for_output_1): Likewise. | |
1918 | * expr.c (convert_modes): Likewise. | |
1919 | * print-rtl.c (rtx_writer::print_rtx, print_value): Likewise. | |
1920 | * rtlhash.c (add_rtx): Likewise. | |
1921 | * explow.c (trunc_int_for_mode): Add a poly_int64 version. | |
1922 | (plus_constant): Take a poly_int64 instead of a HOST_WIDE_INT. | |
1923 | Handle existing CONST_POLY_INT rtxes. | |
1924 | * expmed.h (expand_shift): Take a poly_int64 instead of a | |
1925 | HOST_WIDE_INT. | |
1926 | * expmed.c (expand_shift): Likewise. | |
1927 | * rtlanal.c (strip_offset): New function. | |
1928 | (commutative_operand_precedence): Give CONST_POLY_INT the same | |
1929 | precedence as CONST_DOUBLE and put CONST_WIDE_INT between that | |
1930 | and CONST_INT. | |
1931 | * rtl-tests.c (const_poly_int_tests): New struct. | |
1932 | (rtl_tests_c_tests): Use it. | |
1933 | * simplify-rtx.c (simplify_const_unary_operation): Handle | |
1934 | CONST_POLY_INT. | |
1935 | (simplify_const_binary_operation): Likewise. | |
1936 | (simplify_binary_operation_1): Fold additions of symbolic constants | |
1937 | and CONST_POLY_INTs. | |
1938 | (simplify_subreg): Handle extensions and truncations of | |
1939 | CONST_POLY_INTs. | |
1940 | (simplify_const_poly_int_tests): New struct. | |
1941 | (simplify_rtx_c_tests): Use it. | |
1942 | * wide-int.h (storage_ref): Add default constructor. | |
1943 | (wide_int_ref_storage): Likewise. | |
1944 | (trailing_wide_ints): Use GTY((user)). | |
1945 | (trailing_wide_ints::operator[]): Add a const version. | |
1946 | (trailing_wide_ints::get_precision): New function. | |
1947 | (trailing_wide_ints::extra_size): Likewise. | |
1948 | ||
1949 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1950 | Alan Hayward <alan.hayward@arm.com> | |
1951 | David Sherwood <david.sherwood@arm.com> | |
1952 | ||
1953 | * emit-rtl.h (gen_int_shift_amount): Declare. | |
1954 | * emit-rtl.c (gen_int_shift_amount): New function. | |
1955 | * asan.c (asan_emit_stack_protection): Use gen_int_shift_amount | |
1956 | instead of GEN_INT. | |
1957 | * calls.c (shift_return_value): Likewise. | |
1958 | * cse.c (fold_rtx): Likewise. | |
1959 | * dse.c (find_shift_sequence): Likewise. | |
1960 | * expmed.c (init_expmed_one_mode, store_bit_field_1, expand_shift_1) | |
1961 | (expand_shift, expand_smod_pow2): Likewise. | |
1962 | * lower-subreg.c (shift_cost): Likewise. | |
1963 | * optabs.c (expand_superword_shift, expand_doubleword_mult) | |
1964 | (expand_unop, expand_binop, shift_amt_for_vec_perm_mask) | |
1965 | (expand_vec_perm_var): Likewise. | |
1966 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
1967 | (simplify_binary_operation_1): Likewise. | |
1968 | * combine.c (try_combine, find_split_point, force_int_to_mode) | |
1969 | (simplify_shift_const_1, simplify_shift_const): Likewise. | |
1970 | (change_zero_ext): Likewise. Use simplify_gen_binary. | |
1971 | ||
1972 | 2017-12-20 Richard Sandiford <richard.sandiford@linaro.org> | |
1973 | ||
1974 | * poly-int.h (multiple_p): Fix handling of two non-poly_ints. | |
1975 | ||
1976 | 2017-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1977 | ||
1978 | * doc/invoke.texi (ARM Options): Document accepted extension options | |
1979 | for -march=armv8.3-a. | |
1980 | ||
1981 | 2017-12-20 Richard Earnshaw <rearnsha@arm.com> | |
1982 | ||
1983 | PR target/83105 | |
1984 | * config.gcc (arm*-*-linux*): When configured with --with-float=hard | |
1985 | or --with-float=softfp, set the default CPU to arm10e. | |
1986 | ||
1987 | 2017-12-20 Eric Botcazou <ebotcazou@adacore.com> | |
1988 | ||
1989 | * config/visium/constraints.md (J, K, L): Use IN_RANGE macro. | |
1990 | * config/visium/predicates.md (const_shift_operand): Likewise. | |
1991 | * config/visium/visium.c (visium_legitimize_address): Fix oversight. | |
1992 | (visium_legitimize_reload_address): Likewise. | |
1993 | ||
1994 | 2017-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1995 | ||
1996 | PR target/82975 | |
1997 | * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830. | |
1998 | ||
1999 | 2017-12-20 Jakub Jelinek <jakub@redhat.com> | |
2000 | ||
2001 | PR c++/83490 | |
2002 | * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments. | |
2003 | ||
2004 | 2017-12-20 Julia Koval <julia.koval@intel.com> | |
2005 | ||
2006 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_VPCLMULQDQ_SET, | |
2007 | OPTION_MASK_ISA_VPCLMULQDQ_UNSET): New. | |
2008 | (ix86_handle_option): Handle -mvpclmulqdq, move cx6 to flags2. | |
2009 | * config.gcc: Include vpclmulqdqintrin.h. | |
2010 | * config/i386/cpuid.h: Handle bit_VPCLMULQDQ. | |
2011 | * config/i386/driver-i386.c (host_detect_local_cpu): Handle | |
2012 | -mvpclmulqdq. | |
2013 | * config/i386/i386-builtin.def (__builtin_ia32_vpclmulqdq_v2di, | |
2014 | __builtin_ia32_vpclmulqdq_v4di, __builtin_ia32_vpclmulqdq_v8di): New. | |
2015 | * config/i386/i386-c.c (__VPCLMULQDQ__): New. | |
2016 | * config/i386/i386.c (isa2_opts): Add -mcx16. | |
2017 | (isa_opts): Add -mpclmulqdq, remove -mcx16. | |
2018 | (ix86_option_override_internal): Move mcx16 to flags2. | |
2019 | (ix86_valid_target_attribute_inner_p): Add vpclmulqdq. | |
2020 | (ix86_expand_builtin): Handle OPTION_MASK_ISA_VPCLMULQDQ. | |
2021 | * config/i386/i386.h (TARGET_VPCLMULQDQ, TARGET_VPCLMULQDQ_P): New. | |
2022 | * config/i386/i386.opt: Add mvpclmulqdq, move mcx16 to flags2. | |
2023 | * config/i386/immintrin.h: Include vpclmulqdqintrin.h. | |
2024 | * config/i386/sse.md (vpclmulqdq_<mode>): New pattern. | |
2025 | * config/i386/vpclmulqdqintrin.h (_mm512_clmulepi64_epi128, | |
2026 | _mm_clmulepi64_epi128, _mm256_clmulepi64_epi128): New intrinsics. | |
2027 | * doc/invoke.texi: Add -mvpclmulqdq. | |
2028 | ||
2029 | 2017-12-20 Tom de Vries <tom@codesourcery.com> | |
2030 | ||
2031 | PR middle-end/83423 | |
2032 | * config/i386/i386.c (ix86_static_chain): Move | |
2033 | DECL_STATIC_CHAIN test ... | |
2034 | * calls.c (rtx_for_static_chain): ... here. New function. | |
2035 | * calls.h (rtx_for_static_chain): Declare. | |
2036 | * builtins.c (expand_builtin_setjmp_receiver): Use rtx_for_static_chain | |
2037 | instead of targetm.calls.static_chain. | |
2038 | * df-scan.c (df_get_entry_block_def_set): Same. | |
2039 | ||
2040 | 2017-12-19 Tom de Vries <tom@codesourcery.com> | |
2041 | ||
2042 | PR tree-optimization/83493 | |
2043 | * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): Unshare ub | |
2044 | and lb. | |
2045 | ||
2046 | 2017-12-19 Jakub Jelinek <jakub@redhat.com> | |
2047 | ||
2048 | * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of | |
2049 | inform with hardcoded english plural handling. | |
2050 | ||
2051 | 2017-12-18 Jeff Law <law@redhat.com> | |
2052 | ||
2053 | PR tree-optimization/83477 | |
2054 | * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): For | |
2055 | a non-virtual PHI, always push a new range. | |
2056 | ||
2057 | 2017-12-19 Martin Sebor <msebor@redhat.com> | |
2058 | ||
2059 | PR middle-end/77608 | |
2060 | * builtins.c (compute_objsize): Handle non-constant offsets. | |
2061 | ||
2062 | 2017-12-19 Jakub Jelinek <jakub@redhat.com> | |
2063 | ||
2064 | PR tree-optimization/83444 | |
2065 | * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): For the | |
2066 | character load case, if get_stridx on MEM_REF's operand doesn't | |
2067 | look usable, retry with get_addr_stridx. | |
2068 | ||
2069 | 2017-12-19 Alexandre Oliva <aoliva@redhat.com> | |
2070 | ||
2071 | PR debug/83422 | |
2072 | * var-tracking.c (vt_debug_insns_local): Do not drop markers. | |
2073 | (variable_tracking_main_1): Keep markers even when VTA fails. | |
2074 | ||
2075 | PR bootstrap/83396 | |
2076 | * cfgexpand.c (expand_gimple_basic_block): Expand label first, | |
2077 | even if there are markers before it. | |
2078 | * cfgrtl.c (rtl_verify_bb_layout): Reject DEBUG_INSNs outside BBs. | |
2079 | ||
2080 | 2017-12-19 Jakub Jelinek <jakub@redhat.com> | |
2081 | ||
2082 | * read-rtl.c (parse_reg_note_name): Replace Yoda conditions with | |
2083 | typical order conditions. | |
2084 | * sel-sched.c (extract_new_fences_from): Likewise. | |
2085 | * config/visium/constraints.md (J, K, L): Likewise. | |
2086 | * config/visium/predicates.md (const_shift_operand): Likewise. | |
2087 | * config/visium/visium.c (visium_legitimize_address, | |
2088 | visium_legitimize_reload_address): Likewise. | |
2089 | * config/m68k/m68k.c (output_reg_adjust, emit_reg_adjust): Likewise. | |
2090 | * config/arm/arm.c (arm_block_move_unaligned_straight): Likewise. | |
2091 | * config/avr/constraints.md (Y01, Ym1, Y02, Ym2): Likewise. | |
2092 | * config/avr/avr-log.c (avr_vdump, avr_log_set_avr_log, | |
2093 | SET_DUMP_DETAIL): Likewise. | |
2094 | * config/avr/predicates.md (const_8_16_24_operand): Likewise. | |
2095 | * config/avr/avr.c (STR_PREFIX_P, avr_popcount_each_byte, | |
2096 | avr_is_casesi_sequence, avr_casei_sequence_check_operands, | |
2097 | avr_set_core_architecture, avr_set_current_function, | |
2098 | avr_legitimize_reload_address, avr_asm_len, avr_print_operand, | |
2099 | output_movqi, output_movsisf, avr_out_plus, avr_out_bitop, | |
2100 | avr_out_fract, avr_adjust_insn_length, avr_encode_section_info, | |
2101 | avr_2word_insn_p, output_reload_in_const, avr_has_nibble_0xf, | |
2102 | avr_map_decompose, avr_fold_builtin): Likewise. | |
2103 | * config/avr/driver-avr.c (avr_devicespecs_file): Likewise. | |
2104 | * config/avr/gen-avr-mmcu-specs.c (str_prefix_p, print_mcu): Likewise. | |
2105 | * config/i386/i386.c (ix86_parse_stringop_strategy_string): Likewise. | |
2106 | * config/m32c/m32c-pragma.c (m32c_pragma_memregs): Likewise. | |
2107 | * config/m32c/m32c.c (m32c_conditional_register_usage, | |
2108 | m32c_address_cost): Likewise. | |
2109 | * config/m32c/predicates.md (shiftcount_operand, | |
2110 | longshiftcount_operand): Likewise. | |
2111 | * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise. | |
2112 | * config/nios2/nios2.c (nios2_handle_custom_fpu_insn_option, | |
2113 | can_use_cdx_ldstw): Likewise. | |
2114 | * config/nios2/nios2.h (CDX_REG_P): Likewise. | |
2115 | * config/cr16/cr16.h (RETURN_ADDR_RTX, REGNO_MODE_OK_FOR_BASE_P): | |
2116 | Likewise. | |
2117 | * config/cr16/cr16.md (*mov<mode>_double): Likewise. | |
2118 | * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise. | |
2119 | * config/h8300/h8300.c (h8300_rtx_costs, get_shift_alg): Likewise. | |
2120 | * config/vax/constraints.md (U06, U08, U16, CN6, S08, S16): Likewise. | |
2121 | * config/vax/vax.c (adjacent_operands_p): Likewise. | |
2122 | * config/ft32/constraints.md (L, b, KA): Likewise. | |
2123 | * config/ft32/ft32.c (ft32_load_immediate, ft32_expand_prologue): | |
2124 | Likewise. | |
2125 | * cfgexpand.c (expand_stack_alignment): Likewise. | |
2126 | * gcse.c (insert_expr_in_table): Likewise. | |
2127 | * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Likewise. | |
2128 | * cgraphunit.c (cgraph_node::expand): Likewise. | |
2129 | * ira-build.c (setup_min_max_allocno_live_range_point): Likewise. | |
2130 | * emit-rtl.c (add_insn): Likewise. | |
2131 | * input.c (dump_location_info): Likewise. | |
2132 | * passes.c (NEXT_PASS): Likewise. | |
2133 | * read-rtl-function.c (parse_note_insn_name, | |
2134 | function_reader::read_rtx_operand_r, function_reader::parse_mem_expr): | |
2135 | Likewise. | |
2136 | * sched-rgn.c (sched_rgn_init): Likewise. | |
2137 | * diagnostic-show-locus.c (layout::show_ruler): Likewise. | |
2138 | * combine.c (find_split_point, simplify_if_then_else, force_to_mode, | |
2139 | if_then_else_cond, simplify_shift_const_1, simplify_comparison): | |
2140 | Likewise. | |
2141 | * explow.c (eliminate_constant_term): Likewise. | |
2142 | * final.c (leaf_renumber_regs_insn): Likewise. | |
2143 | * cfgrtl.c (print_rtl_with_bb): Likewise. | |
2144 | * genhooks.c (emit_init_macros): Likewise. | |
2145 | * poly-int.h (maybe_ne, maybe_le, maybe_lt): Likewise. | |
2146 | * tree-data-ref.c (conflict_fn): Likewise. | |
2147 | * selftest.c (assert_streq): Likewise. | |
2148 | * expr.c (store_constructor_field, expand_expr_real_1): Likewise. | |
2149 | * fold-const.c (fold_range_test, extract_muldiv_1, fold_truth_andor, | |
2150 | fold_binary_loc, multiple_of_p): Likewise. | |
2151 | * reload.c (push_reload, find_equiv_reg): Likewise. | |
2152 | * et-forest.c (et_nca, et_below): Likewise. | |
2153 | * dbxout.c (dbxout_symbol_location): Likewise. | |
2154 | * reorg.c (relax_delay_slots): Likewise. | |
2155 | * dojump.c (do_compare_rtx_and_jump): Likewise. | |
2156 | * gengtype-parse.c (type): Likewise. | |
2157 | * simplify-rtx.c (simplify_gen_ternary, simplify_gen_relational, | |
2158 | simplify_const_relational_operation): Likewise. | |
2159 | * reload1.c (do_output_reload): Likewise. | |
2160 | * dumpfile.c (get_dump_file_info_by_switch): Likewise. | |
2161 | * gengtype.c (type_for_name): Likewise. | |
2162 | * gimple-ssa-sprintf.c (format_directive): Likewise. | |
2163 | ||
2164 | 2017-12-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
2165 | ||
2166 | PR target/82975 | |
2167 | * config/arm/arm.h (TEST_REGNO): Check reg_renumber is set before | |
2168 | accessing it. Adjust comment. | |
2169 | ||
2170 | 2017-12-19 Jakub Jelinek <jakub@redhat.com> | |
2171 | ||
2172 | PR middle-end/81914 | |
2173 | * predict.c (zero_one_minusone): New function. | |
2174 | (apply_return_prediction): Avoid return prediction for functions | |
2175 | returning only -1, 0 and 1 values, unless they only return -1 and 0 | |
2176 | or 0 and 1. | |
2177 | ||
2178 | 2017-12-19 Claudiu Zissulescu <claziss@synopsys.com> | |
2179 | ||
2180 | * config/arc/arc.c (legitimate_scaled_address_p): Clean | |
2181 | fall-through warning. | |
2182 | (arc_compute_frame_size): Remove unused variables. | |
2183 | (arc_print_operand): Fix fprintif format. | |
2184 | (arc_can_follow_jump): Clean fall-through warning. | |
2185 | ||
2186 | 2017-12-19 Marek Polacek <polacek@redhat.com> | |
2187 | ||
2188 | PR c++/83489 | |
2189 | * config/i386/i386.c (init_cumulative_args): Don't check TYPE_EMPTY_P | |
2190 | on an error node. | |
2191 | ||
2192 | 2017-12-19 Claudiu Zissulescu <claziss@synopsys.com> | |
2193 | ||
2194 | * config/arc/arc.c (overriderregs): New variable. | |
2195 | (arc_override_options): Track fixed/call saved/call options. | |
2196 | (arc_conditional_register_usage): Check against overrideregs | |
2197 | variable whenever we change register properties. | |
2198 | ||
2199 | 2017-12-19 Nathan Sidwell <nathan@acm.org> | |
2200 | ||
2201 | * opts.c (finish_options): Don't prefix dump_base_name if it | |
2202 | already contains directories. | |
2203 | ||
2204 | 2017-12-19 Martin Liska <mliska@suse.cz> | |
2205 | ||
2206 | PR rtl-optimization/82675 | |
2207 | * loop-unroll.c (unroll_loop_constant_iterations): Allocate one | |
2208 | more element in sbitmap. | |
2209 | ||
2210 | 2017-12-19 Paolo Carlini <paolo.carlini@oracle.com> | |
2211 | ||
2212 | * gimplify.c (gimplify_expr): Use error_operand_p. | |
2213 | ||
2214 | 2017-12-19 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
2215 | ||
2216 | PR target/83387 | |
2217 | * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float | |
2218 | multilib. | |
2219 | ||
2220 | 2017-12-19 Daniel Cederman <cederman@gaisler.com> | |
2221 | ||
2222 | * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure | |
2223 | the jump is to a label. | |
2224 | ||
2225 | 2017-12-19 Jakub Jelinek <jakub@redhat.com> | |
2226 | ||
2227 | PR tree-optimization/83444 | |
2228 | * tree-ssa-strlen.c (strlen_check_and_optimize_stmt): Optimize | |
2229 | character loads. | |
2230 | ||
2231 | PR ipa/82801 | |
2232 | PR ipa/83346 | |
2233 | * ipa-inline.c (flatten_remove_node_hook): New function. | |
2234 | (ipa_inline): Keep only nodes with flatten attribute at the end of | |
2235 | the array in the order from ipa_reverse_postorder, only walk that | |
2236 | portion of array for flattening, if there is more than one such | |
2237 | node, temporarily register a removal hook and ignore removed nodes. | |
2238 | ||
2239 | PR tree-optimization/80631 | |
2240 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Compare | |
2241 | induc_code against MAX_EXPR or MIN_EXPR instead of reduc_fn against | |
2242 | IFN_REDUC_MAX or IFN_REDUC_MIN. | |
2243 | ||
2244 | 2017-12-18 Jeff Law <law@redhat.com> | |
2245 | ||
2246 | * tree-ssa-dom.c (record_equivalences_from_phis): Do not | |
2247 | record symbolic equivalences from backedges in the CFG. | |
2248 | ||
2249 | Revert | |
2250 | 2017-11-19 Jeff Law <law@redhat.com> | |
2251 | ||
2252 | * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling | |
2253 | of degenerates resulting from ignoring an edge. | |
2254 | ||
2255 | 2017-12-18 Martin Sebor <msebor@redhat.com> | |
2256 | ||
2257 | PR middle-end/83373 | |
2258 | PR tree-optimization/78450 | |
2259 | * tree-ssa-strlen.c (maybe_set_strlen_range): New function. | |
2260 | (handle_builtin_strlen): Call it. | |
2261 | ||
2262 | 2017-12-18 Segher Boessenkool <segher@kernel.crashing.org> | |
2263 | ||
2264 | PR rtl-optimization/83424 | |
2265 | * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET. | |
2266 | ||
2267 | 2017-12-18 Marek Polacek <polacek@redhat.com> | |
2268 | ||
2269 | PR middle-end/83463 | |
2270 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): | |
2271 | Check if TYPE is INTEGRAL_TYPE_P before accessing its min/max | |
2272 | values. | |
2273 | ||
2274 | 2017-12-18 Claudiu Zissulescu <claziss@synopsys.com> | |
2275 | ||
2276 | * config/arc/arc.md (maddsidi4, maddsidi4_split): Update pattern. | |
2277 | (umaddsidi4, umaddsidi_split): Likewise. | |
2278 | ||
2279 | 2017-12-18 Claudiu Zissulescu <claziss@synopsys.com> | |
2280 | ||
2281 | * config/arc/arc.c (arc_legitimate_constant_p): Always check all | |
2282 | constants. | |
2283 | ||
2284 | 2017-12-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
2285 | ||
2286 | PR target/83420 | |
2287 | * config/s390/s390.c (s390_option_override): Avoid strncpy. | |
2288 | ||
2289 | 2017-12-18 Richard Biener <rguenther@suse.de> | |
2290 | ||
2291 | PR tree-optimization/81877 | |
2292 | * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters. | |
2293 | (outermost_indep_loop): Adjust. | |
2294 | (ref_indep_loop_p_1): Likewise. Remove safelen handling again. | |
2295 | (can_sm_ref_p): Adjust. | |
2296 | ||
2297 | 2017-12-18 Richard Biener <rguenther@suse.de> | |
2298 | ||
2299 | PR middle-end/77291 | |
2300 | * tree.c (array_at_struct_end_p): Return true if the underlying | |
2301 | object has space for at least one element in excess of what | |
2302 | the array domain specifies. | |
2303 | ||
2304 | 2017-12-17 Sandra Loosemore <sandra@codesourcery.com> | |
2305 | ||
2306 | * doc/extend.texi (x86 Function Attributes): Reformat nocf_check | |
2307 | example to avoid overfull hbox. | |
2308 | * doc/invoke.texi (Option Summary): Add missing @gol. | |
2309 | (C++ Dialect Options): Reformat -Wnoexcept-type example to avoid | |
2310 | overfull hbox. | |
2311 | ||
2312 | 2017-12-17 Sandra Loosemore <sandra@codesourcery.com> | |
2313 | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
2314 | ||
2315 | * doc/invoke.texi (Option Summary): Add -mverbose-cost-dump | |
2316 | to AArch64 and ARM lists, plus missing -mflip-thumb for ARM. | |
2317 | (AArch64 Options): Document -mverbose-cost-dump. | |
2318 | (ARM Options): Likewise, plus -mflip-thumb. | |
2319 | ||
2320 | 2017-12-17 Martin Sebor <msebor@redhat.com> | |
2321 | ||
2322 | PR bootstrap/83446 | |
2323 | * gimple-ssa-warn-restrict.c | |
2324 | (builtin_memref::offset_out_of_bounds): Correct the handling of | |
2325 | anti-ranges. | |
2326 | ||
2327 | 2017-12-17 Sandra Loosemore <sandra@codesourcery.com> | |
2328 | ||
2329 | * doc/invoke.texi (ARC Options): Add missing -mlra entry. | |
2330 | ||
2331 | 2017-12-17 John David Anglin <danglin@gcc.gnu.org> | |
2332 | ||
2333 | * config/pa/pa.c (pa_som_asm_init_sections): Fix comment. | |
2334 | ||
2335 | 2017-12-17 Markus Trippelsdorf <markus@trippelsdorf.de> | |
2336 | ||
2337 | * x86-tune-costs.h (skylake_cost, core_cost): Decrease r64 multiply | |
2338 | latencies. | |
2339 | ||
2340 | 2017-12-16 Sandra Loosemore <sandra@codesourcery.com> | |
2341 | ||
2342 | * doc/invoke.texi: Fix some typos. | |
2343 | ||
2344 | 2017-12-16 Martin Sebor <msebor@redhat.com> | |
2345 | ||
2346 | PR tree-optimization/78918 | |
2347 | * Makefile.in (OBJS): Add gimple-ssa-warn-restrict.o. | |
2348 | * builtins.c (check_sizes): Rename... | |
2349 | (check_access): ...to this. Rename function arguments for clarity. | |
2350 | (check_memop_sizes): Adjust names. | |
2351 | (expand_builtin_memchr, expand_builtin_memcpy): Same. | |
2352 | (expand_builtin_memmove, expand_builtin_mempcpy): Same. | |
2353 | (expand_builtin_strcat, expand_builtin_stpncpy): Same. | |
2354 | (check_strncat_sizes, expand_builtin_strncat): Same. | |
2355 | (expand_builtin_strncpy, expand_builtin_memset): Same. | |
2356 | (expand_builtin_bzero, expand_builtin_memcmp): Same. | |
2357 | (expand_builtin_memory_chk, maybe_emit_chk_warning): Same. | |
2358 | (maybe_emit_sprintf_chk_warning): Same. | |
2359 | (expand_builtin_strcpy): Adjust. | |
2360 | (expand_builtin_stpcpy): Same. | |
2361 | (expand_builtin_with_bounds): Detect out-of-bounds accesses | |
2362 | in pointer-checking forms of memcpy, memmove, and mempcpy. | |
2363 | (gcall_to_tree_minimal, max_object_size): Define new functions. | |
2364 | * builtins.h (max_object_size): Declare. | |
2365 | * calls.c (alloc_max_size): Call max_object_size instead of | |
2366 | hardcoding ssizetype limit. | |
2367 | (get_size_range): Handle new argument. | |
2368 | * calls.h (get_size_range): Add a new argument. | |
2369 | * cfgexpand.c (expand_call_stmt): Propagate no-warning bit. | |
2370 | * doc/invoke.texi (-Wrestrict): Adjust, add example. | |
2371 | * gimple-fold.c (gimple_fold_builtin_memory_op): Detect overlapping | |
2372 | operations. | |
2373 | (gimple_fold_builtin_memory_chk): Same. | |
2374 | (gimple_fold_builtin_stxcpy_chk): New function. | |
2375 | * gimple-ssa-warn-restrict.c: New source. | |
2376 | * gimple-ssa-warn-restrict.h: New header. | |
2377 | * gimple.c (gimple_build_call_from_tree): Propagate location. | |
2378 | * passes.def (pass_warn_restrict): Add new pass. | |
2379 | * tree-pass.h (make_pass_warn_restrict): Declare. | |
2380 | * tree-ssa-strlen.c (handle_builtin_strcpy): Detect overlapping | |
2381 | operations. | |
2382 | (handle_builtin_strcat): Same. | |
2383 | (strlen_optimize_stmt): Rename... | |
2384 | (strlen_check_and_optimize_stmt): ...to this. Handle strncat, | |
2385 | stpncpy, strncpy, and their checking forms. | |
2386 | ||
2387 | 2017-12-16 Jan Hubicka <hubicka@ucw.cz> | |
2388 | ||
2389 | PR rtl-optimization/82849 | |
2390 | * modulo-sched.c (sms_schedule): Use get_estimated_loop_iterations_int | |
2391 | and get_max_loop_iterations_int. | |
2392 | ||
2393 | 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> | |
2394 | Alan Hayward <alan.hayward@arm.com> | |
2395 | David Sherwood <david.sherwood@arm.com> | |
2396 | ||
2397 | * machmode.h (mode_for_size, int_mode_for_size, float_mode_for_size) | |
2398 | (smallest_mode_for_size, smallest_int_mode_for_size): Take the mode | |
2399 | size as a poly_uint64. | |
2400 | (mode_for_vector, mode_for_int_vector): Take the number of vector | |
2401 | elements as a poly_uint64. | |
2402 | * stor-layout.c (mode_for_size, smallest_mode_for_size): Take the mode | |
2403 | size as a poly_uint64. | |
2404 | (mode_for_vector, mode_for_int_vector): Take the number of vector | |
2405 | elements as a poly_uint64. | |
2406 | ||
2407 | 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> | |
2408 | Alan Hayward <alan.hayward@arm.com> | |
2409 | David Sherwood <david.sherwood@arm.com> | |
2410 | ||
2411 | * machmode.h (MACRO_MODE): New macro. | |
2412 | * addresses.h (base_reg_class, ok_for_base_p_1): Use it. | |
2413 | * targhooks.c (default_libcall_value, default_secondary_reload) | |
2414 | (default_memory_move_cost, default_register_move_cost) | |
2415 | (default_class_max_nregs): Likewise. | |
2416 | ||
2417 | 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> | |
2418 | Alan Hayward <alan.hayward@arm.com> | |
2419 | David Sherwood <david.sherwood@arm.com> | |
2420 | ||
2421 | * doc/sourcebuild.texi: Document IN_TARGET_CODE. | |
2422 | * genattrtab.c (write_header): Define IN_TARGET_CODE to 1 in the | |
2423 | target C file. | |
2424 | * genautomata.c (main): Likewise. | |
2425 | * genconditions.c (write_header): Likewise. | |
2426 | * genemit.c (main): Likewise. | |
2427 | * genextract.c (print_header): Likewise. | |
2428 | * genopinit.c (main): Likewise. | |
2429 | * genoutput.c (output_prologue): Likewise. | |
2430 | * genpeep.c (main): Likewise. | |
2431 | * genpreds.c (write_insn_preds_c): Likewise. | |
2432 | * genrecog.c (writer_header): Likewise. | |
2433 | * config/aarch64/aarch64-builtins.c (IN_TARGET_CODE): Define. | |
2434 | * config/aarch64/aarch64-c.c (IN_TARGET_CODE): Likewise. | |
2435 | * config/aarch64/aarch64.c (IN_TARGET_CODE): Likewise. | |
2436 | * config/aarch64/cortex-a57-fma-steering.c (IN_TARGET_CODE): Likewise. | |
2437 | * config/aarch64/driver-aarch64.c (IN_TARGET_CODE): Likewise. | |
2438 | * config/alpha/alpha.c (IN_TARGET_CODE): Likewise. | |
2439 | * config/alpha/driver-alpha.c (IN_TARGET_CODE): Likewise. | |
2440 | * config/arc/arc-c.c (IN_TARGET_CODE): Likewise. | |
2441 | * config/arc/arc.c (IN_TARGET_CODE): Likewise. | |
2442 | * config/arc/driver-arc.c (IN_TARGET_CODE): Likewise. | |
2443 | * config/arm/aarch-common.c (IN_TARGET_CODE): Likewise. | |
2444 | * config/arm/arm-builtins.c (IN_TARGET_CODE): Likewise. | |
2445 | * config/arm/arm-c.c (IN_TARGET_CODE): Likewise. | |
2446 | * config/arm/arm.c (IN_TARGET_CODE): Likewise. | |
2447 | * config/arm/driver-arm.c (IN_TARGET_CODE): Likewise. | |
2448 | * config/avr/avr-c.c (IN_TARGET_CODE): Likewise. | |
2449 | * config/avr/avr-devices.c (IN_TARGET_CODE): Likewise. | |
2450 | * config/avr/avr-log.c (IN_TARGET_CODE): Likewise. | |
2451 | * config/avr/avr.c (IN_TARGET_CODE): Likewise. | |
2452 | * config/avr/driver-avr.c (IN_TARGET_CODE): Likewise. | |
2453 | * config/avr/gen-avr-mmcu-specs.c (IN_TARGET_CODE): Likewise. | |
2454 | * config/bfin/bfin.c (IN_TARGET_CODE): Likewise. | |
2455 | * config/c6x/c6x.c (IN_TARGET_CODE): Likewise. | |
2456 | * config/cr16/cr16.c (IN_TARGET_CODE): Likewise. | |
2457 | * config/cris/cris.c (IN_TARGET_CODE): Likewise. | |
2458 | * config/darwin.c (IN_TARGET_CODE): Likewise. | |
2459 | * config/epiphany/epiphany.c (IN_TARGET_CODE): Likewise. | |
2460 | * config/epiphany/mode-switch-use.c (IN_TARGET_CODE): Likewise. | |
2461 | * config/epiphany/resolve-sw-modes.c (IN_TARGET_CODE): Likewise. | |
2462 | * config/fr30/fr30.c (IN_TARGET_CODE): Likewise. | |
2463 | * config/frv/frv.c (IN_TARGET_CODE): Likewise. | |
2464 | * config/ft32/ft32.c (IN_TARGET_CODE): Likewise. | |
2465 | * config/h8300/h8300.c (IN_TARGET_CODE): Likewise. | |
2466 | * config/i386/djgpp.c (IN_TARGET_CODE): Likewise. | |
2467 | * config/i386/driver-i386.c (IN_TARGET_CODE): Likewise. | |
2468 | * config/i386/driver-mingw32.c (IN_TARGET_CODE): Likewise. | |
2469 | * config/i386/host-cygwin.c (IN_TARGET_CODE): Likewise. | |
2470 | * config/i386/host-i386-darwin.c (IN_TARGET_CODE): Likewise. | |
2471 | * config/i386/host-mingw32.c (IN_TARGET_CODE): Likewise. | |
2472 | * config/i386/i386-c.c (IN_TARGET_CODE): Likewise. | |
2473 | * config/i386/i386.c (IN_TARGET_CODE): Likewise. | |
2474 | * config/i386/intelmic-mkoffload.c (IN_TARGET_CODE): Likewise. | |
2475 | * config/i386/msformat-c.c (IN_TARGET_CODE): Likewise. | |
2476 | * config/i386/winnt-cxx.c (IN_TARGET_CODE): Likewise. | |
2477 | * config/i386/winnt-stubs.c (IN_TARGET_CODE): Likewise. | |
2478 | * config/i386/winnt.c (IN_TARGET_CODE): Likewise. | |
2479 | * config/i386/x86-tune-sched-atom.c (IN_TARGET_CODE): Likewise. | |
2480 | * config/i386/x86-tune-sched-bd.c (IN_TARGET_CODE): Likewise. | |
2481 | * config/i386/x86-tune-sched-core.c (IN_TARGET_CODE): Likewise. | |
2482 | * config/i386/x86-tune-sched.c (IN_TARGET_CODE): Likewise. | |
2483 | * config/ia64/ia64-c.c (IN_TARGET_CODE): Likewise. | |
2484 | * config/ia64/ia64.c (IN_TARGET_CODE): Likewise. | |
2485 | * config/iq2000/iq2000.c (IN_TARGET_CODE): Likewise. | |
2486 | * config/lm32/lm32.c (IN_TARGET_CODE): Likewise. | |
2487 | * config/m32c/m32c-pragma.c (IN_TARGET_CODE): Likewise. | |
2488 | * config/m32c/m32c.c (IN_TARGET_CODE): Likewise. | |
2489 | * config/m32r/m32r.c (IN_TARGET_CODE): Likewise. | |
2490 | * config/m68k/m68k.c (IN_TARGET_CODE): Likewise. | |
2491 | * config/mcore/mcore.c (IN_TARGET_CODE): Likewise. | |
2492 | * config/microblaze/microblaze-c.c (IN_TARGET_CODE): Likewise. | |
2493 | * config/microblaze/microblaze.c (IN_TARGET_CODE): Likewise. | |
2494 | * config/mips/driver-native.c (IN_TARGET_CODE): Likewise. | |
2495 | * config/mips/frame-header-opt.c (IN_TARGET_CODE): Likewise. | |
2496 | * config/mips/mips.c (IN_TARGET_CODE): Likewise. | |
2497 | * config/mmix/mmix.c (IN_TARGET_CODE): Likewise. | |
2498 | * config/mn10300/mn10300.c (IN_TARGET_CODE): Likewise. | |
2499 | * config/moxie/moxie.c (IN_TARGET_CODE): Likewise. | |
2500 | * config/msp430/driver-msp430.c (IN_TARGET_CODE): Likewise. | |
2501 | * config/msp430/msp430-c.c (IN_TARGET_CODE): Likewise. | |
2502 | * config/msp430/msp430.c (IN_TARGET_CODE): Likewise. | |
2503 | * config/nds32/nds32-cost.c (IN_TARGET_CODE): Likewise. | |
2504 | * config/nds32/nds32-fp-as-gp.c (IN_TARGET_CODE): Likewise. | |
2505 | * config/nds32/nds32-intrinsic.c (IN_TARGET_CODE): Likewise. | |
2506 | * config/nds32/nds32-isr.c (IN_TARGET_CODE): Likewise. | |
2507 | * config/nds32/nds32-md-auxiliary.c (IN_TARGET_CODE): Likewise. | |
2508 | * config/nds32/nds32-memory-manipulation.c (IN_TARGET_CODE): Likewise. | |
2509 | * config/nds32/nds32-pipelines-auxiliary.c (IN_TARGET_CODE): Likewise. | |
2510 | * config/nds32/nds32-predicates.c (IN_TARGET_CODE): Likewise. | |
2511 | * config/nds32/nds32.c (IN_TARGET_CODE): Likewise. | |
2512 | * config/nios2/nios2.c (IN_TARGET_CODE): Likewise. | |
2513 | * config/nvptx/mkoffload.c (IN_TARGET_CODE): Likewise. | |
2514 | * config/nvptx/nvptx.c (IN_TARGET_CODE): Likewise. | |
2515 | * config/pa/pa.c (IN_TARGET_CODE): Likewise. | |
2516 | * config/pdp11/pdp11.c (IN_TARGET_CODE): Likewise. | |
2517 | * config/powerpcspe/driver-powerpcspe.c (IN_TARGET_CODE): Likewise. | |
2518 | * config/powerpcspe/host-darwin.c (IN_TARGET_CODE): Likewise. | |
2519 | * config/powerpcspe/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise. | |
2520 | * config/powerpcspe/powerpcspe-c.c (IN_TARGET_CODE): Likewise. | |
2521 | * config/powerpcspe/powerpcspe-linux.c (IN_TARGET_CODE): Likewise. | |
2522 | * config/powerpcspe/powerpcspe.c (IN_TARGET_CODE): Likewise. | |
2523 | * config/riscv/riscv-builtins.c (IN_TARGET_CODE): Likewise. | |
2524 | * config/riscv/riscv-c.c (IN_TARGET_CODE): Likewise. | |
2525 | * config/riscv/riscv.c (IN_TARGET_CODE): Likewise. | |
2526 | * config/rl78/rl78-c.c (IN_TARGET_CODE): Likewise. | |
2527 | * config/rl78/rl78.c (IN_TARGET_CODE): Likewise. | |
2528 | * config/rs6000/driver-rs6000.c (IN_TARGET_CODE): Likewise. | |
2529 | * config/rs6000/host-darwin.c (IN_TARGET_CODE): Likewise. | |
2530 | * config/rs6000/host-ppc64-darwin.c (IN_TARGET_CODE): Likewise. | |
2531 | * config/rs6000/rs6000-c.c (IN_TARGET_CODE): Likewise. | |
2532 | * config/rs6000/rs6000-linux.c (IN_TARGET_CODE): Likewise. | |
2533 | * config/rs6000/rs6000-p8swap.c (IN_TARGET_CODE): Likewise. | |
2534 | * config/rs6000/rs6000-string.c (IN_TARGET_CODE): Likewise. | |
2535 | * config/rs6000/rs6000.c (IN_TARGET_CODE): Likewise. | |
2536 | * config/rx/rx.c (IN_TARGET_CODE): Likewise. | |
2537 | * config/s390/driver-native.c (IN_TARGET_CODE): Likewise. | |
2538 | * config/s390/s390-c.c (IN_TARGET_CODE): Likewise. | |
2539 | * config/s390/s390.c (IN_TARGET_CODE): Likewise. | |
2540 | * config/sh/sh-c.c (IN_TARGET_CODE): Likewise. | |
2541 | * config/sh/sh-mem.cc (IN_TARGET_CODE): Likewise. | |
2542 | * config/sh/sh.c (IN_TARGET_CODE): Likewise. | |
2543 | * config/sh/sh_optimize_sett_clrt.cc (IN_TARGET_CODE): Likewise. | |
2544 | * config/sh/sh_treg_combine.cc (IN_TARGET_CODE): Likewise. | |
2545 | * config/sparc/driver-sparc.c (IN_TARGET_CODE): Likewise. | |
2546 | * config/sparc/sparc-c.c (IN_TARGET_CODE): Likewise. | |
2547 | * config/sparc/sparc.c (IN_TARGET_CODE): Likewise. | |
2548 | * config/spu/spu-c.c (IN_TARGET_CODE): Likewise. | |
2549 | * config/spu/spu.c (IN_TARGET_CODE): Likewise. | |
2550 | * config/stormy16/stormy16.c (IN_TARGET_CODE): Likewise. | |
2551 | * config/tilegx/mul-tables.c (IN_TARGET_CODE): Likewise. | |
2552 | * config/tilegx/tilegx-c.c (IN_TARGET_CODE): Likewise. | |
2553 | * config/tilegx/tilegx.c (IN_TARGET_CODE): Likewise. | |
2554 | * config/tilepro/mul-tables.c (IN_TARGET_CODE): Likewise. | |
2555 | * config/tilepro/tilepro-c.c (IN_TARGET_CODE): Likewise. | |
2556 | * config/tilepro/tilepro.c (IN_TARGET_CODE): Likewise. | |
2557 | * config/v850/v850-c.c (IN_TARGET_CODE): Likewise. | |
2558 | * config/v850/v850.c (IN_TARGET_CODE): Likewise. | |
2559 | * config/vax/vax.c (IN_TARGET_CODE): Likewise. | |
2560 | * config/visium/visium.c (IN_TARGET_CODE): Likewise. | |
2561 | * config/vms/vms-c.c (IN_TARGET_CODE): Likewise. | |
2562 | * config/vms/vms-f.c (IN_TARGET_CODE): Likewise. | |
2563 | * config/vms/vms.c (IN_TARGET_CODE): Likewise. | |
2564 | * config/xtensa/xtensa.c (IN_TARGET_CODE): Likewise. | |
2565 | ||
2566 | 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> | |
2567 | Alan Hayward <alan.hayward@arm.com> | |
2568 | David Sherwood <david.sherwood@arm.com> | |
2569 | ||
2570 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid repeated | |
2571 | checks for MEM_REF. | |
2572 | ||
2573 | 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> | |
2574 | Alan Hayward <alan.hayward@arm.com> | |
2575 | David Sherwood <david.sherwood@arm.com> | |
2576 | ||
2577 | * doc/generic.texi (VEC_SERIES_EXPR): Document. | |
2578 | * doc/md.texi (vec_series@var{m}): Document. | |
2579 | * tree.def (VEC_SERIES_EXPR): New tree code. | |
2580 | * tree.h (build_vec_series): Declare. | |
2581 | * tree.c (build_vec_series): New function. | |
2582 | * cfgexpand.c (expand_debug_expr): Handle VEC_SERIES_EXPR. | |
2583 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
2584 | * gimple-pretty-print.c (dump_binary_rhs): Likewise. | |
2585 | * tree-inline.c (estimate_operator_cost): Likewise. | |
2586 | * expr.c (expand_expr_real_2): Likewise. | |
2587 | * optabs-tree.c (optab_for_tree_code): Likewise. | |
2588 | * tree-cfg.c (verify_gimple_assign_binary): Likewise. | |
2589 | * fold-const.c (const_binop): Fold VEC_SERIES_EXPRs of constants. | |
2590 | * expmed.c (make_tree): Handle VEC_SERIES. | |
2591 | * optabs.def (vec_series_optab): New optab. | |
2592 | * optabs.h (expand_vec_series_expr): Declare. | |
2593 | * optabs.c (expand_vec_series_expr): New function. | |
2594 | * tree-vect-generic.c (expand_vector_operations_1): Check that | |
2595 | the operands also have vector type. | |
2596 | ||
2597 | 2017-12-16 Richard Sandiford <richard.sandiford@linaro.org> | |
2598 | Alan Hayward <alan.hawyard@arm.com> | |
2599 | David Sherwood <david.sherwood@arm.com> | |
2600 | ||
2601 | * doc/generic.texi (VEC_DUPLICATE_EXPR): Document. | |
2602 | (VEC_COND_EXPR): Add missing @tindex. | |
2603 | * doc/md.texi (vec_duplicate@var{m}): Document. | |
2604 | * tree.def (VEC_DUPLICATE_EXPR): New tree codes. | |
2605 | * tree.c (build_vector_from_val): Add stubbed-out handling of | |
2606 | variable-length vectors, using VEC_DUPLICATE_EXPR. | |
2607 | (uniform_vector_p): Handle VEC_DUPLICATE_EXPR. | |
2608 | * cfgexpand.c (expand_debug_expr): Likewise. | |
2609 | * tree-cfg.c (verify_gimple_assign_unary): Likewise. | |
2610 | * tree-inline.c (estimate_operator_cost): Likewise. | |
2611 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
2612 | * tree-vect-generic.c (ssa_uniform_vector_p): Likewise. | |
2613 | * fold-const.c (const_unop): Fold VEC_DUPLICATE_EXPRs of a constant. | |
2614 | (test_vec_duplicate_folding): New function. | |
2615 | (fold_const_c_tests): Call it. | |
2616 | * optabs.def (vec_duplicate_optab): New optab. | |
2617 | * optabs-tree.c (optab_for_tree_code): Handle VEC_DUPLICATE_EXPR. | |
2618 | * optabs.h (expand_vector_broadcast): Declare. | |
2619 | * optabs.c (expand_vector_broadcast): Make non-static. Try using | |
2620 | vec_duplicate_optab. | |
2621 | * expr.c (store_constructor): Try using vec_duplicate_optab for | |
2622 | uniform vectors. | |
2623 | (expand_expr_real_2): Handle VEC_DUPLICATE_EXPR. | |
2624 | ||
2625 | 2017-12-15 Markus Trippelsdorf <markus@trippelsdorf.de> | |
2626 | ||
2627 | PR target/83358 | |
2628 | * config/i386/x86-tune-costs.h (skylake_cost, core_cost): Increase | |
2629 | div/mod latencies a bit. | |
2630 | ||
2631 | 2017-12-15 Jeff Law <law@redhat.com> | |
2632 | ||
2633 | PR tree-optimization/36550 | |
2634 | * tree-ssa-threadupdate.c (count_stmts_and_phis_in_block): New. | |
2635 | (mark_threaded_blocks): Rewrite code to avoid block copying when | |
2636 | optimizing for size. Don't pessimize blocks which will be | |
2637 | copied, but all the statements will be dead. | |
2638 | ||
2639 | 2017-12-15 Alexandre Oliva <aoliva@redhat.com> | |
2640 | ||
2641 | PR tree-optimization/81165 | |
2642 | * tree-ssa-threadupdate.c (uses_in_bb): New. | |
2643 | (estimate_threading_killed_stmts): New. | |
2644 | * tree-ssa-threadupdate.h (estimate_threading_killed_stmts): Prototype. | |
2645 | * tree-ssa-threadedge.c | |
2646 | (record_temporary_equivalences_from_stmts_at_dest): Expand limit | |
2647 | when its hit. | |
2648 | ||
2649 | 2017-12-15 Jeff Law <law@redhat.com> | |
2650 | ||
2651 | PR tree-optimization/83410 | |
2652 | * tree-ssa-threadupdate.c (thread_block_1): Avoid certain jump | |
2653 | threads when parallelizing loops. | |
2654 | ||
2655 | 2017-12-15 Jakub Jelinek <jakub@redhat.com> | |
2656 | ||
2657 | * tree-core.h (struct attribute_spec): Swap affects_type_identity and | |
2658 | handler fields. | |
2659 | * config/alpha/alpha.c (vms_attribute_table): Swap | |
2660 | affects_type_identity and handler fields, adjust comments. | |
2661 | * config/mips/mips.c (mips_attribute_table): Likewise. | |
2662 | * config/visium/visium.c (visium_attribute_table): Likewise. | |
2663 | * config/epiphany/epiphany.c (epiphany_attribute_table): Likewise. | |
2664 | * config/microblaze/microblaze.c (microblaze_attribute_table): | |
2665 | Likewise. | |
2666 | * config/spu/spu.c (spu_attribute_table): Likewise. | |
2667 | * config/mcore/mcore.c (mcore_attribute_table): Likewise. | |
2668 | * config/arc/arc.c (arc_attribute_table): Likewise. | |
2669 | * config/m68k/m68k.c (m68k_attribute_table): Likewise. | |
2670 | * config/v850/v850.c (v850_handle_interrupt_attribute, | |
2671 | v850_handle_data_area_attribute): Formatting fixes. | |
2672 | (v850_attribute_table): Swap affects_type_identity and handler | |
2673 | fields, adjust comments. | |
2674 | * config/m32r/m32r.c (m32r_attribute_table): Likewise. | |
2675 | * config/arm/arm.c (arm_attribute_table): Likewise. | |
2676 | * config/avr/avr.c (avr_attribute_table): Likewise. | |
2677 | * config/s390/s390.c (s390_attribute_table): Likewise. | |
2678 | * config/sh/sh.c (sh_attribute_table): Likewise. | |
2679 | * config/i386/i386.c (ix86_handle_cconv_attribute, | |
2680 | ix86_handle_callee_pop_aggregate_return): Formatting fixes. | |
2681 | (ix86_attribute_table): Swap affects_type_identity and handler | |
2682 | fields, adjust comments. | |
2683 | * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise. | |
2684 | * config/sparc/sparc.c (sparc_attribute_table): Likewise. | |
2685 | * config/m32c/m32c.c (m32c_attribute_table): Likewise. | |
2686 | * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Likewise. | |
2687 | * config/ia64/ia64.c (ia64_attribute_table): Likewise. | |
2688 | * config/msp430/msp430.c (msp430_attribute_table): Likewise. | |
2689 | * config/rx/rx.c (rx_attribute_table): Likewise. | |
2690 | * config/cr16/cr16.c (cr16_attribute_table): Likewise. | |
2691 | * config/h8300/h8300.c (h8300_attribute_table): Likewise. | |
2692 | * config/nvptx/nvptx.c (nvptx_attribute_table): Likewise. | |
2693 | * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Likewise. | |
2694 | * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise. | |
2695 | * config/stormy16/stormy16.c (xstormy16_attribute_table): Likewise. | |
2696 | * config/bfin/bfin.c (bfin_attribute_table): Likewise. | |
2697 | * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise. | |
2698 | * config/rl78/rl78.c (rl78_attribute_table): Likewise. | |
2699 | * config/nds32/nds32.c (nds32_attribute_table): Likewise. | |
2700 | * doc/plugins.texi (user_attr): Likewise. Add NULL for | |
2701 | exclude. | |
2702 | * attribs.c (empty_attribute_table): Swap affects_type_identity and | |
2703 | handler fields. | |
2704 | (register_scoped_attributes, decl_attributes): Formatting fixes. | |
2705 | ||
2706 | PR tree-optimization/83269 | |
2707 | * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A | |
2708 | subtraction in arg0's type if type is signed and arg0 is unsigned. | |
2709 | Formatting fix. | |
2710 | ||
2711 | PR sanitizer/81281 | |
2712 | * match.pd ((T)(P + A) - (T)P -> (T) A): Use @@0 instead of @0 and | |
2713 | convert? on @0 instead of convert. Check type of @1, not @0. | |
2714 | ((T)P - (T)(P + A) -> -(T) A): Use @@0 instead of @0 and | |
2715 | convert? on @0 instead of convert. Check type of @1, not @0. | |
2716 | ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Use @@0 instead of @0, | |
2717 | only optimize if either both @1 and @2 types are narrower | |
2718 | precision, or both are wider or equal precision, and in the former | |
2719 | case only if both have undefined overflow. | |
2720 | ||
2721 | 2017-12-15 Richard Biener <rguenther@suse.de> | |
2722 | ||
2723 | PR lto/83388 | |
2724 | * internal-fn.def (IFN_NOP): Add. | |
2725 | * internal-fn.c (expand_NOP): Do nothing. | |
2726 | * lto-streamer-in.c (input_function): Instead of removing | |
2727 | sanitizer calls replace them with IFN_NOP calls. | |
2728 | ||
2729 | 2017-12-15 Richard Sandiford <richard.sandiford@linaro.org> | |
2730 | Alan Hayward <alan.hayward@arm.com> | |
2731 | David Sherwood <david.sherwood@arm.com> | |
2732 | ||
2733 | * dse.c (store_info, read_info_type): Replace begin and end with | |
2734 | offset and width. | |
2735 | (print_range): New function. | |
2736 | (set_all_positions_unneeded, any_positions_needed_p) | |
2737 | (check_mem_read_rtx, scan_stores, scan_reads, dse_step5): Update | |
2738 | accordingly. | |
2739 | (record_store): Likewise. Optimize the case in which all positions | |
2740 | are unneeded. | |
2741 | (get_stored_val): Replace read_begin and read_end with read_offset | |
2742 | and read_width. | |
2743 | (replace_read): Update call accordingly. | |
2744 | ||
2745 | 2017-12-15 Bin Cheng <bin.cheng@arm.com> | |
2746 | ||
2747 | * gimple-loop-interchange.cc (STMT_COST_RATIO): New macro. | |
2748 | (loop_cand::m_num_stmts, loop_cand::m_const_init_reduc): New members. | |
2749 | (loop_cand::loop_cand): Initialize above members. | |
2750 | (loop_cand::supported_operations): Delete. | |
2751 | (loop_cand::can_interchange_p): Inline above function. | |
2752 | (loop_cand::classify_simple_reduction): Record number of constant | |
2753 | initialized simple reductions. | |
2754 | (should_interchange_loops): New parameters. Check stmt cost of loops | |
2755 | to be interchange. | |
2756 | (tree_loop_interchange::interchange): Prepare stmt cost of outer loop. | |
2757 | Update call to should_interchange_loops. | |
2758 | (should_interchange_loop_nest): Update call to | |
2759 | should_interchange_loops. | |
2760 | ||
2761 | 2017-12-15 Eric Botcazou <ebotcazou@adacore.com> | |
2762 | ||
2763 | PR target/66488 | |
2764 | * ggc-page.c (HOST_BITS_PER_PTR): Do not define here... | |
2765 | * hwint.h (HOST_BITS_PER_PTR): ...but here instead. | |
2766 | * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete. | |
2767 | ||
2768 | 2017-12-15 Julia Koval <julia.koval@intel.com> | |
2769 | ||
2770 | * config/i386/i386-builtin.def (__builtin_ia32_vaesenclast_v16qi, | |
2771 | __builtin_ia32_vaesenclast_v32qi, __builtin_ia32_vaesenclast_v64qi): | |
2772 | New. | |
2773 | * config/i386/sse.md (vaesenclast_<mode>): New pattern. | |
2774 | * config/i386/vaesintrin.h (_mm256_aesenclast_epi128, | |
2775 | _mm512_aesenclast_epi128, _mm_aesenclast_epi128): New intrinsics. | |
2776 | ||
2777 | 2017-12-15 Julia Koval <julia.koval@intel.com> | |
2778 | ||
2779 | * config/i386/i386-builtin.def (__builtin_ia32_vaesenc_v16qi, | |
2780 | __builtin_ia32_vaesenc_v32qi, __builtin_ia32_vaesenc_v64qi): New. | |
2781 | * config/i386/sse.md (vaesenc_<mode>): New pattern. | |
2782 | * config/i386/vaesintrin.h (_mm256_aesenc_epi128, _mm512_aesenc_epi128, | |
2783 | _mm_aesenc_epi128): New intrinsics. | |
2784 | ||
2785 | 2017-12-15 Julia Koval <julia.koval@intel.com> | |
2786 | ||
2787 | * config/i386/i386-builtin.def (__builtin_ia32_vaesdeclast_v16qi, | |
2788 | __builtin_ia32_vaesdeclast_v32qi, __builtin_ia32_vaesdeclast_v64qi): | |
2789 | New. | |
2790 | * config/i386/sse.md (vaesdeclast_<mode>): New pattern. | |
2791 | * config/i386/vaesintrin.h (_mm256_aesdeclast_epi128, | |
2792 | _mm512_aesdeclast_epi128, _mm_aesdeclast_epi128): New intrinsics. | |
2793 | ||
2794 | 2017-12-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
2795 | ||
2796 | * gimple-ssa-strength-reduction.c (analyze_increments): | |
2797 | Distinguish replacement costs for constant strides from those for | |
2798 | unknown strides. | |
2799 | ||
2800 | 2017-12-14 Jakub Jelinek <jakub@redhat.com> | |
2801 | ||
2802 | * var-tracking.c (variable_tracking_main_1): Formatting fix. | |
2803 | ||
2804 | 2017-12-14 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
2805 | ||
2806 | * doc/invoke.texi: Document -Wcast-function-type. | |
2807 | * recog.h (stored_funcptr): Change signature. | |
2808 | * tree-dump.c (dump_node): Avoid warning. | |
2809 | * typed-splay-tree.h (typed_splay_tree): Avoid warning. | |
2810 | ||
2811 | 2017-12-14 Qing Zhao <qing.zhao@oracle.com> | |
2812 | ||
2813 | PR middle_end/79538 | |
2814 | * gimple-fold.c (get_range_strlen): Add the handling of non-member | |
2815 | array. | |
2816 | ||
2817 | 2017-12-14 David Malcolm <dmalcolm@redhat.com> | |
2818 | ||
2819 | PR tree-optimization/83312 | |
2820 | * domwalk.h (dom_walker::dom_walker): Fix typo in comment. | |
2821 | * tree-cfg.c (find_taken_edge): Update to handle NULL_TREE for | |
2822 | "val" param, and to cope with arbitrary basic blocks. | |
2823 | (find_taken_edge_cond_expr): Add "cond_stmt" param and use it to | |
2824 | handle NULL_TREE for "val", dropping "bb" param. | |
2825 | (find_taken_edge_switch_expr): Make "switch_stmt" param const and | |
2826 | drop "bb" param. Handle NULL_TREE for "val". | |
2827 | (find_case_label_for_value): Make "switch_stmt" param const. | |
2828 | * tree-vrp.c (class check_array_bounds_dom_walker): New subclass | |
2829 | of dom_walker. | |
2830 | (vrp_prop::check_all_array_refs): Reimplement as... | |
2831 | (check_array_bounds_dom_walker::before_dom_children): ...this new | |
2832 | vfunc. Replace linear search through BB block list, excluding | |
2833 | those with non-executable in-edges via dominator walk. | |
2834 | ||
2835 | 2017-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
2836 | ||
2837 | * config/arm/arm.opt (mverbose-cost-dump): New option. | |
2838 | * config/arm/arm.c (arm_rtx_costs): Use it. | |
2839 | ||
2840 | 2017-12-14 Andreas Schwab <schwab@linux-m68k.org> | |
2841 | ||
2842 | PR bootstrap/83396 | |
2843 | * reload1.c (emit_input_reload_insns): Skip debug markers. | |
2844 | ||
2845 | 2017-12-14 Alexandre Oliva <aoliva@redhat.com> | |
2846 | ||
2847 | * config/i386/i386.c (rest_of_insert_endbranch): Use call loc | |
2848 | for its nop_endbr. | |
2849 | ||
2850 | PR bootstrap/83396 | |
2851 | * config/arc/arc.c (hwloop_optimize): Skip debug insns. | |
2852 | * config/sh/sh-protos.h (sh_find_set_of_reg): Adjust. | |
2853 | * config/sh/sh.c: Skip debug insns besides notes. | |
2854 | * config/sh/sh.md: Likewise. | |
2855 | * config/sh/sh_treg_combine.cc: Likewise. | |
2856 | * config/sh/sync.md: Likewise. | |
2857 | ||
2858 | 2017-12-14 Tom de Vries <tom@codesourcery.com> | |
2859 | ||
2860 | * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): | |
2861 | Add item for weak_undefined. | |
2862 | ||
2863 | 2017-12-14 Richard Biener <rguenther@suse.de> | |
2864 | ||
2865 | PR tree-optimization/67842 | |
2866 | * sese.h (bb_in_region): Remove #if 0'ed code. | |
2867 | ||
2868 | 2017-12-14 Richard Biener <rguenther@suse.de> | |
2869 | ||
2870 | PR tree-optimization/83326 | |
2871 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add | |
2872 | may_be_zero parameter and handle it by not marking the first | |
2873 | peeled copy as not exiting the loop. | |
2874 | (try_peel_loop): Likewise. | |
2875 | (canonicalize_loop_induction_variables): Use number_of_iterations_exit | |
2876 | to handle the case of constant or zero iterations and perform | |
2877 | loop header copying on-the-fly. | |
2878 | ||
2879 | 2017-12-14 Richard Biener <rguenther@suse.de> | |
2880 | ||
2881 | PR tree-optimization/83418 | |
2882 | * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): | |
2883 | Instead of asserting we don't get unfolded comparisons deal with them. | |
2884 | ||
2885 | 2017-12-14 Jakub Jelinek <jakub@redhat.com> | |
2886 | ||
2887 | PR bootstrap/83396 | |
2888 | * var-tracking.c (vt_initialize): Ignore non-DEBUG_INSNs outside of | |
2889 | basic blocks. Assert debug bind insns don't appear outside of bbs, | |
2890 | don't reset them. Assert insns without BLOCK_FOR_INSN are outside of | |
2891 | bb. Simplify. | |
2892 | ||
2893 | PR tree-optimization/83198 | |
2894 | * gimple-ssa-sprintf.c (format_floating): Set type solely based on | |
2895 | dir.modifier, regardless of TREE_TYPE (arg). Assume non-REAL_CST | |
2896 | value if arg is a REAL_CST with incompatible type. | |
2897 | ||
2898 | 2017-12-14 Sudakshina Das <sudi.das@arm.com> | |
2899 | Bin Cheng <bin.cheng@arm.com> | |
2900 | ||
2901 | PR target/81228 | |
2902 | * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT | |
2903 | to CCFPEmode. | |
2904 | * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Add | |
2905 | LTGT. | |
2906 | ||
2907 | 2017-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
2908 | ||
2909 | * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75, | |
2910 | cortex-a75.cortex-a55): Specify AARCH64_FL_F16 in the arch features. | |
2911 | ||
2912 | 2017-12-14 Richard Sandiford <richard.sandiford@linaro.org> | |
2913 | Alan Hayward <alan.hayward@arm.com> | |
2914 | David Sherwood <david.sherwood@arm.com> | |
2915 | ||
2916 | * poly-int.h: New file. | |
2917 | * poly-int-types.h: Likewise. | |
2918 | * coretypes.h: Include them. | |
2919 | (POLY_INT_CONVERSION): Define. | |
2920 | * target.def (estimated_poly_value): New hook. | |
2921 | * doc/tm.texi.in (TARGET_ESTIMATED_POLY_VALUE): New hook. | |
2922 | * doc/tm.texi: Regenerate. | |
2923 | * doc/poly-int.texi: New file. | |
2924 | * doc/gccint.texi: Include it. | |
2925 | * doc/rtl.texi: Describe restrictions on subreg modes. | |
2926 | * Makefile.in (TEXI_GCCINT_FILES): Add poly-int.texi. | |
2927 | * genmodes.c (NUM_POLY_INT_COEFFS): Provide a default definition. | |
2928 | (emit_insn_modes_h): Emit a definition of NUM_POLY_INT_COEFFS. | |
2929 | * targhooks.h (default_estimated_poly_value): Declare. | |
2930 | * targhooks.c (default_estimated_poly_value): New function. | |
2931 | * target.h (estimated_poly_value): Likewise. | |
2932 | * wide-int.h (WI_UNARY_RESULT): Use wi::binary_traits. | |
2933 | (wi::unary_traits): Delete. | |
2934 | (wi::binary_traits::signed_shift_result_type): Define for | |
2935 | offset_int << HOST_WIDE_INT, etc. | |
2936 | (generic_wide_int::operator <<=): Define for all types and use | |
2937 | wi::lshift instead of <<. | |
2938 | (wi::hwi_with_prec): Add a default constructor. | |
2939 | (wi::ints_for): New class. | |
2940 | (operator <<): Define for all wide-int types. | |
2941 | (operator /): New function. | |
2942 | (operator %): Likewise. | |
2943 | * selftest.h (ASSERT_KNOWN_EQ, ASSERT_KNOWN_EQ_AT, ASSERT_MAYBE_NE) | |
2944 | (ASSERT_MAYBE_NE_AT): New macros. | |
2945 | ||
2946 | 2017-12-13 Eric Botcazou <ebotcazou@adacore.com> | |
2947 | Dominik Vogt <vogt@linux.vnet.ibm.com> | |
2948 | ||
2949 | PR middle-end/78468 | |
2950 | * emit-rtl.c (init_emit): Remove ??? comment. | |
2951 | * explow.c (get_dynamic_stack_size): Take known alignment of stack | |
2952 | pointer + STACK_DYNAMIC_OFFSET into account in lieu of STACK_BOUNDARY. | |
2953 | * config/sparc/sparc.h (INIT_EXPANDERS): In 32-bit mode, lower the | |
2954 | alignment of 3 virtual registers to BITS_PER_WORD. | |
2955 | ||
2956 | * config/sparc/sparc.c (sparc_compute_frame_size): Simplify. | |
2957 | ||
2958 | 2017-12-13 Peter Bergner <bergner@vnet.ibm.com> | |
2959 | ||
2960 | * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define. | |
2961 | * config/rs6000/rs6000.c (cpu_supports_info): Use it. | |
2962 | ||
2963 | 2017-12-13 Alexandre Oliva <aoliva@redhat.com> | |
2964 | ||
2965 | PR bootstrap/83396 | |
2966 | * reload1.c (eliminate_regs_in_insn): Skip debug markers. | |
2967 | ||
2968 | 2017-12-13 Jakub Jelinek <jakub@redhat.com> | |
2969 | ||
2970 | * tree-cfg.c (verify_gimple_in_cfg): Verify no non-label stmts | |
2971 | with the exception of debug begin stmt markers appear before | |
2972 | labels. | |
2973 | ||
2974 | PR bootstrap/83396 | |
2975 | * final.c (rest_of_handle_final): Call variable_tracking_main only | |
2976 | if !flag_var_tracking. | |
2977 | ||
2978 | 2017-12-13 Alexandre Oliva <aoliva@redhat.com> | |
2979 | Jakub Jelinek <jakub@redhat.com> | |
2980 | ||
2981 | PR bootstrap/83396 | |
2982 | PR debug/83391 | |
2983 | * tree-cfgcleanup.c (remove_forwarder_block): Keep after | |
2984 | labels debug stmts that can only appear after labels. | |
2985 | ||
2986 | 2017-12-13 Alexander Monakov <amonakov@ispras.ru> | |
2987 | ||
2988 | PR rtl-optimization/82398 | |
2989 | * sel-sched.c (sel_rank_for_schedule): Fix check for zero | |
2990 | EXPR_USEFULNESS in priority comparison. | |
2991 | ||
2992 | 2017-12-13 Segher Boessenkool <segher@kernel.crashing.org> | |
2993 | ||
2994 | PR rtl-optimization/83393 | |
2995 | * combine.c (move_deaths): If reg_stat points to a too new insn in | |
2996 | last_death, do not use it: find the proper insn instead. | |
2997 | ||
2998 | 2017-12-12 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
2999 | ||
3000 | PR target/82190 | |
3001 | * config/rs6000/rs6000-string.c (expand_block_compare, | |
3002 | expand_strn_compare): Fix set_mem_size() calls. | |
3003 | ||
3004 | 2017-12-12 Jeff Law <law@redhat.com> | |
3005 | ||
3006 | PR tree-optimization/83298 | |
3007 | PR tree-optimization/83362 | |
3008 | PR tree-optimization/83383 | |
3009 | * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Make | |
3010 | push_value_range a public interface. Add new argument to | |
3011 | record_ranges_from_stmt. | |
3012 | * gimple-ssa-evrp-analyze.c | |
3013 | (evrp_range_analyzer::record_ranges_from_stmt): Add new argument. | |
3014 | Update comments. Handle recording temporary equivalences. | |
3015 | * tree-ssa-dom.c (dom_opt_opt_walker::before_dom_children): Add | |
3016 | new argument to call to evrp_range_analyzer::record_ranges_from_stmt. | |
3017 | * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Likewise. | |
3018 | * tree-ssa-threadedge.c: Include alloc-pool.h, vr-values.h and | |
3019 | gimple-ssa-evrp-analyze.h. | |
3020 | (record_temporary_equivalences_from_phis): Add new argument. When | |
3021 | the PHI arg is an SSA_NAME, set the result's range to the range | |
3022 | of the PHI arg. | |
3023 | (record_temporary_equivalences_from_stmts_at_dest): Record ranges | |
3024 | from statements too. | |
3025 | (thread_through_normal_block): Accept new argument, evrp_range_analyzer. | |
3026 | Pass it down to children as needed. | |
3027 | (thread_outgoing_edges): Likewise. | |
3028 | (thread_across_edge): Likewise. Push/pop range state as needed. | |
3029 | * tree-ssa-threadedge.h (thread_outgoing_edges): Update prototype. | |
3030 | ||
3031 | 2017-12-12 Julia Koval <julia.koval@intel.com> | |
3032 | ||
3033 | * config/i386/i386.c (PTA_SKYLAKE_AVX512): Add PTA_CLWB. | |
3034 | (PTA_CANNONLAKE): Remove PTA_CLWB. | |
3035 | ||
3036 | 2017-12-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
3037 | ||
3038 | PR target/83332 | |
3039 | * config/rs6000/vector.md (vcondv2dfv2di): New define_expand. | |
3040 | (vcondv2div2df): Likewise. | |
3041 | (vconduv2dfv2di): Likewise. | |
3042 | ||
3043 | 2017-12-12 Jakub Jelinek <jakub@redhat.com> | |
3044 | ||
3045 | * builtins.def (BUILT_IN_NEXTAFTER, BUILT_IN_NEXTAFTERF, | |
3046 | BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD, BUILT_IN_NEXTTOWARDF, | |
3047 | BUILT_IN_NEXTTOWARDL): Use ATTR_MATHFN_ERRNO instead of | |
3048 | ATTR_MATHFN_FPROUNDING_ERRNO. | |
3049 | ||
3050 | 2017-12-12 Richard Biener <rguenther@suse.de> | |
3051 | ||
3052 | PR tree-optimization/83385 | |
3053 | * graphite-scop-detection.c (get_order, order): Remove. | |
3054 | (bb_to_rpo): New global. | |
3055 | (cmp_pbbs): Adjust. | |
3056 | (build_scops): Sort pbbs in RPO order. | |
3057 | ||
3058 | 2017-12-12 James Greenhalgh <james.greenhalgh@arm.com> | |
3059 | ||
3060 | * combine.c (simplify_set): Do not transform subregs to zero_extends | |
3061 | if the destination mode is a vector mode. | |
3062 | ||
3063 | 2017-12-12 Jakub Jelinek <jakub@redhat.com> | |
3064 | ||
3065 | PR tree-optimization/83359 | |
3066 | * tree-cfg.h (fold_loop_internal_call): Declare. | |
3067 | * tree-vectorizer.c (fold_loop_internal_call): Moved to ... | |
3068 | * tree-cfg.c (fold_loop_internal_call): ... here. No longer static. | |
3069 | (find_loop_dist_alias): New function. | |
3070 | (move_sese_region_to_fn): If any dloop->orig_loop_num value is | |
3071 | updated, also adjust any corresponding LOOP_DIST_ALIAS internal | |
3072 | calls. | |
3073 | ||
3074 | PR tree-optimization/80631 | |
3075 | * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo. | |
3076 | (vect_create_epilog_for_reduction): Add INDUC_VAL and INDUC_CODE | |
3077 | arguments, for INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of | |
3078 | hardcoding zero as the value if COND_EXPR is never true. For | |
3079 | INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if | |
3080 | INDUC_VAL is equal to INITIAL_DEF, and use INDUC_CODE instead of | |
3081 | hardcoding MAX_EXPR as the reduction operation. | |
3082 | (is_nonwrapping_integer_induction): Allow negative step. | |
3083 | (vectorizable_reduction): Compute INDUC_VAL and INDUC_CODE for | |
3084 | vect_create_epilog_for_reduction, if no value is suitable, don't | |
3085 | use INTEGER_INDUC_COND_REDUCTION for now. Formatting fixes. | |
3086 | ||
3087 | 2017-12-12 Richard Biener <rguenther@suse.de> | |
3088 | ||
3089 | PR tree-optimization/81889 | |
3090 | * tree-ssa-loop-niter.c (infer_loop_bounds_from_signedness): Use | |
3091 | range info from the non-wrapping IV instead of just the range | |
3092 | of the type. | |
3093 | ||
3094 | 2017-12-12 Julia Koval <julia.koval@intel.com> | |
3095 | ||
3096 | * config.gcc: Add vaesintrin.h. | |
3097 | * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI): | |
3098 | New type. | |
3099 | * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi, | |
3100 | __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi): | |
3101 | New builtins. | |
3102 | * config/i386/i386.c (ix86_expand_args_builtin): Handle new type. | |
3103 | * config/i386/immintrin.h: Include vaesintrin.h. | |
3104 | * config/i386/sse.md (vaesdec_<mode>): New pattern. | |
3105 | * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128, | |
3106 | _mm_aesdec_epi128): New intrinsics. | |
3107 | ||
3108 | 2017-12-12 Julia Koval <julia.koval@intel.com> | |
3109 | ||
3110 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_VAES_SET, | |
3111 | OPTION_MASK_ISA_VAES_UNSET): New. | |
3112 | (ix86_handle_option): Handle -mvaes. | |
3113 | * config/i386/cpuid.h: Define bit_VAES. | |
3114 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mvaes. | |
3115 | * config/i386/i386-c.c (__VAES__): New. | |
3116 | * config/i386/i386.c (ix86_target_string): Add -mvaes. | |
3117 | (ix86_valid_target_attribute_inner_p): Ditto. | |
3118 | * config/i386/i386.h (TARGET_VAES, TARGET_VAES_P): New. | |
3119 | * config/i386/i386.opt: Add -mvaes. | |
3120 | * doc/invoke.texi: Ditto. | |
3121 | ||
3122 | 2017-12-12 Alexandre Oliva <aoliva@redhat.com> | |
3123 | ||
3124 | * debug.h (gcc_debug_hooks): Add inline_entry. | |
3125 | * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. | |
3126 | * debug.c (do_nothing_debug_hooks): Likewise. | |
3127 | * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. | |
3128 | * dwarf2out.c (dwarf2_debug_hooks): Likewise. | |
3129 | (dwarf2_lineno_debug_hooks): Likewise. | |
3130 | ||
3131 | * common.opt (gstatement-frontiers): New, setting | |
3132 | debug_nonbind_markers_p. | |
3133 | * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): Activate. | |
3134 | * toplev.c (process_options): Autodetect value for debug statement | |
3135 | frontiers option. | |
3136 | * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Activate. | |
3137 | * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): New. | |
3138 | ||
3139 | * cfgexpand.c (expand_gimple_basic_block): Handle begin stmt | |
3140 | markers. Integrate source bind into debug stmt expand loop. | |
3141 | (pass_expand::execute): Check debug marker limit. Avoid deep | |
3142 | TER and expand debug locations for debug bind insns only. | |
3143 | * cse.c (insn_live_p): Keep nonbind markers and debug bindings | |
3144 | followed by them. | |
3145 | * df-scan.c (df_insn_delete): Accept out-of-block debug insn. | |
3146 | * final.c (reemit_insn_block_notes): Take current block from | |
3147 | nonbind markers. Declare note where it's first set. | |
3148 | (final_scan_insn): Handle begin stmt notes. Emit is_stmt according to | |
3149 | begin stmt markers if enabled. | |
3150 | (notice_source_line): Handle nonbind markers. Fail if their | |
3151 | location is unknown or that of builtins. | |
3152 | (rest_of_handle_final): Convert begin stmt markers to notes if | |
3153 | var-tracking didn't run. | |
3154 | (rest_of_clean_state): Skip begin stmt markers. | |
3155 | * gimple-pretty-print.c (dump_gimple_debug): Handle begin stmt | |
3156 | markers. | |
3157 | * function.c (allocate_struct_function): Set begin_stmt_markers. | |
3158 | * function.h (struct function): Add debug_marker_count counter | |
3159 | and debug_nonbind_markers flag. | |
3160 | * gimple-iterator.c (gsi_remove): Adjust debug_marker_count. | |
3161 | * gimple-low.c (lower_function_body): Adjust | |
3162 | debug_nonbind_markers. | |
3163 | (lower_stmt): Drop or skip gimple debug stmts. | |
3164 | (lower_try_catch): Skip debug stmts. | |
3165 | * gimple.c (gimple_build_debug_begin_stmt): New. | |
3166 | (gimple_copy): Increment debug_marker_count if copying one. | |
3167 | * gimple.h (gimple_build_debug_begin_stmt): Declare. | |
3168 | * gimplify.c (rexpr_location): New. | |
3169 | (rexpr_has_location): New. | |
3170 | (warn_switch_unreachable_r): Handle gimple debug stmts. | |
3171 | (shortcut_cond_r): Call expr_location. | |
3172 | (find_goto): New. | |
3173 | (find_goto_label): New. | |
3174 | (shortcut_cond_expr): Call expr_has_location, expr_location, and | |
3175 | find_goto_label. | |
3176 | (gimplify_cond_expr): Call find_goto_label, expr_has_location, and | |
3177 | expr_location. | |
3178 | (gimplify_expr): Handle begin stmt markers. Reject debug expr decls. | |
3179 | * langhooks-def.h (LANG_HOOKS_EMITS_BEGIN_STMT): New. Add to... | |
3180 | (LANG_HOOKS_INITIALIZER): ... this. | |
3181 | * langhooks.h (struct lang_hooks): Add emits_begin_stmt. | |
3182 | * lra-contraints.c (inherit_reload_reg): Tolerate between-blocks | |
3183 | debug insns. | |
3184 | (update_ebb_live_info): Skip debug insn markers. | |
3185 | * lra.c (debug_insn_static_data): Rename to... | |
3186 | (debug_bind_static_data): ... this. | |
3187 | (debug_marker_static_data): New. | |
3188 | (lra_set_insn_recog_data): Select one of the above depending | |
3189 | on debug insn kind. | |
3190 | (lra_update_isn_regno_info): Don't assume debug insns have | |
3191 | freqs. | |
3192 | (push_insns): Skip debug insns. | |
3193 | * lto-streamer-in.c (input_function): Drop debug stmts | |
3194 | depending on active options. Adjust debug_nonbind_markers. | |
3195 | * params.def (PARAM_MAX_DEBUG_MARKER_COUNT): New. | |
3196 | * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle | |
3197 | begin stmt marker notes. | |
3198 | (print_insn): Likewise. | |
3199 | * recog.c (extract_insn): Recognize rtl for debug markers. | |
3200 | * rtl.def (DEBUG_MARKER): New. | |
3201 | * tree-inline.c: Include params.h. | |
3202 | (remap_gimple_stmt): Handle nonbind markers. | |
3203 | (maybe_move_debug_stmts_to_successors): Likewise. | |
3204 | (copy_debug_stmt): Likewise. | |
3205 | * tree-iterator.c (append_to_statement_list_1): Append begin stmt | |
3206 | markers regardless of no side effects. | |
3207 | (tsi_link_before): Don't update container's side effects when adding | |
3208 | a begin stmt marker. | |
3209 | (tsi_link_after): Likewise. | |
3210 | (expr_first): Skip begin stmt markers. | |
3211 | (expr_last): Likewise. | |
3212 | * tree-pretty-print (dump_generic_node): Handle begin stmt markers. | |
3213 | * tree-ssa-threadedge.c (propagate_threaded_block_debug_info): | |
3214 | Disregard nonbind markers. | |
3215 | * tree.c (make_node_stat): Don't set side effects for begin stmt | |
3216 | markers. | |
3217 | (build1_stat): Likewise. | |
3218 | * tree.def (DEBUG_BEGIN_STMT): New. | |
3219 | * tree.h (GOTO_DESTINATION): Require a GOTO_EXPR. | |
3220 | * var-tracking.c (delete_debug_insns): Renamed to... | |
3221 | (delete_vta_debug_insns): ... this. | |
3222 | (reemit_marker_as_note): New. | |
3223 | (vt_initialize): Reemit markers. | |
3224 | (delete_vta_debug_insns): Likewise. | |
3225 | (vt_debug_insns_local): Reemit or delete markers. | |
3226 | (variable_tracking_main_1): Likewise. | |
3227 | * doc/generic.texi (DEBUG_BEGIN_STMT): Document. | |
3228 | * doc/gimple.texi (gimple_debug_begin_stmt_p): New. | |
3229 | (gimple_debug_nonbind_marker_p): New. | |
3230 | (gimple_build_debug_bind): Adjust. | |
3231 | (gimple_build_debug_begin_stmt): New. | |
3232 | * doc/invoke.texi (max-debug-marker-count): New param. | |
3233 | * doc/rtl.texi (debug_implicit_ptr, entry_value): New. | |
3234 | (debug_parameter_ref, debug_marker): New. | |
3235 | (NOTE_INSN_BEGIN_STMT): New. | |
3236 | (DEBUG_INSN): Describe begin stmt markers. | |
3237 | ||
3238 | * cfgbuild.c (find_bb_boundaries): Don't purge dead edges if, | |
3239 | without debug insns, we wouldn't, but clean up debug insns | |
3240 | after a control flow insn nevertheless. | |
3241 | ||
3242 | * cfgcleanup.c (delete_unreachable_blocks): Use alternate | |
3243 | block removal order if MAY_HAVE_DEBUG_BIND_INSNS. | |
3244 | * cfgexpand.c (label_rtx_for_bb): Skip debug insns. | |
3245 | * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns. | |
3246 | (rtl_tidy_fallthru_edge): Likewise. | |
3247 | (rtl_verify_fallthru): Likewise. | |
3248 | (rtl_verify_bb_layout): Likewise. | |
3249 | (skip_insns_after_block): Likewise. | |
3250 | (duplicate_insn_chain): Use DEBUG_BIND_INSN_P. | |
3251 | * dwarf2out.c: Include print-rtl.h. | |
3252 | (dwarf2out_next_real_insn): New. | |
3253 | (dwarf2out_var_location): Call it. Disregard begin stmt markers. | |
3254 | Dump debug binds in asm comments. | |
3255 | * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts. | |
3256 | * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust | |
3257 | callers to use gsi_start_nondebug_bb instead. | |
3258 | (gsi_after_labels): Skip gimple debug stmts. | |
3259 | (gsi_start_nondebug): New. | |
3260 | * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust. | |
3261 | (proper_loop_form_for_interchange): Adjust. | |
3262 | * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt. | |
3263 | * gimple.h (gimple_seq_last_nondebug_stmt): New. | |
3264 | * gimplify.c (last_stmt_in_scope): Skip debug stmts. | |
3265 | (collect_fallthrough_labels): Likewise. | |
3266 | (should_warn_for_implicit_fallthrough): Likewise. | |
3267 | (warn_implicit_fallthrough_r): Likewise. | |
3268 | (expand_FALLTHROUGH_r): Likewise. | |
3269 | * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust. | |
3270 | (graphite_copy_stmts_from_block): Skip nonbind markers. | |
3271 | * haifa-sched.c (sched_extend_bb): Skip debug insns. | |
3272 | * ipa-icf-gimple.c (func_checker::compare_bb): Adjust. | |
3273 | * jump.c (clean_barriers): Skip debug insns. | |
3274 | * omp-expand.c (expand_parallel_call): Skip debug insns. | |
3275 | (expand_task_call): Likewise. | |
3276 | (remove_exit_barrier): Likewise. | |
3277 | (expand_omp_taskreg): Likewise. | |
3278 | (expand_omp_for_init_counts): Likewise. | |
3279 | (expand_omp_for_generic): Likewise. | |
3280 | (expand_omp_for_static_nochunk): Likewise. | |
3281 | (expand_omp_for_static_chunk): Likewise. | |
3282 | (expand_omp_simd): Likewise. | |
3283 | (expand_omp_taskloop_for_outer): Likewise. | |
3284 | (expand_omp_taskloop_for_inner): Likewise. | |
3285 | (expand_oacc_for): Likewise. | |
3286 | (expand_omp_sections): Likewise. | |
3287 | (expand_omp_single): Likewise. | |
3288 | (expand_omp_synch): Likewise. | |
3289 | (expand_omp_atomic_load): Likewise. | |
3290 | (expand_omp_atomic_store): Likewise. | |
3291 | (expand_omp_atomic_fetch_op): Likewise. | |
3292 | (expand_omp_atomic_pipeline): Likewise. | |
3293 | (expand_omp_atomic_mutex): Likewise. | |
3294 | (expand_omp_target): Likewise. | |
3295 | (grid_expand_omp_for_loop): Likewise. | |
3296 | (grid_expand_target_grid_body): Likewise. | |
3297 | (build_omp_regions_1): Likewise. | |
3298 | * omp-low.c (check_combined_parallel): Skip debug stmts. | |
3299 | * postreload.c (fixup_debug_insns): Skip nonbind debug insns. | |
3300 | * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo. | |
3301 | * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in | |
3302 | test. | |
3303 | * tree-cfg.c (make_blobs_1): Skip debug stmts. | |
3304 | (make_edges): Likewise. | |
3305 | (cleanup_dead_labels): Likewise. | |
3306 | (gimple_can_merge_blocks_p): Likewise. | |
3307 | (stmt_starts_bb_p): Likewise. | |
3308 | (gimple_block_label): Likewise. | |
3309 | (gimple_redirect_edge_and_branch): Likewise. | |
3310 | * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping | |
3311 | of debug stmts. | |
3312 | (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with | |
3313 | TDF_SLIM. | |
3314 | * tree-pretty-print (print_declaration): Omit initializer in slim | |
3315 | dumps. | |
3316 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt | |
3317 | markers. | |
3318 | (eliminate_unnecessary_stmts): Stabilize block removal order. | |
3319 | * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts. | |
3320 | * var-tracking.c (get_first_insn): New. | |
3321 | (vt_emit_notes): Call it. | |
3322 | (vt_initialize): Walk any insns before the first BB. | |
3323 | (delete_debug_insns): Likewise. | |
3324 | ||
3325 | * gimple.h (enum gimple_debug_subcode): Add | |
3326 | GIMPLE_DEBUG_BEGIN_STMT. | |
3327 | (gimple_debug_begin_stmt_p): New. | |
3328 | (gimple_debug_nonbind_marker_p): New. | |
3329 | * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New. | |
3330 | (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from.... | |
3331 | (MAY_HAVE_DEBUG_STMTS): ... this. Check both. | |
3332 | * insn-notes.def (BEGIN_STMT): New. | |
3333 | * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New. | |
3334 | (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from.... | |
3335 | (MAY_HAVE_DEBUG_INSNS): ... this. Check both. | |
3336 | (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New. | |
3337 | (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New. | |
3338 | (INSN_DEBUG_MARKER_KIND): New. | |
3339 | (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New. | |
3340 | (INSN_VAR_LOCATION): Check for VAR_LOCATION. | |
3341 | (INSN_VAR_LOCATION_PTR): New. | |
3342 | * cfgexpand.c (expand_debug_locations): Handle debug bind insns | |
3343 | only. | |
3344 | (expand_gimple_basic_block): Likewise. Emit debug temps for TER | |
3345 | deps only if debug bind insns are enabled. | |
3346 | (pass_expand::execute): Avoid deep TER and expand | |
3347 | debug locations for debug bind insns only. | |
3348 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow | |
3349 | debug stmts special handling down to debug bind stmts. | |
3350 | * combine.c (try_combine): Narrow debug insns special handling | |
3351 | down to debug bind insns. | |
3352 | * cse.c (delete_trivially_dead_insns): Handle debug bindings. | |
3353 | Narrow debug insns preexisting special handling down to debug | |
3354 | bind insns. | |
3355 | * dce.c (rest_of_handle_ud_dce): Narrow debug insns special | |
3356 | handling down to debug bind insns. | |
3357 | * function.c (instantiate_virtual_regs): Skip debug markers, | |
3358 | adjust handling of debug binds. | |
3359 | * gimple-ssa-backprop.c (backprop::prepare_change): Try debug | |
3360 | temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS. | |
3361 | * haifa-sched.c (schedule_insn): Narrow special handling of debug | |
3362 | insns to debug bind insns. | |
3363 | * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow | |
3364 | special handling of debug stmts to debug bind stmts. | |
3365 | * ipa-split.c (split_function): Likewise. | |
3366 | * ira.c (combine_and_move_insns): Adjust debug bind insns only. | |
3367 | * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind | |
3368 | debug insns. | |
3369 | * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P. | |
3370 | * regrename.c (build_def_use): Likewise. | |
3371 | * regcprop.c (copyprop_hardreg_forward_1): Likewise. | |
3372 | (pass_cprop_hardreg): Narrow special casing of debug insns to | |
3373 | debug bind insns. | |
3374 | * regstat.c (regstat_init_n_sets_and_refs): Likewise. | |
3375 | * reload1.c (reload): Likewise. | |
3376 | * sese.c (sese_insert_phis_for_liveouts): Narrow special | |
3377 | casing of debug stmts to debug bind stmts. | |
3378 | * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise. | |
3379 | * ssa-iterators.h (num_imm_uses): Likewise. | |
3380 | * tree-cfg.c (gimple_merge_blocks): Narrow special casing of | |
3381 | debug stmts to debug bind stmts. | |
3382 | * tree-inline.c (tree_function_versioning): Narrow special casing | |
3383 | of debug stmts to debug bind stmts. | |
3384 | * tree-loop-distribution.c (generate_loops_for_partition): | |
3385 | Narrow special casing of debug stmts to debug bind stmts. | |
3386 | * tree-sra.c (analyze_access_subtree): Narrow special casing | |
3387 | of debug stmts to debug bind stmts. | |
3388 | * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug | |
3389 | stmts to debug bind stmts. | |
3390 | * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special | |
3391 | casing of debug stmts to debug bind stmts. | |
3392 | * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. | |
3393 | * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special | |
3394 | casing of debug stmts to debug bind stmts. | |
3395 | * tree-ssa-threadedge.c (propagate_threaded_block_debug_info): | |
3396 | Likewise. | |
3397 | * tree-ssa.c (flush_pending_stmts): Narrow special casing of | |
3398 | debug stmts to debug bind stmts. | |
3399 | (gimple_replace_ssa_lhs): Likewise. | |
3400 | (insert_debug_temp_for_var_def): Likewise. | |
3401 | (insert_debug_temps_for_defs): Likewise. | |
3402 | (reset_debug_uses): Likewise. | |
3403 | * tree-ssanames.c (release_ssa_name_fn): Likewise. | |
3404 | * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise. | |
3405 | (adjust_debug_stmts): Likewise. | |
3406 | (adjust_phi_and_debug_stmts): Likewise. | |
3407 | (vect_do_peeling): Likewise. | |
3408 | * tree-vect-loop.c (vect_transform_loop): Likewise. | |
3409 | * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P. | |
3410 | * var-tracking.c (adjust_mems): Narrow special casing of debug | |
3411 | insns to debug bind insns. | |
3412 | (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise. | |
3413 | (compute_bb_dataflow, vt_find_locations): Likewise. | |
3414 | (vt_expand_loc, emit_notes_for_changes): Likewise. | |
3415 | (vt_init_cfa_base): Likewise. | |
3416 | (vt_emit_notes): Likewise. | |
3417 | (vt_initialize): Likewise. | |
3418 | (vt_finalize): Likewise. | |
3419 | ||
3420 | * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder. | |
3421 | (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder. | |
3422 | (next_nonnote_nondebug_insn_bb): New. | |
3423 | (prev_nonnote_nondebug_insn_bb): New. | |
3424 | (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove. | |
3425 | * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls. | |
3426 | (prev_nonnote_nondebug_insn_bb): Declare. | |
3427 | (next_nonnote_nondebug_insn_bb): Declare. | |
3428 | * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns. | |
3429 | * cfgrtl.c (get_last_bb_insn): Likewise. | |
3430 | * lra.c (push_insns): Likewise. | |
3431 | ||
3432 | 2017-12-11 David Malcolm <dmalcolm@redhat.com> | |
3433 | ||
3434 | PR c/82050 | |
3435 | * selftest-run-tests.c (selftest::run_tests): Move start/finish code | |
3436 | to... | |
3437 | * selftest.c (selftest::test_runner::test_runner): New ctor. | |
3438 | (selftest::test_runner::~test_runner): New dtor. | |
3439 | * selftest.h (class selftest::test_runner): New class. | |
3440 | ||
3441 | 2017-12-11 Carl Love <cel@us.ibm.com> | |
3442 | ||
3443 | * config/rs6000/altivec.h (vec_extract_fp32_from_shorth, | |
3444 | vec_extract_fp32_from_shortl]): Add #defines. | |
3445 | * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion. | |
3446 | * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH, | |
3447 | ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND, | |
3448 | ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL, | |
3449 | ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD, | |
3450 | ALTIVEC_BUILTIN_VEC_SLL): Add expansions. | |
3451 | * doc/extend.texi: Add documentation for the added builtins. | |
3452 | ||
3453 | 2017-12-11 Alexandre Oliva <aoliva@redhat.com> | |
3454 | ||
3455 | PR rtl-optimization/80693 | |
3456 | PR rtl-optimization/81019 | |
3457 | PR rtl-optimization/81020 | |
3458 | * combine.c (distribute_notes): Reset any REG_UNUSED REGs that | |
3459 | are not mentioned in i3. Place the REG_UNUSED note on i2, | |
3460 | possibly modified to REG_DEAD, if it did not originate in i3. | |
3461 | ||
3462 | 2017-12-11 Jakub Jelinek <jakub@redhat.com> | |
3463 | ||
3464 | * recog.c (store_data_bypass_p_1): New function. | |
3465 | (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER. Use | |
3466 | store_data_bypass_p_1 to avoid code duplication. Formatting fixes. | |
3467 | ||
3468 | 2017-12-11 Segher Boessenkool <segher@kernel.crashing.org> | |
3469 | ||
3470 | PR rtl-optimization/83361 | |
3471 | * ifcvt.c (if_convert): Call fixup_partitions. | |
3472 | ||
3473 | 2017-12-11 Will Schmidt <will_schmidt@vnet.ibm.com> | |
3474 | ||
3475 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for | |
3476 | early folding of splat_u{8,16,32}. | |
3477 | ||
3478 | 2017-12-11 Jakub Jelinek <jakub@redhat.com> | |
3479 | ||
3480 | * config/aarch64/aarch64.c (aarch64_print_operand): Don't start | |
3481 | output_operand_lossage first argument with capital letter. | |
3482 | (aarch64_override_options): Don't start error and sorry first argument | |
3483 | with capital letter. | |
3484 | ||
3485 | 2017-12-11 Andi Kleen <ak@linux.intel.com> | |
3486 | ||
3487 | PR gcov-profile/83355 | |
3488 | * auto-profile.c (string_table::get_index_by_decl): Don't | |
3489 | recurse when abstract origin points to itself. | |
3490 | ||
3491 | 2017-12-11 Bin Cheng <bin.cheng@arm.com> | |
3492 | ||
3493 | PR tree-optimization/83320 | |
3494 | * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete. | |
3495 | (prune_datarefs_not_in_loop): Ditto. | |
3496 | ||
3497 | 2017-12-10 Gerald Pfeifer <gerald@pfeifer.com> | |
3498 | ||
3499 | * doc/install.texi (Specific): Tweak link to mkssoftware.com. | |
3500 | ||
3501 | 2017-12-10 Jakub Jelinek <jakub@redhat.com> | |
3502 | ||
3503 | PR tree-optimization/83337 | |
3504 | * gimple-loop-interchange.cc (compute_access_stride): Handle | |
3505 | bitfield DRs properly. | |
3506 | ||
3507 | 2017-12-09 Jakub Jelinek <jakub@redhat.com> | |
3508 | ||
3509 | PR tree-optimization/83338 | |
3510 | * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR | |
3511 | vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from | |
3512 | vector of unsigned integers to vector of signed integers. | |
3513 | ||
3514 | 2017-12-08 Vladimir Makarov <vmakarov@redhat.com> | |
3515 | ||
3516 | PR rtl-optimization/83317 | |
3517 | * lra-constraints.c (process_address_1): Add insn code check. | |
3518 | ||
3519 | 2017-12-08 Michael Matz <matz@suse.de> | |
3520 | ||
3521 | Fix PR tree-optimization/83323 | |
3522 | * gimple-loop-jam (unroll_jam_possible_p): Correct test for | |
3523 | head-controlled loops and loop BBs. | |
3524 | * common.opt (funroll-and-jam): Remove, instead ... | |
3525 | (floop-unroll-and-jam): ... reuse this option. | |
3526 | * opts.c (default_options_table): Use OPT_floop_unroll_and_jam. | |
3527 | * doc/invoke.texi (-funroll-and-jam): Move docu to ... | |
3528 | (-floop-unroll-and-jam): ... this option. | |
3529 | ||
3530 | 2017-12-08 Jakub Jelinek <jakub@redhat.com> | |
3531 | ||
3532 | * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix | |
3533 | a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent. | |
3534 | * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise. | |
3535 | ||
3536 | 2017-12-08 Richard Biener <rguenther@suse.de> | |
3537 | ||
3538 | PR middle-end/81782 | |
3539 | * tree-ssa-uninit.c (warn_uninitialized_vars): Properly | |
3540 | handle accesses outside of zero-sized vars. | |
3541 | ||
3542 | 2017-12-08 Martin Jambor <mjambor@suse.cz> | |
3543 | ||
3544 | PR tree-optimization/83141 | |
3545 | * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also | |
3546 | test for MEM_REFs implicitely changing types with padding. Remove | |
3547 | inline keyword. | |
3548 | (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks. | |
3549 | ||
3550 | 2017-12-08 Jakub Jelinek <jakub@redhat.com> | |
3551 | ||
3552 | * config/arc/arc.c (arc_attribute_table): Add exclusions to | |
3553 | the comment. | |
3554 | * config/avr/avr.c (avr_attribute_table): Likewise. | |
3555 | * config/msp430/msp430.c (msp430_attribute_table): Likewise. | |
3556 | * config/rl78/rl78.c (rl78_attribute_table): Likewise. | |
3557 | * config/nds32/nds32.c (nds32_attribute_table): Likewise. | |
3558 | * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member | |
3559 | of struct attribute_spec. | |
3560 | * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise. | |
3561 | ||
3562 | 2017-12-08 Ulrich Weigand <uweigand@de.ibm.com> | |
3563 | ||
3564 | PR target/82960 | |
3565 | * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true. | |
3566 | ||
3567 | 2017-12-08 Jan Hubicka <hubicka@ucw.cz> | |
3568 | ||
3569 | PR middle-end/83609 | |
3570 | * profile-count.c (profile_count::from_gcov_type): Move from | |
3571 | profile-count.h; handle overflow. | |
3572 | * profile-count.h (profile_count::from_gcov_type): Move offline. | |
3573 | ||
3574 | 2017-12-08 Segher Boessenkool <segher@kernel.crashing.org> | |
3575 | ||
3576 | PR rtl-optimization/83304 | |
3577 | * combine.c (move_deaths): If we do not know where a register died, | |
3578 | search for it. | |
3579 | ||
3580 | 2017-12-08 Richard Biener <rguenther@suse.de> | |
3581 | ||
3582 | * gimple-loop-interchange.cc (tree_loop_interchange::interchange): | |
3583 | Provide -fopt-info-loop feedback when we interchange in a nest. | |
3584 | ||
3585 | 2017-06-08 Richard Earnshaw <rearnsha@arm.com> | |
3586 | ||
3587 | * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names | |
3588 | for armv6 ARM CPU IDs. | |
3589 | ||
3590 | 2017-06-08 Richard Earnshaw <rearnsha@arm.com> | |
3591 | ||
3592 | * common/config/arm/arm-common.c: Include <algorithm>. | |
3593 | (INCLUDE_VECTOR): Define. | |
3594 | (compare_opt_names): New function. | |
3595 | (arm_rewrite_selected_arch): Only strip out extensions that can be | |
3596 | expressed through -mfpu. Sort the remaining extensions | |
3597 | alphabetically. | |
3598 | ||
3599 | 2017-06-08 Richard Earnshaw <rearnsha@arm.com> | |
3600 | ||
3601 | * config/arm/arm.h (arm_asm_auto_mfpu): Declare. | |
3602 | (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu. | |
3603 | (ASM_CPU_SPEC): Use it if -mfpu is set to auto. | |
3604 | * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function. | |
3605 | ||
3606 | 2017-06-08 Tristan Gingold <gindold@adacore.com> | |
3607 | ||
3608 | PR ada/81470 | |
3609 | * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit | |
3610 | .cfi_personality or .cfi_lsda if the eh data format is dwarf2. | |
3611 | ||
3612 | 2017-12-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
3613 | ||
3614 | * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member | |
3615 | of struct attribute_spec. | |
3616 | ||
3617 | 2017-12-08 Julia Koval <julia.koval@intel.com> | |
3618 | ||
3619 | * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32, | |
3620 | _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics. | |
3621 | * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32, | |
3622 | _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32, | |
3623 | _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32, | |
3624 | _mm_maskz_dpwssds_epi32): Ditto. | |
3625 | ||
3626 | 2017-12-08 Richard Biener <rguenther@suse.de> | |
3627 | ||
3628 | PR tree-optimization/81303 | |
3629 | * tree-vect-stmts.c (vect_is_simple_cond): For invariant | |
3630 | conditions try to create a comparison vector type matching | |
3631 | the data vector type. | |
3632 | (vectorizable_condition): Adjust. | |
3633 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): | |
3634 | Leave invariant conditions alone in case we can vectorize those. | |
3635 | ||
3636 | 2017-12-08 Julia Koval <julia.koval@intel.com> | |
3637 | ||
3638 | * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32, | |
3639 | _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics. | |
3640 | * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32, | |
3641 | _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32, | |
3642 | _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto. | |
3643 | ||
3644 | 2017-12-08 Julia Koval <julia.koval@intel.com> | |
3645 | ||
3646 | * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32, | |
3647 | _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New. | |
3648 | * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32, | |
3649 | _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32, | |
3650 | _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32, | |
3651 | _mm_maskz_dpbusds_epi32): New intrinsics. | |
3652 | ||
3653 | 2017-12-07 Sandra Loosemore <sandra@codesourcery.com> | |
3654 | ||
3655 | * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory | |
3656 | operand. | |
3657 | (ld<bh>io_signed): Likewise. | |
3658 | (st<bhw>io): Likewise. | |
3659 | * config/nios2/predicates.md (ldstio_memory_operand): Allow | |
3660 | SMALL_INT12 constant integer operand. | |
3661 | ||
3662 | 2017-12-07 Sandra Loosemore <sandra@codesourcery.com> | |
3663 | ||
3664 | * config/nios2/nios2.c (nios2_symbolic_constant_allowed): | |
3665 | Rename to... | |
3666 | (nios2_large_constant_allowed): ...this. Adjust uses. | |
3667 | (nios2_plus_symbolic_constant_p): Rename to... | |
3668 | (nios2_plus_large_constant_p): ...this. Adjust uses. | |
3669 | (nios2_legitimate_address_p): Correct CONST_INT handling. | |
3670 | (nios2_symbolic_memory_operand_p): Rename to... | |
3671 | (nios2_large_constant_memory_operand_p): ...this. Adjust uses. | |
3672 | (nios2_large_constant_p): Check for large constant integers too. | |
3673 | (nios2_split_large_constant): Handle constant integers. | |
3674 | (nios2_split_symbolic_memory_operand): Rename to... | |
3675 | (nios2_split_large_constant_memory_operand): ...this. Adjust uses. | |
3676 | (nios2_legitimize_constant_address): Handle constant integers. | |
3677 | (r0rel_constant_p): Handle small constant integers. | |
3678 | (nios2_print_operand_address): Handle r0-relative integer addresses. | |
3679 | * config/nios2/nios2-protos.h: Adjust for renamed functions. | |
3680 | * config/nios2/nios2.md: Adjust for renamed functions. | |
3681 | ||
3682 | 2017-12-07 Andrew Waterman <andrew@sifive.com> | |
3683 | ||
3684 | * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define. | |
3685 | (TARGET_HAVE_SRODATA_SECTION): New define. | |
3686 | (riscv_select_section): New function. | |
3687 | ||
3688 | 2017-12-08 Joseph Myers <joseph@codesourcery.com> | |
3689 | Alexander Monakov <amonakov@ispras.ru> | |
3690 | Jakub Jelinek <jakub@redhat.com> | |
3691 | ||
3692 | PR target/81906 | |
3693 | * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math. | |
3694 | ||
3695 | 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> | |
3696 | ||
3697 | * config/aarch64/aarch64.c (aarch64_print_address_internal): Return | |
3698 | a bool success value. Don't call output_operand_lossage here. | |
3699 | (aarch64_print_ldpstp_address): Return a bool success value. | |
3700 | (aarch64_print_operand_address): Call output_addr_const if | |
3701 | aarch64_print_address_internal fails. | |
3702 | (aarch64_print_operand): Don't assert that the mode is 16 bytes for | |
3703 | 'y'; call output_operand_lossage instead. Call output_operand_lossage | |
3704 | if aarch64_print_ldpstp_address fails. | |
3705 | ||
3706 | 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> | |
3707 | ||
3708 | * tree-vector-builder.h | |
3709 | (tree_vector_builder::binary_encoded_nelts): Declare. | |
3710 | * tree-vector-builder.c | |
3711 | (tree_vector_builder::binary_encoded_nelts): New function. | |
3712 | * fold-const.c (negate_expr_p): Likewise. | |
3713 | (operand_equal_p, fold_checksum_tree): Likewise. | |
3714 | * tree-loop-distribution.c (const_with_all_bytes_same): Likewise. | |
3715 | * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop) | |
3716 | (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise. | |
3717 | (uniform_vector_p): Likewise. | |
3718 | * varasm.c (const_hash_1, compare_constant): Likewise. | |
3719 | * tree-ssa-ccp.c: Include tree-vector-builder.h. | |
3720 | (valid_lattice_transition): Operate directly on the VECTOR_CST | |
3721 | encoding. | |
3722 | * ipa-icf.c: Include tree-vector-builder.h. | |
3723 | (sem_variable::equals): Operate directly on the VECTOR_CST encoding. | |
3724 | * print-tree.c (print_node): Print encoding of VECTOR_CSTs. | |
3725 | ||
3726 | 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> | |
3727 | ||
3728 | * tree.c (build_vector): Delete. | |
3729 | * tree.h (build_vector): Make static and move into the self-testing | |
3730 | block. | |
3731 | ||
3732 | 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> | |
3733 | ||
3734 | * vector-builder.h (vector_builder::derived): New const overload. | |
3735 | (vector_builder::elt): New function. | |
3736 | * tree-vector-builder.h (tree_vector_builder::type): New function. | |
3737 | (tree_vector_builder::apply_step): Declare. | |
3738 | * tree-vector-builder.c (tree_vector_builder::apply_step): New | |
3739 | function. | |
3740 | * gimple-fold.h (tree_vector_builder): Declare. | |
3741 | (gimple_build_vector): Take a tree_vector_builder instead of a | |
3742 | type and vector of elements. | |
3743 | * gimple-fold.c (gimple_build_vector): Likewise. | |
3744 | * tree-vect-loop.c (get_initial_def_for_reduction): Update call | |
3745 | accordingly. | |
3746 | (get_initial_defs_for_reduction): Likewise. | |
3747 | (vectorizable_induction): Likewise. | |
3748 | ||
3749 | 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> | |
3750 | ||
3751 | * tree-vector-builder.h | |
3752 | (tree_vector_builder::new_binary_operation): Declare. | |
3753 | * tree-vector-builder.c | |
3754 | (tree_vector_builder::new_binary_operation): New function. | |
3755 | * fold-const.c (fold_relational_const): Use it. | |
3756 | (const_binop): Likewise. Check that both input vectors have | |
3757 | the same number of elements, thus excluding things like WIDEN_SUM. | |
3758 | Check whether it is possible to operate directly on the encodings | |
3759 | of stepped inputs. | |
3760 | ||
3761 | 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> | |
3762 | ||
3763 | * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and | |
3764 | new_unary_operation, operating only on the encoded elements. | |
3765 | (const_unop): Likewise. | |
3766 | (exact_inverse): Likewise. | |
3767 | (distributes_over_addition_p): New function. | |
3768 | (const_binop): Use tree_vector_builder and new_unary_operation | |
3769 | for combinations of VECTOR_CST and INTEGER_CST. Operate only | |
3770 | on the encoded elements unless the encoding is strided and the | |
3771 | operation does not distribute over addition. | |
3772 | (fold_convert_const): Use tree_vector_builder and | |
3773 | new_unary_operation. Operate only on the encoded elements | |
3774 | for truncating integer conversions, or for non-stepped encodings. | |
3775 | ||
3776 | 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> | |
3777 | ||
3778 | * config/sparc/sparc.c: Include tree-vector-builder.h. | |
3779 | (sparc_fold_builtin): Use tree_vector_builder instead of build_vector. | |
3780 | * expmed.c: Include tree-vector-builder.h. | |
3781 | (make_tree): Use tree_vector_builder instead of build_vector. | |
3782 | * fold-const.c: Include tree-vector-builder.h. | |
3783 | (const_binop): Use tree_vector_builder instead of build_vector. | |
3784 | (const_unop): Likewise. | |
3785 | (native_interpret_vector): Likewise. | |
3786 | (fold_vec_perm): Likewise. | |
3787 | (fold_ternary_loc): Likewise. | |
3788 | * gimple-fold.c: Include tree-vector-builder.h. | |
3789 | (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead | |
3790 | of build_vector. | |
3791 | * tree-ssa-forwprop.c: Include tree-vector-builder.h. | |
3792 | (simplify_vector_constructor): Use tree_vector_builder instead | |
3793 | of build_vector. | |
3794 | * tree-vect-generic.c: Include tree-vector-builder.h. | |
3795 | (add_rshift): Use tree_vector_builder instead of build_vector. | |
3796 | (expand_vector_divmod): Likewise. | |
3797 | (optimize_vector_constructor): Likewise. | |
3798 | * tree-vect-loop.c: Include tree-vector-builder.h. | |
3799 | (vect_create_epilog_for_reduction): Use tree_vector_builder instead | |
3800 | of build_vector. Explicitly use a stepped encoding for | |
3801 | { 1, 2, 3, ... }. | |
3802 | * tree-vect-slp.c: Include tree-vector-builder.h. | |
3803 | (vect_get_constant_vectors): Use tree_vector_builder instead | |
3804 | of build_vector. | |
3805 | (vect_transform_slp_perm_load): Likewise. | |
3806 | (vect_schedule_slp_instance): Likewise. | |
3807 | * tree-vect-stmts.c: Include tree-vector-builder.h. | |
3808 | (vectorizable_bswap): Use tree_vector_builder instead of build_vector. | |
3809 | (vect_gen_perm_mask_any): Likewise. | |
3810 | (vectorizable_call): Likewise. Explicitly use a stepped encoding. | |
3811 | * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead | |
3812 | of build_vector. | |
3813 | (build_vector_from_val): Likewise. Explicitly use a duplicate | |
3814 | encoding. | |
3815 | ||
3816 | 2017-12-07 Richard Sandiford <richard.sandiford@arm.com> | |
3817 | ||
3818 | * doc/generic.texi (VECTOR_CST): Describe new representation of | |
3819 | vector constants. | |
3820 | * vector-builder.h: New file. | |
3821 | * tree-vector-builder.h: Likewise. | |
3822 | * tree-vector-builder.c: Likewise. | |
3823 | * Makefile.in (OBJS): Add tree-vector-builder.o. | |
3824 | * tree.def (VECTOR_CST): Update comment to refer to generic.texi. | |
3825 | * tree-core.h (tree_base): Add a vector_cst field to the u union. | |
3826 | (tree_vector): Change the number of elements to | |
3827 | vector_cst_encoded_nelts. | |
3828 | * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS. | |
3829 | (VECTOR_CST_ELTS): Delete. | |
3830 | (VECTOR_CST_ELT): Redefine using vector_cst_elt. | |
3831 | (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros. | |
3832 | (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise. | |
3833 | (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise. | |
3834 | (VECTOR_CST_ENCODED_ELT): Likewise. | |
3835 | (vector_cst_encoded_nelts): New function. | |
3836 | (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and | |
3837 | VECTOR_CST_NELTS_PER_PATTERN as arguments. | |
3838 | (vector_cst_int_elt, vector_cst_elt): Declare. | |
3839 | * tree.c: Include tree-vector-builder.h. | |
3840 | (tree_code_size): Abort if passed VECTOR_CST. | |
3841 | (tree_size): Update for new VECTOR_CST layout. | |
3842 | (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and | |
3843 | VECTOR_CST_NELTS_PER_PATTERN as arguments. | |
3844 | (build_vector): Use tree_vector_builder. | |
3845 | (vector_cst_int_elt, vector_cst_elt): New functions. | |
3846 | (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the | |
3847 | encoded elements and then create the vector in the canonical form. | |
3848 | (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill) | |
3849 | (check_vector_cst_stepped, test_vector_cst_patterns): New functions. | |
3850 | (tree_c_tests): Call test_vector_cst_patterns. | |
3851 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new | |
3852 | VECTOR_CST fields. | |
3853 | (hash_tree): Likewise. | |
3854 | * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise. | |
3855 | (streamer_write_tree_header): Likewise. | |
3856 | * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise. | |
3857 | (streamer_alloc_tree): Likewise. Update call to make_vector. | |
3858 | * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS. | |
3859 | ||
3860 | 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org> | |
3861 | ||
3862 | * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT) | |
3863 | (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names | |
3864 | * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise. | |
3865 | ||
3866 | 2017-12-07 Bin Cheng <bin.cheng@arm.com> | |
3867 | Richard Biener <rguenther@suse.de> | |
3868 | ||
3869 | PR tree-optimization/81303 | |
3870 | * Makefile.in (gimple-loop-interchange.o): New object file. | |
3871 | * common.opt (floop-interchange): Reuse the option from graphite. | |
3872 | * doc/invoke.texi (-floop-interchange): Ditto. New document for | |
3873 | -floop-interchange and mention it for -O3. | |
3874 | * opts.c (default_options_table): Enable -floop-interchange at -O3. | |
3875 | * gimple-loop-interchange.cc: New file. | |
3876 | * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter. | |
3877 | (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter. | |
3878 | * passes.def (pass_linterchange): New pass. | |
3879 | * timevar.def (TV_LINTERCHANGE): New time var. | |
3880 | * tree-pass.h (make_pass_linterchange): New declaration. | |
3881 | * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external | |
3882 | interchange. Record IV before/after increment in new parameters. | |
3883 | * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration. | |
3884 | * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction | |
3885 | path check into... | |
3886 | (check_reduction_path): ...New function here. | |
3887 | * tree-vectorizer.h (check_reduction_path): New declaration. | |
3888 | ||
3889 | 2017-12-07 Vladimir Makarov <vmakarov@redhat.com> | |
3890 | ||
3891 | PR target/83252 | |
3892 | PR rtl-optimization/80818 | |
3893 | * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER | |
3894 | always early clobbered. | |
3895 | * lra-lives.c (process_bb_lives): Check input hard regs for early | |
3896 | clobbered non-operand hard reg. | |
3897 | ||
3898 | 2017-12-07 Jakub Jelinek <jakub@redhat.com> | |
3899 | ||
3900 | PR middle-end/83164 | |
3901 | * tree-cfg.c (verify_gimple_assign_binary): Don't require | |
3902 | types_compatible_p, just that TYPE_MODE is the same. | |
3903 | ||
3904 | 2017-12-07 Martin Sebor <msebor@redhat.com> | |
3905 | ||
3906 | PR c/81544 | |
3907 | * attribs.c (empty_attribute_table): Initialize new member of | |
3908 | struct attribute_spec. | |
3909 | (decl_attributes): Add argument. Handle mutually exclusive | |
3910 | combinations of attributes. | |
3911 | (selftests::test_attribute_exclusions): New function. | |
3912 | (selftests::attribute_c_tests): Ditto. | |
3913 | * attribs.h (decl_attributes): Add default argument. | |
3914 | * selftest.h (attribute_c_tests): Declare. | |
3915 | * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests. | |
3916 | * tree-core.h (attribute_spec::exclusions, exclude): New type and | |
3917 | member. | |
3918 | * doc/extend.texi (Common Function Attributes): Update const and pure. | |
3919 | * config/alpha/alpha.c (vms_attribute_table): Initialize new member | |
3920 | of struct attribute_spec. | |
3921 | * config/arc/arc.c (arc_attribute_table): Same. | |
3922 | * config/arm/arm.c (arm_attribute_table): Same. | |
3923 | * config/avr/avr.c ( avr_attribute_table): Same. | |
3924 | * config/bfin/bfin.c (bfin_attribute_table): Same. | |
3925 | * config/cr16/cr16.c (cr16_attribute_table): Same. | |
3926 | * config/epiphany/epiphany.c (epiphany_attribute_table): Same. | |
3927 | * config/h8300/h8300.c (h8300_attribute_table): Same. | |
3928 | * config/i386/i386.c (ix86_attribute_table): Same. | |
3929 | * config/ia64/ia64.c (ia64_attribute_table): Same. | |
3930 | * config/m32c/m32c.c (m32c_attribute_table): Same. | |
3931 | * config/m32r/m32r.c (m32r_attribute_table): Same. | |
3932 | * config/m68k/m68k.c (m68k_attribute_table): Same. | |
3933 | * config/mcore/mcore.c (mcore_attribute_table): Same. | |
3934 | * config/microblaze/microblaze.c (microblaze_attribute_table): Same. | |
3935 | * config/mips/mips.c (mips_attribute_table): Same. | |
3936 | * config/msp430/msp430.c (msp430_attribute_table): Same. | |
3937 | * config/nds32/nds32.c (nds32_attribute_table): Same. | |
3938 | * config/nvptx/nvptx.c (nvptx_attribute_table): Same. | |
3939 | * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same. | |
3940 | * config/rl78/rl78.c (rl78__attribute_table): Same. | |
3941 | * config/rs6000/rs6000.c (rs6000_attribute_table): Same. | |
3942 | * onfig/rx/rx.c (rx_attribute_table): Same. | |
3943 | * config/s390/s390.c (s390_handle_vectorbool_attribute): Same. | |
3944 | * config/sh/sh.c (sh_attribute_table): Same. | |
3945 | * config/sparc/sparc.c (sparc_attribute_table): Same. | |
3946 | * config/spu/spu.c (spu_attribute_table): Same. | |
3947 | * config/stormy16/stormy16.c (xstormy16_attribute_table): Same. | |
3948 | * config/v850/v850.c (v850_attribute_table): Same. | |
3949 | * config/visium/visium.c (visium_attribute_table): Same. | |
3950 | ||
3951 | 2017-12-07 Tamar Christina <tamar.christina@arm.com> | |
3952 | ||
3953 | PR target/82641 | |
3954 | * config/arm/arm.c (INCLUDE_STRING): Define. | |
3955 | (arm_last_printed_arch_string, arm_last_printed_fpu_string): New. | |
3956 | (arm_declare_function_name): Conservatively emit .arch, .arch_extensions | |
3957 | and .fpu. | |
3958 | ||
3959 | 2017-12-07 Michael Matz <matz@suse.de> | |
3960 | ||
3961 | Add unroll and jam pass | |
3962 | ||
3963 | * gimple-loop-jam.c: New file. | |
3964 | * Makefile.in (OBJS): Add gimple-loop-jam.o. | |
3965 | * common.opt (funroll-and-jam): New option. | |
3966 | * opts.c (default_options_table): Add unroll-and-jam at -O3. | |
3967 | * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param. | |
3968 | (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto. | |
3969 | * passes.def: Add pass_loop_jam. | |
3970 | * timevar.def (TV_LOOP_JAM): Add. | |
3971 | * tree-pass.h (make_pass_loop_jam): Declare. | |
3972 | * cfgloop.c (flow_loop_tree_node_add): Add AT argument. | |
3973 | * cfgloop.h (flow_loop_tree_node_add): Adjust declaration. | |
3974 | * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call | |
3975 | to flow_loop_tree_node_add. | |
3976 | (duplicate_subloops, copy_loops_to): Append to sibling list. | |
3977 | * cfgloopmanip.h: (duplicate_loop): Adjust declaration. | |
3978 | * doc/invoke.texi (-funroll-and-jam): Document new option. | |
3979 | (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params. | |
3980 | ||
3981 | 2017-12-07 Richard Biener <rguenther@suse.de> | |
3982 | ||
3983 | PR tree-optimization/83296 | |
3984 | PR tree-optimization/67769 | |
3985 | * tree-ssa-phiopt.c (conditional_replacement): Do not reset | |
3986 | flow sensitive info in an unrelated BB. | |
3987 | (value_replacement): Use reset_flow_sensitive_info. | |
3988 | (minmax_replacement): Reset flow sensitive info on the def | |
3989 | we move. Do not reset flow sensitive info in the whole BB | |
3990 | we move the stmt to. | |
3991 | (abs_replacement): Likewise. | |
3992 | ||
3993 | 2017-12-07 Segher Boessenkool <segher@kernel.crashing.org> | |
3994 | ||
3995 | PR target/43871 | |
3996 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Set | |
3997 | rs6000_cpu to the given -mcpu=, or to the default processor. | |
3998 | ||
3999 | 2017-12-07 Segher Boessenkool <segher@kernel.crashing.org> | |
4000 | ||
4001 | * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete. | |
4002 | * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune | |
4003 | instead of rs6000_cpu_attr. | |
4004 | (rs6000_adjust_cost): Ditto. | |
4005 | (is_microcoded_insn): Ditto. | |
4006 | (rs6000_adjust_priority): Ditto. | |
4007 | (rs6000_issue_rate): Ditto. | |
4008 | (rs6000_use_sched_lookahead): Ditto. | |
4009 | (rs6000_use_sched_lookahead_guard): Ditto. | |
4010 | (rs6000_sched_reorder): Ditto. | |
4011 | (force_new_group): Ditto. | |
4012 | * config/rs6000/rs6000.md (cpu attribute): Ditto. | |
4013 | (group_ending_nop): Ditto. | |
4014 | ||
4015 | 2017-12-07 Segher Boessenkool <segher@kernel.crashing.org> | |
4016 | ||
4017 | * config/rs6000/rs6000.opt (rs6000_tune): New variable. | |
4018 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set | |
4019 | rs6000_tune. Use rs6000_tune instead of rs6000_cpu where appropriate. | |
4020 | (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where | |
4021 | appropriate. | |
4022 | (rs6000_reassociation_width): Ditto. | |
4023 | (rs6000_emit_epilogue): Ditto. | |
4024 | (rs6000_adjust_cost): Ditto. | |
4025 | (is_microcoded_insn): Ditto. | |
4026 | (is_cracked_insn): Ditto. | |
4027 | (rs6000_adjust_priority): Ditto. | |
4028 | (rs6000_sched_reorder): Ditto. | |
4029 | (rs6000_sched_reorder2): Ditto. | |
4030 | (insn_must_be_first_in_group): Ditto. | |
4031 | (insn_must_be_last_in_group): Ditto. | |
4032 | (rs6000_register_move_cost): Ditto. | |
4033 | * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of | |
4034 | rs6000_cpu. | |
4035 | ||
4036 | 2017-12-07 Julia Koval <julia.koval@intel.com> | |
4037 | ||
4038 | * config.gcc: Add vaesintrin.h. | |
4039 | * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI): | |
4040 | New type. | |
4041 | * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi, | |
4042 | __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi): | |
4043 | New builtins. | |
4044 | * config/i386/i386.c (ix86_expand_args_builtin): Handle new type. | |
4045 | * config/i386/immintrin.h: Include vaesintrin.h. | |
4046 | * config/i386/sse.md (vaesdec_<mode>): New pattern. | |
4047 | * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128, | |
4048 | _mm_aesdec_epi128): New intrinsics. | |
4049 | ||
4050 | 2017-12-06 David Malcolm <dmalcolm@redhat.com> | |
4051 | ||
4052 | * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o. | |
4053 | * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to | |
4054 | c-family/c-spellcheck.cc. | |
4055 | (best_macro_match::best_macro_match): Likewise. | |
4056 | * spellcheck-tree.h | |
4057 | (struct edit_distance_traits<cpp_hashnode *>): Move to | |
4058 | c-family/c-spellcheck.h. | |
4059 | (class best_macro_match): Likewise. | |
4060 | ||
4061 | 2017-12-06 Jakub Jelinek <jakub@redhat.com> | |
4062 | ||
4063 | PR tree-optimization/83293 | |
4064 | * gimple-ssa-strength-reduction.c (insert_initializers): Use | |
4065 | GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that | |
4066 | might insert into empty bb. | |
4067 | ||
4068 | PR sanitizer/81281 | |
4069 | * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate | |
4070 | simplify for plus with :c added, and pointer_plus without that. | |
4071 | ((T)P - (T)(P + A) -> -(T) A): Likewise. If type is integral | |
4072 | with undefined overflow and the conversion is not widening, | |
4073 | perform negation in utype and only convert to type afterwards. | |
4074 | ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate | |
4075 | simplify for plus with :c added, and pointer_plus without that. | |
4076 | If type is integral with undefined overflow and the conversion is | |
4077 | not widening, perform minus in utype and only convert to type | |
4078 | afterwards. Move the last pointer_diff_expr simplify into the | |
4079 | two outermost ifs. | |
4080 | ||
4081 | 2017-12-06 Martin Sebor <msebor@redhat.com> | |
4082 | ||
4083 | PR tree-optimization/82646 | |
4084 | * builtins.c (maybe_emit_chk_warning): Use size as the bound for | |
4085 | strncpy, not maxlen. | |
4086 | ||
4087 | 2017-12-06 Martin Sebor <msebor@redhat.com> | |
4088 | ||
4089 | * doc/invoke.texi (-Wstringop-truncation): Mention attribute | |
4090 | nonstring. | |
4091 | ||
4092 | PR tree-optimization/83075 | |
4093 | * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming | |
4094 | strncat/strncpy don't change length of source string. | |
4095 | ||
4096 | 2017-12-06 Eric Botcazou <ebotcazou@adacore.com> | |
4097 | ||
4098 | Revert | |
4099 | 2017-11-29 Martin Aberg <maberg@gaisler.com> | |
4100 | ||
4101 | * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length | |
4102 | to prevent b2bst errata sequence. | |
4103 | (sqrtdf2_fix): Likewise. | |
4104 | ||
4105 | 2017-12-06 Jakub Jelinek <jakub@redhat.com> | |
4106 | ||
4107 | PR tree-optimization/81945 | |
4108 | * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn. | |
4109 | * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved | |
4110 | to dest_cfun has orig_loop_num set, either remap it to the new | |
4111 | loop number if the loop got moved too, or clear it. | |
4112 | ||
4113 | 2017-12-05 Steve Ellcey <sellcey@cavium.com> | |
4114 | ||
4115 | * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap | |
4116 | to reservation. | |
4117 | (thunderx2t99_nothing): New insn reservation. | |
4118 | (thunderx2t99_mrs): New insn reservation. | |
4119 | (thunderx2t99_multiple): New insn reservation. | |
4120 | (thunderx2t99_alu_basi): Add bfx to reservation. | |
4121 | (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation. | |
4122 | ||
4123 | 2017-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
4124 | ||
4125 | PR target/82248 | |
4126 | * config/arm/arm.md (probe_stack) : Use the 'o' constraint. | |
4127 | ||
4128 | 2017-12-05 Bin Cheng <bin.cheng@arm.com> | |
4129 | ||
4130 | * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from | |
4131 | tree-ssa-pre.c::remove_dead_inserted_code. | |
4132 | * tree-ssa-dce.h: New file. | |
4133 | * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file. | |
4134 | (remove_dead_inserted_code): Move and rename to function | |
4135 | tree-ssa-dce.c::simple_dce_from_worklist. | |
4136 | (pass_pre::execute): Update use. | |
4137 | ||
4138 | 2017-12-05 Richard Biener <rguenther@suse.de> | |
4139 | ||
4140 | PR tree-optimization/83277 | |
4141 | * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure | |
4142 | to code-gen liveout vars. | |
4143 | ||
4144 | 2017-12-05 Richard Sandiford <richard.sandiford@linaro.org> | |
4145 | ||
4146 | * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal) | |
4147 | (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P. | |
4148 | (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to | |
4149 | split condition. | |
4150 | ||
4151 | 2017-12-05 Max Filippov <jcmvbkbc@gmail.com> | |
4152 | ||
4153 | * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New | |
4154 | function. | |
4155 | (TARGET_ASAN_SHADOW_OFFSET): New macro definition. | |
4156 | * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if | |
4157 | ASAN is enabled. | |
4158 | ||
4159 | 2017-12-05 Richard Biener <rguenther@suse.de> | |
4160 | ||
4161 | * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add. | |
4162 | * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP. | |
4163 | (pass_data_cse_sincos): Use TV_TREE_SINCOS. | |
4164 | (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL. | |
4165 | ||
4166 | 2017-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
4167 | ||
4168 | * dbxout.c (dbxout_block): Grow buf to 30 bytes. | |
4169 | ||
4170 | 2017-12-05 Martin Liska <mliska@suse.cz> | |
4171 | Jakub Jelinek <jakub@redhat.com> | |
4172 | ||
4173 | * doc/invoke.texi: Document the options. | |
4174 | * flag-types.h (enum sanitize_code): Add | |
4175 | SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT. | |
4176 | * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling | |
4177 | of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT. | |
4178 | * opts.c: Define new sanitizer options. | |
4179 | * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise. | |
4180 | (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise. | |
4181 | ||
4182 | 2017-12-05 Julia Koval <julia.koval@intel.com> | |
4183 | ||
4184 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET, | |
4185 | OPTION_MASK_ISA_AVX512VNNI_UNSET): New. | |
4186 | (ix86_handle_option): Handle -mavx512vnni. | |
4187 | * config/i386/cpuid.h (bit_AVX512VNNI): New bit. | |
4188 | * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit. | |
4189 | * config/i386/i386-c (__AVX512VNNI__): New. | |
4190 | * config/i386/i386.c (ix86_target_string): Handle new option. | |
4191 | (ix86_valid_target_attribute_inner_p): Handle new option. | |
4192 | * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New. | |
4193 | * config/i386/i386.opt (mavx512vnni): New option. | |
4194 | ||
4195 | 2017-12-01 Jan Hubicka <hubicka@ucw.cz> | |
4196 | ||
4197 | PR target/81616 | |
4198 | * athlon.md: Disable for generic. | |
4199 | * haswell.md: Enable for generic. | |
4200 | * i386.c (ix86_sched_init_global): Add core hooks for generic. | |
4201 | * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic | |
4202 | to 4. | |
4203 | (ix86_adjust_cost): Move generic to haswell path. | |
4204 | ||
4205 | 2017-12-04 Eric Botcazou <ebotcazou@adacore.com> | |
4206 | ||
4207 | * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref | |
4208 | instead of MEM_P in a couple more places. Fix formatting issues. | |
4209 | ||
4210 | 2017-12-04 Jim Wilson <jimw@sifive.com> | |
4211 | ||
4212 | * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST | |
4213 | instead of GP_REG_LAST-1. | |
4214 | (riscv_adjust_libcall_cfi_prologue): Likewise. | |
4215 | (riscv_adjust_libcall_cri_epilogue): Likewise. | |
4216 | * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in | |
4217 | comment. | |
4218 | ||
4219 | 2017-12-04 Luis Machado <luis.machado@linaro.org> | |
4220 | ||
4221 | * ipa-pure-const.c (check_decl): Add missing newline. | |
4222 | (state_from_flags): Likewise. | |
4223 | ||
4224 | 2017-12-04 Jeff Law <law@redhat.com> | |
4225 | ||
4226 | PR tree-optimizatin/78496 | |
4227 | * gimple-ssa-evrp-analyze.h | |
4228 | (evrp_range_analyzer::get_vr_values): Simplify. | |
4229 | * gimple-ssa-evrp-analyze.c: Corresponding changes. | |
4230 | * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h | |
4231 | and gimple-ssa-evrp-analyze.h. | |
4232 | (dom_opt_dom_walker class): Add evrp_range_analyzer member. | |
4233 | (simplify_stmt_for_jump_threading): Copy a blob of code from | |
4234 | tree-vrp.c to use ranges to simplify statements. | |
4235 | (dom_opt_dom_walker::before_dom_children): Call | |
4236 | evrp_range_analyzer::{enter,record_ranges_from_stmt} methods. | |
4237 | (dom_opt_dom_walker::after_dom_children): Similarly for | |
4238 | evrp_range_analyzer::leave. | |
4239 | (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize | |
4240 | conditionals. | |
4241 | ||
4242 | * gimple-ssa-evrp-analyze.c | |
4243 | (evrp_range_analyzer::extract_range_from_stmt): Always use | |
4244 | vr_values::update_value_range so preexisting range info is | |
4245 | medged with new range info, even if the new range is VR_VARYING. | |
4246 | ||
4247 | 2017-12-04 Segher Boessenkool <segher@kernel.crashing.org> | |
4248 | ||
4249 | * combine.c: Adjust comment. | |
4250 | (use_crosses_set_p): Delete. | |
4251 | (can_combine_p): Use modified_between_p instead of use_crosses_set_p. | |
4252 | (try_combine): Ditto. | |
4253 | ||
4254 | 2017-12-04 Richard Biener <rguenther@suse.de> | |
4255 | ||
4256 | PR tree-optimization/83255 | |
4257 | * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for): | |
4258 | Re-add zero-iteration check. | |
4259 | ||
4260 | 2017-12-04 Segher Boessenkool <segher@kernel.crashing.org> | |
4261 | ||
4262 | PR rtl-optimization/83245 | |
4263 | * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand | |
4264 | hard registers as earlyclobber, also if not in an asm. | |
4265 | ||
4266 | 2017-12-04 Segher Boessenkool <segher@kernel.crashing.org> | |
4267 | ||
4268 | PR bootstrap/83265 | |
4269 | Revert | |
4270 | 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> | |
4271 | ||
4272 | PR target/43871 | |
4273 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Set | |
4274 | rs6000_cpu based on cpu_index, not tune_index. | |
4275 | ||
4276 | 2017-12-04 Richard Biener <rguenther@suse.de> | |
4277 | ||
4278 | PR tree-optimization/83238 | |
4279 | * graphite-scop-detection.c (scop_detection::merge_sese): Make | |
4280 | code match comment, rejecting invalid SESE regions. | |
4281 | ||
4282 | 2017-12-03 John David Anglin <danglin@gcc.gnu.org> | |
4283 | ||
4284 | * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing, | |
4285 | require base operand is a REG_POINTER prior to reload on targets | |
4286 | with non-equivalent space registers. | |
4287 | ||
4288 | 2017-12-01 Jan Hubicka <hubicka@ucw.cz> | |
4289 | ||
4290 | * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping. | |
4291 | (update_specialized_profile): Fix updating of counts. | |
4292 | (perhaps_add_new_callers): Likewise. | |
4293 | ||
4294 | 2017-12-01 Jan Hubicka <hubicka@ucw.cz> | |
4295 | ||
4296 | PR target/81616 | |
4297 | * x86-tune.def: Remove obsolette FIXMEs. | |
4298 | (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic | |
4299 | (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64, | |
4300 | X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH): | |
4301 | Enable for generic. | |
4302 | (X86_TUNE_PAD_RETURNS): Disable for generic. | |
4303 | ||
4304 | 2017-12-02 Jakub Jelinek <jakub@redhat.com> | |
4305 | ||
4306 | PR tree-optimization/83170 | |
4307 | PR tree-optimization/83241 | |
4308 | * gimple-ssa-store-merging.c | |
4309 | (imm_store_chain_info::try_coalesce_bswap): Update vuse field from | |
4310 | gimple_vuse (ins_stmt) in case it has changed. | |
4311 | (imm_store_chain_info::output_merged_store): Likewise. | |
4312 | ||
4313 | * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle | |
4314 | POINTER_DIFF_EXPR. | |
4315 | ||
4316 | PR c++/81212 | |
4317 | * tree-cfg.c (pass_warn_function_return::execute): Handle | |
4318 | __builtin_ubsan_handle_missing_return like __builtin_unreachable | |
4319 | with BUILTINS_LOCATION. | |
4320 | ||
4321 | PR target/78643 | |
4322 | PR target/80583 | |
4323 | * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield | |
4324 | is BLKmode for vector field with vector raw mode, use TYPE_MODE | |
4325 | instead of DECL_MODE. | |
4326 | ||
4327 | * config/i386/i386-protos.h (standard_sse_constant_opcode): Change | |
4328 | last argument to rtx pointer. | |
4329 | * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument | |
4330 | with OPERANDS. For AVX+ 128-bit VEX encoded instructions over 256-bit | |
4331 | or 512-bit. If setting EXT_REX_SSE_REG_P, use EVEX encoded insn | |
4332 | depending on the chosen ISAs. | |
4333 | * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx, | |
4334 | *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal, | |
4335 | *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode | |
4336 | callers. | |
4337 | * config/i386/sse.md (mov<mode>_internal): Likewise. | |
4338 | * config/i386/mmx.md (*mov<mode>_internal): Likewise. | |
4339 | ||
4340 | 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> | |
4341 | ||
4342 | * doc/invoke.texi (-dp): Say that instruction cost is printed as well. | |
4343 | ||
4344 | 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> | |
4345 | ||
4346 | * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two | |
4347 | parameters from prototype. | |
4348 | * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two | |
4349 | parameters. Don't print a comment. | |
4350 | (emit_fusion_gpr_load): Adjust. | |
4351 | (emit_fusion_load_store): Adjust. | |
4352 | * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust. | |
4353 | * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion" | |
4354 | comment on the second line. | |
4355 | ||
4356 | 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> | |
4357 | ||
4358 | PR target/43871 | |
4359 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Set | |
4360 | rs6000_cpu based on cpu_index, not tune_index. | |
4361 | ||
4362 | 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org> | |
4363 | ||
4364 | * final.c (output_asm_name): Print insn_cost. Shorten output. Print | |
4365 | which_alternative instead of which_alternative + 1. | |
4366 | (output_asm_insn): Print an extra tab if the template is short. | |
4367 | ||
4368 | 2017-12-01 Jim Wilson <jimw@sifive.com> | |
4369 | ||
4370 | * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from | |
4371 | comment. | |
4372 | * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef. | |
4373 | * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG | |
4374 | reference. | |
4375 | * doc/tm.texi: Regenerate. | |
4376 | ||
4377 | 2017-12-01 Michael Meissner <meissner@linux.vnet.ibm.com> | |
4378 | ||
4379 | PR target/81959 | |
4380 | * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for | |
4381 | whether we can allocate pseudos before trying to fix an address. | |
4382 | * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the | |
4383 | memory address is indexed or indirect. | |
4384 | (floatuns_<mode>si2_hw2): Likewise. | |
4385 | ||
4386 | 2017-12-01 Jason Merrill <jason@redhat.com> | |
4387 | ||
4388 | * Makefile.in (TAGS): Add c-family/*.cc. | |
4389 | ||
4390 | 2017-12-01 Wilco Dijkstra <wdijkstr@arm.com> | |
4391 | ||
4392 | * config/aarch64/aarch64.md (call_insn): Use %c rather than %a. | |
4393 | (call_value_insn): Likewise. | |
4394 | (sibcall_insn): Likewise. | |
4395 | (sibcall_value_insn): Likewise. | |
4396 | (movsi_aarch64): Likewise. | |
4397 | (movdi_aarch64): Likewise. | |
4398 | (add_losym_): Likewise. | |
4399 | (ldr_got_small_): Likewise. | |
4400 | (ldr_got_small_sidi): Likewise. | |
4401 | (ldr_got_small_28k_): Likewise. | |
4402 | (ldr_got_small_28k_sidi): Likewise. | |
4403 | * config/aarch64/aarch64.c (aarch64_print_address_internal): | |
4404 | Move output_addr_const to symbolic case. Add error check. | |
4405 | ||
4406 | 2017-12-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
4407 | ||
4408 | * config/s390/predicates.md (plus16_Q_operand): New predicate. | |
4409 | * config/s390/s390.md: Disable MVC merging peephole if it would | |
4410 | disable operand forwarding. | |
4411 | (new peephole2): Split MVCs if it would turn them into up to 2 | |
4412 | forwardable MVCs. | |
4413 | ||
4414 | 2017-12-01 Richard Biener <rguenther@suse.de> | |
4415 | ||
4416 | PR tree-optimization/83232 | |
4417 | * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix | |
4418 | detection of same access. Instead of breaking the group here | |
4419 | do not consider the duplicate. Add comment explaining real fix. | |
4420 | ||
4421 | 2017-12-01 Jonathan Wakely <jwakely@redhat.com> | |
4422 | ||
4423 | * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo. | |
4424 | ||
4425 | 2017-12-01 Sudakshina Das <sudi.das@arm.com> | |
4426 | ||
4427 | * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute. | |
4428 | ||
4429 | 2017-12-01 Jakub Jelinek <jakub@redhat.com> | |
4430 | ||
4431 | * function.h (struct function): Remove cilk_frame_decl, | |
4432 | is_cilk_function and calls_cilk_spawn fields. | |
4433 | * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk | |
4434 | field. | |
4435 | * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear | |
4436 | cilk_elemental field. | |
4437 | * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field. | |
4438 | * target.def: Adjust comment. | |
4439 | * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): | |
4440 | Don't test cilk_elemental. | |
4441 | ||
4442 | PR tree-optimization/83233 | |
4443 | * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use | |
4444 | bswap_stat name for the struct. | |
4445 | ||
4446 | PR c/79153 | |
4447 | * tree.h (SWITCH_BREAK_LABEL_P): Define. | |
4448 | * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND | |
4449 | starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with | |
4450 | SWITCH_BREAK_LABEL_P set on the label. | |
4451 | (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label | |
4452 | added for default case if it was missing and not all cases covered. | |
4453 | Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if | |
4454 | switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P | |
4455 | set on the label. | |
4456 | * tree-chrec.c (evolution_function_is_univariate_p): Add return true; | |
4457 | to avoid -Wimplicit-fallthrough warning. | |
4458 | * config/i386/i386.c (ix86_expand_special_args_builtin): Add | |
4459 | FALLTHRU comment to avoid -Wimplicit-fallthrough warning. | |
4460 | ||
4461 | PR tree-optimization/83221 | |
4462 | * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank | |
4463 | down by 16. | |
4464 | (init_reassoc): Formatting fix. | |
4465 | ||
4466 | PR sanitizer/81275 | |
4467 | * tree-cfg.c (group_case_labels_stmt): Don't optimize away | |
4468 | C++ FE implicitly added __builtin_unreachable () until -Wreturn-type | |
4469 | is diagnosed. | |
4470 | ||
4471 | PR sanitizer/83219 | |
4472 | * tree-cfg.c: Include asan.h. | |
4473 | (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable. | |
4474 | ||
4475 | 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> | |
4476 | ||
4477 | * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction. | |
4478 | ||
4479 | 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> | |
4480 | ||
4481 | * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for | |
4482 | vpcmpeqd instruction. | |
4483 | ||
4484 | 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com> | |
4485 | ||
4486 | * config/i386/i386.c (standard_sse_constant_opcode): Fix | |
4487 | registers type for 128bit mode. | |
4488 | ||
4489 | 2017-11-30 Jakub Jelinek <jakub@redhat.com> | |
4490 | ||
4491 | * spellcheck-tree.c (test_find_closest_identifier): Use ; instead | |
4492 | of ;;. | |
4493 | * gengtype-state.c (read_state_pair): Likewise. | |
4494 | * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise. | |
4495 | * sel-sched-dump.c (dump_insn_rtx_1): Likewise. | |
4496 | * ipa-cp.c (intersect_aggregates_with_edge): Likewise. | |
4497 | * ifcvt.c (noce_try_store_flag_constants): Likewise. | |
4498 | * tree-ssa-ccp.c (ccp_finalize): Likewise. | |
4499 | * omp-grid.c (grid_process_kernel_body_copy): Likewise. | |
4500 | * builtins.c (fold_builtin_3): Likewise. | |
4501 | * graphite-scop-detection.c | |
4502 | (scop_detection::stmt_has_simple_data_refs_p): Likewise. | |
4503 | * hsa-gen.c (hsa_function_representation::hsa_function_representation): | |
4504 | Likewise. | |
4505 | ||
4506 | 2017-12-01 Maxim Ostapenko <m.ostapenko@samsung.com> | |
4507 | ||
4508 | PR sanitizer/81697 | |
4509 | * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p | |
4510 | parameter. Return true if ignore_decl_rtl_set_p is true and other | |
4511 | conditions are satisfied. | |
4512 | * asan.h (asan_protect_global): Add new parameter. | |
4513 | * varasm.c (categorize_decl_for_section): Pass true as second parameter | |
4514 | to asan_protect_global calls. | |
4515 | ||
4516 | 2017-11-30 Jim Wilson <jimw@sifive.com> | |
4517 | ||
4518 | * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and | |
4519 | -mno-memcpy options. For -mplt, -mfdiv, -mdiv, -msave-restore, and | |
4520 | -mstrict-align, add info on default value. Delete redundant lines for | |
4521 | -mabi. Add missing -mexplicit-relocs docs. | |
4522 | ||
4523 | 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com> | |
4524 | ||
4525 | * config/arc/arc.md (trap): New pattern. | |
4526 | ||
4527 | 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com> | |
4528 | ||
4529 | * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL | |
4530 | instruction to end into a delay slot. | |
4531 | * config/arc/arc.md (cond_delay_insn): Check if the instruction | |
4532 | can be placed into a delay slot against reg_note. | |
4533 | ||
4534 | 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com> | |
4535 | ||
4536 | * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start | |
4537 | labels number of usages. | |
4538 | ||
4539 | 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com> | |
4540 | ||
4541 | * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New | |
4542 | function. | |
4543 | (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define. | |
4544 | ||
4545 | 2017-11-30 Jakub Jelinek <jakub@redhat.com> | |
4546 | ||
4547 | PR target/83210 | |
4548 | * internal-fn.c (expand_mul_overflow): Optimize unsigned | |
4549 | multiplication by power of 2 constant into two shifts + comparison. | |
4550 | ||
4551 | 2017-11-30 Jan Hubicka <hubicka@ucw.cz> | |
4552 | ||
4553 | PR target/81616 | |
4554 | * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs. | |
4555 | ||
4556 | 2017-11-30 Richard Biener <rguenther@suse.de> | |
4557 | ||
4558 | PR tree-optimization/83202 | |
4559 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add | |
4560 | allow_peel argument and guard peeling. | |
4561 | (canonicalize_loop_induction_variables): Likewise. | |
4562 | (canonicalize_induction_variables): Pass false. | |
4563 | (tree_unroll_loops_completely_1): Pass unroll_outer to disallow | |
4564 | peeling from cunrolli. | |
4565 | ||
4566 | 2017-11-29 Segher Boessenkool <segher@kernel.crashing.org> | |
4567 | ||
4568 | * combine.c (try_combine): Print a message to dump file whenever | |
4569 | I0, I1, or I2 cannot be combined into I3. | |
4570 | ||
4571 | 2017-11-29 Segher Boessenkool <segher@kernel.crashing.org> | |
4572 | ||
4573 | PR rtl-optimization/83156 | |
4574 | PR rtl-optimization/82621 | |
4575 | * combine.c (try_combine): Don't split an I2 if one of the dests is | |
4576 | set again before I3. Allow unused dests. | |
4577 | ||
4578 | 2017-11-29 Segher Boessenkool <segher@kernel.crashing.org> | |
4579 | ||
4580 | * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New. | |
4581 | ||
4582 | 2017-11-29 Vladimir Makarov <vmakarov@redhat.com> | |
4583 | ||
4584 | PR rtl-optimization/80818 | |
4585 | * lra.c (collect_non_operand_hard_regs): New arg insn. Pass it | |
4586 | recursively. Use insn code for clobber. | |
4587 | (lra_set_insn_recog_data): Pass the new arg to | |
4588 | collect_non_operand_hard_regs. | |
4589 | (add_regs_to_insn_regno_info): Pass insn instead of uid. Use insn | |
4590 | code for clobber. | |
4591 | (lra_update_insn_regno_info): Pass insn to | |
4592 | add_regs_to_insn_regno_info. | |
4593 | ||
4594 | 2017-11-29 Jim Wilson <jimw@sifive.com> | |
4595 | Andrew Waterman <andrew@sifive.com> | |
4596 | ||
4597 | * config/riscv/riscv.c (SINGLE_SHIFT_COST): New. | |
4598 | (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return | |
4599 | SINGLE_SHIFT_COST. Case LT and ZERO_EXTEND, likewise. Case ASHIFT, | |
4600 | use SINGLE_SHIFT_COST. | |
4601 | * config/riscv/riscv.md (lshrsi3_zero_extend_1): New. | |
4602 | (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New. | |
4603 | ||
4604 | 2017-11-29 Julia Koval <julia.koval@intel.com> | |
4605 | ||
4606 | * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16, | |
4607 | _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32, | |
4608 | _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64, | |
4609 | _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics. | |
4610 | * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16, | |
4611 | _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32, | |
4612 | _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64, | |
4613 | _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16, | |
4614 | _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32, | |
4615 | _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64, | |
4616 | _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto. | |
4617 | * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi, | |
4618 | __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz, | |
4619 | __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask, | |
4620 | __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi, | |
4621 | __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz, | |
4622 | __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask, | |
4623 | __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si, | |
4624 | __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz, | |
4625 | __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask, | |
4626 | __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di, | |
4627 | __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz, | |
4628 | __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask, | |
4629 | __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di, | |
4630 | __builtin_ia32_vpshldv_v2di_mask, | |
4631 | __builtin_ia32_vpshldv_v2di_maskz): New builtins. | |
4632 | * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask, | |
4633 | vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns. | |
4634 | ||
4635 | 2017-11-29 Julia Koval <julia.koval@intel.com> | |
4636 | ||
4637 | * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16, | |
4638 | _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32, | |
4639 | _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64, | |
4640 | _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics. | |
4641 | * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16, | |
4642 | _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32, | |
4643 | _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64, | |
4644 | _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16, | |
4645 | _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32, | |
4646 | _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64, | |
4647 | _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto. | |
4648 | * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI, | |
4649 | V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT, | |
4650 | V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT, | |
4651 | V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI, | |
4652 | V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT, | |
4653 | V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT, | |
4654 | V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types. | |
4655 | * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. | |
4656 | * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask, | |
4657 | vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern. | |
4658 | ||
4659 | 2017-11-29 Daniel Cederman <cederman@gaisler.com> | |
4660 | ||
4661 | * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the | |
4662 | movsi_pic_gotdata_op instruction as a load for the UT699 errata | |
4663 | workaround. | |
4664 | ||
4665 | 2017-11-29 Martin Aberg <maberg@gaisler.com> | |
4666 | ||
4667 | * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length | |
4668 | to prevent b2bst errata sequence. | |
4669 | (sqrtdf2_fix): Likewise. | |
4670 | ||
4671 | 2017-11-29 Daniel Cederman <cederman@gaisler.com> | |
4672 | ||
4673 | * config/sparc/sparc.c (fpop_reg_depend_p): New function. | |
4674 | (div_sqrt_insn_p): New function. | |
4675 | (sparc_do_work_around_errata): Insert NOP instructions to | |
4676 | prevent sequences that could trigger the TN-0013 errata for | |
4677 | certain LEON3 processors. | |
4678 | (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt. | |
4679 | (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately. | |
4680 | * config/sparc/sparc.md (fix_lost_divsqrt): New attribute. | |
4681 | (in_branch_delay): Prevent div and sqrt in delay slot if | |
4682 | fix_lost_divsqrt. | |
4683 | * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable. | |
4684 | ||
4685 | 2017-11-29 Daniel Cederman <cederman@gaisler.com> | |
4686 | ||
4687 | * config/sparc/sparc.c (atomic_insn_p): New function. | |
4688 | (sparc_do_work_around_errata): Insert NOP instructions to | |
4689 | prevent sequences that could trigger the TN-0010 errata for | |
4690 | UT700. | |
4691 | * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make | |
4692 | instruction referable in atomic_insns_p. | |
4693 | ||
4694 | 2017-11-29 Daniel Cederman <cederman@gaisler.com> | |
4695 | ||
4696 | * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc. | |
4697 | (atomic_compare_and_swap_leon3_1): Likewise. | |
4698 | (ldstub): Likewise. | |
4699 | ||
4700 | 2017-11-29 Daniel Cederman <cederman@gaisler.com> | |
4701 | ||
4702 | * config/sparc/sparc.c (fpop_insn_p): New function. | |
4703 | (sparc_do_work_around_errata): Insert NOP instructions to | |
4704 | prevent sequences that could trigger the TN-0012 errata for | |
4705 | GR712RC. | |
4706 | (pass_work_around_errata::gate): Also test sparc_fix_gr712rc. | |
4707 | * config/sparc/sparc.md (fix_gr712rc): New attribute. | |
4708 | (in_branch_annul_delay): Prevent floating-point instructions | |
4709 | in delay slot of annulled integer branch. | |
4710 | ||
4711 | 2017-11-29 Richard Biener <rguenther@suse.de> | |
4712 | ||
4713 | PR tree-optimization/83202 | |
4714 | * tree-vect-slp.c (scalar_stmts_set_t): New typedef. | |
4715 | (bst_fail): Use it. | |
4716 | (vect_analyze_slp_cost_1): Add visited set, do not account SLP | |
4717 | nodes vectorized to the same stmts multiple times. | |
4718 | (vect_analyze_slp_cost): Allocate a visited set and pass it down. | |
4719 | (vect_analyze_slp_instance): Adjust. | |
4720 | (scalar_stmts_to_slp_tree_map_t): New typedef. | |
4721 | (vect_schedule_slp_instance): Add a map recording the SLP node | |
4722 | representing the vectorized stmts for a set of scalar stmts. | |
4723 | Avoid code-generating redundancies. | |
4724 | (vect_schedule_slp): Allocate map and pass it down. | |
4725 | ||
4726 | 2017-11-29 Nathan Sidwell <nathan@acm.org> | |
4727 | ||
4728 | PR c++/83187 | |
4729 | * tree.c (build_complex_type): Fix canonicalization. Only fill in | |
4730 | type if it is new. | |
4731 | ||
4732 | 2017-11-29 Wilco Dijkstra <wdijkstr@arm.com> | |
4733 | ||
4734 | * config/aarch64/aarch64.c (aarch64_print_operand): Add new | |
4735 | cases for printing LDP/STP memory addresses. | |
4736 | (aarch64_print_address_internal): Renamed from | |
4737 | aarch64_print_operand_address, added parameter, add Pmode check. | |
4738 | (aarch64_print_ldpstp_address): New function for LDP/STP addresses. | |
4739 | (aarch64_print_operand_address): Indirect to | |
4740 | aarch64_print_address_internal. | |
4741 | * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new | |
4742 | 'y' operand output specifier. | |
4743 | ||
4744 | 2017-11-29 Jakub Jelinek <jakub@redhat.com> | |
4745 | ||
4746 | PR middle-end/83185 | |
4747 | * tree.c (build_simple_mem_ref_loc): Handle | |
4748 | get_addr_base_and_unit_offset returning a MEM_REF. | |
4749 | ||
4750 | PR middle-end/80929 | |
4751 | * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost. | |
4752 | ||
4753 | PR target/80819 | |
4754 | * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm) | |
4755 | alternative. | |
4756 | ||
4757 | 2017-11-28 David Malcolm <dmalcolm@redhat.com> | |
4758 | ||
4759 | * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle | |
4760 | m_x_offset. | |
4761 | (layout::move_to_column): Likewise. | |
4762 | ||
4763 | 2017-11-28 Jakub Jelinek <jakub@redhat.com> | |
4764 | ||
4765 | PR sanitizer/81275 | |
4766 | * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P | |
4767 | is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()). | |
4768 | ||
4769 | 2017-11-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
4770 | Martin Jambor <mjambor@suse.cz> | |
4771 | ||
4772 | PR ipa/82808 | |
4773 | * tree.h (expr_type_first_operand_type_p): Declare | |
4774 | * tree.c (expr_type_first_operand_type_p): New function. | |
4775 | * ipa-prop.h (ipa_get_type): Allow i to be out of bounds. | |
4776 | (ipa_value_from_jfunc): Adjust declaration. | |
4777 | * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE. | |
4778 | Use it as result type for arithmetics, unless it is NULL in which case | |
4779 | be more conservative. | |
4780 | (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to | |
4781 | ipa_get_jf_pass_through_result. | |
4782 | (propagate_vals_across_pass_through): Likewise. | |
4783 | (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass | |
4784 | is to propagate_vals_across_pass_through. | |
4785 | (propagate_constants_across_call): Pass PARM_TYPE to | |
4786 | propagate_scalar_across_jump_function. | |
4787 | (find_more_scalar_values_for_callers_subset): Pass parameter type to | |
4788 | ipa_value_from_jfunc. | |
4789 | (cgraph_edge_brings_all_scalars_for_node): Likewise. | |
4790 | * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info | |
4791 | to caller_parms_info, pass parameter type to ipa_value_from_jfunc. | |
4792 | * ipa-prop.c (try_make_edge_direct_simple_call): New parameter | |
4793 | target_type, pass it to ipa_value_from_jfunc. | |
4794 | (update_indirect_edges_after_inlining): Pass parameter type to | |
4795 | try_make_edge_direct_simple_call. | |
4796 | ||
4797 | 2017-11-28 Jeff Law <law@redhat.com> | |
4798 | ||
4799 | * gimple-ssa-evrp-analyze.c | |
4800 | (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to | |
4801 | refine ranges if scev_initialized_p returns true. | |
4802 | * vr-values.c (vr_values::extract_range_from_phi_node): Likewise. | |
4803 | ||
4804 | 2017-11-28 Julia Koval <julia.koval@intel.com> | |
4805 | ||
4806 | * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16, | |
4807 | _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32, | |
4808 | _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64, | |
4809 | _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics. | |
4810 | * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16, | |
4811 | _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16, | |
4812 | _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32, | |
4813 | _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64, | |
4814 | _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16, | |
4815 | _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32, | |
4816 | _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto. | |
4817 | * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi, | |
4818 | __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi, | |
4819 | __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi, | |
4820 | __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si, | |
4821 | __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si, | |
4822 | __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si, | |
4823 | __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di, | |
4824 | __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di, | |
4825 | __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di, | |
4826 | __builtin_ia32_vpshrd_v2di_mask): New builtins. | |
4827 | * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern. | |
4828 | ||
4829 | 2017-11-28 Julia Koval <julia.koval@intel.com> | |
4830 | ||
4831 | * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16, | |
4832 | _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32, | |
4833 | _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, | |
4834 | _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics. | |
4835 | * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16, | |
4836 | _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16, | |
4837 | _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32, | |
4838 | _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64, | |
4839 | _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16, | |
4840 | _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32, | |
4841 | _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto. | |
4842 | * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT, | |
4843 | V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT, | |
4844 | V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT, | |
4845 | V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT, | |
4846 | V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT, | |
4847 | V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT, | |
4848 | V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT, | |
4849 | V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT, | |
4850 | V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types. | |
4851 | * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi, | |
4852 | __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi, | |
4853 | __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi, | |
4854 | __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si, | |
4855 | __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si, | |
4856 | __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si, | |
4857 | __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di, | |
4858 | __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di, | |
4859 | __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di, | |
4860 | __builtin_ia32_vpshld_v2di_mask): New builtins. | |
4861 | * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. | |
4862 | * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern. | |
4863 | ||
4864 | 2017-11-28 Richard Biener <rguenther@suse.de> | |
4865 | ||
4866 | PR tree-optimization/80776 | |
4867 | * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info): | |
4868 | Declare. | |
4869 | * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info): | |
4870 | New function. | |
4871 | (evrp_range_analyzer::record_ranges_from_incoming_edges): | |
4872 | If the incoming edge is an effective fallthru because the other | |
4873 | edge only reaches a __builtin_unreachable () then record ranges | |
4874 | derived from the controlling condition in SSA info. | |
4875 | (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info. | |
4876 | (evrp_range_analyzer::record_ranges_from_stmt): Likewise. | |
4877 | ||
4878 | 2017-11-28 Olivier Hainque <hainque@adacore.com> | |
4879 | ||
4880 | * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null | |
4881 | on mingw build hosts. | |
4882 | ||
4883 | 2017-11-28 Jakub Jelinek <jakub@redhat.com> | |
4884 | ||
4885 | PR debug/81307 | |
4886 | * dbxout.c (dbx_block_with_cold_children): Fix function comment. | |
4887 | ||
4888 | 2017-11-28 Richard Biener <rguenther@suse.de> | |
4889 | ||
4890 | PR middle-end/83141 | |
4891 | * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate | |
4892 | copies generated from memcpy use a character array as reference | |
4893 | type. | |
4894 | ||
4895 | 2017-11-28 Julia Koval <julia.koval@intel.com> | |
4896 | Sebastian Peryt <sebastian.peryt@intel.com> | |
4897 | ||
4898 | * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o, | |
4899 | c-family/c-cilkplus.o, c-family/array-notation-common.o, | |
4900 | cilk-common.o, cilk.h, cilk-common.c): Remove. | |
4901 | * builtin-types.def | |
4902 | (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove. | |
4903 | * builtins.c (is_builtin_name): Remove cilkplus condition. | |
4904 | (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove. | |
4905 | * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN, | |
4906 | cilk-builtins.def, cilkplus.def): Remove. | |
4907 | * cif-code.def (CILK_SPAWN): Remove. | |
4908 | * cilk-builtins.def: Delete. | |
4909 | * cilk-common.c: Ditto. | |
4910 | * cilk.h: Ditto. | |
4911 | * cilkplus.def: Ditto. | |
4912 | * config/darwin.h (fcilkplus): Delete. | |
4913 | * cppbuiltin.c: Ditto. | |
4914 | * doc/extend.texi: Remove cilkplus doc. | |
4915 | * doc/generic.texi: Ditto. | |
4916 | * doc/invoke.texi: Ditto. | |
4917 | * doc/passes.texi: Ditto. | |
4918 | * gcc.c (fcilkplus): Remove. | |
4919 | * gengtype.c (cilk.h): Remove. | |
4920 | * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus | |
4921 | support. | |
4922 | * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD): | |
4923 | Remove. | |
4924 | * gimplify.c (gimplify_return_expr, maybe_fold_stmt, | |
4925 | gimplify_call_expr, | |
4926 | is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses, | |
4927 | gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove | |
4928 | cilkplus conditions. | |
4929 | * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary, | |
4930 | inline_read_section): Ditto. | |
4931 | * ipa-inline-analysis.c (cilk.h): Remove. | |
4932 | * ira.c (ira_setup_eliminable_regset): Remove cilkplus support. | |
4933 | * lto-wrapper.c (merge_and_complain, append_compiler_options, | |
4934 | append_linker_options): Remove condition for fcilkplus. | |
4935 | * lto/lto-lang.c (cilk.h): Remove. | |
4936 | (lto_init): Remove condition for fcilkplus. | |
4937 | * omp-expand.c (expand_cilk_for_call): Delete. | |
4938 | (expand_omp_taskreg, expand_omp_for_static_chunk, | |
4939 | expand_omp_for): Remove cilkplus | |
4940 | conditions. | |
4941 | (expand_cilk_for): Delete. | |
4942 | * omp-general.c (omp_extract_for_data): Remove cilkplus support. | |
4943 | * omp-low.c (scan_sharing_clauses, create_omp_child_function, | |
4944 | execute_lower_omp, diagnose_sb_0): Ditto. | |
4945 | * omp-simd-clone.c (simd_clone_clauses_extract): Ditto. | |
4946 | * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. | |
4947 | * tree-nested.c: Ditto. | |
4948 | * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support. | |
4949 | (dump_generic_node): Ditto. | |
4950 | * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete. | |
4951 | * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt): | |
4952 | Delete. | |
4953 | * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete. | |
4954 | ||
4955 | 2017-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
4956 | ||
4957 | * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT. | |
4958 | * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit | |
4959 | for vector mode and !TARGET_SIMD. | |
4960 | ||
4961 | 2017-11-28 Jakub Jelinek <jakub@redhat.com> | |
4962 | ||
4963 | * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree. | |
4964 | Adjust comment. | |
4965 | * tree.h (SWITCH_LABELS): Remove. | |
4966 | * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS, | |
4967 | assert SWITCH_BODY is non-NULL. | |
4968 | * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS | |
4969 | handling. | |
4970 | * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR. | |
4971 | ||
4972 | PR tree-optimization/80788 | |
4973 | * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res | |
4974 | has TREE_OVERFLOW set, call drop_tree_overflow. | |
4975 | ||
4976 | 2017-11-28 Richard Biener <rguenther@suse.de> | |
4977 | ||
4978 | PR tree-optimization/83158 | |
4979 | * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases. | |
4980 | ||
4981 | 2017-11-28 Segher Boessenkool <segher@kernel.crashing.org> | |
4982 | ||
4983 | PR 81288/target | |
4984 | * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle | |
4985 | TARGET_ISEL && !TARGET_MFCRF differently. Simplify code. | |
4986 | ||
4987 | 2017-11-27 Segher Boessenkool <segher@kernel.crashing.org> | |
4988 | ||
4989 | * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change | |
4990 | LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible. | |
4991 | ||
4992 | 2017-11-27 Michael Meissner <meissner@linux.vnet.ibm.com> | |
4993 | ||
4994 | PR middle_end/82333 | |
4995 | * varasm.c (compare_constant): Take the mode of the constants into | |
4996 | account when comparing floating point constants. | |
4997 | ||
4998 | 2017-11-27 Gerald Pfeifer <gerald@pfeifer.com> | |
4999 | ||
5000 | * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier | |
5001 | from explicit instantiation of debug_helper. | |
5002 | * vec.h (DEFINE_DEBUG_VEC): Ditto. | |
5003 | ||
5004 | 2017-11-27 Richard Biener <rguenther@suse.de> | |
5005 | ||
5006 | * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code, | |
5007 | refactor a bit. | |
5008 | ||
5009 | 2017-11-27 Richard Biener <rguenther@suse.de> | |
5010 | ||
5011 | * tree.c (wide_int_to_tree): Free discarded INTEGER_CST. | |
5012 | (type_hash_canon): Also clear int_cst_hash_table entry for | |
5013 | TYPE_MIN/MAX_VALUE. | |
5014 | (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs. | |
5015 | ||
5016 | 2017-11-27 Tamar Christina <tamar.christina@arm.com> | |
5017 | ||
5018 | * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A). | |
5019 | * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A). | |
5020 | * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A). | |
5021 | ||
5022 | 2017-11-27 Markus Trippelsdorf <markus@trippelsdorf.de> | |
5023 | ||
5024 | * hash-map.h (gt_cleare_cache): Avoid UB. | |
5025 | ||
5026 | 2017-11-27 Eric Botcazou <ebotcazou@adacore.com> | |
5027 | ||
5028 | * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll. | |
5029 | * loop-unroll.c (decide_unroll_constant_iterations): Implement it. | |
5030 | (decide_unroll_runtime_iterations): Likewise. | |
5031 | (decide_unroll_stupid): Likewise. | |
5032 | ||
5033 | 2017-11-27 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
5034 | ||
5035 | PR target/83109 | |
5036 | * config/i386/i386.md: Add a loop with incssp. | |
5037 | ||
5038 | 2017-11-27 Martin Jambor <mjambor@suse.cz> | |
5039 | ||
5040 | PR tree-optimization/81248 | |
5041 | * tree-sra.c (splice_param_accesses): Remove size check. | |
5042 | (decide_one_param_reduction): Fix size check. | |
5043 | * gimple-pretty-print.c (dump_profile): Silence warning. | |
5044 | * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description. | |
5045 | ||
5046 | 2017-11-27 Jakub Jelinek <jakub@redhat.com> | |
5047 | ||
5048 | PR debug/81307 | |
5049 | * dbxout.c (lastlineno): New variable. | |
5050 | (dbx_debug_hooks): Use dbxout_switch_text_section as | |
5051 | switch_text_section debug hook. | |
5052 | (dbxout_function_end): Switch to current_function_section | |
5053 | rather than function_section. If crtl->has_bb_partition, | |
5054 | output just one N_FUN, depending on in_cold_section_p. | |
5055 | (dbxout_source_line): Remember last lineno in lastlineno. | |
5056 | (dbxout_switch_text_section): New function. | |
5057 | (dbxout_function_decl): Adjust dbxout_block caller. | |
5058 | (dbx_block_with_cold_children): New function. | |
5059 | (dbxout_block): Return true if any LBRAC/RBRAC have been | |
5060 | emitted. Use dbx_block_with_cold_children at depth == 0 | |
5061 | in second partition. Add PARENT_BLOCKNUM argument, pass | |
5062 | it optionally adjusted to children. Output LBRAC/RBRAC | |
5063 | around recursive call only if the block is in the current | |
5064 | partition, if not and anything was output, emit empty | |
5065 | range LBRAC/RBRAC. | |
5066 | * final.c (final_scan_insn): Compute cold_function_name | |
5067 | before calling switch_text_section debug hook. Call | |
5068 | that hook even if dwarf2out_do_frame if not emitting | |
5069 | dwarf debug info. | |
5070 | ||
5071 | PR target/83100 | |
5072 | * varasm.c (bss_initializer_p): Return true for DECL_COMMON | |
5073 | TREE_READONLY decls. | |
5074 | ||
5075 | 2017-11-27 Markus Trippelsdorf <markus@trippelsdorf.de> | |
5076 | ||
5077 | PR rtl-optimization/82488 | |
5078 | * expr.c (fixup_args_size_notes): Avoid signed integer overflow. | |
5079 | ||
5080 | 2017-11-26 Julia Koval <julia.koval@intel.com> | |
5081 | ||
5082 | * config/i386/i386.c (processor_target_table): Add skylake_cost for | |
5083 | skylake-avx512. | |
5084 | * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset, | |
5085 | skylake_cost): New. | |
5086 | ||
5087 | 2017-11-26 Julia Koval <julia.koval@intel.com> | |
5088 | ||
5089 | * config/i386/driver-i386.c (host_detect_local_cpu): | |
5090 | Detect skylake-avx512. | |
5091 | ||
5092 | 2017-11-26 Julia Koval <julia.koval@intel.com> | |
5093 | ||
5094 | * config.gcc: Add -march=cannonlake. | |
5095 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake. | |
5096 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake. | |
5097 | * config/i386/i386.c (processor_costs): Add m_CANNONLAKE. | |
5098 | (PTA_CANNONLAKE): New. | |
5099 | (processor_target_table): Add cannonlake. | |
5100 | (ix86_option_override_internal): Ditto. | |
5101 | (fold_builtin_cpu): Ditto. | |
5102 | (get_builtin_code_for_version): Handle cannonlake. | |
5103 | (M_INTEL_COREI7_CANNONLAKE): New. | |
5104 | * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New. | |
5105 | * doc/invoke.texi: Add -march=cannonlake. | |
5106 | ||
5107 | 2017-11-14 Boris Kolpackov <boris@codesynthesis.com> | |
5108 | ||
5109 | * plugin.c (add_new_plugin): Use platform-specific library extensions. | |
5110 | (try_init_one_plugin): Alternative implementation for MinGW. | |
5111 | * Makefile.in (plugin_implib): New. | |
5112 | (gengtype-lex.c): Fix broken AIX workaround. | |
5113 | * configure: Regenerate. | |
5114 | * doc/plugins.texi: Document support for MinGW. | |
5115 | ||
5116 | 2017-11-25 Jakub Jelinek <jakub@redhat.com> | |
5117 | ||
5118 | PR rtl-optimization/81553 | |
5119 | * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z) | |
5120 | to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP | |
5121 | is a shift where C1 has different mode than the whole shift, use C1's | |
5122 | mode for MULT rather than the shift's mode. | |
5123 | ||
5124 | PR target/82848 | |
5125 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold | |
5126 | builtins not enabled in the currently selected ISA. | |
5127 | ||
5128 | 2017-11-24 Jackson Woodruff <jackson.woodruff@arm.com> | |
5129 | ||
5130 | PR tree-optimization/71026 | |
5131 | * tree-ssa-math-opts (is_division_by_square, is_square_of): New. | |
5132 | (insert_reciprocals): Change to insert reciprocals before a division | |
5133 | by a square and to insert the square of a reciprocal. | |
5134 | (execute_cse_reciprocals_1): Change to consider division by a square. | |
5135 | (register_division_in): Add importance parameter. | |
5136 | ||
5137 | 2017-11-24 Richard Biener <rguenther@suse.de> | |
5138 | ||
5139 | PR tree-optimization/82402 | |
5140 | * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly | |
5141 | set SSA_NAME_OCCURS_IN_ABNORMAL_PHI. | |
5142 | ||
5143 | 2017-11-24 Marc Glisse <marc.glisse@inria.fr> | |
5144 | ||
5145 | * match.pd (0-ptr): New transformation. | |
5146 | ||
5147 | 2017-11-24 Jan Hubicka <hubicka@ucw.cz> | |
5148 | ||
5149 | PR bootstrap/83015 | |
5150 | * ipa-inline.c (inline_small_functions): Set current badnes correctly | |
5151 | when skipping checking. | |
5152 | ||
5153 | 2017-11-24 Richard Biener <rguenther@suse.de> | |
5154 | ||
5155 | PR tree-optimization/83128 | |
5156 | * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs. | |
5157 | (vn_reference_lookup_3): Likewise. | |
5158 | ||
5159 | 2017-11-24 Jakub Jelinek <jakub@redhat.com> | |
5160 | ||
5161 | PR sanitizer/83014 | |
5162 | * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer | |
5163 | instead of pp_printf with HOST_WIDE_INT_PRINT_DEC. Avoid calling | |
5164 | tree_to_uhwi twice. | |
5165 | ||
5166 | * tree-object-size.c (pass_through_call): Use gimple_call_return_flags | |
5167 | ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED, | |
5168 | check for the latter with gimple_call_builtin_p. Do not handle | |
5169 | BUILT_IN_STPNCPY_CHK which is not a pass through call. | |
5170 | ||
5171 | 2017-11-24 Christophe Lyon <christophe.lyon@linaro.org> | |
5172 | ||
5173 | * config/arm/arm_neon.h: Fix pragma GCC push_options before | |
5174 | vdot_u32. | |
5175 | ||
5176 | 2017-11-23 Julia Koval <julia.koval@intel.com> | |
5177 | ||
5178 | * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8, | |
5179 | _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8, | |
5180 | _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16, | |
5181 | _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16, | |
5182 | _mm512_maskz_expandloadu_epi16): New intrinsics. | |
5183 | * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8, | |
5184 | _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8, | |
5185 | _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16, | |
5186 | _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16, | |
5187 | _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16, | |
5188 | _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16, | |
5189 | _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8, | |
5190 | _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8, | |
5191 | _mm256_maskz_expandloadu_epi8): New intrinsics. | |
5192 | * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI, | |
5193 | V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI, | |
5194 | V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI, | |
5195 | V8HI_FTYPE_PCV8HI_V8HI_UQI): New types. | |
5196 | * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types. | |
5197 | * config/i386/sse.md (VI248_VLBW): New iterator. | |
5198 | (expand<mode>_mask, expand<mode>_maskz): New patterns. | |
5199 | ||
5200 | 2017-11-23 Julia Koval <julia.koval@intel.com> | |
5201 | ||
5202 | * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers. | |
5203 | * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8, | |
5204 | _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8, | |
5205 | _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16, | |
5206 | _mm512_mask_compressstoreu_epi16): New. | |
5207 | * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8, | |
5208 | _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16, | |
5209 | _mm_mask_compress_epi16, _mm_maskz_compress_epi16, | |
5210 | _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16, | |
5211 | _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16, | |
5212 | _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8, | |
5213 | _mm256_mask_compressstoreu_epi8): New. | |
5214 | * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI, | |
5215 | VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI, | |
5216 | VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI, | |
5217 | VOID_FTYPE_PV8HI_V8HI_UQI): New types. | |
5218 | * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask, | |
5219 | __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask, | |
5220 | __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask, | |
5221 | __builtin_ia32_compresshi128_mask, | |
5222 | __builtin_ia32_compressstoreuqi512_mask, | |
5223 | __builtin_ia32_compressstoreuhi512_mask, | |
5224 | __builtin_ia32_compressstoreuqi256_mask, | |
5225 | __builtin_ia32_compressstoreuqi128_mask, | |
5226 | __builtin_ia32_compressstoreuhi256_mask, | |
5227 | __builtin_ia32_compressstoreuhi128_mask): New builtins. | |
5228 | * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args | |
5229 | array for flags2. | |
5230 | (ix86_expand_special_args_builtin): Handle new types. | |
5231 | (s4fma_expand): Handle new builtin array. | |
5232 | * config/i386/immintrin.h: Include new headers. | |
5233 | * config/i386/sse.md (VI12_AVX512VLBW): New iterator. | |
5234 | (compress<mode>_mask, compressstore<mode>_mask): New patterns. | |
5235 | ||
5236 | 2017-11-23 Jakub Jelinek <jakub@redhat.com> | |
5237 | ||
5238 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting | |
5239 | fixes. Declare temp and g variables at the top in order to avoid | |
5240 | {} in most of the cases. | |
5241 | ||
5242 | 2017-11-23 Marc Glisse <marc.glisse@inria.fr> | |
5243 | ||
5244 | * match.pd (ptr-0): New transformation. | |
5245 | ||
5246 | 2017-11-23 Charles Baylis <charles.baylis@linaro.org> | |
5247 | ||
5248 | * config/arm/arm-protos.h (enum arm_addr_mode_op): New. | |
5249 | (struct addr_mode_cost_table): New. | |
5250 | (struct tune_params): Add field addr_mode_costs. | |
5251 | * config/arm/arm.c (generic_addr_mode_costs): New. | |
5252 | (arm_slowmul_tune): Initialise addr_mode_costs field. | |
5253 | (arm_fastmul_tune): Likewise. | |
5254 | (arm_strongarm_tune): Likewise. | |
5255 | (arm_xscale_tune): Likewise. | |
5256 | (arm_9e_tune): Likewise. | |
5257 | (arm_marvell_pj4_tune): Likewise. | |
5258 | (arm_v6t2_tune): Likewise. | |
5259 | (arm_cortex_tune): Likewise. | |
5260 | (arm_cortex_a8_tune): Likewise. | |
5261 | (arm_cortex_a7_tune): Likewise. | |
5262 | (arm_cortex_a15_tune): Likewise. | |
5263 | (arm_cortex_a35_tune): Likewise. | |
5264 | (arm_cortex_a53_tune): Likewise. | |
5265 | (arm_cortex_a57_tune): Likewise. | |
5266 | (arm_exynosm1_tune): Likewise. | |
5267 | (arm_xgene1_tune): Likewise. | |
5268 | (arm_cortex_a5_tune): Likewise. | |
5269 | (arm_cortex_a9_tune): Likewise. | |
5270 | (arm_cortex_a12_tune): Likewise. | |
5271 | (arm_cortex_a73_tune): Likewise. | |
5272 | (arm_v7m_tune): Likewise. | |
5273 | (arm_cortex_m7_tune): Likewise. | |
5274 | (arm_v6m_tune): Likewise. | |
5275 | (arm_fa726te_tune): Likewise. | |
5276 | (arm_mem_costs): Use table lookup to calculate cost of addressing mode. | |
5277 | ||
5278 | 2017-11-23 Charles Baylis <charles.baylis@linaro.org> | |
5279 | ||
5280 | * config/arm/arm.c (arm_mem_costs): New function. | |
5281 | (arm_rtx_costs_internal): Use arm_mem_costs. | |
5282 | ||
5283 | 2017-11-23 Mark Wielaard <mark@klomp.org> | |
5284 | ||
5285 | * dwarf2out.c (init_sections_and_labels): Use generation to create | |
5286 | unique ranges_section_label and ranges_base_label. Return generation. | |
5287 | (output_rnglists): Add generation argument. Use generation to create | |
5288 | unique ranges labels. | |
5289 | (dwarf2out_finish): Get generation from init_sections_and_labels | |
5290 | and pass generation to output_rnglists. | |
5291 | ||
5292 | 2017-11-23 Mike Stump <mikestump@comcast.net> | |
5293 | Eric Botcazou <ebotcazou@adacore.com> | |
5294 | ||
5295 | * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand. | |
5296 | * cfgloop.h (struct loop): Add unroll field. | |
5297 | * function.h (struct function): Add has_unroll bitfield. | |
5298 | * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind. | |
5299 | (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand. | |
5300 | * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll. | |
5301 | (pass_rtl_unroll_loops::gate): Likewise. | |
5302 | * loop-unroll.c (decide_unrolling): Tweak note message. Skip loops | |
5303 | for which loop->unroll==1. | |
5304 | (decide_unroll_constant_iterations): Use note for consistency and | |
5305 | take loop->unroll into account. Return early if loop->unroll is set. | |
5306 | Fix thinko in existing test. | |
5307 | (decide_unroll_runtime_iterations): Use note for consistency and | |
5308 | take loop->unroll into account. | |
5309 | (decide_unroll_stupid): Likewise. | |
5310 | * lto-streamer-in.c (input_cfg): Read loop->unroll. | |
5311 | * lto-streamer-out.c (output_cfg): Write loop->unroll. | |
5312 | * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>: | |
5313 | New case. | |
5314 | (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise. | |
5315 | (print_loop): Print loop->unroll if set. | |
5316 | * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind. | |
5317 | * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll. | |
5318 | * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>: | |
5319 | New case. | |
5320 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if | |
5321 | loop->unroll is set and smaller than the trip count. Otherwise bypass | |
5322 | entirely the heuristics if loop->unroll is set. Remove dead note. | |
5323 | Fix off-by-one bug in other note. | |
5324 | (try_peel_loop): Bail out if loop->unroll is set. Fix formatting. | |
5325 | (tree_unroll_loops_completely_1): Force unrolling if loop->unroll | |
5326 | is greater than 1. | |
5327 | (tree_unroll_loops_completely): Make static. | |
5328 | (pass_complete_unroll::execute): Use correct type for variable. | |
5329 | (pass_complete_unrolli::execute): Fix formatting. | |
5330 | * tree.def (ANNOTATE_EXPR): Add 3rd operand. | |
5331 | ||
5332 | 2017-11-23 Sergey Shalnov <Sergey.Shalnov@intel.com> | |
5333 | ||
5334 | * config/i386/i386.h (TARGET_PREFER_AVX256): Also | |
5335 | enable when TARGET_PREFER_AVX128 is set. | |
5336 | ||
5337 | 2017-11-23 Jan Hubicka <hubicka@ucw.cz> | |
5338 | ||
5339 | * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of | |
5340 | frequency. | |
5341 | * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies. | |
5342 | (cgraph_edge::maybe_hot_p): Use sreal frequencies. | |
5343 | ||
5344 | 2017-11-23 Jan Hubicka <hubicka@ucw.cz> | |
5345 | ||
5346 | * ipa-fnsummary.c (record_modified_bb_info): Use sreal | |
5347 | frequencies. Fix estimation of aggregate parameters. | |
5348 | ||
5349 | 2017-11-23 Jan Hubicka <hubicka@ucw.cz> | |
5350 | ||
5351 | * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile | |
5352 | when inlining. | |
5353 | ||
5354 | 2017-11-23 Tom de Vries <tom@codesourcery.com> | |
5355 | ||
5356 | * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)". | |
5357 | ||
5358 | 2017-11-23 Tom de Vries <tom@codesourcery.com> | |
5359 | ||
5360 | * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after | |
5361 | macro. | |
5362 | ||
5363 | 2017-11-23 Oleg Endo <olegendo@gcc.gnu.org> | |
5364 | ||
5365 | PR target/83111 | |
5366 | * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel, | |
5367 | sibcall_value_pcrel_fdpic): Use local variable instead of | |
5368 | operands[3]. | |
5369 | (calli_tbr_rel): Add missing operand 2. | |
5370 | (call_valuei_tbr_rel): Add missing operand 3. | |
5371 | ||
5372 | 2017-11-23 Jakub Jelinek <jakub@redhat.com> | |
5373 | ||
5374 | PR middle-end/82253 | |
5375 | * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and | |
5376 | bitpos/bitsize covering the whole destination, use store_expr only if | |
5377 | the complex mode is the same. Otherwise, use expand_normal and if | |
5378 | it returns CONCAT, subreg each part separately instead of trying to | |
5379 | subreg the whole result. | |
5380 | ||
5381 | 2017-11-23 Richard Biener <rguenther@suse.de> | |
5382 | ||
5383 | PR tree-optimization/23094 | |
5384 | * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we | |
5385 | come here from walking over backedges in the first iteration. | |
5386 | (vn_reference_lookup_3): Skip clobbers that store the same value. | |
5387 | ||
5388 | 2017-11-23 Richard Biener <rguenther@suse.de> | |
5389 | ||
5390 | PR tree-optimization/81403 | |
5391 | * tree-ssa-pre.c (get_representative_for): Add parameter specifying | |
5392 | a block we need a leader relative to. | |
5393 | (phi_translate_1): For nary processing require a leader from | |
5394 | get_representative_for given we run expression simplification | |
5395 | using match-and-simplify. Remove previous fix. | |
5396 | ||
5397 | 2017-11-22 Jeff Law <law@redhat.com> | |
5398 | ||
5399 | * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): | |
5400 | Use new method allocate_value_range rather than accessing the | |
5401 | vrp_value_range_pool data member directly. | |
5402 | * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly | |
5403 | to use extract_range_from_stmt method to avoid need for | |
5404 | extract_range_from_assignment method. | |
5405 | (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete | |
5406 | method rather than setting values_propgated data member directly. | |
5407 | * vr-values.h (class vr_values): Privatize vrp_value_range_pool, | |
5408 | and values propagated data members and extract_range_from_assignment | |
5409 | method. Reorder private data members to conform to standards. | |
5410 | Add new methods set_lattice_propagation_complete and | |
5411 | allocate_value_range. | |
5412 | ||
5413 | 2017-11-22 Eric Botcazou <ebotcazou@adacore.com> | |
5414 | ||
5415 | PR rtl-optimization/83030 | |
5416 | * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry | |
5417 | for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs. | |
5418 | (Insns): Delete entry for REG_CROSSING_JUMP in register notes. | |
5419 | * bb-reorder.c (update_crossing_jump_flags): Do not test whether the | |
5420 | CROSSING_JUMP_P flag is already set before setting it. | |
5421 | * cfgrtl.c (fixup_partition_crossing): Likewise. | |
5422 | * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P | |
5423 | insn as useless. | |
5424 | ||
5425 | 2017-11-22 Jakub Jelinek <jakub@redhat.com> | |
5426 | ||
5427 | * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>: | |
5428 | Handle the case where both arguments are using gen_const_vec_series. | |
5429 | ||
5430 | 2017-11-22 David Malcolm <dmalcolm@redhat.com> | |
5431 | ||
5432 | PR c++/62170 | |
5433 | * pretty-print.c (pp_format): Move quoting implementation to | |
5434 | pp_begin_quote and pp_end_quote. Update pp_format_decoder call | |
5435 | to pass address of "quote" local. | |
5436 | (pp_begin_quote): New function. | |
5437 | (pp_end_quote): New function. | |
5438 | * pretty-print.h (printer_fn): Convert penultimate param from bool | |
5439 | to bool *. | |
5440 | (pp_begin_quote): New decl. | |
5441 | (pp_end_quote): New decl. | |
5442 | * tree-diagnostic.c (default_tree_printer): Convert penultimate | |
5443 | param from bool to bool *. | |
5444 | * tree-diagnostic.h (default_tree_printer): Likewise. | |
5445 | ||
5446 | 2017-11-22 Jeff Law <law@redhat.com> | |
5447 | ||
5448 | * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer) | |
5449 | Initialize vr_values. | |
5450 | (evrp_range_analyzer::try_find_new_range): Call methods attached to | |
5451 | vr_values via vr_values class instance rather than delegators. | |
5452 | (evrp_range_analyzer::record_ranges_from_phis): Likewise. | |
5453 | (evrp_range_analyzer::record_ranges_from_stmt): Likewise. | |
5454 | (evrp_range_analyzer::push_value_range): Likewise. | |
5455 | (evrp_range_analyzer::pop_value_range): Likewise. | |
5456 | * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove | |
5457 | most delegators. Those remaining are exposed as public interfaces. | |
5458 | Make vr_values a pointer and private. | |
5459 | (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached | |
5460 | vr_values. | |
5461 | (evrp_range_analyzer::get_vr_value): New method. | |
5462 | * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN. | |
5463 | (evrp_folder::evrp_folder): New ctor to initialize vr_values. | |
5464 | (class evrp_dom_walker): Attach evrp_folder class, initialize | |
5465 | it in the ctor. Remove temporary delegators. | |
5466 | (evrp_dom_walker::before_dom_children): Call methods in attached | |
5467 | evrp_range_analyzer class via class instance pointer. Use | |
5468 | free value_range_constant_singleton to remove need for | |
5469 | op_with_constant_singleton_value delegator method. Do not | |
5470 | create a vrp_prop class instance for every call! Narrow | |
5471 | scope of a couple variables. | |
5472 | (evrp_dom_walker::cleanup): Call methods in attached | |
5473 | evrp_range_analyzer class via class instance pointer. | |
5474 | * vr-values.h (class vr_values): Privatize many methods and | |
5475 | data members. | |
5476 | ||
5477 | 2017-11-22 Richard Sandiford <richard.sandiford@linaro.org> | |
5478 | ||
5479 | * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete. | |
5480 | * cfgexpand.c (expand_debug_expr): Remove handling for them. | |
5481 | * expr.c (expand_expr_real_2): Likewise. | |
5482 | * fold-const.c (const_unop): Likewise. | |
5483 | * optabs-tree.c (optab_for_tree_code): Likewise. | |
5484 | * tree-cfg.c (verify_gimple_assign_unary): Likewise. | |
5485 | * tree-inline.c (estimate_operator_cost): Likewise. | |
5486 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
5487 | (op_code_prio): Likewise. | |
5488 | (op_symbol_code): Likewise. | |
5489 | * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define. | |
5490 | (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions. | |
5491 | * internal-fn.c (direct_internal_fn_optab): New function. | |
5492 | (direct_internal_fn_array, direct_internal_fn_supported_p | |
5493 | (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN. | |
5494 | * fold-const-call.c (fold_const_reduction): New function. | |
5495 | (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and | |
5496 | CFN_REDUC_MIN. | |
5497 | * tree-vect-loop.c: Include internal-fn.h. | |
5498 | (reduction_code_for_scalar_code): Rename to... | |
5499 | (reduction_fn_for_scalar_code): ...this and return an internal | |
5500 | function. | |
5501 | (vect_model_reduction_cost): Take an internal_fn rather than | |
5502 | a tree_code. | |
5503 | (vect_create_epilog_for_reduction): Likewise. Build calls rather | |
5504 | than assignments. | |
5505 | (vectorizable_reduction): Use internal functions rather than tree | |
5506 | codes for the reduction operation. Update calls to the functions | |
5507 | above. | |
5508 | * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): | |
5509 | Use calls to internal functions rather than REDUC tree codes. | |
5510 | * config/aarch64/aarch64-simd.md: Update comment accordingly. | |
5511 | ||
5512 | 2017-11-22 Olivier Hainque <hainque@adacore.com> | |
5513 | ||
5514 | * config/vxworks.c (vxworks_override_options): Pick default | |
5515 | dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT. | |
5516 | * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and | |
5517 | DWARF_GNAT_ENCODINGS_DEFAULT. | |
5518 | * config/vxworksae.h: Likewise. | |
5519 | ||
5520 | 2017-11-22 Marc Glisse <marc.glisse@inria.fr> | |
5521 | ||
5522 | PR tree-optimization/83104 | |
5523 | * vr-values.c (simplify_stmt_using_ranges): Check integral argument, | |
5524 | not result. | |
5525 | ||
5526 | 2017-11-22 Marek Polacek <polacek@redhat.com> | |
5527 | H.J. Lu <hongjiu.lu@intel.com> | |
5528 | Jason Merrill <jason@redhat.com> | |
5529 | ||
5530 | PR c++/60336 | |
5531 | PR middle-end/67239 | |
5532 | PR target/68355 | |
5533 | * calls.c (initialize_argument_information): Call | |
5534 | warn_parameter_passing_abi target hook. | |
5535 | (store_one_arg): Use 0 for empty record size. Don't push 0 size | |
5536 | argument onto stack. | |
5537 | (must_pass_in_stack_var_size_or_pad): Return false for empty types. | |
5538 | * common.opt: Update -fabi-version description. | |
5539 | * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty. | |
5540 | (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of | |
5541 | int_size_in_bytes. | |
5542 | (ix86_is_empty_record): New function. | |
5543 | (ix86_warn_parameter_passing_abi): New function. | |
5544 | (TARGET_EMPTY_RECORD_P): Redefine. | |
5545 | (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine. | |
5546 | * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty. | |
5547 | * doc/tm.texi: Regenerated. | |
5548 | * doc/tm.texi.in (TARGET_EMPTY_RECORD_P, | |
5549 | TARGET_WARN_PARAMETER_PASSING_ABI): Add. | |
5550 | * dwarf2out.c (get_ultimate_context): Move to tree.c. | |
5551 | * explow.c (hard_function_value): Call arg_int_size_in_bytes | |
5552 | instead of int_size_in_bytes. | |
5553 | * expr.c (copy_blkmode_to_reg): Likewise. | |
5554 | * function.c (aggregate_value_p): Return 0 for empty types. | |
5555 | (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi | |
5556 | target hook. | |
5557 | (locate_and_pad_parm): Call arg size_in_bytes instead | |
5558 | size_in_bytes. | |
5559 | * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P. | |
5560 | * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P. | |
5561 | * target.def (empty_record_p, warn_parameter_passing_abi): New target | |
5562 | hooks. | |
5563 | * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook. | |
5564 | (std_gimplify_va_arg_expr): Skip empty records. Call | |
5565 | arg_size_in_bytes instead size_in_bytes. | |
5566 | * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare. | |
5567 | * tree-core.h (tree_type_common): Add empty_flag. | |
5568 | (tree_decl_common): Update comments. | |
5569 | * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream | |
5570 | DECL_PADDING_P. | |
5571 | (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P. | |
5572 | * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream | |
5573 | DECL_PADDING_P. | |
5574 | (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P. | |
5575 | * tree.c (default_is_empty_type): New function. | |
5576 | (default_is_empty_record): New function. | |
5577 | (arg_int_size_in_bytes): New function. | |
5578 | (arg_size_in_bytes): New function. | |
5579 | (get_ultimate_context): New function. | |
5580 | * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and | |
5581 | TRANSLATION_UNIT_WARN_EMPTY_P. | |
5582 | (default_is_empty_record, arg_int_size_in_bytes, | |
5583 | arg_size_in_bytes, get_ultimate_context): Declare. | |
5584 | ||
5585 | 2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
5586 | ||
5587 | * config/arm/arm.c (cmse_clear_registers): New function. | |
5588 | (cmse_nonsecure_call_clear_caller_saved): Replace register clearing | |
5589 | code by call to cmse_clear_registers. | |
5590 | (cmse_nonsecure_entry_clear_before_return): Likewise. | |
5591 | ||
5592 | 2017-11-22 Tamar Christina <tamar.christina@arm.com> | |
5593 | ||
5594 | * config/arm/arm_neon.h (vdot_u32, vdotq_u32) | |
5595 | (vdot_s32, vdotq_s32): New. | |
5596 | (vdot_lane_u32, vdotq_lane_u32): New. | |
5597 | (vdot_lane_s32, vdotq_lane_s32): New. | |
5598 | ||
5599 | ||
5600 | 2017-11-22 Richard Sandiford <richard.sandiford@linaro.org> | |
5601 | ||
5602 | PR middle-end/82547 | |
5603 | * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection | |
5604 | for unsigned values with fewer HWIs than the precision. | |
5605 | (test_overflow): New function. | |
5606 | (wide_int_cc_tests): Call it. | |
5607 | ||
5608 | 2017-11-22 Richard Sandiford <richard.sandiford@linaro.org> | |
5609 | ||
5610 | * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode | |
5611 | has the same mode class as Pmode. | |
5612 | ||
5613 | 2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
5614 | ||
5615 | * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of | |
5616 | padding_bits_to_clear_ptr. | |
5617 | (cmse_nonsecure_entry_clear_before_return): Likewise. | |
5618 | ||
5619 | 2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
5620 | ||
5621 | * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use | |
5622 | auto_sbitap instead of integer bitfield to control register needing | |
5623 | clearing. | |
5624 | ||
5625 | 2017-11-22 Jakub Jelinek <jakub@redhat.com> | |
5626 | ||
5627 | PR tree-optimization/83044 | |
5628 | * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not | |
5629 | INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests | |
5630 | that need the upper bound. Subtract offset from | |
5631 | get_addr_base_and_unit_offset only if positive and subtract it | |
5632 | before division by eltsize rather than after it. | |
5633 | ||
5634 | PR debug/83084 | |
5635 | * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset | |
5636 | debug insns if they would contain UNSPEC_VOLATILE or volatile asm. | |
5637 | (dead_debug_insert_temp): Likewise, but also ignore even non-volatile | |
5638 | asm. | |
5639 | ||
5640 | PR middle-end/82875 | |
5641 | * optabs.c (expand_doubleword_mult, expand_binop): Before calling | |
5642 | expand_binop with *mul_widen_optab, make sure at least one of the | |
5643 | operands doesn't have VOIDmode. | |
5644 | ||
5645 | PR debug/83034 | |
5646 | * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES. | |
5647 | ||
5648 | PR rtl-optimization/82044 | |
5649 | PR tree-optimization/82042 | |
5650 | * dse.c (record_store): Check for overflow. | |
5651 | (check_mem_read_rtx): Properly check for overflow if width == -1, call | |
5652 | add_wild_read instead of clear_rhs_from_active_local_stores on | |
5653 | overflow and log it into dump_file. | |
5654 | ||
5655 | 2017-11-22 Richard Biener <rguenther@suse.de> | |
5656 | ||
5657 | * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore | |
5658 | fake edges to exit when looking for a place to insert. | |
5659 | * tree-ssa-pre.c (clear_expression_ids): Inline into callers | |
5660 | and remove. | |
5661 | (insert_into_preds_of_block): Commit edge insertion immediately, | |
5662 | assert that doesn't require new BBs. | |
5663 | (fini_pre): Release expressions. | |
5664 | (pass_pre::execute): Shuffle things around a bit, if the fn | |
5665 | is too large do not compute AVAIL either as this is really the | |
5666 | quadratic bit. | |
5667 | ||
5668 | 2017-11-22 Richard Biener <rguenther@suse.de> | |
5669 | ||
5670 | PR tree-optimization/83089 | |
5671 | * tree-if-conv.c (pass_if_conversion::execute): If anything | |
5672 | changed reset SCEV and free the number of iteration estimates. | |
5673 | ||
5674 | 2017-11-21 Martin Sebor <msebor@redhat.com> | |
5675 | ||
5676 | PR tree-optimization/82945 | |
5677 | * calls.h (warn_nonstring_bound): Remove unused function. | |
5678 | ||
5679 | 2017-11-21 Martin Sebor <msebor@redhat.com> | |
5680 | ||
5681 | PR tree-optimization/82945 | |
5682 | * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg. | |
5683 | * calls.h (maybe_warn_nonstring_arg): Declare new function. | |
5684 | * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New | |
5685 | functions. | |
5686 | (initialize_argument_information): Call maybe_warn_nonstring_arg. | |
5687 | * calls.h (get_attr_nonstring_decl): Declare new function. | |
5688 | * doc/extend.texi (attribute nonstring): Update. | |
5689 | * gimple-fold.c (gimple_fold_builtin_strncpy): Call | |
5690 | get_attr_nonstring_decl and handle it. | |
5691 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same. Improve | |
5692 | detection of nul-termination. | |
5693 | (strlen_to_stridx): Change to a pointer. | |
5694 | (handle_builtin_strlen, handle_builtin_stxncpy): Adjust. | |
5695 | (pass_strlen::execute): Same. | |
5696 | ||
5697 | 2017-11-21 Sergey Shalnov <Sergey.Shalnov@intel.com> | |
5698 | ||
5699 | * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum | |
5700 | for the new option -mprefer-vector-width=[none|128|256|512]. | |
5701 | * config/i386/i386.c (ix86_target_string): remove old style options | |
5702 | -mprefer-avx256 and make -mprefer-avx128 as alias. | |
5703 | (ix86_option_override_internal): Apply defaults for the | |
5704 | -mprefer-vector-width=[128|256] option. | |
5705 | * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256): | |
5706 | Implement macros to work with -mprefer-vector-width=. | |
5707 | * config/i386/i386.opt: Implemented option | |
5708 | -mprefer-vector-width=[none|128|256|512]. | |
5709 | * doc/invoke.texi: Documentation for | |
5710 | -mprefer-vector-width=[none|128|256|512]. | |
5711 | ||
5712 | 2017-11-21 Pat Haugen <pthaugen@us.ibm.com> | |
5713 | ||
5714 | * config/rs6000/ppc-asm.h (f50, vs50): Fix values. | |
5715 | ||
5716 | 2017-11-21 Jonathan Wakely <jwakely@redhat.com> | |
5717 | ||
5718 | * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity. | |
5719 | ||
5720 | 2017-11-21 Marc Glisse <marc.glisse@inria.fr> | |
5721 | ||
5722 | * doc/generic.texi: Document POINTER_DIFF_EXPR, update | |
5723 | POINTER_PLUS_EXPR. | |
5724 | * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR. | |
5725 | * expr.c (expand_expr_real_2): Likewise. | |
5726 | * fold-const.c (const_binop, fold_addr_of_array_ref_difference, | |
5727 | fold_binary_loc): Likewise. | |
5728 | * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N), | |
5729 | P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y), | |
5730 | (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on | |
5731 | MINUS_EXPR transformations. | |
5732 | * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR. | |
5733 | * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise. | |
5734 | * tree-inline.c (estimate_operator_cost): Likewise. | |
5735 | * tree-pretty-print.c (dump_generic_node, op_code_prio, | |
5736 | op_symbol_code): Likewise. | |
5737 | * tree-vect-stmts.c (vectorizable_operation): Likewise. | |
5738 | * vr-values.c (extract_range_from_binary_expr): Likewise. | |
5739 | * varasm.c (initializer_constant_valid_p_1): Likewise. | |
5740 | * tree.def: New tree code POINTER_DIFF_EXPR. | |
5741 | ||
5742 | 2017-11-21 Uros Bizjak <ubizjak@gmail.com> | |
5743 | ||
5744 | * config/i386/i386.md (*bswap<mode>2_movbe): Add | |
5745 | integer suffix to movbe mnemonic. | |
5746 | (*bswaphi2_movbe): Ditto. | |
5747 | (bswaphi_lowpart): Merge with *bswaphi_lowpart_1. | |
5748 | ||
5749 | 2017-11-21 Jakub Jelinek <jakub@redhat.com> | |
5750 | ||
5751 | PR c++/83045 | |
5752 | * tree-cfg.c (pass_warn_function_return::execute): Formatting fix. | |
5753 | Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION. | |
5754 | Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION. | |
5755 | ||
5756 | 2017-11-21 Martin Liska <mliska@suse.cz> | |
5757 | ||
5758 | * tree-inline.c (expand_call_inline): Remove not needed | |
5759 | xstrdup_for_dump. | |
5760 | ||
5761 | 2017-11-21 James Cowgill <James.Cowgill@imgtec.com> | |
5762 | Jakub Jelinek <jakub@redhat.com> | |
5763 | ||
5764 | PR target/82880 | |
5765 | * config/mips/frame-header-opt.c (mips_register_frame_header_opt): | |
5766 | Remove static keyword from f variable. | |
5767 | ||
5768 | 2017-11-21 Jakub Jelinek <jakub@redhat.com> | |
5769 | ||
5770 | PR tree-optimization/83086 | |
5771 | * gimple-ssa-store-merging.c | |
5772 | (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr | |
5773 | rather than n.base_addr. | |
5774 | ||
5775 | 2017-11-21 Martin Liska <mliska@suse.cz> | |
5776 | ||
5777 | PR rtl-optimization/82044 | |
5778 | PR tree-optimization/82042 | |
5779 | * dse.c (check_mem_read_rtx): Check for overflow. | |
5780 | ||
5781 | 2017-11-21 Aldy Hernandez <aldyh@redhat.com> | |
5782 | ||
5783 | * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix | |
5784 | typo in comment. | |
5785 | ||
5786 | 2017-11-21 Claudiu Zissulescu <claziss@synopsys.com> | |
5787 | ||
5788 | * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call | |
5789 | and its corresponding call arg location note. | |
5790 | ||
5791 | 2017-11-21 Claudiu Zissulescu <claziss@synopsys.com> | |
5792 | Andrew Burgess <andrew.burgess@embecosm.com> | |
5793 | ||
5794 | * config/arc/arc-protos.h (arc_compute_frame_size): Delete | |
5795 | declaration. | |
5796 | (arc_return_slot_offset): Likewise. | |
5797 | (arc_eh_return_address_location): New declaration. | |
5798 | * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define. | |
5799 | (MUST_SAVE_REGISTER): Add exception handler case. | |
5800 | (MUST_SAVE_RETURN_ADDR): Likewise. | |
5801 | (arc_frame_pointer_required): Likewise. | |
5802 | (arc_frame_pointer_needed): New function. | |
5803 | (arc_compute_frame_size): Changed. | |
5804 | (arc_expand_prologue): Likewise. | |
5805 | (arc_expand_epilogue): Likewise. | |
5806 | (arc_initial_elimination_offset): Likewise. | |
5807 | (arc_return_slot_offset): Delete. | |
5808 | (arc_eh_return_address_location): New function. | |
5809 | (arc_builtin_setjmp_frame_value): Likewise. | |
5810 | * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers. | |
5811 | (EH_RETURN_STACKADJ_RTX): Define. | |
5812 | (EH_RETURN_HANDLER_RTX): Likewise. | |
5813 | * config/arc/arc.md (eh_return): Delete. | |
5814 | ||
5815 | 2017-11-21 Aldy Hernandez <aldyh@redhat.com> | |
5816 | ||
5817 | * print-tree.h (debug_vec_tree): Remove prototype. | |
5818 | * gdbinit.in (pvt): Remove macro. | |
5819 | ||
5820 | 2017-11-21 Jakub Jelinek <jakub@redhat.com> | |
5821 | ||
5822 | PR tree-optimization/83047 | |
5823 | * gimple-ssa-store-merging.c | |
5824 | (imm_store_chain_info::output_merged_store): If the loads with the | |
5825 | same vuse are in different basic blocks, for load_gsi pick a load | |
5826 | location that is dominated by the other loads. | |
5827 | ||
5828 | PR c++/83059 | |
5829 | * config/i386/i386.c (ix86_memmodel_check): Start | |
5830 | -Winvalid-memory-model diagnostics with lowercase letter. | |
5831 | ||
5832 | PR debug/82718 | |
5833 | * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily | |
5834 | set in_cold_section_p to the partition containing loc_list->first. | |
5835 | When seeing loc_list->last_before_switch node, update secname and | |
5836 | perform range_across_switch second partition handling only after that. | |
5837 | ||
5838 | PR debug/82933 | |
5839 | * run-rtl-passes.c: Include debug.h. | |
5840 | (run_rtl_passes): Call debug_hooks->assembly_start. | |
5841 | * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked | |
5842 | multiple times. | |
5843 | ||
5844 | PR target/82981 | |
5845 | * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of | |
5846 | OPTAB_DIRECT in calls to expand_simple_binop. | |
5847 | ||
5848 | 2017-11-20 David Malcolm <dmalcolm@redhat.com> | |
5849 | ||
5850 | PR c/81404 | |
5851 | * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o. | |
5852 | ||
5853 | 2017-11-20 David Malcolm <dmalcolm@redhat.com> | |
5854 | ||
5855 | PR c++/72786 | |
5856 | * spellcheck.h (best_match::blithely_get_best_candidate): New | |
5857 | accessor. | |
5858 | ||
5859 | 2017-11-20 Jakub Jelinek <jakub@redhat.com> | |
5860 | ||
5861 | * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics | |
5862 | with lower case letter. | |
5863 | ||
5864 | 2017-11-20 Uros Bizjak <ubizjak@gmail.com> | |
5865 | ||
5866 | * config/i386/i386.md (bswaphi2): New expander. | |
5867 | (*bswaphi2_movbe): New insn pattern. | |
5868 | (bswaphi -> rorhi pepehole2): New peephole pattern. | |
5869 | ||
5870 | 2017-11-20 Jeff Law <law@redhat.com> | |
5871 | ||
5872 | * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o. | |
5873 | * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c. | |
5874 | * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c. | |
5875 | * gimple-ssa-evrp.c: Remove bits moved into new files. Include | |
5876 | gimple-ssa-evrp-analyze.h. | |
5877 | ||
5878 | * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not | |
5879 | set BB_VISITED here. | |
5880 | (evrp_range_analyzer::enter): Set BB_VISITED here instead. | |
5881 | ||
5882 | 2017-11-20 Bin Cheng <bin.cheng@arm.com> | |
5883 | ||
5884 | * tree-predcom.c: Add general comment on Store-Store chains. | |
5885 | (split_data_refs_to_components): Postpone clearing eliminate_store_p | |
5886 | flag in component. | |
5887 | (get_chain_last_ref_at): Rename into... | |
5888 | (get_chain_last_write_at): ...this. | |
5889 | (get_chain_last_write_before_load): New function. | |
5890 | (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to | |
5891 | CT_STORE_STORE when write reference is added. | |
5892 | (determine_roots_comp): Support load ref in CT_STORE_STORE chains. | |
5893 | (is_inv_store_elimination_chain): Update get_chain_last_write_at call. | |
5894 | (initialize_root_vars_store_elim_1): Ditto. | |
5895 | (initialize_root_vars_store_elim_2): Ditto. Replace rhs once default | |
5896 | definition is created. | |
5897 | (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE | |
5898 | chain by replacing it with dominant stored value. | |
5899 | ||
5900 | 2017-11-20 Bin Cheng <bin.cheng@arm.com> | |
5901 | ||
5902 | * tree-predcom.c (add_ref_to_chain): Remove check on distance. | |
5903 | ||
5904 | 2017-11-20 Marc Glisse <marc.glisse@inria.fr> | |
5905 | ||
5906 | * vr-values.c (extract_range_from_binary_expr): Use a full range | |
5907 | for VR_VARYING. | |
5908 | ||
5909 | 2017-11-20 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
5910 | ||
5911 | * config/arm/arm.md (R4_REGNUM): Define constant. | |
5912 | (nonsecure_call_internal): Remove r4 clobber. | |
5913 | (nonsecure_call_value_internal): Likewise. | |
5914 | * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second | |
5915 | clobber and resequence match_operands. | |
5916 | (nonsecure_call_value_reg_thumb1_v5): Likewise. | |
5917 | * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise. | |
5918 | (nonsecure_call_value_reg_thumb2): Likewise. | |
5919 | ||
5920 | 2017-11-20 Jakub Jelinek <jakub@redhat.com> | |
5921 | ||
5922 | PR tree-optimization/78821 | |
5923 | * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up | |
5924 | if base is TARGET_MEM_REF. If base is not MEM_REF, set base_addr | |
5925 | to the address of the base rather than the base itself. | |
5926 | (find_bswap_or_nop_1): Just use pointer comparison for vuse check. | |
5927 | (find_bswap_or_nop_finalize): New function. | |
5928 | (find_bswap_or_nop): Use it. | |
5929 | (bswap_replace): Return a tree rather than bool, change first | |
5930 | argument from gimple * to gimple_stmt_iterator, allow inserting | |
5931 | into an empty sequence, allow ins_stmt to be NULL - then emit | |
5932 | all stmts into gsi. Fix up MEM_REF address gimplification. | |
5933 | (pass_optimize_bswap::execute): Adjust bswap_replace caller. | |
5934 | (struct store_immediate_info): Add N and INS_STMT non-static | |
5935 | data members. | |
5936 | (store_immediate_info::store_immediate_info): Initialize them | |
5937 | from newly added ctor args. | |
5938 | (merged_store_group::apply_stores): Formatting fixes. Sort by | |
5939 | bitpos at the end. | |
5940 | (stmts_may_clobber_ref_p): For stores call also | |
5941 | refs_anti_dependent_p. | |
5942 | (gather_bswap_load_refs): New function. | |
5943 | (imm_store_chain_info::try_coalesce_bswap): New method. | |
5944 | (imm_store_chain_info::coalesce_immediate_stores): Use it. | |
5945 | (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially. | |
5946 | (imm_store_chain_info::output_merged_store): Fail if number of | |
5947 | new estimated stmts is bigger or equal than old. Handle LROTATE_EXPR | |
5948 | and NOP_EXPR rhs_code. | |
5949 | (pass_store_merging::process_store): Compute n and ins_stmt, if | |
5950 | ins_stmt is non-NULL and the store rhs is otherwise invalid, use | |
5951 | LROTATE_EXPR rhs_code. Pass n and ins_stmt to store_immediate_info | |
5952 | ctor. | |
5953 | (pass_store_merging::execute): Calculate dominators. | |
5954 | ||
5955 | * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number, | |
5956 | BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP, | |
5957 | CMPXCHG, do_shift_rotate, verify_symbolic_number_p, | |
5958 | init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge, | |
5959 | find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap, | |
5960 | class pass_optimize_bswap, bswap_replace, | |
5961 | pass_optimize_bswap::execute): Moved to ... | |
5962 | * gimple-ssa-store-merging.c: ... this file. | |
5963 | Include optabs-tree.h. | |
5964 | (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p, | |
5965 | init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge, | |
5966 | find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into | |
5967 | anonymous namespace, remove static keywords. | |
5968 | (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here... | |
5969 | (pass_optimize_bswap::execute): ... rather than here. Formatting fix. | |
5970 | ||
5971 | 2017-11-20 Jan Hubicka <hubicka@ucw.cz> | |
5972 | ||
5973 | PR bootstrap/83062 | |
5974 | * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch. | |
5975 | ||
5976 | 2017-11-20 Aldy Hernandez <aldyh@redhat.com> | |
5977 | ||
5978 | * vec.h (debug_helper): New function. | |
5979 | (DEFINE_DEBUG_VEC): New macro. | |
5980 | * hash-set.h (debug_helper): New function. | |
5981 | (DEFINE_DEBUG_HASH_SET): New macro. | |
5982 | * cfg.c (debug_slim (edge)): New function. | |
5983 | Call DEFINE_DEBUG_VEC for edges. | |
5984 | Call DEFINE_DEBUG_HASH_SET for edges. | |
5985 | * cfghooks.c (debug_slim (basic_block)): New function. | |
5986 | Call DEFINE_DEBUG_VEC for basic blocks. | |
5987 | Call DEFINE_DEBUG_HASH_SET for basic blocks. | |
5988 | * print-tree.c (debug_slim): New function to handle trees. | |
5989 | Call DEFINE_DEBUG_VEC for trees. | |
5990 | Call DEFINE_DEBUG_HASH_SET for trees. | |
5991 | (debug (vec<tree, va_gc>) &): Remove. | |
5992 | (debug (<vec<tree, va_gc>) *): Remove. | |
5993 | * print-rtl.c (debug_slim): New function to handle const_rtx. | |
5994 | Call DEFINE_DEBUG_VEC for rtx_def. | |
5995 | Call DEFINE_DEBUG_VEC for rtx_insn. | |
5996 | Call DEFINE_DEBUG_HASH_SET for rtx_def. | |
5997 | Call DEFINE_DEBUG_HASH_SET for rtx_insn. | |
5998 | * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove. | |
5999 | (debug (vec<rtx_insn *> *ptr): Remove. | |
6000 | (debug_insn_vector): Remove. | |
6001 | * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree. | |
6002 | ||
6003 | 2017-11-20 Tom de Vries <tom@codesourcery.com> | |
6004 | ||
6005 | PR rtl-optimization/82020 | |
6006 | * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of | |
6007 | IF_THEN_ELSE condition. | |
6008 | ||
6009 | 2017-11-19 Jeff Law <law@redhat.com> | |
6010 | ||
6011 | * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling | |
6012 | of degenerates resulting from ignoring an edge. | |
6013 | ||
6014 | 2017-11-19 Jan Hubicka <hubicka@ucw.cz> | |
6015 | ||
6016 | PR ipa/81360 | |
6017 | * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized | |
6018 | ||
6019 | 2017-11-19 Jan Hubicka <hubicka@ucw.cz> | |
6020 | ||
6021 | PR ipa/83001 | |
6022 | * profile-count.c (profile_count::to_sreal_scale): Fix return value | |
6023 | for uninitialied counts. | |
6024 | ||
6025 | 2017-11-19 Jan Hubicka <hubicka@ucw.cz> | |
6026 | ||
6027 | PR ipa/60243 | |
6028 | * tree-inline.c (estimate_num_insns): Set to 1 at least. | |
6029 | ||
6030 | 2017-11-19 Jan Hubicka <hubicka@ucw.cz> | |
6031 | ||
6032 | PR target/82713 | |
6033 | * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types. | |
6034 | ||
6035 | 2017-11-19 Tom de Vries <tom@codesourcery.com> | |
6036 | ||
6037 | * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after | |
6038 | "do while (0)". | |
6039 | ||
6040 | 2017-11-19 Tom de Vries <tom@codesourcery.com> | |
6041 | ||
6042 | * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after | |
6043 | "do {} while (0)". | |
6044 | ||
6045 | 2017-11-19 Tom de Vries <tom@codesourcery.com> | |
6046 | ||
6047 | * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after | |
6048 | macro body. | |
6049 | ||
6050 | 2017-11-19 Tom de Vries <tom@codesourcery.com> | |
6051 | ||
6052 | * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after | |
6053 | "do {} while (0)". | |
6054 | * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same. | |
6055 | ||
6056 | 2017-11-19 Tom de Vries <tom@codesourcery.com> | |
6057 | ||
6058 | * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after | |
6059 | "do {} while (0)". | |
6060 | * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing | |
6061 | semicolon after MCORE_EXPORT_NAME call. | |
6062 | ||
6063 | 2017-11-19 Tom de Vries <tom@codesourcery.com> | |
6064 | ||
6065 | PR target/82961 | |
6066 | * vmsdbgout.c (vmsdbgout_early_finish): New function. | |
6067 | (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish. | |
6068 | ||
6069 | 2017-11-18 Jan Hubicka <hubicka@ucw.cz> | |
6070 | ||
6071 | * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count. | |
6072 | (cgraph_edge::clone): Cleanup updating of profile. | |
6073 | * ipa-cp.c (update_profiling_info): Likewise. | |
6074 | * ipa-inline-transform.c (inline_transform): Likewise. | |
6075 | * ipa-inline.c (inline_small_functions): Add missing space to dump. | |
6076 | * ipa-split.c (execute_split_functions): Do not split when function | |
6077 | is cold. | |
6078 | * predict.c (estimate_bb_frequencies): Cleanup updating of profile. | |
6079 | * profile-count.c (profile_count::dump): Add global0. | |
6080 | (profile_count::to_cgraph_frequency): Do not ICE when entry is | |
6081 | undefined. | |
6082 | (profile_count::to_sreal_scale): Likewise. | |
6083 | (profile_count::adjust_for_ipa_scaling): Fix typo in comment. | |
6084 | (profile_count::combine_with_ipa_count): New function. | |
6085 | * profile-count.h (profile_guessed_global0adjusted): New. | |
6086 | (profile_count::adjusted_zero): New. | |
6087 | (profile_count::global0adjusted): New. | |
6088 | (profile_count::combine_with_ipa_count): New. | |
6089 | * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment; | |
6090 | correct profile of return block of split functions. | |
6091 | (copy_cfg_body): Remove unused profile_count. | |
6092 | (copy_body): Likewise. | |
6093 | (expand_call_inline): Update. | |
6094 | (tree_function_versioning): Update. | |
6095 | ||
6096 | 2017-11-18 Aldy Hernandez <aldyh@redhat.com> | |
6097 | ||
6098 | * hash-set.h (hash_set::empty): New. | |
6099 | * tree-ssa-threadbackward.h: Delete. | |
6100 | * tree-ssa-threadbackward.c (class thread_jumps): New. | |
6101 | Move max_threaded_paths into class. | |
6102 | (fsm_find_thread_path): Remove arguments that are now in class. | |
6103 | (profitable_jump_thread_path): Rename to... | |
6104 | (thread_jumps::profitable_jump_thread_path): ...this. | |
6105 | (convert_and_register_jump_thread_path): Rename to... | |
6106 | (thread_jumps::convert_and_register_current_path): ...this. | |
6107 | (check_subpath_and_update_thread_path): Rename to... | |
6108 | (thread_jumps::check_subpath_and_update_thread_path): ...this. | |
6109 | (register_jump_thread_path_if_profitable): Rename to... | |
6110 | (thread_jumps::register_jump_thread_path_if_profitable): ...this. | |
6111 | (handle_phi): Rename to... | |
6112 | (thread_jumps::handle_phi): ...this. | |
6113 | (handle_assignment): Rename to... | |
6114 | (thread_jumps::handle_assignment): ...this. | |
6115 | (fsm_find_control_statement_thread_paths): Rename to... | |
6116 | (thread_jumps::fsm_find_control_statement_thread_paths): ...this. | |
6117 | (find_jump_threads_backwards): Rename to... | |
6118 | (thread_jumps::find_jump_threads_backwards): ...this. | |
6119 | Initialize path local data. | |
6120 | (pass_thread_jumps::execute): Call find_jump_threads_backwards | |
6121 | from within thread_jumps class. | |
6122 | (pass_early_thread_jumps::execute): Same. | |
6123 | ||
6124 | 2017-11-17 Jan Hubicka <hubicka@ucw.cz> | |
6125 | ||
6126 | * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts. | |
6127 | ||
6128 | 2017-11-17 Steve Ellcey <sellcey@cavium.com> | |
6129 | ||
6130 | * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator | |
6131 | to canonical location. | |
6132 | ||
6133 | 2017-11-17 Steve Ellcey <sellcey@cavium.com> | |
6134 | ||
6135 | PR target/81356 | |
6136 | * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p): | |
6137 | Remove. | |
6138 | (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define. | |
6139 | ||
6140 | 2017-11-17 H.J. Lu <hongjiu.lu@intel.com> | |
6141 | ||
6142 | * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use | |
6143 | rcrt1.o%s/grcrt1.o%s for -static-pie. | |
6144 | ||
6145 | 2017-11-17 Jan Hubicka <hubicka@ucw.cz> | |
6146 | ||
6147 | * i386.c (ix86_multiplication_cost, ix86_division_cost, | |
6148 | ix86_shift_rotate_cost): Break out from ... | |
6149 | (ix86_rtx_costs): ... here. | |
6150 | (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of | |
6151 | vector operations. | |
6152 | ||
6153 | 2017-11-17 Jan Hubicka <hubicka@ucw.cz> | |
6154 | ||
6155 | * predict.c (determine_unlikely_bbs): Set cgraph node count to 0 | |
6156 | when entry block was promoted unlikely. | |
6157 | (estimate_bb_frequencies): Increase frequency scale. | |
6158 | * profile-count.h (profile_count): Export precision info. | |
6159 | ||
6160 | 2017-11-17 Jan Hubicka <hubicka@ucw.cz> | |
6161 | ||
6162 | * tree-tailcall.c (eliminate_tail_call): Be more careful about not | |
6163 | disturbin profile of entry block. | |
6164 | ||
6165 | 2017-11-17 Jan Hubicka <hubicka@ucw.cz> | |
6166 | ||
6167 | * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for | |
6168 | roundoff errors. | |
6169 | ||
6170 | 2017-11-17 Jan Hubicka <hubicka@ucw.cz> | |
6171 | ||
6172 | * ipa-cp.c (update_profiling_info): Handle conversion to local profile. | |
6173 | * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does. | |
6174 | ||
6175 | 2017-11-17 Jeff Law <law@redhat.com> | |
6176 | ||
6177 | * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted | |
6178 | from evrp_dom_walker class. Various methods moved into new class. | |
6179 | (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class. | |
6180 | (evrp_range_analyzer::enter): New method. | |
6181 | (evrp_range_analyzer::leave): New method. | |
6182 | (evrp_dom_walker): Remove delegators no longer needed by this class. | |
6183 | Replace vr_values data member with evrp_range_analyzer | |
6184 | ||
6185 | * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New | |
6186 | method extracted from evrp_dom_walker::before_dom_children. | |
6187 | (evrp_dom_walker::record_ranges_from_stmt): Likewise. | |
6188 | (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise. | |
6189 | ||
6190 | * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method. | |
6191 | Add private copy constructor and move assignment operators. | |
6192 | Privatize methods and class data where trivially possible. | |
6193 | (evrp_dom_walker::cleanup): New function, extracted from | |
6194 | execute_early_vrp. Simplify access to class data. | |
6195 | ||
6196 | * vr-values.h (get_output_for_vrp): Prototype. | |
6197 | * vr-values.c (get_output_for_vrp): New function extracted from | |
6198 | vrp_visit_assignment_or_call and extract_range_from_stmt. | |
6199 | (vrp_visit_assignment_or_call): Use get_output_for_vrp. Simplify. | |
6200 | ||
6201 | 2017-11-17 Luis Machado <luis.machado@linaro.org> | |
6202 | ||
6203 | * config/aarch64/aarch64.c | |
6204 | (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1. | |
6205 | (qdf24xx_tunings) <autoprefetcher_model>: Set to | |
6206 | tune_params::AUTOPREFETCHER_WEAK. | |
6207 | ||
6208 | 2017-11-17 Tamar Christina <tamar.christina@arm.com> | |
6209 | ||
6210 | PR target/82641 | |
6211 | * config/arm/arm.c (arm_valid_target_attribute_rec): | |
6212 | Parse "arch=" and "+<ext>". | |
6213 | (arm_valid_target_attribute_tree): Re-init global options. | |
6214 | (arm_option_override): Make non-static. | |
6215 | (arm_options_perform_arch_sanity_checks): Make errors fatal. | |
6216 | * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef. | |
6217 | (__ARM_FEATURE_CRC32): Support undef. | |
6218 | * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma. | |
6219 | * doc/extend.texi (ARM Function Attributes): Add pragma and target. | |
6220 | ||
6221 | 2017-11-17 David Malcolm <dmalcolm@redhat.com> | |
6222 | ||
6223 | * gdbinit.in (break-on-diagnostic): New command. | |
6224 | ||
6225 | 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
6226 | ||
6227 | * config/i386/i386.c (ix86_expand_epilogue): Change simple | |
6228 | return to indirect jump for EH return if control-flow | |
6229 | protection is enabled. Change explicit 'false' argument in | |
6230 | pro_epilogue_adjust_stack with a value of | |
6231 | flag_cf_protection. | |
6232 | * config/i386/i386.md (simple_return_indirect_internal): | |
6233 | Remove SImode restriction to support 64-bit. | |
6234 | ||
6235 | 2017-11-17 Segher Boessenkool <segher@kernel.crashing.org> | |
6236 | ||
6237 | * combine.c (added_notes_insn): New. | |
6238 | (try_combine): Handle added_notes_insn like added_links_insn. | |
6239 | Rewrite return value code. | |
6240 | (distribute_notes): Set added_notes_insn to the earliest insn we added | |
6241 | a note to. | |
6242 | ||
6243 | 2017-11-17 Segher Boessenkool <segher@kernel.crashing.org> | |
6244 | ||
6245 | PR rtl-optimization/82621 | |
6246 | * combine.c (try_combine): Do not split PARALLELs of two SETs if the | |
6247 | dest of one of those SETs is unused. | |
6248 | ||
6249 | 2017-11-17 Richard Biener <rguenther@suse.de> | |
6250 | ||
6251 | PR fortran/83017 | |
6252 | * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind. | |
6253 | * tree-pretty-print.c (dump_generic_node): Handle | |
6254 | annot_expr_parallel_kind. | |
6255 | * tree-cfg.c (replace_loop_annotate_in_block): Likewise. | |
6256 | * gimplify.c (gimple_boolify): Likewise. | |
6257 | ||
6258 | 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
6259 | ||
6260 | * config.gcc (extra_headers): Add cet.h for x86 targets. | |
6261 | * config/i386/cet.h: New file. | |
6262 | * doc/install.texi: Add --enable-cet/--disable-cet. | |
6263 | ||
6264 | 2017-11-17 Richard Biener <rguenther@suse.de> | |
6265 | ||
6266 | PR tree-optimization/83017 | |
6267 | * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread. | |
6268 | (gen_parallel_loop): Properly count iterations. | |
6269 | (parallelize_loops): Handle loop->can_be_parallel independent | |
6270 | of flag_loop_parallelize_all. Make static profitability test match | |
6271 | the runtime one. | |
6272 | * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New. | |
6273 | * invoke.texi (parloops-min-per-thread): Document. | |
6274 | ||
6275 | 2017-11-17 Vineet Gupta <vgupta@synopsys.com> | |
6276 | ||
6277 | * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc | |
6278 | upstreaming review comments. | |
6279 | ||
6280 | 2017-11-17 Tamar Christina <tamar.christina@arm.com> | |
6281 | ||
6282 | * expr.c (copy_blkmode_to_reg): Fix bitsize for targets | |
6283 | with fast unaligned access. | |
6284 | * doc/sourcebuild.texi (word_mode_no_slow_unalign): New. | |
6285 | ||
6286 | 2017-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
6287 | ||
6288 | * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate | |
6289 | to_clear_arg_regs_bitmap to the same size as to_clear_bitmap. | |
6290 | ||
6291 | 2017-11-17 Richard Biener <rguenther@suse.de> | |
6292 | ||
6293 | * tree-ssa-pre.c (phi_translate_1): Remove redundant constant | |
6294 | folding of references. | |
6295 | ||
6296 | 2017-11-17 Qing Zhao <qing.zhao@oracle.com> | |
6297 | ||
6298 | PR middle-end/78809 | |
6299 | * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling | |
6300 | of replacing call to strncmp with corresponding call to strcmp when | |
6301 | meeting conditions. | |
6302 | ||
6303 | 2017-11-17 Sergey Shalnov <Sergey.Shalnov@intel.com> | |
6304 | ||
6305 | * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning | |
6306 | option prefer-avx256 for skylake-avx512 configuration. | |
6307 | * config/i386/i386.c (ix86_option_override_internal): Ditto. | |
6308 | (get_builtin_code_for_version): Ditto. | |
6309 | ||
6310 | 2017-11-17 Chung-Ju Wu <jasonwucj@gmail.com> | |
6311 | Monk Chiang <sh.chiang04@gmail.com> | |
6312 | ||
6313 | * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify. | |
6314 | (FIXED_REGISTERS): Reserve more register numbers. | |
6315 | (CALL_USED_REGISTERS): Likewise. | |
6316 | (REG_ALLOC_ORDER): Likewise. | |
6317 | (REG_CLASS_CONTENTS): Likewise. | |
6318 | (REGISTER_NAMES): Likewise. | |
6319 | ||
6320 | 2017-11-17 Chung-Ju Wu <jasonwucj@gmail.com> | |
6321 | Kito Cheng <kito.cheng@gmail.com> | |
6322 | ||
6323 | * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI | |
6324 | V2SI. | |
6325 | * config/nds32/iterators.md: Add vector mode iterators and attributes. | |
6326 | ||
6327 | 2017-11-16 Steven Munroe <munroesj@gcc.gnu.org> | |
6328 | ||
6329 | * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct | |
6330 | parameter list for vec_splats. | |
6331 | ||
6332 | 2017-11-16 Joseph Myers <joseph@codesourcery.com> | |
6333 | ||
6334 | * doc/invoke.texi (-std=c17): Refer to 2018 expected publication | |
6335 | date of C17. | |
6336 | (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases. | |
6337 | ||
6338 | 2017-11-16 Thomas Koenig <tkoenig@gcc.gnu.org> | |
6339 | ||
6340 | PR bootstrap/82856 | |
6341 | * doc/install.texi: Document incompatibility of Perl >=5.6.26 | |
6342 | with the required version of automake 1.11.6. | |
6343 | ||
6344 | 2017-11-16 Pat Haugen <pthaugen@us.ibm.com> | |
6345 | ||
6346 | * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined | |
6347 | for it. | |
6348 | (DU_C2_3_power9): Correct reservation combinations. | |
6349 | (FP_DIV_power9, VEC_DIV_power9): New. | |
6350 | (power9-alu): Split out rotate/shift... | |
6351 | (power9-rot): ...to here, correct dispatch resource. | |
6352 | (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch | |
6353 | resource. | |
6354 | (power9-fp): Correct latency. | |
6355 | (power9-sdiv): Add div/sqrt resource. | |
6356 | (power9-ddiv): Correct latency, add div/sqrt resource. | |
6357 | (power9-sqrt, power9-dsqrt): Add div/sqrt resource. | |
6358 | (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt | |
6359 | resource. | |
6360 | (power9-qpdiv, power9-qpmul): Adjust resource usage. | |
6361 | ||
6362 | 2017-11-15 Michael Meissner <meissner@linux.vnet.ibm.com> | |
6363 | ||
6364 | * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the | |
6365 | switch statement mapping KF built-ins to TF built-ins if we don't | |
6366 | have the proper ISA 3.0 assembler support. | |
6367 | ||
6368 | 2017-11-16 Jan Hubicka <hubicka@ucw.cz> | |
6369 | ||
6370 | * tree-emutls.c (lower_emutls_data): Remove unused bb_freq. | |
6371 | (lower_emutls_function_body): Do not compute it. | |
6372 | ||
6373 | 2017-11-16 Jan Hubicka <hubicka@ucw.cz> | |
6374 | ||
6375 | * ipa-split.c (split_bb_info): Turn time to sreal. | |
6376 | (split_point): Likewise. | |
6377 | (dump_split_point): Likewise. | |
6378 | (fine_split_points): Likewise. | |
6379 | (execute_split_functions): Only zero split_bbs; turn time to sreals. | |
6380 | ||
6381 | 2017-11-16 Jan Hubicka <hubicka@ucw.cz> | |
6382 | ||
6383 | * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently | |
6384 | in sreal. | |
6385 | ||
6386 | 2017-11-16 Jan Hubicka <hubicka@ucw.cz> | |
6387 | ||
6388 | * predict.c (combine_predictions_for_bb): Preserve zero predicted | |
6389 | edges. | |
6390 | (expensive_function_p): Remove useless assert. | |
6391 | (determine_unlikely_bbs): Propagate also forward; determine cold blocks | |
6392 | ||
6393 | 2017-11-16 Martin Sebor <msebor@redhat.com> | |
6394 | ||
6395 | PR tree-optimization/82588 | |
6396 | PR tree-optimization/82583 | |
6397 | * tree-vrp.c (check_array_ref): Handle flexible array members, | |
6398 | string literals, and inner indices. | |
6399 | (search_for_addr_array): Add detail to diagnostics. | |
6400 | ||
6401 | 2017-11-16 Nathan Sidwell <nathan@acm.org> | |
6402 | ||
6403 | PR c++/82836 | |
6404 | PR c++/82737 | |
6405 | * tree.h (COPY_DECL_RTL): Rename parms for clarity. | |
6406 | (SET_DECL_ASSEMBLER_NAME): Forward to | |
6407 | overwrite_decl_assembler_name. | |
6408 | (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity. | |
6409 | (overwrite_decl_assembler_name): Declare. | |
6410 | * tree.c (overwrite_decl_assembler_name): New. | |
6411 | * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare. | |
6412 | (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default. | |
6413 | (LANG_HOOKS_INITIALIZER): Add it. | |
6414 | * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name. | |
6415 | * langhooks.c (lhd_set_decl_assembler_name): Use | |
6416 | SET_DECL_ASSEMBLER_NAME. | |
6417 | (lhd_overwrite_decl_assembler_name): Default implementation. | |
6418 | ||
6419 | 2017-11-16 Wilco Dijkstra <wdijkstr@arm.com> | |
6420 | Jackson Woodruff <jackson.woodruff@arm.com> | |
6421 | ||
6422 | PR tree-optimization/71026 | |
6423 | * match.pd: Canonicalize constant multiplies in division. | |
6424 | ||
6425 | 2017-11-16 Wilco Dijkstra <wdijkstr@arm.com> | |
6426 | ||
6427 | * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry. | |
6428 | * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE): | |
6429 | Remove OPT_fomit_frame_pointer entry. | |
6430 | * common/config/arc/arc-common.c: Likewise. | |
6431 | * common/config/arm/arm-common.c: Likewise. | |
6432 | * common/config/avr/avr-common.c: Likewise. | |
6433 | * common/config/c6x/c6x-common.c: Likewise. | |
6434 | * common/config/cr16/cr16-common.c: Likewise. | |
6435 | * common/config/cris/cris-common.c: Likewise. | |
6436 | * common/config/epiphany/epiphany-common.c: Likewise. | |
6437 | * common/config/fr30/fr30-common.c: Likewise. | |
6438 | * common/config/frv/frv-common.c: Likewise. | |
6439 | * common/config/ia64/ia64-common.c: Likewise. | |
6440 | * common/config/iq2000/iq2000-common.c: Likewise. | |
6441 | * common/config/lm32/lm32-common.c: Likewise. | |
6442 | * common/config/m32r/m32r-common.c: Likewise. | |
6443 | * common/config/mcore/mcore-common.c: Likewise. | |
6444 | * common/config/microblaze/microblaze-common.c: Likewise. | |
6445 | * common/config/mips/mips-common.c: Likewise. | |
6446 | * common/config/mmix/mmix-common.c: Likewise. | |
6447 | * common/config/mn10300/mn10300-common.c: Likewise. | |
6448 | * common/config/nios2/nios2-common.c: Likewise. | |
6449 | * common/config/pa/pa-common.c: Likewise. | |
6450 | * common/config/pdp11/pdp11-common.c: Likewise. | |
6451 | * common/config/powerpcspe/powerpcspe-common.c: Likewise. | |
6452 | * common/config/riscv/riscv-common.c: Likewise. | |
6453 | * common/config/rs6000/rs6000-common.c: Likewise. | |
6454 | * common/config/rx/rx-common.c: Likewise. | |
6455 | * common/config/s390/s390-common.c: Likewise. | |
6456 | * common/config/sh/sh-common.c: Likewise. | |
6457 | * common/config/sparc/sparc-common.c: Likewise. | |
6458 | * common/config/tilegx/tilegx-common.c: Likewise. | |
6459 | * common/config/tilepro/tilepro-common.c: Likewise. | |
6460 | * common/config/v850/v850-common.c: Likewise. | |
6461 | * common/config/visium/visium-common.c: Likewise. | |
6462 | * common/config/xstormy16/xstormy16-common.c: Likewise. | |
6463 | * common/config/xtensa/xtensa-common.c: Likewise. | |
6464 | * invoke.texi (-fomit-frame-pointer): Update documentation. | |
6465 | ||
6466 | 2017-11-16 Jan Hubicka <hubicka@ucw.cz> | |
6467 | ||
6468 | * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq. | |
6469 | ||
6470 | 2017-11-14 Jan Hubicka <hubicka@ucw.cz> | |
6471 | ||
6472 | * cfg.c (scale_bbs_frequencies_int, | |
6473 | cale_bbs_frequencies_gcov_type): Remove. | |
6474 | * cfg.h (scale_bbs_frequencies_int, | |
6475 | cale_bbs_frequencies_gcov_type): Remove. | |
6476 | ||
6477 | 2017-11-14 Jan Hubicka <hubicka@ucw.cz> | |
6478 | ||
6479 | * tree-ssa-loop-manip.c | |
6480 | (scale_dominated_blocks_in_loop): Update to profile counts. | |
6481 | (tree_transform_and_unroll_loop): Likewise. | |
6482 | ||
6483 | 2017-11-14 Jan Hubicka <hubicka@ucw.cz> | |
6484 | ||
6485 | * tree-vect-loop-manip.c (vect_do_peeling): Do not use | |
6486 | scale_bbs_frequencies_int. | |
6487 | ||
6488 | 2017-11-14 Jan Hubicka <hubicka@ucw.cz> | |
6489 | ||
6490 | * final.c (compute_alignments): Use counts rather than frequencies. | |
6491 | ||
6492 | 2017-11-14 Jan Hubicka <hubicka@ucw.cz> | |
6493 | ||
6494 | * cfgloopanal.c: Include sreal.h | |
6495 | (average_num_loop_insns): Use counts and sreal for accounting. | |
6496 | ||
6497 | 2017-11-14 Jan Hubicka <hubicka@ucw.cz> | |
6498 | ||
6499 | * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile | |
6500 | manipulation. | |
6501 | ||
6502 | 2017-11-16 Chung-Ju Wu <jasonwucj@gmail.com> | |
6503 | Kito Cheng <kito.cheng@gmail.com> | |
6504 | ||
6505 | * config/nds32/constraints.md: Provide more constraints. | |
6506 | * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES, | |
6507 | REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to | |
6508 | support constraints usage. | |
6509 | ||
6510 | 2017-11-16 Chung-Ju Wu <jasonwucj@gmail.com> | |
6511 | ||
6512 | * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove. | |
6513 | ||
6514 | 2017-11-16 Chung-Ju Wu <jasonwucj@gmail.com> | |
6515 | Kito Cheng <kito.cheng@gmail.com> | |
6516 | ||
6517 | * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string. | |
6518 | * config/nds32/nds32.opt: Refine the layout. | |
6519 | * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2, | |
6520 | TARGET_EXT_STRING): Support new options. | |
6521 | * config/nds32/nds32.h: Likewise. | |
6522 | * config/nds32/nds32.md: Likewise. | |
6523 | * config/nds32/nds32-predicates.c: Likewise. | |
6524 | * config/nds32/constraints.md: Likewise. | |
6525 | * common/config/nds32/nds32-common.c: Likewise. | |
6526 | ||
6527 | 2017-11-16 Julia Koval <julia.koval@intel.com> | |
6528 | ||
6529 | PR target/82983 | |
6530 | * config/i386/gfniintrin.h: Add sse check. | |
6531 | * config/i386/i386.c (ix86_expand_builtin): Fix gfni check. | |
6532 | ||
6533 | 2017-11-16 Julia Koval <julia.koval@intel.com> | |
6534 | ||
6535 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET, | |
6536 | OPTION_MASK_ISA_AVX512VBMI2_UNSET): New. | |
6537 | (ix86_handle_option): Handle -mavx512vbmi2. | |
6538 | * config/i386/cpuid.h: Add bit_AVX512VBMI2. | |
6539 | * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit. | |
6540 | * config/i386/i386-c.c (__AVX512VBMI2__): New. | |
6541 | * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2. | |
6542 | (ix86_valid_target_attribute_inner_p): Ditto. | |
6543 | * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New. | |
6544 | * config/i386/i386.opt (mavx512vbmi2): New option. | |
6545 | * doc/invoke.texi: Add new option. | |
6546 | ||
6547 | 2017-11-16 Julia Koval <julia.koval@intel.com> | |
6548 | ||
6549 | * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8, | |
6550 | _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8, | |
6551 | _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8, | |
6552 | _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8, | |
6553 | _mm512_gf2p8mul_epi8): New intrinsics. | |
6554 | * config/i386/i386-builtin-types.def | |
6555 | (V64QI_FTYPE_V64QI_V64QI): New type. | |
6556 | * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi, | |
6557 | __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi, | |
6558 | __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi, | |
6559 | __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins. | |
6560 | * config/i386/sse.md (vgf2p8mulb_*): New pattern. | |
6561 | * config/i386/i386.c (ix86_expand_args_builtin): Handle new type. | |
6562 | ||
6563 | 2017-11-15 Uros Bizjak <ubizjak@gmail.com> | |
6564 | ||
6565 | * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop | |
6566 | explicitly as a stream of bytes. | |
6567 | ||
6568 | 2017-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
6569 | ||
6570 | * config/rs6000/altivec.h (vec_xst_be): New #define. | |
6571 | * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename | |
6572 | and externalize from *altivec_vperm_<mode>_internal. | |
6573 | * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro | |
6574 | instantiation. | |
6575 | (XL_BE_V8HI): Likewise. | |
6576 | (XL_BE_V4SI): Likewise. | |
6577 | (XL_BE_V4SI): Likewise. | |
6578 | (XL_BE_V2DI): Likewise. | |
6579 | (XL_BE_V4SF): Likewise. | |
6580 | (XL_BE_V2DF): Likewise. | |
6581 | (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation. | |
6582 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct | |
6583 | all array entries with these keys: VSX_BUILTIN_VEC_XL, | |
6584 | VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST. Add entries for key | |
6585 | VSX_BUILTIN_VEC_XST_BE. | |
6586 | * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove. | |
6587 | (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_* | |
6588 | built-ins. | |
6589 | (altivec_init_builtins): Replace conditional calls to def_builtin | |
6590 | for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and | |
6591 | __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR | |
6592 | with unconditional calls. Remove calls to def_builtin for | |
6593 | __builtin_vsx_le_be_<mode>. Add a call to def_builtin for | |
6594 | __builtin_vec_xst_be. | |
6595 | * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn | |
6596 | to define_expand, and add alternate RTL generation for P8. | |
6597 | (*vsx_ld_elemrev_v8hi_internal): New define_insn based on | |
6598 | vsx_ld_elemrev_v8hi. | |
6599 | (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and | |
6600 | add alternate RTL generation for P8. | |
6601 | (*vsx_ld_elemrev_v16qi_internal): New define_insn based on | |
6602 | vsx_ld_elemrev_v16qi. | |
6603 | (vsx_st_elemrev_v8hi): Convert define_insn | |
6604 | to define_expand, and add alternate RTL generation for P8. | |
6605 | (*vsx_st_elemrev_v8hi_internal): New define_insn based on | |
6606 | vsx_st_elemrev_v8hi. | |
6607 | (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and | |
6608 | add alternate RTL generation for P8. | |
6609 | (*vsx_st_elemrev_v16qi_internal): New define_insn based on | |
6610 | vsx_st_elemrev_v16qi. | |
6611 | ||
6612 | 2017-11-15 H.J. Lu <hongjiu.lu@intel.com> | |
6613 | ||
6614 | PR target/82990 | |
6615 | * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove | |
6616 | TARGET_AVX512ER check. | |
6617 | (ix86_option_override_internal): Set MASK_VZEROUPPER if | |
6618 | neither -mzeroupper nor -mno-zeroupper is used and | |
6619 | TARGET_EMIT_VZEROUPPER is set. | |
6620 | * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New. | |
6621 | * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER. | |
6622 | ||
6623 | 2017-11-15 Will Schmidt <will_schmidt@vnet.ibm.com> | |
6624 | ||
6625 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for | |
6626 | folding of vector compares. | |
6627 | (fold_build_vec_cmp): New helper function. | |
6628 | (fold_compare_helper): New helper function. | |
6629 | (builtin_function_type): Add compare builtins to the list of functions | |
6630 | having unsigned arguments. Cosmetic updates to comment indentation. | |
6631 | * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify | |
6632 | the not+eq combination. | |
6633 | ||
6634 | 2017-11-15 Bin Cheng <bin.cheng@arm.com> | |
6635 | ||
6636 | PR tree-optimization/82726 | |
6637 | PR tree-optimization/70754 | |
6638 | * tree-predcom.c (order_drefs_by_pos): New function. | |
6639 | (combine_chains): Move code setting has_max_use_after to... | |
6640 | (try_combine_chains): ...here. New parameter. Sort combined chains | |
6641 | according to position information. | |
6642 | (tree_predictive_commoning_loop): Update call to above function. | |
6643 | (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New. | |
6644 | ||
6645 | 2017-11-15 Bin Cheng <bin.cheng@arm.com> | |
6646 | ||
6647 | PR tree-optimization/82726 | |
6648 | Revert | |
6649 | 2017-01-23 Bin Cheng <bin.cheng@arm.com> | |
6650 | ||
6651 | PR tree-optimization/70754 | |
6652 | * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE. | |
6653 | (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert | |
6654 | combined stmt before it if not NULL. | |
6655 | (combine_chains): Process refs reversely and compute dominance point | |
6656 | for root ref. | |
6657 | ||
6658 | Revert | |
6659 | 2017-02-23 Bin Cheng <bin.cheng@arm.com> | |
6660 | ||
6661 | PR tree-optimization/79663 | |
6662 | * tree-predcom.c (combine_chains): Process refs in reverse order | |
6663 | only for ZERO length chains, and add explaining comment. | |
6664 | ||
6665 | 2017-11-15 Tamar Christina <tamar.christina@arm.com> | |
6666 | ||
6667 | * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New | |
6668 | * config/arm/arm-tables.opt (armv8.3-a): Regenerated. | |
6669 | * doc/invoke.texi (ARM Options): Add armv8.3-a. | |
6670 | ||
6671 | 2017-11-15 Tamar Christina <tamar.christina@arm.com> | |
6672 | ||
6673 | * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2. | |
6674 | ||
6675 | 2017-11-15 Martin Liska <mliska@suse.cz> | |
6676 | ||
6677 | * tree-cfg.c (pass_warn_function_return::execute): | |
6678 | Compare warn_return_type for greater than zero. | |
6679 | ||
6680 | 2017-11-15 Sebastian Peryt <sebastian.peryt@intel.com> | |
6681 | ||
6682 | PR target/82941 | |
6683 | PR target/82942 | |
6684 | * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition | |
6685 | to return true on Xeon and not on Xeon Phi. | |
6686 | (ix86_check_avx256_register): Changed to ... | |
6687 | (ix86_check_avx_upper_register): ... this. Add extra check for | |
6688 | VALID_AVX512F_REG_OR_XI_MODE. | |
6689 | (ix86_avx_u128_mode_needed): Changed | |
6690 | ix86_check_avx256_register to ix86_check_avx_upper_register. | |
6691 | (ix86_check_avx256_stores): Changed to ... | |
6692 | (ix86_check_avx_upper_stores): ... this. Changed | |
6693 | ix86_check_avx256_register to ix86_check_avx_upper_register. | |
6694 | (ix86_avx_u128_mode_after): Changed | |
6695 | avx_reg256_found to avx_upper_reg_found. Changed | |
6696 | ix86_check_avx256_stores to ix86_check_avx_upper_stores. | |
6697 | (ix86_avx_u128_mode_entry): Changed | |
6698 | ix86_check_avx256_register to ix86_check_avx_upper_register. | |
6699 | (ix86_avx_u128_mode_exit): Ditto. | |
6700 | * config/i386/i386.h: (host_detect_local_cpu): New define. | |
6701 | ||
6702 | 2017-11-15 Dominik Infuehr <dominik.infuehr@theobroma-systems.com> | |
6703 | ||
6704 | * config/arm/xgene1.md (xgene1): Split into automatons | |
6705 | xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd. | |
6706 | (xgene1_f_load): Adjust reservations and/or types. | |
6707 | (xgene1_f_store): Likewise. | |
6708 | (xgene1_load_pair): Likewise. | |
6709 | (xgene1_store_pair): Likewise. | |
6710 | (xgene1_fp_load1): Likewise. | |
6711 | (xgene1_load1): Likewise. | |
6712 | (xgene1_store1): Likewise. | |
6713 | (xgene1_move): Likewise. | |
6714 | (xgene1_alu): Likewise. | |
6715 | (xgene1_simd): Likewise. | |
6716 | (xgene1_bfm): Likewise. | |
6717 | (xgene1_neon_load1): Likewise. | |
6718 | (xgene1_neon_store1): Likewise. | |
6719 | (xgene1_neon_logic): Likewise. | |
6720 | (xgene1_neon_st1): Likewise. | |
6721 | (xgene1_neon_ld1r): Likewise. | |
6722 | (xgene1_alu_cond): Added. | |
6723 | (xgene1_shift_reg): Likwise. | |
6724 | (xgene1_bfx): Likewise. | |
6725 | (xgene1_mul): Split into xgene1_mul32, xgene1_mul64. | |
6726 | ||
6727 | 2017-11-15 Jakub Jelinek <jakub@redhat.com> | |
6728 | ||
6729 | PR target/82981 | |
6730 | * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and | |
6731 | ssa-iterators.h. | |
6732 | (can_widen_mult_without_libcall): New function. | |
6733 | (expand_mul_overflow): If only checking unsigned mul overflow, | |
6734 | not result, and can do efficiently MULT_HIGHPART_EXPR, emit that. | |
6735 | Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless | |
6736 | no other way works. Add MULT_HIGHPART_EXPR + MULT_EXPR support. | |
6737 | (expand_DIVMOD): Formatting fix. | |
6738 | * expmed.h (expand_mult): Add NO_LIBCALL argument. | |
6739 | * expmed.c (expand_mult): Likewise. Use OPTAB_WIDEN rather | |
6740 | than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail. | |
6741 | ||
6742 | PR tree-optimization/82977 | |
6743 | * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy | |
6744 | constructed temporary to strlen_to_stridx.put. | |
6745 | ||
6746 | 2017-11-15 Martin Liska <mliska@suse.cz> | |
6747 | ||
6748 | * configure.ac: Remove -fkeep-inline-functions from coverage_flags. | |
6749 | * configure: Regenerate. | |
6750 | ||
6751 | 2017-11-15 Martin Liska <mliska@suse.cz> | |
6752 | ||
6753 | PR target/82927 | |
6754 | * config/sh/sh-mem.cc: Use proper probability for | |
6755 | REG_BR_PROB_NOTE. | |
6756 | ||
6757 | 2017-11-14 Jeff Law <law@redhat.com> | |
6758 | ||
6759 | * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing | |
6760 | the red zone for stack_clash_protection_final_dynamic_probe targets | |
6761 | when the total dynamic stack size is zero bytes. | |
6762 | ||
6763 | * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread | |
6764 | blocks is post order. | |
6765 | ||
6766 | 2017-11-15 Alexandre Oliva <aoliva@redhat.com> | |
6767 | ||
6768 | * dumpfile.h (TDF_COMPARE_DEBUG): New. | |
6769 | * final.c (rest_of_clean_state): Set it for the | |
6770 | -fcompare-debug dump. | |
6771 | * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF | |
6772 | class when TDF_COMPARE_DEBUG is set. | |
6773 | ||
6774 | * dwarf2out.c (gen_producer_string): Discard | |
6775 | OPT_fcompare_debug. | |
6776 | ||
6777 | 2017-11-15 Joseph Myers <joseph@codesourcery.com> | |
6778 | ||
6779 | PR c/81156 | |
6780 | * doc/extend.texi (Other Builtins): Document __builtin_tgmath. | |
6781 | * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose) | |
6782 | (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2) | |
6783 | (__TGMATH_REAL_2_3): Remove macros. | |
6784 | (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2) | |
6785 | (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using | |
6786 | __builtin_tgmath. | |
6787 | (frexp, ldexp, nexttoward, scalbn, scalbln): Define using | |
6788 | __TGMATH_REAL_2. | |
6789 | (remquo): Define using __TGMATH_REAL_3. | |
6790 | ||
6791 | 2017-11-14 Jeff Law <law@redhat.com> | |
6792 | ||
6793 | * vr-values.c: New file with contents extracted from tree-vrp.c. | |
6794 | * Makefile.in (OBJS): Add vr-values.o | |
6795 | * tree-vrp.h (set_value_range_to_nonnull): Prototype. | |
6796 | (set_value_range, set_and_canonicalize_value_range): Likewise. | |
6797 | (vrp_bitmap_equal_p, range_is_nonnull): Likewise. | |
6798 | (value_range_constant_singleton, symbolic_range_p): Likewise. | |
6799 | (compare_values, compare_values_warnv, vrp_val_is_min): Likewise. | |
6800 | (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise. | |
6801 | (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise. | |
6802 | (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise. | |
6803 | (find_case_label_range, find_case_label_index): Likewise. | |
6804 | (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise. | |
6805 | (range_int_cst_singleton_p, value_inside_range): Likewise. | |
6806 | (get_single_symbol): Likewise. | |
6807 | (switch_update): Move structure definition here. | |
6808 | (to_remove_edges, to_update_switch_stmts): Provide externs. | |
6809 | * tree-vrp.c: Move all methods for vr-values class to vr-values.c | |
6810 | (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible. | |
6811 | (vrp_val_is_min, set_value_range): Likewise. | |
6812 | (set_and_canonicalize_value_range, copy_value_range): Likewise. | |
6813 | (set_value_range_to_value, set_value_range_to_nonnull): Likewise. | |
6814 | (set_value_range_to_null, vrp_bitmap_equal_p): Likewise. | |
6815 | (range_is_nonnull, range_int_cst_p): Likewwise. | |
6816 | (range_int_cst_singleton_p, symbolic_range_p): Likewise. | |
6817 | (get_single_symbol, operand_less_p): Likewise | |
6818 | (compare_values_warnv, compare_values): Likewise. | |
6819 | (value_inside_range, value_range_constant_singleton): Likewise. | |
6820 | (zero_nonzero_bitgs_from_vr): Likewise. | |
6821 | (extract_range_from_binary_expr_1): Likewise. | |
6822 | (overflow_comparison_p): Likewise. | |
6823 | (to_remove_edges, to_update_switch_stmts): Likewise. | |
6824 | (find_case_label-index, find_case_label_range): Likewise. | |
6825 | (switch_update, set_value_range_to_nonnegative): Remove. | |
6826 | (set_value_range_to_truthvalue): Likewise. | |
6827 | (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise. | |
6828 | (gimple_stmt_nonzero_p, compare_ranges): Likewise. | |
6829 | (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise. | |
6830 | (find_case_label_ranges, test_for_singularity): Likewise. | |
6831 | (range_fits_type_p, simplify_conversion_using_ranges): LIkewise. | |
6832 | (x_vr_values): Move to its remaining use site. | |
6833 | ||
6834 | 2017-11-10 Jeff Law <law@redhat.com> | |
6835 | ||
6836 | * vr-values.h (VR_INITIALIZER): Move #define here. | |
6837 | * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c | |
6838 | * Makefile.in (OBJS): Add tree-evrp.o | |
6839 | * tree-vrp.h (assert_info): Move structure definition here. | |
6840 | (set_value_range_to_varying): Prototype. | |
6841 | (vrp_operand_equal_p, range_includes_zero_p): Likewise. | |
6842 | (infer_value_range, register_edge_assert_for): Likewise. | |
6843 | (stmt_interesting_for_vrp): Likewise. | |
6844 | * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c. | |
6845 | (set_value_range_to_varying): No longer static. | |
6846 | (vrp_operand_equal_p, range_includes_zero_p): Likewise. | |
6847 | (infer_value_range, register_edge_assert_for): Likewise. | |
6848 | ||
6849 | 2017-11-14 Michael Meissner <meissner@linux.vnet.ibm.com> | |
6850 | ||
6851 | * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't | |
6852 | generate the XXBRD instruction. | |
6853 | ||
6854 | * config/rs6000/rs6000-c.c (is_float128_p): New helper function. | |
6855 | (rs6000_builtin_type_compatible): Treat _Float128 and long double | |
6856 | as being compatible if -mabi=ieeelongdouble. | |
6857 | * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros | |
6858 | to setup float128 built-ins with hardware support. | |
6859 | (BU_FLOAT128_HW_2): Likewise. | |
6860 | (BU_FLOAT128_HW_3): Likewise. | |
6861 | (BU_FLOAT128_HW_VSX_1): Likewise. | |
6862 | (BU_FLOAT128_HW_VSX_2): Likewise. | |
6863 | (scalar_extract_expq): Change float128 built-in functions to | |
6864 | accommodate having both KFmode and TFmode functions. Use the | |
6865 | KFmode variant as the default. | |
6866 | (scalar_extract_sigq): Likewise. | |
6867 | (scalar_test_neg_qp): Likewise. | |
6868 | (scalar_insert_exp_q): Likewise. | |
6869 | (scalar_insert_exp_qp): Likewise. | |
6870 | (scalar_test_data_class_qp): Likewise. | |
6871 | (sqrtf128_round_to_odd): Delete processing the round to odd | |
6872 | built-in functions as special built-in functions, and define them | |
6873 | as float128 built-ins. Use the KFmode variant as the default. | |
6874 | (truncf128_round_to_odd): Likewise. | |
6875 | (addf128_round_to_odd): Likewise. | |
6876 | (subf128_round_to_odd): Likewise. | |
6877 | (mulf128_round_to_odd): Likewise. | |
6878 | (divf128_round_to_odd): Likewise. | |
6879 | (fmaf128_round_to_odd): Likewise. | |
6880 | * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add | |
6881 | support for KFmode and TFmode xststdcqp calls. | |
6882 | (rs6000_expand_builtin): If long double is IEEE 128-bit floating | |
6883 | point, switch the built-in handlers for the get/set float128 | |
6884 | exponent, get float128 mantissa, float128 test built-ins, and the | |
6885 | float128 round to odd built-in functions. Eliminate creating the | |
6886 | float128 round to odd built-in functions as special built-ins. | |
6887 | (rs6000_init_builtins): Eliminate special creation of the float128 | |
6888 | round to odd built-in functions. | |
6889 | * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in | |
6890 | function insns to support both TFmode and KFmode variants. | |
6891 | (xsxsigqp_<mode>): Likewise. | |
6892 | (xsiexpqpf_<mode>): Likewise. | |
6893 | (xsiexpqp_<mode>): Likewise. | |
6894 | (xststdcqp_<mode>): Likewise. | |
6895 | (xststdcnegqp_<mode>): Likewise. | |
6896 | (xststdcqp_<mode>): Likewise. | |
6897 | ||
6898 | 2017-11-14 Jan Hubicka <hubicka@ucw.cz> | |
6899 | ||
6900 | * tree-ssa-threadupdate.c (compute_path_counts): Remove | |
6901 | unused path_in_freq_ptr parameter. | |
6902 | (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq | |
6903 | ||
6904 | 2017-11-14 Jan Hubicka <hubicka@ucw.cz> | |
6905 | ||
6906 | * ipa-inline.c (edge_badness): Dump sreal frequency. | |
6907 | (compute_inlined_call_time): Match natural implementaiton ... | |
6908 | * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove | |
6909 | forgotten division by CGRAPH_FREQ_BASE. | |
6910 | ||
6911 | 2017-11-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
6912 | ||
6913 | * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since | |
6914 | Solaris 11. Update comment. | |
6915 | * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12 | |
6916 | renaming. | |
6917 | * config/sol2.h (STARTFILE_SPEC): Likewise. | |
6918 | * configure: Regenerate. | |
6919 | ||
6920 | 2017-11-14 Carl Love <cel@us.ibm.com> | |
6921 | ||
6922 | * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove | |
6923 | le_ and be_ prefixes to swap* variables. Remove | |
6924 | if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case | |
6925 | statements. | |
6926 | ||
6927 | 2017-11-14 Jason Merrill <jason@redhat.com> | |
6928 | ||
6929 | Support GTY((cache)) on hash_map. | |
6930 | * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function. | |
6931 | (ggc_cache_remove): Override it instead of ggc_mx. | |
6932 | * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx. | |
6933 | (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx. | |
6934 | * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member. | |
6935 | (simple_cache_map_traits): Override maybe_mx. | |
6936 | * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry. | |
6937 | (hash_map): Friend gt_cleare_cache. | |
6938 | (gt_cleare_cache): New. | |
6939 | * tree.h (tree_cache_traits): New hash_map traits class. | |
6940 | (tree_cache_map): New typedef. | |
6941 | ||
6942 | 2017-11-14 Richard Biener <rguenther@suse.de> | |
6943 | ||
6944 | * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p | |
6945 | paramter and handling. | |
6946 | (cleanup_control_flow_bb): Likewise. | |
6947 | (cleanup_control_flow_pre): New helper performing a DFS walk | |
6948 | to call cleanup_control_flow_bb in PRE order. | |
6949 | (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb | |
6950 | via cleanup_control_flow_pre. | |
6951 | ||
6952 | 2017-11-14 James Greenhalgh <james.greenhalgh@arm.com> | |
6953 | ||
6954 | * config/aarch64/aarch64-simd.md | |
6955 | (aarch64_simd_bsl<mode>_internal): Remove DImode. | |
6956 | (*aarch64_simd_bsl<mode>_alt): Likewise. | |
6957 | (aarch64_simd_bsldi_internal): New. | |
6958 | (aarch64_simd_bsldi_alt): Likewise. | |
6959 | ||
6960 | 2017-11-13 Jan Hubicka <hubicka@ucw.cz> | |
6961 | ||
6962 | * tracer.c (better_p): Do not compare frequencies. | |
6963 | * reg-stack.c (better_edge): Likewise. | |
6964 | * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts | |
6965 | and back. | |
6966 | ||
6967 | 2017-11-13 Jan Hubicka <hubicka@ucw.cz> | |
6968 | ||
6969 | * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count. | |
6970 | * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count. | |
6971 | * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count. | |
6972 | * lto-streamer-in.c (input_function): Use update_max_bb_count. | |
6973 | * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count. | |
6974 | * predict.c (maybe_hot_frequency_p): Inline to ... | |
6975 | (maybe_hot_count_p): ... here; rewrite to counts. | |
6976 | (counts_to_freqs): Rename to ... | |
6977 | (update_max_bb_count): ... this one. | |
6978 | (expensive_function_p): Use counts. | |
6979 | (estimate_bb_frequencies): Update. | |
6980 | (rebuild_frequencies): Update. | |
6981 | * predict.h (counts_to_freqs): Rename to ... | |
6982 | (update_max_bb_count): ... this one. | |
6983 | * profile.c (compute_branch_probabilities): Add debug info | |
6984 | * tree-inline.c (expand_call_inline): Update debug info. | |
6985 | (optimize_inline_calls): Use update_max_bb_count.. | |
6986 | (tree_function_versioning): Use update_max_bb_count.. | |
6987 | * value-prof.c (gimple_value_profile_transformations): | |
6988 | Do not use update_max_bb_count. | |
6989 | ||
6990 | 2017-11-13 Jan Hubicka <hubicka@ucw.cz> | |
6991 | ||
6992 | * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time): | |
6993 | always use frequencies. | |
6994 | ||
6995 | 2017-11-13 Jan Hubicka <hubicka@ucw.cz> | |
6996 | ||
6997 | * bb-reorder.c: Remove frequencies from comments. | |
6998 | (better_edge_p): Use profile counts. | |
6999 | (find_traces): Dump profile counts. | |
7000 | (rotate_loop): Use profile counts. | |
7001 | (find_traces_1_round): Likewise. | |
7002 | (connect_better_edge_p): Use counts instead of probabilities for | |
7003 | reverse walk. | |
7004 | (copy_bb_p): Drop early check for non-0 frequency. | |
7005 | (sanitize_hot_paths): Update comments. | |
7006 | ||
7007 | 2017-11-13 Jan Hubicka <hubicka@ucw.cz> | |
7008 | ||
7009 | * ipa-split.c (struct split_point): Add count. | |
7010 | (consider_split): Do not compute incoming frequency; compute incoming | |
7011 | count and store it to split_point. | |
7012 | (split_function): Set count of the call to split part correctly. | |
7013 | ||
7014 | 2017-11-13 Carl Love <cel@us.ibm.com> | |
7015 | ||
7016 | * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand. | |
7017 | ||
7018 | 2017-11-13 Tom Tromey <tom@tromey.com> | |
7019 | ||
7020 | * doc/cpp.texi (Variadic Macros): Document __VA_OPT__. | |
7021 | ||
7022 | 2017-11-13 Carl Love <cel@us.ibm.com> | |
7023 | ||
7024 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): | |
7025 | Add support for builtins: | |
7026 | unsigned int vec_first_{,miss}_match_{,or_eos}index, | |
7027 | vector {un,}signed {char,int,short}, | |
7028 | vector {un,}signed {char,int,short}) arguments. | |
7029 | * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX, | |
7030 | VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX): | |
7031 | Add BU_P9V_AV_2 expansions for the builtins. | |
7032 | * config/rs6000/altivec.h (vec_first_match_index, | |
7033 | vec_first_mismatch_index, vec_first_match_or_eos_index, | |
7034 | vec_first_mismatch_or_eos_index): Add #defines for the builtins. | |
7035 | * config/rs6000/rs6000-protos.h (bytes_in_mode): Add | |
7036 | new extern declaration. | |
7037 | * config/rs6000/rs6000.c (bytes_in_mode): Add new function. | |
7038 | * config/rs6000/vsx.md (first_match_index_<mode>, | |
7039 | first_match_or_eos_index_<mode>, first_mismatch_index_<mode>, | |
7040 | first_mismatch_or_eos_index_<mode>): Add define expand. | |
7041 | (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb. | |
7042 | * doc/extend.texi: Update the built-in documenation file for the new | |
7043 | built-in functions. | |
7044 | ||
7045 | 2017-11-13 Michael Meissner <meissner@linux.vnet.ibm.com> | |
7046 | ||
7047 | * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x | |
7048 | into the min/max operations for _Float<N> and _Float<N>X types. | |
7049 | ||
7050 | 2017-11-13 Eric Botcazou <ebotcazou@adacore.com> | |
7051 | ||
7052 | PR lto/81351 | |
7053 | * dwarf2out.c (do_eh_frame): New static variable. | |
7054 | (dwarf2out_begin_prologue): Set it. | |
7055 | (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame. | |
7056 | ||
7057 | 2017-11-13 Jan Hubicka <hubicka@ucw.cz> | |
7058 | ||
7059 | * tree-ssa-coalesce.c (coalesce_cost): Fix formating. | |
7060 | ||
7061 | * tree-ssa-sink.c (select_best_block): Do not use frequencies. | |
7062 | ||
7063 | 2017-11-13 Eric Botcazou <ebotcazou@adacore.com> | |
7064 | ||
7065 | PR lto/81351 | |
7066 | * debug.h (dwarf2out_do_eh_frame): Declare. | |
7067 | * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate. | |
7068 | (dwarf2out_do_frame): Use it. | |
7069 | (dwarf2out_do_cfi_asm): Likewise. | |
7070 | * dwarf2out.c (dwarf2out_frame_finish): Likewise. | |
7071 | (dwarf2out_assembly_start): Likewise. | |
7072 | (dwarf2out_begin_prologue): Fix comment. | |
7073 | * toplev.c (compile_file): Always call dwarf2out_frame_finish | |
7074 | if the target needs either debug or unwind DWARF2 info. | |
7075 | * lto-opts.c (lto_write_options): Do not save -fexceptions, | |
7076 | -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros, | |
7077 | -ftrapping-math, -ftrapv and -fwrapv. | |
7078 | ||
7079 | 2017-11-13 Jan Hubicka <hubicka@ucw.cz> | |
7080 | ||
7081 | * cgraph.c (cgraph_edge::sreal_frequency): New function. | |
7082 | * cgraph.h (cgraph_edge::sreal_frequency): Declare. | |
7083 | * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency. | |
7084 | (estimate_edge_size_and_time): Likewise. | |
7085 | (ipa_merge_fn_summary_after_inlining): Likewise. | |
7086 | * ipa-inline.c (cgraph_freq_base_rec): Remove. | |
7087 | (compute_uninlined_call_time): Use sreal_frequency. | |
7088 | (compute_inlined_call_time): Likewise. | |
7089 | (ipa_inline): Do not initialize cgraph_freq_base_rec. | |
7090 | * profile-count.c: Include sreal.h. | |
7091 | (profile_count::to_sreal_scale): New. | |
7092 | * profile-count.h: Forward declare sreal. | |
7093 | (profile_count::to_sreal_scale): Declare. | |
7094 | ||
7095 | 2017-11-13 Nathan Sidwell <nathan@acm.org> | |
7096 | ||
7097 | * diagnostic.c (maybe_line_and_column): New. | |
7098 | (diagnostic_get_location_text): Use it. | |
7099 | (diagnostic_report_current_module): Likewise. | |
7100 | (test_diagnostic_get_location_text): Add tests. | |
7101 | ||
7102 | 2017-11-13 Luis Machado <luis.machado@linaro.org> | |
7103 | ||
7104 | * doc/md.texi (Specifying processor pipeline description): Fix | |
7105 | incorrect latency for the div instruction example. | |
7106 | ||
7107 | 2017-11-13 Jakub Jelinek <jakub@redhat.com> | |
7108 | ||
7109 | PR tree-optimization/78821 | |
7110 | * gimple-ssa-store-merging.c (compatible_load_p): Don't require | |
7111 | that bit_not_p is the same. | |
7112 | (imm_store_chain_info::coalesce_immediate_stores): Likewise. | |
7113 | (split_group): Count precisely bit_not_p bits in each statement. | |
7114 | (invert_op): New function. | |
7115 | (imm_store_chain_info::output_merged_store): Use invert_op to | |
7116 | emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some | |
7117 | but not all orig_stores have BIT_NOT_EXPR in the corresponding spots. | |
7118 | ||
7119 | 2017-11-13 Martin Liska <mliska@suse.cz> | |
7120 | ||
7121 | * gcov.c (struct coverage_info): Remove typedef of coverage_t. | |
7122 | (struct source_info): Likewise. | |
7123 | (add_branch_counts): Likewise. | |
7124 | (add_line_counts): Likewise. | |
7125 | (function_summary): Likewise. | |
7126 | (output_intermediate_line): Likewise. | |
7127 | (generate_results): Likewise. | |
7128 | ||
7129 | 2017-11-13 Martin Liska <mliska@suse.cz> | |
7130 | ||
7131 | * gcov.c (struct block_info): Remove typedef for block_t. | |
7132 | (struct line_info): Likewise. | |
7133 | (line_info::has_block): Likewise. | |
7134 | (EXIT_BLOCK): Likewise. | |
7135 | (unblock): Likewise. | |
7136 | (circuit): Likewise. | |
7137 | (get_cycles_count): Likewise. | |
7138 | (process_file): Likewise. | |
7139 | (read_graph_file): Likewise. | |
7140 | (solve_flow_graph): Likewise. | |
7141 | (find_exception_blocks): Likewise. | |
7142 | (add_line_counts): Likewise. | |
7143 | (accumulate_line_info): Likewise. | |
7144 | (output_line_details): Likewise. | |
7145 | ||
7146 | 2017-11-13 Martin Liska <mliska@suse.cz> | |
7147 | ||
7148 | * gcov.c (struct arc_info): Remove typedef for arc_t. | |
7149 | (struct line_info): Likewise. | |
7150 | (add_branch_counts): Likewise. | |
7151 | (output_branch_count): Likewise. | |
7152 | (function_info::~function_info): Likewise. | |
7153 | (circuit): Likewise. | |
7154 | (output_intermediate_line): Likewise. | |
7155 | (read_graph_file): Likewise. | |
7156 | (solve_flow_graph): Likewise. | |
7157 | (find_exception_blocks): Likewise. | |
7158 | (add_line_counts): Likewise. | |
7159 | (accumulate_line_info): Likewise. | |
7160 | (output_line_details): Likewise. | |
7161 | (output_function_details): Likewise. | |
7162 | ||
7163 | 2017-11-13 Martin Liska <mliska@suse.cz> | |
7164 | ||
7165 | * gcov.c (struct function_info): Remove typedef for function_t. | |
7166 | (struct source_info): Likewise. | |
7167 | (source_info::get_functions_at_location): Likewise. | |
7168 | (solve_flow_graph): Likewise. | |
7169 | (find_exception_blocks): Likewise. | |
7170 | (add_line_counts): Likewise. | |
7171 | (output_intermediate_file): Likewise. | |
7172 | (process_file): Likewise. | |
7173 | (generate_results): Likewise. | |
7174 | (release_structures): Likewise. | |
7175 | (read_graph_file): Likewise. | |
7176 | (read_count_file): Likewise. | |
7177 | (accumulate_line_counts): Likewise. | |
7178 | (output_lines): Likewise. | |
7179 | ||
7180 | 2017-11-13 Martin Liska <mliska@suse.cz> | |
7181 | ||
7182 | * gcov.c (function_info::function_info): Remove num_counts | |
7183 | and add vector<gcov_type>. | |
7184 | (function_info::~function_info): Use the vector. | |
7185 | (process_file): Likewise. | |
7186 | (read_graph_file): Likewise. | |
7187 | (read_count_file): Likewise. | |
7188 | (solve_flow_graph): Likewise. | |
7189 | ||
7190 | 2017-11-13 Martin Liska <mliska@suse.cz> | |
7191 | ||
7192 | * gcov.c (function_info::is_artificial): New function. | |
7193 | (process_file): Erase all artificial early. | |
7194 | (generate_results): Skip as all artificial are already | |
7195 | removed. | |
7196 | ||
7197 | 2017-11-13 Martin Liska <mliska@suse.cz> | |
7198 | ||
7199 | * gcov.c (read_graph_file): Store to global vector of functions. | |
7200 | (read_count_file): Iterate the vector. | |
7201 | (process_file): Likewise. | |
7202 | (generate_results): Likewise. | |
7203 | (release_structures): Likewise. | |
7204 | ||
7205 | 2017-11-13 Jakub Jelinek <jakub@redhat.com> | |
7206 | ||
7207 | PR tree-optimization/82954 | |
7208 | * gimple-ssa-store-merging.c | |
7209 | (imm_store_chain_info::coalesce_immediate_stores): If | |
7210 | !infof->ops[N].base_addr, split group if info->ops[N].base_addr. | |
7211 | ||
7212 | 2017-11-13 Richard Sandiford <richard.sandiford@linaro.org> | |
7213 | ||
7214 | * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>): | |
7215 | Upddate call to ENDIAN_LANE_N. | |
7216 | (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx. | |
7217 | (aarch64_<sur>dot_laneq<vsi2qi>): Likewise. | |
7218 | (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N | |
7219 | and use aarch64_endian_lane_rtx. | |
7220 | (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise. | |
7221 | ||
7222 | 2017-11-12 Tom de Vries <tom@codesourcery.com> | |
7223 | ||
7224 | * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0). | |
7225 | ||
7226 | 2017-11-12 Tom de Vries <tom@codesourcery.com> | |
7227 | ||
7228 | * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body. | |
7229 | ||
7230 | 2017-11-12 Tom de Vries <tom@codesourcery.com> | |
7231 | ||
7232 | * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro | |
7233 | body. | |
7234 | * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same. | |
7235 | * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same. | |
7236 | * defaults.h (ASM_OUTPUT_LABELREF): Same. | |
7237 | ||
7238 | 2017-11-11 Martin Sebor <msebor@redhat.com> | |
7239 | ||
7240 | PR c/81117 | |
7241 | * doc/extend.texi (attribute nonstring): Remove spurious argument. | |
7242 | ||
7243 | PR bootstrap/82948 | |
7244 | * prefic.c (translate_name): Replace strncpy with memcpy to | |
7245 | avoid -Wstringop-truncation. | |
7246 | ||
7247 | 2017-11-10 Jan Hubicka <hubicka@ucw.cz> | |
7248 | ||
7249 | * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum. | |
7250 | ||
7251 | 2017-11-10 Jan Hubicka <hubicka@ucw.cz> | |
7252 | ||
7253 | * predict.c (maybe_hot_frequency_p): Do not use cfun. | |
7254 | ||
7255 | 2017-11-10 Jan Hubicka <hubicka@ucw.cz> | |
7256 | ||
7257 | * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile | |
7258 | merging. | |
7259 | ||
7260 | 2017-11-10 Michael Meissner <meissner@linux.vnet.ibm.com> | |
7261 | ||
7262 | * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems, | |
7263 | enable generating XXBRH if the value is in a vector register. | |
7264 | (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the | |
7265 | value is in a vector register. | |
7266 | (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do | |
7267 | register to register bswap64's instead of doing the GPR sequence | |
7268 | used on previous machines. | |
7269 | (bswapdi2_xxbrd): New insn. | |
7270 | (bswapdi2_reg): Disallow on ISA 3.0. | |
7271 | (register to register bswap64 splitter): Do not split the insn on | |
7272 | ISA 3.0 systems that use XXBRD. | |
7273 | ||
7274 | 2017-11-10 Martin Sebor <msebor@redhat.com> | |
7275 | ||
7276 | PR c/81117 | |
7277 | * config/darwin-c.c (framework_construct_pathname): Replace strncpy | |
7278 | with memcpy. | |
7279 | (find_subframework_file): Same. | |
7280 | ||
7281 | 2017-11-10 Jan Hubicka <hubicka@ucw.cz> | |
7282 | ||
7283 | * auto-profile.c (afdo_indirect_call): Drop frequency. | |
7284 | * cgraph.c (symbol_table::create_edge): Drop frequency argument. | |
7285 | (cgraph_node::create_edge): Drop frequency argument. | |
7286 | (cgraph_node::create_indirect_edge): Drop frequency argument. | |
7287 | (cgraph_edge::make_speculative): Drop frequency arguments. | |
7288 | (cgraph_edge::resolve_speculation): Do not update frequencies | |
7289 | (cgraph_edge::dump_edge_flags): Do not dump frequency. | |
7290 | (cgraph_node::dump): Check consistency in IPA mode. | |
7291 | (cgraph_edge::maybe_hot_p): Use IPA counter. | |
7292 | (cgraph_edge::verify_count_and_frequency): Rename to ... | |
7293 | (cgraph_edge::verify_count): ... this one; drop frequency checking. | |
7294 | (cgraph_node::verify_node): Update. | |
7295 | * cgraph.h (struct cgraph_edge): Drop frequency. | |
7296 | (cgraph_edge::frequency): New function. | |
7297 | * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass | |
7298 | frequencies. | |
7299 | (cgraph_edge::rebuild_edges): Likewise. | |
7300 | * cgraphclones.c (cgraph_edge::clone): Scale only counts. | |
7301 | (duplicate_thunk_for_node): Do not pass frequency. | |
7302 | (cgraph_node::create_clone): Scale only counts. | |
7303 | (cgraph_node::create_virtual_clone): Do not pass frequency. | |
7304 | (cgraph_node::create_edge_including_clones): Do not pass frequency. | |
7305 | (cgraph_node::create_version_clone): Do not pass frequency. | |
7306 | * cgraphunit.c (cgraph_node::analyze): Do not pass frequency. | |
7307 | (cgraph_node::expand_thunk): Do not pass frequency. | |
7308 | (cgraph_node::create_wrapper): Do not pass frequency. | |
7309 | * gimple-iterator.c (update_call_edge_frequencies): Do not pass | |
7310 | frequency. | |
7311 | * gimple-streamer-in.c (input_bb): Scale only IPA counts. | |
7312 | * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency. | |
7313 | * ipa-cp.c (ipcp_lattice::print): Use frequency function. | |
7314 | (gather_caller_stats): Use frequency function. | |
7315 | (ipcp_cloning_candidate_p): Use frequency function. | |
7316 | (ipcp_propagate_stage): Use frequency function. | |
7317 | (get_info_about_necessary_edges): Use frequency function. | |
7318 | (update_profiling_info): Update only IPA profile. | |
7319 | (update_specialized_profile): Use frequency functoin. | |
7320 | (perhaps_add_new_callers): Update only IPA profile. | |
7321 | * ipa-devirt.c (ipa_devirt): Use IPA profile. | |
7322 | * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency. | |
7323 | (dump_ipa_call_summary): Use frequency function. | |
7324 | (estimate_edge_size_and_time): Use frequency function. | |
7325 | (ipa_merge_fn_summary_after_inlining): Use frequency function. | |
7326 | * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile. | |
7327 | * ipa-inline-transform.c (update_noncloned_frequencies): Rename to .. | |
7328 | (update_noncloned_counts): ... ths one; scale counts only. | |
7329 | (clone_inlined_nodes): Do not scale frequency. | |
7330 | (inline_call): Do not pass frequency. | |
7331 | * ipa-inline.c (compute_uninlined_call_time): Use IPA profile. | |
7332 | (compute_inlined_call_time): Use IPA profile. | |
7333 | (want_inline_small_function_p): Use IPA profile. | |
7334 | (want_inline_self_recursive_call_p): Use IPA profile. | |
7335 | (edge_badness): Use IPA profile. | |
7336 | (lookup_recursive_calls): Use IPA profile. | |
7337 | (recursive_inlining): Do not pass frequency. | |
7338 | (resolve_noninline_speculation): Do not update frequency. | |
7339 | (inline_small_functions): Collect max of IPA profile. | |
7340 | (dump_overall_stats): Dump IPA porfile. | |
7341 | (dump_inline_stats): Dump IPA porfile. | |
7342 | (ipa_inline): Collect IPA stats. | |
7343 | * ipa-inline.h (clone_inlined_nodes): Update prototype. | |
7344 | * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function. | |
7345 | (ipa_propagate_frequency): Use frequency function. | |
7346 | (ipa_profile): Cleanup. | |
7347 | * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency | |
7348 | * ipa-utils.c (ipa_merge_profiles): Merge all profiles. | |
7349 | * lto-cgraph.c (lto_output_edge): Do not stream frequency. | |
7350 | (input_node): Do not stream frequency. | |
7351 | (input_edge): Do not stream frequency. | |
7352 | (merge_profile_summaries): Scale only IPA profiles. | |
7353 | * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency. | |
7354 | * predict.c (drop_profile): Do not recompute frequency. | |
7355 | * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency. | |
7356 | (ipa_tm_insert_gettmclone_call): Do not pass frequency. | |
7357 | * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed. | |
7358 | * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency. | |
7359 | * tree-emutls.c (gen_emutls_addr): Do not pass frequency. | |
7360 | * tree-inline.c (copy_bb): Do not scale frequency. | |
7361 | (expand_call_inline): Do not scale frequency. | |
7362 | (tree_function_versioning): Do not scale frequency. | |
7363 | * ubsan.c (ubsan_create_edge): Do not pass frequency. | |
7364 | ||
7365 | 2017-11-10 Julia Koval <julia.koval@intel.com> | |
7366 | ||
7367 | * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8) | |
7368 | (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8) | |
7369 | (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8) | |
7370 | (_mm256_maskz_gf2p8affine_epi64_epi8) | |
7371 | (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8) | |
7372 | (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics. | |
7373 | * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi) | |
7374 | (__builtin_ia32_vgf2p8affineqb_v32qi) | |
7375 | (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins. | |
7376 | * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern. | |
7377 | ||
7378 | 2017-11-10 Tamar Christina <tamar.christina@arm.com> | |
7379 | ||
7380 | PR target/82641 | |
7381 | * config/arm/arm.c | |
7382 | (arm_option_override): Refactor. | |
7383 | (arm_option_reconfigure_globals): New. | |
7384 | (arm_options_perform_arch_sanity_checks): New. | |
7385 | * config/arm/arm-protos.h (arm_option_reconfigure_globals): | |
7386 | New prototype. | |
7387 | (arm_options_perform_arch_sanity_checks): Likewise | |
7388 | ||
7389 | 2017-11-10 Pat Haugen <pthaugen@us.ibm.com> | |
7390 | ||
7391 | * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage. | |
7392 | (power9-qpmul): New. | |
7393 | * rs6000/rs6000.md ("type" attr): Add qmul. | |
7394 | (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, | |
7395 | *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd, | |
7396 | *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul. | |
7397 | ||
7398 | 2017-11-10 Martin Sebor <msebor@redhat.com> | |
7399 | ||
7400 | PR c/81117 | |
7401 | * builtins.c (compute_objsize): Handle arrays that | |
7402 | compute_builtin_object_size likes to fail for. Make extern. | |
7403 | * builtins.h (compute_objsize): Declare. | |
7404 | (check_strncpy_sizes): New function. | |
7405 | (expand_builtin_strncpy): Call check_strncpy_sizes. | |
7406 | * gimple-fold.c (gimple_fold_builtin_strncpy): Implement | |
7407 | -Wstringop-truncation. | |
7408 | (gimple_fold_builtin_strncat): Same. | |
7409 | * gimple.c (gimple_build_call_from_tree): Set call location. | |
7410 | * tree-ssa-strlen.c (strlen_to_stridx): New global variable. | |
7411 | (maybe_diag_bound_equal_length, is_strlen_related_p): New functions. | |
7412 | (handle_builtin_stxncpy, handle_builtin_strncat): Same. | |
7413 | (handle_builtin_strlen): Use strlen_to_stridx. | |
7414 | (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and | |
7415 | stpncpy. | |
7416 | Use strlen_to_stridx. | |
7417 | (pass_strlen::execute): Release strlen_to_stridx. | |
7418 | * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement. | |
7419 | (-Wstringop-truncation): Document new option. | |
7420 | ||
7421 | 2017-11-10 Martin Liska <mliska@suse.cz> | |
7422 | ||
7423 | PR gcov-profile/82702 | |
7424 | * gcov.c (main): Handle intermediate files in a different | |
7425 | way. | |
7426 | (get_gcov_intermediate_filename): New function. | |
7427 | (output_gcov_file): Remove support of intermediate files. | |
7428 | (generate_results): Allocate intermediate file. | |
7429 | (release_structures): Clean-up properly fn_end. | |
7430 | (output_intermediate_file): Start iterating with line 1. | |
7431 | ||
7432 | 2017-11-10 Jakub Jelinek <jakub@redhat.com> | |
7433 | ||
7434 | PR tree-optimization/82929 | |
7435 | * gimple-ssa-store-merging.c (struct store_immediate_info): Add | |
7436 | ops_swapped_p non-static data member. | |
7437 | (store_immediate_info::store_immediate_info): Clear it. | |
7438 | (imm_store_chain_info::coalesce_immediate_stores): If swapping | |
7439 | ops set ops_swapped_p. | |
7440 | (count_multiple_uses): Handle ops_swapped_p. | |
7441 | ||
7442 | 2017-11-10 Martin Liska <mliska@suse.cz> | |
7443 | ||
7444 | * coverage.c (coverage_init): Stream information about | |
7445 | support of has_unexecuted_blocks. | |
7446 | * doc/gcov.texi: Document that. | |
7447 | * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool. | |
7448 | * gcov.c (read_graph_file): Likewise. | |
7449 | (output_line_beginning): Fix a small issue with | |
7450 | color output. | |
7451 | ||
7452 | 2017-11-10 Bin Cheng <bin.cheng@arm.com> | |
7453 | ||
7454 | * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing | |
7455 | reference of trivial component. | |
7456 | ||
7457 | 2017-11-10 Jakub Jelinek <jakub@redhat.com> | |
7458 | ||
7459 | PR bootstrap/82916 | |
7460 | * gimple-ssa-store-merging.c | |
7461 | (pass_store_merging::terminate_all_aliasing_chains): For | |
7462 | gimple_store_p stmts also call refs_output_dependent_p. | |
7463 | ||
7464 | PR rtl-optimization/82913 | |
7465 | * compare-elim.c (try_merge_compare): Punt if def_insn is not | |
7466 | single set. | |
7467 | ||
7468 | 2017-11-09 Jeff Law <law@redhat.com> | |
7469 | ||
7470 | * vr-values.h: New file with vr_values class. | |
7471 | * tree-vrp.c: Include vr-values.h | |
7472 | (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static | |
7473 | data objects into the vr_values class. | |
7474 | (vr_value, values_propagated, vr_phi_edge_counts): Likewise. | |
7475 | (get_value_range): Make it a member function within vr_values class. | |
7476 | (set_defs_to_varying, update_value_range, add_equivalence): Likewise. | |
7477 | (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise. | |
7478 | (op_with_constant_singleton_value_range): Likewise. | |
7479 | (extract_range_for_var_from_comparison_expr): Likewise. | |
7480 | (extract_range_from_assert, extract_range_from_ssa_name): Likewise. | |
7481 | (extract_range_from_binary_expr): Likewise. | |
7482 | (extract_range_from_unary_expr): Likewise. | |
7483 | (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise. | |
7484 | (check_for_binary_op_overflow, extract_range_basic): Likewise. | |
7485 | (extract_range_from_assignment, adjust_range_with_scev): Likewise. | |
7486 | (dump_all_value_ranges, get_vr_for_comparison): Likewise. | |
7487 | (compare_name_with_value, compare_names): Likewise. | |
7488 | (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise. | |
7489 | (vrp_evaluate_conditional_warnv_with_ops): Likewise. Remove prototype. | |
7490 | (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise. | |
7491 | (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise. | |
7492 | (extract_range_from_phi_node): Likewise. | |
7493 | (simplify_truth_ops_using_ranges): Likewise. | |
7494 | (simplify_div_or_mod_using_ranges): Likewise. | |
7495 | (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise. | |
7496 | (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise. | |
7497 | (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise. | |
7498 | (simplify_float_conversion_using_ranges): Likewise. | |
7499 | (simplify_internal_call_using_ranges): Likewise. | |
7500 | (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise. | |
7501 | (vrp_visit_assignment_or_call): Likewise. Smuggle class instance | |
7502 | poitner via x_vr_values for calls into gimple folder. | |
7503 | (vrp_initialize_lattice): Make this the vr_values ctor. | |
7504 | (vrp_free_lattice): Make this the vr_values dtor. | |
7505 | (set_vr_value): New function. | |
7506 | (class vrp_prop): Add vr_values data member. Add various member | |
7507 | functions as well as member functions that delegate to vr_values. | |
7508 | (check_array_ref): Make a member function within vrp_prop class. | |
7509 | (search_for_addr_array, vrp_initialize): Likewise. | |
7510 | (vrp_finalize): Likewise. Revamp to avoid direct access to | |
7511 | vr_value, values_propagated, etc. | |
7512 | (check_array_bounds): Extract vrp_prop class instance pointer from | |
7513 | walk info structure. Use it to call member functions. | |
7514 | (check_all_array_refs): Make a member function within vrp_prop class. | |
7515 | Smuggle class instance pointer via walk info structure. | |
7516 | (x_vr_values): New local static. | |
7517 | (vrp_valueize): Use x_vr_values to get class instance. | |
7518 | (vr_valueize_1): Likewise. | |
7519 | (class vrp_folder): Add vr_values data member. Add various member | |
7520 | functions as well as member functions that delegate to vr_values. | |
7521 | (fold_predicate_in): Make a mber fucntion within vrp_folder class. | |
7522 | (simplify_stmt_for_jump_threading): Extract smuggled vr_values | |
7523 | class instance from vr_values. Use it to call member functions. | |
7524 | (vrp_dom_walker): Add vr_values data member. | |
7525 | (vrp_dom_walker::after_dom_children): Smuggle vr_values class | |
7526 | instance via x_vr_values. | |
7527 | (identify_jump_threads): Accept vr_values as argument. Store | |
7528 | it into the walker structure. | |
7529 | (evrp_dom_walker): Add vr_values class data member. Add various | |
7530 | delegators. | |
7531 | (evrp_dom_walker::try_find_new_range): Use vr_values data | |
7532 | member to access the memory allocator. | |
7533 | (evrp_dom_walker::before_dom_children): Store vr_values class | |
7534 | instance into the vrp_folder class. | |
7535 | (evrp_dom_walker::push_value_range): Rework to avoid direct | |
7536 | access to num_vr_values and vr_value. | |
7537 | (evrp_dom_walker::pop_value_range): Likewise. | |
7538 | (execute_early_vrp): Remove call to vrp_initialize_lattice. | |
7539 | Use vr_values to get to dump_all_value_ranges member function. | |
7540 | Remove call to vrp_free_lattice. Call vrp_initialize, vrp_finalize, | |
7541 | and simplify_cond_using_ranges_2 via vrp_prop class instance. | |
7542 | Pass vr_values class instance down to identify_jump_threads. | |
7543 | Remove call to vrp_free_lattice. | |
7544 | (debug_all_value_ranges): Remove. | |
7545 | ||
7546 | * tree-vrp.c (vrp_prop): Move class to earlier point in the file. | |
7547 | (vrp_folder): Likewise. | |
7548 | ||
7549 | * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack. | |
7550 | Get it from the existing bitmap instead. | |
7551 | (vrp_intersect_ranges_1): Likewise. | |
7552 | ||
7553 | 2017-11-09 Jakub Jelinek <jakub@redhat.com> | |
7554 | ||
7555 | * gimple-ssa-store-merging.c (struct store_immediate_info): Add | |
7556 | bit_not_p field. | |
7557 | (store_immediate_info::store_immediate_info): Add bitnotp argument, | |
7558 | set bit_not_p to it. | |
7559 | (imm_store_chain_info::coalesce_immediate_stores): Break group | |
7560 | if bit_not_p is different. | |
7561 | (count_multiple_uses, split_group, | |
7562 | imm_store_chain_info::output_merged_store): Handle info->bit_not_p. | |
7563 | (handled_load): Avoid multiple chained BIT_NOT_EXPRs. | |
7564 | (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR | |
7565 | result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it | |
7566 | to store_immediate_info ctor. | |
7567 | ||
7568 | 2017-11-09 Jim Wilson <jimw@sifive.com> | |
7569 | ||
7570 | * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support. | |
7571 | (scan_prog_file): Likewise. | |
7572 | ||
7573 | 2017-11-09 Jan Hubicka <hubicka@ucw.cz> | |
7574 | ||
7575 | * bb-reorder.c (max_entry_frequency): Remove. | |
7576 | (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p, | |
7577 | connect_traces, push_to_next_round_p): Remove prototypes. | |
7578 | (find_traces_1_round): Use counts only. | |
7579 | (push_to_next_round_p): Likewise. | |
7580 | (find_traces): Likewise. | |
7581 | (rotate_loop): Likewise. | |
7582 | (find_traces_1_round): Likewise. | |
7583 | (connect_traces): Likewise. | |
7584 | (edge_order): Likewise. | |
7585 | ||
7586 | 2017-11-09 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
7587 | ||
7588 | * config/arm/arm.c (output_return_instruction): Add comments to | |
7589 | indicate requirement for cmse_nonsecure_entry return to account | |
7590 | for the size of clearing instruction output here. | |
7591 | (thumb_exit): Likewise. | |
7592 | * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for | |
7593 | return in hardfloat mode. | |
7594 | ||
7595 | 2017-11-09 Segher Boessenkool <segher@kernel.crashing.org> | |
7596 | ||
7597 | * config/rs6000/rs6000.c (machine_function): Add a bool, | |
7598 | "toc_is_wrapped_separately". | |
7599 | (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT | |
7600 | if it wasn't explicitly set or unset, we are optimizing for speed, and | |
7601 | doing separate shrink-wrapping. | |
7602 | (rs6000_get_separate_components): Enable the TOC component if | |
7603 | saving the TOC register in the prologue. | |
7604 | (rs6000_components_for_bb): Handle the TOC component. | |
7605 | (rs6000_emit_prologue_components): Store the TOC register where needed. | |
7606 | (rs6000_set_handled_components): Mark TOC as handled, if handled. | |
7607 | (rs6000_emit_prologue): Don't save the TOC if that is already done. | |
7608 | ||
7609 | 2017-11-09 Martin Jambor <mjambor@suse.cz> | |
7610 | ||
7611 | * ipa-param-manipulation.c: New file. | |
7612 | * ipa-param-manipulation.h: Likewise. | |
7613 | * Makefile.in (OBJS): Add ipa-param-manipulation.o. | |
7614 | (PLUGIN_HEADERS): Addded ipa-param-manipulation.h | |
7615 | * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h. | |
7616 | (ipa_parm_adjustment): Likewise. | |
7617 | (ipa_parm_adjustment_vec): Likewise. | |
7618 | (ipa_get_vector_of_formal_parms): Moved declaration to | |
7619 | ipa-param-manipulation.h. | |
7620 | (ipa_get_vector_of_formal_parm_types): Likewise. | |
7621 | (ipa_modify_formal_parameters): Likewise. | |
7622 | (ipa_modify_call_arguments): Likewise. | |
7623 | (ipa_combine_adjustments): Likewise. | |
7624 | (ipa_dump_param_adjustments): Likewise. | |
7625 | (ipa_modify_expr): Likewise. | |
7626 | (ipa_get_adjustment_candidate): Likewise. | |
7627 | * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to | |
7628 | ipa-param-manipulation.c. | |
7629 | (ipa_get_vector_of_formal_parm_types): Likewise. | |
7630 | (ipa_modify_formal_parameters): Likewise. | |
7631 | (ipa_modify_call_arguments): Likewise. | |
7632 | (ipa_modify_expr): Likewise. | |
7633 | (get_ssa_base_param): Likewise. | |
7634 | (ipa_get_adjustment_candidate): Likewise. | |
7635 | (index_in_adjustments_multiple_times_p): Likewise. | |
7636 | (ipa_combine_adjustments): Likewise. | |
7637 | (ipa_dump_param_adjustments): Likewise. | |
7638 | * tree-sra.c: Also include ipa-param-manipulation.h | |
7639 | * omp-simd-clone.c: Include ipa-param-manipulation.h instead of | |
7640 | ipa-param.h. | |
7641 | ||
7642 | 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> | |
7643 | Alan Hayward <alan.hayward@arm.com> | |
7644 | David Sherwood <david.sherwood@arm.com> | |
7645 | ||
7646 | * doc/sourcebuild.texi (vect_masked_store): Document. | |
7647 | ||
7648 | 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> | |
7649 | Alan Hayward <alan.hayward@arm.com> | |
7650 | David Sherwood <david.sherwood@arm.com> | |
7651 | ||
7652 | * doc/sourcebuild.texi (vect_align_stack_vars): Document. | |
7653 | ||
7654 | 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> | |
7655 | Alan Hayward <alan.hayward@arm.com> | |
7656 | David Sherwood <david.sherwood@arm.com> | |
7657 | ||
7658 | * doc/sourcebuild.texi (vect_variable_length): Document. | |
7659 | ||
7660 | 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> | |
7661 | Alan Hayward <alan.hayward@arm.com> | |
7662 | David Sherwood <david.sherwood@arm.com> | |
7663 | ||
7664 | * doc/sourcebuild.texi (vect_unaligned_possible): Document. | |
7665 | ||
7666 | 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> | |
7667 | Alan Hayward <alan.hayward@arm.com> | |
7668 | David Sherwood <david.sherwood@arm.com> | |
7669 | ||
7670 | * doc/sourcebuild.texi (vect_element_align_preferred): Document. | |
7671 | ||
7672 | 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> | |
7673 | Alan Hayward <alan.hayward@arm.com> | |
7674 | David Sherwood <david.sherwood@arm.com> | |
7675 | ||
7676 | * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document | |
7677 | previously undocumented selectors. | |
7678 | (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document. | |
7679 | ||
7680 | 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> | |
7681 | ||
7682 | * doc/rtl.texi (const_vector): Say that elements can be | |
7683 | const_wide_ints too. | |
7684 | * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare. | |
7685 | * emit-rtl.c (valid_for_const_vec_duplicate_p): New function. | |
7686 | (gen_vec_duplicate): Use it instead of CONSTANT_P. | |
7687 | * optabs.c (expand_vector_broadcast): Likewise. | |
7688 | ||
7689 | 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> | |
7690 | Alan Hayward <alan.hayward@arm.com> | |
7691 | David Sherwood <david.sherwood@arm.com> | |
7692 | ||
7693 | * tree-ssa-loop-ivopts.c (get_address_cost): Try using a | |
7694 | scaled index even if the unscaled address was invalid. | |
7695 | Don't increase the complexity of using a scale in that case. | |
7696 | ||
7697 | 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org> | |
7698 | Alan Hayward <alan.hayward@arm.com> | |
7699 | David Sherwood <david.sherwood@arm.com> | |
7700 | ||
7701 | * doc/rtl.texi: Rewrite the subreg rules so that they partition | |
7702 | the inner register into REGMODE_NATURAL_SIZE bytes rather than | |
7703 | UNITS_PER_WORD bytes. | |
7704 | * emit-rtl.c (validate_subreg): Divide subregs into blocks | |
7705 | based on REGMODE_NATURAL_SIZE of the inner mode. | |
7706 | (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and | |
7707 | !SCALAR_FLOAT_MODE_P cases. Use REGMODE_NATURAL_SIZE for the latter. | |
7708 | * expmed.c (lowpart_bit_field_p): Divide the value up into | |
7709 | chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD. | |
7710 | * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test | |
7711 | whether something is likely to occupy more than one register. | |
7712 | ||
7713 | 2017-11-09 Jan Hubicka <hubicka@ucw.cz> | |
7714 | ||
7715 | PR ipa/82879 | |
7716 | * ipa-inline-transform.c (update_noncloned_frequencies): Use | |
7717 | profile_count::adjust_for_ipa_scaling. | |
7718 | * tree-inline.c (copy_bb, copy_cfg_body): Likewise. | |
7719 | * profile-count.c (profile_count::adjust_for_ipa_scaling): New member | |
7720 | function. | |
7721 | * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare. | |
7722 | ||
7723 | 2017-11-09 Jakub Jelinek <jakub@redhat.com> | |
7724 | ||
7725 | * gimple-ssa-store-merging.c (count_multiple_uses): New function. | |
7726 | (split_group): Add total_orig and total_new arguments, estimate the | |
7727 | number of statements related to the store group without store merging | |
7728 | and with store merging. | |
7729 | (imm_store_chain_info::output_merged_store): Adjust split_group | |
7730 | callers, punt if estimated number of statements with store merging | |
7731 | is not smaller than estimated number of statements without it. | |
7732 | Formatting fix. | |
7733 | (handled_load): Remove has_single_use checks. | |
7734 | (pass_store_merging::process_store): Likewise. | |
7735 | ||
7736 | 2017-11-09 Richard Biener <rguenther@suse.de> | |
7737 | ||
7738 | PR tree-optimization/82902 | |
7739 | * tree-ssa-phiprop.c (propagate_with_phi): Test proper type. | |
7740 | ||
7741 | 2017-11-09 Martin Liska <mliska@suse.cz> | |
7742 | ||
7743 | PR target/82863 | |
7744 | * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to | |
7745 | uninitialized. | |
7746 | ||
7747 | 2017-11-09 Martin Liska <mliska@suse.cz> | |
7748 | ||
7749 | PR tree-optimization/82669 | |
7750 | * sbitmap.h (bmp_iter_set_init): Remove non needed check. | |
7751 | ||
7752 | 2017-11-09 Martin Liska <mliska@suse.cz> | |
7753 | ||
7754 | PR gcov-profile/48463 | |
7755 | * coverage.c (coverage_begin_function): Output also end locus | |
7756 | of a function and information whether the function is | |
7757 | artificial. | |
7758 | * gcov-dump.c (tag_function): Parse and print the information. | |
7759 | * gcov.c (INCLUDE_MAP): Add include. | |
7760 | (INCLUDE_SET): Likewise. | |
7761 | (struct line_info): Move earlier in the source file because | |
7762 | of vector<line_info> in function_info structure. | |
7763 | (line_info::line_info): Likewise. | |
7764 | (line_info::has_block): Likewise. | |
7765 | (struct source_info): Add new member index. | |
7766 | (source_info::get_functions_at_location): New function. | |
7767 | (function_info::group_line_p): New function. | |
7768 | (output_intermediate_line): New function. | |
7769 | (output_intermediate_file): Use the mentioned function. | |
7770 | (struct function_start): New. | |
7771 | (struct function_start_pair_hash): Likewise. | |
7772 | (process_file): Add code that identifies group functions. | |
7773 | Assign lines either to global or function scope. | |
7774 | (generate_results): Skip artificial functions. | |
7775 | (find_source): Assign index for each source file. | |
7776 | (read_graph_file): Read new flag artificial and end_line. | |
7777 | (add_line_counts): Assign it either to global of function scope. | |
7778 | (accumulate_line_counts): Isolate core of the function to | |
7779 | accumulate_line_info and call it for both function and global | |
7780 | scope lines. | |
7781 | (accumulate_line_info): New function. | |
7782 | (output_line_beginning): Fix GNU coding style. | |
7783 | (print_source_line): New function. | |
7784 | (output_line_details): Likewise. | |
7785 | (output_function_details): Likewise. | |
7786 | (output_lines): Iterate both source (global) scope and function | |
7787 | scope. | |
7788 | (struct function_line_start_cmp): New class. | |
7789 | * doc/gcov.texi: Reflect changes in documentation. | |
7790 | ||
7791 | 2017-11-09 Jakub Jelinek <jakub@redhat.com> | |
7792 | ||
7793 | PR debug/82837 | |
7794 | * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT. | |
7795 | (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...))) | |
7796 | and similarly for not instead of neg. | |
7797 | ||
7798 | 2017-11-08 Andi Kleen <ak@linux.intel.com> | |
7799 | ||
7800 | * config/i386/i386.opt: Add -mforce-indirect-call. | |
7801 | * config/i386/predicates.md: Check for flag_force_indirect_call. | |
7802 | * doc/invoke.texi: Document -mforce-indirect-call | |
7803 | ||
7804 | 2017-11-08 Kito Cheng <kito.cheng@gmail.com> | |
7805 | ||
7806 | * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p): | |
7807 | New extern. | |
7808 | (MOVE_RATIO): Use riscv_slow_unaligned_access_p. | |
7809 | config/riscv/riscv.c (predict.h): New include. | |
7810 | (riscv_slow_unaligned_access_p): No longer static. | |
7811 | (riscv_block_move_straight): Add require. | |
7812 | * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete. | |
7813 | ||
7814 | 2017-11-08 Jakub Jelinek <jakub@redhat.com> | |
7815 | ||
7816 | PR target/82855 | |
7817 | * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>, | |
7818 | <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use | |
7819 | nonimmediate_operand predicate for operand 1 instead of | |
7820 | register_operand. | |
7821 | ||
7822 | 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7823 | ||
7824 | * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>): | |
7825 | New pattern. | |
7826 | * config/aarch64/constraints.md (Uml): New constraint. | |
7827 | * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New | |
7828 | predicate. | |
7829 | ||
7830 | 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7831 | ||
7832 | * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge | |
7833 | of two vec_duplicates into a vec_concat. | |
7834 | ||
7835 | 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7836 | ||
7837 | * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE): | |
7838 | Simplify vec_merge of vec_duplicate and vec_concat. | |
7839 | * config/aarch64/constraints.md (Utq): New constraint. | |
7840 | * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New | |
7841 | define_insn. | |
7842 | ||
7843 | 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7844 | ||
7845 | * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE): | |
7846 | Simplify vec_merge of vec_duplicate and const_vector. | |
7847 | * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero): | |
7848 | New predicate. | |
7849 | * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC | |
7850 | mode iterator. Update predicate on operand 1 to | |
7851 | handle non-const_vec constants. Delete constraints. | |
7852 | (*aarch64_combinez_be<mode>): Likewise for operand 2. | |
7853 | ||
7854 | 2017-11-08 Jakub Jelinek <jakub@redhat.com> | |
7855 | ||
7856 | PR tree-optimization/78821 | |
7857 | * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p | |
7858 | data member. | |
7859 | (store_operand_info::store_operand_info): Initialize it to false. | |
7860 | (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use | |
7861 | ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each | |
7862 | store in the group, and if chain_info is non-NULL, to ignore altogether | |
7863 | that chain. | |
7864 | (compatible_load_p): Fail if bit_not_p does not match. | |
7865 | (imm_store_chain_info::output_merged_store): Handle bit_not_p loads. | |
7866 | (handled_load): Fill in bit_not_p. Handle BIT_NOT_EXPR. | |
7867 | (pass_store_merging::process_store): Adjust | |
7868 | terminate_all_aliasing_chains calls to pass NULL in all current spots, | |
7869 | call terminate_all_aliasing_chains newly when adding a store into | |
7870 | a chain with non-NULL chain_info. | |
7871 | ||
7872 | 2017-11-08 Wilco Dijkstra <wdijkstr@arm.com> | |
7873 | ||
7874 | * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic. | |
7875 | ||
7876 | 2017-11-08 Wilco Dijkstra <wdijkstr@arm.com> | |
7877 | ||
7878 | * config/aarch64/aarch64.c (aarch64_frame_pointer_required) | |
7879 | Remove. | |
7880 | (aarch64_layout_frame): Initialise emit_frame_chain. | |
7881 | (aarch64_can_eliminate): Remove omit leaf frame pointer code. | |
7882 | (TARGET_FRAME_POINTER_REQUIRED): Remove define. | |
7883 | ||
7884 | 2017-11-08 Martin Liska <mliska@suse.cz> | |
7885 | ||
7886 | * gimplify.c (expand_FALLTHROUGH_r): Simplify usage | |
7887 | of gimple_call_internal_p. | |
7888 | ||
7889 | 2017-11-07 Tom de Vries <tom@codesourcery.com> | |
7890 | ||
7891 | * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)". | |
7892 | ||
7893 | 2017-11-07 Tom de Vries <tom@codesourcery.com> | |
7894 | ||
7895 | * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after | |
7896 | "do {} while (0)". | |
7897 | ||
7898 | 2017-11-08 Martin Liska <mliska@suse.cz> | |
7899 | ||
7900 | PR sanitizer/82792 | |
7901 | * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK. | |
7902 | ||
7903 | 2017-11-07 Eric Botcazou <ebotcazou@adacore.com> | |
7904 | ||
7905 | * gimple-pretty-print.c (dump_profile): Return "" instead of NULL. | |
7906 | ||
7907 | 2017-11-07 Jakub Jelinek <jakub@redhat.com> | |
7908 | ||
7909 | PR target/82855 | |
7910 | * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator. | |
7911 | (*cmp<mode>_ccz_1): New insn with $k alternative. | |
7912 | ||
7913 | PR target/82855 | |
7914 | * config/i386/i386.c (ix86_swap_binary_operands_p): Treat | |
7915 | RTX_COMM_COMPARE as commutative as well. | |
7916 | (ix86_binary_operator_ok): Formatting fix. | |
7917 | * config/i386/sse.md (*mul<mode>3<mask_name><round_name>, | |
7918 | *<code><mode>3<mask_name><round_saeonly_name>, | |
7919 | *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>, | |
7920 | *<s>mul<mode>3_highpart<mask_name>, | |
7921 | *vec_widen_umult_even_v16si<mask_name>, | |
7922 | *vec_widen_umult_even_v8si<mask_name>, | |
7923 | *vec_widen_umult_even_v4si<mask_name>, | |
7924 | *vec_widen_smult_even_v16si<mask_name>, | |
7925 | *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>, | |
7926 | *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>, | |
7927 | *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>, | |
7928 | *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3, | |
7929 | *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3, | |
7930 | <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3, | |
7931 | *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>, | |
7932 | *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>, | |
7933 | *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use | |
7934 | !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of | |
7935 | ix86_binary_operator_ok. Formatting fixes. | |
7936 | (*<plusminus_insn><mode>3<mask_name><round_name>, | |
7937 | *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting | |
7938 | fixes. | |
7939 | ||
7940 | 2017-11-07 Segher Boessenkool <segher@kernel.crashing.org> | |
7941 | ||
7942 | * config/rs6000/rs6000.md (GPR2): New mode_iterator. | |
7943 | ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for | |
7944 | eq and ne if TARGET_ISEL. | |
7945 | (cmp): New code_iterator. | |
7946 | (UNS, UNSU_, UNSIK): New code_attrs. | |
7947 | (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split. | |
7948 | ("eq<mode>3"): New define_expand, rename the define_insn_and_split | |
7949 | to... | |
7950 | ("eq<mode>3"): ... this. | |
7951 | ("ne<mode>3"): New define_expand, rename the define_insn_and_split | |
7952 | to... | |
7953 | ("ne<mode>3"): ... this. | |
7954 | ||
7955 | 2017-11-07 Julia Koval <julia.koval@intel.com> | |
7956 | ||
7957 | PR target/82812 | |
7958 | * common/config/i386/i386-common.c | |
7959 | (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag. | |
7960 | (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags. | |
7961 | * config/i386/i386-c.c (ix86_target_macros_internal): Ditto. | |
7962 | * config/i386/i386.opt: Ditto. | |
7963 | * config/i386/i386.c (ix86_target_string): Ditto. | |
7964 | (ix86_option_override_internal): Ditto. | |
7965 | (ix86_init_mpx_builtins): Move MPX to args2. | |
7966 | (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI. | |
7967 | * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi, | |
7968 | __builtin_ia32_vgf2p8affineinvqb_v64qi_mask, | |
7969 | __builtin_ia32_vgf2p8affineinvqb_v32qi, | |
7970 | __builtin_ia32_vgf2p8affineinvqb_v32qi_mask, | |
7971 | __builtin_ia32_vgf2p8affineinvqb_v16qi, | |
7972 | __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array. | |
7973 | ||
7974 | 2017-11-07 Uros Bizjak <ubizjak@gmail.com> | |
7975 | ||
7976 | PR target/80425 | |
7977 | * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r) | |
7978 | and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m). | |
7979 | (zero-extendsidi peephole2): Remove peephole. | |
7980 | ||
7981 | 2017-11-07 Eric Botcazou <ebotcazou@adacore.com> | |
7982 | ||
7983 | PR c/53037 | |
7984 | * stor-layout.c: Include attribs.h. | |
7985 | (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with | |
7986 | explicit lookup of "aligned" attribute. | |
7987 | ||
7988 | 2017-11-07 Andrew Waterman <andrew@sifive.com> | |
7989 | ||
7990 | * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype. | |
7991 | (riscv_expand_block_move): Likewise. | |
7992 | * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi | |
7993 | implementation. | |
7994 | (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define. | |
7995 | (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define. | |
7996 | * config/riscv/riscv.c (riscv_block_move_straight): New function. | |
7997 | (riscv_adjust_block_mem): Likewise. | |
7998 | (riscv_block_move_loop): Likewise. | |
7999 | (riscv_expand_block_move): Likewise. | |
8000 | * config/riscv/riscv.md (movmemsi): New pattern. | |
8001 | ||
8002 | 2017-11-07 Michael Clark <michaeljclark@mac.com> | |
8003 | ||
8004 | * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define. | |
8005 | (MUSL_DYNAMIC_LINKER): Likewise. | |
8006 | ||
8007 | 2017-11-07 Richard Sandiford <richard.sandiford@linaro.org> | |
8008 | ||
8009 | * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3) | |
8010 | (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of | |
8011 | nonmmory_operand. | |
8012 | ||
8013 | 2017-11-07 Richard Biener <rguenther@suse.de> | |
8014 | ||
8015 | * match.pd: Fix build. | |
8016 | ||
8017 | 2017-11-07 Wilco Dijkstra <wdijkstr@arm.com> | |
8018 | Jackson Woodruff <jackson.woodruff@arm.com> | |
8019 | ||
8020 | PR tree-optimization/71026 | |
8021 | * match.pd: Canonicalize negate in division. | |
8022 | ||
8023 | 2017-11-07 Sudakshina Das <sudi.das@arm.com> | |
8024 | ||
8025 | PR middle-end/80131 | |
8026 | * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1. | |
8027 | ||
8028 | 2017-11-07 Marc Glisse <marc.glisse@inria.fr> | |
8029 | ||
8030 | * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b), | |
8031 | (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations. | |
8032 | ||
8033 | 2017-11-07 Marc Glisse <marc.glisse@inria.fr> | |
8034 | ||
8035 | * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle | |
8036 | non-scalar integral types. | |
8037 | * match.pd (negate_expr_p): Handle MINUS_EXPR. | |
8038 | (-(A-B), -(~A)): New transformations. | |
8039 | ||
8040 | 2017-11-07 Tom de Vries <tom@codesourcery.com> | |
8041 | ||
8042 | * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove | |
8043 | semicolon after "do {} while (0)". | |
8044 | * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8045 | * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8046 | * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8047 | * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8048 | * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8049 | ||
8050 | 2017-11-07 Tom de Vries <tom@codesourcery.com> | |
8051 | ||
8052 | * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon | |
8053 | after "do {} while (0)". | |
8054 | * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8055 | * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8056 | * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8057 | * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8058 | * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same. | |
8059 | ||
8060 | 2017-11-07 Tom de Vries <tom@codesourcery.com> | |
8061 | ||
8062 | PR other/82784 | |
8063 | * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after | |
8064 | "while {} do (0)". | |
8065 | (arm_rtx_costs_internal): Add missing semicolon after | |
8066 | HANDLE_NARROW_SHIFT_ARITH call. | |
8067 | ||
8068 | 2017-11-06 Segher Boessenkool <segher@kernel.crashing.org> | |
8069 | ||
8070 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't | |
8071 | disable isel if it was not set explicitly. | |
8072 | ||
8073 | 2017-11-06 James Bowman <james.bowman@ftdichip.com> | |
8074 | ||
8075 | * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers. | |
8076 | (add_type_attribute) likewise. | |
8077 | ||
8078 | 2017-11-06 H.J. Lu <hongjiu.lu@intel.com> | |
8079 | ||
8080 | * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference | |
8081 | of struct ix86_frame. | |
8082 | (ix86_initial_elimination_offset): Likewise. | |
8083 | (ix86_expand_split_stack_prologue): Likewise. | |
8084 | ||
8085 | 2017-11-06 Marc Glisse <marc.glisse@inria.fr> | |
8086 | ||
8087 | * tree-vrp.h (enum value_range_type): Update stale comment. | |
8088 | ||
8089 | 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> | |
8090 | Alan Hayward <alan.hayward@arm.com> | |
8091 | David Sherwood <david.sherwood@arm.com> | |
8092 | ||
8093 | * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm) | |
8094 | (aarch64_expand_vec_perm_const): Take the number of units too. | |
8095 | * config/aarch64/aarch64.c (aarch64_expand_vec_perm) | |
8096 | (aarch64_expand_vec_perm_const): Likewise. | |
8097 | * config/aarch64/aarch64-simd.md (vec_perm_const<mode>) | |
8098 | (vec_perm<mode>): Update accordingly. | |
8099 | ||
8100 | 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> | |
8101 | Alan Hayward <alan.hayward@arm.com> | |
8102 | David Sherwood <david.sherwood@arm.com> | |
8103 | ||
8104 | * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half): | |
8105 | Take the number of units too. | |
8106 | * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise. | |
8107 | (aarch64_simd_check_vect_par_cnst_half): Update call accordingly, | |
8108 | but check for a vector mode before rather than after the call. | |
8109 | * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>) | |
8110 | (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>) | |
8111 | (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>) | |
8112 | (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>) | |
8113 | (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>) | |
8114 | (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3) | |
8115 | (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>) | |
8116 | (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>) | |
8117 | (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>) | |
8118 | (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>) | |
8119 | (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>) | |
8120 | (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>) | |
8121 | (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>) | |
8122 | (aarch64_sqdmull2_n<mode>): Update accordingly. | |
8123 | ||
8124 | 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> | |
8125 | Alan Hayward <alan.hayward@arm.com> | |
8126 | David Sherwood <david.sherwood@arm.com> | |
8127 | ||
8128 | * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take | |
8129 | the number of units too. | |
8130 | * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise. | |
8131 | * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>) | |
8132 | (vec_store_lanesoi<mode>, vec_load_lanesci<mode>) | |
8133 | (vec_store_lanesci<mode>, vec_load_lanesxi<mode>) | |
8134 | (vec_store_lanesxi<mode>): Update accordingly. | |
8135 | ||
8136 | 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> | |
8137 | Alan Hayward <alan.hayward@arm.com> | |
8138 | David Sherwood <david.sherwood@arm.com> | |
8139 | ||
8140 | * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare. | |
8141 | * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function. | |
8142 | * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number | |
8143 | of units rather than the mode. | |
8144 | * config/aarch64/iterators.md (nunits): New mode attribute. | |
8145 | * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): | |
8146 | Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...). | |
8147 | * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>) | |
8148 | (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>) | |
8149 | (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise. | |
8150 | (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise. | |
8151 | (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>) | |
8152 | (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>) | |
8153 | (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise. | |
8154 | (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise. | |
8155 | (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise. | |
8156 | (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise. | |
8157 | (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise. | |
8158 | (reduc_<maxmin_uns>_scal_<mode>): Likewise. | |
8159 | (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise. | |
8160 | (*aarch64_get_lane_zero_extendsi<mode>): Likewise. | |
8161 | (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>) | |
8162 | (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise. | |
8163 | (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>) | |
8164 | (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise. | |
8165 | (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise. | |
8166 | (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise. | |
8167 | (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise. | |
8168 | (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise. | |
8169 | (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise. | |
8170 | (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise. | |
8171 | (aarch64_sqdmull2_lane<mode>_internal): Likewise. | |
8172 | (aarch64_sqdmull2_laneq<mode>_internal): Likewise. | |
8173 | (aarch64_vec_load_lanesoi_lane<mode>): Likewise. | |
8174 | (aarch64_vec_store_lanesoi_lane<mode>): Likewise. | |
8175 | (aarch64_vec_load_lanesci_lane<mode>): Likewise. | |
8176 | (aarch64_vec_store_lanesci_lane<mode>): Likewise. | |
8177 | (aarch64_vec_load_lanesxi_lane<mode>): Likewise. | |
8178 | (aarch64_vec_store_lanesxi_lane<mode>): Likewise. | |
8179 | (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N. | |
8180 | (aarch64_simd_vec_setv2di): Likewise. | |
8181 | ||
8182 | 2017-11-06 Carl Love <cel@us.ibm.com> | |
8183 | ||
8184 | * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8 | |
8185 | definitions. | |
8186 | (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions. | |
8187 | * config/rs6000/altivec.h (vec_revb): Change the #define from power 9 | |
8188 | to power 8. | |
8189 | * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new | |
8190 | extern declaration. | |
8191 | * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function. | |
8192 | * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1): | |
8193 | Add power 8 macro expansions. | |
8194 | (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion. | |
8195 | * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate | |
8196 | power 8 instructions. (VSX_XXBR): Add iterator. | |
8197 | ||
8198 | 2017-11-06 Wilco Dijkstra <wdijkstr@arm.com> | |
8199 | ||
8200 | * config/arm/arm.md (predicable_short_it): Change default to "no", | |
8201 | improve documentation, remove uses that are identical to the default. | |
8202 | (enabled_for_depr_it): Rename to enabled_for_short_it. | |
8203 | * gcc/config/arm/arm-fixed.md (predicable_short_it): | |
8204 | Remove default uses. | |
8205 | * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise. | |
8206 | * gcc/config/arm/sync.md (predicable_short_it): Likewise. | |
8207 | * gcc/config/arm/thumb2.md (predicable_short_it): Likewise. | |
8208 | * gcc/config/arm/vfp.md (predicable_short_it): Likewise. | |
8209 | ||
8210 | 2017-11-06 Michael Meissner <meissner@linux.vnet.ibm.com> | |
8211 | ||
8212 | PR target/82748 | |
8213 | * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete | |
8214 | float128 helper macros, which are no longer used after deleting | |
8215 | the old 'q' built-in functions, and moving the round to odd | |
8216 | built-in functions to being special built-in functions. | |
8217 | (BU_FLOAT128_2): Likewise. | |
8218 | (BU_FLOAT128_1_HW): Likewise. | |
8219 | (BU_FLOAT128_2_HW): Likewise. | |
8220 | (BU_FLOAT128_3_HW): Likewise. | |
8221 | (FABSQ): Delete old 'q' built-in functions. | |
8222 | (COPYSIGNQ): Likewise. | |
8223 | (SQRTF128_ODD): Move round to odd built-in functions to be | |
8224 | special built-in functions, so that we can handle | |
8225 | -mabi=ieeelongdouble. | |
8226 | (TRUNCF128_ODD): Likewise. | |
8227 | (ADDF128_ODD): Likewise. | |
8228 | (SUBF128_ODD): Likewise. | |
8229 | (MULF128_ODD): Likewise. | |
8230 | (DIVF128_ODD): Likewise. | |
8231 | (FMAF128_ODD): Likewise. | |
8232 | * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q' | |
8233 | built-in names to 'f128'. | |
8234 | * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the | |
8235 | old 'q' built-in functions, as the machine independent code for | |
8236 | 'f128' built-in functions handles this. | |
8237 | (rs6000_expand_builtin): Add expansion for float128 round to odd | |
8238 | functions, keying off on -mabi=ieeelongdouble of whether to use | |
8239 | the KFmode or TFmode variant. | |
8240 | (rs6000_init_builtins): Initialize the _Float128 round to odd | |
8241 | built-in functions. | |
8242 | * doc/extend.texi (PowerPC Built-in Functions): Document the old | |
8243 | _Float128 'q' built-in functions are now mapped into the new | |
8244 | 'f128' built-in functions. | |
8245 | ||
8246 | 2017-11-06 David Edelsohn <dje.gcc@gmail.com> | |
8247 | ||
8248 | * collect2.c (add_lto_object): Compile for OBJECT_COFF. | |
8249 | (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects. | |
8250 | ||
8251 | 2017-11-06 David Malcolm <dmalcolm@redhat.com> | |
8252 | ||
8253 | PR jit/82826 | |
8254 | * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function. | |
8255 | * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl. | |
8256 | * toplev.c: Include "ipa-fnsummary.h". | |
8257 | (toplev::finalize): Call ipa_fnsummary_c_finalize. | |
8258 | ||
8259 | 2017-11-06 Jakub Jelinek <jakub@redhat.com> | |
8260 | ||
8261 | PR tree-optimization/82838 | |
8262 | * gimple-ssa-store-merging.c | |
8263 | (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1 | |
8264 | on a separate gimple_seq which is then appended to seq. | |
8265 | ||
8266 | 2017-11-06 Jeff Law <law@redhat.com> | |
8267 | ||
8268 | PR target/82788 | |
8269 | * config/i386/i386.c (PROBE_INTERVAL): Remove. | |
8270 | (get_probe_interval): New functions. | |
8271 | (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval. | |
8272 | (ix86_adjust_stack_and_probe): Likewise. | |
8273 | (output_adjust_stack_and_probe): Likewise. | |
8274 | (ix86_emit_probe_stack_range): Likewise. | |
8275 | (ix86_expand_prologue): Likewise. | |
8276 | ||
8277 | 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> | |
8278 | ||
8279 | PR tree-optimization/82816 | |
8280 | * tree-ssa-math-opts.c (convert_mult_to_widen): Return false | |
8281 | if the modes of the two types are the same. | |
8282 | (convert_plusminus_to_widen): Likewise. | |
8283 | ||
8284 | 2017-11-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
8285 | ||
8286 | * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to | |
8287 | p9_vadu<mode>3. | |
8288 | (usadv16qi): New define_expand. | |
8289 | (usadv8hi): New define_expand. | |
8290 | ||
8291 | 2017-11-06 Jan Hubicka <hubicka@ucw.cz> | |
8292 | ||
8293 | PR bootstrap/82832 | |
8294 | * ipa-inline-transform.c (update_noncloned_frequencies): Always | |
8295 | scale. | |
8296 | (inline_transform): Likewise. | |
8297 | * predict.c (counts_to_freqs): Remove useless conditional. | |
8298 | * profile-count.h (profile_count::apply_scale): Move sanity check. | |
8299 | * tree-inline.c (copy_bb): Always scale. | |
8300 | (copy_cfg_body): Likewise. | |
8301 | ||
8302 | 2017-11-06 Christophe Lyon <christophe.lyon@linaro.org> | |
8303 | ||
8304 | PR target/67591 | |
8305 | * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it | |
8306 | attribute. | |
8307 | (*cmp_ite0): Add enabled_for_depr_it attribute. | |
8308 | (*cmp_ite1): Likewise. | |
8309 | ||
8310 | 2017-11-06 Segher Boessenkool <segher@kernel.crashing.org> | |
8311 | ||
8312 | * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and | |
8313 | TYPE_MFCRF. | |
8314 | ||
8315 | 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org> | |
8316 | ||
8317 | * tree-vrp.c (vrp_int_const_binop): Return true on success and | |
8318 | return the value by pointer. | |
8319 | (extract_range_from_multiplicative_op_1): Update accordingly. | |
8320 | Return as soon as an operation fails. | |
8321 | ||
8322 | 2017-11-05 Tom de Vries <tom@codesourcery.com> | |
8323 | ||
8324 | PR other/82784 | |
8325 | * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ... | |
8326 | (DEF_SANITIZER_BUILTIN): ... here. | |
8327 | (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of | |
8328 | DEF_SANITIZER_BUILTIN in if stmt. Add missing semicolon. | |
8329 | ||
8330 | 2017-11-05 Tom de Vries <tom@codesourcery.com> | |
8331 | ||
8332 | PR other/82784 | |
8333 | * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after | |
8334 | macro body. | |
8335 | (ASM_OUTPUT_CASE_LABEL): Add semicolon after | |
8336 | ASM_OUTPUT_BEFORE_CASE_LABEL call. | |
8337 | * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon | |
8338 | after macro body. | |
8339 | * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same. | |
8340 | * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same. | |
8341 | * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same. | |
8342 | ||
8343 | 2017-11-05 Tom de Vries <tom@codesourcery.com> | |
8344 | ||
8345 | PR other/82784 | |
8346 | * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after | |
8347 | "do {} while (0)". | |
8348 | ||
8349 | 2017-11-04 Michael Clark <michaeljclark@mac.com> | |
8350 | ||
8351 | * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format. | |
8352 | config/riscv/riscv.md (addsi3): Use 'i' for immediates. | |
8353 | (adddi3): Likewise. | |
8354 | (*addsi3_extended): Likewise. | |
8355 | (*addsi3_extended2): Likewise. | |
8356 | (<optab>si3): Likewise. | |
8357 | (<optab>di3): Likewise. | |
8358 | (<optab><mode>3): Likewise. | |
8359 | (<*optabe>si3_internal): Likewise. | |
8360 | (zero_extendqi<SUPERQI:mode>2): Likewise. | |
8361 | (*add<mode>hi3): Likewise. | |
8362 | (*xor<mode>hi3): Likewise. | |
8363 | (<optab>di3): Likewise. | |
8364 | (*<optab>si3_extend): Likewise. | |
8365 | (*sge<u>_<X:mode><GPR:mode>): Likewise. | |
8366 | (*slt<u>_<X:mode><GPR:mode>): Likewise. | |
8367 | (*sle<u>_<X:mode><GPR:mode>): Likewise. | |
8368 | ||
8369 | 2017-11-04 Andrew Waterman <andrew@sifive.com> | |
8370 | ||
8371 | * config/riscv/riscv.c (riscv_option_override): Conditionally set | |
8372 | TARGET_STRICT_ALIGN based upon -mtune argument. | |
8373 | ||
8374 | 2017-11-04 Andrew Waterman <andrew@sifive.com> | |
8375 | ||
8376 | * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1. | |
8377 | ||
8378 | 2017-11-04 Daniel Santos <daniel.santos@pobox.com> | |
8379 | ||
8380 | * config/i386/i386.c (choose_basereg): Use optional scratch | |
8381 | register and add assertion. | |
8382 | (x86_emit_outlined_ms2sysv_save): Use scratch register when | |
8383 | needed, and don't allocate stack. | |
8384 | (ix86_expand_prologue): Rearrange where SSE saves/stub call is | |
8385 | emitted, correct wrong allocation with -mcall-ms2sysv-xlogues. | |
8386 | (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets. | |
8387 | ||
8388 | 2017-11-03 Jeff Law <law@redhat.com> | |
8389 | ||
8390 | * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype. | |
8391 | (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence | |
8392 | to probe at the start of a noreturn function. | |
8393 | ||
8394 | 2017-11-03 Jakub Jelinek <jakub@redhat.com> | |
8395 | ||
8396 | PR tree-optimization/78821 | |
8397 | * gimple-ssa-store-merging.c: Update the file comment. | |
8398 | (MAX_STORE_ALIAS_CHECKS): Define. | |
8399 | (struct store_operand_info): New type. | |
8400 | (store_operand_info::store_operand_info): New constructor. | |
8401 | (struct store_immediate_info): Add rhs_code and ops data members. | |
8402 | (store_immediate_info::store_immediate_info): Add rhscode, op0r | |
8403 | and op1r arguments to the ctor, initialize corresponding data members. | |
8404 | (struct merged_store_group): Add load_align_base and load_align | |
8405 | data members. | |
8406 | (merged_store_group::merged_store_group): Initialize them. | |
8407 | (merged_store_group::do_merge): Update them. | |
8408 | (merged_store_group::apply_stores): Pick the constant for | |
8409 | encode_tree_to_bitpos from one of the two operands, or skip | |
8410 | encode_tree_to_bitpos if neither operand is a constant. | |
8411 | (class pass_store_merging): Add process_store method decl. Remove | |
8412 | bool argument from terminate_all_aliasing_chains method decl. | |
8413 | (pass_store_merging::terminate_all_aliasing_chains): Remove | |
8414 | var_offset_p argument and corresponding handling. | |
8415 | (stmts_may_clobber_ref_p): New function. | |
8416 | (compatible_load_p): New function. | |
8417 | (imm_store_chain_info::coalesce_immediate_stores): Terminate group | |
8418 | if there is overlap and rhs_code is not INTEGER_CST. For | |
8419 | non-overlapping stores terminate group if rhs is not mergeable. | |
8420 | (get_alias_type_for_stmts): Change first argument from | |
8421 | auto_vec<gimple *> & to vec<gimple *> &. Add IS_LOAD, CLIQUEP and | |
8422 | BASEP arguments. If IS_LOAD is true, look at rhs1 of the stmts | |
8423 | instead of lhs. Compute *CLIQUEP and *BASEP in addition to the | |
8424 | alias type. | |
8425 | (get_location_for_stmts): Change first argument from | |
8426 | auto_vec<gimple *> & to vec<gimple *> &. | |
8427 | (struct split_store): Remove orig_stmts data member, add orig_stores. | |
8428 | (split_store::split_store): Create orig_stores rather than orig_stmts. | |
8429 | (find_constituent_stmts): Renamed to ... | |
8430 | (find_constituent_stores): ... this. Change second argument from | |
8431 | vec<gimple *> * to vec<store_immediate_info *> *, push pointers | |
8432 | to info structures rather than the statements. | |
8433 | (split_group): Rename ALLOW_UNALIGNED argument to | |
8434 | ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle | |
8435 | it. Adjust find_constituent_stores caller. | |
8436 | (imm_store_chain_info::output_merged_store): Handle rhs_code other | |
8437 | than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and | |
8438 | get_location_for_stmts callers. Set MR_DEPENDENCE_CLIQUE and | |
8439 | MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores. | |
8440 | (mem_valid_for_store_merging): New function. | |
8441 | (handled_load): New function. | |
8442 | (pass_store_merging::process_store): New method. | |
8443 | (pass_store_merging::execute): Use process_store method. Adjust | |
8444 | terminate_all_aliasing_chains caller. | |
8445 | ||
8446 | 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com> | |
8447 | ||
8448 | * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): | |
8449 | Return true for more constants, symbols and label references. | |
8450 | (aarch64_valid_floating_const): Remove unused function. | |
8451 | ||
8452 | 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com> | |
8453 | ||
8454 | PR target/82786 | |
8455 | * config/aarch64/aarch64.c (aarch64_layout_frame): | |
8456 | Undo forcing of LR at bottom of frame. | |
8457 | ||
8458 | 2017-11-03 Jeff Law <law@redhat.com> | |
8459 | ||
8460 | PR target/82823 | |
8461 | * config/i386/i386.c (ix86_expand_prologue): Tighten assert | |
8462 | for int_registers_saved. | |
8463 | ||
8464 | * cfganal.c (single_pred_edge_ignoring_loop_edges): New function | |
8465 | extracted from tree-ssa-dom.c. | |
8466 | * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype. | |
8467 | * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove. | |
8468 | (record_equivalences_from_incoming_edge): Add additional argument | |
8469 | to single_pred_edge_ignoring_loop_edges call. | |
8470 | * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove. | |
8471 | (uncprop_dom_walker::before_dom_children): Add additional argument | |
8472 | to single_pred_edge_ignoring_loop_edges call. | |
8473 | * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use | |
8474 | single_pred_edge_ignoring_loop_edges rather than open coding. | |
8475 | * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly. | |
8476 | ||
8477 | 2017-11-03 Marc Glisse <marc.glisse@inria.fr> | |
8478 | ||
8479 | * match.pd (-(-A)): Rewrite. | |
8480 | ||
8481 | 2017-11-03 Segher Boessenkool <segher@kernel.crashing.org> | |
8482 | ||
8483 | * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete. | |
8484 | (rs6000_emit_int_cmove): New declaration. | |
8485 | * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration. | |
8486 | (rs6000_emit_sISEL): Delete. | |
8487 | (rs6000_emit_int_cmove): Make non-static. | |
8488 | * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove | |
8489 | instead of rs6000_emit_sISEL. | |
8490 | ||
8491 | 2017-11-03 Jan Hubicka <hubicka@ucw.cz> | |
8492 | ||
8493 | * asan.c (create_cond_insert_point): Maintain profile. | |
8494 | * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are | |
8495 | merged. | |
8496 | * basic-block.h (struct basic_block_def): Remove frequency. | |
8497 | (EDGE_FREQUENCY): Use to_frequency | |
8498 | * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global | |
8499 | heuristics. | |
8500 | (find_traces): Update to use to_frequency. | |
8501 | (find_traces_1_round): Likewise; use only IPA counts. | |
8502 | (bb_to_key): Likewise. | |
8503 | (connect_traces): Use IPA counts only. | |
8504 | (copy_bb_p): Update to use to_frequency. | |
8505 | (fix_up_crossing_landing_pad): Likewise. | |
8506 | (sanitize_hot_paths): Likewise. | |
8507 | * bt-load.c (basic_block_freq): Likewise. | |
8508 | * cfg.c (init_flow): Set count_max to uninitialized. | |
8509 | (check_bb_profile): Remove frequencies; check counts. | |
8510 | (dump_bb_info): Do not dump frequencies. | |
8511 | (update_bb_profile_for_threading): Update counts only. | |
8512 | (scale_bbs_frequencies_int): Likewise. | |
8513 | (MAX_SAFE_MULTIPLIER): Remove. | |
8514 | (scale_bbs_frequencies_gcov_type): Update counts only. | |
8515 | (scale_bbs_frequencies_profile_count): Update counts only. | |
8516 | (scale_bbs_frequencies): Update counts only. | |
8517 | * cfg.h (struct control_flow_graph): Add count-max. | |
8518 | (update_bb_profile_for_threading): Update prototype. | |
8519 | * cfgbuild.c (find_bb_boundaries): Do not update frequencies. | |
8520 | (find_many_sub_basic_blocks): Likewise. | |
8521 | * cfgcleanup.c (try_forward_edges): Likewise. | |
8522 | (try_crossjump_to_edge): Likewise. | |
8523 | * cfgexpand.c (expand_gimple_cond): Likewise. | |
8524 | (expand_gimple_tailcall): Likewise. | |
8525 | (construct_init_block): Likewise. | |
8526 | (construct_exit_block): Likewise. | |
8527 | * cfghooks.c (verify_flow_info): Check consistency of counts. | |
8528 | (dump_bb_for_graph): Do not dump frequencies. | |
8529 | (split_block_1): Do not update frequencies. | |
8530 | (split_edge): Do not update frequencies. | |
8531 | (make_forwarder_block): Do not update frequencies. | |
8532 | (duplicate_block): Do not update frequencies. | |
8533 | (account_profile_record): Do not update frequencies. | |
8534 | * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts | |
8535 | for global heuristics. | |
8536 | * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency. | |
8537 | (expected_loop_iterations_unbounded): Use counts only. | |
8538 | * cfgloopmanip.c (scale_loop_profile): Simplify. | |
8539 | (create_empty_loop_on_edge): Simplify | |
8540 | (loopify): Simplify | |
8541 | (duplicate_loop_to_header_edge): Simplify | |
8542 | * cfgrtl.c (force_nonfallthru_and_redirect): Update profile. | |
8543 | (update_br_prob_note): Take care of removing note when profile | |
8544 | becomes undefined. | |
8545 | (relink_block_chain): Do not dump frequency. | |
8546 | (rtl_account_profile_record): Use to_frequency. | |
8547 | * cgraph.c (symbol_table::create_edge): Convert count to ipa count. | |
8548 | (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count. | |
8549 | (cgraph_update_edges_for_call_stmt_node): Likewise. | |
8550 | (cgraph_edge::verify_count_and_frequency): Update. | |
8551 | (cgraph_node::verify_node): Temporarily disable frequency verification. | |
8552 | * cgraphbuild.c (compute_call_stmt_bb_frequency): Use | |
8553 | to_cgraph_frequency. | |
8554 | (cgraph_edge::rebuild_edges): Convert to ipa counts. | |
8555 | * cgraphunit.c (init_lowered_empty_function): Do not initialize | |
8556 | frequencies. | |
8557 | (cgraph_node::expand_thunk): Update profile. | |
8558 | * except.c (dw2_build_landing_pads): Do not update frequency. | |
8559 | * final.c (compute_alignments): Use to_frequency. | |
8560 | (dump_basic_block_info): Do not dump frequency. | |
8561 | * gimple-pretty-print.c (dump_profile): Do not dump frequency. | |
8562 | (dump_gimple_bb_header): Do not dump frequency. | |
8563 | * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency; | |
8564 | do update count. | |
8565 | * gimple-streamer-in.c (input_bb): Do not stream frequency. | |
8566 | * gimple-streamer-out.c (output_bb): Do not stream frequency. | |
8567 | * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency. | |
8568 | (init_before_recovery): Do not update frequency. | |
8569 | (sched_create_recovery_edges): Do not update frequency. | |
8570 | * hsa-gen.c (convert_switch_statements): Do not update frequency. | |
8571 | * ipa-cp.c (ipcp_propagate_stage): Update search for max_count. | |
8572 | (ipa_cp_c_finalize): Set max_count to uninitialized. | |
8573 | * ipa-fnsummary.c (get_minimal_bb): Use counts. | |
8574 | (param_change_prob): Use counts. | |
8575 | * ipa-profile.c (ipa_profile_generate_summary): Do not summarize | |
8576 | local profiles. | |
8577 | * ipa-split.c (consider_split): Use to_frequency. | |
8578 | (split_function): Use to_frequency. | |
8579 | * ira-build.c (loop_compare_func): Likewise. | |
8580 | (mark_loops_for_removal): Likewise. | |
8581 | (mark_all_loops_for_removal): Likewise. | |
8582 | * loop-doloop.c (doloop_modify): Do not update frequency. | |
8583 | * loop-unroll.c (unroll_loop_runtime_iterations): Do not update | |
8584 | frequency. | |
8585 | * lto-streamer-in.c (input_function): Update count_max. | |
8586 | * omp-expand.c (expand_omp_taskreg): Update count_max. | |
8587 | * omp-simd-clone.c (simd_clone_adjust): Update profile. | |
8588 | * predict.c (maybe_hot_frequency_p): Use to_frequency. | |
8589 | (maybe_hot_count_p): Use ipa counts only. | |
8590 | (maybe_hot_bb_p): Simplify. | |
8591 | (maybe_hot_edge_p): Simplify. | |
8592 | (probably_never_executed): Do not take frequency argument. | |
8593 | (probably_never_executed_bb_p): Do not pass frequency. | |
8594 | (probably_never_executed_edge_p): Likewise. | |
8595 | (combine_predictions_for_bb): Check that profile is nonzero. | |
8596 | (propagate_freq): Do not set frequency. | |
8597 | (drop_profile): Simplify. | |
8598 | (counts_to_freqs): Simplify. | |
8599 | (expensive_function_p): Use to_frequency. | |
8600 | (propagate_unlikely_bbs_forward): Simplify. | |
8601 | (determine_unlikely_bbs): Simplify. | |
8602 | (estimate_bb_frequencies): Add hack to silence graphite issues. | |
8603 | (compute_function_frequency): Use ipa counts. | |
8604 | (pass_profile::execute): Update. | |
8605 | (rebuild_frequencies): Use counts only. | |
8606 | (force_edge_cold): Use counts only. | |
8607 | * profile-count.c (profile_count::dump): Dump new count types. | |
8608 | (profile_count::differs_from_p): Check compatiblity. | |
8609 | (profile_count::to_frequency): New function. | |
8610 | (profile_count::to_cgraph_frequency): New function. | |
8611 | * profile-count.h (struct function): Declare. | |
8612 | (enum profile_quality): Add profile_guessed_local and | |
8613 | profile_guessed_global0. | |
8614 | (class profile_proability): Decrease number of bits to 29; | |
8615 | update from_reg_br_prob_note and to_reg_br_prob_note. | |
8616 | (class profile_count: Update comment; decrease number of bits | |
8617 | to 61. Check compatibility. | |
8618 | (profile_count::compatible_p): New private member function. | |
8619 | (profile_count::ipa_p): New member function. | |
8620 | (profile_count::operator<): Handle global zero correctly. | |
8621 | (profile_count::operator>): Handle global zero correctly. | |
8622 | (profile_count::operator<=): Handle global zero correctly. | |
8623 | (profile_count::operator>=): Handle global zero correctly. | |
8624 | (profile_count::nonzero_p): New member function. | |
8625 | (profile_count::force_nonzero): New member function. | |
8626 | (profile_count::max): New member function. | |
8627 | (profile_count::apply_scale): Handle IPA scalling. | |
8628 | (profile_count::guessed_local): New member function. | |
8629 | (profile_count::global0): New member function. | |
8630 | (profile_count::ipa): New member function. | |
8631 | (profile_count::to_frequency): Declare. | |
8632 | (profile_count::to_cgraph_frequency): Declare. | |
8633 | * profile.c (OVERLAP_BASE): Delete. | |
8634 | (compute_frequency_overlap): Delete. | |
8635 | (compute_branch_probabilities): Do not use compute_frequency_overlap. | |
8636 | * regs.h (REG_FREQ_FROM_BB): Use to_frequency. | |
8637 | * sched-ebb.c (rank): Use counts only. | |
8638 | * shrink-wrap.c (handle_simple_exit): Use counts only. | |
8639 | (try_shrink_wrapping): Use counts only. | |
8640 | (place_prologue_for_one_component): Use counts only. | |
8641 | * tracer.c (find_best_predecessor): Use to_frequency. | |
8642 | (find_trace): Use to_frequency. | |
8643 | (tail_duplicate): Use to_frequency. | |
8644 | * trans-mem.c (expand_transaction): Do not update frequency. | |
8645 | * tree-call-cdce.c: Do not update frequency. | |
8646 | * tree-cfg.c (gimple_find_sub_bbs): Likewise. | |
8647 | (gimple_merge_blocks): Likewise. | |
8648 | (gimple_split_edge): Likewise. | |
8649 | (gimple_duplicate_sese_region): Likewise. | |
8650 | (gimple_duplicate_sese_tail): Likewise. | |
8651 | (move_sese_region_to_fn): Likewise. | |
8652 | (gimple_account_profile_record): Likewise. | |
8653 | (insert_cond_bb): Likewise. | |
8654 | * tree-complex.c (expand_complex_div_wide): Likewise. | |
8655 | * tree-eh.c (lower_resx): Update profile. | |
8656 | * tree-inline.c (copy_bb): Simplify count scaling; do not scale | |
8657 | frequencies. | |
8658 | (initialize_cfun): Do not initialize frequencies | |
8659 | (freqs_to_counts): Delete. | |
8660 | (copy_cfg_body): Ignore count parameter. | |
8661 | (copy_body): Update. | |
8662 | (expand_call_inline): Update count_max. | |
8663 | (optimize_inline_calls): Update count_max. | |
8664 | (tree_function_versioning): Update count_max. | |
8665 | * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency. | |
8666 | * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update | |
8667 | frequency. | |
8668 | * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only. | |
8669 | * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency. | |
8670 | (try_peel_loop): Likewise. | |
8671 | * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use | |
8672 | to_frequency. | |
8673 | * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1. | |
8674 | (tree_transform_and_unroll_loop): Do not use frequencies | |
8675 | * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): | |
8676 | Use reliable prediction only. | |
8677 | * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies. | |
8678 | * tree-ssa-sink.c (select_best_block): Use to_frequency. | |
8679 | * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable | |
8680 | probability scaling. | |
8681 | * tree-ssa-threadupdate.c (create_block_for_threading): Do | |
8682 | not update frequency | |
8683 | (any_remaining_duplicated_blocks): Likewise. | |
8684 | (update_profile): Likewise. | |
8685 | (estimated_freqs_path): Delete. | |
8686 | (freqs_to_counts_path): Delete. | |
8687 | (clear_counts_path): Delete. | |
8688 | (ssa_fix_duplicate_block_edges): Likewise. | |
8689 | (duplicate_thread_path): Likewise. | |
8690 | * tree-switch-conversion.c (gen_inbound_check): Use counts. | |
8691 | * tree-tailcall.c (decrease_profile): Do not update frequency. | |
8692 | (eliminate_tail_call): Likewise. | |
8693 | * tree-vect-loop-manip.c (vect_do_peeling): Likewise. | |
8694 | * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise. | |
8695 | (optimize_mask_stores): Likewise. | |
8696 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. | |
8697 | * ubsan.c (ubsan_expand_null_ifn): Update profile. | |
8698 | (ubsan_expand_ptr_ifn): Update profile. | |
8699 | * value-prof.c (gimple_ic): Simplify. | |
8700 | * value-prof.h (gimple_ic): Update prototype. | |
8701 | * ipa-inline-transform.c (inline_transform): Fix scaling conditoins. | |
8702 | * ipa-inline.c (compute_uninlined_call_time): Be sure that | |
8703 | counts are nonzero. | |
8704 | (want_inline_self_recursive_call_p): Likewise. | |
8705 | (resolve_noninline_speculation): Only cummulate defined counts. | |
8706 | (inline_small_functions): Use nonzero_p. | |
8707 | (ipa_inline): Do not access freed node. | |
8708 | ||
8709 | 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com> | |
8710 | ||
8711 | * config/aarch64/aarch64.c (aarch64_override_options_internal): | |
8712 | Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL. | |
8713 | ||
8714 | 2017-11-03 Kito Cheng <kito.cheng@gmail.com> | |
8715 | ||
8716 | * config/riscv/riscv.c (riscv_legitimize_move): Handle | |
8717 | non-legitimate address. | |
8718 | ||
8719 | 2017-11-03 Segher Boessenkool <segher@kernel.crashing.org> | |
8720 | ||
8721 | * config/rs6000/rs6000.md (*lt0_disi): Delete. | |
8722 | (*lt0_<mode>di, *lt0_<mode>si): New. | |
8723 | ||
8724 | 2017-11-03 Segher Boessenkool <segher@kernel.crashing.org> | |
8725 | ||
8726 | * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to | |
8727 | TARGET_PAIRED_FLOAT. | |
8728 | ||
8729 | 2017-11-03 Siddhesh Poyarekar <siddhesh.poyarekar@linaro.org> | |
8730 | Jim Wilson <jim.wilson@linaro.org> | |
8731 | ||
8732 | * config/aarch64/aarch64-cores.def (saphira): New CPU. | |
8733 | * config/aarch64/aarch64-tune.md: Regenerated. | |
8734 | * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira". | |
8735 | * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table. | |
8736 | ||
8737 | 2017-11-03 Cupertino Miranda <cmiranda@synopsys.com> | |
8738 | ||
8739 | * config/arc/arc.c (arc_save_restore): Corrected CFA note. | |
8740 | (arc_expand_prologue): Restore blink for millicode. | |
8741 | * config/arc/linux.h (LINK_EH_SPEC): Defined. | |
8742 | ||
8743 | 2017-11-03 Richard Sandiford <richard.sandiford@linaro.org> | |
8744 | ||
8745 | PR target/82809 | |
8746 | * config/i386/i386.c (ix86_vector_duplicate_value): Use | |
8747 | gen_vec_duplicate after forcing the scalar into a register. | |
8748 | ||
8749 | 2017-11-02 Segher Boessenkool <segher@kernel.crashing.org> | |
8750 | ||
8751 | * combine (try_combine): Print the insns input to try_combine to the | |
8752 | dump file. | |
8753 | ||
8754 | 2017-11-02 Steve Ellcey <sellcey@cavium.com> | |
8755 | ||
8756 | PR target/79868 | |
8757 | * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): | |
8758 | Remove second argument from aarch64_process_target_attr call. | |
8759 | * config/aarch64/aarch64-protos.h (aarch64_process_target_attr): | |
8760 | Ditto. | |
8761 | * config/aarch64/aarch64.c (aarch64_attribute_info): Change | |
8762 | field type. | |
8763 | (aarch64_handle_attr_arch): Remove second argument. | |
8764 | (aarch64_handle_attr_cpu): Ditto. | |
8765 | (aarch64_handle_attr_tune): Ditto. | |
8766 | (aarch64_handle_attr_isa_flags): Ditto. | |
8767 | (aarch64_process_one_target_attr): Ditto. | |
8768 | (aarch64_process_target_attr): Ditto. | |
8769 | (aarch64_option_valid_attribute_p): Remove second argument. | |
8770 | on aarch64_process_target_attr call. | |
8771 | ||
8772 | 2017-11-02 David Malcolm <dmalcolm@redhat.com> | |
8773 | ||
8774 | * diagnostic.c: Include "selftest-diagnostic.h". | |
8775 | (selftest::assert_location_text): New function. | |
8776 | (selftest::test_diagnostic_get_location_text): New function. | |
8777 | (selftest::diagnostic_c_tests): Call it. | |
8778 | ||
8779 | 2017-11-02 David Malcolm <dmalcolm@redhat.com> | |
8780 | ||
8781 | * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o. | |
8782 | * diagnostic-show-locus.c: Include "selftest-diagnostic.h". | |
8783 | (class selftest::test_diagnostic_context): Move to... | |
8784 | * selftest-diagnostic.c: New file. | |
8785 | * selftest-diagnostic.h: New file. | |
8786 | ||
8787 | 2017-11-02 James Bowman <james.bowman@ftdichip.com> | |
8788 | ||
8789 | * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase | |
8790 | offset range for FT32B. | |
8791 | * config/ft32/ft32.h: option "mcompress" enables relaxation. | |
8792 | * config/ft32/ft32.md: Add TARGET_NOPM. | |
8793 | * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm. | |
8794 | * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm. | |
8795 | ||
8796 | 2017-11-02 Wilco Dijkstra <wdijkstr@arm.com> | |
8797 | ||
8798 | * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define. | |
8799 | ||
8800 | 2017-11-02 Jeff Law <law@redhat.com> | |
8801 | ||
8802 | * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove | |
8803 | virtual keyword on FINAL OVERRIDE members. | |
8804 | ||
8805 | * tree-ssa-propagate.h (ssa_propagation_engine): Group | |
8806 | virtuals together. Add virtual destructor. | |
8807 | (substitute_and_fold_engine): Similarly. | |
8808 | ||
8809 | 2017-11-02 Jan Hubicka <hubicka@ucw.cz> | |
8810 | ||
8811 | * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+. | |
8812 | ||
8813 | 2017-11-02 Richard Biener <rguenther@suse.de> | |
8814 | ||
8815 | PR tree-optimization/82795 | |
8816 | * tree-if-conv.c (predicate_mem_writes): Remove bogus assert. | |
8817 | ||
8818 | 2017-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
8819 | ||
8820 | * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require | |
8821 | gcc_SUN_LD_VERSION. | |
8822 | (gcc_GAS_CHECK_FEATURE): Remove. | |
8823 | * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from | |
8824 | gcc_AC_INITFINI_ARRAY here. Update for Solaris 11.4 changes. | |
8825 | * configure: Regenerate. | |
8826 | ||
8827 | 2017-11-02 Claudiu Zissulescu <claziss@synopsys.com> | |
8828 | ||
8829 | * config/arc/arc.c (hwloop_optimize): Account for empty | |
8830 | body loops. | |
8831 | ||
8832 | 2017-11-02 Richard Biener <rguenther@suse.de> | |
8833 | ||
8834 | PR middle-end/82765 | |
8835 | * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT. | |
8836 | Truncate ARRAY_REF index and element size. | |
8837 | ||
8838 | 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com> | |
8839 | ||
8840 | * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB". | |
8841 | ||
8842 | 2017-11-01 Jeff Law <law@redhat.com> | |
8843 | ||
8844 | * tree-ssa-ccp.c (ccp_folder): New class derived from | |
8845 | substitute_and_fold_engine. | |
8846 | (ccp_folder::get_value): New member function. | |
8847 | (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt. | |
8848 | (ccp_fold_stmt): Remove prototype. | |
8849 | (ccp_finalize): Call substitute_and_fold from the ccp_class. | |
8850 | * tree-ssa-copy.c (copy_folder): New class derived from | |
8851 | substitute_and_fold_engine. | |
8852 | (copy_folder::get_value): Renamed from get_value. | |
8853 | (fini_copy_prop): Call substitute_and_fold from copy_folder class. | |
8854 | * tree-vrp.c (vrp_folder): New class derived from | |
8855 | substitute_and_fold_engine. | |
8856 | (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt. | |
8857 | (vrp_folder::get_value): New member function. | |
8858 | (vrp_finalize): Call substitute_and_fold from vrp_folder class. | |
8859 | (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in. | |
8860 | * tree-ssa-propagate.h (substitute_and_fold_engine): New class to | |
8861 | provide a class interface to folder/substitute routines. | |
8862 | (ssa_prop_fold_stmt_fn): Remove typedef. | |
8863 | (ssa_prop_get_value_fn): Likewise. | |
8864 | (subsitute_and_fold): Remove prototype. | |
8865 | (replace_uses_in): Likewise. | |
8866 | * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in): | |
8867 | Renamed from replace_uses_in. Call the virtual member function | |
8868 | (substitute_and_fold_engine::replace_phi_args_in): Similarly. | |
8869 | (substitute_and_fold_dom_walker): Remove initialization of | |
8870 | data member entries for calbacks. Add substitute_and_fold_engine | |
8871 | member and initialize it. | |
8872 | (substitute_and_fold_dom_walker::before_dom_children0: Use the | |
8873 | member functions for get_value, replace_phi_args_in c | |
8874 | replace_uses_in, and fold_stmt calls. | |
8875 | (substitute_and_fold_engine::substitute_and_fold): Renamed from | |
8876 | substitute_and_fold. Remove assert. Update ctor call. | |
8877 | ||
8878 | * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef. | |
8879 | (ssa_prop_visit_phi_fn): Likewise. | |
8880 | (class ssa_propagation_engine): New class to provide an interface | |
8881 | into ssa_propagate. | |
8882 | * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped | |
8883 | variable. | |
8884 | (ssa_prop_visit_phi): Likewise. | |
8885 | (ssa_propagation_engine::simulate_stmt): Moved into class. | |
8886 | Call visit_phi/visit_stmt from the class rather than via | |
8887 | file scoped static variables. | |
8888 | (ssa_propagation_engine::simulate_block): Moved into class. | |
8889 | (ssa_propagation_engine::process_ssa_edge_worklist): Similarly. | |
8890 | (ssa_propagation_engine::ssa_propagate): Similarly. No longer | |
8891 | set file scoped statics for the visit_stmt/visit_phi callbacks. | |
8892 | * tree-complex.c (complex_propagate): New class derived from | |
8893 | ssa_propagation_engine. | |
8894 | (complex_propagate::visit_stmt): Renamed from complex_visit_stmt. | |
8895 | (complex_propagate::visit_phi): Renamed from complex_visit_phi. | |
8896 | (tree_lower_complex): Call ssa_propagate via the complex_propagate | |
8897 | class. | |
8898 | * tree-ssa-ccp.c: (ccp_propagate): New class derived from | |
8899 | ssa_propagation_engine. | |
8900 | (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node. | |
8901 | (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt. | |
8902 | (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class. | |
8903 | * tree-ssa-copy.c (copy_prop): New class derived from | |
8904 | ssa_propagation_engine. | |
8905 | (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt. | |
8906 | (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node. | |
8907 | (execute_copy_prop): Call ssa_propagate from the copy_prop class. | |
8908 | * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine. | |
8909 | (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt. | |
8910 | (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node. | |
8911 | (execute_vrp): Call ssa_propagate from the vrp_prop class. | |
8912 | ||
8913 | 2017-11-01 Jakub Jelinek <jakub@redhat.com> | |
8914 | ||
8915 | PR rtl-optimization/82778 | |
8916 | PR rtl-optimization/82597 | |
8917 | * compare-elim.c (struct comparison): Add in_a_setter field. | |
8918 | (find_comparison_dom_walker::before_dom_children): Remove killed | |
8919 | bitmap and df_simulate_find_defs call, instead walk the defs. | |
8920 | Compute last_setter and initialize in_a_setter. Merge definitions | |
8921 | with first initialization for a few variables. | |
8922 | (try_validate_parallel): Use insn_invalid_p instead of | |
8923 | recog_memoized. Return insn rather than just the pattern. | |
8924 | (try_merge_compare): Fix up comment. Don't uselessly test if | |
8925 | in_a is a REG_P. Use cmp->in_a_setter instead of walking UD | |
8926 | chains. | |
8927 | (execute_compare_elim_after_reload): Remove df_chain_add_problem | |
8928 | call. | |
8929 | ||
8930 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
8931 | Alan Hayward <alan.hayward@arm.com> | |
8932 | David Sherwood <david.sherwood@arm.com> | |
8933 | ||
8934 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Use | |
8935 | aarch64_hard_regno_nregs to get the number of registers | |
8936 | in a mode. | |
8937 | ||
8938 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
8939 | Alan Hayward <alan.hayward@arm.com> | |
8940 | David Sherwood <david.sherwood@arm.com> | |
8941 | ||
8942 | * config/aarch64/constraints.md (Upl): Rename to... | |
8943 | (Uaa): ...this. | |
8944 | * config/aarch64/aarch64.md | |
8945 | (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw): | |
8946 | Update accordingly. | |
8947 | ||
8948 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
8949 | Alan Hayward <alan.hayward@arm.com> | |
8950 | David Sherwood <david.sherwood@arm.com> | |
8951 | ||
8952 | * config/aarch64/aarch64.c (aarch64_add_constant_internal) | |
8953 | (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move | |
8954 | earlier in file. | |
8955 | ||
8956 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
8957 | Alan Hayward <alan.hayward@arm.com> | |
8958 | David Sherwood <david.sherwood@arm.com> | |
8959 | ||
8960 | * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp) | |
8961 | (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev) | |
8962 | (aarch64_evpc_dup): Generate rtl direcly, rather than using | |
8963 | named expanders. | |
8964 | (aarch64_expand_vec_perm_const_1): Explicitly check for permutes | |
8965 | of a single element. | |
8966 | * config/aarch64/iterators.md: Add a comment above the permute | |
8967 | unspecs to say that they are generated directly by | |
8968 | aarch64_expand_vec_perm_const. | |
8969 | * config/aarch64/aarch64-simd.md: Likewise the permute instructions. | |
8970 | ||
8971 | 2017-11-01 Nathan Sidwell <nathan@acm.org> | |
8972 | ||
8973 | * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P. | |
8974 | ||
8975 | 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com> | |
8976 | ||
8977 | * doc/invoke.texi (RISC-V Options): Explicitly name the medlow | |
8978 | and medany code models, and describe what they do. | |
8979 | ||
8980 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
8981 | ||
8982 | Revert accidental duplicate: | |
8983 | ||
8984 | * combine.c (can_change_dest_mode): Reject changes in | |
8985 | REGMODE_NATURAL_SIZE. | |
8986 | ||
8987 | 2017-11-01 Segher Boessenkool <segher@kernel.crashing.org> | |
8988 | ||
8989 | PR rtl-optimization/64682 | |
8990 | PR rtl-optimization/69567 | |
8991 | PR rtl-optimization/69737 | |
8992 | PR rtl-optimization/82683 | |
8993 | * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same | |
8994 | register mentioned in the note, drop the note, unless it came from I3, | |
8995 | in which case it should go to I3 again. | |
8996 | ||
8997 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
8998 | ||
8999 | * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap | |
9000 | and return false if not. | |
9001 | (clear_bytes_written_by, live_bytes_read): Update accordingly. | |
9002 | ||
9003 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9004 | ||
9005 | * tree-ssa-alias.h (ranges_overlap_p): Return false if either | |
9006 | range is known to be empty. | |
9007 | ||
9008 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9009 | Alan Hayward <alan.hayward@arm.com> | |
9010 | David Sherwood <david.sherwood@arm.com> | |
9011 | ||
9012 | * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS | |
9013 | and CONST_VECTOR_NUNITS instead of computing the number of units from | |
9014 | the byte sizes of the vector and element. | |
9015 | (simplify_binary_operation_1): Likewise. | |
9016 | (simplify_const_binary_operation): Likewise. | |
9017 | (simplify_ternary_operation): Likewise. | |
9018 | ||
9019 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9020 | Alan Hayward <alan.hayward@arm.com> | |
9021 | David Sherwood <david.sherwood@arm.com> | |
9022 | ||
9023 | * var-tracking.c (INT_MEM_OFFSET): Replace with... | |
9024 | (int_mem_offset): ...this new function. | |
9025 | (var_mem_set, var_mem_delete_and_set, var_mem_delete) | |
9026 | (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs) | |
9027 | (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset): | |
9028 | Update accordingly. | |
9029 | ||
9030 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9031 | Alan Hayward <alan.hayward@arm.com> | |
9032 | David Sherwood <david.sherwood@arm.com> | |
9033 | ||
9034 | * lower-subreg.c (interesting_mode_p): New function. | |
9035 | (compute_costs, find_decomposable_subregs, decompose_register) | |
9036 | (simplify_subreg_concatn, can_decompose_p, resolve_simple_move) | |
9037 | (resolve_clobber, dump_choices): Use it. | |
9038 | ||
9039 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9040 | Alan Hayward <alan.hayward@arm.com> | |
9041 | David Sherwood <david.sherwood@arm.com> | |
9042 | ||
9043 | * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'. | |
9044 | ||
9045 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9046 | Alan Hayward <alan.hayward@arm.com> | |
9047 | David Sherwood <david.sherwood@arm.com> | |
9048 | ||
9049 | * alias.c (find_base_value, find_base_term): Only process integer | |
9050 | truncations. Check the precision rather than the size. | |
9051 | ||
9052 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9053 | Alan Hayward <alan.hayward@arm.com> | |
9054 | David Sherwood <david.sherwood@arm.com> | |
9055 | ||
9056 | * machmode.h (is_narrower_int_mode): New function | |
9057 | * optabs.c (expand_float, expand_fix): Use it. | |
9058 | * dwarf2out.c (rotate_loc_descriptor): Likewise. | |
9059 | ||
9060 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9061 | Alan Hayward <alan.hayward@arm.com> | |
9062 | David Sherwood <david.sherwood@arm.com> | |
9063 | ||
9064 | * rtl.h (narrower_subreg_mode): New function. | |
9065 | * ira-color.c (update_costs_from_allocno): Use it. | |
9066 | ||
9067 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9068 | Alan Hayward <alan.hayward@arm.com> | |
9069 | David Sherwood <david.sherwood@arm.com> | |
9070 | ||
9071 | * optabs-query.h (convert_optab_p): New function, split out from... | |
9072 | (convert_optab_handler): ...here. | |
9073 | (widening_optab_handler): Delete. | |
9074 | (find_widening_optab_handler): Remove permit_non_widening parameter. | |
9075 | (find_widening_optab_handler_and_mode): Likewise. Provide an | |
9076 | override that operates on mode class wrappers. | |
9077 | * optabs-query.c (widening_optab_handler): Delete. | |
9078 | (find_widening_optab_handler_and_mode): Remove permit_non_widening | |
9079 | parameter. Assert that the two modes are the same class and that | |
9080 | the "from" mode is narrower than the "to" mode. Use | |
9081 | convert_optab_handler instead of widening_optab_handler. | |
9082 | * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler | |
9083 | instead of widening_optab_handler. | |
9084 | * expr.c (expand_expr_real_2): Update calls to | |
9085 | find_widening_optab_handler. | |
9086 | * optabs.c (expand_widen_pattern_expr): Likewise. | |
9087 | (expand_binop_directly): Take the insn_code as a parameter. | |
9088 | (expand_binop): Only call find_widening_optab_handler for | |
9089 | conversion optabs; use optab_handler otherwise. Update calls | |
9090 | to find_widening_optab_handler and expand_binop_directly. | |
9091 | Use convert_optab_handler instead of widening_optab_handler. | |
9092 | * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to | |
9093 | find_widening_optab_handler and use scalar_mode rather than | |
9094 | machine_mode. | |
9095 | (convert_plusminus_to_widen): Likewise. | |
9096 | ||
9097 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9098 | Alan Hayward <alan.hayward@arm.com> | |
9099 | David Sherwood <david.sherwood@arm.com> | |
9100 | ||
9101 | * machmode.h (fixed_size_mode): New class. | |
9102 | * rtl.h (get_pool_mode): Return fixed_size_mode. | |
9103 | * gengtype.c (main): Add fixed_size_mode. | |
9104 | * target.def (get_raw_result_mode): Return a fixed_size_mode. | |
9105 | (get_raw_arg_mode): Likewise. | |
9106 | * doc/tm.texi: Regenerate. | |
9107 | * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode. | |
9108 | * targhooks.c (default_get_reg_raw_mode): Likewise. | |
9109 | * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise. | |
9110 | * config/mips/mips.c (mips_get_reg_raw_mode): Likewise. | |
9111 | * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise. | |
9112 | (msp430_get_raw_result_mode): Likewise. | |
9113 | * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode> | |
9114 | * dbxout.c (dbxout_parms): Require fixed-size modes. | |
9115 | * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise. | |
9116 | * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise. | |
9117 | * omp-low.c (lower_oacc_reductions): Likewise. | |
9118 | * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes. | |
9119 | (simplify_subreg): Update accordingly. | |
9120 | * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode. | |
9121 | (force_const_mem): Update accordingly. Return NULL_RTX for modes | |
9122 | that aren't fixed-size. | |
9123 | (get_pool_mode): Return a fixed_size_mode. | |
9124 | (output_constant_pool_2): Take a fixed_size_mode. | |
9125 | ||
9126 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9127 | Alan Hayward <alan.hayward@arm.com> | |
9128 | David Sherwood <david.sherwood@arm.com> | |
9129 | ||
9130 | * doc/rtl.texi (vec_series): Document. | |
9131 | (const): Say that the operand can be a vec_series. | |
9132 | * rtl.def (VEC_SERIES): New rtx code. | |
9133 | * rtl.h (const_vec_series_p_1): Declare. | |
9134 | (const_vec_series_p): New function. | |
9135 | * emit-rtl.h (gen_const_vec_series): Declare. | |
9136 | (gen_vec_series): Likewise. | |
9137 | * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series) | |
9138 | (gen_vec_series): Likewise. | |
9139 | * optabs.c (expand_mult_highpart): Use gen_const_vec_series. | |
9140 | * simplify-rtx.c (simplify_unary_operation): Handle negations | |
9141 | of vector series. | |
9142 | (simplify_binary_operation_series): New function. | |
9143 | (simplify_binary_operation_1): Use it. Handle VEC_SERIES. | |
9144 | (test_vector_ops_series): New function. | |
9145 | (test_vector_ops): Call it. | |
9146 | * config/powerpcspe/altivec.md (altivec_lvsl): Use | |
9147 | gen_const_vec_series. | |
9148 | (altivec_lvsr): Likewise. | |
9149 | * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise. | |
9150 | ||
9151 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9152 | Alan Hayward <alan.hayward@arm.com> | |
9153 | David Sherwood <david.sherwood@arm.com> | |
9154 | ||
9155 | * doc/rtl.texi (const): Update description of address constants. | |
9156 | Say that vector constants are allowed too. | |
9157 | * common.md (E, F): Use CONSTANT_P instead of checking for | |
9158 | CONST_VECTOR. | |
9159 | * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of | |
9160 | checking for CONST_VECTOR. | |
9161 | * expmed.c (make_tree): Use build_vector_from_val for a CONST | |
9162 | VEC_DUPLICATE. | |
9163 | * expr.c (expand_expr_real_2): Check for vector modes instead | |
9164 | of checking for CONST_VECTOR. | |
9165 | * rtl.h (const_vec_p): New function. | |
9166 | (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE. | |
9167 | (unwrap_const_vec_duplicate): Handle them here too. | |
9168 | ||
9169 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9170 | David Malcolm <dmalcolm@redhat.com> | |
9171 | Alan Hayward <alan.hayward@arm.com> | |
9172 | David Sherwood <david.sherwood@arm.com> | |
9173 | ||
9174 | * rtl.h (vec_duplicate_p): New function. | |
9175 | * selftest-rtl.c (assert_rtx_eq_at): New function. | |
9176 | * selftest-rtl.h (ASSERT_RTX_EQ): New macro. | |
9177 | (assert_rtx_eq_at): Declare. | |
9178 | * selftest.h (selftest::simplify_rtx_c_tests): Declare. | |
9179 | * selftest-run-tests.c (selftest::run_tests): Call it. | |
9180 | * simplify-rtx.c: Include selftest.h and selftest-rtl.h. | |
9181 | (simplify_unary_operation_1): Recursively handle vector duplicates. | |
9182 | (simplify_binary_operation_1): Likewise. Handle VEC_SELECTs of | |
9183 | vector duplicates. | |
9184 | (simplify_subreg): Handle subregs of vector duplicates. | |
9185 | (make_test_reg, test_vector_ops_duplicate, test_vector_ops) | |
9186 | (selftest::simplify_rtx_c_tests): New functions. | |
9187 | ||
9188 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9189 | Alan Hayward <alan.hayward@arm.com> | |
9190 | David Sherwood <david.sherwood@arm.com> | |
9191 | ||
9192 | * emit-rtl.h (gen_const_vec_duplicate): Declare. | |
9193 | (gen_vec_duplicate): Likewise. | |
9194 | * emit-rtl.c (gen_const_vec_duplicate_1): New function, split | |
9195 | out from... | |
9196 | (gen_const_vector): ...here. | |
9197 | (gen_const_vec_duplicate, gen_vec_duplicate): New functions. | |
9198 | (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants | |
9199 | whose elements are all equal. | |
9200 | * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate. | |
9201 | * simplify-rtx.c (simplify_const_unary_operation): Likewise. | |
9202 | (simplify_relational_operation): Likewise. | |
9203 | * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup): | |
9204 | Likewise. | |
9205 | (aarch64_simd_dup_constant): Use gen_vec_duplicate. | |
9206 | (aarch64_expand_vector_init): Likewise. | |
9207 | * config/arm/arm.c (neon_vdup_constant): Likewise. | |
9208 | (neon_expand_vector_init): Likewise. | |
9209 | (arm_expand_vec_perm): Use gen_const_vec_duplicate. | |
9210 | (arm_block_set_unaligned_vect): Likewise. | |
9211 | (arm_block_set_aligned_vect): Likewise. | |
9212 | * config/arm/neon.md (neon_copysignf<mode>): Likewise. | |
9213 | * config/i386/i386.c (ix86_expand_vec_perm): Likewise. | |
9214 | (expand_vec_perm_even_odd_pack): Likewise. | |
9215 | (ix86_vector_duplicate_value): Use gen_vec_duplicate. | |
9216 | * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX. | |
9217 | * config/ia64/ia64.c (ia64_expand_vecint_compare): Use | |
9218 | gen_const_vec_duplicate. | |
9219 | * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX. | |
9220 | * config/mips/mips.c (mips_gen_const_int_vector): Use | |
9221 | gen_const_vec_duplicate. | |
9222 | (mips_expand_vector_init): Use CONST0_RTX. | |
9223 | * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise. | |
9224 | (define_split): Use gen_const_vec_duplicate. | |
9225 | * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX. | |
9226 | (define_split): Use gen_const_vec_duplicate. | |
9227 | * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise. | |
9228 | (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise. | |
9229 | * config/spu/spu.c (spu_const): Likewise. | |
9230 | ||
9231 | 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org> | |
9232 | Alan Hayward <alan.hayward@arm.com> | |
9233 | David Sherwood <david.sherwood@arm.com> | |
9234 | ||
9235 | * combine.c (can_change_dest_mode): Reject changes in | |
9236 | REGMODE_NATURAL_SIZE. | |
9237 | ||
9238 | 2017-10-31 Sandra Loosemore <sandra@codesourcery.com> | |
9239 | ||
9240 | * configure.ac (--enable-libssp): New. | |
9241 | (gcc_cv_libc_provides_ssp): Check for explicit setting before | |
9242 | trying to determine target-specific default. Adjust indentation. | |
9243 | * configure: Regenerated. | |
9244 | * doc/install.texi (Configuration): Expand --disable-libssp | |
9245 | documentation. | |
9246 | ||
9247 | 2017-10-31 Daniel Santos <daniel.santos@pobox.com> | |
9248 | ||
9249 | config/i386/i386.c (ix86_expand_epilogue): Correct stack | |
9250 | calculation. | |
9251 | ||
9252 | 2017-10-31 Martin Jambor <mjambor@suse.cz> | |
9253 | ||
9254 | PR c++/81702 | |
9255 | * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert. | |
9256 | ||
9257 | 2017-10-31 David Malcolm <dmalcolm@redhat.com> | |
9258 | ||
9259 | * auto-profile.c (autofdo_source_profile::read): Use | |
9260 | UNKNOWN_LOCATION rather than 0. | |
9261 | * diagnostic-core.h (warning_at_rich_loc): Rename to... | |
9262 | (warning_at): ...this overload. | |
9263 | (warning_at_rich_loc_n): Rename to... | |
9264 | (warning_n): ...this overload. | |
9265 | (error_at_rich_loc): Rename to... | |
9266 | (error_at): ...this overload. | |
9267 | (pedwarn_at_rich_loc): Rename to... | |
9268 | (pedwarn): ...this overload. | |
9269 | (permerror_at_rich_loc): Rename to... | |
9270 | (permerror): ...this overload. | |
9271 | (inform_at_rich_loc): Rename to... | |
9272 | (inform): ...this overload. | |
9273 | * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl. | |
9274 | (diagnostic_n_impl_richloc): Rename to... | |
9275 | (diagnostic_n_impl): ...this rich_location *-based decl. | |
9276 | (inform_at_rich_loc): Rename to... | |
9277 | (inform): ...this, and add an assertion. | |
9278 | (inform_n): Update for removal of location_t-based diagnostic_n_impl. | |
9279 | (warning_at_rich_loc): Rename to... | |
9280 | (warning_at): ...this, and add an assertion. | |
9281 | (warning_at_rich_loc_n): Rename to... | |
9282 | (warning_n): ...this, and add an assertion. | |
9283 | (warning_n): Update location_t-based implementation for removal of | |
9284 | location_t-based diagnostic_n_impl. | |
9285 | (pedwarn_at_rich_loc): Rename to... | |
9286 | (pedwarn): ...this, and add an assertion. | |
9287 | (permerror_at_rich_loc): Rename to... | |
9288 | (permerror): ...this, and add an assertion. | |
9289 | (error_n): Update for removal of location_t-based diagnostic_n_impl. | |
9290 | (error_at_rich_loc): Rename to... | |
9291 | (error_at): ...this, and add an assertion. | |
9292 | * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0. | |
9293 | (driver::do_spec_on_infiles): Likewise. | |
9294 | * substring-locations.c (format_warning_va): Update for renaming | |
9295 | of inform_at_rich_loc. | |
9296 | ||
9297 | 2017-10-31 Michael Meissner <meissner@linux.vnet.ibm.com> | |
9298 | ||
9299 | * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and | |
9300 | _Float<N>X built-in functions so that the variant without the | |
9301 | "__builtin_" prefix is only enabled for the GNU C and Objective C | |
9302 | languages when they are in non-strict ANSI/ISO mode. | |
9303 | (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise. | |
9304 | * target.def (floatn_builtin_p): Add a target hook to control | |
9305 | whether _Float<N> and _Float<N>X built-in functions without the | |
9306 | "__builtin_" prefix are enabled, and return true for C and | |
9307 | Objective C in the default hook. Include langhooks.h in | |
9308 | targhooks.c. | |
9309 | * targhooks.h (default_floatn_builtin_p): Likewise. | |
9310 | * targhooks.c (default_floatn_builtin_p): Likewise. | |
9311 | * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the | |
9312 | floatn_builtin_p target hook. | |
9313 | * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise. | |
9314 | ||
9315 | 2017-10-31 Matthew Fortune <matthew.fortune@imgtec.com> | |
9316 | Eric Botcazou <ebotcazou@adacore.com> | |
9317 | ||
9318 | PR rtl-optimization/81803 | |
9319 | * lra-constraints.c (curr_insn_transform): Also reload the whole | |
9320 | register for a strict subreg no wider than a word if this is for | |
9321 | a WORD_REGISTER_OPERATIONS target. | |
9322 | ||
9323 | 2017-10-31 Jason Merrill <jason@redhat.com> | |
9324 | ||
9325 | * gdbinit.in: Skip over inlines from timevar.h. | |
9326 | ||
9327 | 2017-10-31 Martin Liska <mliska@suse.cz> | |
9328 | ||
9329 | * doc/gcov.texi: Document new option. | |
9330 | * gcov.c (print_usage): Likewise print it. | |
9331 | (process_args): Support the argument. | |
9332 | (format_count): New function. | |
9333 | (format_gcov): Use the function. | |
9334 | ||
9335 | 2017-10-31 Martin Liska <mliska@suse.cz> | |
9336 | ||
9337 | * gcov.c (struct name_map): do not use typedef. | |
9338 | Define operator== and operator<. | |
9339 | (name_search): Remove. | |
9340 | (name_sort): Remove. | |
9341 | (main): Do not allocate names. | |
9342 | (process_file): Add vertical space. | |
9343 | (generate_results): Use std::find. | |
9344 | (release_structures): Do not release memory. | |
9345 | (find_source): Use std::find. | |
9346 | ||
9347 | 2017-10-31 Martin Liska <mliska@suse.cz> | |
9348 | ||
9349 | * gcov.c (struct line_info): Remove it's typedef. | |
9350 | (line_info::line_info): Add proper ctor. | |
9351 | (line_info::has_block): Do not use a typedef. | |
9352 | (struct source_info): Do not use typedef. | |
9353 | (circuit): Likewise. | |
9354 | (get_cycles_count): Likewise. | |
9355 | (output_intermediate_file): Iterate via vector iterator. | |
9356 | (add_line_counts): Use std::vector methods. | |
9357 | (accumulate_line_counts): Likewise. | |
9358 | (output_lines): Likewise. | |
9359 | ||
9360 | 2017-10-31 Martin Liska <mliska@suse.cz> | |
9361 | ||
9362 | * gcov.c (struct source_info): Remove typedef. | |
9363 | (source_info::source_info): Add proper ctor. | |
9364 | (accumulate_line_counts): Use struct, not it's typedef. | |
9365 | (output_gcov_file): Likewise. | |
9366 | (output_lines): Likewise. | |
9367 | (main): Do not allocate an array. | |
9368 | (output_intermediate_file): Use size of vector container. | |
9369 | (process_file): Resize the vector. | |
9370 | (generate_results): Do not preallocate, use newly added vector | |
9371 | lines. | |
9372 | (release_structures): Do not release sources. | |
9373 | (find_source): Use vector methods. | |
9374 | (add_line_counts): Do not use typedef. | |
9375 | ||
9376 | 2017-10-31 Martin Liska <mliska@suse.cz> | |
9377 | ||
9378 | * doc/gcov.texi: Document that. | |
9379 | * gcov.c (add_line_counts): Mark lines with a non-executed | |
9380 | statement. | |
9381 | (output_line_beginning): Handle such lines. | |
9382 | (output_lines): Pass new argument. | |
9383 | (output_intermediate_file): Print it in intermediate format. | |
9384 | ||
9385 | 2017-10-31 Martin Liska <mliska@suse.cz> | |
9386 | ||
9387 | * color-macros.h: New file. | |
9388 | * diagnostic-color.c: Factor out color related to macros to | |
9389 | color-macros.h. | |
9390 | * doc/gcov.texi: Document -k option. | |
9391 | * gcov.c (INCLUDE_STRING): Include string.h. | |
9392 | (print_usage): Add -k option. | |
9393 | (process_args): Parse it. | |
9394 | (pad_count_string): New function. | |
9395 | (output_line_beginning): Likewise. | |
9396 | (DEFAULT_LINE_START): New macro. | |
9397 | (output_lines): Support color output. | |
9398 | ||
9399 | 2017-10-31 Martin Liska <mliska@suse.cz> | |
9400 | ||
9401 | PR gcov-profile/82633 | |
9402 | * doc/gcov.texi: Document -fkeep-{static,inline}-functions and | |
9403 | their interaction with GCOV infrastructure. | |
9404 | * configure.ac: Add -fkeep-{inline,static}-functions to | |
9405 | coverage_flags. | |
9406 | * configure: Regenerate. | |
9407 | ||
9408 | 2017-10-31 Uros Bizjak <ubizjak@gmail.com> | |
9409 | ||
9410 | PR target/82772 | |
9411 | * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM". | |
9412 | ||
9413 | 2017-10-31 Segher Boessenkool <segher@kernel.crashing.org> | |
9414 | ||
9415 | PR target/82674 | |
9416 | * config/rs6000/rs6000.md (allocate_stack): Force update interval | |
9417 | into a register if it does not fit into an immediate offset field. | |
9418 | ||
9419 | 2017-10-31 Olivier Hainque <hainque@adacore.com> | |
9420 | ||
9421 | * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well. | |
9422 | ||
9423 | 2017-10-31 Julia Koval <julia.koval@intel.com> | |
9424 | ||
9425 | * config.gcc: Add gfniintrin.h. | |
9426 | * config/i386/gfniintrin.h: New. | |
9427 | * config/i386/i386-builtin-types.def | |
9428 | (__builtin_ia32_vgf2p8affineinvqb_v64qi, | |
9429 | __builtin_ia32_vgf2p8affineinvqb_v64qi_mask, | |
9430 | __builtin_ia32_vgf2p8affineinvqb_v32qi, | |
9431 | __builtin_ia32_vgf2p8affineinvqb_v32qi_mask, | |
9432 | __builtin_ia32_vgf2p8affineinvqb_v16qi, | |
9433 | __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins. | |
9434 | * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI, | |
9435 | V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI, | |
9436 | V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI, | |
9437 | V64QI_FTYPE_V64QI_V64QI_INT): New types. | |
9438 | * config/i386/i386.c (ix86_expand_args_builtin): Handle new types. | |
9439 | * config/i386/immintrin.h: Include gfniintrin.h. | |
9440 | * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern. | |
9441 | ||
9442 | 2017-10-30 Eric Botcazou <ebotcazou@adacore.com> | |
9443 | ||
9444 | * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge. | |
9445 | ||
9446 | 2017-10-30 Wilco Dijkstra <wdijkstr@arm.com> | |
9447 | ||
9448 | * config/arm/arm.md (ashldi3): Remove shift by 1 expansion. | |
9449 | (arm_ashldi3_1bit): Remove pattern. | |
9450 | (ashrdi3): Remove shift by 1 expansion. | |
9451 | (arm_ashrdi3_1bit): Remove pattern. | |
9452 | (lshrdi3): Remove shift by 1 expansion. | |
9453 | (arm_lshrdi3_1bit): Remove pattern. | |
9454 | * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase | |
9455 | cost of ashldi3 by 1. | |
9456 | * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion. | |
9457 | (<shift>di3_neon): Likewise. | |
9458 | ||
9459 | 2017-10-30 Dominik Infuehr <dominik.infuehr@theobroma-systems.com> | |
9460 | ||
9461 | * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename | |
9462 | both identically named patterns to (*aarch64_simd_mov<VD:mode>) | |
9463 | and (*aarch64_simd_mov<VQ:mode>). | |
9464 | (*aarch64_simd_mov<VD:mode>): Change type attribute to match | |
9465 | pattern alternative. | |
9466 | (*aarch64_simd_mov<VQ:mode>): Re-order and change type | |
9467 | attributes to match pattern alternative. | |
9468 | ||
9469 | 2017-10-30 Steven Munroe <munroesj@gcc.gnu.org> | |
9470 | ||
9471 | * config.gcc (powerpc*-*-*): Add emmintrin.h. | |
9472 | * config/rs6000/emmintrin.h: New file. | |
9473 | * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h. | |
9474 | ||
9475 | 2017-10-30 Wilco Dijkstra <wdijkstr@arm.com> | |
9476 | ||
9477 | * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8. | |
9478 | * (movdi_vfp_cortexa8): Remove pattern. | |
9479 | ||
9480 | 2017-10-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
9481 | ||
9482 | * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1 | |
9483 | etc. reference. | |
9484 | (Specific, alpha*-dec-osf5.1): Remove. | |
9485 | (Specific, mips-sgi-irix5): Remove. | |
9486 | (Specific, mips-sgi-irix6): Remove. | |
9487 | ||
9488 | 2017-10-30 Jakub Jelinek <jakub@redhat.com> | |
9489 | ||
9490 | PR middle-end/22141 | |
9491 | * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix | |
9492 | arguments to clear_bit_region_be. | |
9493 | ||
9494 | 2017-10-30 Jim Wilson <wilson@tuliptree.org> | |
9495 | ||
9496 | * gimplify.c: Include memmodel.h. | |
9497 | ||
9498 | 2017-10-30 Martin Jambor <mjambor@suse.cz> | |
9499 | ||
9500 | * omp-grid.c (grid_attempt_target_gridification): Also insert a | |
9501 | condition whether loop should be executed at all. | |
9502 | ||
9503 | 2017-10-30 Will Schmidt <will_schmidt@vnet.ibm.com> | |
9504 | ||
9505 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for | |
9506 | gimple folding of vec_madd() intrinsics. | |
9507 | * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to | |
9508 | fmav8hi4. (altivec_vmladduhm): Rename to fmav8hi4. | |
9509 | * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4 | |
9510 | ||
9511 | 2017-10-30 Richard Biener <rguenther@suse.de> | |
9512 | ||
9513 | PR tree-optimization/82762 | |
9514 | Revert | |
9515 | 2017-10-23 Richard Biener <rguenther@suse.de> | |
9516 | ||
9517 | PR tree-optimization/82129 | |
9518 | Revert | |
9519 | 2017-08-01 Richard Biener <rguenther@suse.de> | |
9520 | ||
9521 | PR tree-optimization/81181 | |
9522 | * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... | |
9523 | (compute_antic): ... end of iteration here. | |
9524 | ||
9525 | 2017-10-30 Joseph Myers <joseph@codesourcery.com> | |
9526 | ||
9527 | * doc/invoke.texi (C Dialect Options): Document -std=c17, | |
9528 | -std=iso9899:2017 and -std=gnu17. | |
9529 | * doc/standards.texi (C Language): Document C17 support. | |
9530 | * doc/cpp.texi (Overview): Mention -std=c17. | |
9531 | (Standard Predefined Macros): Document C11 and C17 values of | |
9532 | __STDC_VERSION__. Do not refer to C99 support as incomplete. | |
9533 | * doc/extend.texi (Inline): Do not list individual options for | |
9534 | standards newer than C99. | |
9535 | * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle | |
9536 | "GNU C17". | |
9537 | * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17" | |
9538 | language name. | |
9539 | ||
9540 | 2017-10-30 Maxim Ostapenko <m.ostapenko@samsung.com> | |
9541 | ||
9542 | * asan.c (asan_finish_file): Align asan globals array by shadow | |
9543 | granularity. | |
9544 | ||
9545 | 2017-10-30 Jakub Jelinek <jakub@redhat.com> | |
9546 | ||
9547 | PR middle-end/22141 | |
9548 | * gimple-ssa-store-merging.c: Include rtl.h and expr.h. | |
9549 | (struct store_immediate_info): Add bitregion_start and bitregion_end | |
9550 | fields. | |
9551 | (store_immediate_info::store_immediate_info): Add brs and bre | |
9552 | arguments and initialize bitregion_{start,end} from those. | |
9553 | (struct merged_store_group): Add bitregion_start, bitregion_end, | |
9554 | align_base and mask fields. Drop unnecessary struct keyword from | |
9555 | struct store_immediate_info. Add do_merge method. | |
9556 | (clear_bit_region_be): Use memset instead of loop storing zeros. | |
9557 | (merged_store_group::do_merge): New method. | |
9558 | (merged_store_group::merge_into): Use do_merge. Allow gaps in between | |
9559 | stores as long as the surrounding bitregions have no gaps. | |
9560 | (merged_store_group::merge_overlapping): Use do_merge. | |
9561 | (merged_store_group::apply_stores): Test that bitregion_{start,end} | |
9562 | is byte aligned, rather than requiring that start and width are | |
9563 | byte aligned. Drop unnecessary struct keyword from | |
9564 | struct store_immediate_info. Allocate and populate also mask array. | |
9565 | Make start of the arrays relative to bitregion_start rather than | |
9566 | start and size them according to bitregion_{end,start} difference. | |
9567 | (struct imm_store_chain_info): Drop unnecessary struct keyword from | |
9568 | struct store_immediate_info. | |
9569 | (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8. | |
9570 | (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary | |
9571 | struct keyword from struct store_immediate_info. | |
9572 | (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in | |
9573 | between stores as long as the surrounding bitregions have no gaps. | |
9574 | Formatting fixes. | |
9575 | (struct split_store): Add orig non-static data member. | |
9576 | (split_store::split_store): Initialize orig to false. | |
9577 | (find_constituent_stmts): Return store_immediate_info *, non-NULL | |
9578 | if there is exactly a single original stmt. Change stmts argument | |
9579 | to pointer from reference, if NULL, don't push anything to it. Add | |
9580 | first argument, use it to optimize skipping over orig stmts that | |
9581 | are known to be before bitpos already. Simplify. | |
9582 | (split_group): Return unsigned int count how many stores are or | |
9583 | would be needed rather than a bool. Add allow_unaligned argument. | |
9584 | Change split_stores argument from reference to pointer, if NULL, | |
9585 | only do a dry run computing how many stores would be produced. | |
9586 | Rewritten algorithm to use both alignment and misalign if | |
9587 | !allow_unaligned and handle bitfield stores with gaps. | |
9588 | (imm_store_chain_info::output_merged_store): Set start_byte_pos | |
9589 | from bitregion_start instead of start. Compute allow_unaligned | |
9590 | here, if true, do 2 split_group dry runs to compute which one | |
9591 | produces fewer stores and prefer aligned if equal. Punt if | |
9592 | new count is bigger or equal than original before emitting any | |
9593 | statements, rather than during that. Remove no longer needed | |
9594 | new_ssa_names tracking. Replace num_stmts with | |
9595 | split_stores.length (). Use 32-bit stack allocated entries | |
9596 | in split_stores auto_vec. Try to reuse original store lhs/rhs1 | |
9597 | if possible. Handle bitfields with gaps. | |
9598 | (pass_store_merging::execute): Ignore bitsize == 0 stores. | |
9599 | Compute bitregion_{start,end} for the stores and construct | |
9600 | store_immediate_info with that. Formatting fixes. | |
9601 | ||
9602 | 2017-10-30 Uros Bizjak <ubizjak@gmail.com> | |
9603 | ||
9604 | PR target/82725 | |
9605 | * config/i386/i386.c (legitimate_pic_address_disp_p): Allow | |
9606 | UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset. | |
9607 | ||
9608 | 2017-10-29 Jim Wilson <wilson@tuliptree.org> | |
9609 | ||
9610 | * gimplify.c: Include tm_p.h. | |
9611 | ||
9612 | * common.opt (gcoff): Re-add as ignored option. | |
9613 | (gcoff1, gcoff2, gcoff3): Likewise. | |
9614 | ||
9615 | * Makefile.in (OBJS): Delete sdbout.o. | |
9616 | (GTFILES): Delete $(srcdir)/sdbout.c. | |
9617 | * debug.h: Delete sdb_debug_hooks. | |
9618 | * final.c: Delete sdbout.h include. | |
9619 | (final_scan_insn): Delete SDB_DEBUG check. | |
9620 | (rest_of_clean_state): Likewise. | |
9621 | * output.h: Delete sdb_begin_function_line. | |
9622 | * sdbout.c: Delete. | |
9623 | * sdbout.h: Delete. | |
9624 | * toplev.c: Delete sdbout.h include. | |
9625 | (process_options): Delete SDB_DEBUG check. | |
9626 | * tree-core.h (tree_type_common): Delete pointer field of | |
9627 | tree_type_symtab. | |
9628 | * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of | |
9629 | TYPE_SYMTAB_POINTER. | |
9630 | * tree.h (TYPE_SYMTAB_POINTER): Delete. | |
9631 | (TYPE_SYMTAB_IS_POINTER): Delete. | |
9632 | (TYPE_SYMTAB_IS_DIE): Renumber. | |
9633 | * xcoffout.c: Refer to former sdbout.c file. | |
9634 | (xcoffout_begin_prologue): Use past tense for sdbout.c reference. | |
9635 | ||
9636 | * doc/install.texi (--with-stabs): Delete COFF and ECOFF info. | |
9637 | * doc/invoke.texi (SEEALSO): Delete adb and sdb references. | |
9638 | (Debugging Options): Delete -gcoff. | |
9639 | (-gstabs): Delete SDB reference. | |
9640 | (-gcoff): Delete. | |
9641 | (-gcoff@var{level}): Delete. | |
9642 | * doc/passes.texi (Debugging information output): Delete SDB and | |
9643 | sdbout.c references. | |
9644 | * doc/tm.texi: Regenerate. | |
9645 | * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref. | |
9646 | (SDB and DWARF): Change node name to DWARF and delete SDB and COFF | |
9647 | references. | |
9648 | (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references. | |
9649 | (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references. | |
9650 | (SDB_DEBUGGING_INFO): Delete. | |
9651 | (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES) | |
9652 | SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete. | |
9653 | * target.def (output_source_filename): Delete COFF reference. | |
9654 | ||
9655 | * common.opt (gcoff): Delete. | |
9656 | (gxcoff+): Update Negative chain. | |
9657 | * defaults.h: Delete all references to SDB_DEBUGGING_INFO and | |
9658 | SDB_DEBUG. | |
9659 | * dwarf2out.c (gen_array_type_die): Change SDB to debuggers. | |
9660 | * flag-types.h (enum debug_info_type): Delete SDB_DEBUG. | |
9661 | * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG, | |
9662 | and SDB references. | |
9663 | (expand_function_start): Change sdb reference to past tense. | |
9664 | (expand_function_end): Change sdb reference to past tense. | |
9665 | * gcc.c (cpp_unique_options): Delete gcoff3 reference. | |
9666 | * opts.c (debug_type_names): Delete coff entry. | |
9667 | (common_handle_option): Delete OPT_gcoff case. | |
9668 | * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison. | |
9669 | ||
9670 | * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG. | |
9671 | * config/cris/cris.h: Delete SDB reference in comment. | |
9672 | * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO. | |
9673 | (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment. | |
9674 | * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO. | |
9675 | * config/i386/i386.c (svr4_dbx_register_map): Change SDB references | |
9676 | to past tense. | |
9677 | (ix86_expand_prologue): Likewise. | |
9678 | * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG. | |
9679 | * config/ia64/ia64.h: Likewise. | |
9680 | * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference. | |
9681 | * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff* | |
9682 | support. | |
9683 | * config/mmix/mmix.h: Likewise. | |
9684 | * config/nds32/nds32.c: Likewise. | |
9685 | * config/stormy/storym16.h: Likewise. | |
9686 | * config/visium/visium.h: Likewise. | |
9687 | * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef. | |
9688 | ||
9689 | 2017-10-28 Sandra Loosemore <sandra@codesourcery.com> | |
9690 | ||
9691 | * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1. | |
9692 | * config/nios2/nios2.c (nios2_initial_elimination_offset): Make | |
9693 | FRAME_POINTER_REGNUM point at high end of local var area. | |
9694 | ||
9695 | 2017-10-27 Eric Botcazou <ebotcazou@adacore.com> | |
9696 | ||
9697 | * bb-reorder.c (find_traces_1_round): Fix off-by-one index. | |
9698 | Move comment around. Do not reset best_edge for a copiable | |
9699 | destination if the copy would cause a partition change. | |
9700 | (better_edge_p): Remove redundant check. | |
9701 | ||
9702 | 2017-10-27 Uros Bizjak <ubizjak@gmail.com> | |
9703 | ||
9704 | * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype. | |
9705 | ||
9706 | 2017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com> | |
9707 | ||
9708 | * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases | |
9709 | for math functions that have _Float<N> and _Float<N>X variants. | |
9710 | (mathfn_built_in_2): Add support for math functions that have | |
9711 | _Float<N> and _Float<N>X variants. | |
9712 | (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro. | |
9713 | (expand_builtin_mathfn_ternary): Add support for fma with | |
9714 | _Float<N> and _Float<N>X variants. | |
9715 | (expand_builtin): Likewise. | |
9716 | (fold_builtin_3): Likewise. | |
9717 | * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to | |
9718 | create math function _Float<N> and _Float<N>X variants as external | |
9719 | library builtins. | |
9720 | (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use | |
9721 | DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using | |
9722 | the __builtin_ prefix and if not strict ansi, without the prefix. | |
9723 | (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise. | |
9724 | (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise. | |
9725 | (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise. | |
9726 | (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise. | |
9727 | (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise. | |
9728 | (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise. | |
9729 | * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New | |
9730 | function signatures for fma _Float<N> and _Float<N>X variants. | |
9731 | (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise. | |
9732 | (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise. | |
9733 | (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise. | |
9734 | (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise. | |
9735 | (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise. | |
9736 | (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise. | |
9737 | * gencfn-macros.c (print_case_cfn): Add support for math functions | |
9738 | that have _Float<N> and _Float<N>X variants. | |
9739 | (print_define_operator_list): Likewise. | |
9740 | (fltfn_suffixes): Likewise. | |
9741 | (main): Likewise. | |
9742 | * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro | |
9743 | for math functions that have _Float<N> and _Float<N>X variants. | |
9744 | (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N> | |
9745 | and _Float<N>X variants. | |
9746 | (COPYSIGN): Likewise. | |
9747 | (FMIN): Likewise. | |
9748 | (FMAX): Likewise. | |
9749 | * fold-const.c (tree_call_nonnegative_warnv_p): Add support for | |
9750 | copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X | |
9751 | variants. | |
9752 | (integer_valued_read_call_p): Likewise. | |
9753 | * fold-const-call.c (fold_const_call_ss): Likewise. | |
9754 | (fold_const_call_sss): Add support for copysign, fmin, and fmax | |
9755 | _Float<N> and _Float<N>X variants. | |
9756 | (fold_const_call_ssss): Add support for fma _Float<N> and | |
9757 | _Float<N>X variants. | |
9758 | * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add | |
9759 | support for copysign and fma _Float<N> and _Float<N>X variants. | |
9760 | (backprop::process_builtin_call_use): Likewise. | |
9761 | * tree-call-cdce.c (can_test_argument_range); Add support for | |
9762 | sqrt _Float<N> and _Float<N>X variants. | |
9763 | (edom_only_function): Likewise. | |
9764 | (get_no_error_domain): Likewise. | |
9765 | * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise. | |
9766 | * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for | |
9767 | copysign _Float<N> and _Float<N>X variants. | |
9768 | * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now | |
9769 | handled by machine independent code. | |
9770 | (FMAF128): Likewise. | |
9771 | * doc/cpp.texi (Common Predefined Macros): Document defining | |
9772 | __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports | |
9773 | fma _Float<N> and _Float<N>X variants. | |
9774 | ||
9775 | 2017-10-27 Uros Bizjak <ubizjak@gmail.com> | |
9776 | ||
9777 | PR target/82692 | |
9778 | * config/i386/i386-modes.def (CCFPU): Remove definition. | |
9779 | * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling. | |
9780 | (ix86_cc_modes_compatible): Ditto. | |
9781 | (ix86_expand_carry_flag_compare): Ditto. | |
9782 | (ix86_expand_int_movcc): Ditto. | |
9783 | (ix86_expand_int_addcc): Ditto. | |
9784 | (ix86_reverse_condition): Ditto. | |
9785 | (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode. | |
9786 | Return true/false for unordered/ordered fp comparisons. | |
9787 | (ix86_cc_mode): Always return CCFPmode for float mode comparisons. | |
9788 | (ix86_prepare_fp_compare_args): Update for rename. | |
9789 | (ix86_expand_fp_compare): Update for rename. Generate unordered | |
9790 | compare RTXes wrapped with UNSPEC_NOTRAP unspec. | |
9791 | (ix86_expand_sse_compare_and_jump): Ditto. | |
9792 | * config/i386/predicates.md (fcmov_comparison_operator): | |
9793 | Remove CCFPU mode handling. | |
9794 | (ix86_comparison_operator): Ditto. | |
9795 | (ix86_carry_flag_operator): Ditto. | |
9796 | * config/i386/i386.md (UNSPEC_NOTRAP): New unspec. | |
9797 | (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec. | |
9798 | (*cmpu<mode>_cc_i387): Ditto. | |
9799 | (FPCMP): Remove mode iterator. | |
9800 | (unord): Remove mode attribute. | |
9801 | (unord_subst): New define_subst transformation | |
9802 | (unord): New define_subst attribute. | |
9803 | (unordered): Ditto. | |
9804 | (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation. | |
9805 | (*cmpi<unord>xf_i387): Ditto. | |
9806 | * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge | |
9807 | from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name> | |
9808 | using unord_subst transformation. | |
9809 | * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes. | |
9810 | (round_saeonly): Also handle CCFP mode. | |
9811 | * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec. | |
9812 | Remove UNSPEC_SAHF unspec handling. | |
9813 | ||
9814 | 2017-10-27 Jan Hubicka <hubicka@ucw.cz> | |
9815 | ||
9816 | * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen. | |
9817 | ||
9818 | 2017-10-27 Jeff Law <law@redhat.com> | |
9819 | ||
9820 | * gimple-ssa-sprintf.c: Include domwalk.h. | |
9821 | (class sprintf_dom_walker): New class, derived from dom_walker. | |
9822 | (sprintf_dom_walker::before_dom_children): New function. | |
9823 | (struct call_info): Moved into sprintf_dom_walker class | |
9824 | (compute_formath_length, handle_gimple_call): Likewise. | |
9825 | (sprintf_length::execute): Call the dominator walker rather | |
9826 | than walking the statements. | |
9827 | ||
9828 | * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle | |
9829 | gimple statement locations. | |
9830 | (check_array_bounds): Corresponding changes. Get the statement's | |
9831 | location directly from wi->stmt. | |
9832 | ||
9833 | 2017-10-27 Palmer Dabbelt <palmer@dabbelt.com> | |
9834 | ||
9835 | PR target/82717 | |
9836 | * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve. | |
9837 | ||
9838 | 2017-10-27 Jan Hubicka <hubicka@ucw.cz> | |
9839 | ||
9840 | * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY, | |
9841 | X86_TUNE_MOVX): Disable for Haswell and newer CPUs. | |
9842 | ||
9843 | 2017-10-27 Jakub Jelinek <jakub@redhat.com> | |
9844 | ||
9845 | PR target/82703 | |
9846 | * config/i386/i386-protos.h (maybe_get_pool_constant): Removed. | |
9847 | * config/i386/i386.c (maybe_get_pool_constant): Removed. | |
9848 | (ix86_split_to_parts): Use avoid_constant_pool_reference instead of | |
9849 | maybe_get_pool_constant. | |
9850 | * config/i386/predicates.md (zero_extended_scalar_load_operand): | |
9851 | Likewise. | |
9852 | ||
9853 | 2017-10-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
9854 | ||
9855 | * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas | |
9856 | 2.26 caveat. Update gas and gld versions. | |
9857 | (Specific, *-*-solaris2*): Update binutils version. Remove caveat | |
9858 | reference. | |
9859 | ||
9860 | 2017-10-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
9861 | ||
9862 | * cgraph.h (set_malloc_flag): Declare. | |
9863 | * cgraph.c (set_malloc_flag_1): New function. | |
9864 | (set_malloc_flag): Likewise. | |
9865 | * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee. | |
9866 | * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to | |
9867 | false. | |
9868 | (read_ipa_call_summary): Add support for reading is_return_callee. | |
9869 | (write_ipa_call_summary): Stream is_return_callee. | |
9870 | * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary. | |
9871 | * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h, | |
9872 | ipa-prop.h, ipa-fnsummary.h. | |
9873 | (pure_const_names): Change to static. | |
9874 | (malloc_state_e): Define. | |
9875 | (malloc_state_names): Define. | |
9876 | (funct_state_d): Add field malloc_state. | |
9877 | (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM. | |
9878 | (check_retval_uses): New function. | |
9879 | (malloc_candidate_p): Likewise. | |
9880 | (analyze_function): Add support for malloc attribute. | |
9881 | (pure_const_write_summary): Stream malloc_state. | |
9882 | (pure_const_read_summary): Add support for reading malloc_state. | |
9883 | (dump_malloc_lattice): New function. | |
9884 | (propagate_malloc): New function. | |
9885 | (warn_function_malloc): New function. | |
9886 | (ipa_pure_const::execute): Call propagate_malloc and | |
9887 | ipa_free_fn_summary. | |
9888 | (pass_local_pure_const::execute): Add support for malloc attribute. | |
9889 | * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro. | |
9890 | * doc/invoke.texi: Document Wsuggest-attribute=malloc. | |
9891 | ||
9892 | 2017-10-27 Martin Liska <mliska@suse.cz> | |
9893 | ||
9894 | PR gcov-profile/82457 | |
9895 | * doc/invoke.texi: Document that one needs a non-strict ISO mode | |
9896 | for fork-like functions to be properly instrumented. | |
9897 | ||
9898 | 2017-10-27 Richard Biener <rguenther@suse.de> | |
9899 | ||
9900 | PR middle-end/81659 | |
9901 | * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator | |
9902 | info when we redirected EH. | |
9903 | ||
9904 | 2017-10-26 Michael Collison <michael.collison@arm.com> | |
9905 | ||
9906 | * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2): | |
9907 | New pattern. | |
9908 | (<optab>_trunchf<GPI:mode>2: New pattern. | |
9909 | (<optab>_trunc<vgp><GPI:mode>2: New pattern. | |
9910 | * config/aarch64/iterators.md (wv): New mode attribute. | |
9911 | (vf, VF): New mode attributes. | |
9912 | (vgp, VGP): New mode attributes. | |
9913 | (s): Update attribute with SImode and DImode prefixes. | |
9914 | ||
9915 | 2017-10-26 Sandra Loosemore <sandra@codesourcery.com> | |
9916 | ||
9917 | * config/nios2/constraints.md ("S"): Match r0rel_constant_p too. | |
9918 | * config/nios2/nios2-protos.h (r0rel_constant_p): Declare. | |
9919 | * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New. | |
9920 | (nios2_option_overide): Initialize it. Don't allow R0-relative | |
9921 | addressing with PIC. | |
9922 | (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p. | |
9923 | (nios2_symbolic_constant_p): Likewise. | |
9924 | (nios2_legitimate_address_p): Likewise. | |
9925 | (nios2_r0rel_section_name_p): New. | |
9926 | (nios2_symbol_ref_in_r0rel_data_p): New. | |
9927 | (nios2_emit_move_sequence): Handle r0rel_constant_p. | |
9928 | (r0rel_constant_p): New. | |
9929 | (nios2_print_operand_address): Handle r0rel_constant_p. | |
9930 | (nios2_cdx_narrow_form_p): Likewise. | |
9931 | * config/nios2/nios2.opt (mr0rel-sec=): New option. | |
9932 | * doc/invoke.texi (Option Summary): Add -mr0rel-sec. | |
9933 | (Nios II Options): Document -mr0rel-sec. | |
9934 | ||
9935 | 2017-10-26 Sandra Loosemore <sandra@codesourcery.com> | |
9936 | ||
9937 | * config/nios2/nios2.c: Include xregex.h. | |
9938 | (nios2_gprel_sec_regex): New. | |
9939 | (nios2_option_overide): Initialize it. Don't allow GP-relative | |
9940 | addressing with PIC. | |
9941 | (nios2_small_section_name_p): Check for regex match. | |
9942 | * config/nios2/nios2.opt (mgprel-sec=): New option. | |
9943 | * doc/invoke.texi (Option Summary): Add -mgprel-sec. | |
9944 | (Nios II Options): Document -mgprel-sec. | |
9945 | ||
9946 | 2017-10-26 Jim Wilson <wilson@tuliptree.org> | |
9947 | ||
9948 | * doc/invoke.texi (-fdebug-prefix-map): Expand documentation. | |
9949 | ||
9950 | 2017-10-26 Tom de Vries <tom@codesourcery.com> | |
9951 | ||
9952 | PR tree-optimization/82707 | |
9953 | * gimple.c (gimple_copy): Fix unsharing of | |
9954 | GIMPLE_OMP_{SINGLE,TARGET,TEAMS}. | |
9955 | ||
9956 | 2017-10-26 Olga Makhotina <olga.makhotina@intel.com> | |
9957 | ||
9958 | * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask, | |
9959 | _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask, | |
9960 | _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask, | |
9961 | _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask, | |
9962 | _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask, | |
9963 | _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask, | |
9964 | _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask, | |
9965 | _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask, | |
9966 | _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask, | |
9967 | _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask, | |
9968 | _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask, | |
9969 | _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask, | |
9970 | _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask, | |
9971 | _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask, | |
9972 | _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask, | |
9973 | _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask, | |
9974 | _mm512_mask_cmpunord_ps_mask): New intrinsics. | |
9975 | ||
9976 | 2017-10-26 Michael Meissner <meissner@linux.vnet.ibm.com> | |
9977 | ||
9978 | * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double | |
9979 | default to IBM. | |
9980 | * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise. | |
9981 | * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the | |
9982 | warning to rs6000.c. Remove the Undocumented flag, since it has | |
9983 | been documented. | |
9984 | (-mabi=ibmlongdouble): Likewise. | |
9985 | * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not | |
9986 | already set, set the default format for long double. | |
9987 | (rs6000_debug_reg_global): Print whether long double is IBM or | |
9988 | IEEE. | |
9989 | (rs6000_option_override_internal): Rework setting long double | |
9990 | format. Only warn if the user is changing the long double default | |
9991 | and they did not use -Wno-psabi. | |
9992 | * doc/invoke.texi (PowerPC options): Update the documentation for | |
9993 | -mabi=ieeelongdouble and -mabi=ibmlongdouble. | |
9994 | ||
9995 | 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> | |
9996 | Alan Hayward <alan.hayward@arm.com> | |
9997 | David Sherwood <david.sherwood@arm.com> | |
9998 | ||
9999 | * rtl.h (wider_subreg_mode): New function. | |
10000 | * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode * | |
10001 | rather than an unsigned int *. | |
10002 | * ira-color.c (regno_max_ref_width): Replace with... | |
10003 | (regno_max_ref_mode): ...this new variable. | |
10004 | (coalesced_pseudo_reg_slot_compare): Update accordingly. | |
10005 | Use wider_subreg_mode. | |
10006 | (ira_sort_regnos_for_alter_reg): Likewise. Take a machine_mode * | |
10007 | rather than an unsigned int *. | |
10008 | * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode. | |
10009 | (process_alt_operands): Likewise. | |
10010 | (invariant_p): Likewise. | |
10011 | * lra-spills.c (assign_mem_slot): Likewise. | |
10012 | (add_pseudo_to_slot): Likewise. | |
10013 | * lra.c (collect_non_operand_hard_regs): Likewise. | |
10014 | (add_regs_to_insn_regno_info): Likewise. | |
10015 | * reload1.c (regno_max_ref_width): Replace with... | |
10016 | (regno_max_ref_mode): ...this new variable. | |
10017 | (reload): Update accordingly. Update call to | |
10018 | ira_sort_regnos_for_alter_reg. | |
10019 | (alter_reg): Update to use regno_max_ref_mode. Call wider_subreg_mode. | |
10020 | (init_eliminable_invariants): Update to use regno_max_ref_mode. | |
10021 | (scan_paradoxical_subregs): Likewise. | |
10022 | ||
10023 | 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com> | |
10024 | ||
10025 | * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used. | |
10026 | (aarch64_frame): Add emit_frame_chain boolean. | |
10027 | * config/aarch64/aarch64.c (aarch64_frame_pointer_required) | |
10028 | Move eh_return case to aarch64_layout_frame. | |
10029 | (aarch64_layout_frame): Initialize emit_frame_chain. | |
10030 | (aarch64_expand_prologue): Use emit_frame_chain. | |
10031 | ||
10032 | 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com> | |
10033 | ||
10034 | * config/aarch64/aarch64.c (aarch64_layout_frame): | |
10035 | Ensure LR is always stored at the bottom of the callee-saves. | |
10036 | Remove rarely used frame layout which saves callee-saves at top of | |
10037 | frame, so the store of LR can be used as a valid probe in all cases. | |
10038 | ||
10039 | 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com> | |
10040 | ||
10041 | * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): | |
10042 | Improve unaligned TImode/TFmode base/offset split. | |
10043 | ||
10044 | 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> | |
10045 | Alan Hayward <alan.hayward@arm.com> | |
10046 | David Sherwood <david.sherwood@arm.com> | |
10047 | ||
10048 | * caller-save.c (mark_referenced_regs): Use read_modify_subreg_p. | |
10049 | * combine.c (find_single_use_1): Likewise. | |
10050 | (expand_field_assignment): Likewise. | |
10051 | (move_deaths): Likewise. | |
10052 | * lra-constraints.c (simplify_operand_subreg): Likewise. | |
10053 | (curr_insn_transform): Likewise. | |
10054 | * lra.c (collect_non_operand_hard_regs): Likewise. | |
10055 | (add_regs_to_insn_regno_info): Likewise. | |
10056 | * rtlanal.c (reg_referenced_p): Likewise. | |
10057 | (covers_regno_no_parallel_p): Likewise. | |
10058 | ||
10059 | 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> | |
10060 | ||
10061 | * wide-int-print.cc (print_hex): Loop based on extract_uhwi. | |
10062 | Don't print any bits outside the precision of the value. | |
10063 | * wide-int.cc (test_printing): Add some new tests. | |
10064 | ||
10065 | 2017-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
10066 | ||
10067 | * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler | |
10068 | supports -xbrace_comment option. | |
10069 | * configure: Regenerate. | |
10070 | * config.in: Regenerate. | |
10071 | * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define. | |
10072 | (ASM_CPU_SPEC): Use it. | |
10073 | ||
10074 | 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org> | |
10075 | ||
10076 | * target.def (static_rtx_alignment): New hook. | |
10077 | * targhooks.h (default_static_rtx_alignment): Declare. | |
10078 | * targhooks.c (default_static_rtx_alignment): New function. | |
10079 | * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook. | |
10080 | * doc/tm.texi: Regenerate. | |
10081 | * varasm.c (force_const_mem): Use targetm.static_rtx_alignment | |
10082 | instead of targetm.constant_alignment. Remove call to | |
10083 | set_mem_attributes. | |
10084 | * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine. | |
10085 | (cris_preferred_mininum_alignment): New function, split out from... | |
10086 | (cris_constant_alignment): ...here. | |
10087 | (cris_static_rtx_alignment): New function. | |
10088 | * config/i386/i386.c (ix86_static_rtx_alignment): New function, | |
10089 | split out from... | |
10090 | (ix86_constant_alignment): ...here. | |
10091 | (TARGET_STATIC_RTX_ALIGNMENT): Redefine. | |
10092 | * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine. | |
10093 | (mmix_static_rtx_alignment): New function. | |
10094 | * config/spu/spu.c (spu_static_rtx_alignment): New function. | |
10095 | (TARGET_STATIC_RTX_ALIGNMENT): Redefine. | |
10096 | ||
10097 | 2017-10-26 Tamar Christina <tamar.christina@arm.com> | |
10098 | ||
10099 | PR target/81800 | |
10100 | * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): | |
10101 | Add flag_trapping_math and flag_fp_int_builtin_inexact. | |
10102 | ||
10103 | 2017-10-25 Palmer Dabbelt <palmer@dabbelt.com> | |
10104 | ||
10105 | * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define. | |
10106 | * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s, | |
10107 | mark as a sign-extending load. | |
10108 | (local_pic_load_u): Define. | |
10109 | ||
10110 | 2017-10-25 Eric Botcazou <ebotcazou@adacore.com> | |
10111 | ||
10112 | PR middle-end/82062 | |
10113 | * fold-const.c (operand_equal_for_comparison_p): Also return true | |
10114 | if ARG0 is a simple variant of ARG1 with narrower precision. | |
10115 | (fold_ternary_loc): Always pass unstripped operands to the predicate. | |
10116 | ||
10117 | 2017-10-25 Jan Hubicka <hubicka@ucw.cz> | |
10118 | ||
10119 | * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather | |
10120 | cost correctly. | |
10121 | * i386.h (processor_costs): Add gather_static, gather_per_elt, | |
10122 | scatter_static, scatter_per_elt. | |
10123 | * x86-tune-costs.h: Add new cost entries. | |
10124 | ||
10125 | 2017-10-25 Richard Biener <rguenther@suse.de> | |
10126 | ||
10127 | * tree-ssa-sccvn.h (vn_eliminate): Declare. | |
10128 | * tree-ssa-pre.c (class eliminate_dom_walker, eliminate, | |
10129 | class pass_fre): Move to ... | |
10130 | * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate, | |
10131 | class pass_fre): ... here and adjust for statistics. | |
10132 | ||
10133 | 2017-10-25 Jakub Jelinek <jakub@redhat.com> | |
10134 | ||
10135 | PR libstdc++/81706 | |
10136 | * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal | |
10137 | for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}. | |
10138 | (duplicate_one_attribute, copy_attributes_to_builtin): New functions. | |
10139 | * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New | |
10140 | declarations. | |
10141 | ||
10142 | 2017-10-25 Richard Biener <rguenther@suse.de> | |
10143 | ||
10144 | * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove, | |
10145 | el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail, | |
10146 | eliminate_push_avail, eliminate_insert): Move inside... | |
10147 | (class eliminate_dom_walker): ... this class in preparation | |
10148 | of move. | |
10149 | (fini_eliminate): Remove by merging with ... | |
10150 | (eliminate): ... this function. Adjust for class changes. | |
10151 | (pass_pre::execute): Remove fini_eliminate call. | |
10152 | (pass_fre::execute): Likewise. | |
10153 | ||
10154 | 2017-10-24 Jakub Jelinek <jakub@redhat.com> | |
10155 | ||
10156 | PR target/82460 | |
10157 | * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove. | |
10158 | (VPERMI2, VPERMI2I): New mode iterators. | |
10159 | (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns. | |
10160 | (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn | |
10161 | patterns. | |
10162 | (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2 | |
10163 | mode iterator. Remove 3 old define_insn patterns. | |
10164 | (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns. | |
10165 | (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use | |
10166 | VPERMI2 mode iterator, remove the other two expanders. | |
10167 | (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn | |
10168 | to use VPERMI2 mode iterator, add another alternative for vpermi2* | |
10169 | instructions, remove the other two patterns. | |
10170 | (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2 | |
10171 | mode iterator, remove the other two patterns. | |
10172 | * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ... | |
10173 | (ix86_expand_vec_perm_vpermt2): ... this. Swap mask and op0 | |
10174 | arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2* | |
10175 | and adjust argument order accordingly. | |
10176 | (ix86_expand_vec_perm): Adjust caller. | |
10177 | (expand_vec_perm_1): Likewise. | |
10178 | (expand_vec_perm_vpermi2_vpshub2): Rename to ... | |
10179 | (expand_vec_perm_vpermt2_vpshub2): ... this. | |
10180 | (ix86_expand_vec_perm_const_1): Adjust caller. | |
10181 | (ix86_vectorize_vec_perm_const_ok): Adjust comments. | |
10182 | ||
10183 | PR target/82370 | |
10184 | * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode. | |
10185 | (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators. | |
10186 | (vec_shl_<mode>): Remove unused expander. | |
10187 | (avx512bw_<shift_insn><mode>3): New define_insn. | |
10188 | (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ... | |
10189 | (<sse2_avx2>_<shift_insn><mode>3): ... this. New define_insn. | |
10190 | ||
10191 | 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com> | |
10192 | ||
10193 | PR c++/82466 | |
10194 | * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend | |
10195 | description. | |
10196 | ||
10197 | 2017-10-24 Wilco Dijkstra <wdijkstr@arm.com> | |
10198 | ||
10199 | PR rtl-optimization/82396 | |
10200 | * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround. | |
10201 | (autopref_multipass_init): Simplify initialization. | |
10202 | (autopref_rank_data): Simplify sort order. | |
10203 | * gcc/sched-int.h (autopref_multipass_data_): Remove | |
10204 | multi_mem_insn_p, min_offset and max_offset. | |
10205 | ||
10206 | 2017-10-24 Wilco Dijkstra <wdijkstr@arm.com> | |
10207 | ||
10208 | PR middle-end/60580 | |
10209 | * config/aarch64/aarch64.c (aarch64_frame_pointer_required) | |
10210 | Check special value of flag_omit_frame_pointer. | |
10211 | (aarch64_can_eliminate): Likewise. | |
10212 | (aarch64_override_options_after_change_1): Simplify handling of | |
10213 | -fomit-frame-pointer and -fomit-leaf-frame-pointer. | |
10214 | ||
10215 | 2017-10-24 Richard Biener <rguenther@suse.de> | |
10216 | ||
10217 | PR tree-optimization/82697 | |
10218 | * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set | |
10219 | zero for conditional load and unconditional store. | |
10220 | ||
10221 | 2017-10-24 H.J. Lu <hongjiu.lu@intel.com> | |
10222 | ||
10223 | * doc/install.texi: Document bootstrap-cet. | |
10224 | ||
10225 | 2017-10-24 H.J. Lu <hongjiu.lu@intel.com> | |
10226 | ||
10227 | PR target/82659 | |
10228 | * config/i386/i386.c (rest_of_insert_endbranch): Don't insert | |
10229 | ENDBR instruction at function entrance if function is only | |
10230 | called directly. | |
10231 | ||
10232 | 2017-10-24 Jakub Jelinek <jakub@redhat.com> | |
10233 | ||
10234 | PR target/82628 | |
10235 | * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change | |
10236 | patterns to better describe from which operation the CF is computed. | |
10237 | (addcarry<mode>_0, subborrow<mode>_0): New patterns. | |
10238 | * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass | |
10239 | one LTU with [DT]Imode and another one with [SD]Imode. If arg0 | |
10240 | is 0, use _0 suffixed expanders instead of emitting a comparison | |
10241 | before it. | |
10242 | ||
10243 | 2017-10-06 Sergey Shalnov <Sergey.Shalnov@intel.com> | |
10244 | ||
10245 | * config/i386/i386.md(*movsf_internal, *movdf_internal): | |
10246 | Avoid 512-bit AVX modes for TARGET_PREFER_AVX256. | |
10247 | ||
10248 | 2017-10-24 Eric Botcazou <ebotcazou@adacore.com> | |
10249 | ||
10250 | PR middle-end/82569 | |
10251 | * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete. | |
10252 | * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change. | |
10253 | * loop-iv.c (iv_get_reaching_def): Likewise. | |
10254 | * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the | |
10255 | variable is promoted and the partition contains undefined values. | |
10256 | ||
10257 | 2017-10-23 Sandra Loosemore <sandra@codesourcery.com> | |
10258 | ||
10259 | * config/nios2/nios2.c (nios2_rtx_costs): Make costs better | |
10260 | reflect reality. | |
10261 | (nios2_address_cost): Define. | |
10262 | (nios2_legitimize_address): Recognize (exp + constant) directly. | |
10263 | (TARGET_ADDRESS_COST): Define. | |
10264 | ||
10265 | 2017-10-23 Sandra Loosemore <sandra@codesourcery.com> | |
10266 | ||
10267 | * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare. | |
10268 | (nios2_symbolic_memory_operand_p): Declare. | |
10269 | (nios2_split_large_constant): Declare. | |
10270 | (nios2_split_symbolic_memory_operand): Declare. | |
10271 | * config/nios2/nios2.c: Adjust includes. | |
10272 | (nios2_symbolic_constant_allowed): New. | |
10273 | (nios2_symbolic_constant_p): New. | |
10274 | (nios2_plus_symbolic_constant_p): New. | |
10275 | (nios2_valid_addr_expr_p): Recognize addresses involving | |
10276 | symbolic constants. | |
10277 | (nios2_legitimate_address_p): Likewise, also LO_SUM. | |
10278 | (nios2_symbolic_memory_operand_p): New. | |
10279 | (nios2_large_constant_p): New. | |
10280 | (nios2_split_large_constant): New. | |
10281 | (nios2_split_plus_large_constant): New. | |
10282 | (nios2_split_symbolic_memory_operand): New. | |
10283 | (nios2_legitimize_address): Code refactoring. Handle addresses | |
10284 | involving symbolic constants. | |
10285 | (nios2_emit_move_sequence): Likewise. | |
10286 | (nios2_print_operand): Improve error output. | |
10287 | (nios2_print_operand_address): Handle LO_SUM. | |
10288 | (nios2_cdx_narrow_form_p): Likewise. | |
10289 | * config/nios2/nios2.md (movqi_internal): Add splitter for memory | |
10290 | operands involving symbolic constants. | |
10291 | (movhi_internal, movsi_internal): Likewise. | |
10292 | (zero_extendhisi2, zero_extendqi<mode>2): Likewise. | |
10293 | (extendhisi2, extendqi<mode>2): Likewise. | |
10294 | ||
10295 | 2017-10-23 Sandra Loosemore <sandra@codesourcery.com> | |
10296 | ||
10297 | * tree-pass.h (PROP_rtl_split_insns): Define. | |
10298 | * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns. | |
10299 | ||
10300 | 2017-10-23 Sandra Loosemore <sandra@codesourcery.com> | |
10301 | ||
10302 | * config/nios2/nios2.c (TARGET_LRA_P): Don't override. | |
10303 | ||
10304 | 2017-10-23 Jakub Jelinek <jakub@redhat.com> | |
10305 | ||
10306 | PR debug/82630 | |
10307 | * target.def (const_not_ok_for_debug_p): Default to | |
10308 | default_const_not_ok_for_debug_p instead of hook_bool_rtx_false. | |
10309 | * targhooks.h (default_const_not_ok_for_debug_p): New declaration. | |
10310 | * targhooks.c (default_const_not_ok_for_debug_p): New function. | |
10311 | * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for | |
10312 | which targetm.const_not_ok_for_debug_p returned true. | |
10313 | * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true | |
10314 | for UNSPECs. | |
10315 | * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p): | |
10316 | Likewise. | |
10317 | * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise. | |
10318 | * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize | |
10319 | UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol | |
10320 | if !base_term_p. | |
10321 | (ix86_const_not_ok_for_debug_p): New function. | |
10322 | (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF. | |
10323 | (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine. | |
10324 | ||
10325 | 2017-10-23 David Malcolm <dmalcolm@redhat.com> | |
10326 | ||
10327 | PR bootstrap/82610 | |
10328 | * system.h: Conditionally include "unique-ptr.h" if | |
10329 | INCLUDE_UNIQUE_PTR is defined. | |
10330 | * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor | |
10331 | of defining INCLUDE_UNIQUE_PTR before including "system.h". | |
10332 | ||
10333 | 2017-10-23 Sebastian Perta <sebastian.perta@renesas.com> | |
10334 | ||
10335 | * config/rl78/rl78.md: New define_expand "subdi3". | |
10336 | ||
10337 | 2017-10-23 H.J. Lu <hongjiu.lu@intel.com> | |
10338 | ||
10339 | PR target/82673 | |
10340 | * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip | |
10341 | DF_REF_INSN if DF_REF_INSN_INFO is false. | |
10342 | ||
10343 | 2017-10-23 Jan Hubicka <hubicka@ucw.cz> | |
10344 | ||
10345 | * i386.c (dimode_scalar_chain::compute_convert_gain): Use | |
10346 | xmm_move instead of sse_move. | |
10347 | (sse_store_index): New function. | |
10348 | (ix86_register_move_cost): Be more sensible about mismatch stall; | |
10349 | model AVX moves correctly; make difference between sse->integer and | |
10350 | integer->sse. | |
10351 | (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned | |
10352 | moves; make difference between SSE and AVX. | |
10353 | * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move | |
10354 | and zmm_move. Increase size of sse load and store tables; | |
10355 | add unaligned load and store tables; add ssemmx_to_integer. | |
10356 | * x86-tune-costs.h: Update all entries according to real | |
10357 | move latencies from Agner Fog's manual and chip documentation. | |
10358 | ||
10359 | 2017-10-23 Jakub Jelinek <jakub@redhat.com> | |
10360 | ||
10361 | PR target/82628 | |
10362 | * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New. | |
10363 | * config/i386/constraints.md (Wf): New constraint. | |
10364 | * config/i386/i386.md (UNSPEC_SBB): New unspec. | |
10365 | (cmp<dwi>_doubleword): Removed. | |
10366 | (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns. | |
10367 | (sub<mode>3_carry_ccgz): Use unspec instead of compare. | |
10368 | * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't | |
10369 | expand with cmp<dwi>_doubleword. For LTU and GEU use | |
10370 | sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode. | |
10371 | ||
10372 | * common.opt (gcolumn-info): Enable by default. | |
10373 | * doc/invoke.texi (gcolumn-info): Document new default. | |
10374 | ||
10375 | 2017-10-23 Richard Biener <rguenther@suse.de> | |
10376 | ||
10377 | PR tree-optimization/82672 | |
10378 | * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block): | |
10379 | Fold the stmt if we propagated into it. | |
10380 | ||
10381 | 2017-10-23 Richard Biener <rguenther@suse.de> | |
10382 | ||
10383 | * tree-ssa-pre.c (bitmap_remove_from_set): Rename to... | |
10384 | (bitmap_remove_expr_from_set): ... this. All callers call this | |
10385 | for non-constant values. | |
10386 | (bitmap_set_subtract): Rename to... | |
10387 | (bitmap_set_subtract_expressions): ... this. Adjust and | |
10388 | optimize. | |
10389 | (bitmap_set_contains_value): Remove superfluous check. | |
10390 | (bitmap_set_replace_value): Inline into single caller ... | |
10391 | (bitmap_value_replace_in_set): ... here and simplify. | |
10392 | (dependent_clean): Merge into ... | |
10393 | (clean): ... this using an overload. Adjust. | |
10394 | (prune_clobbered_mems): Adjust. | |
10395 | (compute_antic_aux): Likewise. | |
10396 | (compute_partial_antic_aux): Likewise. | |
10397 | ||
10398 | 2017-10-23 Richard Biener <rguenther@suse.de> | |
10399 | ||
10400 | PR tree-optimization/82129 | |
10401 | Revert | |
10402 | 2017-08-01 Richard Biener <rguenther@suse.de> | |
10403 | ||
10404 | PR tree-optimization/81181 | |
10405 | * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... | |
10406 | (compute_antic): ... end of iteration here. | |
10407 | ||
10408 | 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> | |
10409 | ||
10410 | * target.def (starting_frame_offset): New hook. | |
10411 | * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of... | |
10412 | (TARGET_STARTING_FRAME_OFFSET): ...this new hook. | |
10413 | * doc/tm.texi.in: Regenerate. | |
10414 | * hooks.h (hook_hwi_void_0): Declare. | |
10415 | * hooks.c (hook_hwi_void_0): New function. | |
10416 | * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of | |
10417 | STARTING_FRAME_OFFSET. | |
10418 | * builtins.c (expand_builtin_setjmp_receiver): Likewise. | |
10419 | * reload1.c (reload): Likewise. | |
10420 | * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset | |
10421 | instead of STARTING_FRAME_OFFSET. | |
10422 | * function.c (try_fit_stack_local): Likewise. | |
10423 | (assign_stack_local_1): Likewise | |
10424 | (instantiate_virtual_regs): Likewise. | |
10425 | * rtlanal.c (rtx_addr_can_trap_p_1): Likewise. | |
10426 | * config/avr/avr.md (nonlocal_goto_receiver): Likewise. | |
10427 | * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete. | |
10428 | * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise. | |
10429 | * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise. | |
10430 | * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise. | |
10431 | * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise. | |
10432 | * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise. | |
10433 | * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise. | |
10434 | * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise. | |
10435 | * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise. | |
10436 | * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise. | |
10437 | * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise. | |
10438 | * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise. | |
10439 | * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise. | |
10440 | * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise. | |
10441 | * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise. | |
10442 | * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise. | |
10443 | * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise. | |
10444 | * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise. | |
10445 | * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise. | |
10446 | * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise. | |
10447 | * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise. | |
10448 | * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise. | |
10449 | * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise. | |
10450 | * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise. | |
10451 | * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise. | |
10452 | * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise. | |
10453 | * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise. | |
10454 | * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise. | |
10455 | * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise. | |
10456 | * config/sparc/sparc.c (sparc_compute_frame_size): Likewise. | |
10457 | * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise. | |
10458 | * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise. | |
10459 | * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise. | |
10460 | * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise. | |
10461 | * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise. | |
10462 | * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise. | |
10463 | * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise. | |
10464 | * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise. | |
10465 | * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise. | |
10466 | * config/avr/avr.c (avr_starting_frame_offset): Make static and | |
10467 | return a HOST_WIDE_INT. | |
10468 | (avr_builtin_setjmp_frame_value): Use it instead of | |
10469 | STARTING_FRAME_OFFSET. | |
10470 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10471 | * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete. | |
10472 | * config/epiphany/epiphany.c (epiphany_starting_frame_offset): | |
10473 | New function. | |
10474 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10475 | * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete. | |
10476 | * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function. | |
10477 | (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
10478 | * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete. | |
10479 | * config/lm32/lm32.c (lm32_starting_frame_offset): New function. | |
10480 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10481 | * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete. | |
10482 | * config/m32r/m32r.c (m32r_starting_frame_offset): New function. | |
10483 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10484 | * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete. | |
10485 | * config/microblaze/microblaze.c (microblaze_starting_frame_offset): | |
10486 | New function. | |
10487 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10488 | * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete. | |
10489 | * config/mips/mips.c (mips_compute_frame_info): Refer to | |
10490 | TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET. | |
10491 | (mips_starting_frame_offset): New function. | |
10492 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10493 | * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete. | |
10494 | * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete. | |
10495 | * config/mmix/mmix.c (mmix_starting_frame_offset): Make static | |
10496 | and return a HOST_WIDE_INT. | |
10497 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10498 | (mmix_initial_elimination_offset): Refer to | |
10499 | TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET. | |
10500 | * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete. | |
10501 | * config/pa/pa.c (pa_starting_frame_offset): New function. | |
10502 | (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET. | |
10503 | (pa_expand_prologue): Likewise. | |
10504 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10505 | * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out | |
10506 | !FRAME_GROWS_DOWNWARD handling to... | |
10507 | (RS6000_STARTING_FRAME_OFFSET): ...this new macro. | |
10508 | * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out | |
10509 | !FRAME_GROWS_DOWNWARD handling to... | |
10510 | (RS6000_STARTING_FRAME_OFFSET): ...this new macro. | |
10511 | * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out | |
10512 | !FRAME_GROWS_DOWNWARD handling to... | |
10513 | (RS6000_STARTING_FRAME_OFFSET): ...this new macro. | |
10514 | * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET): | |
10515 | Redefine. | |
10516 | (rs6000_starting_frame_offset): New function. | |
10517 | * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out | |
10518 | !FRAME_GROWS_DOWNWARD handling to... | |
10519 | (RS6000_STARTING_FRAME_OFFSET): ...this new macro. | |
10520 | * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out | |
10521 | !FRAME_GROWS_DOWNWARD handling to... | |
10522 | (RS6000_STARTING_FRAME_OFFSET): ...this new macro. | |
10523 | * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out | |
10524 | !FRAME_GROWS_DOWNWARD handling to... | |
10525 | (RS6000_STARTING_FRAME_OFFSET): ...this new macro. | |
10526 | * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine. | |
10527 | (rs6000_starting_frame_offset): New function. | |
10528 | * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete. | |
10529 | * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete. | |
10530 | * config/vax/vax.c (vax_starting_frame_offset): New function. | |
10531 | (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET. | |
10532 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10533 | * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete. | |
10534 | * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function. | |
10535 | (TARGET_STARTING_FRAME_OFFSET): Redefine. | |
10536 | * system.h (STARTING_FRAME_OFFSET): Poison. | |
10537 | ||
10538 | 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> | |
10539 | ||
10540 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Use | |
10541 | SCALAR_TYPE_MODE instead of TYPE_MODE. | |
10542 | ||
10543 | 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> | |
10544 | Alan Hayward <alan.hayward@arm.com> | |
10545 | David Sherwood <david.sherwood@arm.com> | |
10546 | ||
10547 | * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE | |
10548 | ||
10549 | 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> | |
10550 | Alan Hayward <alan.hayward@arm.com> | |
10551 | David Sherwood <david.sherwood@arm.com> | |
10552 | ||
10553 | * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode. | |
10554 | ||
10555 | 2017-10-23 Richard Biener <rguenther@suse.de> | |
10556 | ||
10557 | PR tree-optimization/82129 | |
10558 | * tree-ssa-pre.c (bitmap_set_and): Remove. | |
10559 | (compute_antic_aux): Compute ANTIC_OUT intersection in a way | |
10560 | canonicalizing expressions in the set to those with lowest | |
10561 | ID rather than taking that from the first edge. | |
10562 | ||
10563 | 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org> | |
10564 | ||
10565 | * combine.c (rtx_equal_for_field_assignment_p): Use | |
10566 | byte_lowpart_offset. | |
10567 | ||
10568 | 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> | |
10569 | Alan Hayward <alan.hayward@arm.com> | |
10570 | David Sherwood <david.sherwood@arm.com> | |
10571 | ||
10572 | * internal-fn.c (expand_direct_optab_fn): Don't assign directly | |
10573 | to a SUBREG_PROMOTED_VAR. | |
10574 | ||
10575 | 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> | |
10576 | Alan Hayward <alan.hayward@arm.com> | |
10577 | David Sherwood <david.sherwood@arm.com> | |
10578 | ||
10579 | * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION. | |
10580 | (expand_debug_source_expr): Likewise. | |
10581 | * combine.c (combine_simplify_rtx): Likewise. | |
10582 | * cse.c (fold_rtx): Likewise. | |
10583 | * optabs.c (expand_float): Likewise. | |
10584 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
10585 | (simplify_binary_operation_1): Likewise. | |
10586 | ||
10587 | 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> | |
10588 | Alan Hayward <alan.hayward@arm.com> | |
10589 | David Sherwood <david.sherwood@arm.com> | |
10590 | ||
10591 | * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P. | |
10592 | (record_promoted_value): Likewise. | |
10593 | * expr.c (expand_expr_real_2): Likewise. | |
10594 | * ree.c (update_reg_equal_equiv_notes): Likewise. | |
10595 | (combine_set_extension): Likewise. | |
10596 | * rtlanal.c (low_bitmask_len): Likewise. | |
10597 | * simplify-rtx.c (neg_const_int): Likewise. | |
10598 | (simplify_binary_operation_1): Likewise. | |
10599 | ||
10600 | 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> | |
10601 | Alan Hayward <alan.hayward@arm.com> | |
10602 | David Sherwood <david.sherwood@arm.com> | |
10603 | ||
10604 | * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset. | |
10605 | * regcprop.c (maybe_mode_change): Likewise. | |
10606 | * reload1.c (alter_reg): Likewise. | |
10607 | ||
10608 | 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> | |
10609 | ||
10610 | * inchash.h (inchash::hash::add_wide_int): New function. | |
10611 | * lto-streamer-out.c (hash_tree): Use it. | |
10612 | ||
10613 | 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org> | |
10614 | ||
10615 | * inchash.h (inchash::hash::add_wide_int): Rename to... | |
10616 | (inchash::hash::add_hwi): ...this. | |
10617 | * ipa-devirt.c (hash_odr_vtable): Update accordingly. | |
10618 | (polymorphic_call_target_hasher::hash): Likewise. | |
10619 | * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise. | |
10620 | (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash) | |
10621 | (sem_item_optimizer::update_hash_by_addr_refs): Likewise. | |
10622 | * lto-streamer-out.c (hash_tree): Likewise. | |
10623 | * optc-save-gen.awk: Likewise. | |
10624 | * tree.c (add_expr): Likewise. | |
10625 | ||
10626 | 2017-10-22 Uros Bizjak <ubizjak@gmail.com> | |
10627 | ||
10628 | PR target/52451 | |
10629 | * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode | |
10630 | for ordered inequality comparisons even with TARGET_IEEE_FP. | |
10631 | ||
10632 | 2017-10-22 Uros Bizjak <ubizjak@gmail.com> | |
10633 | ||
10634 | PR target/82628 | |
10635 | * config/i386/i386.md (cmp<dwi>_doubleword): New pattern. | |
10636 | * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: | |
10637 | Expand with cmp<dwi>_doubleword. | |
10638 | ||
10639 | 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
10640 | ||
10641 | * extend.texi: Add x86 specific to 'nocf_check' attribute. | |
10642 | List CET intrinsics. | |
10643 | * invoke.texi: Add -mcet, -mibt, -mshstk options. Add x86 | |
10644 | specific to -fcf-protection option. | |
10645 | ||
10646 | 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
10647 | ||
10648 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New. | |
10649 | (OPTION_MASK_ISA_SHSTK_SET): Likewise. | |
10650 | (OPTION_MASK_ISA_IBT_UNSET): Likewise. | |
10651 | (OPTION_MASK_ISA_SHSTK_UNSET): Likewise. | |
10652 | (ix86_handle_option): Add -mibt, -mshstk, -mcet handling. | |
10653 | * config.gcc (extra_headers): Add cetintrin.h for x86 targets. | |
10654 | (extra_objs): Add cet.o for Linux/x86 targets. | |
10655 | (tmake_file): Add i386/t-cet for Linux/x86 targets. | |
10656 | * config/i386/cet.c: New file. | |
10657 | * config/i386/cetintrin.h: Likewise. | |
10658 | * config/i386/t-cet: Likewise. | |
10659 | * config/i386/cpuid.h (bit_SHSTK): New. | |
10660 | (bit_IBT): Likewise. | |
10661 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect and | |
10662 | pass IBT and SHSTK bits. | |
10663 | * config/i386/i386-builtin-types.def | |
10664 | (VOID_FTYPE_UNSIGNED_PVOID): New. | |
10665 | (VOID_FTYPE_UINT64_PVOID): Likewise. | |
10666 | * config/i386/i386-builtin.def: Add CET intrinsics. | |
10667 | * config/i386/i386-c.c (ix86_target_macros_internal): Add | |
10668 | OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling. | |
10669 | * config/i386/i386-passes.def: Add pass_insert_endbranch pass. | |
10670 | * config/i386/i386-protos.h (make_pass_insert_endbranch): New | |
10671 | prototype. | |
10672 | * config/i386/i386.c (rest_of_insert_endbranch): New. | |
10673 | (pass_data_insert_endbranch): Likewise. | |
10674 | (pass_insert_endbranch): Likewise. | |
10675 | (make_pass_insert_endbranch): Likewise. | |
10676 | (ix86_notrack_prefixed_insn_p): Likewise. | |
10677 | (ix86_target_string): Add -mibt, -mshstk flags. | |
10678 | (ix86_option_override_internal): Add flag_cf_protection | |
10679 | processing. | |
10680 | (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk. | |
10681 | (ix86_print_operand): Add 'notrack' prefix output. | |
10682 | (ix86_init_mmx_sse_builtins): Add CET intrinsics. | |
10683 | (ix86_expand_builtin): Expand CET intrinsics. | |
10684 | (x86_output_mi_thunk): Add 'endbranch' instruction. | |
10685 | * config/i386/i386.h (TARGET_IBT): New. | |
10686 | (TARGET_IBT_P): Likewise. | |
10687 | (TARGET_SHSTK): Likewise. | |
10688 | (TARGET_SHSTK_P): Likewise. | |
10689 | * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP, | |
10690 | UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP, | |
10691 | UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY. | |
10692 | (builtin_setjmp_setup): New pattern. | |
10693 | (builtin_longjmp): Likewise. | |
10694 | (rdssp<mode>): Likewise. | |
10695 | (incssp<mode>): Likewise. | |
10696 | (saveprevssp): Likewise. | |
10697 | (rstorssp): Likewise. | |
10698 | (wrss<mode>): Likewise. | |
10699 | (wruss<mode>): Likewise. | |
10700 | (setssbsy): Likewise. | |
10701 | (clrssbsy): Likewise. | |
10702 | (nop_endbr): Likewise. | |
10703 | * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch | |
10704 | options. | |
10705 | * config/i386/immintrin.h: Include <cetintrin.h>. | |
10706 | * config/i386/linux-common.h | |
10707 | (file_end_indicate_exec_stack_and_cet): New prototype. | |
10708 | (TARGET_ASM_FILE_END): New. | |
10709 | ||
10710 | 2017-10-20 Jan Hubicka <hubicka@ucw.cz> | |
10711 | ||
10712 | * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost | |
10713 | latencies instead of having separate table; make difference between | |
10714 | integer and float costs. | |
10715 | * i386.h (processor_costs): Remove scalar_stmt_cost, | |
10716 | scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost, | |
10717 | scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost, | |
10718 | vec_store_cost. | |
10719 | * x86-tune-costs.h: Remove entries which has been removed in | |
10720 | procesor_costs from all tables; make cond_taken_branch_cost | |
10721 | and cond_not_taken_branch_cost COST_N_INSNS based. | |
10722 | ||
10723 | 2017-10-20 Jan Hubicka <hubicka@ucw.cz> | |
10724 | ||
10725 | * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs. | |
10726 | ||
10727 | 2017-10-20 Jakub Jelinek <jakub@redhat.com> | |
10728 | ||
10729 | * config/i386/i386.md (isa): Remove fma_avx512f. | |
10730 | * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>, | |
10731 | <avx512>_fmadd_<mode>_mask3<round_name>, | |
10732 | <avx512>_fmsub_<mode>_mask<round_name>, | |
10733 | <avx512>_fmsub_<mode>_mask3<round_name>, | |
10734 | <avx512>_fnmadd_<mode>_mask<round_name>, | |
10735 | <avx512>_fnmadd_<mode>_mask3<round_name>, | |
10736 | <avx512>_fnmsub_<mode>_mask<round_name>, | |
10737 | <avx512>_fnmsub_<mode>_mask3<round_name>, | |
10738 | <avx512>_fmaddsub_<mode>_mask<round_name>, | |
10739 | <avx512>_fmaddsub_<mode>_mask3<round_name>, | |
10740 | <avx512>_fmsubadd_<mode>_mask<round_name>, | |
10741 | <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute. | |
10742 | (*vec_widen_umult_even_v16si<mask_name>, | |
10743 | *vec_widen_smult_even_v16si<mask_name>): Likewise. | |
10744 | (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise. | |
10745 | ||
10746 | 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
10747 | ||
10748 | * extend.texi: Add 'nocf_check' documentation. | |
10749 | * gimple.texi: Add second parameter to | |
10750 | gimple_build_call_from_tree. | |
10751 | * invoke.texi: Add -fcf-protection documentation. | |
10752 | * rtl.texi: Add REG_CALL_NOTRACK documenation. | |
10753 | ||
10754 | 2017-10-20 Richard Biener <rguenther@suse.de> | |
10755 | ||
10756 | PR tree-optimization/82473 | |
10757 | * tree-vect-loop.c (vectorizable_reduction): Properly get at | |
10758 | the largest input type. | |
10759 | ||
10760 | 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
10761 | ||
10762 | * c-attribs.c (handle_nocf_check_attribute): New function. | |
10763 | (c_common_attribute_table): Add 'nocf_check' handling. | |
10764 | * gimple-parser.c: Add second argument NULL to | |
10765 | gimple_build_call_from_tree. | |
10766 | * attrib.c (comp_type_attributes): Check nocf_check attribute. | |
10767 | * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for | |
10768 | call insn. | |
10769 | * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling. | |
10770 | * common.opt: Add fcf-protection flag. | |
10771 | * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling. | |
10772 | * flag-types.h: Add enum cf_protection_level. | |
10773 | * gimple.c (gimple_build_call_from_tree): Add second parameter. | |
10774 | Add 'nocf_check' attribute propagation to gimple call. | |
10775 | * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK. | |
10776 | (gimple_build_call_from_tree): Update prototype. | |
10777 | (gimple_call_nocf_check_p): New function. | |
10778 | (gimple_call_set_nocf_check): Likewise. | |
10779 | * gimplify.c: Add second argument to gimple_build_call_from_tree. | |
10780 | * ipa-icf.c: Add nocf_check attribute in statement hash. | |
10781 | * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling. | |
10782 | * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK). | |
10783 | * toplev.c (process_options): Add flag_cf_protection handling. | |
10784 | ||
10785 | 2017-10-19 Jan Hubicka <hubicka@ucw.cz> | |
10786 | ||
10787 | * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies. | |
10788 | ||
10789 | 2017-10-20 Richard Biener <rguenther@suse.de> | |
10790 | ||
10791 | PR tree-optimization/82603 | |
10792 | * tree-if-conv.c (predicate_mem_writes): Make sure to only | |
10793 | remove false predicated stores. | |
10794 | ||
10795 | 2017-10-20 Richard Biener <rguenther@suse.de> | |
10796 | ||
10797 | * graphite-isl-ast-to-gimple.c | |
10798 | (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): | |
10799 | Remove return value and simplify, dump copied stmt after lhs | |
10800 | adjustment. | |
10801 | (translate_isl_ast_to_gimple::translate_isl_ast_node_user): | |
10802 | Reduce dump verbosity. | |
10803 | (gsi_insert_earliest): Likewise. | |
10804 | (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust. | |
10805 | * graphite.c (print_global_statistics): Adjust dumping. | |
10806 | (print_graphite_scop_statistics): Likewise. | |
10807 | (print_graphite_statistics): Do not dump loops here. | |
10808 | (graphite_transform_loops): But here. | |
10809 | ||
10810 | 2017-10-20 Nicolas Roche <roche@adacore.com> | |
10811 | ||
10812 | * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir. | |
10813 | * configure: Regenerate. | |
10814 | ||
10815 | 2017-10-20 Jakub Jelinek <jakub@redhat.com> | |
10816 | ||
10817 | PR target/82158 | |
10818 | * tree-cfg.c (pass_warn_function_return::execute): In noreturn | |
10819 | functions when optimizing replace GIMPLE_RETURN stmts with | |
10820 | calls to __builtin_unreachable (). | |
10821 | ||
10822 | PR sanitizer/82595 | |
10823 | * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o | |
10824 | for -fsanitize=thread link of executables. | |
10825 | (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak | |
10826 | link of executables. | |
10827 | ||
10828 | PR target/82370 | |
10829 | * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2): | |
10830 | New mode iterators. | |
10831 | (<shift_insn><mode>3<mask_name>): Change the last of the 3 | |
10832 | define_insns for logical vector shifts to use VI248_AVX512BW | |
10833 | iterator instead of VI48_AVX512, remove <mask_mode512bit_condition> | |
10834 | condition, useless isa and prefix attributes. Change the first | |
10835 | 2 of these define_insns to ... | |
10836 | (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new | |
10837 | define_insn for avx512vl. | |
10838 | (<shift_insn><mode>3): ... and this, new define_insn without | |
10839 | masking for non-avx512vl. | |
10840 | ||
10841 | PR target/82370 | |
10842 | * config/i386/sse.md (*andnot<mode>3, | |
10843 | <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split | |
10844 | (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit | |
10845 | and 256-bit vectors, the (=x,x,xm) alternative and when mask is | |
10846 | not applied use empty suffix even for TARGET_AVX512VL. | |
10847 | * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask | |
10848 | is applied, supply evex,evex or evex,evex,evex instead of just | |
10849 | evex. | |
10850 | ||
10851 | 2017-10-20 Julia Koval <julia.koval@intel.com> | |
10852 | ||
10853 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET, | |
10854 | (OPTION_MASK_ISA_GFNI_UNSET): New. | |
10855 | (ix86_handle_option): Handle OPT_mgfni. | |
10856 | * config/i386/cpuid.h (bit_GFNI): New. | |
10857 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni. | |
10858 | * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__. | |
10859 | * config/i386/i386.c (ix86_target_string): Add -mgfni. | |
10860 | (ix86_valid_target_attribute_inner_p): Add OPT_mgfni. | |
10861 | * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New. | |
10862 | * config/i386/i386.opt: Add mgfni. | |
10863 | ||
10864 | 2017-10-20 Orlando Arias <oarias@knights.ucf.edu> | |
10865 | ||
10866 | * config/msp430/msp430.c (msp430_option_override): Disable | |
10867 | -fdelete-null-pointer-checks. | |
10868 | * doc/invoke.text (-fdelete-null-pointer-checks): Document that. | |
10869 | ||
10870 | 2017-10-19 Jan Hubicka <hubicka@ucw.cz> | |
10871 | ||
10872 | * x86-tune-costs.h (generic_cost, core_cost): Correct costs | |
10873 | of x87 and SSE instructions. | |
10874 | ||
10875 | 2017-10-19 Jan Hubicka <hubicka@ucw.cz> | |
10876 | ||
10877 | * asan.c (create_cond_insert_point): Do not update edge count. | |
10878 | * auto-profile.c (afdo_propagate_edge): Update for edge count removal. | |
10879 | (afdo_propagate_circuit): Likewise. | |
10880 | (afdo_calculate_branch_prob): Likewise. | |
10881 | (afdo_annotate_cfg): Likewise. | |
10882 | * basic-block.h (struct edge_def): Remove count. | |
10883 | (edge_def::count): New accessor. | |
10884 | * bb-reorder.c (rotate_loop): Update. | |
10885 | (find_traces_1_round): Update. | |
10886 | (connect_traces): Update. | |
10887 | (sanitize_hot_paths): Update. | |
10888 | * cfg.c (unchecked_make_edge): Update. | |
10889 | (make_single_succ_edge): Update. | |
10890 | (check_bb_profile): Update. | |
10891 | (dump_edge_info): Update. | |
10892 | (update_bb_profile_for_threading): Update. | |
10893 | (scale_bbs_frequencies_int): Update. | |
10894 | (scale_bbs_frequencies_gcov_type): Update. | |
10895 | (scale_bbs_frequencies_profile_count): Update. | |
10896 | (scale_bbs_frequencies): Update. | |
10897 | * cfganal.c (connect_infinite_loops_to_exit): Update. | |
10898 | * cfgbuild.c (compute_outgoing_frequencies): Update. | |
10899 | (find_many_sub_basic_blocks): Update. | |
10900 | * cfgcleanup.c (try_forward_edges): Update. | |
10901 | (try_crossjump_to_edge): Update | |
10902 | * cfgexpand.c (expand_gimple_cond): Update | |
10903 | (expand_gimple_tailcall): Update | |
10904 | (construct_exit_block): Update | |
10905 | * cfghooks.c (verify_flow_info): Update | |
10906 | (redirect_edge_succ_nodup): Update | |
10907 | (split_edge): Update | |
10908 | (make_forwarder_block): Update | |
10909 | (duplicate_block): Update | |
10910 | (account_profile_record): Update | |
10911 | * cfgloop.c (find_subloop_latch_edge_by_profile): Update. | |
10912 | * cfgloopanal.c (expected_loop_iterations_unbounded): Update. | |
10913 | * cfgloopmanip.c (scale_loop_profile): Update. | |
10914 | (loopify): Update. | |
10915 | (lv_adjust_loop_entry_edge): Update. | |
10916 | * cfgrtl.c (try_redirect_by_replacing_jump): Update. | |
10917 | (force_nonfallthru_and_redirect): Update. | |
10918 | (purge_dead_edges): Update. | |
10919 | (rtl_flow_call_edges_add): Update. | |
10920 | * cgraphunit.c (init_lowered_empty_function): Update. | |
10921 | (cgraph_node::expand_thunk): Update. | |
10922 | * gimple-pretty-print.c (dump_probability): Update. | |
10923 | (dump_edge_probability): Update. | |
10924 | * gimple-ssa-isolate-paths.c (isolate_path): Update. | |
10925 | * haifa-sched.c (sched_create_recovery_edges): Update. | |
10926 | * hsa-gen.c (convert_switch_statements): Update. | |
10927 | * ifcvt.c (dead_or_predicable): Update. | |
10928 | * ipa-inline-transform.c (inline_transform): Update. | |
10929 | * ipa-split.c (split_function): Update. | |
10930 | * ipa-utils.c (ipa_merge_profiles): Update. | |
10931 | * loop-doloop.c (add_test): Update. | |
10932 | * loop-unroll.c (unroll_loop_runtime_iterations): Update. | |
10933 | * lto-streamer-in.c (input_cfg): Update. | |
10934 | (input_function): Update. | |
10935 | * lto-streamer-out.c (output_cfg): Update. | |
10936 | * modulo-sched.c (sms_schedule): Update. | |
10937 | * postreload-gcse.c (eliminate_partially_redundant_load): Update. | |
10938 | * predict.c (maybe_hot_edge_p): Update. | |
10939 | (unlikely_executed_edge_p): Update. | |
10940 | (probably_never_executed_edge_p): Update. | |
10941 | (dump_prediction): Update. | |
10942 | (drop_profile): Update. | |
10943 | (propagate_unlikely_bbs_forward): Update. | |
10944 | (determine_unlikely_bbs): Update. | |
10945 | (force_edge_cold): Update. | |
10946 | * profile.c (compute_branch_probabilities): Update. | |
10947 | * reg-stack.c (better_edge): Update. | |
10948 | * shrink-wrap.c (handle_simple_exit): Update. | |
10949 | * tracer.c (better_p): Update. | |
10950 | * trans-mem.c (expand_transaction): Update. | |
10951 | (split_bb_make_tm_edge): Update. | |
10952 | * tree-call-cdce.c: Update. | |
10953 | * tree-cfg.c (gimple_find_sub_bbs): Update. | |
10954 | (gimple_split_edge): Update. | |
10955 | (gimple_duplicate_sese_region): Update. | |
10956 | (gimple_duplicate_sese_tail): Update. | |
10957 | (gimple_flow_call_edges_add): Update. | |
10958 | (insert_cond_bb): Update. | |
10959 | (execute_fixup_cfg): Update. | |
10960 | * tree-cfgcleanup.c (cleanup_control_expr_graph): Update. | |
10961 | * tree-complex.c (expand_complex_div_wide): Update. | |
10962 | * tree-eh.c (lower_resx): Update. | |
10963 | (unsplit_eh): Update. | |
10964 | (cleanup_empty_eh_move_lp): Update. | |
10965 | * tree-inline.c (copy_edges_for_bb): Update. | |
10966 | (freqs_to_counts): Update. | |
10967 | (copy_cfg_body): Update. | |
10968 | * tree-ssa-dce.c (remove_dead_stmt): Update. | |
10969 | * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. | |
10970 | * tree-ssa-loop-im.c (execute_sm_if_changed): Update. | |
10971 | * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update. | |
10972 | (unloop_loops): Update. | |
10973 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. | |
10974 | * tree-ssa-loop-split.c (connect_loops): Update. | |
10975 | (split_loop): Update. | |
10976 | * tree-ssa-loop-unswitch.c (hoist_guard): Update. | |
10977 | * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update. | |
10978 | * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update. | |
10979 | * tree-ssa-reassoc.c (branch_fixup): Update. | |
10980 | * tree-ssa-tail-merge.c (replace_block_by): Update. | |
10981 | * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update. | |
10982 | (compute_path_counts): Update. | |
10983 | (update_profile): Update. | |
10984 | (recompute_probabilities): Update. | |
10985 | (update_joiner_offpath_counts): Update. | |
10986 | (estimated_freqs_path): Update. | |
10987 | (freqs_to_counts_path): Update. | |
10988 | (clear_counts_path): Update. | |
10989 | (ssa_fix_duplicate_block_edges): Update. | |
10990 | (duplicate_thread_path): Update. | |
10991 | * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update. | |
10992 | (case_bit_test_cmp): Update. | |
10993 | (collect_switch_conv_info): Update. | |
10994 | (gen_inbound_check): Update. | |
10995 | (do_jump_if_equal): Update. | |
10996 | (emit_cmp_and_jump_insns): Update. | |
10997 | * tree-tailcall.c (decrease_profile): Update. | |
10998 | (eliminate_tail_call): Update. | |
10999 | * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. | |
11000 | (vect_do_peeling): Update. | |
11001 | * tree-vect-loop.c (scale_profile_for_vect_loop): Update. | |
11002 | * ubsan.c (ubsan_expand_null_ifn): Update. | |
11003 | (ubsan_expand_ptr_ifn): Update. | |
11004 | * value-prof.c (gimple_divmod_fixed_value): Update. | |
11005 | (gimple_mod_pow2): Update. | |
11006 | (gimple_mod_subtract): Update. | |
11007 | (gimple_ic): Update. | |
11008 | (gimple_stringop_fixed_value): Update. | |
11009 | ||
11010 | 2017-10-19 Uros Bizjak <ubizjak@gmail.com> | |
11011 | ||
11012 | PR target/82618 | |
11013 | * config/i386/i386.md (sub to cmp): New peephole2 pattern. | |
11014 | ||
11015 | 2017-10-19 Alexander Monakov <amonakov@ispras.ru> | |
11016 | ||
11017 | PR rtl-optimization/82395 | |
11018 | * ira-color.c (allocno_priority_compare_func): Fix comparison step | |
11019 | based on non_spilled_static_chain_regno_p. | |
11020 | ||
11021 | 2017-10-19 Uros Bizjak <ubizjak@gmail.com> | |
11022 | ||
11023 | * config/i386/i386.c (output_387_binary_op): Rewrite SSE part. | |
11024 | (ix86_emit_mode_set): Rewrite insn mnemonic construction. | |
11025 | (ix86_prepare_fp_compare_args): Redefine is_sse as bool. | |
11026 | ||
11027 | 2017-10-19 Martin Sebor <msebor@redhat.com> | |
11028 | ||
11029 | PR tree-optimization/82596 | |
11030 | * tree.c (array_at_struct_end_p): Handle STRING_CST. | |
11031 | ||
11032 | 2017-10-19 Eric Botcazou <ebotcazou@adacore.com> | |
11033 | ||
11034 | * asan.c (handle_builtin_alloca): Deal with all alloca variants. | |
11035 | (get_mem_refs_of_builtin_call): Likewise. | |
11036 | * builtins.c (expand_builtin_apply): Adjust call to | |
11037 | allocate_dynamic_stack_space. | |
11038 | (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass | |
11039 | the third argument to allocate_dynamic_stack_space, otherwise -1. | |
11040 | (expand_builtin): Deal with all alloca variants. | |
11041 | (is_inexpensive_builtin): Likewise. | |
11042 | * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New. | |
11043 | * calls.c (special_function_p): Deal with all alloca variants. | |
11044 | (initialize_argument_information): Adjust call to | |
11045 | allocate_dynamic_stack_space. | |
11046 | (expand_call): Likewise. | |
11047 | * cfgexpand.c (expand_call_stmt): Deal with all alloca variants. | |
11048 | * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max | |
11049 | * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and | |
11050 | use it for the stack usage computation. | |
11051 | * explow.h (allocate_dynamic_stack_space): Adjust prototype. | |
11052 | * function.c (gimplify_parameters): Call build_alloca_call_expr. | |
11053 | * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow. | |
11054 | Take into account 3rd argument of __builtin_alloca_with_align_and_max. | |
11055 | (in_loop_p): Remove first argument and useless check. | |
11056 | (pass_walloca::execute): Remove useless test and adjust call to above. | |
11057 | * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants | |
11058 | * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr. | |
11059 | (gimplify_call_expr): Deal with all alloca variants. | |
11060 | * hsa-gen.c (gen_hsa_alloca): Likewise. | |
11061 | (gen_hsa_insns_for_call): Likewise. | |
11062 | * ipa-pure-const.c (special_builtin_state): Likewise. | |
11063 | * tree-chkp.c (chkp_build_returned_bound): Likewise. | |
11064 | * tree-object-size.c (alloc_object_size): Likewise. | |
11065 | * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise. | |
11066 | (call_may_clobber_ref_p_1): Likewise. | |
11067 | * tree-ssa-ccp.c (evaluate_stmt): Likewise. | |
11068 | (ccp_fold_stmt): Likewise. | |
11069 | (optimize_stack_restore): Likewise. | |
11070 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. | |
11071 | (mark_all_reaching_defs_necessary_1): Likewise. | |
11072 | (propagate_necessity): Likewise. | |
11073 | (eliminate_unnecessary_stmts): Likewise. | |
11074 | * tree.c (build_common_builtin_nodes): Build | |
11075 | BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX. | |
11076 | (build_alloca_call_expr): New function. | |
11077 | * tree.h (ALLOCA_FUNCTION_CODE_P): New macro. | |
11078 | (CASE_BUILT_IN_ALLOCA): Likewise. | |
11079 | (build_alloca_call_expr): Declare. | |
11080 | * varasm.c (incorporeal_function_p): Deal with all alloca variants. | |
11081 | ||
11082 | 2017-10-19 Eric Botcazou <ebotcazou@adacore.com> | |
11083 | ||
11084 | PR debug/82509 | |
11085 | * dwarf2out.c (new_die_raw): New static inline function. | |
11086 | (new_die): Use it to create the DIE. | |
11087 | (add_AT_external_die_ref): Likewise. | |
11088 | (clone_die): Likewise. | |
11089 | (clone_as_declaration): Likewise. | |
11090 | (dwarf2out_vms_debug_main_pointer): Likewise. | |
11091 | (base_type_die): Likewise. Remove early return for corner cases. | |
11092 | Do not call add_pubtype on the DIE here. | |
11093 | (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE. | |
11094 | (modified_type_die): Adjust the lookup for reverse order DIEs. Skip | |
11095 | typedefs for base types with DW_AT_endianity. Make sure a DIE with | |
11096 | native order exists for base types, attach the DIE manually and call | |
11097 | add_pubtype on it. Do not equate a reverse order DIE to the type. | |
11098 | ||
11099 | 2017-10-19 Richard Earnshaw <rearnsha@arm.com> | |
11100 | ||
11101 | * config/arm/arm.c (align_ok_ldrd_strd): New function. | |
11102 | (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of | |
11103 | the mem into it. | |
11104 | (gen_operands_ldrd_strd): Validate the alignment of the accesses. | |
11105 | ||
11106 | 2017-10-19 Jakub Jelinek <jakub@redhat.com> | |
11107 | ||
11108 | * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. Or | |
11109 | SANITIZE_BUILTIN into SANITIZE_UNDEFINED. | |
11110 | * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN, | |
11111 | BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins. | |
11112 | * opts.c (sanitizer_opts): Add builtin. | |
11113 | * ubsan.c (instrument_builtin): New function. | |
11114 | (pass_ubsan::execute): Call it. | |
11115 | (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN. | |
11116 | * doc/invoke.texi: Document -fsanitize=builtin. | |
11117 | ||
11118 | * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch | |
11119 | builtins, store max (log2 (align), 0) into uchar field instead of | |
11120 | align into uptr field. | |
11121 | (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins, | |
11122 | store uchar 0 field instead of uptr 0 field. | |
11123 | (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin, | |
11124 | instead of passing one address of struct with 2 locations pass | |
11125 | two addresses of structs with 1 location each. | |
11126 | * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH, | |
11127 | BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT, | |
11128 | BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN, | |
11129 | BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed. | |
11130 | (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1, | |
11131 | BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT, | |
11132 | BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1, | |
11133 | BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins. | |
11134 | ||
11135 | 2017-10-19 Martin Liska <mliska@suse.cz> | |
11136 | ||
11137 | PR driver/81829 | |
11138 | * file-find.c (remove_prefix): Remove. | |
11139 | * file-find.h (remove_prefix): Likewise. | |
11140 | * gcc-ar.c: Remove smartness of lookup. | |
11141 | ||
11142 | 2017-10-19 Segher Boessenkool <segher@kernel.crashing.org> | |
11143 | ||
11144 | * config/rs6000/rs6000.md (*call_indirect_aix<mode>, | |
11145 | *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>, | |
11146 | *call_value_indirect_elfv2<mode>): Add correct mode to the unspec. | |
11147 | ||
11148 | 2017-10-19 Jakub Jelinek <jakub@redhat.com> | |
11149 | ||
11150 | PR target/82580 | |
11151 | * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2. | |
11152 | (setcc + and to xor + setcc): New peephole2. | |
11153 | ||
11154 | 2017-10-19 Tom de Vries <tom@codesourcery.com> | |
11155 | ||
11156 | * doc/sourcebuild.texi (Test Directives, Variants of | |
11157 | dg-require-support): Add dg-require-stack-size. | |
11158 | ||
11159 | 2017-10-19 Martin Liska <mliska@suse.cz> | |
11160 | ||
11161 | PR sanitizer/82517 | |
11162 | * gimplify.c (gimplify_decl_expr): Do not instrument variables | |
11163 | that have a large alignment. | |
11164 | (gimplify_target_expr): Likewise. | |
11165 | ||
11166 | 2017-10-18 Segher Boessenkool <segher@kernel.crashing.org> | |
11167 | ||
11168 | PR rtl-optimization/82602 | |
11169 | * ira.c (rtx_moveable_p): Return false for volatile asm. | |
11170 | ||
11171 | 2017-10-18 Uros Bizjak <ubizjak@gmail.com> | |
11172 | ||
11173 | PR target/82580 | |
11174 | * config/i386/i386-modes.def (CCGZ): New CC mode. | |
11175 | * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern. | |
11176 | * config/i386/predicates.md (ix86_comparison_operator): | |
11177 | Handle CCGZmode. | |
11178 | * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: | |
11179 | Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons | |
11180 | with double-word subtraction. | |
11181 | (put_condition_code): Handle CCGZmode. | |
11182 | ||
11183 | 2017-10-18 Aldy Hernandez <aldyh@redhat.com> | |
11184 | ||
11185 | * wide-int.cc (debug (const wide_int &)): New. | |
11186 | (debug (const wide_int *)): New. | |
11187 | (debug (const widest_int &)): New. | |
11188 | (debug (const widest_int *)): New. | |
11189 | ||
11190 | 2017-10-18 Vladimir Makarov <vmakarov@redhat.com> | |
11191 | ||
11192 | PR middle-end/82556 | |
11193 | * lra-constraints.c (curr_insn_transform): Use non-input operand | |
11194 | instead of output one for matched reload. | |
11195 | ||
11196 | 2017-10-18 Bin Cheng <bin.cheng@arm.com> | |
11197 | ||
11198 | * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file. | |
11199 | (tree-ssa-loop-ivopts.h): New header file. | |
11200 | (struct builtin_info): New fields. | |
11201 | (classify_builtin_1): Compute and record base and offset parts for | |
11202 | memset builtin partition by calling strip_offset. | |
11203 | (offset_cmp, fuse_memset_builtins): New functions. | |
11204 | (finalize_partitions): Fuse adjacent memset partitions by calling | |
11205 | above function. | |
11206 | * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration. | |
11207 | Expose the interface. | |
11208 | * tree-ssa-loop-ivopts.h (strip_offset): New declaration. | |
11209 | ||
11210 | 2017-10-18 Bin Cheng <bin.cheng@arm.com> | |
11211 | ||
11212 | PR tree-optimization/82574 | |
11213 | * tree-loop-distribution.c (find_single_drs): New parameter. Check | |
11214 | that data reference must be executed exactly once per iteration | |
11215 | against the outermost loop in nest. | |
11216 | (classify_partition): Update call to above function. | |
11217 | ||
11218 | 2017-10-18 Richard Biener <rguenther@suse.de> | |
11219 | ||
11220 | PR tree-optimization/82591 | |
11221 | * graphite.c (graphite_transform_loops): Move code gen message | |
11222 | printing ... | |
11223 | * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): | |
11224 | Here. Handle scop_to_isl_ast failing. | |
11225 | (scop_to_isl_ast): Limit the number of ISL operations. | |
11226 | ||
11227 | 2017-10-18 Richard Biener <rguenther@suse.de> | |
11228 | ||
11229 | * graphite-isl-ast-to-gimple.c | |
11230 | (translate_isl_ast_to_gimple::set_rename): Simplify. | |
11231 | (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline... | |
11232 | (graphite_copy_stmts_from_block): ... here. | |
11233 | (copy_bb_and_scalar_dependences): Simplify. | |
11234 | (add_parameters_to_ivs_params): Canonicalize. | |
11235 | (generate_entry_out_of_ssa_copies): Simplify. | |
11236 | * graphite-sese-to-poly.c (extract_affine_name): Simplify | |
11237 | by passing in ISL dimension. | |
11238 | (parameter_index_in_region_1): Rename to ... | |
11239 | (parameter_index_in_region): ... this. | |
11240 | (extract_affine): Adjust assert, pass down parameter index. | |
11241 | (add_param_constraints): Use range-info when available. | |
11242 | (build_scop_context): Adjust. | |
11243 | * sese.c (new_sese_info): Adjust. | |
11244 | (free_sese_info): Likewise. | |
11245 | * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t): | |
11246 | Remove unused typedefs. | |
11247 | (struct sese_info_t): Simplify rename_map, remove incomplete_phis. | |
11248 | ||
11249 | 2017-10-18 Martin Liska <mliska@suse.cz> | |
11250 | ||
11251 | * combine.c (simplify_compare_const): Add gcc_fallthrough. | |
11252 | ||
11253 | 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
11254 | ||
11255 | * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function. | |
11256 | (s390_sched_init): Do not reset s390_sched_state if we entered the | |
11257 | current basic block via a fallthru edge and all others are unlikely. | |
11258 | ||
11259 | 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
11260 | ||
11261 | * config/s390/s390.c (NUM_SIDES): New variable. | |
11262 | (LONGRUNNING_THRESHOLD): New variable. | |
11263 | (LATENCY_FACTOR): New variable. | |
11264 | (s390_sched_score): Decrease score for long-running instructions on | |
11265 | wrong side. | |
11266 | (s390_sched_variable_issue): Perform bookkeeping for long-running | |
11267 | instructions. | |
11268 | ||
11269 | 2017-10-18 Richard Biener <rguenther@suse.de> | |
11270 | ||
11271 | * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id): | |
11272 | Simplify with removal of the parameter rename map. | |
11273 | (set_rename): Likewise. | |
11274 | (should_copy_to_new_region): Likewise. | |
11275 | (graphite_copy_stmts_from_block): Likewise. | |
11276 | (copy_bb_and_scalar_dependences): Remove initialization of | |
11277 | unused copied_bb_map. | |
11278 | (copy_def): Remove. | |
11279 | (copy_internal_parameters): Likewise. | |
11280 | (graphite_regenerate_ast_isl): Do not call copy_internal_parameters. | |
11281 | * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): | |
11282 | Use INTEGRAL_TYPE_P. | |
11283 | (parameter_index_in_region_1): Rename to ... | |
11284 | (assign_parameter_index_in_region): ... this. Assert we have | |
11285 | a parameter we handle. | |
11286 | (scan_tree_for_params): Adjust. | |
11287 | * sese.h (parameter_rename_map_t): Remove. | |
11288 | (struct sese_info_t): Remove unused parameter_rename_map and | |
11289 | copied_bb_map members. | |
11290 | * sese.c (new_sese_info): Adjust. | |
11291 | (free_sese_info): Likewise. | |
11292 | ||
11293 | 2017-10-18 Martin Liska <mliska@suse.cz> | |
11294 | ||
11295 | PR sanitizer/82545 | |
11296 | * asan.c (asan_expand_poison_ifn): Do not put gimple stmt | |
11297 | on an abnormal edge. | |
11298 | ||
11299 | 2017-10-18 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
11300 | ||
11301 | * doc/invoke.texi (ffunction-sections and fdata-sections): | |
11302 | Update. | |
11303 | ||
11304 | 2017-10-17 Eric Botcazou <ebotcazou@adacore.com> | |
11305 | ||
11306 | * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if | |
11307 | the use statement can throw internally. | |
11308 | ||
11309 | 2017-10-17 Eric Botcazou <ebotcazou@adacore.com> | |
11310 | ||
11311 | * config/visium/visium.c (visium_select_cc_mode): Return CCmode for | |
11312 | any RTX present on the RHS of a SET. | |
11313 | * compare-elim.c (try_eliminate_compare): Restore comment. | |
11314 | ||
11315 | 2017-10-17 Jakub Jelinek <jakub@redhat.com> | |
11316 | ||
11317 | * langhooks.h (struct lang_hooks): Document that tree_size langhook | |
11318 | may be also called on tcc_type nodes. | |
11319 | * langhooks.c (lhd_tree_size): Likewise. | |
11320 | ||
11321 | 2017-10-17 David Malcolm <dmalcolm@redhat.com> | |
11322 | ||
11323 | * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of | |
11324 | format_warning_at_substring. | |
11325 | (maybe_warn): Convert source_range * param to a location_t. Pass | |
11326 | UNKNOWN_LOCATION rather than NULL to fmtwarn. | |
11327 | (format_directive): Remove code to extract source_ranges and | |
11328 | source_range * in favor of just a location_t. | |
11329 | (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to | |
11330 | fmtwarn. | |
11331 | * substring-locations.c (format_warning_va): Convert | |
11332 | source_range * param to a location_t. | |
11333 | (format_warning_at_substring): Likewise. | |
11334 | * substring-locations.h (format_warning_va): Likewise. | |
11335 | (format_warning_at_substring): Likewise. | |
11336 | ||
11337 | 2017-10-17 Jan Hubicka <hubicka@ucw.cz> | |
11338 | ||
11339 | * target.h (enum vect_cost_for_stmt): Add vec_gather_load and | |
11340 | vec_scatter_store | |
11341 | * tree-vect-stmts.c (record_stmt_cost): Make difference between normal | |
11342 | and scatter/gather ops. | |
11343 | ||
11344 | * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add | |
11345 | vec_gather_load and vec_scatter_store. | |
11346 | * arm/arm.c (arm_builtin_vectorization_cost): Likewise. | |
11347 | * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise. | |
11348 | * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise. | |
11349 | * s390/s390.c (s390_builtin_vectorization_cost): Likewise. | |
11350 | * spu/spu.c (spu_builtin_vectorization_cost): Likewise. | |
11351 | * i386/i386.c (x86_builtin_vectorization_cost): Likewise. | |
11352 | ||
11353 | 2017-10-17 Uros Bizjak <ubizjak@gmail.com> | |
11354 | ||
11355 | * reg-stack.c (compare_for_stack_reg): Add bool argument. | |
11356 | Detect FTST instruction and handle its register pops. Only pop | |
11357 | second operand if can_pop_second_op is true. | |
11358 | (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to | |
11359 | set can_pop_second_op to false in the compare_for_stack_reg call. | |
11360 | ||
11361 | * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call | |
11362 | output_fp_compare for stack register operands. | |
11363 | * config/i386/i386.c (output_fp_compare): Do not output SSE compare | |
11364 | instructions here. Do not emit stack register pops here. Assert | |
11365 | that FCOMPP pops next to top stack register. Rewrite function. | |
11366 | ||
11367 | 2017-10-17 Nathan Sidwell <nathan@acm.org> | |
11368 | ||
11369 | PR middle-end/82577 | |
11370 | * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P, | |
11371 | use DECL_ASSEMBLER_NAME_RAW. | |
11372 | ||
11373 | PR middle-end/82546 | |
11374 | * tree.c (tree_code_size): Reformat. Punt to lang hook for unknown | |
11375 | TYPE nodes. | |
11376 | ||
11377 | 2017-10-17 Qing Zhao <qing.zhao@oracle.com> | |
11378 | Wilco Dijkstra <wilco.dijkstra@arm.com> | |
11379 | ||
11380 | * builtins.c (expand_builtin_update_setjmp_buf): Add a | |
11381 | converstion to Pmode from the buf_addr. | |
11382 | ||
11383 | 2017-10-17 Richard Biener <rguenther@suse.de> | |
11384 | ||
11385 | * graphite-dependences.c (scop_get_reads_and_writes): Change | |
11386 | output parameters to references. | |
11387 | ||
11388 | 2017-10-17 Jackson Woodruff <jackson.woodruff@arm.com> | |
11389 | ||
11390 | PR 71026/tree-optimization | |
11391 | * fold-const.c (distribute_real_division): Removed. | |
11392 | (fold_binary_loc): Remove calls to distribute_real_divison. | |
11393 | ||
11394 | 2017-10-17 Richard Biener <rguenther@suse.de> | |
11395 | ||
11396 | * graphite-scop-detection.c | |
11397 | (scop_detection::stmt_has_simple_data_refs_p): Always use | |
11398 | the full nest as region. | |
11399 | (try_generate_gimple_bb): Likewise. | |
11400 | * sese.c (scalar_evolution_in_region): Simplify now that | |
11401 | SCEV can handle instantiation in regions. | |
11402 | * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate | |
11403 | in the non-loop part of a function if requested. | |
11404 | ||
11405 | 2017-10-17 Richard Biener <rguenther@suse.de> | |
11406 | ||
11407 | PR tree-optimization/82563 | |
11408 | * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies): | |
11409 | New function. | |
11410 | (graphite_regenerate_ast_isl): Call it. | |
11411 | * graphite-scop-detection.c (build_scops): Remove entry edge split. | |
11412 | ||
11413 | 2017-10-17 Jakub Jelinek <jakub@redhat.com> | |
11414 | ||
11415 | PR tree-optimization/82549 | |
11416 | * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1): | |
11417 | Formatting fixes. Instead of calling make_bit_field_ref with negative | |
11418 | bitpos return 0. | |
11419 | ||
11420 | 2017-10-17 Olga Makhotina <olga.makhotina@intel.com> | |
11421 | ||
11422 | * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd, | |
11423 | _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20 | |
11424 | _mm_maskz_reduce_ss): New. | |
11425 | * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask, | |
11426 | __builtin_ia32_reducess_mask): Ditto.. | |
11427 | (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove. | |
11428 | * config/i386/sse.md (reduces<mode>): Renamed to ... | |
11429 | (reduces<mode><mask_scalar_name>): ... this. | |
11430 | (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}): | |
11431 | Changed to ... | |
11432 | (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>| | |
11433 | %0<mask_scalar_operand4>, %1, %2, %3}): ... this. | |
11434 | ||
11435 | 2017-10-16 David Malcolm <dmalcolm@redhat.com> | |
11436 | ||
11437 | * Makefile.in (OBJS): Add unique-ptr-tests.o. | |
11438 | * selftest-run-tests.c (selftest::run_tests): Call | |
11439 | selftest::unique_ptr_tests_cc_tests. | |
11440 | * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl. | |
11441 | * unique-ptr-tests.cc: New file. | |
11442 | ||
11443 | 2017-10-16 Vladimir Makarov <vmakarov@redhat.com> | |
11444 | ||
11445 | PR sanitizer/82353 | |
11446 | * lra.c (collect_non_operand_hard_regs): Don't ignore operator | |
11447 | locations. | |
11448 | * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up. | |
11449 | (make_hard_regno_born, make_hard_regno_dead): Update | |
11450 | bb_killed_pseudos and bb_gen_pseudos for fixed regs. | |
11451 | ||
11452 | 2017-10-16 Jeff Law <law@redhat.com> | |
11453 | ||
11454 | * tree-ssa-dse.c (live_bytes_read): Fix thinko. | |
11455 | ||
11456 | 2017-10-16 Jan Hubicka <hubicka@ucw.cz> | |
11457 | ||
11458 | * x86-tune-costs.h (znver1_cost): Fix move cost tables. | |
11459 | ||
11460 | 2017-10-16 Olivier Hainque <hainque@adacore.com> | |
11461 | ||
11462 | * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default | |
11463 | with_cpu if we were configured for an e500v2 target cpu name. | |
11464 | ||
11465 | 2017-10-16 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
11466 | ||
11467 | * config/arm/arm-cpus.in (cortex-m33): Add nodsp option. | |
11468 | * doc/invoke.texi: Document +nodsp as a valid extension for | |
11469 | -mcpu=cortex-m33. | |
11470 | ||
11471 | 2017-10-16 Martin Liska <mliska@suse.cz> | |
11472 | ||
11473 | * sbitmap.c (bitmap_bit_in_range_p_checking): New function. | |
11474 | (test_set_range): Likewise. | |
11475 | (test_range_functions): Rename to ... | |
11476 | (test_bit_in_range): ... this. | |
11477 | (sbitmap_c_tests): Add new test. | |
11478 | ||
11479 | 2017-10-16 Tamar Christina <tamar.christina@arm.com> | |
11480 | ||
11481 | * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): | |
11482 | New. | |
11483 | (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New. | |
11484 | (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New. | |
11485 | ||
11486 | 2017-10-16 Tamar Christina <tamar.christina@arm.com> | |
11487 | ||
11488 | * config/aarch64/aarch64-builtins.c | |
11489 | (aarch64_types_quadopu_lane_qualifiers): New. | |
11490 | (TYPES_QUADOPU_LANE): New. | |
11491 | * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New. | |
11492 | (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New. | |
11493 | (aarch64_<sur>dot_laneq<vsi2qi>): New. | |
11494 | * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New. | |
11495 | (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New. | |
11496 | * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT. | |
11497 | (Vdottype, DOTPROD): New. | |
11498 | (sur): Add SDOT and UDOT. | |
11499 | ||
11500 | 2017-10-16 Tamar Christina <tamar.christina@arm.com> | |
11501 | ||
11502 | * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New. | |
11503 | (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New. | |
11504 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): | |
11505 | Add TARGET_DOTPROD. | |
11506 | * config/aarch64/aarch64-option-extensions.def (dotprod): New. | |
11507 | * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75): | |
11508 | Enable TARGET_DOTPROD. | |
11509 | (cortex-a75.cortex-a55): Likewise. | |
11510 | * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod. | |
11511 | ||
11512 | 2017-10-16 Tamar Christina <tamar.christina@arm.com> | |
11513 | ||
11514 | * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New. | |
11515 | (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS): | |
11516 | New. | |
11517 | * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane): | |
11518 | New. | |
11519 | * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New. | |
11520 | (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New. | |
11521 | * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New. | |
11522 | (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New. | |
11523 | * config/arm/types.md (neon_dot, neon_dot_q): New. | |
11524 | * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U. | |
11525 | ||
11526 | 2017-10-16 Tamar Christina <tamar.christina@arm.com> | |
11527 | ||
11528 | * config/arm/arm.h (TARGET_DOTPROD): New. | |
11529 | * config/arm/arm.c (arm_arch_dotprod): New. | |
11530 | (arm_option_reconfigure_globals): Add arm_arch_dotprod. | |
11531 | * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New. | |
11532 | * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod. | |
11533 | (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New. | |
11534 | (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL. | |
11535 | * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod. | |
11536 | * doc/invoke.texi (armv8.2-a): Document dotprod | |
11537 | ||
11538 | 2017-10-14 Jan Hubicka <hubicka@ucw.cz> | |
11539 | ||
11540 | * i386.c (ix86_vec_cost): New function. | |
11541 | (ix86_rtx_costs): Handle vector operations better. | |
11542 | * i386.h (struct processor_costs): Add sse_op, fmasd, fmass. | |
11543 | * x86-tune-costs.h: Add new costs to all tables. | |
11544 | ||
11545 | 2017-10-14 Jan Hubicka <hubicka@ucw.cz> | |
11546 | ||
11547 | * i386.c (ix86_rtx_costs): Make difference between x87 and SSE | |
11548 | operations. | |
11549 | * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss, | |
11550 | divsd, sqrtss and sqrtsd | |
11551 | * x86-tune-costs.h: Add new entries to all costs. | |
11552 | (znver1_cost): Fix to match real instruction latencies. | |
11553 | ||
11554 | 2017-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11555 | Michael Collison <michael.collison@arm.com> | |
11556 | ||
11557 | * compare-elim.c: Include emit-rtl.h. | |
11558 | (can_merge_compare_into_arith): New function. | |
11559 | (try_validate_parallel): Likewise. | |
11560 | (try_merge_compare): Likewise. | |
11561 | (try_eliminate_compare): Call the above when no previous clobber | |
11562 | is available. | |
11563 | (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN | |
11564 | dataflow problems. | |
11565 | ||
11566 | 2017-10-14 Jakub Jelinek <jakub@redhat.com> | |
11567 | ||
11568 | PR middle-end/62263 | |
11569 | PR middle-end/82498 | |
11570 | * tree-ssa-phiopt.c (value_replacement): Comment fix. Handle | |
11571 | up to 2 preparation statements for ASSIGN in MIDDLE_BB. | |
11572 | ||
11573 | PR middle-end/62263 | |
11574 | PR middle-end/82498 | |
11575 | * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N] | |
11576 | to be any operand_equal_p operands. For & (B - 1) require | |
11577 | B to be power of 2. Recognize | |
11578 | (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns. | |
11579 | ||
11580 | 2017-10-14 Uros Bizjak <ubizjak@gmail.com> | |
11581 | ||
11582 | PR bootstrap/82553 | |
11583 | * optabs.c (expand_memory_blockage): Fix call of | |
11584 | targetm.have_memory_blockage. | |
11585 | ||
11586 | 2017-10-14 Jakub Jelinek <jakub@redhat.com> | |
11587 | ||
11588 | PR bootstrap/82548 | |
11589 | * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*, | |
11590 | x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append | |
11591 | objects to extra_objs instead of overwriting it. | |
11592 | ||
11593 | 2017-10-14 Uros Bizjak <ubizjak@gmail.com> | |
11594 | ||
11595 | * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): | |
11596 | Use any_fp_register_operand as operand[3] predicate. Simplify | |
11597 | equality test for operands[2] and operands[4] memory location. | |
11598 | (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. | |
11599 | (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New. | |
11600 | (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. | |
11601 | (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use | |
11602 | any_fp_register_operand as operand[1] predicate. Simplify | |
11603 | equality test for operands[0] and operands[3] memory location. | |
11604 | (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. | |
11605 | (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New. | |
11606 | (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto. | |
11607 | ||
11608 | 2017-10-14 Uros Bizjak <ubizjak@gmail.com> | |
11609 | ||
11610 | * target-insns.def: Add memory_blockage. | |
11611 | * optabs.c (expand_memory_blockage): New function. | |
11612 | (expand_asm_memory_barrier): Rename ... | |
11613 | (expand_asm_memory_blockage): ... to this. | |
11614 | (expand_mem_thread_fence): Call expand_memory_blockage | |
11615 | instead of expand_asm_memory_barrier. | |
11616 | (expand_mem_singnal_fence): Ditto. | |
11617 | (expand_atomic_load): Ditto. | |
11618 | (expand_atomic_store): Ditto. | |
11619 | * doc/md.texi (Standard Pattern Names For Generation): | |
11620 | Document memory_blockage instruction pattern. | |
11621 | ||
11622 | 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com> | |
11623 | ||
11624 | * config/rl78/rl78.c (rl78_emit_libcall): New function. | |
11625 | * config/rl78/rl78-protos.h (rl78_emit_libcall): New function. | |
11626 | * config/rl78/rl78.md: New define_expand "adddi3". | |
11627 | ||
11628 | 2017-10-13 Jan Hubicka <hubicka@ucw.cz> | |
11629 | ||
11630 | * cfghooks.c (verify_flow_info): Disable check that all probabilities | |
11631 | are set correctly. | |
11632 | ||
11633 | 2017-10-13 Jeff Law <law@redhat.com> | |
11634 | ||
11635 | * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly. | |
11636 | ||
11637 | 2017-10-13 Jakub Jelinek <jakub@redhat.com> | |
11638 | ||
11639 | PR target/82274 | |
11640 | * internal-fn.c (expand_mul_overflow): If both operands have | |
11641 | the same highpart of -1 or 0 and the topmost bit of lowpart | |
11642 | is different, overflow is if res <= 0 rather than res < 0. | |
11643 | ||
11644 | 2017-10-13 Pat Haugen <pthaugen@us.ibm.com> | |
11645 | ||
11646 | * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove | |
11647 | TARGET_P9_VECTOR code for unaligned_load case. | |
11648 | ||
11649 | 2017-10-13 Jan Hubicka <hubicka@ucw.cz> | |
11650 | ||
11651 | * cfghooks.c (verify_flow_info): Check that edge probabilities are set. | |
11652 | ||
11653 | 2017-10-13 Nathan Sidwell <nathan@acm.org> | |
11654 | ||
11655 | * tree-core.h (tree_contains_struct): Make bool. | |
11656 | * tree.c (tree_contains_struct): Likewise. | |
11657 | * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom. | |
11658 | (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON, | |
11659 | MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL, | |
11660 | MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS, | |
11661 | MARK_TS_DECL_NON_COMMON): Likewise, use comma operator. | |
11662 | ||
11663 | 2017-10-13 Richard Biener <rguenther@suse.de> | |
11664 | ||
11665 | * graphite-isl-ast-to-gimple.c | |
11666 | (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused | |
11667 | parameters and dominance check. | |
11668 | (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust. | |
11669 | (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise. | |
11670 | (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl): | |
11671 | Do not update SSA form here or do intermediate IL verification. | |
11672 | * graphite.c: Include tree-ssa.h and tree-into-ssa.h. | |
11673 | (graphite_initialize): Remove check on the number of loops in | |
11674 | the function and inline into graphite_transform_loops. | |
11675 | (graphite_finalize): Inline into graphite_transform_loops. | |
11676 | (graphite_transform_loops): Perform SSA update and IL verification | |
11677 | here. | |
11678 | * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove. | |
11679 | ||
11680 | 2017-10-13 Richard Biener <rguenther@suse.de> | |
11681 | ||
11682 | * graphite-isl-ast-to-gimple.c (max_mode_int_precision, | |
11683 | graphite_expression_type_precision): Avoid global constructor | |
11684 | by moving ... | |
11685 | (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here. | |
11686 | (translate_isl_ast_to_gimple::graphite_expr_type): Add type member. | |
11687 | (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it. | |
11688 | (translate_isl_ast_to_gimple::build_iv_mapping): Likewise. | |
11689 | (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise. | |
11690 | * graphite-sese-to-poly.c (build_original_schedule): Return nothing. | |
11691 | ||
11692 | 2017-10-13 H.J. Lu <hongjiu.lu@intel.com> | |
11693 | ||
11694 | PR target/82499 | |
11695 | * config/i386/i386.h (ix86_red_zone_size): New. | |
11696 | * config/i386/i386.md (push peephole2s): Replace | |
11697 | "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0". | |
11698 | ||
11699 | 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> | |
11700 | Alan Hayward <alan.hayward@arm.com> | |
11701 | David Sherwood <david.sherwood@arm.com> | |
11702 | ||
11703 | * combine.c (can_change_dest_mode): Reject changes in | |
11704 | REGMODE_NATURAL_SIZE. | |
11705 | ||
11706 | 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> | |
11707 | Alan Hayward <alan.hayward@arm.com> | |
11708 | David Sherwood <david.sherwood@arm.com> | |
11709 | ||
11710 | * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE. | |
11711 | (expand_debug_source_expr): Likewise. | |
11712 | * combine.c (combine_simplify_rtx): Likewise. | |
11713 | * cse.c (fold_rtx): Likewise. | |
11714 | * fwprop.c (canonicalize_address): Likewise. | |
11715 | * targhooks.c (default_shift_truncation_mask): Likewise. | |
11716 | ||
11717 | 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> | |
11718 | Alan Hayward <alan.hayward@arm.com> | |
11719 | David Sherwood <david.sherwood@arm.com> | |
11720 | ||
11721 | * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE. | |
11722 | (widened_mode): Likewise. | |
11723 | (expand_unop): Likewise. | |
11724 | * ree.c (transform_ifelse): Likewise. | |
11725 | (merge_def_and_ext): Likewise. | |
11726 | (combine_reaching_defs): Likewise. | |
11727 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
11728 | ||
11729 | 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> | |
11730 | Alan Hayward <alan.hayward@arm.com> | |
11731 | David Sherwood <david.sherwood@arm.com> | |
11732 | ||
11733 | * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset. | |
11734 | * combine.c (gen_lowpart_for_combine): Likewise. | |
11735 | * dwarf2out.c (rtl_for_decl_location): Likewise. | |
11736 | * final.c (alter_subreg): Likewise. | |
11737 | * rtlhooks.c (gen_lowpart_general): Likewise. | |
11738 | (gen_lowpart_if_possible): Likewise. | |
11739 | ||
11740 | 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org> | |
11741 | Alan Hayward <alan.hayward@arm.com> | |
11742 | David Sherwood <david.sherwood@arm.com> | |
11743 | ||
11744 | * calls.c (expand_call): Use subreg_lowpart_offset. | |
11745 | * cse.c (cse_insn): Likewise. | |
11746 | * regcprop.c (copy_value): Likewise. | |
11747 | (copyprop_hardreg_forward_1): Likewise. | |
11748 | ||
11749 | 2017-10-13 Jakub Jelinek <jakub@redhat.com> | |
11750 | ||
11751 | PR target/82524 | |
11752 | * config/i386/i386.md (addqi_ext_1, andqi_ext_1, | |
11753 | *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change | |
11754 | =Q constraints to +Q and into insn condition add check | |
11755 | that operands[0] and operands[1] are equal. | |
11756 | (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change | |
11757 | =Q constraints to +Q and into insn condition add check | |
11758 | that operands[0] is equal to either operands[1] or operands[2]. | |
11759 | ||
11760 | PR target/82498 | |
11761 | * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups, | |
11762 | instead of handling MINUS_EXPR twice (once for each argument), | |
11763 | canonicalize operand order and handle just once, use rtype where | |
11764 | possible. Handle (A << B) | (A >> (-B & (Z - 1))). | |
11765 | ||
11766 | PR target/82498 | |
11767 | * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow | |
11768 | any values of __C while still being pattern recognizable as a simple | |
11769 | rotate instruction. | |
11770 | ||
11771 | 2017-10-13 Richard Biener <rguenther@suse.de> | |
11772 | ||
11773 | PR tree-optimization/82451 | |
11774 | Revert | |
11775 | 2017-10-02 Richard Biener <rguenther@suse.de> | |
11776 | ||
11777 | PR tree-optimization/82355 | |
11778 | * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build | |
11779 | a mapping for the enclosing loop but avoid generating one for | |
11780 | the loop tree root. | |
11781 | (copy_bb_and_scalar_dependences): Remove premature codegen | |
11782 | error on PHIs in blocks duplicated into multiple places. | |
11783 | * graphite-scop-detection.c | |
11784 | (scop_detection::stmt_has_simple_data_refs_p): For a loop not | |
11785 | in the region use it as loop and nest to analyze the DR in. | |
11786 | (try_generate_gimple_bb): Likewise. | |
11787 | * graphite-sese-to-poly.c (extract_affine_chrec): Adjust. | |
11788 | (add_loop_constraints): For blocks in a loop not in the region | |
11789 | create a dimension with a single iteration. | |
11790 | * sese.h (gbb_loop_at_index): Remove assert. | |
11791 | ||
11792 | * cfgloop.c (loop_preheader_edge): For the loop tree root | |
11793 | return the single successor of the entry block. | |
11794 | * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): | |
11795 | Reset the SCEV hashtable and niters. | |
11796 | * graphite-scop-detection.c | |
11797 | (scop_detection::graphite_can_represent_scev): Add SCOP parameter, | |
11798 | assert that we only have POLYNOMIAL_CHREC that vary in loops | |
11799 | contained in the region. | |
11800 | (scop_detection::graphite_can_represent_expr): Adjust. | |
11801 | (scop_detection::stmt_has_simple_data_refs_p): For loops | |
11802 | not in the region set loop to NULL. The nest is now the | |
11803 | entry edge to the region. | |
11804 | (try_generate_gimple_bb): Likewise. | |
11805 | * sese.c (scalar_evolution_in_region): Adjust for | |
11806 | instantiate_scev change. | |
11807 | * tree-data-ref.h (graphite_find_data_references_in_stmt): | |
11808 | Make nest parameter the edge into the region. | |
11809 | (create_data_ref): Likewise. | |
11810 | * tree-data-ref.c (dr_analyze_indices): Make nest parameter an | |
11811 | entry edge into a region and adjust instantiate_scev calls. | |
11812 | (create_data_ref): Likewise. | |
11813 | (graphite_find_data_references_in_stmt): Likewise. | |
11814 | (find_data_references_in_stmt): Pass the loop preheader edge | |
11815 | from the nest argument. | |
11816 | * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below | |
11817 | parameter the edge into the region. | |
11818 | (instantiate_parameters): Use the loop preheader edge as entry. | |
11819 | * tree-scalar-evolution.c (analyze_scalar_evolution): Handle | |
11820 | NULL loop. | |
11821 | (get_instantiated_value_entry): Make instantiate_below parameter | |
11822 | the edge into the region. | |
11823 | (instantiate_scev_name): Likewise. Adjust dominance checks, | |
11824 | when we cannot use loop-based instantiation instantiate by | |
11825 | walking use-def chains. | |
11826 | (instantiate_scev_poly): Adjust. | |
11827 | (instantiate_scev_binary): Likewise. | |
11828 | (instantiate_scev_convert): Likewise. | |
11829 | (instantiate_scev_not): Likewise. | |
11830 | (instantiate_array_ref): Remove. | |
11831 | (instantiate_scev_3): Likewise. | |
11832 | (instantiate_scev_2): Likewise. | |
11833 | (instantiate_scev_1): Likewise. | |
11834 | (instantiate_scev_r): Do not blindly handle N-operand trees. | |
11835 | Do not instantiate array-refs. Handle all constants and invariants. | |
11836 | (instantiate_scev): Make instantiate_below parameter | |
11837 | the edge into the region. | |
11838 | (resolve_mixers): Use the loop preheader edge for the region | |
11839 | parameter to instantiate_scev_r. | |
11840 | * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust. | |
11841 | ||
11842 | 2017-10-13 Richard Biener <rguenther@suse.de> | |
11843 | ||
11844 | PR tree-optimization/82525 | |
11845 | * graphite-isl-ast-to-gimple.c | |
11846 | (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split | |
11847 | out from ... | |
11848 | (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here. | |
11849 | Fail code generation when we cannot represent the isl integer. | |
11850 | (binary_op_to_tree): Elide modulo operations that are no-ops | |
11851 | in the type we code generate. Remove now superfluous code | |
11852 | generation errors. | |
11853 | ||
11854 | 2017-10-13 Richard Biener <rguenther@suse.de> | |
11855 | ||
11856 | * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove. | |
11857 | (scop_detection::harmful_loop_in_region): Remove premature | |
11858 | IV type restriction. | |
11859 | (scop_detection::graphite_can_represent_scev): We can handle | |
11860 | pointer IVs just fine. | |
11861 | ||
11862 | 2017-10-13 Alan Modra <amodra@gmail.com> | |
11863 | ||
11864 | * doc/extend.texi (Extended Asm <Clobbers>): Rename to | |
11865 | "Clobbers and Scratch Registers". Add paragraph on | |
11866 | alternative to clobbers for scratch registers and OpenBLAS | |
11867 | example. | |
11868 | ||
11869 | 2017-10-13 Alan Modra <amodra@gmail.com> | |
11870 | ||
11871 | * doc/extend.texi (Clobbers): Correct vax example. Delete old | |
11872 | example of a memory input for a string of known length. Move | |
11873 | commentary out of table. Add a number of new examples | |
11874 | covering array memory inputs. | |
11875 | ||
11876 | 2017-10-12 Martin Liska <mliska@suse.cz> | |
11877 | ||
11878 | PR tree-optimization/82493 | |
11879 | * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation. | |
11880 | (test_range_functions): New function. | |
11881 | (sbitmap_c_tests): Likewise. | |
11882 | * selftest-run-tests.c (selftest::run_tests): Run new tests. | |
11883 | * selftest.h (sbitmap_c_tests): New function. | |
11884 | ||
11885 | * tree-ssa-dse.c (live_bytes_read): Fix thinko. | |
11886 | ||
11887 | 2017-10-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
11888 | ||
11889 | * config/rs6000/amo.h: Fix spacing issue. | |
11890 | ||
11891 | 2017-10-12 Jakub Jelinek <jakub@redhat.com> | |
11892 | ||
11893 | PR target/82498 | |
11894 | * config/i386/i386.md (*ashl<mode>3_mask_1, | |
11895 | *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1, | |
11896 | *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split | |
11897 | patterns. | |
11898 | ||
11899 | 2017-10-12 Jan Hubicka <hubicka@ucw.cz> | |
11900 | ||
11901 | * profile-count.h (safe_scale_64bit): Fix GCC4.x path. | |
11902 | (profile_probability): Set max_probability | |
11903 | to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows | |
11904 | in temporaries. | |
11905 | * profile-count.c (profile_probability::differs_from_p): Do not | |
11906 | rely on max_probaiblity == 10000 | |
11907 | ||
11908 | 2017-10-12 Jeff Law <law@redhat.com> | |
11909 | ||
11910 | * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with | |
11911 | negative offsets. | |
11912 | ||
11913 | 2017-10-12 Martin Sebor <msebor@redhat.com> | |
11914 | ||
11915 | PR other/82301 | |
11916 | PR c/82435 | |
11917 | * cgraphunit.c (maybe_diag_incompatible_alias): New function. | |
11918 | (handle_alias_pairs): Call it. | |
11919 | * common.opt (-Wattribute-alias): New option. | |
11920 | * doc/extend.texi (ifunc attribute): Discuss C++ specifics. | |
11921 | * doc/invoke.texi (-Wattribute-alias): Document. | |
11922 | ||
11923 | 2017-10-12 Vladimir Makarov <vmakarov@redhat.com> | |
11924 | ||
11925 | Revert | |
11926 | 2017-10-11 Vladimir Makarov <vmakarov@redhat.com> | |
11927 | PR sanitizer/82353 | |
11928 | * lra.c (collect_non_operand_hard_regs): Don't ignore operator | |
11929 | locations. | |
11930 | * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up. | |
11931 | (make_hard_regno_born, make_hard_regno_dead): Update | |
11932 | bb_killed_pseudos and bb_gen_pseudos. | |
11933 | ||
11934 | 2017-10-12 Jan Hubicka <hubicka@ucw.cz> | |
11935 | ||
11936 | * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support. | |
11937 | ||
11938 | 2017-10-12 Uros Bizjak <ubizjak@gmail.com> | |
11939 | ||
11940 | * config/alpha/alpha.c (alpha_split_conditional_move): | |
11941 | Use std::swap instead of manually swapping. | |
11942 | (alpha_stdarg_optimize_hook): Ditto. | |
11943 | (alpha_canonicalize_comparison): Ditto. | |
11944 | ||
11945 | 2017-10-12 Bin Cheng <bin.cheng@arm.com> | |
11946 | ||
11947 | * tree-loop-distribution.c (struct builtin_info): New struct. | |
11948 | (struct partition): Refactor fields into struct builtin_info. | |
11949 | (partition_free): Free struct builtin_info. | |
11950 | (build_size_arg_loc, build_addr_arg_loc): Delete. | |
11951 | (generate_memset_builtin, generate_memcpy_builtin): Get memory range | |
11952 | information from struct builtin_info. | |
11953 | (find_single_drs): New function refactored from classify_partition. | |
11954 | Also moved builtin validity checks to this function. | |
11955 | (compute_access_range, alloc_builtin): New functions. | |
11956 | (classify_builtin_st, classify_builtin_ldst): New functions. | |
11957 | (classify_partition): Refactor code into functions find_single_drs, | |
11958 | classify_builtin_st and classify_builtin_ldst. | |
11959 | (distribute_loop): Don't do runtime alias check when distributing | |
11960 | loop nest. | |
11961 | (find_seed_stmts_for_distribution): New function. | |
11962 | (pass_loop_distribution::execute): Refactor code finding seed | |
11963 | stmts into above function. Support distribution for the innermost | |
11964 | two-level loop nest. Adjust dump information. | |
11965 | ||
11966 | 2017-10-12 Bin Cheng <bin.cheng@arm.com> | |
11967 | ||
11968 | * tree-loop-distribution.c: Adjust the general comment. | |
11969 | (NUM_PARTITION_THRESHOLD): New macro. | |
11970 | (ssa_name_has_uses_outside_loop_p): Support loop nest distribution. | |
11971 | (classify_partition): Skip builtin pattern of loop nest's inner loop. | |
11972 | (merge_dep_scc_partitions): New parameter ignore_alias_p and use it | |
11973 | in call to build_partition_graph. | |
11974 | (finalize_partitions): New parameter. Make loop distribution more | |
11975 | conservative by fusing more partitions. | |
11976 | (distribute_loop): Don't do runtime alias check in case of loop nest | |
11977 | distribution. | |
11978 | (find_seed_stmts_for_distribution): New function. | |
11979 | (prepare_perfect_loop_nest): New function. | |
11980 | (pass_loop_distribution::execute): Refactor code finding seed stmts | |
11981 | and loop nest into above functions. Support loop nest distribution. | |
11982 | Adjust dump information accordingly. | |
11983 | ||
11984 | 2017-10-12 Bin Cheng <bin.cheng@arm.com> | |
11985 | ||
11986 | * tree-loop-distribution.c (break_alias_scc_partitions): Add comment | |
11987 | and set PTYPE_SEQUENTIAL for merged partition. | |
11988 | ||
11989 | 2017-10-12 Richard Biener <rguenther@suse.de> | |
11990 | ||
11991 | PR tree-optimization/69728 | |
11992 | Revert | |
11993 | 2017-09-19 Richard Biener <rguenther@suse.de> | |
11994 | ||
11995 | PR tree-optimization/69728 | |
11996 | * graphite-sese-to-poly.c (schedule_error): New global. | |
11997 | (add_loop_schedule): Handle empty domain by failing the | |
11998 | schedule. | |
11999 | (build_original_schedule): Handle schedule_error. | |
12000 | ||
12001 | * graphite-sese-to-poly.c (add_loop_schedule): Handle empty | |
12002 | domain by returning an unchanged schedule. | |
12003 | ||
12004 | 2017-10-12 Jakub Jelinek <jakub@redhat.com> | |
12005 | ||
12006 | * genrecog.c (validate_pattern): For VEC_SELECT verify that | |
12007 | CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1. | |
12008 | ||
12009 | 2017-10-12 Aldy Hernandez <aldyh@redhat.com> | |
12010 | ||
12011 | * Makefile.in (TAGS): Merge all the *.def files into one pattern. | |
12012 | Handle params.def. | |
12013 | ||
12014 | 2017-10-12 Jakub Jelinek <jakub@redhat.com> | |
12015 | ||
12016 | PR c++/82159 | |
12017 | * expr.c (store_field): Don't optimize away bitsize == 0 store | |
12018 | from CALL_EXPR with addressable return type. | |
12019 | ||
12020 | 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org> | |
12021 | ||
12022 | * config/rs6000/rs6000.h (TARGET_ISEL64): Delete. | |
12023 | * config/rs6000/rs6000.md (sel): Delete mode attribute. | |
12024 | (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>, | |
12025 | *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use | |
12026 | TARGET_ISEL instead of TARGET_ISEL<sel>. | |
12027 | ||
12028 | 2017-10-11 David Edelsohn <dje.gcc@gmail.com> | |
12029 | ||
12030 | * config/rs6000/rs6000.c | |
12031 | (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl. | |
12032 | ||
12033 | 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org> | |
12034 | ||
12035 | * config/rs6000/predicates.md (zero_constant, all_ones_constant): | |
12036 | Move up in file. | |
12037 | (reg_or_cint_operand): Fix comment. | |
12038 | (reg_or_zero_operand): New predicate. | |
12039 | * config/rs6000/rs6000-protos.h (output_isel): Delete. | |
12040 | * config/rs6000/rs6000.c (output_isel): Delete. | |
12041 | * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand | |
12042 | instead of reg_or_cint_operand. Output instruction directly (not via | |
12043 | output_isel). | |
12044 | (isel_unsigned_<mode>): Ditto. | |
12045 | (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of | |
12046 | gpc_reg_operand. Add an instruction alternative for this. Output | |
12047 | instruction directly. | |
12048 | (*isel_reversed_unsigned_<mode>): Ditto. | |
12049 | ||
12050 | 2017-10-11 Uros Bizjak <ubizjak@gmail.com> | |
12051 | ||
12052 | * config/i386/i386.c (ix86_canonicalize_comparison): New function. | |
12053 | (TARGET_CANONICALIZE_COMPARISON): Define. | |
12054 | ||
12055 | 2017-10-11 Qing Zhao <qing.zhao@oracle.com> | |
12056 | ||
12057 | PR target/81422 | |
12058 | * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): | |
12059 | Check whether the dest is REG before adding REG_EQUIV note. | |
12060 | ||
12061 | 2017-10-11 Vladimir Makarov <vmakarov@redhat.com> | |
12062 | ||
12063 | PR sanitizer/82353 | |
12064 | * lra.c (collect_non_operand_hard_regs): Don't ignore operator | |
12065 | locations. | |
12066 | * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up. | |
12067 | (make_hard_regno_born, make_hard_regno_dead): Update | |
12068 | bb_killed_pseudos and bb_gen_pseudos. | |
12069 | ||
12070 | 2017-10-11 Nathan Sidwell <nathan@acm.org> | |
12071 | ||
12072 | * incpath.h (enum incpath_kind): Name enum, prefix values. | |
12073 | (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind. | |
12074 | * incpath.c (heads, tails): Use INC_MAX. | |
12075 | (add_env_var_paths, add_standard_paths): Use incpath_kind. | |
12076 | (merge_include_chains, split_quote_chain, | |
12077 | register_include_chains): Update incpath_kind names. | |
12078 | (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind. | |
12079 | * config/darwin-c.c (add_system_framework_path): Update incpath_kind | |
12080 | names. | |
12081 | (add_framework_path, darwin_register_objc_includes): Likewise. | |
12082 | * config/vms/vms-c.c (vms_c_register_includes): Likewise. | |
12083 | ||
12084 | 2017-10-11 Uros Bizjak <ubizjak@gmail.com> | |
12085 | ||
12086 | * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): | |
12087 | Do not use float_operator operator predicate. | |
12088 | (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto. | |
12089 | * config/i386/predicates.md (float_operator): Remove predicate. | |
12090 | ||
12091 | 2017-10-11 Uros Bizjak <ubizjak@gmail.com> | |
12092 | ||
12093 | * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern. | |
12094 | (*jccxf_i387): Ditto. | |
12095 | (*jcc<mode>_i387): Ditto. | |
12096 | (*jccu<mode>_i387): Ditto. | |
12097 | (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto. | |
12098 | (*jcc_*_i387 splitters): Remove. | |
12099 | * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype. | |
12100 | * config/i386/i386.c (ix86_split_fp_branch): Remove. | |
12101 | * config/i386/predicates.md (ix86_swapped_fp_comparison_operator): | |
12102 | Remove predicate. | |
12103 | ||
12104 | 2017-10-11 Jan Hubicka <hubicka@ucw.cz> | |
12105 | ||
12106 | * profile-count.h (slow_safe_scale_64bit): New function. | |
12107 | (safe_scale_64bit): New inline. | |
12108 | (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit. | |
12109 | * profile-count.c: Include wide-int.h | |
12110 | (slow_safe_scale_64bit): New. | |
12111 | ||
12112 | 2017-10-11 Nathan Sidwell <nathan@acm.org> | |
12113 | ||
12114 | * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check | |
12115 | HAS_DECL_ASSEMBLER_NAME_P. | |
12116 | * gimple-expr.c (gimple_decl_printable_name: Check | |
12117 | HAS_DECL_ASSEMBLER_NAME_P too. | |
12118 | * ipa-utils.h (type_in_anonymous_namespace_p): Check | |
12119 | DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME. | |
12120 | (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL. | |
12121 | * passes.c (rest_of_decl_compilation): Check | |
12122 | HAS_DECL_ASSEMBLER_NAME_P too. | |
12123 | * recog.c (verify_changes): Likewise. | |
12124 | * tree-pretty-print.c (dump_decl_name): Likewise. | |
12125 | * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement. | |
12126 | ||
12127 | * tree.h (DECL_ASSEMBLER_NAME_RAW): New. | |
12128 | (SET_DECL_ASSEMBLER_NAME): Use it. | |
12129 | (DECL_ASSEMBLER_NAME_SET_P): Likewise. | |
12130 | (COPY_DECL_ASSEMBLER_NAME): Likewise. | |
12131 | * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW. | |
12132 | ||
12133 | 2017-10-11 Jan Hubicka <hubicka@ucw.cz> | |
12134 | ||
12135 | * config.gcc (i386, x86_64): Add extra objects. | |
12136 | * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare. | |
12137 | (ix86_min_insn_size): Declare. | |
12138 | (ix86_issue_rate): Declare. | |
12139 | (ix86_adjust_cost): Declare. | |
12140 | (ia32_multipass_dfa_lookahead): Declare. | |
12141 | (ix86_macro_fusion_p): Declare. | |
12142 | (ix86_macro_fusion_pair_p): Declare. | |
12143 | (ix86_bd_has_dispatch): Declare. | |
12144 | (ix86_bd_do_dispatch): Declare. | |
12145 | (ix86_core2i7_init_hooks): Declare. | |
12146 | (ix86_atom_sched_reorder): Declare. | |
12147 | * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h. | |
12148 | (COSTS_N_BYTES): Move to x86-tune-costs.h. | |
12149 | (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h. | |
12150 | (rip_relative_addr_p): Rename to ... | |
12151 | (ix86_rip_relative_addr_p): ... this one; export. | |
12152 | (memory_address_length): Update. | |
12153 | (ix86_issue_rate): Move to x86-tune-sched.c. | |
12154 | (ix86_flags_dependent): Move to x86-tune-sched.c. | |
12155 | (ix86_agi_dependent): Move to x86-tune-sched.c. | |
12156 | (exact_dependency_1): Move to x86-tune-sched.c. | |
12157 | (exact_store_load_dependency): Move to x86-tune-sched.c. | |
12158 | (ix86_adjust_cost): Move to x86-tune-sched.c. | |
12159 | (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c. | |
12160 | (ix86_macro_fusion_p): Move to x86-tune-sched.c. | |
12161 | (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c. | |
12162 | (do_reorder_for_imul): Move to x86-tune-sched-atom.c. | |
12163 | (swap_top_of_ready_list): Move to x86-tune-sched-atom.c. | |
12164 | (ix86_sched_reorder): Move to x86-tune-sched-atom.c. | |
12165 | (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c. | |
12166 | (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c. | |
12167 | (min_insn_size): Rename to ... | |
12168 | (ix86_min_insn_size): ... this one; export. | |
12169 | (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c. | |
12170 | (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c. | |
12171 | (core2i7_first_cycle_multipass_backtrack): Move to | |
12172 | x86-tune-sched-core.c. | |
12173 | (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c. | |
12174 | (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c. | |
12175 | (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks. | |
12176 | (ix86_avoid_jump_mispredicts): Update. | |
12177 | (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c. | |
12178 | (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c. | |
12179 | (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c. | |
12180 | (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c. | |
12181 | (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c. | |
12182 | (MAX_INSN): Move to ix86-tune-sched-bd.c. | |
12183 | (MAX_IMM): Move to ix86-tune-sched-bd.c. | |
12184 | (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c. | |
12185 | (MAX_IMM_32): Move to ix86-tune-sched-bd.c. | |
12186 | (MAX_IMM_64): Move to ix86-tune-sched-bd.c. | |
12187 | (MAX_LOAD): Move to ix86-tune-sched-bd.c. | |
12188 | (MAX_STORE): Move to ix86-tune-sched-bd.c. | |
12189 | (BIG): Move to ix86-tune-sched-bd.c. | |
12190 | (enum dispatch_group): Move to ix86-tune-sched-bd.c. | |
12191 | (enum insn_path): Move to ix86-tune-sched-bd.c. | |
12192 | (get_mem_group): Move to ix86-tune-sched-bd.c. | |
12193 | (is_cmp): Move to ix86-tune-sched-bd.c. | |
12194 | (dispatch_violation): Move to ix86-tune-sched-bd.c. | |
12195 | (is_branch): Move to ix86-tune-sched-bd.c. | |
12196 | (is_prefetch): Move to ix86-tune-sched-bd.c. | |
12197 | (init_window): Move to ix86-tune-sched-bd.c. | |
12198 | (allocate_window): Move to ix86-tune-sched-bd.c. | |
12199 | (init_dispatch_sched): Move to ix86-tune-sched-bd.c. | |
12200 | (is_end_basic_block): Move to ix86-tune-sched-bd.c. | |
12201 | (process_end_window): Move to ix86-tune-sched-bd.c. | |
12202 | (allocate_next_window): Move to ix86-tune-sched-bd.c. | |
12203 | (find_constant): Move to ix86-tune-sched-bd.c. | |
12204 | (get_num_immediates): Move to ix86-tune-sched-bd.c. | |
12205 | (has_immediate): Move to ix86-tune-sched-bd.c. | |
12206 | (get_insn_path): Move to ix86-tune-sched-bd.c. | |
12207 | (get_insn_group): Move to ix86-tune-sched-bd.c. | |
12208 | (count_num_restricted): Move to ix86-tune-sched-bd.c. | |
12209 | (fits_dispatch_window): Move to ix86-tune-sched-bd.c. | |
12210 | (add_insn_window): Move to ix86-tune-sched-bd.c. | |
12211 | (add_to_dispatch_window): Move to ix86-tune-sched-bd.c. | |
12212 | (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c. | |
12213 | (debug_dispatch_window): Move to ix86-tune-sched-bd.c. | |
12214 | (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c. | |
12215 | (debug_ready_dispatch): Move to ix86-tune-sched-bd.c. | |
12216 | (do_dispatch): Move to ix86-tune-sched-bd.c. | |
12217 | (has_dispatch): Move to ix86-tune-sched-bd.c. | |
12218 | * config/i386/t-i386: Add new object files. | |
12219 | * config/i386/x86-tune-costs.h: New file. | |
12220 | * config/i386/x86-tune-sched-atom.c: New file. | |
12221 | * config/i386/x86-tune-sched-bd.c: New file. | |
12222 | * config/i386/x86-tune-sched-core.c: New file. | |
12223 | * config/i386/x86-tune-sched.c: New file. | |
12224 | ||
12225 | 2017-10-11 Liu Hao <lh_mouse@126.com> | |
12226 | ||
12227 | * pretty-print.c [_WIN32] (colorize_init): Remove. Use | |
12228 | the generic version below instead. | |
12229 | (should_colorize): Recognize Windows consoles as terminals | |
12230 | for MinGW targets. | |
12231 | * pretty-print.c [__MINGW32__] (write_all): New function. | |
12232 | [__MINGW32__] (find_esc_head): Likewise. | |
12233 | [__MINGW32__] (find_esc_terminator): Likewise. | |
12234 | [__MINGW32__] (eat_esc_sequence): Likewise. | |
12235 | [__MINGW32__] (mingw_ansi_fputs): New function that handles | |
12236 | ANSI escape codes. | |
12237 | (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs | |
12238 | for MinGW targets. | |
12239 | ||
12240 | 2017-10-11 Richard Biener <rguenther@suse.de> | |
12241 | ||
12242 | * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith): | |
12243 | Properly call analyze_scalar_evolution with the loop of the stmt. | |
12244 | ||
12245 | 2017-10-11 Richard Biener <rguenther@suse.de> | |
12246 | ||
12247 | * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand. | |
12248 | * tree-core.h (tree_base): Add chrec_var union member. | |
12249 | * tree.h (CHREC_VAR): Remove. | |
12250 | (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust. | |
12251 | * tree-chrec.h (build_polynomial_chrec): Adjust. | |
12252 | * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec. | |
12253 | * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE. | |
12254 | ||
12255 | 2017-10-11 Marc Glisse <marc.glisse@inria.fr> | |
12256 | ||
12257 | * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ... | |
12258 | * match.pd: ... here. | |
12259 | ((T) X == (T) Y): Relax condition. | |
12260 | ||
12261 | 2017-10-11 Bin Cheng <bin.cheng@arm.com> | |
12262 | ||
12263 | PR tree-optimization/82472 | |
12264 | * tree-loop-distribution.c (sort_partitions_by_post_order): Refine | |
12265 | comment. | |
12266 | (break_alias_scc_partitions): Update postorder number. | |
12267 | ||
12268 | 2017-10-11 Martin Liska <mliska@suse.cz> | |
12269 | ||
12270 | PR sanitizer/82490 | |
12271 | * opts.c (parse_no_sanitize_attribute): Do not use error_value | |
12272 | variable. | |
12273 | * opts.h (parse_no_sanitize_attribute): Remove last argument. | |
12274 | ||
12275 | 2017-10-11 Martin Liska <mliska@suse.cz> | |
12276 | ||
12277 | * print-rtl.c (print_insn): Move declaration of idbuf | |
12278 | to same scope as name. | |
12279 | ||
12280 | 2017-10-11 Martin Liska <mliska@suse.cz> | |
12281 | ||
12282 | Revert r253637: | |
12283 | ||
12284 | PR sanitizer/82484 | |
12285 | * sanopt.c (sanitize_rewrite_addressable_params): Do not handle | |
12286 | volatile arguments. | |
12287 | ||
12288 | 2017-10-11 Martin Liska <mliska@suse.cz> | |
12289 | ||
12290 | PR sanitizer/82484 | |
12291 | * sanopt.c (sanitize_rewrite_addressable_params): Do not handle | |
12292 | volatile arguments. | |
12293 | ||
12294 | 2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org> | |
12295 | ||
12296 | * config.gcc (default_gnu_indirect_function): Default to yes for | |
12297 | arm*-*-linux* with glibc. | |
12298 | ||
12299 | 2017-10-11 Richard Biener <rguenther@suse.de> | |
12300 | ||
12301 | * tree-scalar-evolution.c (get_scalar_evolution): Handle | |
12302 | default-defs and types we do not want to analyze. | |
12303 | (interpret_loop_phi): Replace unreachable code with an assert. | |
12304 | (compute_scalar_evolution_in_loop): Remove and inline ... | |
12305 | (analyze_scalar_evolution_1): ... here, replacing condition with | |
12306 | what makes the intent clearer. Remove handling of cases | |
12307 | get_scalar_evolution now handles. | |
12308 | ||
12309 | 2017-10-10 Jim Wilson <wilson@tuliptree.org> | |
12310 | ||
12311 | PR rtl-optimization/81434 | |
12312 | * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update | |
12313 | comment for main loop. In sched_group_found if, also add checks for | |
12314 | pass and min_cost_group. | |
12315 | ||
12316 | 2017-10-10 Segher Boessenkool <segher@kernel.crashing.org> | |
12317 | ||
12318 | * config/rs6000/rs6000.c (TARGET_INSN_COST): New. | |
12319 | (rs6000_insn_cost): New function. | |
12320 | * config/rs6000/rs6000.md (cost): New attribute. | |
12321 | ||
12322 | 2017-10-10 Jakub Jelinek <jakub@redhat.com> | |
12323 | H.J. Lu <hongjiu.lu@intel.com> | |
12324 | ||
12325 | PR target/79565 | |
12326 | PR target/82483 | |
12327 | * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add | |
12328 | OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq, | |
12329 | __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi. | |
12330 | (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly | |
12331 | to OPTION_MASK_ISA_AVX512VL - builtins that have both | |
12332 | OPTION_MASK_ISA_MMX and some other bit set require both | |
12333 | mmx and the ISAs without the mmx bit. | |
12334 | * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi, | |
12335 | __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps, | |
12336 | __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw, | |
12337 | __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub, | |
12338 | __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb, | |
12339 | __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi, | |
12340 | __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd, | |
12341 | __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw, | |
12342 | __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd, | |
12343 | __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd, | |
12344 | __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw, | |
12345 | __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb, | |
12346 | __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq, | |
12347 | __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr): | |
12348 | Add OPTION_MASK_ISA_MMX. | |
12349 | ||
12350 | 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org> | |
12351 | ||
12352 | * config.gcc (armv7*-*-freebsd*): New target. | |
12353 | (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define. | |
12354 | ||
12355 | 2017-10-10 Jan Hubicka <hubicka@ucw.cz> | |
12356 | ||
12357 | * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI, | |
12358 | X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right | |
12359 | spot in the file. | |
12360 | ||
12361 | 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org> | |
12362 | ||
12363 | * wide-int.h (wide_int_ref_storage): Make host_dependent_precision | |
12364 | a template parameter. | |
12365 | (WIDE_INT_REF_FOR): Update accordingly. | |
12366 | * tree.h (wi::int_traits <const_tree>): Delete. | |
12367 | (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs. | |
12368 | (wi::to_widest, wi::to_offset): Use them. Expand commentary. | |
12369 | (wi::tree_to_wide_ref): New typedef. | |
12370 | (wi::to_wide): New function. | |
12371 | * calls.c (get_size_range): Use wi::to_wide when operating on | |
12372 | trees as wide_ints. | |
12373 | * cgraph.c (cgraph_node::create_thunk): Likewise. | |
12374 | * config/i386/i386.c (ix86_data_alignment): Likewise. | |
12375 | (ix86_local_alignment): Likewise. | |
12376 | * dbxout.c (stabstr_O): Likewise. | |
12377 | * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise. | |
12378 | * expr.c (const_vector_from_tree): Likewise. | |
12379 | * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise. | |
12380 | * fold-const.c (may_negate_without_overflow_p, negate_expr_p) | |
12381 | (fold_negate_expr_1, int_const_binop_1, const_binop) | |
12382 | (fold_convert_const_int_from_real, optimize_bit_field_compare) | |
12383 | (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1) | |
12384 | (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr) | |
12385 | (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc) | |
12386 | (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const) | |
12387 | (fold_not_const, round_up_loc): Likewise. | |
12388 | * gimple-fold.c (gimple_fold_indirect_ref): Likewise. | |
12389 | * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise. | |
12390 | (alloca_call_type): Likewise. | |
12391 | * gimple.c (preprocess_case_label_vec_for_gimple): Likewise. | |
12392 | * godump.c (go_output_typedef): Likewise. | |
12393 | * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise. | |
12394 | * internal-fn.c (get_min_precision): Likewise. | |
12395 | * ipa-cp.c (ipcp_store_vr_results): Likewise. | |
12396 | * ipa-polymorphic-call.c | |
12397 | (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise. | |
12398 | * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise. | |
12399 | (ipa_modify_call_arguments): Likewise. | |
12400 | * match.pd: Likewise. | |
12401 | * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise. | |
12402 | * print-tree.c (print_node_brief, print_node): Likewise. | |
12403 | * stmt.c (expand_case): Likewise. | |
12404 | * stor-layout.c (layout_type): Likewise. | |
12405 | * tree-affine.c (tree_to_aff_combination): Likewise. | |
12406 | * tree-cfg.c (group_case_labels_stmt): Likewise. | |
12407 | * tree-data-ref.c (dr_analyze_indices): Likewise. | |
12408 | (prune_runtime_alias_test_list): Likewise. | |
12409 | * tree-dump.c (dequeue_and_dump): Likewise. | |
12410 | * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise. | |
12411 | * tree-predcom.c (is_inv_store_elimination_chain): Likewise. | |
12412 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
12413 | * tree-scalar-evolution.c (iv_can_overflow_p): Likewise. | |
12414 | (simple_iv_with_niters): Likewise. | |
12415 | * tree-ssa-address.c (addr_for_mem_ref): Likewise. | |
12416 | * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise. | |
12417 | * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise. | |
12418 | * tree-ssa-loop-niter.c (split_to_var_and_offset) | |
12419 | (refine_value_range_using_guard, number_of_iterations_ne_max) | |
12420 | (number_of_iterations_lt_to_ne, number_of_iterations_lt) | |
12421 | (get_cst_init_from_scev, record_nonwrapping_iv) | |
12422 | (scev_var_range_cant_overflow): Likewise. | |
12423 | * tree-ssa-phiopt.c (minmax_replacement): Likewise. | |
12424 | * tree-ssa-pre.c (compute_avail): Likewise. | |
12425 | * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise. | |
12426 | (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise. | |
12427 | * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise. | |
12428 | * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise. | |
12429 | * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise. | |
12430 | * tree-switch-conversion.c (collect_switch_conv_info, array_value_type) | |
12431 | (dump_case_nodes, try_switch_expansion): Likewise. | |
12432 | * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise. | |
12433 | (vect_do_peeling): Likewise. | |
12434 | * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. | |
12435 | * tree-vect-stmts.c (vectorizable_load): Likewise. | |
12436 | * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise. | |
12437 | (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise. | |
12438 | (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise. | |
12439 | (overflow_comparison_p_1, register_edge_assert_for_2): Likewise. | |
12440 | (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits) | |
12441 | (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise. | |
12442 | (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise. | |
12443 | (evrp_dom_walker::before_dom_children): Likewise. | |
12444 | * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop) | |
12445 | (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2) | |
12446 | (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit) | |
12447 | (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise. | |
12448 | (get_type_static_bounds, num_ending_zeros, drop_tree_overflow) | |
12449 | (get_range_pos_neg): Likewise. | |
12450 | * ubsan.c (ubsan_expand_ptr_ifn): Likewise. | |
12451 | * config/darwin.c (darwin_mergeable_constant_section): Likewise. | |
12452 | * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise. | |
12453 | * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise. | |
12454 | * config/avr/avr.c (avr_fold_builtin): Likewise. | |
12455 | * config/bfin/bfin.c (bfin_local_alignment): Likewise. | |
12456 | * config/msp430/msp430.c (msp430_attr): Likewise. | |
12457 | * config/nds32/nds32.c (nds32_insert_attributes): Likewise. | |
12458 | * config/powerpcspe/powerpcspe-c.c | |
12459 | (altivec_resolve_overloaded_builtin): Likewise. | |
12460 | * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate) | |
12461 | (rs6000_expand_ternop_builtin): Likewise. | |
12462 | * config/rs6000/rs6000-c.c | |
12463 | (altivec_resolve_overloaded_builtin): Likewise. | |
12464 | * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise. | |
12465 | (rs6000_expand_ternop_builtin): Likewise. | |
12466 | * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise. | |
12467 | ||
12468 | 2017-10-10 Bin Cheng <bin.cheng@arm.com> | |
12469 | ||
12470 | * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes | |
12471 | when copying loop nest with only one inner loop. | |
12472 | ||
12473 | 2017-10-10 Richard Biener <rguenther@suse.de> | |
12474 | ||
12475 | * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting | |
12476 | blocks if SCEV is active. | |
12477 | * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove | |
12478 | dead code. | |
12479 | (analyze_scalar_evolution): Handle cached evolutions the obvious way. | |
12480 | (scev_initialize): Assert we are not yet initialized. | |
12481 | ||
12482 | 2017-10-10 Bin Cheng <bin.cheng@arm.com> | |
12483 | ||
12484 | * tree-loop-distribution.c (generate_loops_for_partition): Remove | |
12485 | inner loop's exit stmt by making it always exit the loop, otherwise | |
12486 | we would generate an infinite empty loop. | |
12487 | ||
12488 | 2017-10-10 Bin Cheng <bin.cheng@arm.com> | |
12489 | ||
12490 | * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip | |
12491 | renaming variables in new preheader if it's deleted. | |
12492 | ||
12493 | 2017-10-10 Bin Cheng <bin.cheng@arm.com> | |
12494 | ||
12495 | * tree-loop-distribution.c (struct partition): Remove unused field | |
12496 | loops of the structure. | |
12497 | (partition_alloc, partition_free): Ditto. | |
12498 | (build_rdg_partition_for_vertex): Ditto. | |
12499 | ||
12500 | 2017-10-09 Jeff Law <law@redhat.com> | |
12501 | ||
12502 | * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix | |
12503 | return type to match prototype and documentation. | |
12504 | ||
12505 | 2010-10-09 Segher Boessenkool <segher@kernel.crashing.org> | |
12506 | ||
12507 | * config/rs6000/rs6000.c (processor_costs): Move to ... | |
12508 | * config/rs6000/rs6000.h: ... here. | |
12509 | (rs6000_cost): Declare. | |
12510 | ||
12511 | 2017-10-09 Eric Botcazou <ebotcazou@adacore.com> | |
12512 | ||
12513 | * except.c (setjmp_fn): New global variable. | |
12514 | (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined. | |
12515 | (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP | |
12516 | if DONT_USE_BUILTIN_SETJMP is defined. | |
12517 | ||
12518 | 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org> | |
12519 | ||
12520 | * target.def (insn_cost): New hook. | |
12521 | * doc/tm.texi.in (TARGET_INSN_COST): New hook. | |
12522 | * doc/tm.texi: Regenerate. | |
12523 | * rtlanal.c (insn_cost): Use the new hook. | |
12524 | ||
12525 | 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org> | |
12526 | ||
12527 | * combine.c (combine_validate_cost): Compute the new insn_cost, | |
12528 | not just pattern_cost. | |
12529 | (try_combine): Adjust comment. | |
12530 | ||
12531 | 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org> | |
12532 | ||
12533 | * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with | |
12534 | insn_cost. | |
12535 | * combine.c (uid_insn_cost): Adjust comment. | |
12536 | (combine_validate_cost): Adjust comment. Use pattern_cost instead | |
12537 | of insn_rtx_cost | |
12538 | (combine_instructions): Use insn_cost instead of insn_rtx_cost. | |
12539 | * dse.c (find_shift_sequence): Ditto. | |
12540 | * ifcvt.c (cheap_bb_rtx_cost_p): Ditto. | |
12541 | (bb_valid_for_noce_process_p): Use pattern_cost. | |
12542 | * rtl.h (insn_rtx_cost): Delete. | |
12543 | (pattern_cost): New prototype. | |
12544 | (insn_cost): New prototype. | |
12545 | * rtlanal.c (insn_rtx_cost): Rename to... | |
12546 | (pattern_cost): ... this. | |
12547 | (insn_cost): New. | |
12548 | ||
12549 | 2017-10-09 Uros Bizjak <ubizjak@gmail.com> | |
12550 | ||
12551 | * config/i386/i386.md (*jcc_2): Remove insn pattern. | |
12552 | (*jcc<mode>_0_r_i387): Ditto. | |
12553 | (*jccxf_r_i387): Ditto. | |
12554 | (*jcc<mode>_r_i387): Ditto. | |
12555 | (*jccu<mode>_r_i387): Ditto. | |
12556 | (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto. | |
12557 | (*jcc): Rename from *jcc_1. | |
12558 | ||
12559 | 2017-10-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
12560 | ||
12561 | * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process | |
12562 | deferred rescans after the lvx/stvx recombination pre-pass. | |
12563 | ||
12564 | 2017-10-09 Michael Meissner <meissner@linux.vnet.ibm.com> | |
12565 | ||
12566 | * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic | |
12567 | memory operation instruction support. | |
12568 | * config.gcc (powerpc*-*-*): Include amo.h as an extra header. | |
12569 | (rs6000-ibm-aix[789]*): Likewise. | |
12570 | * doc/extend.texi (PowerPC Atomic Memory Operation Functions): | |
12571 | Document new functions. | |
12572 | ||
12573 | 2017-10-09 Richard Biener <rguenther@suse.de> | |
12574 | ||
12575 | PR tree-optimization/82397 | |
12576 | * tree-data-ref.c (data_ref_compare_tree): Make sure to return | |
12577 | equality only for semantically equal trees. | |
12578 | ||
12579 | 2017-10-09 Richard Biener <rguenther@suse.de> | |
12580 | ||
12581 | PR tree-optimization/82449 | |
12582 | * sese.c (scev_analyzable_p): Check whether the SCEV is linear. | |
12583 | * tree-chrec.h (evolution_function_is_constant_p): Adjust to | |
12584 | allow constant addresses. | |
12585 | * tree-chrec.c (scev_is_linear_expression): Constant evolutions | |
12586 | are linear. | |
12587 | ||
12588 | 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
12589 | ||
12590 | * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin | |
12591 | flags. | |
12592 | ||
12593 | 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
12594 | ||
12595 | PR target/82463 | |
12596 | * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro | |
12597 | definitions. | |
12598 | ||
12599 | 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
12600 | ||
12601 | PR target/82465 | |
12602 | * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags. | |
12603 | ||
12604 | 2017-10-09 Jakub Jelinek <jakub@redhat.com> | |
12605 | ||
12606 | PR target/82464 | |
12607 | * config/s390/s390-builtins.def (s390_vec_xor_flt_a, | |
12608 | s390_vec_xor_flt_b, s390_vec_xor_flt_c): New. | |
12609 | ||
12610 | 2017-10-09 Richard Sandiford <richard.sandiford@linaro.org> | |
12611 | ||
12612 | * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro. | |
12613 | (WI_BINARY_PREDICATE_RESULT): Likewise. | |
12614 | (wi::binary_traits::operator_result): New type. | |
12615 | (wi::binary_traits::predicate_result): Likewise. | |
12616 | (generic_wide_int::operator~, unary generic_wide_int::operator-) | |
12617 | (generic_wide_int::operator==, generic_wide_int::operator!=) | |
12618 | (generic_wide_int::operator&, generic_wide_int::and_not) | |
12619 | (generic_wide_int::operator|, generic_wide_int::or_not) | |
12620 | (generic_wide_int::operator^, generic_wide_int::operator+ | |
12621 | (binary generic_wide_int::operator-, generic_wide_int::operator*): | |
12622 | Delete. | |
12623 | (operator~, unary operator-, operator==, operator!=, operator&) | |
12624 | (operator|, operator^, operator+, binary operator-, operator*): New | |
12625 | functions. | |
12626 | * expr.c (get_inner_reference): Use wi::bit_and_not. | |
12627 | * fold-const.c (fold_binary_loc): Likewise. | |
12628 | * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise. | |
12629 | * tree-ssa-ccp.c (get_value_from_alignment): Likewise. | |
12630 | (bit_value_binop): Likewise. | |
12631 | * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise. | |
12632 | * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise. | |
12633 | (extract_range_from_binary_expr_1): Likewise. | |
12634 | (masked_increment): Likewise. | |
12635 | (simplify_bit_ops_using_ranges): Likewise. | |
12636 | ||
12637 | 2017-10-09 Martin Jambor <mjambor@suse.cz> | |
12638 | ||
12639 | PR hsa/82416 | |
12640 | * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit. | |
12641 | * hsa-gen.c (hsa_extend_inttype_to_32bit): New function. | |
12642 | (hsa_type_for_scalar_tree_type): Use it. Always force min32int for | |
12643 | COMPLEX types. | |
12644 | (hsa_fixup_mov_insn_type): New function. | |
12645 | (hsa_op_with_type::get_in_type): Use it. | |
12646 | (hsa_build_append_simple_mov): Likewise. Allow sub-32bit | |
12647 | immediates in an assert. | |
12648 | (hsa_op_with_type::extend_int_to_32bit): New method. | |
12649 | (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary | |
12650 | types. Convert to dest type if necessary. | |
12651 | (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary. | |
12652 | (reg_for_gimple_ssa): Pass false as min32int to | |
12653 | hsa_type_for_scalar_tree_type. | |
12654 | (gen_hsa_addr): Fixup type when creating addresable temporary. | |
12655 | (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary. | |
12656 | (gen_hsa_unary_operation): Extend operands and convert to dest type if | |
12657 | necessary. Call hsa_fixup_mov_insn_type. | |
12658 | (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type, | |
12659 | extend operands and convert to dest type if necessary. | |
12660 | (gen_hsa_insns_for_operation_assignment): Extend operands and convert | |
12661 | to dest type if necessary. | |
12662 | (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest | |
12663 | if conversion nt necessary and size matches. | |
12664 | (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert | |
12665 | to dest type if necessary. | |
12666 | (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type. | |
12667 | (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if | |
12668 | necessary. | |
12669 | (gen_hsa_clrsb): Likewise. | |
12670 | (gen_hsa_ffs): Likewise. | |
12671 | (gen_hsa_divmod): Extend operands and convert to dest type if | |
12672 | necessary. | |
12673 | (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type. | |
12674 | ||
12675 | 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org> | |
12676 | ||
12677 | * config/rs6000/rs6000.md (conditional branch): Clean up formatting. | |
12678 | Remove empty default arguments. Use a brace block as output | |
12679 | statement. | |
12680 | (conditional return): Ditto. | |
12681 | (jump): Ditto. | |
12682 | (indirect_jump): Ditto. Use b%T0 instead of bctr/blr. | |
12683 | (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1): | |
12684 | Ditto. | |
12685 | (group_ending_nop): Ditto. | |
12686 | (doloop_end): Ditto. | |
12687 | (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto. | |
12688 | (splitters for those): Ditto. | |
12689 | ||
12690 | 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org> | |
12691 | ||
12692 | * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert | |
12693 | a conditional jump (and the compare for it) so that pc_rtx is the | |
12694 | last operand. | |
12695 | * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust | |
12696 | for the deleted and renamed ctr<mode>_internal[234] patterns. | |
12697 | * config/rs6000/rs6000.md: Delete second conditional branch pattern. | |
12698 | Delete second conditional return pattern. | |
12699 | (ctr<mode>_internal2): Delete this second bdnz pattern. | |
12700 | (ctr<mode>_internal3): Rename to ctr<mode>_internal2. | |
12701 | (ctr<mode>_internal4): Delete this second bdz pattern. | |
12702 | ||
12703 | 2017-10-08 Eric Botcazou <ebotcazou@adacore.com> | |
12704 | ||
12705 | * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values. | |
12706 | (always_initialized_rtx_for_ssa_name_p): New predicate. | |
12707 | * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA. | |
12708 | (finish_out_of_ssa): Free new field of SA. | |
12709 | * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare. | |
12710 | * tree-ssa-coalesce.c: Include tree-ssa.h. | |
12711 | (get_parm_default_def_partitions): Remove extern keyword. | |
12712 | (get_undefined_value_partitions): New function. | |
12713 | * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do | |
12714 | not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain | |
12715 | uninitialized bits. | |
12716 | * loop-iv.c (iv_get_reaching_def): Disqualify all subregs. | |
12717 | ||
12718 | 2017-10-08 Eric Botcazou <ebotcazou@adacore.com> | |
12719 | ||
12720 | * builtins.def (BUILT_IN_SETJMP): Revert latest change. | |
12721 | ||
12722 | 2017-10-08 Jan Hubicka <hubicka@ucw.cz> | |
12723 | ||
12724 | * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops | |
12725 | for targets that preffer 128bit. | |
12726 | ||
12727 | 2017-10-08 Jan Hubicka <hubicka@ucw.cz> | |
12728 | ||
12729 | * config/i386/i386.c (has_dispatch): Disable for Ryzen. | |
12730 | ||
12731 | 2017-10-08 Olivier Hainque <hainque@adacore.com> | |
12732 | ||
12733 | * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P | |
12734 | on the target mem instead of RTX_FRAME_RELATED_P on the insn to | |
12735 | prevent DSE. | |
12736 | (thumb_set_return_address): Likewise. | |
12737 | ||
12738 | 2017-10-08 Olivier Hainque <hainque@adacore.com> | |
12739 | ||
12740 | * common/config/arm/arm-common.c (arm_except_unwind_info): | |
12741 | Handle DWARF2_UNWIND_INFO. | |
12742 | ||
12743 | 2017-10-07 Michael Collison <michael.collison@arm.com> | |
12744 | ||
12745 | * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3): | |
12746 | New pattern. | |
12747 | ||
12748 | 2017-10-07 Eric Botcazou <ebotcazou@adacore.com> | |
12749 | ||
12750 | * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead | |
12751 | of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined. | |
12752 | * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is | |
12753 | defined, force the creation of a new block for a dispatch label. | |
12754 | ||
12755 | 2017-10-07 Jan Hubicka <hubicka@ucw.cz> | |
12756 | ||
12757 | * invoke.texi (Wsuggest-attribute=cold): Document. | |
12758 | * common.opt (Wsuggest-attribute=cold): New | |
12759 | * ipa-pure-const.c (warn_function_cold): New function. | |
12760 | * predict.c (compute_function_frequency): Use it. | |
12761 | * predict.h (warn_function_cold): Declare. | |
12762 | ||
12763 | 2017-10-06 Jan Hubicka <hubicka@ucw.cz> | |
12764 | ||
12765 | * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns): | |
12766 | Update profile. | |
12767 | ||
12768 | 2017-10-06 Martin Liska <mliska@suse.cz> | |
12769 | ||
12770 | * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline | |
12771 | keyword for member functions. | |
12772 | (struct sanopt_tree_couple): New struct. | |
12773 | (struct sanopt_tree_couple_hash): New function. | |
12774 | (struct sanopt_ctx): Add new hash_map. | |
12775 | (has_dominating_ubsan_ptr_check): New function. | |
12776 | (record_ubsan_ptr_check_stmt): Likewise. | |
12777 | (maybe_optimize_ubsan_ptr_ifn): Likewise. | |
12778 | (sanopt_optimize_walker): Handle IFN_UBSAN_PTR. | |
12779 | (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW. | |
12780 | ||
12781 | 2017-10-06 Sudakshina Das <sudi.das@arm.com> | |
12782 | ||
12783 | PR target/82440 | |
12784 | * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call | |
12785 | aarch64_simd_valid_immediate on CONST_VECTORs. | |
12786 | (aarch64_reg_or_bic_imm): Likewise. | |
12787 | ||
12788 | 2017-10-06 Wilco Dijkstra <wdijkstr@arm.com> | |
12789 | ||
12790 | PR rtl-optimization/82396 | |
12791 | * haifa-sched.c (ready_sort_real): Disable qsort checking. | |
12792 | ||
12793 | 2017-10-06 Sebastian Pop <sebpop@gmail.com> | |
12794 | ||
12795 | * graphite-dependences.c (scop_get_reads): Move code to... | |
12796 | (scop_get_must_writes): Move code to... | |
12797 | (scop_get_may_writes): Move code to... | |
12798 | (scop_get_reads_and_writes): ... here. | |
12799 | (scop_get_dependences): Call scop_get_reads_and_writes. | |
12800 | ||
12801 | 2017-10-06 Jakub Jelinek <jakub@redhat.com> | |
12802 | ||
12803 | PR tree-optimization/82434 | |
12804 | * fold-const.h (can_native_encode_type_p, | |
12805 | can_native_encode_string_p): Remove. | |
12806 | * fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL, | |
12807 | don't encode anything, just return what would be otherwise returned. | |
12808 | (native_encode_fixed, native_encode_complex, native_encode_vector): | |
12809 | Likewise. | |
12810 | (native_encode_string): Likewise. Inline by hand | |
12811 | can_native_encode_string_p. | |
12812 | (can_native_encode_type_p): Remove. | |
12813 | (can_native_encode_string_p): Remove. | |
12814 | * tree-vect-stmts.c (vectorizable_store): Instead of testing just | |
12815 | STRING_CSTs using can_native_encode_string_p, test all | |
12816 | CONSTANT_CLASS_P values using native_encode_expr with NULL ptr. | |
12817 | * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last | |
12818 | argument from native_encode_expr. | |
12819 | (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr. | |
12820 | (pass_store_merging::execute): Don't unnecessarily look for 3 stmts, | |
12821 | but just 2. | |
12822 | ||
12823 | 2017-10-06 Richard Biener <rguenther@suse.de> | |
12824 | ||
12825 | PR tree-optimization/82397 | |
12826 | * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use | |
12827 | operand_equal_p but rely on data_ref_compare_tree for detecting | |
12828 | equalities. | |
12829 | (vect_analyze_data_ref_accesses): Use data_ref_compare_tree | |
12830 | to match up with dr_group_sort_cmp. | |
12831 | ||
12832 | 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
12833 | ||
12834 | PR target/82322 | |
12835 | * config/s390/s390-builtins.def (s390_vfi): Define new overloaded | |
12836 | builtin. | |
12837 | * config/s390/s390-builtin-types.def: Regenerate. | |
12838 | ||
12839 | 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
12840 | ||
12841 | PR target/82317 | |
12842 | * config/s390/s390-builtin-types.def: Regenerate. | |
12843 | * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4): | |
12844 | Change flag from B_VXE to B_VX. | |
12845 | (s390_vec_min_dbl): Remove B_VXE flag. | |
12846 | ||
12847 | 2017-10-06 Richard Biener <rguenther@suse.de> | |
12848 | ||
12849 | * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h. | |
12850 | (translate_isl_ast_to_gimple::translate_pending_phi_nodes, | |
12851 | translate_isl_ast_to_gimple::is_valid_rename, | |
12852 | translate_isl_ast_to_gimple::get_rename, | |
12853 | translate_isl_ast_to_gimple::get_def_bb_for_const, | |
12854 | translate_isl_ast_to_gimple::get_new_name, | |
12855 | translate_isl_ast_to_gimple::collect_all_ssa_names, | |
12856 | translate_isl_ast_to_gimple::copy_loop_phi_args, | |
12857 | translate_isl_ast_to_gimple::collect_all_ssa_names, | |
12858 | translate_isl_ast_to_gimple::copy_loop_phi_args, | |
12859 | translate_isl_ast_to_gimple::copy_loop_phi_nodes, | |
12860 | translate_isl_ast_to_gimple::add_close_phis_to_merge_points, | |
12861 | translate_isl_ast_to_gimple::add_close_phis_to_outer_loops, | |
12862 | translate_isl_ast_to_gimple::copy_loop_close_phi_args, | |
12863 | translate_isl_ast_to_gimple::copy_loop_close_phi_nodes, | |
12864 | translate_isl_ast_to_gimple::copy_cond_phi_args, | |
12865 | translate_isl_ast_to_gimple::copy_cond_phi_nodes, | |
12866 | translate_isl_ast_to_gimple::edge_for_new_close_phis, | |
12867 | translate_isl_ast_to_gimple::add_phi_arg_for_new_expr, | |
12868 | translate_isl_ast_to_gimple::rename_uses, | |
12869 | translate_isl_ast_to_gimple::rename_all_uses): Remove. | |
12870 | (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify. | |
12871 | (set_rename_for_each_def): Likewise. | |
12872 | (graphite_copy_stmts_from_block): Handle debug stmt resetting | |
12873 | here. Handle rewriting SCEV analyzable uses here. | |
12874 | (copy_bb_and_scalar_dependences): Generate code for PHI | |
12875 | copy-in/outs. | |
12876 | (graphite_regenerate_ast_isl): Adjust. | |
12877 | * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch]. | |
12878 | (add_write, add_read): New functions. | |
12879 | (build_cross_bb_scalars_def): Use it and simplify. | |
12880 | (build_cross_bb_scalars_use): Likewise. | |
12881 | (graphite_find_cross_bb_scalar_vars): Inline into... | |
12882 | (try_generate_gimple_bb): ...here. Add dependences for PHIs, | |
12883 | simulating out-of-SSA. Compute liveout and add dependencies. | |
12884 | (build_scops): Force an empty entry block. | |
12885 | * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New | |
12886 | members. | |
12887 | (sese_build_liveouts): Declare. | |
12888 | (sese_trivially_empty_bb_p): Likewise. | |
12889 | * sese.c (sese_build_liveouts_bb): Properly handle PHIs, | |
12890 | compute liveout and debug_liveout. | |
12891 | (sese_bad_liveouts_use): Remove. | |
12892 | (sese_reset_debug_liveouts_bb): Likewise. | |
12893 | (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout. | |
12894 | (sese_build_liveouts): Build liveout and debug_liveout and store | |
12895 | it in region. | |
12896 | (new_sese_info): Adjust. | |
12897 | (free_sese_info): Likewise. | |
12898 | (sese_insert_phis_for_liveouts): Reset debug stmts from here, | |
12899 | do not build liveout here. | |
12900 | (move_sese_in_condition): Adjust region entry. | |
12901 | (scev_analyzable_p): Match up with chrec_apply requirements. | |
12902 | (sese_trivially_empty_bb_p): New. | |
12903 | * tree-into-ssa.c (get_reaching_def): Properly support generating | |
12904 | default-defs for incremental rewrite of anonymous names. | |
12905 | ||
12906 | 2017-10-06 Richard Biener <rguenther@suse.de> | |
12907 | ||
12908 | * graphite-sese-to-poly.c (extract_affine): For casts increasing | |
12909 | precision do not perform modulo reduction. | |
12910 | ||
12911 | 2017-10-06 Richard Biener <rguenther@suse.de> | |
12912 | ||
12913 | PR tree-optimization/82436 | |
12914 | * tree-vect-slp.c (vect_supported_load_permutation_p): More | |
12915 | conservatively choose the vectorization factor when checking | |
12916 | whether we can perform the required load permutation. | |
12917 | (vect_transform_slp_perm_load): Assert when we may not fail. | |
12918 | ||
12919 | 2017-10-05 Segher Boessenkool <segher@kernel.crashing.org> | |
12920 | ||
12921 | * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error | |
12922 | message for incompatible -msdata=* and -mcall-* options. | |
12923 | ||
12924 | 2017-10-05 Jan Hubicka <hubicka@ucw.cz> | |
12925 | ||
12926 | * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue | |
12927 | rate for post-reload scheduling. | |
12928 | ||
12929 | 2017-10-05 Tamar Christina <tamar.christina@arm.com> | |
12930 | ||
12931 | * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New. | |
12932 | ||
12933 | 2017-10-05 Jan Hubicka <hubicka@ucw.cz> | |
12934 | ||
12935 | * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2) | |
12936 | to improve monte carlo in scimark. | |
12937 | ||
12938 | 2017-10-05 Jan Hubicka <hubicka@ucw.cz> | |
12939 | ||
12940 | * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost, | |
12941 | pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost, | |
12942 | athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost, | |
12943 | pentium4_cost, nocona_cost): Set reassociation width to 1. | |
12944 | (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation | |
12945 | width to 2 for fp operations and 1 otherwise. | |
12946 | (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6 | |
12947 | for int and fp. | |
12948 | (atom_cost): Set reassociation width to 2. | |
12949 | (slm_cost, generic_cost): Set fp reassociation width | |
12950 | to 2 and 1 otherwise. | |
12951 | (intel_cost): Set fp reassociation width to 4 and 1 otherwise. | |
12952 | (core_cost): Set fp reassociation width to 4 and vector to 2. | |
12953 | (ix86_reassociation_width): Rewrite using cost table; special case | |
12954 | plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS | |
12955 | and TARGET_AVX128_OPTIMAL. | |
12956 | * config/i386/i386.h (processor_costs): Add | |
12957 | reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp. | |
12958 | (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL, | |
12959 | TARGET_REASSOC_FP_TO_PARALLEL): Remove. | |
12960 | * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove. | |
12961 | (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove. | |
12962 | (X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove. | |
12963 | ||
12964 | 2017-10-05 Nathan Sidwell <nathan@acm.org> | |
12965 | ||
12966 | * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour. | |
12967 | ||
12968 | 2017-10-05 Tamar Christina <tamar.christina@arm.com> | |
12969 | ||
12970 | * config/arm/arm.c (arm_test_fpu_data): New. | |
12971 | (arm_run_selftests): Call arm_test_fpu_data. | |
12972 | ||
12973 | 2017-10-04 Nathan Sidwell <nathan@acm.org> | |
12974 | ||
12975 | * toplev.c (toplev::main): Remove excess parens on pretty_printer | |
12976 | decl. | |
12977 | * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm. | |
12978 | ||
12979 | 2017-10-04 Sudakshina Das <sudi.das@arm.com> | |
12980 | ||
12981 | * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New | |
12982 | check type for aarch64_simd_valid_immediate. | |
12983 | (aarch64_output_simd_mov_immediate): Update prototype. | |
12984 | (aarch64_simd_valid_immediate): Update prototype. | |
12985 | * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add | |
12986 | support for ORR-immediate. | |
12987 | (and<mode>3): modified pattern to add support for BIC-immediate. | |
12988 | * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function | |
12989 | now checks for valid immediate for BIC and ORR based on new enum | |
12990 | argument. | |
12991 | (aarch64_output_simd_mov_immediate): Function now used to output | |
12992 | BIC/ORR imm as well based on new enum argument. | |
12993 | * config/aarch64/constraints.md (Do): New vector immediate constraint. | |
12994 | (Db) : Likewise. | |
12995 | * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate. | |
12996 | (aarch64_reg_or_bic_imm): Likewise. | |
12997 | ||
12998 | 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
12999 | ||
13000 | * config/s390/vx-builtins.md ("vec_mergeh<mode>") | |
13001 | ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE. | |
13002 | ||
13003 | 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com> | |
13004 | ||
13005 | Revert r253399: | |
13006 | ||
13007 | PR rtl-optimization/82396 | |
13008 | * haifa-sched.c (autopref_multipass_init): Simplify | |
13009 | initialization. | |
13010 | (autopref_rank_data): Simplify sort order. | |
13011 | * sched-int.h (autopref_multipass_data_): Remove | |
13012 | multi_mem_insn_p, min_offset and max_offset. | |
13013 | ||
13014 | 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13015 | ||
13016 | * doc/sourcebuild.texi: Document vect_peeling_profitable. | |
13017 | ||
13018 | 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13019 | ||
13020 | * doc/sourcebuild.texi: Document vect_intdouble_cvt and | |
13021 | vect_doubleint_cvt. | |
13022 | ||
13023 | 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13024 | ||
13025 | * doc/sourcebuild.texi: Document vect_long_mult. | |
13026 | ||
13027 | 2017-10-04 Richard Sandiford <richard.sandiford@linaro.org> | |
13028 | ||
13029 | PR tree-optimization/82413 | |
13030 | * fold-const.c (build_range_check): Use widest_int when comparing | |
13031 | the maximum ETYPE value with HIGH. | |
13032 | ||
13033 | 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com> | |
13034 | ||
13035 | PR rtl-optimization/82396 | |
13036 | * haifa-sched.c (autopref_multipass_init): Simplify | |
13037 | initialization. | |
13038 | (autopref_rank_data): Simplify sort order. | |
13039 | * sched-int.h (autopref_multipass_data_): Remove | |
13040 | multi_mem_insn_p, min_offset and max_offset. | |
13041 | ||
13042 | 2017-10-04 Jakub Jelinek <jakub@redhat.com> | |
13043 | ||
13044 | PR tree-optimization/82381 | |
13045 | * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different | |
13046 | oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other | |
13047 | is not. | |
13048 | ||
13049 | PR tree-optimization/82374 | |
13050 | * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES, | |
13051 | DECL_FUNCTION_SPECIFIC_OPTIMIZATION, | |
13052 | DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from | |
13053 | current_function_decl to the new decl. | |
13054 | ||
13055 | 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com> | |
13056 | ||
13057 | * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new | |
13058 | helper macro for IEEE float128 hardware built-in functions. | |
13059 | (SQRTF128_ODD): Add built-in functions with the round-to-odd | |
13060 | semantics. | |
13061 | (TRUNCF128_ODD): Likewise. | |
13062 | (ADDF128_ODD): Likewise. | |
13063 | (SUBF128_ODD): Likewise. | |
13064 | (MULF128_ODD): Likewise. | |
13065 | (DIVF128_ODD): Likewise. | |
13066 | (FMAF128_ODD): Likewise. | |
13067 | * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to | |
13068 | UNSPEC_TRUNC_ROUND_TO_ODD. | |
13069 | (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise. | |
13070 | (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit | |
13071 | floating point round to odd instructions. | |
13072 | (UNSPEC_SUB_ROUND_TO_ODD): Likewise. | |
13073 | (UNSPEC_MUL_ROUND_TO_ODD): Likewise. | |
13074 | (UNSPEC_DIV_ROUND_TO_ODD): Likewise. | |
13075 | (UNSPEC_FMA_ROUND_TO_ODD): Likewise. | |
13076 | (UNSPEC_SQRT_ROUND_TO_ODD): Likewise. | |
13077 | (trunc<mode>sf2_hw): Change the truncate with round to odd | |
13078 | expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. | |
13079 | (add<mode>3_odd): Add insns for IEEE 128-bit floating point round | |
13080 | to odd hardware instructions. | |
13081 | (sub<mode>3_odd): Likewise. | |
13082 | (mul<mode>3_odd): Likewise. | |
13083 | (div<mode>3_odd): Likewise. | |
13084 | (sqrt<mode>2_odd): Likewise. | |
13085 | (fma<mode>4_odd): Likewise. | |
13086 | (fms<mode>4_odd): Likewise. | |
13087 | (nfma<mode>4_odd): Likewise. | |
13088 | (nfms<mode>4_odd): Likewise. | |
13089 | (trunc<mode>df2_odd): Change the truncate with round to odd | |
13090 | expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator | |
13091 | function. | |
13092 | * doc/extend.texi (PowerPC built-in functions): Update documentation | |
13093 | for existing IEEE float128-bit built-in functions. Add built-in | |
13094 | functions that generate the IEEE 128-bit floating point round to | |
13095 | odd instructions. | |
13096 | ||
13097 | 2017-10-03 Segher Boessenkool <segher@kernel.crashing.org> | |
13098 | ||
13099 | PR rtl-optimization/77729 | |
13100 | * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2 | |
13101 | to (X&(C1&~C2))|C2 transformations. | |
13102 | ||
13103 | 2017-10-03 Martin Jambor <mjambor@suse.cz> | |
13104 | ||
13105 | PR tree-optimization/82363 | |
13106 | * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable | |
13107 | mismatch, mark lacc written regardless of racc. | |
13108 | ||
13109 | 2017-10-03 Jakub Jelinek <jakub@redhat.com> | |
13110 | ||
13111 | PR tree-optimization/82381 | |
13112 | * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check | |
13113 | stmt_to_insert nor wheather SSA_NAMEs are default defs. | |
13114 | Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal, | |
13115 | fallthrough into reassoc_stmt_dominates_stmt_p. | |
13116 | ||
13117 | PR target/82386 | |
13118 | * combine.c (combine_instructions): Don't combine in unreachable | |
13119 | basic blocks. | |
13120 | ||
13121 | 2017-10-02 Peter Bergner <bergner@vnet.ibm.com> | |
13122 | ||
13123 | PR target/80210 | |
13124 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite | |
13125 | function to not use the have_cpu variable. Do not set cpu_index, | |
13126 | rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT | |
13127 | or the default cpu. | |
13128 | (rs6000_valid_attribute_p): Remove duplicate initializations of | |
13129 | old_optimize and func_optimize. | |
13130 | (rs6000_pragma_target_parse): Call rs6000_activate_target_options (). | |
13131 | (rs6000_activate_target_options): Make global. | |
13132 | * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add | |
13133 | prototype. | |
13134 | ||
13135 | 2017-10-02 Jakub Jelinek <jakub@redhat.com> | |
13136 | ||
13137 | * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1 | |
13138 | if *poffset + *pmax_size overflows in HOST_WIDE_INT. | |
13139 | Set *poffset to 0 and *psize and *pmax_size to -1 if | |
13140 | *poffset + *psize overflows in HOST_WIDE_INT. | |
13141 | ||
13142 | PR tree-optimization/82387 | |
13143 | PR tree-optimization/82388 | |
13144 | PR tree-optimization/82389 | |
13145 | * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled | |
13146 | instead of live_bytes non-NULL. | |
13147 | ||
13148 | 2017-10-02 Georg-Johann Lay <avr@gjlay.de> | |
13149 | ||
13150 | PR target/41076 | |
13151 | * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0" | |
13152 | alternative. | |
13153 | ||
13154 | 2017-10-02 Richard Biener <rguenther@suse.de> | |
13155 | ||
13156 | * graphite-isl-ast-to-gimple.c (set_codegen_error): With | |
13157 | -fchecking and --param graphite-allow-codegen-errors=0 ICE. | |
13158 | * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param. | |
13159 | ||
13160 | 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org> | |
13161 | ||
13162 | * tree.h (wi::int_traits <const_tree>::decompose): Assert that the | |
13163 | requested precision matches the type's. | |
13164 | * calls.c (alloc_max_size): Calculate the new candidate size as | |
13165 | a widest_int and use wi::to_widest when comparing it with the | |
13166 | current candidate size. | |
13167 | * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with | |
13168 | zero rather than integer_zero_node. | |
13169 | * match.pd: Check for a no-op conversion before using wi::add | |
13170 | rather than after. Use tree_to_uhwi when summing small shift | |
13171 | counts into an unsigned int. | |
13172 | ||
13173 | 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org> | |
13174 | Alan Hayward <alan.hayward@arm.com> | |
13175 | David Sherwood <david.sherwood@arm.com> | |
13176 | ||
13177 | PR target/71307 | |
13178 | * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class. | |
13179 | (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. | |
13180 | * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle | |
13181 | POINTER_AND_FP_REGS. | |
13182 | ||
13183 | 2017-10-02 Richard Biener <rguenther@suse.de> | |
13184 | ||
13185 | PR tree-optimization/82355 | |
13186 | * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build | |
13187 | a mapping for the enclosing loop but avoid generating one for | |
13188 | the loop tree root. | |
13189 | (copy_bb_and_scalar_dependences): Remove premature codegen | |
13190 | error on PHIs in blocks duplicated into multiple places. | |
13191 | * graphite-scop-detection.c | |
13192 | (scop_detection::stmt_has_simple_data_refs_p): For a loop not | |
13193 | in the region use it as loop and nest to analyze the DR in. | |
13194 | (try_generate_gimple_bb): Likewise. | |
13195 | * graphite-sese-to-poly.c (extract_affine_chrec): Adjust. | |
13196 | (add_loop_constraints): For blocks in a loop not in the region | |
13197 | create a dimension with a single iteration. | |
13198 | * sese.h (gbb_loop_at_index): Remove assert. | |
13199 | ||
13200 | 2017-10-01 Kevin Buettner <kevinb@redhat.com> | |
13201 | ||
13202 | * omp-expand.c (adjust_context_scope): New function. | |
13203 | (expand_parallel_call): Call adjust_context_scope. | |
13204 | ||
13205 | 2017-10-01 Jeff Law <law@redhat.com> | |
13206 | ||
13207 | * tree-ssa-dom.c (optimize_stmt): Make this a method within the | |
13208 | dom_opt_dom_walker class with direct access to private members. | |
13209 | Add comments. Call test_for_singularity. | |
13210 | (dom_opt_dom_walker::before_dom_children): Corresponding changes. | |
13211 | (dom_opt_dom_walker::after_dom_children): Do not lazily initialize | |
13212 | m_dummy_cond anymore. | |
13213 | (class dom_opt_dom_walker): Initialize m_dummy_cond member in the | |
13214 | class ctor. | |
13215 | (pass_dominator:execute): Build the dummy_cond here and pass it | |
13216 | to the dom_opt_dom_walker ctor. | |
13217 | (test_for_singularity): New function. | |
13218 | ||
13219 | 2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com> | |
13220 | Maya Rashish <coypu@sdf.org> | |
13221 | ||
13222 | * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing | |
13223 | netbsd.h, netbsd-stdint.h, and netbsd-elf.h. | |
13224 | (alpha*-*-netbsd*) Use nbsd_tm_file. | |
13225 | (arm*-*-netbsdelf*) Likewise. | |
13226 | (i[34567]86-*-netbsdelf*) Likewise. | |
13227 | (x86_64-*-netbsd*) Likewise. | |
13228 | (mips*-*-netbsd*) Likewise. | |
13229 | (powerpc-*-netbsd*) Likewise. | |
13230 | (sh*-*-netbsd*) Likewise. | |
13231 | (sparc-*-netbsdelf*) Likewise. | |
13232 | (sparc64-*-netbsd*) Likewise. | |
13233 | (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16 | |
13234 | to tm_defines. | |
13235 | (vax-*-netbsdelf*) Likewise. | |
13236 | * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8. | |
13237 | (UINT_FAST8_TYPE) Likewise. | |
13238 | (INT_FAST16_TYPE) Check CHAR_FAST16. | |
13239 | (UINT_FAST16_TYPE) Likewise. | |
13240 | ||
13241 | 2017-09-30 Jakub Jelinek <jakub@redhat.com> | |
13242 | ||
13243 | PR target/82361 | |
13244 | * config/i386/i386.md | |
13245 | (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split. | |
13246 | (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1, | |
13247 | *divmodsi4_zext_2): New define_insn_and_split. | |
13248 | (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn. | |
13249 | (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split. | |
13250 | (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1, | |
13251 | *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2): | |
13252 | New define_insn_and_split. | |
13253 | (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn. | |
13254 | * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or | |
13255 | operands[1] having DImode when mode is SImode. | |
13256 | ||
13257 | * config/i386/i386.c (ix86_split_idivmod): Use mode instead of | |
13258 | always SImode for DIV and MOD in REG_EQUAL notes. | |
13259 | ||
13260 | 2017-09-29 Yury Gribov <tetra2005@gmail.com> | |
13261 | ||
13262 | PR middle-end/82319 | |
13263 | * match.pd: Fix handling of NaNs in pattern. | |
13264 | ||
13265 | 2017-09-29 Jeff Law <law@redhat.com> | |
13266 | ||
13267 | * sbitmap.c (bitmap_bit_in_range_p): New function. | |
13268 | * sbitmap.h (bitmap_bit_in_range_p): Prototype. | |
13269 | * tree-ssa-dse.c (live_bytes_read): New function. | |
13270 | (dse_classify_store): Ignore reads of dead bytes. | |
13271 | ||
13272 | * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix | |
13273 | typos and whitespace errors. | |
13274 | * config/i386/predicates.md (address_no_seg_operand): Likewise. | |
13275 | * config/s390/s390.c (s390_emit_prologue): Likewise. | |
13276 | ||
13277 | 2017-09-29 Vladimir Makarov <vmakarov@redhat.com> | |
13278 | ||
13279 | PR target/81481 | |
13280 | * ira-costs.c (scan_one_insn): Don't take into account PIC equiv | |
13281 | with a symbol for LRA. | |
13282 | ||
13283 | 2017-09-29 Vladimir Makarov <vmakarov@redhat.com> | |
13284 | ||
13285 | PR rtl-optimization/82338 | |
13286 | * lra-constraints.c (inherit_in_ebb): Check usage_insns check. | |
13287 | ||
13288 | 2017-09-29 Alexander Monakov <amonakov@ispras.ru> | |
13289 | ||
13290 | * genmodes.c (calc_wider_mode): Suppress qsort macro. | |
13291 | * system.h [CHECKING_P] (qsort): Redirect to qsort_chk. | |
13292 | (qsort_chk): Declare. | |
13293 | * vec.c [CHECKING_P] (qsort_chk_error): New static function. | |
13294 | (qsort_chk): New function. | |
13295 | ||
13296 | 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
13297 | ||
13298 | PR tree-optimization/82337 | |
13299 | * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a | |
13300 | phi definition if the PHI result appears in an abnormal PHI. | |
13301 | (find_basis_for_base_expr): Don't record a basis if the LHS of the | |
13302 | basis appears in an abnormal PHI. | |
13303 | ||
13304 | 2017-09-29 Richard Biener <rguenther@suse.de> | |
13305 | ||
13306 | * graphite-isl-ast-to-gimple.c | |
13307 | (translate_isl_ast_to_gimple::set_codegen_error): New function. | |
13308 | (binary_op_to_tree): Use it. | |
13309 | (get_rename_from_scev): Likewise. | |
13310 | (copy_loop_phi_nodes): Likewise. | |
13311 | (copy_bb_and_scalar_dependences): Likewise. | |
13312 | (translate_pending_phi_nodes): Likewise. | |
13313 | ||
13314 | 2017-09-29 Jakub Jelinek <jakub@redhat.com> | |
13315 | ||
13316 | PR target/82339 | |
13317 | * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole | |
13318 | for movabsq $(i32 << shift), r64. | |
13319 | ||
13320 | 2017-09-28 Uros Bizjak <ubizjak@gmail.com> | |
13321 | ||
13322 | * config/i386/i386.c (ix86_print_operand_address_as): Do not check | |
13323 | index when encoding %esp as %rsp to avoid 0x67 prefix. | |
13324 | ||
13325 | 2017-09-28 Sergey Shalnov <Sergey.Shalnov@intel.com> | |
13326 | ||
13327 | * config/i386/i386.md (*movsf_internal, *movdf_internal): | |
13328 | Return 256-bit AVX modes for TARGET_PREFER_AVX256. | |
13329 | ||
13330 | 2017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
13331 | ||
13332 | * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security | |
13333 | Extensions with more than 16 double VFP registers. | |
13334 | (cmse_nonsecure_entry_clear_before_return): Remove second entry of | |
13335 | to_clear_mask and all code related to it. Replace the remaining | |
13336 | entry by a sbitmap and adapt code accordingly. | |
13337 | ||
13338 | 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com> | |
13339 | ||
13340 | * brig-builtins.def: Change pure attributes to const. | |
13341 | ||
13342 | 2017-09-28 Joseph Myers <joseph@codesourcery.com> | |
13343 | ||
13344 | * config.gcc (default_gnu_indirect_function): Default to yes for | |
13345 | sparc*-*-linux* with glibc. | |
13346 | ||
13347 | 2017-09-28 Joseph Myers <joseph@codesourcery.com> | |
13348 | ||
13349 | * config/aarch64/aarch64.c (aarch64_elf_asm_constructor) | |
13350 | (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section | |
13351 | when creating .init_array and .fini_array sections with priority | |
13352 | specified. | |
13353 | ||
13354 | 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org> | |
13355 | ||
13356 | PR target/71727 | |
13357 | * config/aarch64/aarch64.c | |
13358 | (aarch64_builtin_support_vector_misalignment): Always return false | |
13359 | when misalignment is unknown. | |
13360 | ||
13361 | 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
13362 | ||
13363 | * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise | |
13364 | this function to return false if the definition used by the swap | |
13365 | instruction is artificial, or if the memory address from which the | |
13366 | constant value is loaded is not represented by a base address held | |
13367 | in a register or if the base address register is a frame or stack | |
13368 | pointer. Additionally, return false if the base address of the | |
13369 | loaded constant is a SYMBOL_REF but is not considered to be a | |
13370 | constant. | |
13371 | (replace_swapped_load_constant): New function. | |
13372 | (rs6000_analyze_swaps): Add a new pass to replace a swap of a | |
13373 | loaded constant vector with a load of a swapped constant vector. | |
13374 | ||
13375 | 2017-09-27 Carl Love <cel@us.ibm.com> | |
13376 | ||
13377 | * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. | |
13378 | (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. | |
13379 | * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the | |
13380 | fctiw instruction. | |
13381 | ||
13382 | 2017-09-27 Alexander Monakov <amonakov@ispras.ru> | |
13383 | ||
13384 | * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns | |
13385 | first, always call autopref_rank_data otherwise. | |
13386 | ||
13387 | 2017-09-27 Richard Biener <rguenther@suse.de> | |
13388 | ||
13389 | * graphite-scop-detection.c (find_scop_parameters): Move | |
13390 | loop bound handling ... | |
13391 | (gather_bbs::before_dom_children): ... here, avoiding the need | |
13392 | to build scop_info->loop_nest. | |
13393 | (record_loop_in_sese): Remove. | |
13394 | * sese.h (sese_info_t::loop_nest): Remove. | |
13395 | * sese.c (new_sese_info): Do not allocate loop_nest. | |
13396 | (free_sese_info): Do not free loop_nest. | |
13397 | ||
13398 | 2017-09-27 Jakub Jelinek <jakub@redhat.com> | |
13399 | ||
13400 | PR c++/82159 | |
13401 | * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized | |
13402 | lhs from calls if the lhs has addressable type. | |
13403 | ||
13404 | 2017-09-27 Richard Biener <rguenther@suse.de> | |
13405 | ||
13406 | * graphite.h (scop::max_alias_set): New member. | |
13407 | * graphite-scop-detection.c: Remove references to non-existing | |
13408 | --param in comments. | |
13409 | (build_alias_sets): Record the maximum alias set used for drs. | |
13410 | (build_scops): Support zero as unlimited for | |
13411 | --param graphite-max-arrays-per-scop. | |
13412 | * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove | |
13413 | and inline into ... | |
13414 | (build_poly_sr_1): ... here. Compute alias set based on the | |
13415 | maximum alias set used for drs rather than | |
13416 | PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP | |
13417 | ||
13418 | 2017-09-27 Richard Biener <rguenther@suse.de> | |
13419 | ||
13420 | * graphite-optimize-isl.c (get_schedule_for_node_st): Allow | |
13421 | --param loop-block-tile-size=0 to disable tiling. | |
13422 | ||
13423 | 2017-09-27 Richard Biener <rguenther@suse.de> | |
13424 | ||
13425 | * doc/invoke.texi (graphite-max-bbs-per-function): Remove. | |
13426 | (graphite-max-nb-scop-params): Document special value zero. | |
13427 | * domwalk.h (dom_walker::STOP): New symbolical constant. | |
13428 | (dom_walker::dom_walker): Add optional parameter for bb to | |
13429 | RPO mapping. | |
13430 | (dom_walker::~dom_walker): Declare. | |
13431 | (dom_walker::before_dom_children): Document STOP return value. | |
13432 | (dom_walker::m_user_bb_to_rpo): New member. | |
13433 | (dom_walker::m_bb_to_rpo): Likewise. | |
13434 | * domwalk.c (dom_walker::dom_walker): Compute bb to RPO | |
13435 | mapping here if not provided by the user. | |
13436 | (dom_walker::~dom_walker): Free bb to RPO mapping if not | |
13437 | provided by the user. | |
13438 | (dom_walker::STOP): Define. | |
13439 | (dom_walker::walk): Do not compute bb to RPO mapping here. | |
13440 | Support STOP return value from before_dom_children to stop | |
13441 | walking. | |
13442 | * graphite-optimize-isl.c (optimize_isl): If the schedule | |
13443 | is the same still generate code if -fgraphite-identity | |
13444 | or -floop-parallelize-all are given. | |
13445 | * graphite-scop-detection.c: Include cfganal.h. | |
13446 | (gather_bbs::gather_bbs): Get and pass through bb to RPO | |
13447 | mapping. | |
13448 | (gather_bbs::before_dom_children): Return STOP for BBs | |
13449 | not in the region. | |
13450 | (build_scops): Compute bb to RPO mapping and pass it to | |
13451 | the domwalk. Treat --param graphite-max-nb-scop-params=0 | |
13452 | as not limiting the number of params. | |
13453 | * graphite.c (graphite_initialize): Remove limit on the | |
13454 | number of basic-blocks in a function. | |
13455 | * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove. | |
13456 | (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented | |
13457 | default value of 10. | |
13458 | ||
13459 | 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> | |
13460 | ||
13461 | * config/rs6000/vsx.md (peephole for optimizing move SF to GPR): | |
13462 | Adjust code to eliminate needing to do the shift right 32-bits | |
13463 | operation after XSCVDPSPN. | |
13464 | ||
13465 | 2017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
13466 | ||
13467 | * match.pd ((X / Y) == 0 -> X < Y): New pattern. | |
13468 | ((X / Y) != 0 -> X >= Y): Likewise. | |
13469 | ||
13470 | 2017-09-26 Carl Love <cel@us.ibm.com> | |
13471 | ||
13472 | * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R, | |
13473 | P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins | |
13474 | vector unsigned char vec_xl_len_r (unsigned char *, size_t); | |
13475 | void vec_xst_len_r (vector unsigned char, unsigned char *, size_t); | |
13476 | * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines. | |
13477 | * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add | |
13478 | definitions and overloading. | |
13479 | * config/rs6000/rs6000.c (altivec_expand_builtin): Add case | |
13480 | statement for P9V_BUILTIN_XST_LEN_R. | |
13481 | (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL. | |
13482 | * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add | |
13483 | define_expand and define_insn for the instructions and builtins. | |
13484 | * doc/extend.texi: Update the built-in documentation file for the new | |
13485 | built-in functions. | |
13486 | * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add | |
13487 | define_insn for the instructions | |
13488 | ||
13489 | 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com> | |
13490 | ||
13491 | PR target/39570 | |
13492 | * gcc/config/netbsd-protos.h: New file. | |
13493 | * gcc/config/netbsd.c: New file. | |
13494 | * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define. | |
13495 | * gcc/config/t-netbsd: New file. | |
13496 | * gcc/config.gcc (tm_p_file): Add netbsd-protos.h. | |
13497 | (tmake_file) Add t-netbsd. | |
13498 | (extra_objs) Add netbsd.o. | |
13499 | ||
13500 | 2017-09-26 Janus Weil <janus@gcc.gnu.org> | |
13501 | ||
13502 | PR fortran/82143 | |
13503 | PR fortran/82324 | |
13504 | * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16. | |
13505 | ||
13506 | 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com> | |
13507 | ||
13508 | * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do | |
13509 | sign extension from a vector register to a GPR by doing a 32-bit | |
13510 | direct move and then an EXTSW. | |
13511 | (extendsi<mode>2 splitter): Likewise. | |
13512 | (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift | |
13513 | right or vector extract after doing XSCVDPSPN. Use | |
13514 | zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to | |
13515 | the GPRs. | |
13516 | (movdi_from_sf_zero_ext): Likewise. | |
13517 | (reload_gpr_from_vsxsf): Likewise. | |
13518 | (p8_mfvsrd_4_disf): Delete, no longer used. | |
13519 | (movsi_from_df): Optimize converting a DFmode to a SFmode, and | |
13520 | then needing to move the SFmode to a GPR to use the XSCVDPSP | |
13521 | instruction instead of FRSP and XSCVDPSPN. | |
13522 | * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that | |
13523 | it is adjacent to the other XSCVSPDP insns. | |
13524 | (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow | |
13525 | SFmode to be in traditional Altivec registers. | |
13526 | (vsx_xscvdpspn): Eliminate useless alternative constraint. | |
13527 | (vsx_xscvspdpn): Likewise. | |
13528 | (vsx_xscvspdpn_scalar): Likewise. | |
13529 | ||
13530 | 2017-09-26 Martin Jambor <mjambor@suse.cz> | |
13531 | ||
13532 | * tree-sra.c (compare_access_positions): Put integral types first, | |
13533 | stabilize sorting of integral types, remove conditions putting | |
13534 | non-full-precision integers last. | |
13535 | (sort_and_splice_var_accesses): Disable scalarization if a | |
13536 | non-integert would be represented by a non-full-precision integer. | |
13537 | ||
13538 | 2017-09-26 Joseph Myers <joseph@codesourcery.com> | |
13539 | ||
13540 | * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise. | |
13541 | * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise. | |
13542 | * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise. | |
13543 | * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end. | |
13544 | Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL] | |
13545 | conditionals inside the function instead of around it. Call | |
13546 | file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK. | |
13547 | (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end. | |
13548 | ||
13549 | 2017-09-26 Richard Biener <rguenther@suse.de> | |
13550 | ||
13551 | * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite, | |
13552 | fold in ... | |
13553 | (scop_detection::build_scop_breadth): ... this. Removed. | |
13554 | (scop_detection::loop_is_valid_in_scop): Fold into single caller. | |
13555 | (scop_detection::harmful_stmt_in_bb): Likewise. | |
13556 | (scop_detection::graphite_can_represent_stmt): Likewise. | |
13557 | (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion. | |
13558 | (scop_detection::can_represent_loop): Remove recursion, fold in ... | |
13559 | (scop_detection::can_represent_loop_1): ... this. Removed. | |
13560 | (scop_detection::harmful_loop_in_region): Simplify after inlining | |
13561 | the above and remove more quadraticness. | |
13562 | (build_scops): Adjust. | |
13563 | * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless | |
13564 | quadraticness. | |
13565 | ||
13566 | 2017-09-26 Jakub Jelinek <jakub@redhat.com> | |
13567 | ||
13568 | PR target/82267 | |
13569 | * config/i386/i386.c (ix86_print_operand_address_as): Only test | |
13570 | REGNO (base) == SP_REG if base is a REG. | |
13571 | ||
13572 | PR middle-end/35691 | |
13573 | * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time | |
13574 | if it is different SSA_NAME. | |
13575 | (optimize_range_tests_cmp_bitwise): New function. | |
13576 | (optimize_range_tests): Call it. | |
13577 | ||
13578 | 2017-09-26 Richard Biener <rguenther@suse.de> | |
13579 | ||
13580 | PR tree-optimization/82321 | |
13581 | * graphite.c (canonicalize_loop_closed_ssa): Properly check | |
13582 | for the def being inside the loop. | |
13583 | ||
13584 | 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13585 | ||
13586 | * config/s390/vx-builtins.md ("vmslg"): Add missing operand in | |
13587 | assembler output. | |
13588 | * config/s390/s390-builtins.def: Fix constraint on op4. | |
13589 | ||
13590 | 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13591 | ||
13592 | * config/s390/s390.c (s390_expand_vec_compare): Use the new mode | |
13593 | independent expanders. | |
13594 | * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt") | |
13595 | ("vec_ordered", "vec_unordered"): New expanders. | |
13596 | ||
13597 | 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13598 | ||
13599 | * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode | |
13600 | for SFmode. | |
13601 | ||
13602 | 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13603 | ||
13604 | * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to | |
13605 | vec_unpacks_lo_v16qi. | |
13606 | ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi. | |
13607 | ||
13608 | 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13609 | ||
13610 | * config/s390/vector.md ("vec_unpacks_lo_v4sf") | |
13611 | ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df") | |
13612 | ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders. | |
13613 | ||
13614 | 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13615 | ||
13616 | * config/s390/predicates.md ("const_shift_by_byte_operand"): New | |
13617 | predicate. | |
13618 | * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128 | |
13619 | and V16QI. | |
13620 | ("*vec_slb<mode>"): New insn pattern. | |
13621 | ("vec_shr_<mode>"): New expander. | |
13622 | * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander | |
13623 | and force the shift count operand to V16QImode. | |
13624 | ("vec_srb<mode>"): Set shift count mode to V16QI. | |
13625 | ||
13626 | 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
13627 | ||
13628 | * config/s390/vector.md ("vec_widen_umult_lo_<mode>") | |
13629 | ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>") | |
13630 | ("vec_widen_smult_hi_<mode>"): New expander definitions. | |
13631 | ||
13632 | 2017-09-26 Richard Earnshaw <rearnsha@arm.com> | |
13633 | ||
13634 | PR target/82175 | |
13635 | * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas. | |
13636 | ||
13637 | 2017-09-26 Richard Biener <rguenther@suse.de> | |
13638 | ||
13639 | PR tree-optimization/82320 | |
13640 | * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef | |
13641 | isn't a change. | |
13642 | ||
13643 | 2017-09-25 Jeff Law <law@redhat.com> | |
13644 | ||
13645 | * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update | |
13646 | prototype for new argument. | |
13647 | * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function, | |
13648 | mostly extracted from rs6000_emit_allocate_stack. | |
13649 | (rs6000_emit_probe_stack_range_stack_clash): New function. | |
13650 | (rs6000_emit_allocate_stack): Call | |
13651 | rs6000_emit_probe_stack_range_stack_clash as needed. | |
13652 | (rs6000_emit_probe_stack_range): Add additional argument | |
13653 | to call to gen_probe_stack_range{si,di}. | |
13654 | (output_probe_stack_range): New. | |
13655 | (output_probe_stack_range_1): Renamed from output_probe_stack_range. | |
13656 | (output_probe_stack_range_stack_clash): New. | |
13657 | (rs6000_emit_prologue): Emit notes into dump file as requested. | |
13658 | * rs6000.md (allocate_stack): Handle -fstack-clash-protection. | |
13659 | (probe_stack_range<P:mode>): Operand 0 is now early-clobbered. | |
13660 | Add additional operand and pass it to output_probe_stack_range. | |
13661 | ||
13662 | 2017-09-25 Bin Cheng <bin.cheng@arm.com> | |
13663 | ||
13664 | PR tree-optimization/82163 | |
13665 | * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter. | |
13666 | (checking_verify_loop_closed_ssa): New parameter. | |
13667 | * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete. | |
13668 | (check_loop_closed_ssa_stmt): Delete. | |
13669 | (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions. | |
13670 | (verify_loop_closed_ssa): Check loop closed ssa form for LOOP. | |
13671 | (tree_transform_and_unroll_loop): Check loop closed ssa form only for | |
13672 | changed loops. | |
13673 | ||
13674 | 2017-09-25 Pekka Jaaskelainen <pekka@parmance.com> | |
13675 | ||
13676 | * brig-builtins.def: Treat HSAIL barrier builtins as | |
13677 | setjmp/longjump style functions. | |
13678 | ||
13679 | 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org> | |
13680 | ||
13681 | * target.def (constant_alignment): New hook. | |
13682 | * defaults.h (CONSTANT_ALIGNMENT): Delete. | |
13683 | * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with... | |
13684 | (TARGET_CONSTANT_ALIGNMENT): ...this new hook. | |
13685 | * doc/tm.texi: Regenerate. | |
13686 | * targhooks.h (default_constant_alignment): Declare. | |
13687 | (constant_alignment_word_strings): Likewise. | |
13688 | * targhooks.c (default_constant_alignment): New function. | |
13689 | (constant_alignment_word_strings): Likewise. | |
13690 | * builtins.c (get_object_alignment_2): Use targetm.constant_alignment | |
13691 | instead of CONSTANT_ALIGNMENT. | |
13692 | * varasm.c (align_variable, get_variable_align, build_constant_desc) | |
13693 | (force_const_mem): Likewise. | |
13694 | * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete. | |
13695 | * config/aarch64/aarch64.c (aarch64_constant_alignment): New function. | |
13696 | (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT. | |
13697 | (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13698 | * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out | |
13699 | definition. | |
13700 | * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete. | |
13701 | * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13702 | constant_alignment_word_strings. | |
13703 | * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete. | |
13704 | (CONSTANT_ALIGNMENT): Likewise. | |
13705 | * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13706 | (arm_constant_alignment): New function. | |
13707 | * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete. | |
13708 | * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13709 | constant_alignment_word_strings. | |
13710 | * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete. | |
13711 | * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13712 | constant_alignment_word_strings. | |
13713 | * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete. | |
13714 | * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13715 | (cris_constant_alignment): New function. | |
13716 | * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete. | |
13717 | * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13718 | (epiphany_constant_alignment): New function. | |
13719 | * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete. | |
13720 | * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13721 | constant_alignment_word_strings. | |
13722 | * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete. | |
13723 | * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13724 | constant_alignment_word_strings. | |
13725 | * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete. | |
13726 | * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13727 | constant_alignment_word_strings. | |
13728 | * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete. | |
13729 | * config/i386/i386-protos.h (ix86_constant_alignment): Delete. | |
13730 | * config/i386/i386.c (ix86_constant_alignment): Make static. | |
13731 | Use the same interface as the target hook. | |
13732 | (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13733 | * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete. | |
13734 | * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13735 | constant_alignment_word_strings. | |
13736 | * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete. | |
13737 | * config/iq2000/iq2000.c (iq2000_constant_alignment): New function. | |
13738 | (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13739 | * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete. | |
13740 | * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13741 | constant_alignment_word_strings. | |
13742 | * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete. | |
13743 | * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13744 | constant_alignment_word_strings. | |
13745 | * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete. | |
13746 | * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13747 | constant_alignment_word_strings. | |
13748 | * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete. | |
13749 | * config/microblaze/microblaze.c (microblaze_constant_alignment): | |
13750 | New function. | |
13751 | (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13752 | * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete. | |
13753 | * config/mips/mips.c (mips_constant_alignment): New function. | |
13754 | (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13755 | * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete. | |
13756 | * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete. | |
13757 | * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13758 | (mmix_constant_alignment): Make static. Use the same interface | |
13759 | as the target hook. | |
13760 | * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete. | |
13761 | * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13762 | constant_alignment_word_strings. | |
13763 | * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete. | |
13764 | * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13765 | constant_alignment_word_strings. | |
13766 | * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete. | |
13767 | * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13768 | constant_alignment_word_strings. | |
13769 | * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete. | |
13770 | * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13771 | (rs6000_constant_alignment): New function. | |
13772 | * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete. | |
13773 | * config/riscv/riscv.c (riscv_constant_alignment): New function. | |
13774 | (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13775 | * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete. | |
13776 | * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13777 | (rs6000_constant_alignment): New function. | |
13778 | * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete. | |
13779 | * config/s390/s390.c (s390_constant_alignment): New function. | |
13780 | (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13781 | * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete. | |
13782 | * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13783 | constant_alignment_word_strings. | |
13784 | * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete. | |
13785 | * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13786 | (sparc_constant_alignment): New function. | |
13787 | * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete. | |
13788 | * config/spu/spu.c (spu_constant_alignment): New function. | |
13789 | (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13790 | * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete. | |
13791 | * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13792 | constant_alignment_word_strings. | |
13793 | * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete. | |
13794 | * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13795 | constant_alignment_word_strings. | |
13796 | * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete. | |
13797 | * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to | |
13798 | constant_alignment_word_strings. | |
13799 | * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete. | |
13800 | * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13801 | (visium_constant_alignment): New function. | |
13802 | * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete. | |
13803 | * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine. | |
13804 | (xtensa_constant_alignment): New function. | |
13805 | * system.h (CONSTANT_ALIGNMENT): Poison. | |
13806 | ||
13807 | 2017-09-25 Will Schmidt <will_schmidt@vnet.ibm.com> | |
13808 | ||
13809 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling | |
13810 | for early folding of vector stores (ALTIVEC_BUILTIN_ST_*). | |
13811 | (rs6000_builtin_valid_without_lhs): New helper function. | |
13812 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
13813 | Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST. | |
13814 | ||
13815 | 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org> | |
13816 | ||
13817 | * target.h (vec_perm_indices): Use unsigned short rather than | |
13818 | unsigned char. | |
13819 | (auto_vec_perm_indices): Likewise. | |
13820 | * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok): | |
13821 | Use unsigned int rather than unsigned char. | |
13822 | * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise. | |
13823 | ||
13824 | 2017-09-25 Richard Biener <rguenther@suse.de> | |
13825 | ||
13826 | * cfgloop.h (sort_sibling_loops): Declare. | |
13827 | * cfgloop.c (sort_sibling_loops_cmp): New helper. | |
13828 | (sort_sibling_loops): New function sorting the sibling loop list | |
13829 | in RPO order. | |
13830 | * graphite.c (graphite_transform_loops): Sort sibling loops. | |
13831 | ||
13832 | 2017-09-25 Richard Sandiford <richard.sandifird@linaro.org> | |
13833 | ||
13834 | * target.def (vec_perm_const_ok): Change sel parameter to | |
13835 | vec_perm_indices. | |
13836 | * optabs-query.c (can_vec_perm_p): Update accordingly. | |
13837 | * doc/tm.texi: Regenerate. | |
13838 | * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to | |
13839 | auto_vec_perm_indices and remove separate nelt field. | |
13840 | (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip) | |
13841 | (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup) | |
13842 | (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1) | |
13843 | (aarch64_expand_vec_perm_const): Update accordingly. | |
13844 | (aarch64_vectorize_vec_perm_const_ok): Likewise. Change sel | |
13845 | to vec_perm_indices. | |
13846 | * config/arm/arm.c (expand_vec_perm_d): Change perm to | |
13847 | auto_vec_perm_indices and remove separate nelt field. | |
13848 | (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev) | |
13849 | (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl) | |
13850 | (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update | |
13851 | accordingly. | |
13852 | (arm_vectorize_vec_perm_const_ok): Likewise. Change sel | |
13853 | to vec_perm_indices. | |
13854 | * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change | |
13855 | sel to vec_perm_indices. | |
13856 | * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise. | |
13857 | * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise. | |
13858 | * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok): | |
13859 | Likewise. | |
13860 | * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok): | |
13861 | Likewise. | |
13862 | ||
13863 | 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com> | |
13864 | ||
13865 | PR debug/82155 | |
13866 | * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl | |
13867 | on the FUNCTION_DECL function context if it has a DIE that is a | |
13868 | declaration. | |
13869 | ||
13870 | 2017-09-25 Richard Biener <rguenther@suse.de> | |
13871 | ||
13872 | PR tree-optimization/82285 | |
13873 | * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle | |
13874 | enumeral types. | |
13875 | ||
13876 | 2017-09-25 Tom de Vries <tom@codesourcery.com> | |
13877 | ||
13878 | PR target/80035 | |
13879 | PR target/81069 | |
13880 | * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to | |
13881 | noreturn function. | |
13882 | ||
13883 | 2017-09-25 Richard Biener <rguenther@suse.de> | |
13884 | ||
13885 | * graphite-optimize-isl.c (optimize_isl): Fail and dump if | |
13886 | ISL errors other than isl_error_quota happen. Dump if the | |
13887 | schedule is the same. | |
13888 | * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL | |
13889 | errors instead of aborting inside ISL. | |
13890 | ||
13891 | 2017-09-25 Iain Sandoe <iain@codesourcery.com> | |
13892 | ||
13893 | PR target/80556 | |
13894 | * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead | |
13895 | of libgcc_eh for m64. | |
13896 | * config/i386/darwin64.h: Likewise. | |
13897 | ||
13898 | 2017-09-25 Richard Biener <rguenther@suse.de> | |
13899 | ||
13900 | PR middle-end/82144 | |
13901 | * dwarf2out.c (gen_enumeration_type_die): Do not add alignment | |
13902 | attribute for incomplete types nor twice for complete ones. | |
13903 | ||
13904 | 2017-09-24 Uros Bizjak <ubizjak@gmail.com> | |
13905 | ||
13906 | PR target/82267 | |
13907 | * config/i386/i386.c (ix86_print_operand_address_as): Encode | |
13908 | %esp as %rsp to avoid 0x67 prefix if there is no index or base | |
13909 | register. | |
13910 | ||
13911 | 2017-09-23 Uros Bizjak <ubizjak@gmail.com> | |
13912 | ||
13913 | PR bootstrap/82306 | |
13914 | * config/i386/i386.opt (mprefer-avx256): Use | |
13915 | ix86_target_flags variable. | |
13916 | * config/i386/i386.c (ix86_target_string): Move | |
13917 | -mprefer-avx256 to flag2_opts. | |
13918 | ||
13919 | 2017-09-22 Jakub Jelinek <jakub@redhat.com> | |
13920 | ||
13921 | PR middle-end/35691 | |
13922 | * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1 | |
13923 | and x != -1 | y != -1 into (x & y) != -1. | |
13924 | ||
13925 | 2017-09-22 Steve Ellcey <sellcey@cavium.com> | |
13926 | ||
13927 | * config.gcc: Add new case statement to set | |
13928 | default_gnu_indirect_function. Remove it from x86_64-*-linux*, | |
13929 | i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*, | |
13930 | s390x-*-linux* case statements. Added aarch64 to the list of | |
13931 | supported architectures. | |
13932 | ||
13933 | 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org> | |
13934 | ||
13935 | PR tree-optimization/82289 | |
13936 | * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check | |
13937 | STMT_VINFO_RELEVANT_P. | |
13938 | ||
13939 | 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org> | |
13940 | Alan Hayward <alan.hayward@arm.com> | |
13941 | David Sherwood <david.sherwood@arm.com> | |
13942 | ||
13943 | * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert | |
13944 | for VR_RANGE only; don't allow VR_ANTI_RANGE. | |
13945 | (extract_range_from_binary_expr_1): Don't call | |
13946 | extract_range_from_multiplicative_op_1 if !range_int_cst_p. | |
13947 | ||
13948 | 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org> | |
13949 | Alan Hayward <alan.hayward@arm.com> | |
13950 | David Sherwood <david.sherwood@arm.com> | |
13951 | ||
13952 | * target.def (preferred_vector_alignment): New hook. | |
13953 | * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New | |
13954 | hook. | |
13955 | * doc/tm.texi: Regenerate. | |
13956 | * targhooks.h (default_preferred_vector_alignment): Declare. | |
13957 | * targhooks.c (default_preferred_vector_alignment): New function. | |
13958 | * tree-vectorizer.h (dataref_aux): Add a target_alignment field. | |
13959 | Expand commentary. | |
13960 | (DR_TARGET_ALIGNMENT): New macro. | |
13961 | (aligned_access_p): Update commentary. | |
13962 | (vect_known_alignment_in_bytes): New function. | |
13963 | * tree-vect-data-refs.c (vect_calculate_required_alignment): New | |
13964 | function. | |
13965 | (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT. | |
13966 | Calculate the misalignment based on the target alignment rather than | |
13967 | the vector size. | |
13968 | (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT | |
13969 | rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment. | |
13970 | (vect_enhance_data_refs_alignment): Mask the byte misalignment with | |
13971 | the target alignment, rather than masking the element misalignment | |
13972 | with the number of elements in a vector. Also use the target | |
13973 | alignment when calculating the maximum number of peels. | |
13974 | (vect_find_same_alignment_drs): Use vect_calculate_required_alignment | |
13975 | instead of TYPE_ALIGN_UNIT. | |
13976 | (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter. | |
13977 | Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT. | |
13978 | (vect_create_addr_base_for_vector_ref): Update call accordingly. | |
13979 | (vect_create_data_ref_ptr): Likewise. | |
13980 | (vect_setup_realignment): Realign by ANDing with | |
13981 | -DR_TARGET_MISALIGNMENT. | |
13982 | * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate | |
13983 | the number of peels based on DR_TARGET_ALIGNMENT. | |
13984 | * tree-vect-stmts.c (get_group_load_store_type): Compare the gap | |
13985 | with the guaranteed alignment boundary when deciding whether | |
13986 | overrun is OK. | |
13987 | (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT | |
13988 | relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT. | |
13989 | (ensure_base_align): Remove stmt_info parameter. Get the | |
13990 | target base alignment from DR_TARGET_ALIGNMENT. | |
13991 | (vectorizable_store): Update call accordingly. Interpret | |
13992 | DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of | |
13993 | TYPE_ALIGN_UNIT. | |
13994 | (vectorizable_load): Likewise. | |
13995 | ||
13996 | 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org> | |
13997 | Alan Hayward <alan.hayward@arm.com> | |
13998 | David Sherwood <david.sherwood@arm.com> | |
13999 | ||
14000 | * tree-vectorizer.h (vect_get_scalar_dr_size): New function. | |
14001 | * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it. | |
14002 | (vect_enhance_data_refs_alignment): Likewise. | |
14003 | ||
14004 | 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com> | |
14005 | ||
14006 | * config/arm/parsecpu.awk (fatal): Note that we've encountered an | |
14007 | error. Only quit immediately if parsing is complete. | |
14008 | (BEGIN): Initialize fatal_err and parse_done. | |
14009 | (begin fpu, end fpu): Check number of arguments. | |
14010 | (begin arch, end arch): Likewise. | |
14011 | (begin cpu, end cpu): Likewise. | |
14012 | (cname, tune for, tune flags, architecture, fpu, option): Likewise. | |
14013 | (optalias): Likewise. | |
14014 | ||
14015 | 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com> | |
14016 | ||
14017 | * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file. | |
14018 | * config/arm/arm-isa.h: Delete. Move definitions to ... | |
14019 | * arm-cpus.in: ... here. Use new feature and fgroup values. | |
14020 | * config/arm/arm.c (arm_option_override): Use lower case for feature | |
14021 | bit names. | |
14022 | * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise. | |
14023 | (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise. | |
14024 | * config/arm/parsecpu.awk (END): Add new command 'isa'. | |
14025 | (isa_pfx): Delete. | |
14026 | (print_isa_bits_for): New function. | |
14027 | (gen_isa): New function. | |
14028 | (gen_comm_data): Use print_isa_bits_for. | |
14029 | (define feature): New keyword. | |
14030 | (define fgroup): New keyword. | |
14031 | * config/arm/t-arm (TM_H): Remove. | |
14032 | (GTM_H): Add arm-isa.h. | |
14033 | (arm-isa.h): Add rule to generate file. | |
14034 | * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower | |
14035 | case for feature bit names. | |
14036 | ||
14037 | 2017-09-22 Richard Biener <rguenther@suse.de> | |
14038 | ||
14039 | * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into | |
14040 | single caller. | |
14041 | (graphite_regenerate_ast_isl): Do not reset SCEV. Move debug | |
14042 | print of no dependency loops ... | |
14043 | * graphite.c (graphite_transform_loops): ... here. | |
14044 | (canonicalize_loop_closed_ssa_form): Work from inner to outer | |
14045 | loops. | |
14046 | (same_close_phi_node, remove_duplicate_close_phi, | |
14047 | make_close_phi_nodes_unique, defined_in_loop_p): Fold into ... | |
14048 | (canonicalize_loop_closed_ssa): ... here and simplify. | |
14049 | * graphite-optimize-isl.c: Include tree-vectorizer.h. | |
14050 | (optimize_isl): Use dump_printf_loc to tell when we stopped | |
14051 | optimizing because of an ISL timeout. | |
14052 | ||
14053 | 2017-09-22 Richard Biener <rguenther@suse.de> | |
14054 | ||
14055 | PR tree-optimization/82291 | |
14056 | * tree-if-conv.c (predicate_mem_writes): Make sure to | |
14057 | remove writes in blocks predicated with false. | |
14058 | ||
14059 | 2017-09-22 Richard Biener <rguenther@suse.de> | |
14060 | ||
14061 | * sese.c: Include cfganal.h. | |
14062 | (if_region_set_false_region): Remove. | |
14063 | (create_if_region_on_edge): Likewise. | |
14064 | (move_sese_in_condition): Re-implement without destroying | |
14065 | dominators. | |
14066 | ||
14067 | 2017-09-22 Richard Biener <rguenther@suse.de> | |
14068 | ||
14069 | * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes): | |
14070 | Verify both BBs contain loop PHI nodes before dispatching to | |
14071 | copy_loop_phi_args. | |
14072 | (graphite_regenerate_ast_isl): Do not recompute dominators, | |
14073 | do not verify three times. Restructure for clarity. | |
14074 | * graphite-scop-detection.c (same_close_phi_node, | |
14075 | remove_duplicate_close_phi, make_close_phi_nodes_unique, | |
14076 | defined_in_loop_p, canonicalize_loop_closed_ssa, | |
14077 | canonicalize_loop_closed_ssa_form): Simplify, remove excess | |
14078 | checking and SSA rewrite, move to ... | |
14079 | * graphite.c: ... here. Include ssa.h and tree-ssa-loop-manip.h. | |
14080 | (graphite_initialize): Do not pass in ctx, do not reset the | |
14081 | SCEV cache, compute only dominators. | |
14082 | (graphite_transform_loops): Allocate ISL ctx after | |
14083 | graphite_initialize. Call canonicalize_loop_closed_ssa_form. | |
14084 | Maintain post-dominators only around build_scops. | |
14085 | * sese.c (if_region_set_false_region): Make static. Free | |
14086 | and recompute dominators. | |
14087 | (move_sese_in_condition): Assert we don't get called with | |
14088 | post-dominators computed. | |
14089 | * sese.h (if_region_set_false_region): Remove. | |
14090 | ||
14091 | 2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com> | |
14092 | ||
14093 | * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode> | |
14094 | mode attribute for TARGET_AVX512VL. | |
14095 | ||
14096 | 2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com> | |
14097 | ||
14098 | * config/i386/i386.opt (mprefer-avx256): New option. | |
14099 | * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256 | |
14100 | to flag_opts. | |
14101 | (ix86_preferred_simd_mode): Return 256-bit AVX modes | |
14102 | for TARGET_PREFER_AVX256. | |
14103 | * doc/invoke.texi (x86 Options): Document -mprefer-avx256. | |
14104 | ||
14105 | 2017-09-21 Jeff Law <law@redhat.com> | |
14106 | ||
14107 | * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): | |
14108 | Fix dump output if the only stack space is for pushed registers. | |
14109 | ||
14110 | 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> | |
14111 | ||
14112 | * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming | |
14113 | of insn_cost. | |
14114 | ||
14115 | 2017-09-21 Martin Sebor <msebor@redhat.com> | |
14116 | ||
14117 | PR c/81882 | |
14118 | * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed | |
14119 | code (in C++) or code that triggers warnings. | |
14120 | ||
14121 | 2017-09-21 Eric Botcazou <ebotcazou@adacore.com> | |
14122 | ||
14123 | * stor-layout.c (bit_from_pos): Do not distribute the conversion. | |
14124 | ||
14125 | 2017-09-21 Segher Boessenkool <segher@kernel.crashing.org> | |
14126 | ||
14127 | * haifa-sched.c: Rename insn_cost to insn_sched_cost. | |
14128 | * sched-rgn.c: Ditto. | |
14129 | * sel-sched-ir.c: Ditto. | |
14130 | ||
14131 | 2017-09-21 Alexander Monakov <amonakov@ispras.ru> | |
14132 | ||
14133 | * toplev.h (set_random_seed): Adjust return type. | |
14134 | * toplev.c (init_local_tick): Move eager initialization of random_seed | |
14135 | to get_random_seed. Adjust comment. | |
14136 | (init_random_seed): Inline to get_random_seed, delete. | |
14137 | (get_random_seed): Initialize random_seed lazily. | |
14138 | (set_random_seed): Do not return previous value. | |
14139 | (print_switch_value): Do not call get_random_seed. | |
14140 | ||
14141 | 2017-09-21 Evgeny Kudryashov <kudryashov@ispras.ru> | |
14142 | ||
14143 | * cgraph.c (delete_function_version): New, broken out from... | |
14144 | (cgraph_node::delete_function_version): ...here. Rename to | |
14145 | cgraph_node::delete_function_version_by_decl. Update all uses. | |
14146 | (cgraph_node::remove): Call delete_function_version. | |
14147 | ||
14148 | 2017-09-21 Jakub Jelinek <jakub@redhat.com> | |
14149 | ||
14150 | PR sanitizer/81715 | |
14151 | * tree-inline.c (expand_call_inline): Emit clobber stmts for | |
14152 | VAR_DECLs to which addressable non-volatile parameters are mapped | |
14153 | and for id->retvar after the return value assignment. Clear | |
14154 | id->retval and id->retbnd after inlining. | |
14155 | ||
14156 | 2017-09-21 Richard Biener <rguenther@suse.de> | |
14157 | ||
14158 | PR tree-optimization/82276 | |
14159 | PR tree-optimization/82244 | |
14160 | * tree-vrp.c (build_assert_expr_for): Set | |
14161 | SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on | |
14162 | has it set. | |
14163 | (remove_range_assertions): Revert earlier change. | |
14164 | ||
14165 | 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com> | |
14166 | ||
14167 | PR target/71951 | |
14168 | * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define. | |
14169 | ||
14170 | 2017-09-21 Richard Biener <rguenther@suse.de> | |
14171 | ||
14172 | * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): | |
14173 | Restore valid IL after code generation errors. | |
14174 | * graphite.c (graphite_transform_loops): Diagnose code | |
14175 | generation issues as MSG_MISSED_OPTIMIZATION and continue | |
14176 | with processing SCOPs. | |
14177 | ||
14178 | 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> | |
14179 | Alan Hayward <alan.hayward@arm.com> | |
14180 | David Sherwood <david.sherwood@arm.com> | |
14181 | ||
14182 | * calls.c (compute_argument_addresses): Use simplify_gen_binary | |
14183 | rather than choosing between plus_constant and gen_rtx_<CODE>. | |
14184 | * expr.c (emit_push_insn): Likewise. | |
14185 | (expand_expr_real_2): Likewise. | |
14186 | ||
14187 | 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> | |
14188 | Alan Hayward <alan.hayward@arm.com> | |
14189 | David Sherwood <david.sherwood@arm.com> | |
14190 | ||
14191 | * loop-unroll.c (split_iv): Call copy_rtx on the step. | |
14192 | ||
14193 | 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> | |
14194 | Alan Hayward <alan.hayward@arm.com> | |
14195 | David Sherwood <david.sherwood@arm.com> | |
14196 | ||
14197 | * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before | |
14198 | calling tree_to_uhwi. | |
14199 | ||
14200 | 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> | |
14201 | Alan Hayward <alan.hayward@arm.com> | |
14202 | David Sherwood <david.sherwood@arm.com> | |
14203 | ||
14204 | * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for | |
14205 | INTEGER_CST rather than a negative test for ADDR_EXPR. | |
14206 | ||
14207 | 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org> | |
14208 | Alan Hayward <alan.hayward@arm.com> | |
14209 | David Sherwood <david.sherwood@arm.com> | |
14210 | ||
14211 | * tree-vrp.c (extract_range_from_binary_expr_1): Check | |
14212 | int_cst_rangeN before calling value_range_constant_singleton (&vrN). | |
14213 | ||
14214 | 2017-09-21 Richard Biener <rguenther@suse.de> | |
14215 | ||
14216 | PR tree-optimization/71351 | |
14217 | * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple:: | |
14218 | graphite_create_new_loop_guard): Remove, fold remaining parts | |
14219 | into caller ... | |
14220 | (translate_isl_ast_node_for): ... here and simplify. | |
14221 | ||
14222 | 2017-09-21 Jakub Jelinek <jakub@redhat.com> | |
14223 | ||
14224 | PR target/82260 | |
14225 | * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative | |
14226 | with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the | |
14227 | latter two for 64-bit, renumber alternatives, for -Os imov (=q,n) | |
14228 | alternative always use QI mode, for -Os imov (=R,R) alternative | |
14229 | always use SI mode, for imov (=Q,Q) or (=r,r) alternatives | |
14230 | ignore -Os. | |
14231 | ||
14232 | 2017-09-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
14233 | Jeff Law <law@redhat.com> | |
14234 | ||
14235 | * config/s390/s390.c (MIN_UNROLL_PROBES): Define. | |
14236 | (allocate_stack_space): New function, partially extracted from | |
14237 | s390_emit_prologue. | |
14238 | (s390_emit_prologue): Track offset to most recent stack probe. | |
14239 | Code to allocate space moved into allocate_stack_space. | |
14240 | Dump actions when no stack is allocated. | |
14241 | (s390_prologue_plus_offset): New function. | |
14242 | (s390_emit_stack_probe): Likewise. | |
14243 | ||
14244 | 2017-09-20 Alexandre Oliva <aoliva@redhat.com> | |
14245 | ||
14246 | * common.opt (Wa, Wl, Wp, g, gz=): Add | |
14247 | RejectNegative. | |
14248 | (gno-column-info): Remove. | |
14249 | (gcolumn-info): Drop RejectNegative. | |
14250 | (gno-): New prefix. | |
14251 | (gno-record-gcc-switches): Remove. | |
14252 | (grecord-gcc-switches): Drop RejectNegative. | |
14253 | (gno-split-dwarf): Remove. | |
14254 | (gsplit-dwarf): Drop RejectNegative. | |
14255 | (gno-strict-dwarf): Remove. | |
14256 | (gstrict-dwarf): Drop RejectNegative. | |
14257 | * config/darwin.opt (gfull, gused): Add RejectNegative. | |
14258 | * dwarf2out.c (gen_producer_string): Drop | |
14259 | gno-record-gcc-switches handler. | |
14260 | * optc-gen.awk: Add g to prefixes with negative forms. | |
14261 | * opts-common.c (remapping_prefix_p): New. | |
14262 | (find_opt): Check it. | |
14263 | (generate_canonical_option): Test g prefix. | |
14264 | (option_map): Add -gno- mapping. | |
14265 | (add_misspelling_candidates): Check remapping_prefix_p. | |
14266 | ||
14267 | 2017-09-20 Jeff Law <law@redhat.com> | |
14268 | ||
14269 | * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix | |
14270 | thinko in stack clash protection support. | |
14271 | ||
14272 | * explow.c (compute_stack_clash_protection_loop_data): Use | |
14273 | CONST_INT_P instead of explicit test. Verify object is a | |
14274 | CONST_INT_P before looking at INTVAL. | |
14275 | (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P | |
14276 | instead of explicit test. | |
14277 | ||
14278 | 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org> | |
14279 | ||
14280 | PR target/77687 | |
14281 | * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch | |
14282 | address instead of to r1 and r11. | |
14283 | ||
14284 | 2017-09-20 Sebastian Peryt <sebastian.peryt@intel.com> | |
14285 | ||
14286 | * config.gcc: Support "knm". | |
14287 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm". | |
14288 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
14289 | PROCESSOR_KNM. | |
14290 | * config/i386/i386.c (m_KNM): Define. | |
14291 | (processor_target_table): Add "knm". | |
14292 | (PTA_KNM): Define. | |
14293 | (ix86_option_override_internal): Add "knm". | |
14294 | (ix86_issue_rate): Add PROCESSOR_KNM. | |
14295 | (ix86_adjust_cost): Ditto. | |
14296 | (ia32_multipass_dfa_lookahead): Ditto. | |
14297 | (get_builtin_code_for_version): Handle PROCESSOR_KNM. | |
14298 | (fold_builtin_cpu): Add M_INTEL_KNM. | |
14299 | * config/i386/i386.h (processor_costs): Define TARGET_KNM. | |
14300 | (processor_type): Add PROCESSOR_KNM. | |
14301 | * config/i386/x86-tune.def: Add m_KNM. | |
14302 | * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type. | |
14303 | ||
14304 | 2017-09-20 Richard Biener <rguenther@suse.de> | |
14305 | ||
14306 | PR tree-optimization/80213 | |
14307 | * graphite-scop-detection.c (trivially_empty_bb_p): Labels | |
14308 | are allowed in empty BBs as well. | |
14309 | (canonicalize_loop_closed_ssa): Also look for other complex | |
14310 | edges. | |
14311 | (scop_detection::get_sese): Include the loop-closed PHI block | |
14312 | in loop SESEs. | |
14313 | (scop_detection::merge_sese): Remove code adding extra blocks. | |
14314 | (scop_detection::region_has_one_loop): Adjust for get_sese changes. | |
14315 | (build_scops): Assert the final returned scop is invalid. | |
14316 | ||
14317 | 2017-09-20 Richard Biener <rguenther@suse.de> | |
14318 | ||
14319 | PR tree-optimization/82264 | |
14320 | * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check | |
14321 | for GIMPLE_CONDs. | |
14322 | (vn_phi_lookup): Likewise. | |
14323 | (vn_phi_insert): Likewise. | |
14324 | ||
14325 | 2017-09-20 Jakub Jelinek <jakub@redhat.com> | |
14326 | ||
14327 | * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST | |
14328 | that fits into uhwi or shwi, add DW_AT_const_value regardless | |
14329 | of early_dwarf without going through RTL, using add_AT_unsigned | |
14330 | or add_AT_int. | |
14331 | ||
14332 | * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines. | |
14333 | (DEBUG_LTO_ABBREV_SECTION): Likewise. | |
14334 | (DEBUG_LTO_MACINFO_SECTION): Likewise. | |
14335 | (DEBUG_MACRO_SECTION): Likewise. | |
14336 | (DEBUG_LTO_MACRO_SECTION): Likewise. | |
14337 | (DEBUG_STR_DWO_SECTION): Likewise. | |
14338 | (DEBUG_LTO_STR_DWO_SECTION): Likewise. | |
14339 | (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name. | |
14340 | (DEBUG_LTO_DWO_LINE_SECTION): Define. | |
14341 | (DEBUG_LTO_LINE_STR_SECTION): Define. | |
14342 | (init_sections_and_labels): Initialize debug_line_str_section | |
14343 | variable. Initialize debug_loc_section for -gdwarf-5 to | |
14344 | DEBUG_LOCLISTS_SECTION. Formatting fixes. | |
14345 | ||
14346 | 2017-09-20 Richard Biener <rguenther@suse.de> | |
14347 | ||
14348 | * graphite-sese-to-poly.c (extract_affine): Properly handle | |
14349 | POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed. | |
14350 | ||
14351 | 2017-09-20 Richard Biener <rguenther@suse.de> | |
14352 | ||
14353 | PR tree-optimization/81373 | |
14354 | * graphite-scop-detection.c (build_cross_bb_scalars_def): | |
14355 | Force SESE live-out defs to be handled even if they are | |
14356 | scev_analyzable_p. | |
14357 | ||
14358 | 2017-09-19 Jeff Law <law@redhat.com> | |
14359 | ||
14360 | * combine-stack-adj.c (combine_stack_adjustments_for_block): Do | |
14361 | nothing for stack adjustments with REG_STACK_CHECK. | |
14362 | * sched-deps.c (parse_add_or_inc): Reject insns with | |
14363 | REG_STACK_CHECK from dependency breaking. | |
14364 | * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn. | |
14365 | (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs. | |
14366 | * reg-notes.def (STACK_CHECK): New note. | |
14367 | ||
14368 | * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New. | |
14369 | (ix86_expand_prologue): Dump stack clash info as needed. | |
14370 | Call ix86_adjust_stack_and_probe_stack_clash as needed. | |
14371 | ||
14372 | * function.c (dump_stack_clash_frame_info): New function. | |
14373 | * function.h (dump_stack_clash_frame_info): Prototype. | |
14374 | (enum stack_clash_probes): New enum. | |
14375 | ||
14376 | * config/alpha/alpha.c (alpha_expand_prologue): Also check | |
14377 | flag_stack_clash_protection. | |
14378 | * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise. | |
14379 | (arm_expand_prologue, thumb1_expand_prologue): Likewise. | |
14380 | (arm_frame_pointer_required): Likewise. | |
14381 | * config/ia64/ia64.c (ia64_compute_frame_size): Likewise. | |
14382 | (ia64_expand_prologue): Likewise. | |
14383 | * config/mips/mips.c (mips_expand_prologue): Likewise. | |
14384 | * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise. | |
14385 | * config/sparc/sparc.c (sparc_expand_prologue): Likewise. | |
14386 | (sparc_flat_expand_prologue): Likewise. | |
14387 | * config/spu/spu.c (spu_expand_prologue): Likewise. | |
14388 | ||
14389 | * explow.c: Include "params.h". | |
14390 | (anti_adjust_stack_and_probe_stack_clash): New function. | |
14391 | (get_stack_check_protect): Likewise. | |
14392 | (compute_stack_clash_protection_loop_data): Likewise. | |
14393 | (emit_stack_clash_protection_loop_start): Likewise. | |
14394 | (emit_stack_clash_protection_loop_end): Likewise. | |
14395 | (allocate_dynamic_stack_space): Use get_stack_check_protect. | |
14396 | Use anti_adjust_stack_and_probe_stack_clash. | |
14397 | * explow.h (compute_stack_clash_protection_loop_data): Prototype. | |
14398 | (emit_stack_clash_protection_loop_start): Likewise. | |
14399 | (emit_stack_clash_protection_loop_end): Likewise. | |
14400 | * rtl.h (get_stack_check_protect): Prototype. | |
14401 | * target.def (stack_clash_protection_final_dynamic_probe): New hook. | |
14402 | * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New. | |
14403 | * targhooks.h (default_stack_clash_protection_final_dynamic_probe): | |
14404 | Prototype. | |
14405 | * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE): | |
14406 | Add @hook. | |
14407 | * doc/tm.texi: Rebuilt. | |
14408 | * config/aarch64/aarch64.c (aarch64_expand_prologue): Use | |
14409 | get_stack_check_protect. | |
14410 | * config/alpha/alpha.c (alpha_expand_prologue): Likewise. | |
14411 | * config/arm/arm.c (arm_expand_prologue): Likewise. | |
14412 | (arm_frame_pointer_required): Likewise. | |
14413 | * config/i386/i386.c (ix86_expand_prologue): Likewise. | |
14414 | * config/ia64/ia64.c (ia64_expand_prologue): Likewise. | |
14415 | * config/mips/mips.c (mips_expand_prologue): Likewise. | |
14416 | * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise. | |
14417 | * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. | |
14418 | * config/sparc/sparc.c (sparc_expand_prologue): Likewise. | |
14419 | (sparc_flat_expand_prologue): Likewise. | |
14420 | ||
14421 | * common.opt (-fstack-clash-protection): New option. | |
14422 | * flag-types.h (enum stack_check_type): Note difference between | |
14423 | -fstack-check= and -fstack-clash-protection. | |
14424 | * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM. | |
14425 | (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise. | |
14426 | * toplev.c (process_options): Issue warnings/errors for cases | |
14427 | not handled with -fstack-clash-protection. | |
14428 | * doc/invoke.texi (-fstack-clash-protection): Document new option. | |
14429 | (-fstack-check): Note additional problem with -fstack-check=generic. | |
14430 | Note that -fstack-check is primarily for Ada and refer users | |
14431 | to -fstack-clash-protection for stack-clash-protection. | |
14432 | Document new params for stack clash protection. | |
14433 | ||
14434 | 2017-09-19 Uros Bizjak <ubizjak@gmail.com> | |
14435 | ||
14436 | * config/i386/i386.c (ix86_split_long_move): Do not handle | |
14437 | address used for LEA in a special way. | |
14438 | ||
14439 | 2017-09-19 Segher Boessenkool <segher@kernel.crashing.org> | |
14440 | ||
14441 | * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment. | |
14442 | ||
14443 | 2017-09-19 Martin Sebor <msebor@redhat.com> | |
14444 | ||
14445 | PR c/81854 | |
14446 | * cgraphunit.c (handle_alias_pairs): Reject aliases between functions | |
14447 | of incompatible types. | |
14448 | ||
14449 | 2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com> | |
14450 | ||
14451 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling | |
14452 | for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*). | |
14453 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
14454 | Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD. | |
14455 | ||
14456 | 2017-09-19 Richard Biener <rguenther@suse.de> | |
14457 | ||
14458 | PR tree-optimization/82244 | |
14459 | * tree-vrp.c (remove_range_assertions): Do not propagate | |
14460 | a constant to abnormals but replace the assert with a copy. | |
14461 | ||
14462 | 2017-09-19 Alexander Monakov <amonakov@ispras.ru> | |
14463 | ||
14464 | PR rtl-optimization/57878 | |
14465 | PR rtl-optimization/68988 | |
14466 | * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation | |
14467 | avoidance test involving non_reload_pseudos. Move frequency test | |
14468 | below the general fragmentation avoidance test. | |
14469 | ||
14470 | 2017-09-19 Richard Biener <rguenther@suse.de> | |
14471 | ||
14472 | PR tree-optimization/69728 | |
14473 | * graphite-sese-to-poly.c (schedule_error): New global. | |
14474 | (add_loop_schedule): Handle empty domain by failing the | |
14475 | schedule. | |
14476 | (build_original_schedule): Handle schedule_error. | |
14477 | ||
14478 | 2017-09-19 Richard Biener <rguenther@suse.de> | |
14479 | ||
14480 | * graphite-scop-detection.c (scop_detection::can_represent_loop): | |
14481 | Do not iterate to sibling loops but only to siblings of inner | |
14482 | loops. | |
14483 | ||
14484 | 2017-09-18 Andreas Schwab <schwab@linux-m68k.org> | |
14485 | ||
14486 | PR target/81613 | |
14487 | * config/m68k/m68k.md (moveq feeding equality comparison): Check | |
14488 | that the registers are different. | |
14489 | ||
14490 | 2017-09-18 Uros Bizjak <ubizjak@gmail.com> | |
14491 | ||
14492 | * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H | |
14493 | to processor_model and "amdfam17h" to arch_names_table. | |
14494 | * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name. | |
14495 | ||
14496 | 2017-09-18 Jakub Jelinek <jakub@redhat.com> | |
14497 | ||
14498 | PR c/82234 | |
14499 | * doc/extend.texi: Add @findex entry for __builtin_shuffle. | |
14500 | ||
14501 | 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> | |
14502 | Alan Hayward <alan.hayward@arm.com> | |
14503 | David Sherwood <david.sherwood@arm.com> | |
14504 | ||
14505 | * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters | |
14506 | with a vec_info *. | |
14507 | * tree-vect-loop.c (vect_analyze_loop_operations): Update call | |
14508 | accordingly. | |
14509 | * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info * | |
14510 | parameter. Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in | |
14511 | vect_schedule_slp_instance. | |
14512 | (vect_slp_analyze_operations): Replace parameters with a vec_info *. | |
14513 | Update call to vect_slp_analyze_node_operations. Simplify return | |
14514 | value. | |
14515 | (vect_slp_analyze_bb_1): Update call accordingly. | |
14516 | (vect_schedule_slp_instance): Remove vectorization_factor parameter. | |
14517 | Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here. | |
14518 | (vect_schedule_slp): Update call accordingly. | |
14519 | ||
14520 | 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> | |
14521 | Alan Hayward <alan.hayward@arm.com> | |
14522 | David Sherwood <david.sherwood@arm.com> | |
14523 | ||
14524 | * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope | |
14525 | with types that aren't in fact scalar. | |
14526 | ||
14527 | 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> | |
14528 | ||
14529 | * tree-vect-slp.c (vect_record_max_nunits): New function, | |
14530 | split out from... | |
14531 | (vect_build_slp_tree_1): ...here. | |
14532 | (vect_build_slp_tree_2): Call it for phis too. | |
14533 | ||
14534 | 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> | |
14535 | ||
14536 | * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype | |
14537 | to vect_get_vec_def_for_operand when getting the mask operand. | |
14538 | ||
14539 | 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> | |
14540 | Alan Hayward <alan.hayward@arm.com> | |
14541 | David Sherwood <david.sherwood@arm.com> | |
14542 | ||
14543 | * tree-vect-loop.c (vectorizable_live_operation): Fix type of | |
14544 | bitstart. | |
14545 | ||
14546 | 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> | |
14547 | Alan Hayward <alan.hayward@arm.com> | |
14548 | David Sherwood <david.sherwood@arm.com> | |
14549 | ||
14550 | * tree-vect-loop.c (vectorizable_live_operation): Fix element size | |
14551 | calculation for vector booleans. | |
14552 | ||
14553 | 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org> | |
14554 | Alan Hayward <alan.hayward@arm.com> | |
14555 | David Sherwood <david.sherwood@arm.com> | |
14556 | ||
14557 | * tree-vect-stmts.c (can_vectorize_live_stmts): New function, | |
14558 | split out from... | |
14559 | (vect_transform_stmt): ...here. | |
14560 | (vect_analyze_stmt): Use it instead of calling | |
14561 | vectorizable_live_operation directly. | |
14562 | ||
14563 | 2017-09-18 Cesar Philippidis <cesar@codesourcery.com> | |
14564 | ||
14565 | * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on | |
14566 | non-SIMT targets in acc vector loops. | |
14567 | ||
14568 | 2017-09-18 Claudiu Zissulescu <claziss@synopsys.com> | |
14569 | ||
14570 | * configure.ac: Add arc and check if assembler supports gdwarf2. | |
14571 | * configure: Regenerate. | |
14572 | ||
14573 | 2017-09-18 Richard Biener <rguenther@suse.de> | |
14574 | ||
14575 | PR tree-optimization/82220 | |
14576 | * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude | |
14577 | epilogue niters from the min_profitable_iters compute. | |
14578 | ||
14579 | 2017-09-18 Jakub Jelinek <jakub@redhat.com> | |
14580 | ||
14581 | PR target/82145 | |
14582 | * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01 | |
14583 | changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately. | |
14584 | (ix86_init_pic_reg): Revert 2017-09-01 changes. | |
14585 | ||
14586 | 2017-09-18 Eric Botcazou <ebotcazou@adacore.com> | |
14587 | ||
14588 | PR target/81361 | |
14589 | * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after | |
14590 | switching to a new text section. | |
14591 | ||
14592 | 2017-09-18 Richard Biener <rguenther@suse.de> | |
14593 | ||
14594 | * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref): | |
14595 | Simplify. | |
14596 | (build_alias_set): Reject aliases with no access function. | |
14597 | ||
14598 | 2017-09-18 Richard Biener <rguenther@suse.de> | |
14599 | ||
14600 | PR tree-optimization/79622 | |
14601 | * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly | |
14602 | handle PHIs. | |
14603 | (build_cross_bb_scalars_use): Likewise. | |
14604 | ||
14605 | 2017-09-18 Pierre-Marie de Rodat <derodat@adacore.com> | |
14606 | ||
14607 | * cgraph.h (cgraph_thunk_info): Fix a typo in a comment. | |
14608 | ||
14609 | 2017-09-18 Alan Modra <amodra@gmail.com> | |
14610 | ||
14611 | PR target/81996 | |
14612 | * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use | |
14613 | stack_pointer_rtx for count 0. Update comments. Break up | |
14614 | large rtl expression. | |
14615 | ||
14616 | 2017-09-17 Daniel Santos <daniel.santos@pobox.com> | |
14617 | ||
14618 | * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN): | |
14619 | Increase to 20 bytes. | |
14620 | (xlogue_layout::s_stub_names): Add an additional size-2 diminsion. | |
14621 | (xlogue_layout::get_stub_name): Modify to select the appropairate sse | |
14622 | or avx version of the stub. | |
14623 | ||
14624 | 2017-09-17 H.J. Lu <hongjiu.lu@intel.com> | |
14625 | ||
14626 | PR target/82166 | |
14627 | * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly | |
14628 | compute the minimum stack alignment. Also update preferred stack | |
14629 | boundary for leaf functions. | |
14630 | ||
14631 | 2017-09-16 Richard Sandiford <richard.sandiford@linaro.org> | |
14632 | ||
14633 | PR tree-optimization/82228 | |
14634 | * tree-vect-loop.c (vectorizable_live_operation): Move initialization | |
14635 | of ncopies. | |
14636 | ||
14637 | 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com> | |
14638 | ||
14639 | * common/config/nds32/nds32-common.c | |
14640 | (nds32_option_optimization_table): Refine formatting. | |
14641 | (nds32_option_optimization_table): Use -fsched-pressure and | |
14642 | -fomit-frame-pointer for specific optimization level. | |
14643 | ||
14644 | 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com> | |
14645 | ||
14646 | * config/nds32/nds32.c: Refine formatting and comments. | |
14647 | * config/nds32/nds32.h: Likewise. | |
14648 | * config/nds32/nds32.md: Likewise. | |
14649 | * config/nds32/nds32-cost.c: Likewise. | |
14650 | * config/nds32/nds32-isr.c: Likewise. | |
14651 | * config/nds32/nds32-md-auxiliary.c: Likewise. | |
14652 | * config/nds32/nds32-multiple.md: Likewise. | |
14653 | * config/nds32/nds32-predicates.c: Likewise. | |
14654 | ||
14655 | 2017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com> | |
14656 | Jakub Jelinek <jakub@redhat.com> | |
14657 | ||
14658 | Add support for -std=c++2a. | |
14659 | * doc/cpp.texi (__cplusplus): Document value for -std=c++2a | |
14660 | or -std=gnu+2a. | |
14661 | * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a. | |
14662 | ||
14663 | 2017-09-15 Steve Ellcey <sellcey@cavium.com> | |
14664 | ||
14665 | PR target/82066 | |
14666 | * doc/extend.texi (Common Function Attributes): Add | |
14667 | references to ARM, AArch64, and S/390 specific attributes. | |
14668 | (Function Specific Option Pragmas): Add AArch64 and S/390 | |
14669 | to list of back ends that support the target pragma. | |
14670 | ||
14671 | 2017-09-15 Nathan Sidwell <nathan@acm.org> | |
14672 | ||
14673 | * doc/standards.texi: Fix C++17 description. Update URLs for | |
14674 | C++11 & 14. | |
14675 | ||
14676 | 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
14677 | ||
14678 | * common.opt (Wcast-align=strict): New warning option. | |
14679 | * doc/invoke.texi: Document -Wcast-align=strict. | |
14680 | ||
14681 | 2017-09-15 Pierre-Marie de Rodat <derodat@adacore.com> | |
14682 | ||
14683 | * cgraph.h (cgraph_thunk_info): Add comments. | |
14684 | * cgraph.c (cgraph_node::create_thunk): Adjust comment, make | |
14685 | assert for VIRTUAL_* arguments stricter. | |
14686 | ||
14687 | 2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com> | |
14688 | ||
14689 | PR tree-optimization/71026 | |
14690 | * match.pd: Move RDIV patterns from fold-const.c | |
14691 | * fold-const.c (distribute_real_division): Removed. | |
14692 | (fold_binary_loc): Remove calls to distribute_real_divison. | |
14693 | ||
14694 | 2017-09-15 Jakub Jelinek <jakub@redhat.com> | |
14695 | ||
14696 | * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document | |
14697 | c++1z and gnu++1z as deprecated. Change other references to | |
14698 | -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17. | |
14699 | Change -Wc++1z-compat to -Wc++17-compat. | |
14700 | * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L. | |
14701 | * dwarf2out.c (highest_c_language): Handle C++17. | |
14702 | (gen_compile_unit_die): Likewise. | |
14703 | ||
14704 | 2017-09-15 Jakub Jelinek <jakub@redhat.com> | |
14705 | ||
14706 | PR rtl-optimization/82192 | |
14707 | * combine.c (make_extraction): Don't look through non-paradoxical | |
14708 | SUBREGs or TRUNCATE if pos + len is or might be bigger than | |
14709 | inner's mode. | |
14710 | ||
14711 | 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org> | |
14712 | Alan Hayward <alan.hayward@arm.com> | |
14713 | David Sherwood <david.sherwood@arm.com> | |
14714 | ||
14715 | * target.def (function_arg_offset): New hook. | |
14716 | * targhooks.h (default_function_arg_offset): Declare. | |
14717 | * targhooks.c (default_function_arg_offset): New function. | |
14718 | * function.c (locate_and_pad_parm): Use | |
14719 | targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET. | |
14720 | * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with... | |
14721 | (TARGET_FUNCTION_ARG_OFFSET): ...this. | |
14722 | * doc/tm.texi: Regenerate. | |
14723 | * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete. | |
14724 | * config/spu/spu.c (spu_function_arg_offset): New function. | |
14725 | (TARGET_FUNCTION_ARG_OFFSET): Redefine. | |
14726 | * system.h (FUNCTION_ARG_OFFSET): Poison. | |
14727 | ||
14728 | 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org> | |
14729 | Alan Hayard <alan.hayward@arm.com> | |
14730 | David Sherwood <david.sherwood@arm.com> | |
14731 | ||
14732 | * target.def (truly_noop_truncation): New hook. | |
14733 | (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather | |
14734 | than TRULY_NOOP_TRUNCATION. | |
14735 | * hooks.h (hook_bool_uint_uint_true): Declare. | |
14736 | * hooks.c (hook_bool_uint_uint_true): New function. | |
14737 | * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with... | |
14738 | (TARGET_TRULY_NOOP_TRUNCATION): ...this. | |
14739 | * doc/tm.texi: Regenerate. | |
14740 | * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION | |
14741 | rather than TRULY_NOOP_TRUNCATION in comments. | |
14742 | (simplify_comparison): Likewise. | |
14743 | (record_truncated_value): Likewise. | |
14744 | * expmed.c (extract_bit_field_1): Likewise. | |
14745 | (extract_split_bit_field): Likewise. | |
14746 | * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation | |
14747 | instead of TRULY_NOOP_TRUNCATION. | |
14748 | * function.c (assign_parm_setup_block): Likewise. | |
14749 | * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise. | |
14750 | * rtlhooks.c: Include target.h. | |
14751 | * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete. | |
14752 | * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete. | |
14753 | * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete. | |
14754 | * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete. | |
14755 | * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete. | |
14756 | * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete. | |
14757 | * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete. | |
14758 | * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete. | |
14759 | * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete. | |
14760 | * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete. | |
14761 | * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete. | |
14762 | * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete. | |
14763 | * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete. | |
14764 | * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete. | |
14765 | * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete. | |
14766 | * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete. | |
14767 | * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete. | |
14768 | * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete. | |
14769 | * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete. | |
14770 | * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete. | |
14771 | * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete. | |
14772 | * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete. | |
14773 | * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete. | |
14774 | * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete. | |
14775 | * config/mips/mips.c (mips_truly_noop_truncation): New function. | |
14776 | (TARGET_TRULY_NOOP_TRUNCATION): Redefine. | |
14777 | * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION | |
14778 | rather than TRULY_NOOP_TRUNCATION in comments. | |
14779 | * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete. | |
14780 | * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete. | |
14781 | * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete. | |
14782 | * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete. | |
14783 | * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete. | |
14784 | * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete. | |
14785 | * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete. | |
14786 | * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete. | |
14787 | * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete. | |
14788 | * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete. | |
14789 | * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete. | |
14790 | * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION | |
14791 | rather than TRULY_NOOP_TRUNCATION in comments. | |
14792 | * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete. | |
14793 | * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete. | |
14794 | * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete. | |
14795 | * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete. | |
14796 | * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove | |
14797 | TRULY_NOOP_TRUNCATION condition. | |
14798 | (MAYBE_INDEX_REGISTER_RTX_P): Likewise. | |
14799 | (TRULY_NOOP_TRUNCATION): Delete. | |
14800 | * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete. | |
14801 | * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete. | |
14802 | * config/spu/spu.c (spu_truly_noop_truncation): New function. | |
14803 | (TARGET_TRULY_NOOP_TRUNCATION): Redefine. | |
14804 | * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete. | |
14805 | * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete. | |
14806 | * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction. | |
14807 | (TARGET_TRULY_NOOP_TRUNCATION): Redefine. | |
14808 | * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION | |
14809 | rather than TRULY_NOOP_TRUNCATION in comments. | |
14810 | * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete. | |
14811 | * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete. | |
14812 | * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete. | |
14813 | * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete. | |
14814 | * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete. | |
14815 | * system.h (TRULY_NOOP_TRUNCATION): Poison. | |
14816 | ||
14817 | 2017-09-15 Christophe Lyon <christophe.lyon@linaro.org> | |
14818 | ||
14819 | PR target/67591 | |
14820 | * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute. | |
14821 | (*cmp_ior): Likewise. | |
14822 | (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute. | |
14823 | (*ior_scc_scc_cmp): Likewise. | |
14824 | (*and_scc_scc): Likewise. | |
14825 | (*and_scc_scc_cmp): Likewise. | |
14826 | ||
14827 | 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org> | |
14828 | Alan Hayard <alan.hayward@arm.com> | |
14829 | David Sherwood <david.sherwood@arm.com> | |
14830 | ||
14831 | * target.def (can_change_mode_class): New hook. | |
14832 | (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS. | |
14833 | (hard_regno_nregs): Likewise. | |
14834 | * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare. | |
14835 | * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function. | |
14836 | * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with... | |
14837 | (TARGET_CAN_CHANGE_MODE_CLASS): ...this. | |
14838 | (LOAD_EXTEND_OP): Update accordingly. | |
14839 | * doc/tm.texi: Regenerate. | |
14840 | * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of | |
14841 | CANNOT_CHANGE_MODE_CLASS. | |
14842 | * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with... | |
14843 | (REG_CAN_CHANGE_MODE_P): ...this new macro. | |
14844 | * combine.c (simplify_set): Update accordingly. | |
14845 | * emit-rtl.c (validate_subreg): Likewise. | |
14846 | * recog.c (general_operand): Likewise. | |
14847 | * regcprop.c (mode_change_ok): Likewise. | |
14848 | * reload1.c (choose_reload_regs): Likewise. | |
14849 | (inherit_piecemeal_p): Likewise. | |
14850 | * rtlanal.c (simplify_subreg_regno): Likewise. | |
14851 | * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P | |
14852 | instead of CANNOT_CHANGE_MODE_CLASS. | |
14853 | (reload_cse_simplify_operands): Likewise. | |
14854 | * reload.c (push_reload): Use targetm.can_change_mode_class | |
14855 | instead of CANNOT_CHANGE_MODE_CLASS. | |
14856 | (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of | |
14857 | REG_CANNOT_CHANGE_MODE_P. | |
14858 | * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14859 | * config/alpha/alpha.c (alpha_can_change_mode_class): New function. | |
14860 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14861 | * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14862 | * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14863 | (arm_can_change_mode_class): New function. | |
14864 | * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather | |
14865 | than CANNOT_CHANGE_MODE_CLASS in comments. | |
14866 | * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14867 | * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete. | |
14868 | * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with... | |
14869 | (ix86_can_change_mode_class): ...this new function, inverting the | |
14870 | sense of the return value. | |
14871 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14872 | * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14873 | * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14874 | (ia64_can_change_mode_class): New function. | |
14875 | * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14876 | * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete. | |
14877 | * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with... | |
14878 | (m32c_can_change_mode_class): ...this new function, inverting the | |
14879 | sense of the return value. | |
14880 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14881 | * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14882 | * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete. | |
14883 | * config/mips/mips.c (mips_cannot_change_mode_class): Replace with... | |
14884 | (mips_can_change_mode_class): ...this new function, inverting the | |
14885 | sense of the return value. | |
14886 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14887 | * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14888 | * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14889 | (msp430_can_change_mode_class): New function. | |
14890 | * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14891 | * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function. | |
14892 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14893 | * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14894 | * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14895 | * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete. | |
14896 | * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14897 | (pa_cannot_change_mode_class): Replace with... | |
14898 | (pa_can_change_mode_class): ...this new function, inverting the | |
14899 | sense of the return value. | |
14900 | (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather | |
14901 | than CANNOT_CHANGE_MODE_CLASS in comments. | |
14902 | * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14903 | * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete. | |
14904 | * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14905 | (pdp11_cannot_change_mode_class): Replace with... | |
14906 | (pdp11_can_change_mode_class): ...this new function, inverting the | |
14907 | sense of the return value. | |
14908 | * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14909 | * config/powerpcspe/powerpcspe-protos.h | |
14910 | (rs6000_cannot_change_mode_class_ptr): Delete. | |
14911 | * config/powerpcspe/powerpcspe.c | |
14912 | (rs6000_cannot_change_mode_class_ptr): Delete. | |
14913 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14914 | (rs6000_option_override_internal): Assign to | |
14915 | targetm.can_change_mode_class instead of | |
14916 | rs6000_cannot_change_mode_class_ptr. | |
14917 | (rs6000_cannot_change_mode_class): Replace with... | |
14918 | (rs6000_can_change_mode_class): ...this new function, inverting the | |
14919 | sense of the return value. | |
14920 | (rs6000_debug_cannot_change_mode_class): Replace with... | |
14921 | (rs6000_debug_can_change_mode_class): ...this new function. | |
14922 | * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14923 | * config/riscv/riscv.c (riscv_can_change_mode_class): New function. | |
14924 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14925 | * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14926 | * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr): | |
14927 | Delete. | |
14928 | * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete. | |
14929 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14930 | (rs6000_option_override_internal): Assign to | |
14931 | targetm.can_change_mode_class instead of | |
14932 | rs6000_cannot_change_mode_class_ptr. | |
14933 | (rs6000_cannot_change_mode_class): Replace with... | |
14934 | (rs6000_can_change_mode_class): ...this new function, inverting the | |
14935 | sense of the return value. | |
14936 | (rs6000_debug_cannot_change_mode_class): Replace with... | |
14937 | (rs6000_debug_can_change_mode_class): ...this new function. | |
14938 | * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14939 | * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete. | |
14940 | * config/s390/s390.c (s390_cannot_change_mode_class): Replace with... | |
14941 | (s390_can_change_mode_class): ...this new function, inverting the | |
14942 | sense of the return value. | |
14943 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14944 | * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14945 | * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete. | |
14946 | * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14947 | (sh_cannot_change_mode_class): Replace with... | |
14948 | (sh_can_change_mode_class): ...this new function, inverting the | |
14949 | sense of the return value. | |
14950 | * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14951 | * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14952 | (sparc_can_change_mode_class): New function. | |
14953 | * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14954 | * config/spu/spu.c (spu_can_change_mode_class): New function. | |
14955 | (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14956 | * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete. | |
14957 | * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine. | |
14958 | (visium_can_change_mode_class): New function. | |
14959 | * system.h (CANNOT_CHANGE_MODE_CLASS): Poison. | |
14960 | ||
14961 | 2017-09-15 Richard Biener <rguenther@suse.de> | |
14962 | ||
14963 | PR tree-optimization/82217 | |
14964 | * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP | |
14965 | but not undefined case. | |
14966 | ||
14967 | 2017-09-15 Jakub Jelinek <jakub@redhat.com> | |
14968 | ||
14969 | PR target/82145 | |
14970 | * postreload.c (reload_cse_simplify_operands): Skip | |
14971 | NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL. | |
14972 | ||
14973 | 2017-09-15 Richard Biener <rguenther@suse.de> | |
14974 | ||
14975 | PR tree-optimization/68823 | |
14976 | * graphite-scop-detection.c (build_alias_set): If we have a | |
14977 | possible dependence check whether we can handle them by just | |
14978 | looking at the DRs DR_ACCESS_FNs. | |
14979 | (build_scops): If build_alias_set fails, fail the SCOP. | |
14980 | ||
14981 | 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com> | |
14982 | ||
14983 | * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros | |
14984 | to support float128 built-in functions that require the ISA 3.0 | |
14985 | hardware. | |
14986 | (BU_FLOAT128_3_HW): Likewise. | |
14987 | (SQRTF128): Add support for the IEEE 128-bit square root and fma | |
14988 | built-in functions. | |
14989 | (FMAF128): Likewise. | |
14990 | (FMAQ): Likewise. | |
14991 | * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add | |
14992 | support for built-in functions that need the ISA 3.0 IEEE 128-bit | |
14993 | floating point instructions. | |
14994 | (rs6000_invalid_builtin): Likewise. | |
14995 | (rs6000_builtin_mask_names): Likewise. | |
14996 | * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise. | |
14997 | (RS6000_BTM_FLOAT128_HW): Likewise. | |
14998 | (RS6000_BTM_COMMON): Likewise. | |
14999 | * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator | |
15000 | function. | |
15001 | * doc/extend.texi (RS/6000 built-in functions): Document the | |
15002 | IEEE 128-bit floating point square root and fused multiply-add | |
15003 | built-in functions. | |
15004 | ||
15005 | 2017-09-14 Pat Haugen <pthaugen@us.ibm.com> | |
15006 | ||
15007 | * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC | |
15008 | reg (r2) isn't in the set of registers defined in the prologue. | |
15009 | ||
15010 | 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> | |
15011 | Alan Hayward <alan.hayward@arm.com> | |
15012 | David Sherwood <david.sherwood@arm.com> | |
15013 | ||
15014 | * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor. | |
15015 | (LOOP_VINFO_MAX_VECT_FACTOR): New macro. | |
15016 | (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with... | |
15017 | (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro. | |
15018 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update | |
15019 | accordingly. | |
15020 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize | |
15021 | max_vectorization_factor. | |
15022 | (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR. | |
15023 | ||
15024 | 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> | |
15025 | Alan Hayward <alan.hayward@arm.com> | |
15026 | David Sherwood <david.sherwood@arm.com> | |
15027 | ||
15028 | * tree-vectorizer.h (vect_min_worthwhile_factor): Delete. | |
15029 | (vect_worthwhile_without_simd_p): Declare. | |
15030 | * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function. | |
15031 | (vectorizable_reduction): Use it. | |
15032 | * tree-vect-stmts.c (vectorizable_shift): Likewise. | |
15033 | (vectorizable_operation): Likewise. | |
15034 | ||
15035 | 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> | |
15036 | Alan Hayward <alan.hayward@arm.com> | |
15037 | David Sherwood <david.sherwood@arm.com> | |
15038 | ||
15039 | * tree-vectorizer.h (vect_get_num_copies): New function. | |
15040 | * tree-vect-data-refs.c (vect_get_data_access_cost): Use it. | |
15041 | * tree-vect-loop.c (vectorizable_reduction): Likewise. | |
15042 | (vectorizable_induction): Likewise. | |
15043 | (vectorizable_live_operation): Likewise. | |
15044 | * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. | |
15045 | (vectorizable_bswap): Likewise. | |
15046 | (vectorizable_call): Likewise. | |
15047 | (vectorizable_conversion): Likewise. | |
15048 | (vectorizable_assignment): Likewise. | |
15049 | (vectorizable_shift): Likewise. | |
15050 | (vectorizable_operation): Likewise. | |
15051 | (vectorizable_store): Likewise. | |
15052 | (vectorizable_load): Likewise. | |
15053 | (vectorizable_condition): Likewise. | |
15054 | (vectorizable_comparison): Likewise. | |
15055 | (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation. | |
15056 | ||
15057 | 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> | |
15058 | Alan Hayward <alan.hayward@arm.com> | |
15059 | David Sherwood <david.sherwood@arm.com> | |
15060 | ||
15061 | * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead | |
15062 | of vect_init_vector. | |
15063 | ||
15064 | 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> | |
15065 | Alan Hayward <alan.hayward@arm.com> | |
15066 | David Sherwood <david.sherwood@arm.com> | |
15067 | ||
15068 | * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide | |
15069 | an inline wrapper that provides a location. | |
15070 | (gimple_build_vector): Likewise. | |
15071 | * gimple-fold.c (gimple_build_vector_from_val): New function. | |
15072 | (gimple_build_vector): Likewise. | |
15073 | * tree-vect-loop.c (get_initial_def_for_reduction): Use the new | |
15074 | functions to build the initial value. Always return a gimple value. | |
15075 | (get_initial_defs_for_reduction): Likewise. Only compute | |
15076 | neutral_vec once. | |
15077 | (vect_create_epilog_for_reduction): Don't call force_gimple_operand or | |
15078 | vect_init_vector on the results from get_initial_def(s)_for_reduction. | |
15079 | (vectorizable_induction): Use gimple_build_vector rather than | |
15080 | vect_init_vector. | |
15081 | ||
15082 | 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> | |
15083 | Alan Hayward <alan.hayward@arm.com> | |
15084 | David Sherwood <david.sherwood@arm.com> | |
15085 | ||
15086 | * target.h (vec_perm_indices): New typedef. | |
15087 | (auto_vec_perm_indices): Likewise. | |
15088 | * optabs-query.h: Include target.h | |
15089 | (can_vec_perm_p): Take a vec_perm_indices *. | |
15090 | * optabs-query.c (can_vec_perm_p): Likewise. | |
15091 | (can_mult_highpart_p): Update accordingly. Use auto_vec_perm_indices. | |
15092 | * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. | |
15093 | * tree-vect-generic.c (lower_vec_perm): Likewise. | |
15094 | * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. | |
15095 | (vect_grouped_load_supported): Likewise. | |
15096 | (vect_shift_permute_load_chain): Likewise. | |
15097 | (vect_permute_store_chain): Use auto_vec_perm_indices. | |
15098 | (vect_permute_load_chain): Likewise. | |
15099 | * fold-const.c (fold_vec_perm): Take vec_perm_indices. | |
15100 | (fold_ternary_loc): Update accordingly. Use auto_vec_perm_indices. | |
15101 | Update uses of can_vec_perm_p. | |
15102 | * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the | |
15103 | mode with a number of elements. Take a vec_perm_indices *. | |
15104 | (vect_create_epilog_for_reduction): Update accordingly. | |
15105 | Use auto_vec_perm_indices. | |
15106 | (have_whole_vector_shift): Likewise. Update call to can_vec_perm_p. | |
15107 | * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. | |
15108 | (vect_transform_slp_perm_load): Likewise. | |
15109 | (vect_schedule_slp_instance): Use auto_vec_perm_indices. | |
15110 | * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices. | |
15111 | (vect_gen_perm_mask_checked): Likewise. | |
15112 | * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices. | |
15113 | (vect_gen_perm_mask_checked): Likewise. | |
15114 | (vectorizable_mask_load_store): Use auto_vec_perm_indices. | |
15115 | (vectorizable_store): Likewise. | |
15116 | (vectorizable_load): Likewise. | |
15117 | (perm_mask_for_reverse): Likewise. Update call to can_vec_perm_p. | |
15118 | (vectorizable_bswap): Likewise. | |
15119 | ||
15120 | 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> | |
15121 | Alan Hayward <alan.hayward@arm.com> | |
15122 | David Sherwood <david.sherwood@arm.com> | |
15123 | ||
15124 | * tree.h (build_vector): Take a vec<tree> instead of a tree *. | |
15125 | * tree.c (build_vector): Likewise. | |
15126 | (build_vector_from_ctor): Update accordingly. | |
15127 | (build_vector_from_val): Likewise. | |
15128 | * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. | |
15129 | * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. | |
15130 | * tree-vect-generic.c (add_rshift): Likewise. | |
15131 | (expand_vector_divmod): Likewise. | |
15132 | (optimize_vector_constructor): Likewise. | |
15133 | * tree-vect-slp.c (vect_get_constant_vectors): Likewise. | |
15134 | (vect_transform_slp_perm_load): Likewise. | |
15135 | (vect_schedule_slp_instance): Likewise. | |
15136 | * tree-vect-stmts.c (vectorizable_bswap): Likewise. | |
15137 | (vectorizable_call): Likewise. | |
15138 | (vect_gen_perm_mask_any): Likewise. Add elements in order. | |
15139 | * expmed.c (make_tree): Likewise. | |
15140 | * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building | |
15141 | a vector passed to build_vector. | |
15142 | (fold_convert_const): Likewise. | |
15143 | (exact_inverse): Likewise. | |
15144 | (fold_ternary_loc): Likewise. | |
15145 | (fold_relational_const): Likewise. | |
15146 | (const_binop): Likewise. Use VECTOR_CST_ELT directly when operating | |
15147 | on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array. | |
15148 | (const_unop): Likewise. Store the reduction accumulator in a | |
15149 | variable rather than an array. | |
15150 | (vec_cst_ctor_to_array): Take the number of elements as a parameter. | |
15151 | (fold_vec_perm): Update calls accordingly. Use auto_vec<tree> for | |
15152 | the new vector, rather than constructing it after the input arrays. | |
15153 | (native_interpret_vector): Use auto_vec<tree> when building | |
15154 | a vector passed to build_vector. Add elements in order. | |
15155 | * tree-vect-loop.c (get_initial_defs_for_reduction): Use | |
15156 | auto_vec<tree> when building a vector passed to build_vector. | |
15157 | (vect_create_epilog_for_reduction): Likewise. | |
15158 | (vectorizable_induction): Likewise. | |
15159 | (get_initial_def_for_reduction): Likewise. Fix indentation of | |
15160 | case statements. | |
15161 | * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts | |
15162 | to a vec<tree> *. | |
15163 | (sparc_fold_builtin): Use auto_vec<tree> when building a vector | |
15164 | passed to build_vector. | |
15165 | ||
15166 | 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org> | |
15167 | Alan Hayward <alan.hayward@arm.com> | |
15168 | David Sherwood <david.sherwood@arm.com> | |
15169 | ||
15170 | * tree-core.h (tree_base::u): Add an "nelts" field. | |
15171 | (tree_vector): Use VECTOR_CST_NELTS as the length. | |
15172 | * tree.c (tree_size): Likewise. | |
15173 | (make_vector): Initialize VECTOR_CST_NELTS. | |
15174 | * tree.h (VECTOR_CST_NELTS): Use the u.nelts field. | |
15175 | * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of | |
15176 | TYPE_VECTOR_SUBPARTS. | |
15177 | * expr.c (const_vector_mask_from_tree): Consistently use "units" | |
15178 | as the number of units, setting it from VECTOR_CST_NELTS. | |
15179 | (const_vector_from_tree): Likewise. | |
15180 | * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of | |
15181 | TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST. | |
15182 | (fold_negate_expr_1): Likewise. | |
15183 | (fold_convert_const): Likewise. | |
15184 | (const_binop): Likewise. Differentiate the number of output and | |
15185 | input elements. | |
15186 | (const_unop): Likewise. | |
15187 | (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements | |
15188 | in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS | |
15189 | in cases that did the opposite. | |
15190 | ||
15191 | 2017-09-14 Richard Biener <rguenther@suse.de> | |
15192 | ||
15193 | * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar | |
15194 | to VN_TOP. | |
15195 | ||
15196 | 2017-09-14 Eric Botcazou <ebotcazou@adacore.com> | |
15197 | ||
15198 | * dwarf2out.c (dwarf2out_source_line): Remove superfluous test. | |
15199 | ||
15200 | 2017-09-14 Jakub Jelinek <jakub@redhat.com> | |
15201 | ||
15202 | PR target/81325 | |
15203 | * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions | |
15204 | if and where to split a bb, except for splitting before debug insn | |
15205 | sequences followed by non-label real insn. Delete debug insns | |
15206 | in between basic blocks. | |
15207 | ||
15208 | * combine.c (make_compound_operation_int): Formatting fixes. | |
15209 | ||
15210 | * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support. | |
15211 | * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. | |
15212 | * config/netbsd.h (LINK_EH_SPEC): Likewise. | |
15213 | * config/sol2.h (LINK_EH_SPEC): Likewise. | |
15214 | * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. | |
15215 | * config/s390/linux.h (LINK_SPEC): Likewise. | |
15216 | * config/freebsd.h (LINK_EH_SPEC): Likewise. | |
15217 | * config/openbsd.h (LINK_EH_SPEC): Likewise. | |
15218 | * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. | |
15219 | * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise. | |
15220 | * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise. | |
15221 | * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. | |
15222 | * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo. | |
15223 | * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix. | |
15224 | ||
15225 | 2017-09-13 Jakub Jelinek <jakub@redhat.com> | |
15226 | ||
15227 | * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie | |
15228 | support. | |
15229 | (ENDFILE_LINUX_SPEC): Likewise. | |
15230 | (LINK_EH_SPEC): Likewise. | |
15231 | * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise. | |
15232 | (LINK_OS_LINUX_SPEC32): Likewise. | |
15233 | (LINK_OS_LINUX_SPEC64): Likewise. | |
15234 | * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise. | |
15235 | (LINK_OS_LINUX_SPEC): Likewise. | |
15236 | ||
15237 | 2017-09-13 Martin Liska <mliska@suse.cz> | |
15238 | ||
15239 | PR middle-end/82154 | |
15240 | * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when | |
15241 | CASE_HIGH is NULL_TREE. | |
15242 | ||
15243 | 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org> | |
15244 | Alan Hayward <alan.hayward@arm.com> | |
15245 | David Sherwood <david.sherwood@arm.com> | |
15246 | ||
15247 | * target.def (secondary_memory_needed): New hook. | |
15248 | (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED | |
15249 | instead of SECONDARY_MEMORY_NEEDED. | |
15250 | (secondary_memory_needed_mode): Likewise. | |
15251 | * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare. | |
15252 | * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function. | |
15253 | * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with... | |
15254 | (TARGET_SECONDARY_MEMORY_NEEDED): ...this. | |
15255 | (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly. | |
15256 | * doc/tm.texi: Regenerate. | |
15257 | * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete. | |
15258 | * config/alpha/alpha.c (alpha_secondary_memory_needed): New function. | |
15259 | (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15260 | * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete. | |
15261 | * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete. | |
15262 | * config/i386/i386.c (inline_secondary_memory_needed): Put the | |
15263 | mode argument first and change the reg_class arguments to reg_class_t. | |
15264 | (ix86_secondary_memory_needed): Likewise. Remove the strict parameter. | |
15265 | Make static. Update the call to inline_secondary_memory_needed. | |
15266 | (ix86_register_move_cost): Update the call to | |
15267 | inline_secondary_memory_needed. | |
15268 | (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15269 | * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out | |
15270 | definition. | |
15271 | * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to | |
15272 | TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED | |
15273 | in comment. | |
15274 | * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete. | |
15275 | * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete. | |
15276 | * config/mips/mips.c (mips_secondary_memory_needed): Make static | |
15277 | and match hook interface. Add comment from mips.h. | |
15278 | (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15279 | * config/mmix/mmix.md (truncdfsf2): Refer to | |
15280 | TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED | |
15281 | in comment. | |
15282 | * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to... | |
15283 | (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first. | |
15284 | * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15285 | (pa_secondary_memory_needed): New function. | |
15286 | * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete. | |
15287 | * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete. | |
15288 | * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15289 | (pdp11_secondary_memory_needed): Make static and match hook interface. | |
15290 | * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete. | |
15291 | * config/powerpcspe/powerpcspe-protos.h | |
15292 | (rs6000_secondary_memory_needed_ptr): Delete. | |
15293 | * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr): | |
15294 | Delete. | |
15295 | (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15296 | (rs6000_option_override_internal): Assign to | |
15297 | targetm.secondary_memory_needed rather than | |
15298 | rs6000_secondary_memory_needed_ptr. | |
15299 | (rs6000_secondary_memory_needed): Match hook interface. | |
15300 | (rs6000_debug_secondary_memory_needed): Likewise. | |
15301 | * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete. | |
15302 | * config/riscv/riscv.c (riscv_secondary_memory_needed): New function. | |
15303 | (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED. | |
15304 | (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15305 | * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete. | |
15306 | * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr): | |
15307 | Delete. | |
15308 | * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete. | |
15309 | (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15310 | (rs6000_option_override_internal): Assign to | |
15311 | targetm.secondary_memory_needed rather than | |
15312 | rs6000_secondary_memory_needed_ptr. | |
15313 | (rs6000_secondary_memory_needed): Match hook interface. | |
15314 | (rs6000_debug_secondary_memory_needed): Likewise. | |
15315 | * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete. | |
15316 | * config/s390/s390.c (s390_secondary_memory_needed): New function. | |
15317 | (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15318 | * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete. | |
15319 | * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine. | |
15320 | (sparc_secondary_memory_needed): New function. | |
15321 | * lra-constraints.c (check_and_process_move): Refer to | |
15322 | TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED | |
15323 | in comment. | |
15324 | (curr_insn_transform): Likewise. | |
15325 | (process_alt_operands): Use targetm.secondary_memory_needed | |
15326 | instead of TARGET_SECONDARY_MEMORY_NEEDED. | |
15327 | (check_secondary_memory_needed_p): Likewise. | |
15328 | (choose_split_class): Likewise. | |
15329 | * reload.c: Unconditionally include code that was previously | |
15330 | conditional on SECONDARY_MEMORY_NEEDED. | |
15331 | (push_secondary_reload): Use targetm.secondary_memory_needed | |
15332 | instead of TARGET_SECONDARY_MEMORY_NEEDED. | |
15333 | (push_reload): Likewise. | |
15334 | * reload1.c: Unconditionally include code that was previously | |
15335 | conditional on SECONDARY_MEMORY_NEEDED. | |
15336 | (choose_reload_regs): Use targetm.secondary_memory_needed | |
15337 | instead of TARGET_SECONDARY_MEMORY_NEEDED. | |
15338 | (gen_reload): Likewise. | |
15339 | * system.h (SECONDARY_MEMORY_NEEDED): Poison. | |
15340 | ||
15341 | 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org> | |
15342 | Alan Hayward <alan.hayward@arm.com> | |
15343 | David Sherwood <david.sherwood@arm.com> | |
15344 | ||
15345 | * target.def (secondary_memory_needed_mode): New hook: | |
15346 | * targhooks.c (default_secondary_memory_needed_mode): Declare. | |
15347 | * targhooks.h (default_secondary_memory_needed_mode): New function. | |
15348 | * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with... | |
15349 | (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this. | |
15350 | * doc/tm.texi: Regenerate. | |
15351 | * lra-constraints.c (check_and_process_move): Use | |
15352 | targetm.secondary_memory_needed_mode instead of | |
15353 | TARGET_SECONDARY_MEMORY_NEEDED_MODE. | |
15354 | (curr_insn_transform): Likewise. | |
15355 | * reload.c (get_secondary_mem): Likewise. | |
15356 | * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. | |
15357 | * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New | |
15358 | function. | |
15359 | (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. | |
15360 | * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. | |
15361 | * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function. | |
15362 | (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. | |
15363 | * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE): | |
15364 | Delete. | |
15365 | * config/powerpcspe/powerpcspe-protos.h | |
15366 | (rs6000_secondary_memory_needed_mode): Delete. | |
15367 | * config/powerpcspe/powerpcspe.c | |
15368 | (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. | |
15369 | (rs6000_secondary_memory_needed_mode): Make static. | |
15370 | * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. | |
15371 | * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode): | |
15372 | Delete. | |
15373 | * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE): | |
15374 | Redefine. | |
15375 | (rs6000_secondary_memory_needed_mode): Make static. | |
15376 | * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. | |
15377 | * config/s390/s390.c (s390_secondary_memory_needed_mode): New function. | |
15378 | (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine. | |
15379 | * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete. | |
15380 | * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE): | |
15381 | Redefine. | |
15382 | (sparc_secondary_memory_needed_mode): New function. | |
15383 | * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison. | |
15384 | ||
15385 | 2017-09-13 Jackson Woodruff <jackson.woodruff@arm.com> | |
15386 | ||
15387 | * config/aarch64/constraints.md (Umq): New constraint. | |
15388 | * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): | |
15389 | Change to use Umq. | |
15390 | (mov<mode>): Update condition. | |
15391 | ||
15392 | 2017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
15393 | ||
15394 | * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order | |
15395 | when bitposition is the same. | |
15396 | ||
15397 | 2017-09-13 Richard Biener <rguenther@suse.de> | |
15398 | ||
15399 | * dwarf2out.c (output_die_symbol): Remove. | |
15400 | (output_die): Do not output a DIEs symbol. | |
15401 | ||
15402 | 2017-09-13 Richard Biener <rguenther@suse.de> | |
15403 | ||
15404 | PR middle-end/82128 | |
15405 | * gimple-fold.c (gimple_fold_call): Update SSA name in-place to | |
15406 | default-def to avoid breaking iterator update with the weird | |
15407 | interaction with cgraph_update_edges_for_call_stmt_node. | |
15408 | ||
15409 | 2017-09-13 Richard Biener <rguenther@suse.de> | |
15410 | ||
15411 | * tree-cfg.c (verify_gimple_assign_binary): Add verification | |
15412 | for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR, | |
15413 | VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR. | |
15414 | (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR. | |
15415 | ||
15416 | 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org> | |
15417 | ||
15418 | * config/aarch64/aarch64.c (aarch64_override_options_after_change_1): | |
15419 | Disable pc relative literal load irrespective of | |
15420 | TARGET_FIX_ERR_A53_84341 for default. | |
15421 | ||
15422 | 2017-09-12 Eric Botcazou <ebotcazou@adacore.com> | |
15423 | ||
15424 | * config/sparc/sparc.c (output_return): Output the source location of | |
15425 | the insn in the delay slot, if any. | |
15426 | (output_sibcall): Likewise. | |
15427 | ||
15428 | 2017-09-12 H.J. Lu <hongjiu.lu@intel.com> | |
15429 | ||
15430 | PR driver/81498 | |
15431 | * common.opt (-static-pie): New alias. | |
15432 | (shared): Negate static-pie. | |
15433 | (-no-pie): Update help text. | |
15434 | (-pie): Likewise. | |
15435 | (static-pie): New option. | |
15436 | * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add | |
15437 | -static-pie support. | |
15438 | (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. | |
15439 | (LINK_EH_SPEC): Likewise. | |
15440 | (LINK_GCC_C_SEQUENCE_SPEC): Likewise. | |
15441 | * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise. | |
15442 | * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise. | |
15443 | * gcc.c (LINK_COMMAND_SPEC): Likewise. | |
15444 | (init_gcc_specs): Likewise. | |
15445 | (init_spec): Likewise. | |
15446 | (display_help): Update help message for -pie. | |
15447 | * doc/invoke.texi: Update -pie, -no-pie and -static. Document | |
15448 | -static-pie. | |
15449 | ||
15450 | 2017-09-12 Wilco Dijkstra <wdijkstr@arm.com> | |
15451 | ||
15452 | * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'. | |
15453 | (movdi_aarch64): Likewise. | |
15454 | (movti_aarch64): Likewise. | |
15455 | ||
15456 | 2017-09-12 Simon Wright <simon@pushface.org> | |
15457 | ||
15458 | PR target/80204 | |
15459 | * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate | |
15460 | calculation of the minor version, always output as 0. | |
15461 | ||
15462 | 2017-09-12 Jakub Jelinek <jakub@redhat.com> | |
15463 | ||
15464 | PR target/82112 | |
15465 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For | |
15466 | ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion | |
15467 | on it early, rather than manual conversion late. For | |
15468 | ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion | |
15469 | instead of performing manual conversion. | |
15470 | ||
15471 | 2017-09-12 Carl Love <cel@us.ibm.com> | |
15472 | ||
15473 | * config/rs6000/altivec.md (vec_widen_umult_even_v4si, | |
15474 | vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw, | |
15475 | vmulouw, vmulosw. | |
15476 | * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, | |
15477 | VMULOSW): Add definitions. | |
15478 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
15479 | ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, | |
15480 | ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. | |
15481 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, | |
15482 | builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. | |
15483 | ||
15484 | 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com> | |
15485 | ||
15486 | * config/aarch64/aarch64.md (movdi_aarch64): Set load/store | |
15487 | types correctly. | |
15488 | (movti_aarch64): Likewise. | |
15489 | (movdf_aarch64): Likewise. | |
15490 | (movtf_aarch64): Likewise. | |
15491 | (load_pairdi): Likewise. | |
15492 | (store_pairdi): Likewise. | |
15493 | (load_pairdf): Likewise. | |
15494 | (store_pairdf): Likewise. | |
15495 | (loadwb_pair<GPI:mode>_<P:mode>): Likewise. | |
15496 | (storewb_pair<GPI:mode>_<P:mode>): Likewise. | |
15497 | (ldr_got_small_<mode>): Likewise. | |
15498 | (ldr_got_small_28k_<mode>): Likewise. | |
15499 | (ldr_got_tiny): Likewise. | |
15500 | * config/aarch64/iterators.md (ldst_sz): New. | |
15501 | (ldpstp_sz): Likewise. | |
15502 | * config/aarch64/thunderx.md (thunderx_storepair): Split store_8 | |
15503 | to store_16. | |
15504 | (thunderx_load): Split load_8 to load_16. | |
15505 | * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split | |
15506 | load_8 to load_16. | |
15507 | (thunderx2t99_storepair_basic): Split store_8 to store_16. | |
15508 | * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16. | |
15509 | (xgene1_store_pair): Split store_8 to store_16. | |
15510 | * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16. | |
15511 | (falkor_st_0_st_sd): Split store_8 to store_16. | |
15512 | ||
15513 | 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com> | |
15514 | ||
15515 | * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16 | |
15516 | and store1/2/3/4 to store_4/8/12/16. | |
15517 | * config/aarch64/aarch64.md: Update for rename. | |
15518 | * config/arm/arm.md: Likewise.: Likewise. | |
15519 | * config/arm/arm.c: Likewise. | |
15520 | * config/arm/thumb1.md: Likewise. | |
15521 | * config/arm/thumb2.md: Likewise. | |
15522 | * config/arm/vfp.md: Likewise. | |
15523 | * config/arm/arm-generic.md: Likewise. | |
15524 | * config/arm/arm1020e.md: Likewise. | |
15525 | * config/arm/arm1026ejs.md: Likewise. | |
15526 | * config/arm/arm1136jfs.md: Likewise. | |
15527 | * config/arm/arm926ejs.md: Likewise. | |
15528 | * config/arm/cortex-a15.md: Likewise. | |
15529 | * config/arm/cortex-a17.md: Likewise. | |
15530 | * config/arm/cortex-a5.md: Likewise. | |
15531 | * config/arm/cortex-a53.md: Likewise. | |
15532 | * config/arm/cortex-a57.md: Likewise. | |
15533 | * config/arm/cortex-a7.md: Likewise. | |
15534 | * config/arm/cortex-a8.md: Likewise. | |
15535 | * config/arm/cortex-a9.md: Likewise. | |
15536 | * config/arm/cortex-m4.md: Likewise. | |
15537 | * config/arm/cortex-m7.md: Likewise. | |
15538 | * config/arm/cortex-r4.md: Likewise. | |
15539 | * config/arm/exynos-m1.md: Likewise. | |
15540 | * config/arm/fa526.md: Likewise. | |
15541 | * config/arm/fa606te.md: Likewise. | |
15542 | * config/arm/fa626te.md: Likewise. | |
15543 | * config/arm/fa726te.md: Likewise. | |
15544 | * config/arm/fmp626.md: Likewise. | |
15545 | * config/arm/iwmmxt.md: Likewise. | |
15546 | * config/arm/ldmstm.md: Likewise. | |
15547 | * config/arm/marvell-pj4.md: Likewise. | |
15548 | * config/arm/xgene1.md: Likewise. | |
15549 | * config/aarch64/thunderx.md: Likewise. | |
15550 | * config/aarch64/thunderx2t99.md: Likewise. | |
15551 | * config/aarch64/falkor.md: Likewise. | |
15552 | ||
15553 | 2017-09-12 Martin Liska <mliska@suse.cz> | |
15554 | ||
15555 | * attribs.c (private_lookup_attribute): New function. | |
15556 | * attribs.h (private_lookup_attribute): Declared here. | |
15557 | (lookup_attribute): Called from this place. | |
15558 | ||
15559 | 2017-09-12 Richard Biener <rguenther@suse.de> | |
15560 | ||
15561 | PR tree-optimization/82157 | |
15562 | * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove | |
15563 | stmts with side-effects. | |
15564 | ||
15565 | 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> | |
15566 | Alan Hayward <alan.hayward@arm.com> | |
15567 | David Sherwood <david.sherwood@arm.com> | |
15568 | ||
15569 | * target.def (hard_regno_nregs): New hook. | |
15570 | (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS. | |
15571 | * targhooks.h (default_hard_regno_nregs): Declare. | |
15572 | * targhooks.c (default_hard_regno_nregs): New function. | |
15573 | * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with... | |
15574 | (TARGET_HARD_REGNO_NREGS): ...this hook. | |
15575 | (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly. | |
15576 | (CLASS_MAX_NREGS): Likewise. | |
15577 | * doc/tm.texi: Regenerate. | |
15578 | * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs | |
15579 | instead of HARD_REGNO_NREGS. | |
15580 | * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than | |
15581 | HARD_REGNO_NREGS in the comment. | |
15582 | * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete. | |
15583 | * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete. | |
15584 | * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static. | |
15585 | Return an unsigned int. | |
15586 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15587 | * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete. | |
15588 | * config/arc/arc.h (HARD_REGNO_NREGS): Delete. | |
15589 | * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15590 | (arc_hard_regno_nregs): New function. | |
15591 | * config/arm/arm.h (HARD_REGNO_NREGS): Delete. | |
15592 | * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15593 | (arm_hard_regno_nregs): New function. | |
15594 | * config/avr/avr.h (HARD_REGNO_NREGS): Delete. | |
15595 | * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete. | |
15596 | * config/bfin/bfin.c (bfin_hard_regno_nregs): New function. | |
15597 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15598 | * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete. | |
15599 | * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs. | |
15600 | (HARD_REGNO_NREGS): Delete. | |
15601 | * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15602 | (cr16_hard_regno_nregs): New function. | |
15603 | (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS. | |
15604 | * config/cris/cris.h (HARD_REGNO_NREGS): Delete. | |
15605 | * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15606 | (cris_hard_regno_nregs): New function. | |
15607 | * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete. | |
15608 | * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete. | |
15609 | (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs. | |
15610 | * config/frv/frv.h (HARD_REGNO_NREGS): Delete. | |
15611 | (CLASS_MAX_NREGS): Remove outdated copy of documentation. | |
15612 | * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete. | |
15613 | * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15614 | (frv_hard_regno_nregs): Make static. Take and return an | |
15615 | unsigned int. | |
15616 | (frv_class_max_nregs): Remove outdated copy of documentation. | |
15617 | * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete. | |
15618 | * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete. | |
15619 | * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete. | |
15620 | * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete. | |
15621 | * config/i386/i386.h (HARD_REGNO_NREGS): Delete. | |
15622 | * config/i386/i386.c (ix86_hard_regno_nregs): New function. | |
15623 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15624 | * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete. | |
15625 | (CLASS_MAX_NREGS): Update comment. | |
15626 | * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15627 | (ia64_hard_regno_nregs): New function. | |
15628 | * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete. | |
15629 | * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete. | |
15630 | * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete. | |
15631 | * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete. | |
15632 | * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return | |
15633 | an unsigned int. | |
15634 | (m32c_hard_regno_nregs): Likewise. Make static. | |
15635 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15636 | * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete. | |
15637 | * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete. | |
15638 | * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15639 | (m68k_hard_regno_nregs): New function. | |
15640 | * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete. | |
15641 | * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete. | |
15642 | * config/mips/mips.h (HARD_REGNO_NREGS): Delete. | |
15643 | * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete. | |
15644 | * config/mips/mips.c (mips_hard_regno_nregs): Make static. | |
15645 | Take and return an unsigned int. | |
15646 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15647 | * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete. | |
15648 | (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs. | |
15649 | * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete. | |
15650 | * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete. | |
15651 | * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete. | |
15652 | * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete. | |
15653 | * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15654 | (msp430_hard_regno_nregs): Make static. Take and return an | |
15655 | unsigned int. | |
15656 | * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete. | |
15657 | * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete. | |
15658 | * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete. | |
15659 | (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs. | |
15660 | * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete. | |
15661 | * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete. | |
15662 | * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function. | |
15663 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15664 | * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to... | |
15665 | (PA_HARD_REGNO_NREGS): ...this. | |
15666 | * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to... | |
15667 | (PA_HARD_REGNO_NREGS): ...this. | |
15668 | * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15669 | (pa_hard_regno_nregs): New function. | |
15670 | * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete. | |
15671 | * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15672 | (pdp11_hard_regno_nregs): New function. | |
15673 | * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete. | |
15674 | * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15675 | (rs6000_hard_regno_nregs_hook): New function. | |
15676 | * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete. | |
15677 | * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete. | |
15678 | * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static. | |
15679 | Take and return an unsigned int. Move earlier in file. | |
15680 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15681 | * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete. | |
15682 | * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete. | |
15683 | * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine. | |
15684 | (rl78_hard_regno_nregs): Make static. Take and return an | |
15685 | unsigned int. | |
15686 | * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete. | |
15687 | * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15688 | (rs6000_hard_regno_nregs_hook): New function. | |
15689 | * config/rx/rx.h (HARD_REGNO_NREGS): Delete. | |
15690 | * config/rx/rx.c (rx_hard_regno_nregs): New function. | |
15691 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15692 | * config/s390/s390.h (HARD_REGNO_NREGS): Delete. | |
15693 | * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs | |
15694 | instead of HARD_REGNO_NREGS. | |
15695 | (s390_hard_regno_nregs): New function. | |
15696 | (s390_hard_regno_mode_ok): Add comment from s390.h. | |
15697 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15698 | * config/sh/sh.h (HARD_REGNO_NREGS): Delete. | |
15699 | * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15700 | (sh_hard_regno_nregs): New function. | |
15701 | (sh_pass_in_reg_p): Use it. | |
15702 | * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete. | |
15703 | * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15704 | (sparc_hard_regno_nregs): New function. | |
15705 | * config/spu/spu.h (HARD_REGNO_NREGS): Delete. | |
15706 | * config/spu/spu.c (spu_hard_regno_nregs): New function. | |
15707 | (spu_function_arg_advance): Use it, supplying a valid register number. | |
15708 | (TARGET_HARD_REGNO_NREGS): Redefine. | |
15709 | * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete. | |
15710 | * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete. | |
15711 | * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete. | |
15712 | * config/v850/v850.h (HARD_REGNO_NREGS): Delete. | |
15713 | * config/vax/vax.h (HARD_REGNO_NREGS): Delete. | |
15714 | * config/visium/visium.h (HARD_REGNO_NREGS): Delete. | |
15715 | (CLASS_MAX_NREGS): Remove copy of old documentation. | |
15716 | * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15717 | (visium_hard_regno_nregs): New function. | |
15718 | (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS. | |
15719 | * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete. | |
15720 | * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine. | |
15721 | xtensa_hard_regno_nregs): New function. | |
15722 | * system.h (HARD_REGNO_NREGS): Poison. | |
15723 | ||
15724 | 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> | |
15725 | ||
15726 | * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use | |
15727 | hard_regno_nregs instead of HARD_REGNO_NREGS. | |
15728 | (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. | |
15729 | * config/c6x/c6x.c (c6x_expand_prologue): Likewise. | |
15730 | (c6x_expand_epilogue): Likewise. | |
15731 | * config/frv/frv.c (frv_alloc_temp_reg): Likewise. | |
15732 | (frv_read_iacc_argument): Likewise. | |
15733 | * config/sh/sh.c: Include regs.h. | |
15734 | (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS. | |
15735 | (regs_used): Likewise. | |
15736 | (output_stack_adjust): Likewise. | |
15737 | * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise. | |
15738 | * expmed.c: Include regs.h. | |
15739 | (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS. | |
15740 | * ree.c: Include regs.h. | |
15741 | (combine_reaching_defs): Use hard_regno_nregs instead of | |
15742 | HARD_REGNO_NREGS. | |
15743 | (add_removable_extension): Likewise. | |
15744 | ||
15745 | 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> | |
15746 | ||
15747 | * regs.h (hard_regno_nregs): Turn into a function. | |
15748 | (end_hard_regno): Update accordingly. | |
15749 | * caller-save.c (setup_save_areas): Likewise. | |
15750 | (save_call_clobbered_regs): Likewise. | |
15751 | (replace_reg_with_saved_mem): Likewise. | |
15752 | (insert_restore): Likewise. | |
15753 | (insert_save): Likewise. | |
15754 | * combine.c (can_change_dest_mode): Likewise. | |
15755 | (move_deaths): Likewise. | |
15756 | (distribute_notes): Likewise. | |
15757 | * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise. | |
15758 | * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class) | |
15759 | (rs6000_split_multireg_move): Likewise. | |
15760 | (rs6000_register_move_cost): Likewise. | |
15761 | (rs6000_memory_move_cost): Likewise. | |
15762 | * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise. | |
15763 | (rs6000_split_multireg_move): Likewise. | |
15764 | (rs6000_register_move_cost): Likewise. | |
15765 | (rs6000_memory_move_cost): Likewise. | |
15766 | * cselib.c (cselib_reset_table): Likewise. | |
15767 | (cselib_lookup_1): Likewise. | |
15768 | * emit-rtl.c (set_mode_and_regno): Likewise. | |
15769 | * function.c (aggregate_value_p): Likewise. | |
15770 | * ira-color.c (setup_profitable_hard_regs): Likewise. | |
15771 | (check_hard_reg_p): Likewise. | |
15772 | (calculate_saved_nregs): Likewise. | |
15773 | (assign_hard_reg): Likewise. | |
15774 | (improve_allocation): Likewise. | |
15775 | (calculate_spill_cost): Likewise. | |
15776 | * ira-emit.c (modify_move_list): Likewise. | |
15777 | * ira-int.h (ira_hard_reg_set_intersection_p): Likewise. | |
15778 | (ira_hard_reg_in_set_p): Likewise. | |
15779 | * ira.c (setup_reg_mode_hard_regset): Likewise. | |
15780 | (clarify_prohibited_class_mode_regs): Likewise. | |
15781 | (check_allocation): Likewise. | |
15782 | * lra-assigns.c (find_hard_regno_for_1): Likewise. | |
15783 | (lra_setup_reg_renumber): Likewise. | |
15784 | (setup_try_hard_regno_pseudos): Likewise. | |
15785 | (spill_for): Likewise. | |
15786 | (assign_hard_regno): Likewise. | |
15787 | (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. | |
15788 | * lra-constraints.c (in_class_p): Likewise. | |
15789 | (lra_constraint_offset): Likewise. | |
15790 | (simplify_operand_subreg): Likewise. | |
15791 | (lra_constraints): Likewise. | |
15792 | (split_reg): Likewise. | |
15793 | (split_if_necessary): Likewise. | |
15794 | (invariant_p): Likewise. | |
15795 | (inherit_in_ebb): Likewise. | |
15796 | * lra-lives.c (process_bb_lives): Likewise. | |
15797 | * lra-remat.c (reg_overlap_for_remat_p): Likewise. | |
15798 | (get_hard_regs): Likewise. | |
15799 | (do_remat): Likewise. | |
15800 | * lra-spills.c (assign_spill_hard_regs): Likewise. | |
15801 | * mode-switching.c (create_pre_exit): Likewise. | |
15802 | * postreload.c (reload_combine_recognize_pattern): Likewise. | |
15803 | * recog.c (peep2_find_free_register): Likewise. | |
15804 | * regcprop.c (kill_value_regno): Likewise. | |
15805 | (set_value_regno): Likewise. | |
15806 | (copy_value): Likewise. | |
15807 | (maybe_mode_change): Likewise. | |
15808 | (find_oldest_value_reg): Likewise. | |
15809 | (copyprop_hardreg_forward_1): Likewise. | |
15810 | * regrename.c (check_new_reg_p): Likewise. | |
15811 | (regrename_do_replace): Likewise. | |
15812 | * reload.c (push_reload): Likewise. | |
15813 | (combine_reloads): Likewise. | |
15814 | (find_dummy_reload): Likewise. | |
15815 | (operands_match_p): Likewise. | |
15816 | (find_reloads): Likewise. | |
15817 | (find_equiv_reg): Likewise. | |
15818 | (reload_adjust_reg_for_mode): Likewise. | |
15819 | * reload1.c (count_pseudo): Likewise. | |
15820 | (count_spilled_pseudo): Likewise. | |
15821 | (find_reg): Likewise. | |
15822 | (clear_reload_reg_in_use): Likewise. | |
15823 | (free_for_value_p): Likewise. | |
15824 | (allocate_reload_reg): Likewise. | |
15825 | (choose_reload_regs): Likewise. | |
15826 | (reload_adjust_reg_for_temp): Likewise. | |
15827 | (emit_reload_insns): Likewise. | |
15828 | (delete_output_reload): Likewise. | |
15829 | * rtlanal.c (subreg_get_info): Likewise. | |
15830 | * sched-deps.c (sched_analyze_reg): Likewise. | |
15831 | * sel-sched.c (init_regs_for_mode): Likewise. | |
15832 | (mark_unavailable_hard_regs): Likewise. | |
15833 | (choose_best_reg_1): Likewise. | |
15834 | (verify_target_availability): Likewise. | |
15835 | * valtrack.c (dead_debug_insert_temp): Likewise. | |
15836 | * var-tracking.c (track_loc_p): Likewise. | |
15837 | (emit_note_insn_var_location): Likewise. | |
15838 | * varasm.c (make_decl_rtl): Likewise. | |
15839 | * reginfo.c (choose_hard_reg_mode): Likewise. | |
15840 | (init_reg_modes_target): Refer directly to | |
15841 | this_target_regs->x_hard_regno_nregs. | |
15842 | ||
15843 | 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> | |
15844 | ||
15845 | * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p | |
15846 | instead of hard_regno_nregs. | |
15847 | ||
15848 | 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> | |
15849 | ||
15850 | * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use | |
15851 | end_hard_regno instead of hard_regno_nregs. | |
15852 | * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise. | |
15853 | * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise. | |
15854 | * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise. | |
15855 | * ira-color.c (improve_allocation): Likewise. | |
15856 | * lra-assigns.c (find_hard_regno_for_1): Likewise. | |
15857 | * lra-lives.c (mark_regno_live): Likewise. | |
15858 | (mark_regno_dead): Likewise. | |
15859 | * lra-remat.c (operand_to_remat): Likewise. | |
15860 | * lra.c (collect_non_operand_hard_regs): Likewise. | |
15861 | * postreload.c (reload_combine_note_store): Likewise. | |
15862 | (move2add_valid_value_p): Likewise. | |
15863 | * reload.c (regno_clobbered_p): Likewise. | |
15864 | ||
15865 | 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> | |
15866 | ||
15867 | * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of | |
15868 | hard_regno_nregs. | |
15869 | * config/v850/v850.c (v850_reorg): Likewise. | |
15870 | * reload.c (refers_to_regno_for_reload_p): Likewise. | |
15871 | (find_equiv_reg): Likewise. | |
15872 | * reload1.c (reload_reg_reaches_end_p): Likewise. | |
15873 | ||
15874 | 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> | |
15875 | ||
15876 | * caller-save.c (add_used_regs): Use REG_NREGS instead of | |
15877 | hard_regno_nregs. | |
15878 | * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise. | |
15879 | * config/arm/arm.c (output_move_neon): Likewise. | |
15880 | (arm_attr_length_move_neon): Likewise. | |
15881 | (neon_split_vcombine): Likewise. | |
15882 | * config/c6x/c6x.c (c6x_mark_reg_read): Likewise. | |
15883 | (c6x_mark_reg_written): Likewise. | |
15884 | (c6x_dwarf_register_span): Likewise. | |
15885 | * config/i386/i386.c (ix86_save_reg): Likewise. | |
15886 | * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise. | |
15887 | (rws_access_reg): Likewise. | |
15888 | * config/s390/s390.c (s390_call_saved_register_used): Likewise. | |
15889 | * mode-switching.c (create_pre_exit): Likewise. | |
15890 | * ree.c (combine_reaching_defs): Likewise. | |
15891 | (add_removable_extension): Likewise. | |
15892 | * regcprop.c (find_oldest_value_reg): Likewise. | |
15893 | (copyprop_hardreg_forward_1): Likewise. | |
15894 | * reload.c (reload_inner_reg_of_subreg): Likewise. | |
15895 | (push_reload): Likewise. | |
15896 | (combine_reloads): Likewise. | |
15897 | (find_dummy_reload): Likewise. | |
15898 | (reload_adjust_reg_for_mode): Likewise. | |
15899 | * reload1.c (find_reload_regs): Likewise. | |
15900 | (forget_old_reloads_1): Likewise. | |
15901 | (reload_reg_free_for_value_p): Likewise. | |
15902 | (reload_adjust_reg_for_temp): Likewise. | |
15903 | (emit_reload_insns): Likewise. | |
15904 | (delete_output_reload): Likewise. | |
15905 | * sel-sched.c (choose_best_reg_1): Likewise. | |
15906 | (choose_best_pseudo_reg): Likewise. | |
15907 | ||
15908 | 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> | |
15909 | Alan Hayward <alan.hayward@arm.com> | |
15910 | David Sherwood <david.sherwood@arm.com> | |
15911 | ||
15912 | * defaults.h (SLOW_UNALIGNED_ACCESS): Delete. | |
15913 | * target.def (slow_unaligned_access): New hook. | |
15914 | * targhooks.h (default_slow_unaligned_access): Declare. | |
15915 | * targhooks.c (default_slow_unaligned_access): New function. | |
15916 | * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with... | |
15917 | (TARGET_SLOW_UNALIGNED_ACCESS): ...this. | |
15918 | * doc/tm.texi: Regenerate. | |
15919 | * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete. | |
15920 | * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete. | |
15921 | * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out | |
15922 | definition. | |
15923 | * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete. | |
15924 | * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS): | |
15925 | Redefine. | |
15926 | (rs6000_slow_unaligned_access): New function. | |
15927 | (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS. | |
15928 | (expand_block_compare): Likewise. | |
15929 | (expand_strn_compare): Likewise. | |
15930 | (rs6000_rtx_costs): Likewise. | |
15931 | * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete. | |
15932 | (riscv_slow_unaligned_access): Likewise. | |
15933 | * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to... | |
15934 | (riscv_slow_unaligned_access_p): ...this and make static. | |
15935 | (riscv_option_override): Update accordingly. | |
15936 | (riscv_slow_unaligned_access): New function. | |
15937 | (TARGET_SLOW_UNALIGNED_ACCESS): Redefine. | |
15938 | * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete. | |
15939 | * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine. | |
15940 | (rs6000_slow_unaligned_access): New function. | |
15941 | (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS. | |
15942 | (rs6000_rtx_costs): Likewise. | |
15943 | * config/rs6000/rs6000-string.c (expand_block_compare) | |
15944 | (expand_strn_compare): Use targetm.slow_unaligned_access instead | |
15945 | of SLOW_UNALIGNED_ACCESS. | |
15946 | * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete. | |
15947 | * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete. | |
15948 | * calls.c (expand_call): Use targetm.slow_unaligned_access instead | |
15949 | of SLOW_UNALIGNED_ACCESS. | |
15950 | * expmed.c (simple_mem_bitfield_p): Likewise. | |
15951 | * expr.c (alignment_for_piecewise_move): Likewise. | |
15952 | (emit_group_load_1): Likewise. | |
15953 | (emit_group_store): Likewise. | |
15954 | (copy_blkmode_from_reg): Likewise. | |
15955 | (emit_push_insn): Likewise. | |
15956 | (expand_assignment): Likewise. | |
15957 | (store_field): Likewise. | |
15958 | (expand_expr_real_1): Likewise. | |
15959 | * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. | |
15960 | * lra-constraints.c (simplify_operand_subreg): Likewise. | |
15961 | * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise. | |
15962 | * gimple-ssa-store-merging.c: Likewise in block comment at start | |
15963 | of file. | |
15964 | * tree-ssa-strlen.c: Include target.h. | |
15965 | (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead | |
15966 | of SLOW_UNALIGNED_ACCESS. | |
15967 | * system.h (SLOW_UNALIGNED_ACCESS): Poison. | |
15968 | ||
15969 | 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org> | |
15970 | ||
15971 | PR rtl-optimization/82185 | |
15972 | * expmed.c (emit_store_flag_int): Only test tem if it has been | |
15973 | initialized. | |
15974 | ||
15975 | 2017-09-12 Richard Biener <rguenther@suse.de> | |
15976 | ||
15977 | PR middle-end/82149 | |
15978 | * match.pd ((FTYPE) N CMP CST): Fix typo. | |
15979 | ||
15980 | 2017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com> | |
15981 | ||
15982 | * config/mips/mips.c (mips_attribute_table): Add 'short_call' | |
15983 | attribute. | |
15984 | (mips_near_type_p): Add 'short_call' attribute as a synonym | |
15985 | for 'near'. | |
15986 | * doc/extend.texi (short_call): Document new function attribute. | |
15987 | ||
15988 | 2017-09-12 Jakub Jelinek <jakub@redhat.com> | |
15989 | ||
15990 | PR target/82112 | |
15991 | * c-common.c (sync_resolve_size): Instead of c_dialect_cxx () | |
15992 | assertion check that in the condition. | |
15993 | (get_atomic_generic_size): Likewise. Before testing if parameter | |
15994 | has pointer type, if it has array type, call for C++ | |
15995 | default_conversion to perform array-to-pointer conversion. | |
15996 | ||
15997 | 2017-09-12 Richard Biener <rguenther@suse.de> | |
15998 | ||
15999 | * tree-vect-generic.c (expand_vector_operations_1): Do nothing | |
16000 | for operations we cannot scalarize. | |
16001 | ||
16002 | 2017-09-12 Aldy Hernandez <aldyh@redhat.com> | |
16003 | ||
16004 | * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC | |
16005 | vectors heap vectors. Clean up comments. | |
16006 | Make visited_bbs a reference. | |
16007 | (profitable_jump_thread_path): Make GC | |
16008 | vectors heap vectors. Clean up comments. | |
16009 | Misc cleanups. | |
16010 | (convert_and_register_jump_thread_path): Make GC vectors heap | |
16011 | vectors. | |
16012 | (check_subpath_and_update_thread_path): Same. Clean up comments. | |
16013 | Make visited_bbs a reference. | |
16014 | (handle_phi): Abstract common code to to | |
16015 | register_jump_thread_path_if_profitable. | |
16016 | Rename VAR_BB to DEF_BB. | |
16017 | Update comments. | |
16018 | Make GC vectors heap vectors. | |
16019 | Make visited_bbs a reference. | |
16020 | (handle_assignment): Same. | |
16021 | (register_jump_thread_path_if_profitable): New. | |
16022 | (fsm_find_control_statement_thread_paths): Rename VAR_BB to | |
16023 | DEF_BB. | |
16024 | Make GC vectors heap vectors. Clean up comments. | |
16025 | Make visited_bbs a reference. | |
16026 | (find_jump_threads_backwards): Make visited_bbs live in the stack. | |
16027 | * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in | |
16028 | comment. | |
16029 | ||
16030 | 2017-09-11 Max Filippov <jcmvbkbc@gmail.com> | |
16031 | ||
16032 | PR target/82181 | |
16033 | * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both | |
16034 | words of E_DImode object are reachable by xtensa_uimm8x4 access. | |
16035 | ||
16036 | 2017-09-11 Vidya Praveen <vidyapraveen@arm.com> | |
16037 | ||
16038 | Revert r251800 and r251799. | |
16039 | ||
16040 | 2017-09-11 Martin Jambor <mjambor@suse.cz> | |
16041 | ||
16042 | PR hsa/82119 | |
16043 | * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in | |
16044 | arguments in advance. | |
16045 | * hsa-regalloc.c (naive_process_phi): New parameter predecessors, | |
16046 | use it to find predecessor edges. | |
16047 | (naive_outof_ssa): Collect vector of predecessors. | |
16048 | ||
16049 | 2017-09-08 Jason Merrill <jason@redhat.com> | |
16050 | ||
16051 | PR c++/70029 - ICE with ref-qualifier and -flto | |
16052 | * langhooks.h (struct lang_hooks_for_types): Add | |
16053 | copy_lang_qualifiers. | |
16054 | * attribs.c (build_type_attribute_qual_variant): Use it. | |
16055 | * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to | |
16056 | NULL. | |
16057 | (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it. | |
16058 | * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check. | |
16059 | ||
16060 | 2017-09-08 Eric Botcazou <ebotcazou@adacore.com> | |
16061 | ||
16062 | PR target/81988 | |
16063 | * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32. | |
16064 | (*mulsi3_sp64): New instruction. | |
16065 | (mulsi3): New expander. | |
16066 | ||
16067 | 2017-09-08 Uros Bizjak <ubizjak@gmail.com> | |
16068 | ||
16069 | * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove. | |
16070 | ||
16071 | 2017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
16072 | ||
16073 | * sancov.c: Include memmodel.h. | |
16074 | ||
16075 | 2017-09-07 Eric Botcazou <ebotcazou@adacore.com> | |
16076 | ||
16077 | PR target/80897 | |
16078 | * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too | |
16079 | large offsets. | |
16080 | ||
16081 | 2017-09-07 Carl Love <cel@us.ibm.com> | |
16082 | ||
16083 | * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to | |
16084 | the sldi instruction. | |
16085 | ||
16086 | 2017-09-07 David Edelsohn <dje.gcc@gmail.com> | |
16087 | ||
16088 | * sancov.c: Include tm_p.h. | |
16089 | ||
16090 | 2017-09-07 Jakub Jelinek <jakub@redhat.com> | |
16091 | ||
16092 | PR target/81979 | |
16093 | * output.h (switch_to_other_text_partition): New declaration. | |
16094 | * varasm.c (switch_to_other_text_partition): New function. | |
16095 | * config/rs6000/rs6000.c (uses_TOC): Return 2 if | |
16096 | NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn. | |
16097 | (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch | |
16098 | to the other text partition before emitting LCL label and switch back | |
16099 | after emitting the word after it. | |
16100 | ||
16101 | 2017-09-07 Richard Biener <rguenther@suse.de> | |
16102 | ||
16103 | * passes.def (pass_split_crit_edges): Remove instance before PRE. | |
16104 | * tree-ssa-pre.c (pass_pre::execute): Instead manually split | |
16105 | critical edges here, after loop init. | |
16106 | (pass_data_pre): Remove PROP_no_crit_edges flags. | |
16107 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize | |
16108 | for valueization of call args to avoid leaking VN_TOP. | |
16109 | (visit_use): Assert we do not visit default defs. | |
16110 | (init_scc_vn): Use build_decl for VN_TOP to make name nicer. | |
16111 | Use error_mark_node to more easily detect leaking VN_TOP. | |
16112 | All default-defs are varying, not VN_TOP. Mark them visited. | |
16113 | (run_scc_vn): Make code match comment. | |
16114 | ||
16115 | 2017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com> | |
16116 | ||
16117 | * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete | |
16118 | OPTION_MASK_FLOAT128_KEYWORD. | |
16119 | (POWERPC_MASKS): Likewise. | |
16120 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete | |
16121 | support for the -mfloat128-type option, and make -mfloat128 | |
16122 | default on PowerPC Linux systems. Define or undefine | |
16123 | __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options. | |
16124 | Define __float128 to be __ieee128 if IEEE 128-bit support is | |
16125 | enabled, or undefine it. | |
16126 | (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here. | |
16127 | Delete defining __FLOAT128_TYPE__. | |
16128 | * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the | |
16129 | -mfloat128-type option and make -mfloat128 default on PowerPC | |
16130 | Linux systems. | |
16131 | (TARGET_FLOAT128_TYPE): Likewise. | |
16132 | (-mfloat128-type): Likewise. | |
16133 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
16134 | Delete the -mfloat128-type option and make -mfloat128 default on | |
16135 | PowerPC Linux systems. Always use __ieee128 to be the keyword for | |
16136 | the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE | |
16137 | 128-bit floating point is enabled. Change tests from using | |
16138 | -mfloat128-type to -mfloat128. | |
16139 | (rs6000_mangle_type): Use the correct mangling for the __float128 | |
16140 | type even if normal long double is restricted to 64-bits. | |
16141 | (floatn_mode): Enable the _Float128 type by default on VSX Linux | |
16142 | systems. | |
16143 | * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete. | |
16144 | (MASK_FLOAT128_KEYWORD): Define new shortcut macro. | |
16145 | (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not | |
16146 | -mfloat128-type. | |
16147 | * doc/invoke.texi (RS/6000 and PowerPC Options): Update | |
16148 | documentation for -mfloat128. | |
16149 | ||
16150 | 2017-09-06 Olivier Hainque <hainque@adacore.com> | |
16151 | ||
16152 | * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe. | |
16153 | ||
16154 | 2017-09-06 Wish Wu <wishwu007@gmail.com> | |
16155 | Jakub Jelinek <jakub@redhat.com> | |
16156 | ||
16157 | * asan.c (initialize_sanitizer_builtins): Add | |
16158 | BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16, | |
16159 | BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64, | |
16160 | BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and | |
16161 | BT_FN_VOID_UINT64_PTR variables. | |
16162 | * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type. | |
16163 | (BT_FN_VOID_UINT16_UINT16): Likewise. | |
16164 | (BT_FN_VOID_UINT32_UINT32): Likewise. | |
16165 | (BT_FN_VOID_FLOAT_FLOAT): Likewise. | |
16166 | (BT_FN_VOID_DOUBLE_DOUBLE): Likewise. | |
16167 | (BT_FN_VOID_UINT64_PTR): Likewise. | |
16168 | * common.opt (flag_sanitize_coverage): New variable. | |
16169 | (fsanitize-coverage=trace-pc): Remove. | |
16170 | (fsanitize-coverage=): Add. | |
16171 | * flag-types.h (enum sanitize_coverage_code): New enum. | |
16172 | * fold-const.c (fold_range_test): Disable non-short-circuit | |
16173 | optimization if flag_sanitize_coverage. | |
16174 | (fold_truth_andor): Likewise. | |
16175 | * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. | |
16176 | * opts.c (COVERAGE_SANITIZER_OPT): Define. | |
16177 | (coverage_sanitizer_opts): New array. | |
16178 | (get_closest_sanitizer_option): Add OPTS argument, handle also | |
16179 | OPT_fsanitize_coverage_. | |
16180 | (parse_sanitizer_options): Adjusted to also handle | |
16181 | OPT_fsanitize_coverage_. | |
16182 | (common_handle_option): Add OPT_fsanitize_coverage_. | |
16183 | * sancov.c (instrument_comparison, instrument_switch): New function. | |
16184 | (sancov_pass): Add trace-cmp support. | |
16185 | * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1, | |
16186 | BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4, | |
16187 | BUILT_IN_SANITIZER_COV_TRACE_CMP8, | |
16188 | BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1, | |
16189 | BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2, | |
16190 | BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4, | |
16191 | BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8, | |
16192 | BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD, | |
16193 | BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins. | |
16194 | * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp. | |
16195 | ||
16196 | 2017-09-06 Richard Earnshaw <rearnsha@arm.com> | |
16197 | ||
16198 | * config/arm/parsecpu.awk (fatal): Note that we've encountered an | |
16199 | error. Only quit immediately if parsing is complete. | |
16200 | (BEGIN): Initialize fatal_err and parse_done. | |
16201 | (begin fpu, end fpu): Check number of arguments. | |
16202 | (begin arch, end arch): Likewise. | |
16203 | (begin cpu, end cpu): Likewise. | |
16204 | (cname, tune for, tune flags, architecture, fpu, option): Likewise. | |
16205 | (optalias): Likewise. | |
16206 | ||
16207 | 2017-09-06 Richard Earnshaw <rearnsha@arm.com> | |
16208 | ||
16209 | * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file. | |
16210 | * config/arm/arm-isa.h: Delete. Move definitions to ... | |
16211 | * arm-cpus.in: ... here. Use new feature and fgroup values. | |
16212 | * config/arm/arm.c (arm_option_override): Use lower case for feature | |
16213 | bit names. | |
16214 | * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise. | |
16215 | (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise. | |
16216 | * config/arm/parsecpu.awk (END): Add new command 'isa'. | |
16217 | (isa_pfx): Delete. | |
16218 | (print_isa_bits_for): New function. | |
16219 | (gen_isa): New function. | |
16220 | (gen_comm_data): Use print_isa_bits_for. | |
16221 | (define feature): New keyword. | |
16222 | (define fgroup): New keyword. | |
16223 | * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h | |
16224 | (arm-isa.h): Add rule to generate file. | |
16225 | * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower | |
16226 | case for feature bit names. | |
16227 | ||
16228 | 2017-09-06 Richard Biener <rguenther@suse.de> | |
16229 | ||
16230 | * tree-ssa-pre.c (NECESSARY): Remove. | |
16231 | (create_expression_by_pieces): Do not touch pass-local flags. | |
16232 | (insert_into_preds_of_block): Likewise. | |
16233 | (do_pre_regular_insertion): Likewise. | |
16234 | (eliminate_insert): Likewise. | |
16235 | (eliminate_dom_walker::before_dom_children): Likewise. | |
16236 | (fini_eliminate): Do not look at inserted_exprs. | |
16237 | (mark_operand_necessary): Remove. | |
16238 | (remove_dead_inserted_code): Replace with simple work-list | |
16239 | algorithm based on inserted_exprs and SSA uses. | |
16240 | (pass_pre::execute): Re-order fini_eliminate and | |
16241 | remove_dead_inserted_code. | |
16242 | ||
16243 | 2017-09-06 Olivier Hainque <hainque@adacore.com> | |
16244 | ||
16245 | * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition | |
16246 | for VxWorks 7. Adjust surrounding comments. | |
16247 | ||
16248 | 2017-09-06 Richard Biener <rguenther@suse.de> | |
16249 | ||
16250 | * gimple-ssa-strength-reduction.c | |
16251 | (find_candidates_dom_walker::before_dom_children): Also allow | |
16252 | pointer types. | |
16253 | ||
16254 | 2017-09-06 Richard Biener <rguenther@suse.de> | |
16255 | ||
16256 | PR tree-optimization/82108 | |
16257 | * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment | |
16258 | for gap in the non-permutation SLP case. | |
16259 | ||
16260 | 2017-09-06 Martin Jambor <mjambor@suse.cz> | |
16261 | ||
16262 | PR tree-optimization/82078 | |
16263 | * tree-sra.c (sort_and_splice_var_accesses): Move call to | |
16264 | add_access_to_work_queue... | |
16265 | (build_accesses_from_assign): ...here. | |
16266 | (propagate_all_subaccesses): Make sure racc is the group | |
16267 | representative, if there is one. | |
16268 | ||
16269 | 2017-09-06 Jakub Jelinek <jakub@redhat.com> | |
16270 | ||
16271 | PR middle-end/82095 | |
16272 | * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with | |
16273 | NULL DECL_INITIAL. | |
16274 | ||
16275 | 2017-09-06 Richard Biener <rguenther@suse.de> | |
16276 | ||
16277 | * gimple-ssa-strength-reduction.c | |
16278 | (find_candidates_dom_walker::before_doom_children): Use a | |
16279 | type and not a mode check. | |
16280 | ||
16281 | 2017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
16282 | ||
16283 | PR target/77308 | |
16284 | * config/arm/predicates.md (arm_general_adddi_operand): Create new | |
16285 | non-vfp predicate. | |
16286 | * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates. | |
16287 | ||
16288 | 2017-09-05 Jeff Law <law@redhat.com> | |
16289 | ||
16290 | PR tree-optimization/64910 | |
16291 | * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to | |
16292 | cases where we have 3 or more operands. | |
16293 | ||
16294 | 2017-09-05 Jakub Jelinek <jakub@redhat.com> | |
16295 | ||
16296 | PR middle-end/81768 | |
16297 | * omp-low.c (lower_omp_for): Recompute tree invariant if | |
16298 | gimple_omp_for_initial/final is ADDR_EXPR. | |
16299 | ||
16300 | PR middle-end/81768 | |
16301 | * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR | |
16302 | into gimple val before gimplification fo the COND_EXPR. | |
16303 | ||
16304 | 2017-09-05 Aldy Hernandez <aldyh@redhat.com> | |
16305 | ||
16306 | * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused | |
16307 | REGION_COPY argument. | |
16308 | (thread_through_all_blocks): Remove unused argument to | |
16309 | duplicate_thread_path. | |
16310 | ||
16311 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16312 | Alan Hayward <alan.hayward@arm.com> | |
16313 | David Sherwood <david.sherwood@arm.com> | |
16314 | ||
16315 | * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp): | |
16316 | Take a scalar_mode rather than a machine_mode. | |
16317 | (aarch64_operands_adjust_ok_for_ldpstp): Likewise. | |
16318 | * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise. | |
16319 | (aarch64_operands_adjust_ok_for_ldpstp): Likewise. | |
16320 | (aarch64_gen_adjusted_ldpstp): Likewise. | |
16321 | (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode. | |
16322 | ||
16323 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16324 | Alan Hayward <alan.hayward@arm.com> | |
16325 | David Sherwood <david.sherwood@arm.com> | |
16326 | ||
16327 | * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract): | |
16328 | Take a scalar_int_mode instead of a machine_mode. | |
16329 | (aarch64_mask_and_shift_for_ubfiz_p): Likewise. | |
16330 | (aarch64_output_scalar_simd_mov_immediate): Likewise. | |
16331 | (aarch64_simd_scalar_immediate_valid_for_move): Likewise. | |
16332 | (aarch64_simd_attr_length_rglist): Delete. | |
16333 | * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take | |
16334 | a scalar_int_mode instead of a machine_mode. | |
16335 | (aarch64_add_offset): Likewise. | |
16336 | (aarch64_internal_mov_immediate): Likewise | |
16337 | (aarch64_add_constant_internal): Likewise. | |
16338 | (aarch64_add_constant): Likewise. | |
16339 | (aarch64_movw_imm): Likewise. | |
16340 | (aarch64_rtx_arith_op_extract_p): Likewise. | |
16341 | (aarch64_mask_and_shift_for_ubfiz_p): Likewise. | |
16342 | (aarch64_simd_scalar_immediate_valid_for_move): Likewise. | |
16343 | Remove assert that the mode isn't a vector. | |
16344 | (aarch64_output_scalar_simd_mov_immediate): Likewise. | |
16345 | (aarch64_expand_mov_immediate): Update calls after above changes. | |
16346 | (aarch64_output_casesi): Use as_a <scalar_int_mode>. | |
16347 | (aarch64_and_bitmask_imm): Check for scalar integer modes. | |
16348 | (aarch64_move_imm): Likewise. | |
16349 | (aarch64_can_const_movi_rtx_p): Likewise. | |
16350 | (aarch64_strip_extend): Likewise. | |
16351 | (aarch64_extr_rtx_p): Likewise. | |
16352 | (aarch64_rtx_costs): Likewise, using wode_mode as the mode of | |
16353 | a CONST_INT when the mode parameter is VOIDmode. | |
16354 | (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary. | |
16355 | ||
16356 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16357 | ||
16358 | * machmode.h (bitwise_mode_for_mode): Return opt_mode. | |
16359 | * stor-layout.c (bitwise_mode_for_mode): Likewise. | |
16360 | (bitwise_type_for_mode): Update accordingly. | |
16361 | ||
16362 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16363 | ||
16364 | * stor-layout.h (mode_for_size_tree): Return an opt_mode. | |
16365 | * stor-layout.c (mode_for_size_tree): Likewise. | |
16366 | (mode_for_array): Update accordingly. | |
16367 | (layout_decl): Likewise. | |
16368 | (compute_record_mode): Likewise. Only set the mode once. | |
16369 | ||
16370 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16371 | ||
16372 | * target.def (get_mask_mode): Change return type to opt_mode. | |
16373 | Expand commentary. | |
16374 | * doc/tm.texi: Regenerate. | |
16375 | * targhooks.h (default_get_mask_mode): Return an opt_mode. | |
16376 | * targhooks.c (default_get_mask_mode): Likewise. | |
16377 | * config/i386/i386.c (ix86_get_mask_mode): Likewise. | |
16378 | * optabs-query.c (can_vec_mask_load_store_p): Update use of | |
16379 | targetm.get_mask_mode. | |
16380 | * tree.c (build_truth_vector_type): Likewise. | |
16381 | ||
16382 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16383 | ||
16384 | * machmode.h (mode_for_vector): Return an opt_mode. | |
16385 | * stor-layout.c (mode_for_vector): Likewise. | |
16386 | (mode_for_int_vector): Update accordingly. | |
16387 | (layout_type): Likewise. | |
16388 | * config/i386/i386.c (emit_memmov): Likewise. | |
16389 | (ix86_expand_set_or_movmem): Likewise. | |
16390 | (ix86_expand_vector_init): Likewise. | |
16391 | (ix86_get_mask_mode): Likewise. | |
16392 | * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1): | |
16393 | Likewise. | |
16394 | * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise. | |
16395 | * expmed.c (extract_bit_field_1): Likewise. | |
16396 | * expr.c (expand_expr_real_2): Likewise. | |
16397 | * optabs-query.c (can_vec_perm_p): Likewise. | |
16398 | (can_vec_mask_load_store_p): Likewise. | |
16399 | * optabs.c (expand_vec_perm): Likewise. | |
16400 | * targhooks.c (default_get_mask_mode): Likewise. | |
16401 | * tree-vect-stmts.c (vectorizable_store): Likewise. | |
16402 | (vectorizable_load): Likewise. | |
16403 | (get_vectype_for_scalar_type_and_size): Likewise. | |
16404 | ||
16405 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16406 | ||
16407 | * machmode.h (mode_for_int_vector): New function. | |
16408 | * stor-layout.c (mode_for_int_vector): Likewise. | |
16409 | * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it. | |
16410 | * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise. | |
16411 | * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise. | |
16412 | * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise. | |
16413 | (s390_expand_vcond): Likewise. | |
16414 | ||
16415 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16416 | ||
16417 | * machmode.h (opt_machine_mode): New type. | |
16418 | (opt_mode<T>): Allow construction from anything that can be | |
16419 | converted to a T. | |
16420 | (is_a, as_a, dyn_cast): Add overloads for opt_mode. | |
16421 | (mode_for_size): Return an opt_machine_mode. | |
16422 | * stor-layout.c (mode_for_size): Likewise. | |
16423 | (mode_for_size_tree): Update call accordingly. | |
16424 | (bitwise_mode_for_mode): Likewise. | |
16425 | (make_fract_type): Likewise. | |
16426 | (make_accum_type): Likewise. | |
16427 | * caller-save.c (replace_reg_with_saved_mem): Update call | |
16428 | accordingly. | |
16429 | * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. | |
16430 | * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. | |
16431 | * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. | |
16432 | * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise. | |
16433 | * expmed.c (extract_bit_field_1): Likewise. | |
16434 | * reload.c (get_secondary_mem): Likewise. | |
16435 | * varasm.c (assemble_integer): Likewise. | |
16436 | * lower-subreg.c (simplify_subreg_concatn): Likewise. Move | |
16437 | early-out. | |
16438 | ||
16439 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16440 | ||
16441 | * machmode.h (decimal_float_mode_for_size): New function. | |
16442 | * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size. | |
16443 | (REAL_VALUE_TO_TARGET_DOUBLE): Likewise. | |
16444 | (REAL_VALUE_TO_TARGET_SINGLE): Likewise. | |
16445 | (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size. | |
16446 | (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise. | |
16447 | (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise. | |
16448 | ||
16449 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16450 | ||
16451 | * builtins.c (expand_builtin_powi): Use int_mode_for_size. | |
16452 | (get_builtin_sync_mode): Likewise. | |
16453 | (expand_ifn_atomic_compare_exchange): Likewise. | |
16454 | (expand_builtin_atomic_clear): Likewise. | |
16455 | (expand_builtin_atomic_test_and_set): Likewise. | |
16456 | (fold_builtin_atomic_always_lock_free): Likewise. | |
16457 | * calls.c (compute_argument_addresses): Likewise. | |
16458 | (emit_library_call_value_1): Likewise. | |
16459 | (store_one_arg): Likewise. | |
16460 | * combine.c (combine_instructions): Likewise. | |
16461 | * config/aarch64/aarch64.c (aarch64_function_value): Likewise. | |
16462 | * config/arm/arm.c (arm_function_value): Likewise. | |
16463 | (aapcs_allocate_return_reg): Likewise. | |
16464 | * config/c6x/c6x.c (c6x_expand_movmem): Likewise. | |
16465 | * config/i386/i386.c (construct_container): Likewise. | |
16466 | (ix86_gimplify_va_arg): Likewise. | |
16467 | (ix86_expand_sse_cmp): Likewise. | |
16468 | (emit_memmov): Likewise. | |
16469 | (emit_memset): Likewise. | |
16470 | (expand_small_movmem_or_setmem): Likewise. | |
16471 | (ix86_expand_pextr): Likewise. | |
16472 | (ix86_expand_pinsr): Likewise. | |
16473 | * config/lm32/lm32.c (lm32_block_move_inline): Likewise. | |
16474 | * config/microblaze/microblaze.c (microblaze_block_move_straight): | |
16475 | Likewise. | |
16476 | * config/mips/mips.c (mips_function_value_1) Likewise. | |
16477 | (mips_block_move_straight): Likewise. | |
16478 | (mips_expand_ins_as_unaligned_store): Likewise. | |
16479 | * config/powerpcspe/powerpcspe.c | |
16480 | (rs6000_darwin64_record_arg_advance_flush): Likewise. | |
16481 | (rs6000_darwin64_record_arg_flush): Likewise. | |
16482 | * config/rs6000/rs6000.c | |
16483 | (rs6000_darwin64_record_arg_advance_flush): Likewise. | |
16484 | (rs6000_darwin64_record_arg_flush): Likewise. | |
16485 | * config/sparc/sparc.c (sparc_function_arg_1): Likewise. | |
16486 | (sparc_function_value_1): Likewise. | |
16487 | * config/spu/spu.c (adjust_operand): Likewise. | |
16488 | (spu_emit_branch_or_set): Likewise. | |
16489 | (arith_immediate_p): Likewise. | |
16490 | * emit-rtl.c (gen_lowpart_common): Likewise. | |
16491 | * expr.c (expand_expr_real_1): Likewise. | |
16492 | * function.c (assign_parm_setup_block): Likewise. | |
16493 | * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise. | |
16494 | * reload1.c (alter_reg): Likewise. | |
16495 | * stor-layout.c (mode_for_vector): Likewise. | |
16496 | (layout_type): Likewise. | |
16497 | ||
16498 | 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org> | |
16499 | ||
16500 | * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode. | |
16501 | (spu_convert_move): Likewise. | |
16502 | * lower-subreg.c (resolve_simple_move): Likewise. | |
16503 | ||
16504 | 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
16505 | ||
16506 | PR target/81833 | |
16507 | * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a | |
16508 | define_insn to a define_expand. | |
16509 | (altivec_vsum2sws_direct): New define_insn. | |
16510 | (altivec_vsumsws): Convert from a define_insn to a define_expand. | |
16511 | ||
16512 | 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com> | |
16513 | ||
16514 | * config/arm/arm.c (arm_option_params_internal): Improve setting of | |
16515 | max_insns_skipped. | |
16516 | ||
16517 | 2017-09-05 H.J. Lu <hongjiu.lu@intel.com> | |
16518 | ||
16519 | PR target/59501 | |
16520 | PR target/81624 | |
16521 | PR target/81769 | |
16522 | * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't | |
16523 | realign stack if stack alignment needed is less than incoming | |
16524 | stack boundary. | |
16525 | ||
16526 | 2017-09-05 Marek Polacek <polacek@redhat.com> | |
16527 | ||
16528 | PR sanitizer/82072 | |
16529 | * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan | |
16530 | check earlier. | |
16531 | ||
16532 | 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com> | |
16533 | ||
16534 | * explow.c (get_dynamic_stack_size): Improve dynamic alignment. | |
16535 | ||
16536 | 2017-09-05 Richard Biener <rguenther@suse.de> | |
16537 | ||
16538 | PR tree-optimization/82084 | |
16539 | * fold-const.c (can_native_encode_string_p): Handle wide characters. | |
16540 | ||
16541 | 2017-09-05 Richard Biener <rguenther@suse.de> | |
16542 | ||
16543 | PR tree-optimization/82102 | |
16544 | * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL. | |
16545 | ||
16546 | 2017-09-05 Martin Liska <mliska@suse.cz> | |
16547 | ||
16548 | PR tree-optimization/82032 | |
16549 | * tree-cfg.c (generate_range_test): New function. | |
16550 | * tree-cfg.h (generate_range_test): Declared here. | |
16551 | * tree-cfgcleanup.c (convert_single_case_switch): New function. | |
16552 | (cleanup_control_expr_graph): Use it. | |
16553 | * tree-switch-conversion.c (try_switch_expansion): Remove | |
16554 | assert. | |
16555 | (emit_case_nodes): Use generate_range_test. | |
16556 | ||
16557 | 2017-09-04 Uros Bizjak <ubizjak@gmail.com> | |
16558 | ||
16559 | PR target/82098 | |
16560 | * config/i386/i386.md (*<btsc><mode>_mask): Add | |
16561 | TARGET_USE_BT to insn constraint. | |
16562 | (*btr<mode>_mask): Ditto. | |
16563 | ||
16564 | 2017-09-04 Wilco Dijkstra <wdijkstr@arm.com> | |
16565 | ||
16566 | * config/arm/arm.c (arm_legitimate_index_p): Add comment. | |
16567 | (thumb2_legitimate_index_p): Use correct range for DI/DF mode. | |
16568 | ||
16569 | 2017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
16570 | ||
16571 | PR target/77308 | |
16572 | * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for | |
16573 | TARGET_NEON and TARGET_IWMMXT. | |
16574 | (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for | |
16575 | TARGET_NEON and TARGET_IWMMXT. | |
16576 | (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here. | |
16577 | ||
16578 | 2017-09-04 Uros Bizjak <ubizjak@gmail.com> | |
16579 | ||
16580 | * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype. | |
16581 | (ix86_rewrite_tls_address): Ditto. | |
16582 | * config/i386/i386.c (ix86_tls_address_pattern_p) New function. | |
16583 | (ix86_rewrite_tls_address_1): Ditto. | |
16584 | (ix86_rewrite_tls_address): Ditto. | |
16585 | * config/i386/predicates.md (tls_address_pattern): New predicate. | |
16586 | * config/i386/i386.md (TLS address splitter): New splitter. | |
16587 | ||
16588 | 2017-09-04 Richard Biener <rguenther@suse.de> | |
16589 | ||
16590 | PR tree-optimization/82084 | |
16591 | * fold-const.h (can_native_encode_string_p): Declare. | |
16592 | * fold-const.c (can_native_encode_string_p): Factor out from ... | |
16593 | (native_encode_string): ... here. | |
16594 | * tree-vect-stmts.c (vectorizable_store): Call it to avoid | |
16595 | vectorizing stores from constants we later cannot handle. | |
16596 | ||
16597 | 2017-09-04 Marek Polacek <polacek@redhat.com> | |
16598 | ||
16599 | PR c/81783 | |
16600 | * doc/invoke.texi: Update -Wtautological-compare documentation. | |
16601 | ||
16602 | 2017-09-04 Jeff Law <law@redhat.com> | |
16603 | ||
16604 | PR tree-optimization/64910 | |
16605 | * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops, | |
16606 | swap the first and last operand if the last is a constant. | |
16607 | ||
16608 | 2017-09-04 Marek Polacek <polacek@redhat.com> | |
16609 | ||
16610 | PR sanitizer/82072 | |
16611 | * convert.c (do_narrow): When sanitizing signed integer overflows, | |
16612 | bail out for signed types. | |
16613 | (convert_to_integer_1) <case NEGATE_EXPR>: Likewise. | |
16614 | ||
16615 | 2017-09-04 Richard Biener <rguenther@suse.de> | |
16616 | ||
16617 | PR tree-optimization/82060 | |
16618 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): | |
16619 | Move devirtualization after stmt folding and before EH/AB/noreturn | |
16620 | cleanup to get the stmt refs canonicalized. Use a bool instead | |
16621 | of gimple_modified_p since that doesn't work for NOPs. Schedule | |
16622 | NOPs generated by folding for removal. | |
16623 | ||
16624 | 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> | |
16625 | Alan Hayward <alan.hayward@arm.com> | |
16626 | David Sherwood <david.sherwood@arm.com> | |
16627 | ||
16628 | * coretypes.h (pad_direction): New enum. | |
16629 | * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete. | |
16630 | (FUNCTION_ARG_PADDING): Likewise. | |
16631 | * target.def (function_arg_padding): New hook. | |
16632 | * targhooks.h (default_function_arg_padding): Declare. | |
16633 | * targhooks.c (default_function_arg_padding): New function. | |
16634 | * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with... | |
16635 | (TARGET_FUNCTION_ARG_PADDING): ...this. | |
16636 | * doc/tm.texi: Regenerate. | |
16637 | * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction | |
16638 | instead of direction. | |
16639 | (compute_argument_addresses): Likewise. | |
16640 | (load_register_parameters): Likewise. | |
16641 | (emit_library_call_value_1): Likewise. | |
16642 | (store_one_arg): Use targetm.calls.function_arg_padding instead | |
16643 | of FUNCTION_ARG_PADDING. | |
16644 | (must_pass_in_stack_var_size_or_pad): Likewise. | |
16645 | * expr.c (emit_group_load_1): Use pad_direction instead of direction. | |
16646 | (emit_group_store): Likewise. | |
16647 | (emit_single_push_insn_1): Use targetm.calls.function_arg_padding | |
16648 | instead of FUNCTION_ARG_PADDING. | |
16649 | (emit_push_insn): Likewise, and propagate enum change throughout | |
16650 | function. | |
16651 | * function.h (direction): Delete. | |
16652 | (locate_and_pad_arg_data::where_pad): Use pad_direction instead | |
16653 | of direction. | |
16654 | * function.c (assign_parm_find_stack_rtl): Likewise. | |
16655 | (assign_parm_setup_block_p): Likewise. | |
16656 | (assign_parm_setup_block): Likewise. | |
16657 | (gimplify_parameters): Likewise. | |
16658 | (locate_and_pad_parm): Use targetm.calls.function_arg_padding | |
16659 | instead of FUNCTION_ARG_PADDING, and propagate enum change throughout | |
16660 | function. | |
16661 | * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete. | |
16662 | (BLOCK_REG_PADDING): Use pad_direction instead of direction. | |
16663 | * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete. | |
16664 | * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with... | |
16665 | (aarch64_function_arg_padding): ...this new function. | |
16666 | (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction. | |
16667 | (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16668 | * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete. | |
16669 | (BLOCK_REG_PADDING): Use pad_direction instead of direction. | |
16670 | * config/arm/arm-protos.h (arm_pad_arg_upward): Delete. | |
16671 | * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16672 | (arm_pad_arg_upward): Replace with... | |
16673 | (arm_function_arg_padding): ...this new function. | |
16674 | * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead | |
16675 | of direction. | |
16676 | * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete. | |
16677 | * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete. | |
16678 | * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16679 | (ia64_hpux_function_arg_padding): Replace with... | |
16680 | (ia64_function_arg_padding): ...this new function. Use pad_direction | |
16681 | instead of direction. Check for TARGET_HPUX. | |
16682 | * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete. | |
16683 | * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16684 | (iq2000_function_arg_padding): New function. | |
16685 | * config/mips/mips-protos.h (mips_pad_arg_upward): Delete. | |
16686 | * config/mips/mips.c (mips_pad_arg_upward): Replace with... | |
16687 | (mips_function_arg_padding): ...this new function. | |
16688 | (mips_pad_reg_upward): Update accordingly. | |
16689 | (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16690 | * config/mips/mips.h (PAD_VARARGS_DOWN): Use | |
16691 | targetm.calls.function_arg_padding. | |
16692 | (FUNCTION_ARG_PADDING): Delete. | |
16693 | (BLOCK_REG_PADDING): Use pad_direction instead of direction. | |
16694 | * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete. | |
16695 | (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding. | |
16696 | * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete. | |
16697 | (nios2_block_reg_padding): Return pad_direction instead of direction. | |
16698 | * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction | |
16699 | instead of direction. | |
16700 | (nios2_function_arg_padding): Likewise. Make static. | |
16701 | (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16702 | * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete. | |
16703 | (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding. | |
16704 | * config/pa/pa-protos.h (pa_function_arg_padding): Delete. | |
16705 | * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16706 | (pa_function_arg_padding): Make static. Return pad_direction instead | |
16707 | of direction. | |
16708 | * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete. | |
16709 | (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding. | |
16710 | * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction | |
16711 | instead of direction. Use targetm.calls.function_arg_padding. | |
16712 | * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise. | |
16713 | * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise. | |
16714 | * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise. | |
16715 | * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete. | |
16716 | * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING): | |
16717 | Redefine. | |
16718 | (function_arg_padding): Rename to... | |
16719 | (rs6000_function_arg_padding): ...this. Make static. Return | |
16720 | pad_direction instead of direction. | |
16721 | (rs6000_return_in_msb): Use rs6000_function_arg_padding. | |
16722 | * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete. | |
16723 | (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding. | |
16724 | * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction | |
16725 | instead of direction. Use targetm.calls.function_arg_padding. | |
16726 | * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise. | |
16727 | * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise. | |
16728 | * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise. | |
16729 | * config/rs6000/rs6000-protos.h (function_arg_padding): Delete. | |
16730 | * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16731 | (function_arg_padding): Rename to... | |
16732 | (rs6000_function_arg_padding): ...this. Make static. Return | |
16733 | pad_direction instead of direction. | |
16734 | (rs6000_return_in_msb): Use rs6000_function_arg_padding. | |
16735 | * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete. | |
16736 | * config/s390/s390.c (s390_function_arg_padding): New function. | |
16737 | (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16738 | * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete. | |
16739 | * config/sparc/sparc-protos.h (function_arg_padding): Delete. | |
16740 | * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16741 | (function_arg_padding): Rename to... | |
16742 | (sparc_function_arg_padding): ...this. Make static. Return | |
16743 | pad_direction instead of direction. | |
16744 | * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete. | |
16745 | * config/spu/spu.c (spu_function_arg_padding): New function. | |
16746 | (TARGET_FUNCTION_ARG_PADDING): Redefine. | |
16747 | * system.h (FUNCTION_ARG_PADDING): Poison. | |
16748 | ||
16749 | 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> | |
16750 | Alan Hayward <alan.hayward@arm.com> | |
16751 | David Sherwood <david.sherwood@arm.com> | |
16752 | ||
16753 | * target.def (modes_tieable_p): New hook. | |
16754 | * doc/tm.texi (MODES_TIEABLE_P): Replace with... | |
16755 | (TARGET_MODES_TIEABLE_P): ...this. | |
16756 | * doc/tm.texi.in: Regenerate. | |
16757 | * hooks.h (hook_bool_mode_mode_true): Declare. | |
16758 | * hooks.c (hook_bool_mode_mode_true): New function. | |
16759 | * combine.c (subst): Use targetm.modes_tieable_p instead of | |
16760 | MODES_TIEABLE_P. | |
16761 | * dse.c (find_shift_sequence): Likewise. | |
16762 | * expmed.c (extract_low_bits): Likewise. | |
16763 | * lower-subreg.c: Include target.h. | |
16764 | (find_decomposable_subregs): Use targetm.modes_tieable_p instead of | |
16765 | MODES_TIEABLE_P. | |
16766 | * rtlanal.c (rtx_cost): Likewise. | |
16767 | * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete. | |
16768 | * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete. | |
16769 | * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static. | |
16770 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16771 | * config/alpha/alpha.h (MODES_TIEABLE_P): Delete. | |
16772 | * config/alpha/alpha.c (alpha_modes_tieable_p): New function. | |
16773 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16774 | * config/arc/arc.h (MODES_TIEABLE_P): Delete. | |
16775 | * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16776 | (arc_modes_tieable_p): New function. | |
16777 | * config/arm/arm.h (MODES_TIEABLE_P): Delete. | |
16778 | * config/arm/arm-protos.h (arm_modes_tieable_p): Delete. | |
16779 | * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16780 | (arm_modes_tieable_p): Make static. | |
16781 | * config/avr/avr.h (MODES_TIEABLE_P): Delete. | |
16782 | * config/bfin/bfin.h (MODES_TIEABLE_P): Delete. | |
16783 | * config/bfin/bfin.c (bfin_modes_tieable_p): New function. | |
16784 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16785 | * config/c6x/c6x.h (MODES_TIEABLE_P): Delete. | |
16786 | * config/c6x/c6x.c (c6x_modes_tieable_p): New function. | |
16787 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16788 | * config/cr16/cr16.h (MODES_TIEABLE_P): Delete. | |
16789 | * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16790 | (cr16_modes_tieable_p): New function. | |
16791 | * config/cris/cris.h (MODES_TIEABLE_P): Delete. | |
16792 | * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete. | |
16793 | * config/fr30/fr30.h (MODES_TIEABLE_P): Delete. | |
16794 | (TRULY_NOOP_TRUNCATION): Update comment. | |
16795 | * config/frv/frv.h (MODES_TIEABLE_P): Delete. | |
16796 | (TRULY_NOOP_TRUNCATION): Update comment. | |
16797 | * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16798 | (frv_modes_tieable_p): New function. | |
16799 | * config/ft32/ft32.h (MODES_TIEABLE_P): Delete. | |
16800 | * config/h8300/h8300.h (MODES_TIEABLE_P): Delete. | |
16801 | * config/h8300/h8300.c (h8300_modes_tieable_p): New function. | |
16802 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16803 | * config/i386/i386.h (MODES_TIEABLE_P): Delete. | |
16804 | * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete. | |
16805 | * config/i386/i386.c (ix86_modes_tieable_p): Make static. | |
16806 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16807 | * config/ia64/ia64.h (MODES_TIEABLE_P): Delete. | |
16808 | * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16809 | (ia64_modes_tieable_p): New function. | |
16810 | * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete. | |
16811 | * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16812 | (iq2000_modes_tieable_p): New function. | |
16813 | * config/lm32/lm32.h (MODES_TIEABLE_P): Delete. | |
16814 | * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16815 | (lm32_modes_tieable_p): New function. | |
16816 | * config/m32c/m32c.h (MODES_TIEABLE_P): Delete. | |
16817 | * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete. | |
16818 | * config/m32c/m32c.c (m32c_modes_tieable_p): Make static. | |
16819 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16820 | * config/m32r/m32r.h (MODES_TIEABLE_P): Delete. | |
16821 | * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16822 | (m32r_modes_tieable_p): New function. | |
16823 | * config/m68k/m68k.h (MODES_TIEABLE_P): Delete. | |
16824 | * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16825 | (m68k_modes_tieable_p): New function. | |
16826 | * config/mcore/mcore.h (MODES_TIEABLE_P): Delete. | |
16827 | * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16828 | (mcore_modes_tieable_p): New function. | |
16829 | * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete. | |
16830 | * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New | |
16831 | function. | |
16832 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16833 | * config/mips/mips.h (MODES_TIEABLE_P): Delete. | |
16834 | * config/mips/mips-protos.h (mips_modes_tieable_p): Delete. | |
16835 | * config/mips/mips.c (mips_modes_tieable_p): Make static. | |
16836 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16837 | * config/mmix/mmix.h (MODES_TIEABLE_P): Delete. | |
16838 | * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete. | |
16839 | * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete. | |
16840 | * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to... | |
16841 | (mn10300_modes_tieable_p): ...this and make static. | |
16842 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16843 | * config/moxie/moxie.h (MODES_TIEABLE_P): Delete. | |
16844 | * config/msp430/msp430.h (MODES_TIEABLE_P): Delete. | |
16845 | * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete. | |
16846 | * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16847 | (msp430_modes_tieable_p): Make static. | |
16848 | * config/nds32/nds32.h (MODES_TIEABLE_P): Delete. | |
16849 | * config/nds32/nds32.c (nds32_modes_tieable_p): New function. | |
16850 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16851 | * config/nios2/nios2.h (MODES_TIEABLE_P): Delete. | |
16852 | * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete. | |
16853 | * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function. | |
16854 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16855 | * config/pa/pa.h (MODES_TIEABLE_P): Delete. | |
16856 | * config/pa/pa-protos.h (pa_modes_tieable_p): Delete. | |
16857 | * config/pa/pa.c (pa_modes_tieable_p): Make static. | |
16858 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16859 | * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete. | |
16860 | * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16861 | (pdp11_modes_tieable_p): New function. | |
16862 | * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete. | |
16863 | * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16864 | (rs6000_modes_tieable_p): New function. | |
16865 | (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P. | |
16866 | * config/powerpcspe/powerpcspe.md: Update comment. | |
16867 | * config/riscv/riscv.h (MODES_TIEABLE_P): Delete. | |
16868 | * config/riscv/riscv.c (riscv_modes_tieable_p): New function. | |
16869 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16870 | * config/rl78/rl78.h (MODES_TIEABLE_P): Delete. | |
16871 | * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16872 | (rl78_modes_tieable_p): New function. | |
16873 | * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete. | |
16874 | * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16875 | (rs6000_modes_tieable_p): New function. | |
16876 | (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P. | |
16877 | * config/rs6000/rs6000.md: Update comment. | |
16878 | * config/rx/rx.h (MODES_TIEABLE_P): Delete. | |
16879 | * config/rx/rx.c (rx_modes_tieable_p): New function. | |
16880 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16881 | * config/s390/s390.h (MODES_TIEABLE_P): Delete. | |
16882 | * config/s390/s390.c (s390_modes_tieable_p): New function. | |
16883 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16884 | * config/sh/sh.h (MODES_TIEABLE_P): Delete. | |
16885 | * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16886 | (sh_modes_tieable_p): New function. | |
16887 | * config/sparc/sparc.h (MODES_TIEABLE_P): Delete. | |
16888 | * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete. | |
16889 | * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16890 | (sparc_modes_tieable_p): Make static. | |
16891 | * config/spu/spu.h (MODES_TIEABLE_P): Delete. | |
16892 | * config/spu/spu.c (spu_modes_tieable_p): New function. | |
16893 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16894 | * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete. | |
16895 | * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function. | |
16896 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16897 | * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete. | |
16898 | * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete. | |
16899 | * config/v850/v850.h (MODES_TIEABLE_P): Delete. | |
16900 | * config/v850/v850.c (v850_modes_tieable_p): New function. | |
16901 | (TARGET_MODES_TIEABLE_P): Redefine. | |
16902 | * config/vax/vax.h (MODES_TIEABLE_P): Delete. | |
16903 | * config/visium/visium.h (MODES_TIEABLE_P): Delete. | |
16904 | * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16905 | (visium_modes_tieable_p): New function. | |
16906 | * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete. | |
16907 | * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine. | |
16908 | (xtensa_modes_tieable_p): New function. | |
16909 | * system.h (MODES_TIEABLE_P): Poison. | |
16910 | ||
16911 | 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> | |
16912 | Alan Hayward <alan.hayward@arm.com> | |
16913 | David Sherwood <david.sherwood@arm.com> | |
16914 | ||
16915 | * target.def (hard_regno_mode_ok): New hook. | |
16916 | * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with... | |
16917 | (TARGET_HARD_REGNO_MODE_OK): ...this. | |
16918 | * doc/tm.texi.in: Regenerate. | |
16919 | * hooks.h (hook_bool_uint_mode_true): Declare. | |
16920 | * hooks.c (hook_bool_uint_mode_true): New function. | |
16921 | * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of | |
16922 | HARD_REGNO_MODE_OK. | |
16923 | * genpreds.c (write_insn_preds_c): Add an include of target.h. | |
16924 | * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok | |
16925 | instead of HARD_REGNO_MODE_OK. | |
16926 | * caller-save.c: Include target.h. | |
16927 | (reg_save_code): Use targetm.hard_regno_mode_ok instead of | |
16928 | HARD_REGNO_MODE_OK. | |
16929 | * combine.c (can_combine_p): Likewise. | |
16930 | (combinable_i3pat): Likewise. | |
16931 | (can_change_dest_mode): Likewise. | |
16932 | * expr.c (init_expr_target): Likewise. | |
16933 | (convert_move): Likewise. | |
16934 | (convert_modes): Likewise. | |
16935 | * ira.c (setup_prohibited_class_mode_regs): Likewise. | |
16936 | (setup_prohibited_mode_move_regs): Likewise. | |
16937 | * ira.h (target_ira): Likewise. | |
16938 | * lra-assigns.c (find_hard_regno_for_1): Likewise. | |
16939 | * lra-constraints.c (process_alt_operands): Likewise. | |
16940 | (split_reg): Likewise. | |
16941 | * recog.c (peep2_find_free_register): Likewise. | |
16942 | * ree.c (combine_reaching_defs): Likewise. | |
16943 | * regcprop.c (maybe_mode_change): Likewise. | |
16944 | * reginfo.c (init_reg_sets_1): Likewise. | |
16945 | (choose_hard_reg_mode): Likewise. | |
16946 | (simplifiable_subregs): Likewise. | |
16947 | * regrename.c (check_new_reg_p): Likewise. | |
16948 | * reload.c (find_valid_class): Likewise. | |
16949 | (find_valid_class_1): Likewise. | |
16950 | (reload_inner_reg_of_subreg): Likewise. | |
16951 | (push_reload): Likewise. | |
16952 | (combine_reloads): Likewise. | |
16953 | (find_dummy_reload): Likewise. | |
16954 | (find_reloads): Likewise. | |
16955 | * reload1.c (find_reg): Likewise. | |
16956 | (set_reload_reg): Likewise. | |
16957 | (allocate_reload_reg): Likewise. | |
16958 | (choose_reload_regs): Likewise. | |
16959 | (reload_adjust_reg_for_temp): Likewise. | |
16960 | * rtlanal.c (subreg_size_offset_from_lsb): Likewise. | |
16961 | (simplify_subreg_regno): Likewise. | |
16962 | * sel-sched.c (init_regs_for_mode): Likewise. | |
16963 | * varasm.c (make_decl_rtl): Likewise. | |
16964 | * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete. | |
16965 | (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of | |
16966 | HARD_REGNO_MODE_OK. | |
16967 | * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete. | |
16968 | * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static. | |
16969 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
16970 | * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete. | |
16971 | * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function. | |
16972 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
16973 | * config/arc/arc.h (arc_hard_regno_mode_ok): Delete. | |
16974 | (arc_mode_class): Delete. | |
16975 | (HARD_REGNO_MODE_OK): Delete. | |
16976 | * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
16977 | (arc_hard_regno_mode_ok): Rename old array to... | |
16978 | (arc_hard_regno_mode_ok_modes): ...this. | |
16979 | (arc_conditional_register_usage): Update accordingly. | |
16980 | (arc_mode_class): Make static. | |
16981 | (arc_hard_regno_mode_ok): New function. | |
16982 | * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete. | |
16983 | * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete. | |
16984 | * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
16985 | (arm_hard_regno_mode_ok): Make static. | |
16986 | * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of | |
16987 | HARD_REGNO_MODE_OK. | |
16988 | * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete. | |
16989 | * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete. | |
16990 | * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and | |
16991 | return a bool. | |
16992 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
16993 | * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete. | |
16994 | * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete. | |
16995 | * config/bfin/bfin.c (hard_regno_mode_ok): Rename to... | |
16996 | (bfin_hard_regno_mode_ok): ...this. Make static and return a bool. | |
16997 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
16998 | * config/bfin/predicates.md (valid_reg_operand): Use | |
16999 | targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK. | |
17000 | * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete. | |
17001 | * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function. | |
17002 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17003 | * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete. | |
17004 | * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete. | |
17005 | * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17006 | (cr16_hard_regno_mode_ok): Make static and return a bool. | |
17007 | * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete. | |
17008 | * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17009 | (cris_hard_regno_mode_ok): New function. | |
17010 | * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete. | |
17011 | (epiphany_mode_class): Delete. | |
17012 | (HARD_REGNO_MODE_OK): Delete. | |
17013 | * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete. | |
17014 | * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17015 | (hard_regno_mode_ok): Rename to... | |
17016 | (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool. | |
17017 | * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete. | |
17018 | * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of | |
17019 | HARD_REGNO_MODE_OK. | |
17020 | * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete. | |
17021 | * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete. | |
17022 | * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17023 | (frv_hard_regno_mode_ok): Make static and return a bool. | |
17024 | * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of | |
17025 | HARD_REGNO_MODE_OK. | |
17026 | * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete. | |
17027 | * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete. | |
17028 | * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete. | |
17029 | * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static | |
17030 | and return a bool. | |
17031 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17032 | * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete. | |
17033 | * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete. | |
17034 | * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and | |
17035 | return a bool. | |
17036 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17037 | * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete. | |
17038 | * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17039 | (ia64_hard_regno_mode_ok): New function. | |
17040 | * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete. | |
17041 | * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17042 | (iq2000_hard_regno_mode_ok): New function. | |
17043 | * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete. | |
17044 | * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17045 | (lm32_hard_regno_mode_ok): New function. | |
17046 | * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete. | |
17047 | * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete. | |
17048 | * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok | |
17049 | instead of HARD_REGNO_MODE_OK. | |
17050 | (m32c_hard_regno_ok): Rename to... | |
17051 | (m32c_hard_regno_mode_ok): ...this. Make static and return a bool. | |
17052 | (m32c_cannot_change_mode_class): Update accordingly. | |
17053 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17054 | * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete. | |
17055 | (m32r_mode_class): Delete. | |
17056 | (HARD_REGNO_MODE_OK): Delete. | |
17057 | * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17058 | (m32r_hard_regno_mode_ok): Rename to... | |
17059 | (m32r_hard_regno_modes): ...this. | |
17060 | (m32r_mode_class): Make static. | |
17061 | (m32r_hard_regno_mode_ok): New function. | |
17062 | * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete. | |
17063 | * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete. | |
17064 | * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17065 | (m68k_hard_regno_mode_ok): Make static. | |
17066 | * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete. | |
17067 | * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17068 | (mcore_hard_regno_mode_ok): New function. | |
17069 | * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok) | |
17070 | (HARD_REGNO_MODE_OK): Delete. | |
17071 | * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok): | |
17072 | Rename to... | |
17073 | (microblaze_hard_regno_mode_ok_p): ...this and make static. | |
17074 | (microblaze_hard_regno_mode_ok): New function. | |
17075 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17076 | * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete. | |
17077 | (mips_hard_regno_mode_ok): Delete. | |
17078 | * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to... | |
17079 | (mips_hard_regno_mode_ok_p): ...this and make static. | |
17080 | (mips_hard_regno_mode_ok_p): Rename to... | |
17081 | (mips_hard_regno_mode_ok_uncached): ...this. | |
17082 | (mips_hard_regno_mode_ok): New function. | |
17083 | (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead | |
17084 | of HARD_REGNO_MODE_OK. | |
17085 | (mips_option_override): Update after above name changes. | |
17086 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17087 | * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete. | |
17088 | * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete. | |
17089 | * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete. | |
17090 | * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static. | |
17091 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17092 | * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete. | |
17093 | * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete. | |
17094 | * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete. | |
17095 | * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17096 | (msp430_hard_regno_mode_ok): Make static and return a bool. | |
17097 | * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete. | |
17098 | * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete. | |
17099 | * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static | |
17100 | and return a bool. | |
17101 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17102 | * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete. | |
17103 | * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete. | |
17104 | * config/pa/pa.h (MODES_TIEABLE_P): Update commentary. | |
17105 | * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to... | |
17106 | (PA_HARD_REGNO_MODE_OK): ...this | |
17107 | * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to... | |
17108 | (PA_HARD_REGNO_MODE_OK): ...this. | |
17109 | * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17110 | (pa_hard_regno_mode_ok): New function. | |
17111 | * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete. | |
17112 | * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17113 | (pdp11_hard_regno_mode_ok): New function. | |
17114 | * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete. | |
17115 | * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p): | |
17116 | Delete. | |
17117 | * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p): | |
17118 | Make static. | |
17119 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17120 | (rs6000_hard_regno_mode_ok): Rename to... | |
17121 | (rs6000_hard_regno_mode_ok_uncached): ...this. | |
17122 | (rs6000_init_hard_regno_mode_ok): Update accordingly. | |
17123 | (rs6000_hard_regno_mode_ok): New function. | |
17124 | * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete. | |
17125 | * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete. | |
17126 | * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to... | |
17127 | (riscv_hard_regno_mode_ok): ...this and make static. | |
17128 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17129 | * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete. | |
17130 | * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete. | |
17131 | * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17132 | (rl78_hard_regno_mode_ok): Make static and return bool. | |
17133 | * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete. | |
17134 | * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p): | |
17135 | Delete. | |
17136 | * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static. | |
17137 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17138 | (rs6000_hard_regno_mode_ok): Rename to... | |
17139 | (rs6000_hard_regno_mode_ok_uncached): ...this. | |
17140 | (rs6000_init_hard_regno_mode_ok): Update accordingly. | |
17141 | (rs6000_hard_regno_mode_ok): New function. | |
17142 | * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete. | |
17143 | * config/rx/rx.c (rx_hard_regno_mode_ok): New function. | |
17144 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17145 | * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete. | |
17146 | * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete. | |
17147 | * config/s390/s390.c (s390_hard_regno_mode_ok): Make static. | |
17148 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17149 | * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete. | |
17150 | * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete. | |
17151 | * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17152 | (sh_hard_regno_mode_ok): Make static. | |
17153 | * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok | |
17154 | instead of HARD_REGNO_MODE_OK. | |
17155 | * config/sparc/sparc.h (hard_regno_mode_classes): Delete. | |
17156 | (sparc_mode_class): Delete. | |
17157 | (HARD_REGNO_MODE_OK): Delete. | |
17158 | * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17159 | (hard_regno_mode_classes): Make static. | |
17160 | (sparc_mode_class): Likewise. | |
17161 | (sparc_hard_regno_mode_ok): New function. | |
17162 | * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete. | |
17163 | * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete. | |
17164 | * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New | |
17165 | function. | |
17166 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17167 | * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete. | |
17168 | * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete. | |
17169 | * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete. | |
17170 | * config/v850/v850.c (v850_hard_regno_mode_ok): New function. | |
17171 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17172 | * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete. | |
17173 | * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete. | |
17174 | * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17175 | (visium_hard_regno_mode_ok): New function. | |
17176 | * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok | |
17177 | instead of HARD_REGNO_MODE_OK. | |
17178 | * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete. | |
17179 | (HARD_REGNO_MODE_OK): Delete. | |
17180 | * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to... | |
17181 | (xtensa_hard_regno_mode_ok_p): ...this and make static. | |
17182 | (xtensa_option_override): Update accordingly. | |
17183 | (TARGET_HARD_REGNO_MODE_OK): Redefine. | |
17184 | (xtensa_hard_regno_mode_ok): New function. | |
17185 | * system.h (HARD_REGNO_MODE_OK): Poison. | |
17186 | ||
17187 | 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> | |
17188 | Alan Hayward <alan.hayward@arm.com> | |
17189 | David Sherwood <david.sherwood@arm.com> | |
17190 | ||
17191 | * target.def (hard_regno_call_part_clobbered): New hook. | |
17192 | * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with... | |
17193 | (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook. | |
17194 | * doc/tm.texi: Regenerate. | |
17195 | * hooks.h (hook_bool_uint_mode_false): Declare. | |
17196 | * hooks.c (hook_bool_uint_mode_false): New function. | |
17197 | * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. | |
17198 | * cselib.c (cselib_process_insn): Use | |
17199 | targetm.hard_regno_call_part_clobbered instead of | |
17200 | HARD_REGNO_CALL_PART_CLOBBERED. | |
17201 | * ira-conflicts.c (ira_build_conflicts): Likewise. | |
17202 | * ira-costs.c (ira_tune_allocno_costs): Likewise. | |
17203 | * lra-constraints.c (need_for_call_save_p): Likewise. | |
17204 | * lra-lives.c: Include target.h. | |
17205 | (check_pseudos_live_through_calls): Use | |
17206 | targetm.hard_regno_call_part_clobbered instead of | |
17207 | HARD_REGNO_CALL_PART_CLOBBERED. | |
17208 | * regcprop.c: Include target.h. | |
17209 | (copyprop_hardreg_forward_1): Use | |
17210 | targetm.hard_regno_call_part_clobbered instead of | |
17211 | HARD_REGNO_CALL_PART_CLOBBERED. | |
17212 | * reginfo.c (choose_hard_reg_mode): Likewise. | |
17213 | * regrename.c (check_new_reg_p): Likewise. | |
17214 | * reload.c (find_equiv_reg): Likewise. | |
17215 | * reload1.c (emit_reload_insns): Likewise. | |
17216 | * sched-deps.c (deps_analyze_insn): Likewise. | |
17217 | * sel-sched.c (init_regs_for_mode): Likewise. | |
17218 | (mark_unavailable_hard_regs): Likewise. | |
17219 | * targhooks.c (default_dwarf_frame_reg_mode): Likewise. | |
17220 | * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. | |
17221 | * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered): | |
17222 | New function. | |
17223 | (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. | |
17224 | * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. | |
17225 | * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): | |
17226 | Delete. | |
17227 | * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static | |
17228 | and return a bool. | |
17229 | (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. | |
17230 | * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. | |
17231 | * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New | |
17232 | function. | |
17233 | (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. | |
17234 | * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. | |
17235 | * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New | |
17236 | function. | |
17237 | (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. | |
17238 | * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED): | |
17239 | Delete. | |
17240 | * config/powerpcspe/powerpcspe.c | |
17241 | (rs6000_hard_regno_call_part_clobbered): New function. | |
17242 | (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. | |
17243 | * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. | |
17244 | * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): | |
17245 | New function. | |
17246 | (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. | |
17247 | * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. | |
17248 | * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New | |
17249 | function. | |
17250 | (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine. | |
17251 | * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete. | |
17252 | * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison. | |
17253 | ||
17254 | 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> | |
17255 | Alan Hayward <alan.hayward@arm.com> | |
17256 | David Sherwood <david.sherwood@arm.com> | |
17257 | ||
17258 | * rtl.h (subreg_memory_offset): Declare. | |
17259 | * emit-rtl.c (subreg_memory_offset): New function. | |
17260 | * expmed.c (store_bit_field_1): Use it. | |
17261 | * expr.c (undefined_operand_subword_p): Likewise. | |
17262 | * simplify-rtx.c (simplify_subreg): Likewise. | |
17263 | ||
17264 | 2017-09-04 Alexander Monakov <amonakov@ispras.ru> | |
17265 | ||
17266 | PR rtl-optimization/57448 | |
17267 | PR target/67458 | |
17268 | PR target/81316 | |
17269 | * optabs.c (expand_atomic_load): Place compiler memory barriers if | |
17270 | using atomic_load pattern. | |
17271 | (expand_atomic_store): Likewise. | |
17272 | ||
17273 | 2017-09-04 Jakub Jelinek <jakub@redhat.com> | |
17274 | ||
17275 | PR sanitizer/81981 | |
17276 | * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR | |
17277 | and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE | |
17278 | handling. Use replace_call_with_value with NULL instead of | |
17279 | gsi_replace, unlink_stmt_vdef and release_defs. | |
17280 | ||
17281 | * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces | |
17282 | instead of tab. | |
17283 | ||
17284 | * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto. | |
17285 | ||
17286 | 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org> | |
17287 | ||
17288 | PR bootstrap/82045 | |
17289 | * rtl.h (emit_library_call_value_1): Declare. | |
17290 | (emit_library_call): Replace declaration with a series of overloads. | |
17291 | Remove the parameter count argument. | |
17292 | (emit_library_call_value): Likewise. | |
17293 | * calls.c (emit_library_call_value_1): Make global. Replace varargs | |
17294 | with an "rtx_mode_t *". | |
17295 | (emit_library_call_value): Delete. | |
17296 | (emit_library_call): Likewise. | |
17297 | * asan.c (asan_emit_stack_protection): Update calls accordingly. | |
17298 | (asan_emit_allocas_unpoison): Likewise. | |
17299 | * builtins.c (expand_builtin_powi): Likewise. | |
17300 | (expand_asan_emit_allocas_unpoison): Likewise. | |
17301 | * cfgexpand.c (expand_main_function): Likewise. | |
17302 | * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise. | |
17303 | * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise. | |
17304 | * config/alpha/alpha.c (alpha_trampoline_init): Likewise. | |
17305 | * config/arm/arm.c (arm_trampoline_init): Likewise. | |
17306 | (arm_call_tls_get_addr): Likewise. | |
17307 | (arm_expand_divmod_libfunc): Likewise. | |
17308 | * config/bfin/bfin.md (umulsi3_highpart): Likewise. | |
17309 | (smulsi3_highpart): Likewise. | |
17310 | * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise. | |
17311 | (c6x_expand_compare): Likewise. | |
17312 | (c6x_expand_movmem): Likewise. | |
17313 | * config/frv/frv.c (frv_trampoline_init): Likewise. | |
17314 | * config/i386/i386.c (ix86_trampoline_init): Likewise. | |
17315 | (ix86_expand_divmod_libfunc): Likewise. | |
17316 | * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. | |
17317 | (ia64_expand_compare): Likewise. | |
17318 | (ia64_profile_hook): Likewise. | |
17319 | * config/ia64/ia64.md (save_stack_nonlocal): Likewise. | |
17320 | (nonlocal_goto): Likewise. | |
17321 | (restore_stack_nonlocal): Likewise. | |
17322 | * config/m32r/m32r.c (block_move_call): Likewise. | |
17323 | (m32r_trampoline_init): Likewise. | |
17324 | * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise. | |
17325 | * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise. | |
17326 | (m68k_call_m68k_read_tp): Likewise. | |
17327 | * config/microblaze/microblaze.c (microblaze_call_tls_get_addr) | |
17328 | (microblaze_expand_divide): Likewise. | |
17329 | * config/mips/mips.h (mips_args): Likewise. | |
17330 | * config/mips/sdemtk.h (mips_sync_icache): Likewise. | |
17331 | (MIPS_ICACHE_SYNC): Likewise. | |
17332 | * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise. | |
17333 | (nios2_trampoline_init): Likewise. | |
17334 | * config/pa/pa.c (hppa_tls_call): Likewise. | |
17335 | (pa_trampoline_init): Likewise. | |
17336 | * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise. | |
17337 | * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address) | |
17338 | (expand_strn_compare): Likewise. | |
17339 | (rs6000_generate_compare): Likewise. | |
17340 | (rs6000_expand_float128_convert): Likewise. | |
17341 | (output_profile_hook): Likewise. | |
17342 | (rs6000_trampoline_init): Likewise. | |
17343 | * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise. | |
17344 | * config/riscv/riscv.h (PROFILE_HOOK): Likewise. | |
17345 | * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise. | |
17346 | * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. | |
17347 | (rs6000_generate_compare): Likewise. | |
17348 | (rs6000_expand_float128_convert): Likewise. | |
17349 | (output_profile_hook): Likewise. | |
17350 | (rs6000_trampoline_init): Likewise. | |
17351 | * config/rs6000/rs6000.md (neg<mode>2): Likewise. | |
17352 | * config/sh/sh.c (sh_trampoline_init): Likewise. | |
17353 | * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise. | |
17354 | (sparc_emit_float_lib_cmp): Likewise. | |
17355 | (sparc32_initialize_trampoline): Likewise. | |
17356 | (sparc64_initialize_trampoline): Likewise. | |
17357 | (sparc_profile_hook): Likewise. | |
17358 | * config/spu/spu.c (ea_load_store): Likewise. | |
17359 | * config/spu/spu.md (floatunssidf2): Likewise. | |
17360 | * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise. | |
17361 | * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise. | |
17362 | * config/visium/visium.c (expand_block_move_4): Likewise. | |
17363 | (expand_block_move_2): Likewise. | |
17364 | (expand_block_move_1): Likewise. | |
17365 | (expand_block_set_4): Likewise. | |
17366 | (expand_block_set_2): Likewise. | |
17367 | (expand_block_set_1): Likewise. | |
17368 | (visium_trampoline_init): Likewise. | |
17369 | (visium_profile_hook): Likewise. | |
17370 | * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise. | |
17371 | (xtensa_setup_frame_addresses): Likewise. | |
17372 | (xtensa_trampoline_init): Likewise. | |
17373 | * except.c (sjlj_emit_function_enter): Likewise. | |
17374 | (sjlj_emit_function_exit): Likewise. | |
17375 | * explow.c (allocate_dynamic_stack_space): Likewise. | |
17376 | (probe_stack_range): Likewise. | |
17377 | * expr.c (convert_mode_scalar): Likewise. | |
17378 | * optabs.c (expand_binop): Likewise. | |
17379 | (expand_twoval_binop_libfunc): Likewise. | |
17380 | (expand_unop): Likewise. | |
17381 | (prepare_cmp_insn): Likewise. | |
17382 | (prepare_float_lib_cmp): Likewise. | |
17383 | (expand_float): Likewise. | |
17384 | (expand_fix): Likewise. | |
17385 | (expand_fixed_convert): Likewise. | |
17386 | (maybe_emit_sync_lock_test_and_set): Likewise. | |
17387 | (expand_atomic_compare_and_swap): Likewise. | |
17388 | (expand_mem_thread_fence): Likewise. | |
17389 | (expand_atomic_fetch_op): Likewise. | |
17390 | ||
17391 | 2017-09-03 Gerald Pfeifer <gerald@pfeifer.com> | |
17392 | ||
17393 | * doc/generic.texi (OpenACC): Adjust URL. | |
17394 | * doc/invoke.texi (C Dialect Options): Ditto. | |
17395 | ||
17396 | 2017-09-03 Uros Bizjak <ubizjak@gmail.com> | |
17397 | ||
17398 | * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand | |
17399 | predicate for operand 1. Add (m,<S>) constraint. | |
17400 | (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1. | |
17401 | Prevent memory operand 1 with register operand 2. | |
17402 | ||
17403 | 2017-09-01 Segher Boessenkool <segher@kernel.crashing.org> | |
17404 | ||
17405 | PR rtl-optimization/82024 | |
17406 | * combine.c (try_combine): If the combination result is a PARALLEL, | |
17407 | and we only need to retain the SET in there that would be placed | |
17408 | at I2, check that we can place that at I3 instead, before doing so. | |
17409 | ||
17410 | 2017-09-01 Jakub Jelinek <jakub@redhat.com> | |
17411 | ||
17412 | PR target/81766 | |
17413 | * config/i386/i386.c (ix86_init_large_pic_reg): Return label | |
17414 | instead of void. | |
17415 | (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg, | |
17416 | if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note | |
17417 | and label. | |
17418 | ||
17419 | 2017-09-01 Joerg Sonnenberger <joerg@bec.de> | |
17420 | Jeff Law <law@redhat.com> | |
17421 | ||
17422 | * varasm.c (bss_initializer_p): Do not put constants into .bss | |
17423 | (categorize_decl_for_section): Handle bss_initializer_p returning | |
17424 | false when DECL_INITIAL is NULL. | |
17425 | ||
17426 | 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
17427 | ||
17428 | PR target/82012 | |
17429 | * config/s390/s390.c (s390_can_inline_p): New function. | |
17430 | ||
17431 | 2017-09-01 Jeff Law <law@redhat.com> | |
17432 | ||
17433 | PR tree-optimization/82052 | |
17434 | * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): | |
17435 | Always initialize the returned slot after a hash table miss | |
17436 | when INSERT is true. | |
17437 | ||
17438 | 2017-09-01 Alexander Monakov <amonakov@ispras.ru> | |
17439 | ||
17440 | * config/s390/s390.md (mem_signal_fence): Remove. | |
17441 | * doc/md.texi (mem_signal_fence): Remove. | |
17442 | * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence. | |
17443 | Update comments. | |
17444 | * target-insns.def (mem_signal_fence): Remove. | |
17445 | ||
17446 | 2017-09-01 Jakub Jelinek <jakub@redhat.com> | |
17447 | ||
17448 | PR sanitizer/81902 | |
17449 | * doc/invoke.texi: Document -fsanitize=pointer-overflow. | |
17450 | ||
17451 | PR sanitizer/81923 | |
17452 | * asan.c (create_odr_indicator): Strip name encoding from assembler | |
17453 | name before appending it after __odr_asan_. | |
17454 | ||
17455 | 2017-09-01 Martin Liska <mliska@suse.cz> | |
17456 | ||
17457 | PR tree-optimization/82059 | |
17458 | * gimple-ssa-isolate-paths.c (isolate_path): Add profile and | |
17459 | frequency only when an edge is redirected. | |
17460 | ||
17461 | 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com> | |
17462 | ||
17463 | * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define. | |
17464 | * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define. | |
17465 | (arc_conditional_register_usage): Remove ARC600 lp_count | |
17466 | exception. | |
17467 | (arc_file_start): Emit Tag_ARC_CPU_variation. | |
17468 | (arc_can_use_doloop_p): New conditions to use ZOLs. | |
17469 | (hwloop_fail): New function. | |
17470 | (hwloop_optimize): Likewise. | |
17471 | (hwloop_pattern_reg): Likewise. | |
17472 | (arc_doloop_hooks): New struct, to be used with reorg_loops. | |
17473 | (arc_reorg_loops): New function, calls reorg_loops. | |
17474 | (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling. | |
17475 | (arc600_corereg_hazard): Remove ZOL checking, case handled by | |
17476 | hwloop_optimize. | |
17477 | (arc_loop_hazard): Remove function, functionality moved into | |
17478 | hwloop_optimize. | |
17479 | (arc_hazard): Remove arc_loop_hazard call. | |
17480 | (arc_adjust_insn_length): Remove ZOL handling, functionality moved | |
17481 | into hwloop_optimize. | |
17482 | (arc_label_align): Remove ZOL handling. | |
17483 | * config/arc/arc.h (LOOP_ALIGN): Changed to 0. | |
17484 | * config/arc/arc.md (doloop_begin): Remove pattern. | |
17485 | (doloop_begin_i): Likewise. | |
17486 | (doloop_end_i): Likewise. | |
17487 | (doloop_fallback): Likewise. | |
17488 | (doloop_fallback_m): Likewise. | |
17489 | (doloop_end): Reimplement expand. | |
17490 | (arc_lp): New pattern for LP instruction. | |
17491 | (loop_end): New pattern. | |
17492 | (loop_fail): Likewise. | |
17493 | (decrement_and_branch_until_zero): Likewise. | |
17494 | * config/arc/arc.opt (mlpc-width): New option. | |
17495 | * doc/invoke.texi (mlpc-width): Document option. | |
17496 | ||
17497 | 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com> | |
17498 | ||
17499 | * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call. | |
17500 | (arc_ccfsm_advance): Fix checking for delay slots. | |
17501 | (arc_reorg): Add rtl dump after each call to arc_ifcvt. | |
17502 | ||
17503 | 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com> | |
17504 | ||
17505 | * config/arc/arc.md (movqi_insn): Add stores to save constant long | |
17506 | immediates. | |
17507 | (movhi_insn): Update store instruction constraint which are saving | |
17508 | 6-bit short immediates. | |
17509 | (movsi_insn): Consider also short scaled load operations. | |
17510 | (zero_extendhisi2_i): Use Usd constraint instead of T. | |
17511 | (extendhisi2_i): Add q constraint. | |
17512 | (arc_clzsi2): Add type and length attributes. | |
17513 | (arc_ctzsi2): Likewise. | |
17514 | * config/arc/constraints.md (Usc): Update constraint, the | |
17515 | assembler can parse two relocations for a single instruction. | |
17516 | ||
17517 | 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com> | |
17518 | ||
17519 | * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function. | |
17520 | (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define. | |
17521 | ||
17522 | 2017-08-31 Olivier Hainque <hainque@adacore.com> | |
17523 | ||
17524 | * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now | |
17525 | match as powerpc-wrs-vxworks*. | |
17526 | ||
17527 | 2017-08-31 James Greenhalgh <james.greenhalgh@arm.com> | |
17528 | ||
17529 | * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix | |
17530 | register constraint for by-element operand. | |
17531 | (aarch64_mls_elt_merge<mode>): Likewise. | |
17532 | ||
17533 | 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com> | |
17534 | ||
17535 | * config/arc/arc.c (arc_can_follow_jump): Check for short | |
17536 | branches. | |
17537 | ||
17538 | 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com> | |
17539 | ||
17540 | * config.gcc: Use g.opt for arc. | |
17541 | * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted, | |
17542 | functionality moved to ... | |
17543 | (legitimate_scaled_address_p): New function, ...here. | |
17544 | (LEGITIMATE_SMALL_DATA_OFFSET_P): New define. | |
17545 | (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define. | |
17546 | (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET | |
17547 | condition. | |
17548 | (arc_override_options): Handle G option. | |
17549 | (arc_output_pic_addr_const): Correct function definition. | |
17550 | (arc_legitimate_address_p): Use legitimate_scaled_address_p. | |
17551 | (arc_decl_anon_ns_mem_p): Delete. | |
17552 | (arc_in_small_data_p): Overhaul this function to take into | |
17553 | consideration the value given via G option. | |
17554 | (arc_rewrite_small_data_1): Renamed and corrected old | |
17555 | arc_rewrite_small_data function. | |
17556 | (arc_rewrite_small_data): New function. | |
17557 | (small_data_pattern): Don't use pic_offset_table_rtx. | |
17558 | * config/arc/arc.h (CC1_SPEC): Recognize G option. | |
17559 | * config/arc/simdext.md (movmisalignv2hi): Use | |
17560 | prepare_move_operands function. | |
17561 | (mov*): Likewise. | |
17562 | (movmisalign*): Likewise. | |
17563 | * doc/invoke.texi (ARC options): Document -G option. | |
17564 | ||
17565 | 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com> | |
17566 | ||
17567 | * config/arc/arc-protos.h (compact_sda_memory_operand): Update | |
17568 | prototype. | |
17569 | * config/arc/arc.c (arc_print_operand): Output scalled address for | |
17570 | sdata whenever is possible. | |
17571 | (arc_in_small_data_p): Allow sdata for 64bit datum when double | |
17572 | load/stores are available. | |
17573 | (compact_sda_memory_operand): Check for the alignment required by | |
17574 | code density instructions. | |
17575 | * config/arc/arc.md (movsi_insn): Use newly introduced Us0 | |
17576 | constraint. | |
17577 | * config/arc/constraints.md (Usd): Update constraint. | |
17578 | (Us0): New constraint. | |
17579 | (Usc): Update constraint. | |
17580 | ||
17581 | 2017-08-31 Richard Biener <rguenther@suse.de> | |
17582 | ||
17583 | PR middle-end/82054 | |
17584 | * dwarf2out.c (dwarf2out_early_global_decl): Process each | |
17585 | function only once. | |
17586 | ||
17587 | 2017-08-31 Tamar Christina <tamar.christina@arm.com> | |
17588 | ||
17589 | * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): | |
17590 | Resize type_signature. | |
17591 | ||
17592 | 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org> | |
17593 | Alan Hayward <alan.hayward@arm.com> | |
17594 | David Sherwood <david.sherwood@arm.com> | |
17595 | ||
17596 | * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow | |
17597 | subregs whose inner modes can be stored in GPRs. | |
17598 | (aarch64_classify_index): Likewise. | |
17599 | ||
17600 | 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org> | |
17601 | Alan Hayward <alan.hayward@arm.com> | |
17602 | David Sherwood <david.sherwood@arm.com> | |
17603 | ||
17604 | * config/aarch64/iterators.md (V_cmp_result): Rename to... | |
17605 | (V_INT_EQUIV): ...this. | |
17606 | (v_cmp_result): Rename to... | |
17607 | (v_int_equiv): ...this. | |
17608 | * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly. | |
17609 | * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise. | |
17610 | (copysign<mode>3): Likewise. | |
17611 | (aarch64_simd_bsl<mode>_internal): Likewise. | |
17612 | (aarch64_simd_bsl<mode>): Likewise. | |
17613 | (vec_cmp<mode><mode>): Likewise. | |
17614 | (vcond<mode><mode>): Likewise. | |
17615 | (vcond<v_cmp_mixed><mode>): Likewise. | |
17616 | (vcondu<mode><v_cmp_mixed>): Likewise. | |
17617 | (aarch64_cm<optab><mode>): Likewise. | |
17618 | (aarch64_cmtst<mode>): Likewise. | |
17619 | (aarch64_fac<optab><mode>): Likewise. | |
17620 | (vec_perm_const<mode>): Likewise. | |
17621 | (vcond_mask_<mode><v_cmp_result>): Rename to... | |
17622 | (vcond_mask_<mode><v_int_equiv>): ...this. | |
17623 | (vec_cmp<mode><v_cmp_result>): Rename to... | |
17624 | (vec_cmp<mode><v_int_equiv>): ...this. | |
17625 | ||
17626 | 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org> | |
17627 | Alan Hayward <alan.hayward@arm.com> | |
17628 | David Sherwood <david.sherwood@arm.com> | |
17629 | ||
17630 | * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte | |
17631 | vector modes. | |
17632 | * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete. | |
17633 | * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG) | |
17634 | (UNSPEC_LD4_DREG): New unspecs. | |
17635 | * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le) | |
17636 | (aarch64_ld2<mode>_dreg_be): Replace with... | |
17637 | (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG | |
17638 | unspec. | |
17639 | (aarch64_ld3<mode>_dreg_le) | |
17640 | (aarch64_ld3<mode>_dreg_be): Replace with... | |
17641 | (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG | |
17642 | unspec. | |
17643 | (aarch64_ld4<mode>_dreg_le) | |
17644 | (aarch64_ld4<mode>_dreg_be): Replace with... | |
17645 | (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG | |
17646 | unspec. | |
17647 | ||
17648 | 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
17649 | ||
17650 | PR tree-optimization/81987 | |
17651 | * gimple-ssa-strength-reduction.c (insert_initializers): Don't | |
17652 | insert an initializer in a location not dominated by the stride | |
17653 | definition. | |
17654 | ||
17655 | 2017-08-30 Eric Botcazou <ebotcazou@adacore.com> | |
17656 | ||
17657 | * tree-eh.c (lower_try_finally_switch): Set the location of the finally | |
17658 | on the entire header of the finally block in the fallthru case. | |
17659 | ||
17660 | 2017-08-30 Eric Botcazou <ebotcazou@adacore.com> | |
17661 | ||
17662 | * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>. | |
17663 | ||
17664 | 2017-08-30 Pat Haugen <pthaugen@us.ibm.com> | |
17665 | ||
17666 | * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from | |
17667 | rs6000_emit_move_from_cr and call renamed function. | |
17668 | (rs6000_emit_prologue): Call renamed functions. | |
17669 | * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from | |
17670 | movesi_from_cr, remove volatile CRs. | |
17671 | ||
17672 | 2017-08-30 Jon Beniston <jon@beniston.com> | |
17673 | Richard Biener <rguenther@suse.de> | |
17674 | ||
17675 | * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead | |
17676 | of VECTOR_MODE_P check. | |
17677 | * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single | |
17678 | element vector types. | |
17679 | ||
17680 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17681 | ||
17682 | * df.h (df_read_modify_subreg_p): Remove in favor of... | |
17683 | * rtl.h (read_modify_subreg_p): ...this new function. Take a | |
17684 | const_rtx instead of an rtx. | |
17685 | * cprop.c (local_cprop_find_used_regs): Update accordingly. | |
17686 | * df-problems.c (df_word_lr_mark_ref): Likewise. | |
17687 | * ira-lives.c (mark_pseudo_reg_live): Likewise. | |
17688 | (mark_pseudo_reg_dead): Likewise. | |
17689 | (mark_ref_dead): Likewise. | |
17690 | * reginfo.c (init_subregs_of_mode): Likewise. | |
17691 | * sched-deps.c (sched_analyze_1): Likewise. | |
17692 | * df-scan.c (df_def_record_1): Likewise. | |
17693 | (df_uses_record): Likewise. | |
17694 | (df_read_modify_subreg_p): Remove in favor of... | |
17695 | * rtlanal.c (read_modify_subreg_p): ...this new function. Take a | |
17696 | const_rtx instead of an rtx. | |
17697 | ||
17698 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17699 | Alan Hayward <alan.hayward@arm.com> | |
17700 | David Sherwood <david.sherwood@arm.com> | |
17701 | ||
17702 | * rtl.h (partial_subreg_p): New function. | |
17703 | * caller-save.c (save_call_clobbered_regs): Use it. | |
17704 | * calls.c (expand_call): Likewise. | |
17705 | * combine.c (combinable_i3pat): Likewise. | |
17706 | (simplify_set): Likewise. | |
17707 | (make_extraction): Likewise. | |
17708 | (make_compound_operation_int): Likewise. | |
17709 | (gen_lowpart_or_truncate): Likewise. | |
17710 | (force_to_mode): Likewise. | |
17711 | (make_field_assignment): Likewise. | |
17712 | (reg_truncated_to_mode): Likewise. | |
17713 | (record_truncated_value): Likewise. | |
17714 | (move_deaths): Likewise. | |
17715 | * cse.c (record_jump_cond): Likewise. | |
17716 | (cse_insn): Likewise. | |
17717 | * cselib.c (cselib_lookup_1): Likewise. | |
17718 | * expmed.c (extract_bit_field_using_extv): Likewise. | |
17719 | * function.c (assign_parm_setup_reg): Likewise. | |
17720 | * ifcvt.c (noce_convert_multiple_sets): Likewise. | |
17721 | * ira-build.c (create_insn_allocnos): Likewise. | |
17722 | * lra-coalesce.c (merge_pseudos): Likewise. | |
17723 | * lra-constraints.c (match_reload): Likewise. | |
17724 | (simplify_operand_subreg): Likewise. | |
17725 | (curr_insn_transform): Likewise. | |
17726 | * lra-lives.c (process_bb_lives): Likewise. | |
17727 | * lra.c (new_insn_reg): Likewise. | |
17728 | (lra_substitute_pseudo): Likewise. | |
17729 | * regcprop.c (mode_change_ok): Likewise. | |
17730 | (maybe_mode_change): Likewise. | |
17731 | (copyprop_hardreg_forward_1): Likewise. | |
17732 | * reload.c (push_reload): Likewise. | |
17733 | (find_reloads): Likewise. | |
17734 | (find_reloads_subreg_address): Likewise. | |
17735 | * reload1.c (alter_reg): Likewise. | |
17736 | (eliminate_regs_1): Likewise. | |
17737 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
17738 | ||
17739 | 2017-08-30 David Edelsohn <dje.gcc@gmail.com> | |
17740 | ||
17741 | * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert | |
17742 | back to if statements, including unpack. | |
17743 | ||
17744 | 2017-08-30 Martin Liska <mliska@suse.cz> | |
17745 | ||
17746 | PR inline-asm/82001 | |
17747 | * ipa-icf-gimple.c (func_checker::compare_tree_list_operand): | |
17748 | Rename to ... | |
17749 | (func_checker::compare_asm_inputs_outputs): ... this function. | |
17750 | (func_checker::compare_gimple_asm): Use the function to compare | |
17751 | also ASM constrains. | |
17752 | * ipa-icf-gimple.h: Rename the function. | |
17753 | ||
17754 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17755 | Alan Hayward <alan.hayward@arm.com> | |
17756 | David Sherwood <david.sherwood@arm.com> | |
17757 | ||
17758 | * coretypes.h (complex_mode): New type. | |
17759 | * gdbhooks.py (build_pretty_printer): Handle it. | |
17760 | * machmode.h (complex_mode): New class. | |
17761 | (complex_mode::includes_p): New function. | |
17762 | (is_complex_int_mode): Likewise. | |
17763 | (is_complex_float_mode): Likewise. | |
17764 | * genmodes.c (get_mode_class): Handle complex mode classes. | |
17765 | * function.c (expand_function_end): Use is_complex_int_mode. | |
17766 | ||
17767 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17768 | Alan Hayward <alan.hayward@arm.com> | |
17769 | David Sherwood <david.sherwood@arm.com> | |
17770 | ||
17771 | * coretypes.h (scalar_mode_pod): New typedef. | |
17772 | * gdbhooks.py (build_pretty_printer): Handle it. | |
17773 | * machmode.h (gt_ggc_mx, gt_pch_nx): New functions. | |
17774 | * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod. | |
17775 | * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode. | |
17776 | * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use | |
17777 | as_a <scalar_mode>. | |
17778 | ||
17779 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17780 | Alan Hayward <alan.hayward@arm.com> | |
17781 | David Sherwood <david.sherwood@arm.com> | |
17782 | ||
17783 | * machmode.h (mode_for_vector): Take a scalar_mode instead | |
17784 | of a machine_mode. | |
17785 | * stor-layout.c (mode_for_vector): Likewise. | |
17786 | * explow.c (promote_mode): Use as_a <scalar_mode>. | |
17787 | * sdbout.c (sdbout_parms): Use is_a <scalar_mode>. | |
17788 | ||
17789 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17790 | Alan Hayward <alan.hayward@arm.com> | |
17791 | David Sherwood <david.sherwood@arm.com> | |
17792 | ||
17793 | * target.def (preferred_simd_mode): Take a scalar_mode | |
17794 | instead of a machine_mode. | |
17795 | * targhooks.h (default_preferred_simd_mode): Likewise. | |
17796 | * targhooks.c (default_preferred_simd_mode): Likewise. | |
17797 | * config/arc/arc.c (arc_preferred_simd_mode): Likewise. | |
17798 | * config/arm/arm.c (arm_preferred_simd_mode): Likewise. | |
17799 | * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise. | |
17800 | * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise. | |
17801 | * config/i386/i386.c (ix86_preferred_simd_mode): Likewise. | |
17802 | * config/mips/mips.c (mips_preferred_simd_mode): Likewise. | |
17803 | * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise. | |
17804 | * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode): | |
17805 | Likewise. | |
17806 | * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise. | |
17807 | * config/s390/s390.c (s390_preferred_simd_mode): Likewise. | |
17808 | * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise. | |
17809 | * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise. | |
17810 | (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly. | |
17811 | * doc/tm.texi: Regenerate. | |
17812 | * optabs-query.c (can_vec_mask_load_store_p): Return false for | |
17813 | non-scalar modes. | |
17814 | ||
17815 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17816 | Alan Hayward <alan.hayward@arm.com> | |
17817 | David Sherwood <david.sherwood@arm.com> | |
17818 | ||
17819 | * target.def (scalar_mode_supported_p): Take a scalar_mode | |
17820 | instead of a machine_mode. | |
17821 | * targhooks.h (default_scalar_mode_supported_p): Likewise. | |
17822 | * targhooks.c (default_scalar_mode_supported_p): Likewise. | |
17823 | * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise. | |
17824 | * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise. | |
17825 | * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise. | |
17826 | * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise. | |
17827 | * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise. | |
17828 | * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise. | |
17829 | * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise. | |
17830 | * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise. | |
17831 | * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise. | |
17832 | * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise. | |
17833 | * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise. | |
17834 | * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p): | |
17835 | Likewise. | |
17836 | * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise. | |
17837 | * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise. | |
17838 | * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise. | |
17839 | * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise. | |
17840 | * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): | |
17841 | Likewise. | |
17842 | * doc/tm.texi: Regenerate. | |
17843 | ||
17844 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17845 | Alan Hayward <alan.hayward@arm.com> | |
17846 | David Sherwood <david.sherwood@arm.com> | |
17847 | ||
17848 | * coretypes.h (opt_scalar_mode): New typedef. | |
17849 | * gdbhooks.py (build_pretty_printers): Handle it. | |
17850 | * machmode.h (mode_iterator::get_2xwider): Add overload for | |
17851 | opt_mode<T>. | |
17852 | * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating | |
17853 | over scalar modes. | |
17854 | * expr.c (convert_mode_scalar): Likewise. | |
17855 | * omp-low.c (omp_clause_aligned_alignment): Likewise. | |
17856 | * optabs.c (expand_float): Likewise. | |
17857 | (expand_fix): Likewise. | |
17858 | * tree-vect-stmts.c (vectorizable_conversion): Likewise. | |
17859 | ||
17860 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17861 | Alan Hayward <alan.hayward@arm.com> | |
17862 | David Sherwood <david.sherwood@arm.com> | |
17863 | ||
17864 | * optabs.c (expand_float): Explicitly check for scalars before | |
17865 | using a branching expansion. | |
17866 | (expand_fix): Likewise. | |
17867 | ||
17868 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17869 | Alan Hayward <alan.hayward@arm.com> | |
17870 | David Sherwood <david.sherwood@arm.com> | |
17871 | ||
17872 | * expr.c (convert_mode): Split scalar handling out into... | |
17873 | (convert_mode_scalar): ...this new function. Treat the modes | |
17874 | as scalar_modes. | |
17875 | ||
17876 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17877 | Alan Hayward <alan.hayward@arm.com> | |
17878 | David Sherwood <david.sherwood@arm.com> | |
17879 | ||
17880 | * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode | |
17881 | and scalar_mode. | |
17882 | * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise. | |
17883 | ||
17884 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17885 | Alan Hayward <alan.hayward@arm.com> | |
17886 | David Sherwood <david.sherwood@arm.com> | |
17887 | ||
17888 | * fixed-value.h (fixed_from_double_int): Take a scalar_mode | |
17889 | rather than a machine_mode. | |
17890 | (fixed_from_string): Likewise. | |
17891 | (fixed_convert): Likewise. | |
17892 | (fixed_convert_from_int): Likewise. | |
17893 | (fixed_convert_from_real): Likewise. | |
17894 | (real_convert_from_fixed): Likewise. | |
17895 | * fixed-value.c (fixed_from_double_int): Likewise. | |
17896 | (fixed_from_string): Likewise. | |
17897 | (fixed_convert): Likewise. | |
17898 | (fixed_convert_from_int): Likewise. | |
17899 | (fixed_convert_from_real): Likewise. | |
17900 | (real_convert_from_fixed): Likewise. | |
17901 | * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>. | |
17902 | ||
17903 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17904 | Alan Hayward <alan.hayward@arm.com> | |
17905 | David Sherwood <david.sherwood@arm.com> | |
17906 | ||
17907 | * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead | |
17908 | of separate mode class checks. Do not allow vector modes here. | |
17909 | (immed_wide_int_const): Use as_a <scalar_mode>. | |
17910 | * explow.c (trunc_int_for_mode): Likewise. | |
17911 | * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise. | |
17912 | (wi::shwi): Likewise. | |
17913 | (wi::min_value): Likewise. | |
17914 | (wi::max_value): Likewise. | |
17915 | * dwarf2out.c (loc_descriptor): Likewise. | |
17916 | * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument | |
17917 | for CONST_WIDE_INT. | |
17918 | ||
17919 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17920 | Alan Hayward <alan.hayward@arm.com> | |
17921 | David Sherwood <david.sherwood@arm.com> | |
17922 | ||
17923 | * tree.h (SCALAR_TYPE_MODE): New macro. | |
17924 | * expr.c (expand_expr_addr_expr_1): Use it. | |
17925 | (expand_expr_real_2): Likewise. | |
17926 | * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise. | |
17927 | (fold_convert_const_fixed_from_int): Likewise. | |
17928 | (fold_convert_const_fixed_from_real): Likewise. | |
17929 | (native_encode_fixed): Likewise | |
17930 | (native_encode_complex): Likewise | |
17931 | (native_encode_vector): Likewise. | |
17932 | (native_interpret_fixed): Likewise. | |
17933 | (native_interpret_real): Likewise. | |
17934 | (native_interpret_complex): Likewise. | |
17935 | (native_interpret_vector): Likewise. | |
17936 | * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise. | |
17937 | (simd_clone_adjust_argument_types): Likewise. | |
17938 | (simd_clone_init_simd_arrays): Likewise. | |
17939 | (simd_clone_adjust): Likewise. | |
17940 | * stor-layout.c (layout_type): Likewise. | |
17941 | * tree.c (build_minus_one_cst): Likewise. | |
17942 | * tree-cfg.c (verify_gimple_assign_ternary): Likewise. | |
17943 | * tree-inline.c (estimate_move_cost): Likewise. | |
17944 | * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise. | |
17945 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise. | |
17946 | (vectorizable_reduction): Likewise. | |
17947 | * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise. | |
17948 | (vect_recog_mixed_size_cond_pattern): Likewise. | |
17949 | (check_bool_pattern): Likewise. | |
17950 | (adjust_bool_pattern): Likewise. | |
17951 | (search_type_for_mask_1): Likewise. | |
17952 | * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. | |
17953 | * tree-vect-stmts.c (vectorizable_conversion): Likewise. | |
17954 | (vectorizable_load): Likewise. | |
17955 | (vectorizable_store): Likewise. | |
17956 | * ubsan.c (ubsan_encode_value): Likewise. | |
17957 | * varasm.c (output_constant): Likewise. | |
17958 | ||
17959 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17960 | Alan Hayward <alan.hayward@arm.com> | |
17961 | David Sherwood <david.sherwood@arm.com> | |
17962 | ||
17963 | * coretypes.h (scalar_mode): New class. | |
17964 | * machmode.h (scalar_mode): Likewise. | |
17965 | (scalar_mode::includes_p): New function. | |
17966 | (mode_to_inner): Return a scalar_mode rather than a machine_mode. | |
17967 | * gdbhooks.py (build_pretty_printers): Handle scalar_mode. | |
17968 | * genmodes.c (get_mode_class): Handle remaining scalar modes. | |
17969 | * cfgexpand.c (expand_debug_expr): Use scalar_mode. | |
17970 | * expmed.c (store_bit_field_1): Likewise. | |
17971 | (extract_bit_field_1): Likewise. | |
17972 | * expr.c (write_complex_part): Likewise. | |
17973 | (read_complex_part): Likewise. | |
17974 | (emit_move_complex_push): Likewise. | |
17975 | (expand_expr_real_2): Likewise. | |
17976 | * function.c (assign_parm_setup_reg): Likewise. | |
17977 | (assign_parms_unsplit_complex): Likewise. | |
17978 | * optabs.c (expand_binop): Likewise. | |
17979 | * rtlanal.c (subreg_get_info): Likewise. | |
17980 | * simplify-rtx.c (simplify_immed_subreg): Likewise. | |
17981 | * varasm.c (output_constant_pool_2): Likewise. | |
17982 | ||
17983 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17984 | Alan Hayward <alan.hayward@arm.com> | |
17985 | David Sherwood <david.sherwood@arm.com> | |
17986 | ||
17987 | * expmed.c (extract_high_half): Use scalar_int_mode and remove | |
17988 | assertion. | |
17989 | (expmed_mult_highpart_optab): Likewise. | |
17990 | (expmed_mult_highpart): Likewise. | |
17991 | ||
17992 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
17993 | Alan Hayward <alan.hayward@arm.com> | |
17994 | David Sherwood <david.sherwood@arm.com> | |
17995 | ||
17996 | * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode | |
17997 | instead of a machine_mode. | |
17998 | (builtin_memset_read_str): Likewise. | |
17999 | * builtins.c (c_readstr): Likewise. | |
18000 | (builtin_memcpy_read_str): Likewise. | |
18001 | (builtin_strncpy_read_str): Likewise. | |
18002 | (builtin_memset_read_str): Likewise. | |
18003 | (builtin_memset_gen_str): Likewise. | |
18004 | (expand_builtin_signbit): Use scalar_int_mode for local variables. | |
18005 | * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode | |
18006 | instead of a machine_mode. | |
18007 | * combine.c (simplify_if_then_else): Use scalar_int_mode for local | |
18008 | variables. | |
18009 | (make_extraction): Likewise. | |
18010 | (try_widen_shift_mode): Take and return scalar_int_modes instead | |
18011 | of machine_modes. | |
18012 | * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return | |
18013 | a scalar_int_mode instead of a machine_mode. | |
18014 | * config/avr/avr.c (avr_addr_space_address_mode): Likewise. | |
18015 | (avr_addr_space_pointer_mode): Likewise. | |
18016 | * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise. | |
18017 | * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise. | |
18018 | (msp430_unwind_word_mode): Likewise. | |
18019 | * config/spu/spu.c (spu_unwind_word_mode): Likewise. | |
18020 | (spu_addr_space_pointer_mode): Likewise. | |
18021 | (spu_addr_space_address_mode): Likewise. | |
18022 | (spu_libgcc_cmp_return_mode): Likewise. | |
18023 | (spu_libgcc_shift_count_mode): Likewise. | |
18024 | * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise. | |
18025 | (rl78_addr_space_pointer_mode): Likewise. | |
18026 | (fl78_unwind_word_mode): Likewise. | |
18027 | (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a | |
18028 | machine_mode. | |
18029 | * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise. | |
18030 | * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise. | |
18031 | * config/mips/mips.c (mips_mode_rep_extended): Likewise. | |
18032 | (mips_valid_pointer_mode): Likewise. | |
18033 | * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise. | |
18034 | * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise. | |
18035 | (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead | |
18036 | of a machine_mode. | |
18037 | (ft32_addr_space_address_mode): Likewise. | |
18038 | * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a | |
18039 | scalar_int_mode instead of a machine_mode. | |
18040 | (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead | |
18041 | of a machine_mode. | |
18042 | (m32c_addr_space_address_mode): Likewise. | |
18043 | * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise. | |
18044 | (rs6000_eh_return_filter_mode): Likewise. | |
18045 | * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise. | |
18046 | (rs6000_eh_return_filter_mode): Likewise. | |
18047 | * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise. | |
18048 | (s390_libgcc_shift_count_mode): Likewise. | |
18049 | (s390_unwind_word_mode): Likewise. | |
18050 | (s390_valid_pointer_mode): Take a scalar_int_mode rather than a | |
18051 | machine_mode. | |
18052 | * target.def (mode_rep_extended): Likewise. | |
18053 | (valid_pointer_mode): Likewise. | |
18054 | (addr_space.valid_pointer_mode): Likewise. | |
18055 | (eh_return_filter_mode): Return a scalar_int_mode rather than | |
18056 | a machine_mode. | |
18057 | (libgcc_cmp_return_mode): Likewise. | |
18058 | (libgcc_shift_count_mode): Likewise. | |
18059 | (unwind_word_mode): Likewise. | |
18060 | (addr_space.pointer_mode): Likewise. | |
18061 | (addr_space.address_mode): Likewise. | |
18062 | * doc/tm.texi: Regenerate. | |
18063 | * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than | |
18064 | a machine_mode. | |
18065 | (do_jump): Use scalar_int_mode for local variables. | |
18066 | * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode | |
18067 | rather than a machine_mode. | |
18068 | * dwarf2out.c (convert_descriptor_to_mode): Likewise. | |
18069 | (scompare_loc_descriptor_wide): Likewise. | |
18070 | (scompare_loc_descriptor_narrow): Likewise. | |
18071 | * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local | |
18072 | variables. | |
18073 | * except.c (sjlj_emit_dispatch_table): Likewise. | |
18074 | (expand_builtin_eh_copy_values): Likewise. | |
18075 | * explow.c (convert_memory_address_addr_space_1): Likewise. | |
18076 | Take a scalar_int_mode rather than a machine_mode. | |
18077 | (convert_memory_address_addr_space): Take a scalar_int_mode rather | |
18078 | than a machine_mode. | |
18079 | (memory_address_addr_space): Use scalar_int_mode for local variables. | |
18080 | * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode | |
18081 | rather than a machine_mode. | |
18082 | * expmed.c (mask_rtx): Likewise. | |
18083 | (init_expmed_one_conv): Likewise. | |
18084 | (expand_mult_highpart_adjust): Likewise. | |
18085 | (extract_high_half): Likewise. | |
18086 | (expmed_mult_highpart_optab): Likewise. | |
18087 | (expmed_mult_highpart): Likewise. | |
18088 | (expand_smod_pow2): Likewise. | |
18089 | (expand_sdiv_pow2): Likewise. | |
18090 | (emit_store_flag_int): Likewise. | |
18091 | (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local | |
18092 | variables. | |
18093 | (extract_low_bits): Likewise. | |
18094 | * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than | |
18095 | a machine_mode. | |
18096 | * expr.c (pieces_addr::adjust): Likewise. | |
18097 | (can_store_by_pieces): Likewise. | |
18098 | (store_by_pieces): Likewise. | |
18099 | (clear_by_pieces_1): Likewise. | |
18100 | (expand_expr_addr_expr_1): Likewise. | |
18101 | (expand_expr_addr_expr): Use scalar_int_mode for local variables. | |
18102 | (expand_expr_real_1): Likewise. | |
18103 | (try_casesi): Likewise. | |
18104 | * final.c (shorten_branches): Likewise. | |
18105 | * fold-const.c (fold_convert_const_int_from_fixed): Change the | |
18106 | type of "mode" to machine_mode. | |
18107 | * internal-fn.c (expand_arith_overflow_result_store): Take a | |
18108 | scalar_int_mode rather than a machine_mode. | |
18109 | (expand_mul_overflow): Use scalar_int_mode for local variables. | |
18110 | * loop-doloop.c (doloop_modify): Likewise. | |
18111 | (doloop_optimize): Likewise. | |
18112 | * optabs.c (expand_subword_shift): Take a scalar_int_mode rather | |
18113 | than a machine_mode. | |
18114 | (expand_doubleword_shift_condmove): Likewise. | |
18115 | (expand_doubleword_shift): Likewise. | |
18116 | (expand_doubleword_clz): Likewise. | |
18117 | (expand_doubleword_popcount): Likewise. | |
18118 | (expand_doubleword_parity): Likewise. | |
18119 | (expand_absneg_bit): Use scalar_int_mode for local variables. | |
18120 | (prepare_float_lib_cmp): Likewise. | |
18121 | * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode | |
18122 | rather than a machine_mode. | |
18123 | (convert_memory_address_addr_space): Likewise. | |
18124 | (get_mode_bounds): Likewise. | |
18125 | (get_address_mode): Return a scalar_int_mode rather than a | |
18126 | machine_mode. | |
18127 | * rtlanal.c (get_address_mode): Likewise. | |
18128 | * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather | |
18129 | than a machine_mode. | |
18130 | * targhooks.c (default_mode_rep_extended): Likewise. | |
18131 | (default_valid_pointer_mode): Likewise. | |
18132 | (default_addr_space_valid_pointer_mode): Likewise. | |
18133 | (default_eh_return_filter_mode): Return a scalar_int_mode rather | |
18134 | than a machine_mode. | |
18135 | (default_libgcc_cmp_return_mode): Likewise. | |
18136 | (default_libgcc_shift_count_mode): Likewise. | |
18137 | (default_unwind_word_mode): Likewise. | |
18138 | (default_addr_space_pointer_mode): Likewise. | |
18139 | (default_addr_space_address_mode): Likewise. | |
18140 | * targhooks.h (default_eh_return_filter_mode): Likewise. | |
18141 | (default_libgcc_cmp_return_mode): Likewise. | |
18142 | (default_libgcc_shift_count_mode): Likewise. | |
18143 | (default_unwind_word_mode): Likewise. | |
18144 | (default_addr_space_pointer_mode): Likewise. | |
18145 | (default_addr_space_address_mode): Likewise. | |
18146 | (default_mode_rep_extended): Take a scalar_int_mode rather than | |
18147 | a machine_mode. | |
18148 | (default_valid_pointer_mode): Likewise. | |
18149 | (default_addr_space_valid_pointer_mode): Likewise. | |
18150 | * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for | |
18151 | local variables. | |
18152 | * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode | |
18153 | rather than a machine_mode. | |
18154 | * tree-switch-conversion.c (array_value_type): Use scalar_int_mode | |
18155 | for local variables. | |
18156 | * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. | |
18157 | * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather | |
18158 | than a machine_mode. | |
18159 | ||
18160 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18161 | Alan Hayward <alan.hayward@arm.com> | |
18162 | David Sherwood <david.sherwood@arm.com> | |
18163 | ||
18164 | * dojump.c (do_jump_by_parts_greater_rtx): Change the type of | |
18165 | the mode argument to scalar_int_mode. | |
18166 | (do_jump_by_parts_zero_rtx): Likewise. | |
18167 | (do_jump_by_parts_equality_rtx): Likewise. | |
18168 | (do_jump_by_parts_greater): Take a mode argument. | |
18169 | (do_jump_by_parts_equality): Likewise. | |
18170 | (do_jump_1): Update calls accordingly. | |
18171 | ||
18172 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18173 | Alan Hayward <alan.hayward@arm.com> | |
18174 | David Sherwood <david.sherwood@arm.com> | |
18175 | ||
18176 | * is-a.h (safe_dyn_cast): New function. | |
18177 | * rtl.h (rtx_jump_table_data::get_data_mode): New function. | |
18178 | (jump_table_for_label): Likewise. | |
18179 | * final.c (final_addr_vec_align): Take an rtx_jump_table_data * | |
18180 | instead of an rtx_insn *. | |
18181 | (shorten_branches): Use dyn_cast instead of LABEL_P and | |
18182 | JUMP_TABLE_DATA_P. Use jump_table_for_label and | |
18183 | rtx_jump_table_data::get_data_mode. | |
18184 | (final_scan_insn): Likewise. | |
18185 | ||
18186 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18187 | Alan Hayward <alan.hayward@arm.com> | |
18188 | David Sherwood <david.sherwood@arm.com> | |
18189 | ||
18190 | * combine.c (try_combine): Use is_a <scalar_int_mode> when | |
18191 | trying to combine a full-register integer set with a subreg | |
18192 | integer set. | |
18193 | ||
18194 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18195 | Alan Hayward <alan.hayward@arm.com> | |
18196 | David Sherwood <david.sherwood@arm.com> | |
18197 | ||
18198 | * expr.c (expand_expr_addr_expr): Add a new_tmode local variable | |
18199 | that is always either address_mode or pointer_mode. | |
18200 | ||
18201 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18202 | Alan Hayward <alan.hayward@arm.com> | |
18203 | David Sherwood <david.sherwood@arm.com> | |
18204 | ||
18205 | * expr.c (expand_expr_real_2): Use word_mode instead of innermode | |
18206 | when the two are known to be equal. | |
18207 | ||
18208 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18209 | Alan Hayward <alan.hayward@arm.com> | |
18210 | David Sherwood <david.sherwood@arm.com> | |
18211 | ||
18212 | * simplify-rtx.c (simplify_const_unary_operation): Use | |
18213 | is_a <scalar_int_mode> instead of checking for a nonzero | |
18214 | precision. Forcibly convert op_mode to a scalar_int_mode | |
18215 | in that case. More clearly differentiate the operand and | |
18216 | result modes and use the former when deciding what the value | |
18217 | of a count-bits operation should be. Use is_int_mode instead | |
18218 | of checking for a MODE_INT. Remove redundant check for whether | |
18219 | this mode has a zero precision. | |
18220 | ||
18221 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18222 | Alan Hayward <alan.hayward@arm.com> | |
18223 | David Sherwood <david.sherwood@arm.com> | |
18224 | ||
18225 | * optabs.c (widen_leading): Change the type of the mode argument | |
18226 | to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator. | |
18227 | (widen_bswap): Likewise. | |
18228 | (expand_parity): Likewise. | |
18229 | (expand_ctz): Change the type of the mode argument to scalar_int_mode. | |
18230 | (expand_ffs): Likewise. | |
18231 | (epand_unop): Check for scalar integer modes before calling the | |
18232 | above routines. | |
18233 | ||
18234 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18235 | Alan Hayward <alan.hayward@arm.com> | |
18236 | David Sherwood <david.sherwood@arm.com> | |
18237 | ||
18238 | * expr.c (const_scalar_mask_from_tree): Add a mode argument. | |
18239 | Expand commentary. | |
18240 | (expand_expr_real_1): Update call accordingly. | |
18241 | ||
18242 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18243 | Alan Hayward <alan.hayward@arm.com> | |
18244 | David Sherwood <david.sherwood@arm.com> | |
18245 | ||
18246 | * expmed.c (store_bit_field_using_insv): Add op0_mode and | |
18247 | value_mode arguments. Use scalar_int_mode internally. | |
18248 | (store_bit_field_1): Rename the new integer mode from imode | |
18249 | to op0_mode and use it instead of GET_MODE (op0). Update calls | |
18250 | to store_split_bit_field, store_bit_field_using_insv and | |
18251 | store_fixed_bit_field. | |
18252 | (store_fixed_bit_field): Add op0_mode and value_mode arguments. | |
18253 | Use scalar_int_mode internally. Use a bit count rather than a mode | |
18254 | when calculating the largest bit size for get_best_mode. | |
18255 | Update calls to store_split_bit_field and store_fixed_bit_field_1. | |
18256 | (store_fixed_bit_field_1): Add mode and value_mode arguments. | |
18257 | Remove assertion that OP0 has a scalar integer mode. | |
18258 | (store_split_bit_field): Add op0_mode and value_mode arguments. | |
18259 | Update calls to extract_fixed_bit_field. | |
18260 | (extract_bit_field_using_extv): Add an op0_mode argument. | |
18261 | Use scalar_int_mode internally. | |
18262 | (extract_bit_field_1): Rename the new integer mode from imode to | |
18263 | op0_mode and use it instead of GET_MODE (op0). Update calls to | |
18264 | extract_split_bit_field, extract_bit_field_using_extv and | |
18265 | extract_fixed_bit_field. | |
18266 | (extract_fixed_bit_field): Add an op0_mode argument. Update calls | |
18267 | to extract_split_bit_field and extract_fixed_bit_field_1. | |
18268 | (extract_fixed_bit_field_1): Add a mode argument. Remove assertion | |
18269 | that OP0 has a scalar integer mode. Use as_a <scalar_int_mode> | |
18270 | on the target mode. | |
18271 | (extract_split_bit_field): Add an op0_mode argument. Update call | |
18272 | to extract_fixed_bit_field. | |
18273 | ||
18274 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18275 | Alan Hayward <alan.hayward@arm.com> | |
18276 | David Sherwood <david.sherwood@arm.com> | |
18277 | ||
18278 | * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator. | |
18279 | * explow.c (hard_function_value): Likewise. | |
18280 | * expmed.c (extract_fixed_bit_field_1): Likewise. Move the | |
18281 | convert_to_mode call outside the loop. | |
18282 | * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode | |
18283 | for the mode iterator. Require the mode specified by max_pieces | |
18284 | to exist. | |
18285 | (emit_block_move_via_movmem): Use opt_scalar_int_mode for the | |
18286 | mode iterator. | |
18287 | (copy_blkmode_to_reg): Likewise. | |
18288 | (set_storage_via_setmem): Likewise. | |
18289 | * optabs.c (prepare_cmp_insn): Likewise. | |
18290 | * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise. | |
18291 | * stor-layout.c (finish_bitfield_representative): Likewise. | |
18292 | ||
18293 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18294 | Alan Hayward <alan.hayward@arm.com> | |
18295 | David Sherwood <david.sherwood@arm.com> | |
18296 | ||
18297 | * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions. | |
18298 | * expr.c (convert_move): Use them. | |
18299 | (convert_modes): Likewise. | |
18300 | (store_expr_with_bounds): Likewise. | |
18301 | ||
18302 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18303 | Alan Hayward <alan.hayward@arm.com> | |
18304 | David Sherwood <david.sherwood@arm.com> | |
18305 | ||
18306 | * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode | |
18307 | parameter for the mode of "x". Remove the "known_x", "known_mode" | |
18308 | and "known_ret" arguments. Change the type of the mode argument | |
18309 | to scalar_int_mode. | |
18310 | (rtl_hooks:reg_num_sign_bit_copies): Likewise. | |
18311 | * combine.c (reg_nonzero_bits_for_combine): Update accordingly. | |
18312 | (reg_num_sign_bit_copies_for_combine): Likewise. | |
18313 | * rtlanal.c (nonzero_bits1): Likewise. | |
18314 | (num_sign_bit_copies1): Likewise. | |
18315 | * rtlhooks-def.h (reg_nonzero_bits_general): Likewise. | |
18316 | (reg_num_sign_bit_copies_general): Likewise. | |
18317 | * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise. | |
18318 | (reg_nonzero_bits_general): Likewise. | |
18319 | ||
18320 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18321 | Alan Hayward <alan.hayward@arm.com> | |
18322 | David Sherwood <david.sherwood@arm.com> | |
18323 | ||
18324 | * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather | |
18325 | than in subroutines. Return 1 for non-integer modes. | |
18326 | (cached_num_sign_bit_copies): Change the type of the mode parameter | |
18327 | to scalar_int_mode. | |
18328 | (num_sign_bit_copies1): Likewise. Remove early exit for other mode | |
18329 | classes. Handle CONST_INT_P first and then check whether X also | |
18330 | has a scalar integer mode. Check the same thing for inner registers | |
18331 | of a SUBREG and for values that are being extended or truncated. | |
18332 | ||
18333 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18334 | Alan Hayward <alan.hayward@arm.com> | |
18335 | David Sherwood <david.sherwood@arm.com> | |
18336 | ||
18337 | * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than | |
18338 | in subroutines. Return the mode mask for non-integer modes. | |
18339 | (cached_nonzero_bits): Change the type of the mode parameter | |
18340 | to scalar_int_mode. | |
18341 | (nonzero_bits1): Likewise. Remove early exit for other mode | |
18342 | classes. Handle CONST_INT_P first and then check whether X | |
18343 | also has a scalar integer mode. | |
18344 | ||
18345 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18346 | Alan Hayward <alan.hayward@arm.com> | |
18347 | David Sherwood <david.sherwood@arm.com> | |
18348 | ||
18349 | * expr.c (widest_int_mode_for_size): Make the comment match the code. | |
18350 | Return a scalar_int_mode and assert that the size is greater than | |
18351 | one byte. | |
18352 | (by_pieces_ninsns): Update accordingly and remove VOIDmode handling. | |
18353 | (op_by_pieces_d::op_by_pieces_d): Likewise. | |
18354 | (op_by_pieces_d::run): Likewise. | |
18355 | (can_store_by_pieces): Likewise. | |
18356 | ||
18357 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18358 | Alan Hayward <alan.hayward@arm.com> | |
18359 | David Sherwood <david.sherwood@arm.com> | |
18360 | ||
18361 | * combine.c (extract_left_shift): Add a mode argument and update | |
18362 | recursive calls. | |
18363 | (make_compound_operation_int): Change the type of the mode parameter | |
18364 | to scalar_int_mode and update the call to extract_left_shift. | |
18365 | ||
18366 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18367 | Alan Hayward <alan.hayward@arm.com> | |
18368 | David Sherwood <david.sherwood@arm.com> | |
18369 | ||
18370 | * combine.c (simplify_and_const_int): Change the type of the mode | |
18371 | parameter to scalar_int_mode. | |
18372 | (simplify_and_const_int_1): Likewise. Update recursive call. | |
18373 | ||
18374 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18375 | Alan Hayward <alan.hayward@arm.com> | |
18376 | David Sherwood <david.sherwood@arm.com> | |
18377 | ||
18378 | * combine.c (simplify_compare_const): Check that the mode is a | |
18379 | scalar_int_mode (rather than VOIDmode) before testing its | |
18380 | precision. | |
18381 | (simplify_comparison): Move COMPARISON_P handling out of the | |
18382 | loop and restrict the latter part of the loop to scalar_int_modes. | |
18383 | Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P | |
18384 | and when considering SUBREG_REGs. Use is_int_mode instead of | |
18385 | checking GET_MODE_CLASS against MODE_INT. | |
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 | * combine.c (try_widen_shift_mode): Move check for equal modes to... | |
18392 | (simplify_shift_const_1): ...here. Use scalar_int_mode for | |
18393 | shift_unit_mode and for modes involved in scalar shifts. | |
18394 | ||
18395 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18396 | Alan Hayward <alan.hayward@arm.com> | |
18397 | David Sherwood <david.sherwood@arm.com> | |
18398 | ||
18399 | * combine.c (force_int_to_mode): New function, split out from... | |
18400 | (force_to_mode): ...here. Keep xmode up-to-date and use it | |
18401 | instead of GET_MODE (x). | |
18402 | ||
18403 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18404 | Alan Hayward <alan.hayward@arm.com> | |
18405 | David Sherwood <david.sherwood@arm.com> | |
18406 | ||
18407 | * optabs-query.h (extraction_insn::struct_mode): Change type to | |
18408 | opt_scalar_int_mode and update comment. | |
18409 | (extraction_insn::field_mode): Change type to scalar_int_mode. | |
18410 | (extraction_insn::pos_mode): Likewise. | |
18411 | * combine.c (make_extraction): Update accordingly. | |
18412 | * optabs-query.c (get_traditional_extraction_insn): Likewise. | |
18413 | (get_optab_extraction_insn): Likewise. | |
18414 | * recog.c (simplify_while_replacing): Likewise. | |
18415 | * expmed.c (narrow_bit_field_mem): Change the type of the mode | |
18416 | parameter to opt_scalar_int_mode. | |
18417 | ||
18418 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18419 | Alan Hayward <alan.hayward@arm.com> | |
18420 | David Sherwood <david.sherwood@arm.com> | |
18421 | ||
18422 | * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer | |
18423 | to a scalar_int_mode instead of a machine_mode. | |
18424 | (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode. | |
18425 | (get_best_mode): Return a boolean and use a pointer argument to store | |
18426 | the selected mode. Replace the limit mode parameter with a bit limit. | |
18427 | * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode | |
18428 | for the values returned by bit_field_mode_iterator::next_mode. | |
18429 | (store_bit_field): Update call to get_best_mode. | |
18430 | (store_fixed_bit_field): Likewise. | |
18431 | (extract_fixed_bit_field): Likewise. | |
18432 | * expr.c (optimize_bitfield_assignment_op): Likewise. | |
18433 | * fold-const.c (optimize_bit_field_compare): Likewise. | |
18434 | (fold_truth_andor_1): Likewise. | |
18435 | * stor-layout.c (bit_field_mode_iterator::next_mode): As above. | |
18436 | Update for new type of m_mode. | |
18437 | (get_best_mode): As above. | |
18438 | ||
18439 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18440 | Alan Hayward <alan.hayward@arm.com> | |
18441 | David Sherwood <david.sherwood@arm.com> | |
18442 | ||
18443 | * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode | |
18444 | to scalar_int_mode. Remove check for SCALAR_INT_MODE_P. | |
18445 | (store_bit_field): Check is_a <scalar_int_mode> before calling | |
18446 | strict_volatile_bitfield_p. | |
18447 | (extract_bit_field): Likewise. | |
18448 | ||
18449 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18450 | Alan Hayward <alan.hayward@arm.com> | |
18451 | David Sherwood <david.sherwood@arm.com> | |
18452 | ||
18453 | * target.def (cstore_mode): Return a scalar_int_mode. | |
18454 | * doc/tm.texi: Regenerate. | |
18455 | * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode. | |
18456 | * targhooks.h (default_cstore_mode): Likewise. | |
18457 | * targhooks.c (default_cstore_mode): Likewise, using a forced | |
18458 | conversion. | |
18459 | * expmed.c (emit_cstore): Expect the target of the cstore to be | |
18460 | a scalar_int_mode. | |
18461 | ||
18462 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18463 | Alan Hayward <alan.hayward@arm.com> | |
18464 | David Sherwood <david.sherwood@arm.com> | |
18465 | ||
18466 | * cfgloop.h (rtx_iv): Change type of extend_mode and mode to | |
18467 | scalar_int_mode. | |
18468 | (niter_desc): Likewise mode. | |
18469 | (iv_analyze): Add a mode parameter. | |
18470 | (biv_p): Likewise. | |
18471 | (iv_analyze_expr): Pass the mode paraeter before the rtx it describes | |
18472 | and change its type to scalar_int_mode. | |
18473 | * loop-iv.c: Update commentary at head of file. | |
18474 | (iv_constant): Pass the mode paraeter before the rtx it describes | |
18475 | and change its type to scalar_int_mode. Remove VOIDmode handling. | |
18476 | (iv_subreg): Change the type of the mode parameter to scalar_int_mode. | |
18477 | (iv_extend): Likewise. | |
18478 | (shorten_into_mode): Likewise. | |
18479 | (iv_add): Use scalar_int_mode. | |
18480 | (iv_mult): Likewise. | |
18481 | (iv_shift): Likewise. | |
18482 | (canonicalize_iv_subregs): Likewise. | |
18483 | (get_biv_step_1): Pass the outer_mode parameter before the rtx | |
18484 | it describes and change its mode to scalar_int_mode. Also change | |
18485 | the type of the returned inner_mode to scalar_int_mode. | |
18486 | (get_biv_step): Likewise, turning outer_mode from a pointer | |
18487 | into a direct parameter. Update call to get_biv_step_1. | |
18488 | (iv_analyze_biv): Add an outer_mode parameter. Update calls to | |
18489 | iv_constant and get_biv_step. | |
18490 | (iv_analyze_expr): Pass the mode parameter before the rtx it describes | |
18491 | and change its type to scalar_int_mode. Don't initialise iv->mode | |
18492 | to VOIDmode and remove later checks for its still being VOIDmode. | |
18493 | Update calls to iv_analyze_op and iv_analyze_expr. Check | |
18494 | is_a <scalar_int_mode> when changing the mode under consideration. | |
18495 | (iv_analyze_def): Ignore registers that don't have a scalar_int_mode. | |
18496 | Update call to iv_analyze_expr. | |
18497 | (iv_analyze_op): Add a mode parameter. Reject subregs whose | |
18498 | inner register is not also a scalar_int_mode. Update call to | |
18499 | iv_analyze_biv. | |
18500 | (iv_analyze): Add a mode parameter. Update call to iv_analyze_op. | |
18501 | (biv_p): Add a mode parameter. Update call to iv_analyze_biv. | |
18502 | (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of | |
18503 | separate mode class checks. Update calls to iv_analyze. Remove | |
18504 | fix-up of VOIDmodes after iv_analyze_biv. | |
18505 | * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that | |
18506 | don't have a scalar_int_mode. Update call to biv_p. | |
18507 | ||
18508 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18509 | Alan Hayward <alan.hayward@arm.com> | |
18510 | David Sherwood <david.sherwood@arm.com> | |
18511 | ||
18512 | * cfgexpand.c (convert_debug_memory_address): Use | |
18513 | as_a <scalar_int_mode>. | |
18514 | * combine.c (expand_compound_operation): Likewise. | |
18515 | (make_extraction): Likewise. | |
18516 | (change_zero_ext): Likewise. | |
18517 | (simplify_comparison): Likewise. | |
18518 | * cse.c (cse_insn): Likewise. | |
18519 | * dwarf2out.c (minmax_loc_descriptor): Likewise. | |
18520 | (mem_loc_descriptor): Likewise. | |
18521 | (loc_descriptor): Likewise. | |
18522 | * expmed.c (init_expmed_one_mode): Likewise. | |
18523 | (synth_mult): Likewise. | |
18524 | (emit_store_flag_1): Likewise. | |
18525 | (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead | |
18526 | of a comparison with size. | |
18527 | * expr.c (expand_assignment): Use as_a <scalar_int_mode>. | |
18528 | (reduce_to_bit_field_precision): Likewise. | |
18529 | * function.c (expand_function_end): Likewise. | |
18530 | * internal-fn.c (expand_arith_overflow_result_store): Likewise. | |
18531 | * loop-doloop.c (doloop_modify): Likewise. | |
18532 | * optabs.c (expand_binop): Likewise. | |
18533 | (expand_unop): Likewise. | |
18534 | (expand_copysign_absneg): Likewise. | |
18535 | (prepare_cmp_insn): Likewise. | |
18536 | (maybe_legitimize_operand): Likewise. | |
18537 | * recog.c (const_scalar_int_operand): Likewise. | |
18538 | * rtlanal.c (get_address_mode): Likewise. | |
18539 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
18540 | (simplify_cond_clz_ctz): Likewise. | |
18541 | * tree-nested.c (get_nl_goto_field): Likewise. | |
18542 | * tree.c (build_vector_type_for_mode): Likewise. | |
18543 | * var-tracking.c (use_narrower_mode): Likewise. | |
18544 | ||
18545 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18546 | Alan Hayward <alan.hayward@arm.com> | |
18547 | David Sherwood <david.sherwood@arm.com> | |
18548 | ||
18549 | * tree.h (SCALAR_INT_TYPE_MODE): New macro. | |
18550 | * builtins.c (expand_builtin_signbit): Use it. | |
18551 | * cfgexpand.c (expand_debug_expr): Likewise. | |
18552 | * dojump.c (do_jump): Likewise. | |
18553 | (do_compare_and_jump): Likewise. | |
18554 | * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise. | |
18555 | * expmed.c (make_tree): Likewise. | |
18556 | * expr.c (expand_expr_real_2): Likewise. | |
18557 | (expand_expr_real_1): Likewise. | |
18558 | (try_casesi): Likewise. | |
18559 | * fold-const-call.c (fold_const_call_ss): Likewise. | |
18560 | * fold-const.c (unextend): Likewise. | |
18561 | (extract_muldiv_1): Likewise. | |
18562 | (fold_single_bit_test): Likewise. | |
18563 | (native_encode_int): Likewise. | |
18564 | (native_encode_string): Likewise. | |
18565 | (native_interpret_int): Likewise. | |
18566 | * gimple-fold.c (gimple_fold_builtin_memset): Likewise. | |
18567 | * internal-fn.c (expand_addsub_overflow): Likewise. | |
18568 | (expand_neg_overflow): Likewise. | |
18569 | (expand_mul_overflow): Likewise. | |
18570 | (expand_arith_overflow): Likewise. | |
18571 | * match.pd: Likewise. | |
18572 | * stor-layout.c (layout_type): Likewise. | |
18573 | * tree-cfg.c (verify_gimple_assign_ternary): Likewise. | |
18574 | * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise. | |
18575 | * tree-ssanames.c (get_range_info): Likewise. | |
18576 | * tree-switch-conversion.c (array_value_type) Likewise. | |
18577 | * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise. | |
18578 | (vect_recog_divmod_pattern): Likewise. | |
18579 | (vect_recog_mixed_size_cond_pattern): Likewise. | |
18580 | * tree-vrp.c (extract_range_basic): Likewise. | |
18581 | (simplify_float_conversion_using_ranges): Likewise. | |
18582 | * tree.c (int_fits_type_p): Likewise. | |
18583 | * ubsan.c (instrument_bool_enum_load): Likewise. | |
18584 | * varasm.c (mergeable_string_section): Likewise. | |
18585 | (narrowing_initializer_constant_valid_p): Likewise. | |
18586 | (output_constant): Likewise. | |
18587 | ||
18588 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18589 | Alan Hayward <alan.hayward@arm.com> | |
18590 | David Sherwood <david.sherwood@arm.com> | |
18591 | ||
18592 | * machmode.h (NARROWEST_INT_MODE): New macro. | |
18593 | * expr.c (alignment_for_piecewise_move): Use it instead of | |
18594 | GET_CLASS_NARROWEST_MODE (MODE_INT). | |
18595 | (push_block): Likewise. | |
18596 | * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator): | |
18597 | Likewise. | |
18598 | * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. | |
18599 | ||
18600 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18601 | Alan Hayward <alan.hayward@arm.com> | |
18602 | David Sherwood <david.sherwood@arm.com> | |
18603 | ||
18604 | * postreload.c (move2add_valid_value_p): Change the type of the | |
18605 | mode parameter to scalar_int_mode. | |
18606 | (move2add_use_add2_insn): Add a mode parameter and use it instead | |
18607 | of GET_MODE (reg). | |
18608 | (move2add_use_add3_insn): Likewise. | |
18609 | (reload_cse_move2add): Update accordingly. | |
18610 | ||
18611 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18612 | Alan Hayward <alan.hayward@arm.com> | |
18613 | David Sherwood <david.sherwood@arm.com> | |
18614 | ||
18615 | * expr.c (expand_expr_real_2): Use scalar_int_mode for the | |
18616 | double-word mode. | |
18617 | * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>. | |
18618 | * optabs.c (expand_unop): Likewise. | |
18619 | ||
18620 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18621 | Alan Hayward <alan.hayward@arm.com> | |
18622 | David Sherwood <david.sherwood@arm.com> | |
18623 | ||
18624 | * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode. | |
18625 | (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check. | |
18626 | (popcount_loc_descriptor): Likewise. | |
18627 | (bswap_loc_descriptor): Likewise. | |
18628 | (rotate_loc_descriptor): Likewise. | |
18629 | (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before | |
18630 | calling the functions above. | |
18631 | ||
18632 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18633 | Alan Hayward <alan.hayward@arm.com> | |
18634 | David Sherwood <david.sherwood@arm.com> | |
18635 | ||
18636 | * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode> | |
18637 | checks. | |
18638 | (try_combine): Likewise. | |
18639 | (simplify_if_then_else): Likewise. | |
18640 | * cse.c (cse_insn): Likewise. | |
18641 | * dwarf2out.c (mem_loc_descriptor): Likewise. | |
18642 | * emit-rtl.c (gen_lowpart_common): Likewise. | |
18643 | * simplify-rtx.c (simplify_truncation): Likewise. | |
18644 | (simplify_binary_operation_1): Likewise. | |
18645 | (simplify_const_relational_operation): Likewise. | |
18646 | (simplify_ternary_operation): Likewise. | |
18647 | * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise. | |
18648 | ||
18649 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18650 | Alan Hayward <alan.hayward@arm.com> | |
18651 | David Sherwood <david.sherwood@arm.com> | |
18652 | ||
18653 | * cse.c (cse_insn): Add is_a <scalar_int_mode> checks. | |
18654 | * reload.c (push_reload): Likewise. | |
18655 | (find_reloads): Likewise. | |
18656 | ||
18657 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18658 | Alan Hayward <alan.hayward@arm.com> | |
18659 | David Sherwood <david.sherwood@arm.com> | |
18660 | ||
18661 | * combine.c (find_split_point): Add is_a <scalar_int_mode> checks. | |
18662 | (make_compound_operation_int): Likewise. | |
18663 | (change_zero_ext): Likewise. | |
18664 | * expr.c (convert_move): Likewise. | |
18665 | (convert_modes): Likewise. | |
18666 | * fwprop.c (forward_propagate_subreg): Likewise. | |
18667 | * loop-iv.c (get_biv_step_1): Likewise. | |
18668 | * optabs.c (widen_operand): Likewise. | |
18669 | * postreload.c (move2add_valid_value_p): Likewise. | |
18670 | * recog.c (simplify_while_replacing): Likewise. | |
18671 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
18672 | (simplify_binary_operation_1): Likewise. Remove redundant | |
18673 | mode equality check. | |
18674 | ||
18675 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18676 | Alan Hayward <alan.hayward@arm.com> | |
18677 | David Sherwood <david.sherwood@arm.com> | |
18678 | ||
18679 | * combine.c (combine_simplify_rtx): Add checks for | |
18680 | is_a <scalar_int_mode>. | |
18681 | (simplify_if_then_else): Likewise. | |
18682 | (make_field_assignment): Likewise. | |
18683 | (simplify_comparison): Likewise. | |
18684 | * ifcvt.c (noce_try_bitop): Likewise. | |
18685 | * loop-invariant.c (canonicalize_address_mult): Likewise. | |
18686 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
18687 | ||
18688 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18689 | Alan Hayward <alan.hayward@arm.com> | |
18690 | David Sherwood <david.sherwood@arm.com> | |
18691 | ||
18692 | * gimple-fold.c (gimple_fold_builtin_memory_op): Use | |
18693 | is_a <scalar_int_mode> instead of != BLKmode. | |
18694 | ||
18695 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18696 | Alan Hayward <alan.hayward@arm.com> | |
18697 | David Sherwood <david.sherwood@arm.com> | |
18698 | ||
18699 | * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode> | |
18700 | instead of != VOIDmode. | |
18701 | * combine.c (if_then_else_cond): Likewise. | |
18702 | (change_zero_ext): Likewise. | |
18703 | * dwarf2out.c (mem_loc_descriptor): Likewise. | |
18704 | (loc_descriptor): Likewise. | |
18705 | * rtlanal.c (canonicalize_condition): Likewise. | |
18706 | * simplify-rtx.c (simplify_relational_operation_1): Likewise. | |
18707 | ||
18708 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18709 | Alan Hayward <alan.hayward@arm.com> | |
18710 | David Sherwood <david.sherwood@arm.com> | |
18711 | ||
18712 | * simplify-rtx.c (simplify_binary_operation_1): Use | |
18713 | is_a <scalar_int_mode> instead of !VECTOR_MODE_P. | |
18714 | ||
18715 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18716 | Alan Hayward <alan.hayward@arm.com> | |
18717 | David Sherwood <david.sherwood@arm.com> | |
18718 | ||
18719 | * wide-int.h (int_traits<unsigned char>) New class. | |
18720 | (int_traits<unsigned short>) Likewise. | |
18721 | * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>. | |
18722 | Use GET_MODE_UNIT_PRECISION and remove redundant test for | |
18723 | SCALAR_INT_MODE_P. | |
18724 | * combine.c (set_nonzero_bits_and_sign_copies): Use | |
18725 | is_a <scalar_int_mode>. | |
18726 | (find_split_point): Likewise. | |
18727 | (combine_simplify_rtx): Likewise. | |
18728 | (simplify_logical): Likewise. | |
18729 | (expand_compound_operation): Likewise. | |
18730 | (expand_field_assignment): Likewise. | |
18731 | (make_compound_operation): Likewise. | |
18732 | (extended_count): Likewise. | |
18733 | (change_zero_ext): Likewise. | |
18734 | (simplify_comparison): Likewise. | |
18735 | * dwarf2out.c (scompare_loc_descriptor): Likewise. | |
18736 | (ucompare_loc_descriptor): Likewise. | |
18737 | (minmax_loc_descriptor): Likewise. | |
18738 | (mem_loc_descriptor): Likewise. | |
18739 | (loc_descriptor): Likewise. | |
18740 | * expmed.c (init_expmed_one_mode): Likewise. | |
18741 | * lra-constraints.c (lra_constraint_offset): Likewise. | |
18742 | * optabs.c (prepare_libcall_arg): Likewise. | |
18743 | * postreload.c (move2add_note_store): Likewise. | |
18744 | * reload.c (operands_match_p): Likewise. | |
18745 | * rtl.h (load_extend_op): Likewise. | |
18746 | * rtlhooks.c (gen_lowpart_general): Likewise. | |
18747 | * simplify-rtx.c (simplify_truncation): Likewise. | |
18748 | (simplify_unary_operation_1): Likewise. | |
18749 | (simplify_binary_operation_1): Likewise. | |
18750 | (simplify_const_binary_operation): Likewise. | |
18751 | (simplify_const_relational_operation): Likewise. | |
18752 | (simplify_subreg): Likewise. | |
18753 | * stor-layout.c (bitwise_mode_for_mode): Likewise. | |
18754 | * var-tracking.c (adjust_mems): Likewise. | |
18755 | (prepare_call_arguments): Likewise. | |
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 | * machmode.h (is_int_mode): New fuction. | |
18762 | * combine.c (find_split_point): Use it. | |
18763 | (combine_simplify_rtx): Likewise. | |
18764 | (simplify_if_then_else): Likewise. | |
18765 | (simplify_set): Likewise. | |
18766 | (simplify_shift_const_1): Likewise. | |
18767 | (simplify_comparison): Likewise. | |
18768 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise. | |
18769 | * cse.c (notreg_cost): Likewise. | |
18770 | (cse_insn): Likewise. | |
18771 | * cselib.c (cselib_lookup_1): Likewise. | |
18772 | * dojump.c (do_jump_1): Likewise. | |
18773 | (do_compare_rtx_and_jump): Likewise. | |
18774 | * dse.c (get_call_args): Likewise. | |
18775 | * dwarf2out.c (rtl_for_decl_init): Likewise. | |
18776 | (native_encode_initializer): Likewise. | |
18777 | * expmed.c (emit_store_flag_1): Likewise. | |
18778 | (emit_store_flag): Likewise. | |
18779 | * expr.c (convert_modes): Likewise. | |
18780 | (store_field): Likewise. | |
18781 | (expand_expr_real_1): Likewise. | |
18782 | * fold-const.c (fold_read_from_constant_string): Likewise. | |
18783 | * gimple-ssa-sprintf.c (get_format_string): Likewise. | |
18784 | * optabs-libfuncs.c (gen_int_libfunc): Likewise. | |
18785 | * optabs.c (expand_binop): Likewise. | |
18786 | (expand_unop): Likewise. | |
18787 | (expand_abs_nojump): Likewise. | |
18788 | (expand_one_cmpl_abs_nojump): Likewise. | |
18789 | * simplify-rtx.c (mode_signbit_p): Likewise. | |
18790 | (val_signbit_p): Likewise. | |
18791 | (val_signbit_known_set_p): Likewise. | |
18792 | (val_signbit_known_clear_p): Likewise. | |
18793 | (simplify_relational_operation_1): Likewise. | |
18794 | * tree.c (vector_type_mode): Likewise. | |
18795 | ||
18796 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18797 | Alan Hayward <alan.hayward@arm.com> | |
18798 | David Sherwood <david.sherwood@arm.com> | |
18799 | ||
18800 | * machmode.h (smallest_mode_for_size): Fix formatting. | |
18801 | (smallest_int_mode_for_size): New function. | |
18802 | * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size | |
18803 | instead of smallest_mode_for_size. | |
18804 | * combine.c (make_extraction): Likewise. | |
18805 | * config/arc/arc.c (arc_expand_movmem): Likewise. | |
18806 | * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise. | |
18807 | * config/i386/i386.c (ix86_get_mask_mode): Likewise. | |
18808 | * config/s390/s390.c (s390_expand_insv): Likewise. | |
18809 | * config/sparc/sparc.c (assign_int_registers): Likewise. | |
18810 | * config/spu/spu.c (spu_function_value): Likewise. | |
18811 | (spu_function_arg): Likewise. | |
18812 | * coverage.c (get_gcov_type): Likewise. | |
18813 | (get_gcov_unsigned_t): Likewise. | |
18814 | * dse.c (find_shift_sequence): Likewise. | |
18815 | * expmed.c (store_bit_field_1): Likewise. | |
18816 | * expr.c (convert_move): Likewise. | |
18817 | (store_field): Likewise. | |
18818 | * internal-fn.c (expand_arith_overflow): Likewise. | |
18819 | * optabs-query.c (get_best_extraction_insn): Likewise. | |
18820 | * optabs.c (expand_twoval_binop_libfunc): Likewise. | |
18821 | * stor-layout.c (layout_type): Likewise. | |
18822 | (initialize_sizetypes): Likewise. | |
18823 | * targhooks.c (default_get_mask_mode): Likewise. | |
18824 | * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise. | |
18825 | ||
18826 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18827 | Alan Hayward <alan.hayward@arm.com> | |
18828 | David Sherwood <david.sherwood@arm.com> | |
18829 | ||
18830 | * machmode.h (opt_mode::else_blk): New function. | |
18831 | (int_mode_for_mode): Declare. | |
18832 | * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode. | |
18833 | * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode | |
18834 | return type. | |
18835 | * cfgexpand.c (expand_debug_expr): Likewise. | |
18836 | * combine.c (gen_lowpart_or_truncate): Likewise. | |
18837 | (gen_lowpart_for_combine): Likewise. | |
18838 | * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise. | |
18839 | * config/avr/avr.c (avr_to_int_mode): Likewise. | |
18840 | (avr_out_plus_1): Likewise. | |
18841 | (avr_out_plus): Likewise. | |
18842 | (avr_out_round): Likewise. | |
18843 | * config/i386/i386.c (ix86_split_to_parts): Likewise. | |
18844 | * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise. | |
18845 | (s390_expand_vcond): Likewise. | |
18846 | * config/spu/spu.c (spu_split_immediate): Likewise. | |
18847 | (spu_expand_mov): Likewise. | |
18848 | * dse.c (get_stored_val): Likewise. | |
18849 | * expmed.c (store_bit_field_1): Likewise. | |
18850 | (convert_extracted_bit_field): Use int_mode_for_mode instead of | |
18851 | int_mode_for_size. | |
18852 | (extract_bit_field_1): Adjust for new int_mode_for_mode return type. | |
18853 | (extract_low_bits): Likewise. | |
18854 | * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode | |
18855 | handling rather than repeating the check. | |
18856 | (emit_group_store): Likewise. | |
18857 | (emit_move_via_integer): Adjust for new int_mode_for_mode return type. | |
18858 | * optabs.c (expand_absneg_bit): Likewise. | |
18859 | (expand_copysign_absneg): Likewise. | |
18860 | (expand_copysign_bit): Likewise. | |
18861 | * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise. | |
18862 | * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. | |
18863 | * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise. | |
18864 | * var-tracking.c (prepare_call_arguments): Likewise. | |
18865 | * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use | |
18866 | int_mode_for_mode instead of mode_for_size. | |
18867 | * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise. | |
18868 | ||
18869 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18870 | Alan Hayward <alan.hayward@arm.com> | |
18871 | David Sherwood <david.sherwood@arm.com> | |
18872 | ||
18873 | * machmode.h (int_mode_for_size): New function. | |
18874 | * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size | |
18875 | instead of mode_for_size. | |
18876 | * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode | |
18877 | explicit. | |
18878 | * combine.c (expand_field_assignment): Use int_mode_for_size | |
18879 | instead of mode_for_size. | |
18880 | (make_extraction): Likewise. | |
18881 | (simplify_shift_const_1): Likewise. | |
18882 | (simplify_comparison): Likewise. | |
18883 | * dojump.c (do_jump): Likewise. | |
18884 | * dwarf2out.c (mem_loc_descriptor): Likewise. | |
18885 | * emit-rtl.c (init_derived_machine_modes): Likewise. | |
18886 | * expmed.c (flip_storage_order): Likewise. | |
18887 | (convert_extracted_bit_field): Likewise. | |
18888 | * expr.c (copy_blkmode_from_reg): Likewise. | |
18889 | * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise. | |
18890 | * internal-fn.c (expand_mul_overflow): Likewise. | |
18891 | * lower-subreg.c (simple_move): Likewise. | |
18892 | * optabs-libfuncs.c (init_optabs): Likewise. | |
18893 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
18894 | * tree.c (vector_type_mode): Likewise. | |
18895 | * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise. | |
18896 | * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise. | |
18897 | * tree-vect-generic.c (expand_vector_parallel): Likewise. | |
18898 | * tree-vect-stmts.c (vectorizable_load): Likewise. | |
18899 | (vectorizable_store): Likewise. | |
18900 | ||
18901 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18902 | Alan Hayward <alan.hayward@arm.com> | |
18903 | David Sherwood <david.sherwood@arm.com> | |
18904 | ||
18905 | * coretypes.h (pod_mode): New type. | |
18906 | (scalar_int_mode_pod): New typedef. | |
18907 | * machmode.h (pod_mode): New class. | |
18908 | (int_n_data_t::m): Change type to scalar_int_mode_pod. | |
18909 | * genmodes.c (emit_mode_int_n): Update accordingly. | |
18910 | * lower-subreg.h (target_lower_subreg): Change type to | |
18911 | scalar_int_mode_pod. | |
18912 | * gdbhooks.py (build_pretty_printer): Handle pod_mode and | |
18913 | scalar_int_mode_pod. | |
18914 | ||
18915 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18916 | Alan Hayward <alan.hayward@arm.com> | |
18917 | David Sherwood <david.sherwood@arm.com> | |
18918 | ||
18919 | * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from | |
18920 | machine_mode to scalar_int_mode. | |
18921 | * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise. | |
18922 | (rs6000_option_override_internal): Remove cast to int. | |
18923 | * config/rs6000/rs6000.h (rs6000_pmode): Change type from | |
18924 | machine_mode to scalar_int_mode. | |
18925 | * config/rs6000/rs6000.c (rs6000_pmode): Likewise. | |
18926 | (rs6000_option_override_internal): Remove cast to int. | |
18927 | * config/s390/s390.h (Pmode): Remove cast to machine_mode. | |
18928 | * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast | |
18929 | to machine_mode. | |
18930 | * config/s390/s390.c (s390_expand_builtin): Likewise. | |
18931 | * coretypes.h (scalar_int_mode): New type. | |
18932 | (opt_scalar_int_mode): New typedef. | |
18933 | * machmode.h (scalar_int_mode): New class. | |
18934 | (scalar_int_mode::includes_p): New function. | |
18935 | (byte_mode): Change type to scalar_int_mode. | |
18936 | (word_mode): Likewise. | |
18937 | (ptr_mode): Likewise. | |
18938 | * emit-rtl.c (byte_mode): Likewise. | |
18939 | (word_mode): Likewise. | |
18940 | (ptr_mode): Likewise. | |
18941 | (init_derived_machine_modes): Update accordingly. | |
18942 | * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT | |
18943 | and MODE_PARTIAL_INT. | |
18944 | * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and | |
18945 | opt_scalar_int_mode. | |
18946 | ||
18947 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18948 | Alan Hayward <alan.hayward@arm.com> | |
18949 | David Sherwood <david.sherwood@arm.com> | |
18950 | ||
18951 | * target.def (libgcc_floating_mode_supported_p): Take a | |
18952 | scalar_float_mode. | |
18953 | * doc/tm.texi: Regenerate. | |
18954 | * targhooks.h (default_libgcc_floating_mode_supported_p): Take a | |
18955 | scalar_float_mode. | |
18956 | * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise. | |
18957 | * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p): | |
18958 | Likewise. | |
18959 | ||
18960 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18961 | Alan Hayward <alan.hayward@arm.com> | |
18962 | David Sherwood <david.sherwood@arm.com> | |
18963 | ||
18964 | * target.def (default_floatn_mode): Return an opt_scalar_float_mode. | |
18965 | * doc/tm.texi: Regenerate. | |
18966 | * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode. | |
18967 | * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise. | |
18968 | * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise. | |
18969 | * targhooks.h (default_floatn_mode): Likewise. | |
18970 | * targhooks.c (default_floatn_mode): Likewise. | |
18971 | * tree.c (build_common_tree_nodes): Update accordingly. | |
18972 | ||
18973 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18974 | Alan Hayward <alan.hayward@arm.com> | |
18975 | David Sherwood <david.sherwood@arm.com> | |
18976 | ||
18977 | * machmode.h (mode_iterator::start): Provide overload for opt_modes. | |
18978 | (mode_iterator::iterate_p): Likewise. | |
18979 | (mode_iterator::get_wider): Likewise. | |
18980 | * expr.c (init_expr_target): Use opt_scalar_float_mode. | |
18981 | ||
18982 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18983 | Alan Hayward <alan.hayward@arm.com> | |
18984 | David Sherwood <david.sherwood@arm.com> | |
18985 | ||
18986 | * coretypes.h (opt_scalar_float_mode): New typedef. | |
18987 | * machmode.h (float_mode_for_size): New function. | |
18988 | * emit-rtl.c (double_mode): Delete. | |
18989 | (init_emit_once): Use float_mode_for_size. | |
18990 | * stor-layout.c (layout_type): Likewise. | |
18991 | * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode. | |
18992 | ||
18993 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
18994 | Alan Hayward <alan.hayward@arm.com> | |
18995 | David Sherwood <david.sherwood@arm.com> | |
18996 | ||
18997 | * output.h (assemble_real): Take a scalar_float_mode. | |
18998 | * config/arm/arm.c (arm_assemble_integer): Update accordingly. | |
18999 | * config/arm/arm.md (consttable_4): Likewise. | |
19000 | (consttable_8): Likewise. | |
19001 | (consttable_16): Likewise. | |
19002 | * config/mips/mips.md (consttable_float): Likewise. | |
19003 | * config/s390/s390.c (s390_output_pool_entry): Likewise. | |
19004 | * varasm.c (assemble_real): Take a scalar_float_mode. | |
19005 | (output_constant_pool_2): Update accordingly. | |
19006 | (output_constant): Likewise. | |
19007 | ||
19008 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19009 | Alan Hayward <alan.hayward@arm.com> | |
19010 | David Sherwood <david.sherwood@arm.com> | |
19011 | ||
19012 | * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro. | |
19013 | * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE. | |
19014 | * fold-const.c (fold_convert_const_real_from_fixed): Likewise. | |
19015 | (native_encode_real): Likewise. | |
19016 | (native_interpret_real): Likewise. | |
19017 | * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise. | |
19018 | * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. | |
19019 | ||
19020 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19021 | Alan Hayward <alan.hayward@arm.com> | |
19022 | David Sherwood <david.sherwood@arm.com> | |
19023 | ||
19024 | * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a | |
19025 | <scalar_float_mode>. Simplify. | |
19026 | (gen_extend_conv_libfunc): Likewise. | |
19027 | ||
19028 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19029 | Alan Hayward <alan.hayward@arm.com> | |
19030 | David Sherwood <david.sherwood@arm.com> | |
19031 | ||
19032 | * coretypes.h (scalar_float_mode): New type. | |
19033 | * machmode.h (mode_traits::from_int): Use machine_mode if | |
19034 | USE_ENUM_MODES is defined. | |
19035 | (is_a): New function. | |
19036 | (as_a): Likewise. | |
19037 | (dyn_cast): Likewise. | |
19038 | (scalar_float_mode): New class. | |
19039 | (scalar_float_mode::includes_p): New function. | |
19040 | (is_float_mode): Likewise. | |
19041 | * gdbhooks.py (MachineModePrinter): New class. | |
19042 | (build_pretty_printer): Use it for scalar_float_mode. | |
19043 | * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>. | |
19044 | (format_helper::format_helper): Turn into a template. | |
19045 | * genmodes.c (get_mode_class): New function. | |
19046 | (emit_insn_modes_h): Give modes the class returned by get_mode_class, | |
19047 | or machine_mode if none. | |
19048 | * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use | |
19049 | as_a <scalar_float_mode>. | |
19050 | * dwarf2out.c (mem_loc_descriptor): Likewise. | |
19051 | (insert_float): Likewise. | |
19052 | (add_const_value_attribute): Likewise. | |
19053 | * simplify-rtx.c (simplify_immed_subreg): Likewise. | |
19054 | * optabs.c (expand_absneg_bit): Take a scalar_float_mode. | |
19055 | (expand_unop): Update accordingly. | |
19056 | (expand_abs_nojump): Likewise. | |
19057 | (expand_copysign_absneg): Take a scalar_float_mode. | |
19058 | (expand_copysign_bit): Likewise. | |
19059 | (expand_copysign): Update accordingly. | |
19060 | ||
19061 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19062 | Alan Hayward <alan.hayward@arm.com> | |
19063 | David Sherwood <david.sherwood@arm.com> | |
19064 | ||
19065 | * coretypes.h (opt_mode): New class. | |
19066 | * machmode.h (opt_mode): Likewise. | |
19067 | (opt_mode::else_void): New function. | |
19068 | (opt_mode::require): Likewise. | |
19069 | (opt_mode::exists): Likewise. | |
19070 | (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode. | |
19071 | (GET_MODE_2XWIDER_MODE): Likewise. | |
19072 | (mode_iterator::get_wider): Update accordingly. | |
19073 | (mode_iterator::get_2xwider): Likewise. | |
19074 | (mode_iterator::get_known_wider): Likewise, turning into a template. | |
19075 | * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE, | |
19076 | forcing a wider mode to exist. | |
19077 | * config/cr16/cr16.h (LONG_REG_P): Likewise. | |
19078 | * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise. | |
19079 | * config/c6x/c6x.c (c6x_rtx_costs): Update use of | |
19080 | GET_MODE_2XWIDER_MODE, forcing a wider mode to exist. | |
19081 | * lower-subreg.c (init_lower_subreg): Likewise. | |
19082 | * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not | |
19083 | on the final iteration. | |
19084 | * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether | |
19085 | a wider mode exists before asking for a move pattern. | |
19086 | (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE, | |
19087 | forcing a wider mode to exist. | |
19088 | (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE, | |
19089 | returning false if no such mode exists. | |
19090 | * config/ia64/ia64.c (expand_vselect_vconcat): Likewise. | |
19091 | * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise. | |
19092 | * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE. | |
19093 | Avoid checking for a MODE_INT if we already know the mode is not a | |
19094 | SCALAR_INT_MODE_P. | |
19095 | (extract_high_half): Update use of GET_MODE_WIDER_MODE, | |
19096 | forcing a wider mode to exist. | |
19097 | (expmed_mult_highpart_optab): Likewise. | |
19098 | (expmed_mult_highpart): Likewise. | |
19099 | * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE, | |
19100 | using else_void. | |
19101 | * lto-streamer-in.c (lto_input_mode_table): Likewise. | |
19102 | * optabs-query.c (find_widening_optab_handler_and_mode): Likewise. | |
19103 | * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise. | |
19104 | * internal-fn.c (expand_mul_overflow): Update use of | |
19105 | GET_MODE_2XWIDER_MODE. | |
19106 | * omp-low.c (omp_clause_aligned_alignment): Likewise. | |
19107 | * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of | |
19108 | GET_MODE_WIDER_MODE. | |
19109 | (convert_plusminus_to_widen): Likewise. | |
19110 | * tree-switch-conversion.c (array_value_type): Likewise. | |
19111 | * var-tracking.c (emit_note_insn_var_location): Likewise. | |
19112 | * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise. | |
19113 | Return false inside rather than outside the loop if no wider mode | |
19114 | exists | |
19115 | * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE | |
19116 | and GET_MODE_2XWIDER_MODE | |
19117 | (can_compare_p): Use else_void. | |
19118 | * gdbhooks.py (OptMachineModePrinter): New class. | |
19119 | (build_pretty_printer): Use it for opt_mode. | |
19120 | ||
19121 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19122 | Alan Hayward <alan.hayward@arm.com> | |
19123 | David Sherwood <david.sherwood@arm.com> | |
19124 | ||
19125 | * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE | |
19126 | once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE. | |
19127 | ||
19128 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19129 | Alan Hayward <alan.hayward@arm.com> | |
19130 | David Sherwood <david.sherwood@arm.com> | |
19131 | ||
19132 | * machmode.h (mode_traits): New structure. | |
19133 | (get_narrowest_mode): New function. | |
19134 | (mode_iterator::start): Likewise. | |
19135 | (mode_iterator::iterate_p): Likewise. | |
19136 | (mode_iterator::get_wider): Likewise. | |
19137 | (mode_iterator::get_known_wider): Likewise. | |
19138 | (mode_iterator::get_2xwider): Likewise. | |
19139 | (FOR_EACH_MODE_IN_CLASS): New mode iterator. | |
19140 | (FOR_EACH_MODE): Likewise. | |
19141 | (FOR_EACH_MODE_FROM): Likewise. | |
19142 | (FOR_EACH_MODE_UNTIL): Likewise. | |
19143 | (FOR_EACH_WIDER_MODE): Likewise. | |
19144 | (FOR_EACH_2XWIDER_MODE): Likewise. | |
19145 | * builtins.c (expand_builtin_strlen): Use new mode iterators. | |
19146 | * combine.c (simplify_comparison): Likewise | |
19147 | * config/i386/i386.c (type_natural_mode): Likewise. | |
19148 | * cse.c (cse_insn): Likewise. | |
19149 | * dse.c (find_shift_sequence): Likewise. | |
19150 | * emit-rtl.c (init_derived_machine_modes): Likewise. | |
19151 | (init_emit_once): Likewise. | |
19152 | * explow.c (hard_function_value): Likewise. | |
19153 | * expmed.c (extract_fixed_bit_field_1): Likewise. | |
19154 | (extract_bit_field_1): Likewise. | |
19155 | (expand_divmod): Likewise. | |
19156 | (emit_store_flag_1): Likewise. | |
19157 | * expr.c (init_expr_target): Likewise. | |
19158 | (convert_move): Likewise. | |
19159 | (alignment_for_piecewise_move): Likewise. | |
19160 | (widest_int_mode_for_size): Likewise. | |
19161 | (emit_block_move_via_movmem): Likewise. | |
19162 | (copy_blkmode_to_reg): Likewise. | |
19163 | (set_storage_via_setmem): Likewise. | |
19164 | (compress_float_constant): Likewise. | |
19165 | * omp-low.c (omp_clause_aligned_alignment): Likewise. | |
19166 | * optabs-query.c (get_best_extraction_insn): Likewise. | |
19167 | * optabs.c (expand_binop): Likewise. | |
19168 | (expand_twoval_unop): Likewise. | |
19169 | (expand_twoval_binop): Likewise. | |
19170 | (widen_leading): Likewise. | |
19171 | (widen_bswap): Likewise. | |
19172 | (expand_parity): Likewise. | |
19173 | (expand_unop): Likewise. | |
19174 | (prepare_cmp_insn): Likewise. | |
19175 | (prepare_float_lib_cmp): Likewise. | |
19176 | (expand_float): Likewise. | |
19177 | (expand_fix): Likewise. | |
19178 | (expand_sfix_optab): Likewise. | |
19179 | * postreload.c (move2add_use_add2_insn): Likewise. | |
19180 | * reg-stack.c (reg_to_stack): Likewise. | |
19181 | * reginfo.c (choose_hard_reg_mode): Likewise. | |
19182 | * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise. | |
19183 | * stor-layout.c (mode_for_size): Likewise. | |
19184 | (smallest_mode_for_size): Likewise. | |
19185 | (mode_for_vector): Likewise. | |
19186 | (finish_bitfield_representative): Likewise. | |
19187 | * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise. | |
19188 | * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. | |
19189 | * tree-vect-stmts.c (vectorizable_conversion): Likewise. | |
19190 | * var-tracking.c (prepare_call_arguments): Likewise. | |
19191 | ||
19192 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19193 | Alan Hayward <alan.hayward@arm.com> | |
19194 | David Sherwood <david.sherwood@arm.com> | |
19195 | ||
19196 | * genconditions.c (write_header): Add a "#define USE_ENUM_MODES". | |
19197 | * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if | |
19198 | USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise. | |
19199 | * machmode.h (mode_size): Move earlier in file. | |
19200 | (mode_precision): Likewise. | |
19201 | (mode_inner): Likewise. | |
19202 | (mode_nunits): Likewise. | |
19203 | (mode_unit_size): Likewise. | |
19204 | (unit_unit_precision): Likewise. | |
19205 | (mode_wider): Likewise. | |
19206 | (mode_2xwider): Likewise. | |
19207 | (machine_mode): New class. | |
19208 | (mode_to_bytes): New function. | |
19209 | (mode_to_bits): Likewise. | |
19210 | (mode_to_precision): Likewise. | |
19211 | (mode_to_inner): Likewise. | |
19212 | (mode_to_unit_size): Likewise. | |
19213 | (mode_to_unit_precision): Likewise. | |
19214 | (mode_to_nunits): Likewise. | |
19215 | (GET_MODE_SIZE): Use mode_to_bytes. | |
19216 | (GET_MODE_BITSIZE): Use mode_to_bits. | |
19217 | (GET_MODE_PRECISION): Use mode_to_precision. | |
19218 | (GET_MODE_INNER): Use mode_to_inner. | |
19219 | (GET_MODE_UNIT_SIZE): Use mode_to_unit_size. | |
19220 | (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision. | |
19221 | (GET_MODE_NUNITS): Use mode_to_nunits. | |
19222 | * system.h (ALWAYS_INLINE): New macro. | |
19223 | * config/powerpcspe/powerpcspe-c.c | |
19224 | (altivec_resolve_overloaded_builtin): Use machine_mode instead of | |
19225 | int for arg1_mode and arg2_mode. | |
19226 | ||
19227 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19228 | Alan Hayward <alan.hayward@arm.com> | |
19229 | David Sherwood <david.sherwood@arm.com> | |
19230 | ||
19231 | * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type): | |
19232 | Prefix mode names with E_ in case statements. | |
19233 | * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. | |
19234 | * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise. | |
19235 | (aarch64_split_simd_move): Likewise. | |
19236 | (aarch64_gen_storewb_pair): Likewise. | |
19237 | (aarch64_gen_loadwb_pair): Likewise. | |
19238 | (aarch64_gen_store_pair): Likewise. | |
19239 | (aarch64_gen_load_pair): Likewise. | |
19240 | (aarch64_get_condition_code_1): Likewise. | |
19241 | (aarch64_constant_pool_reload_icode): Likewise. | |
19242 | (get_rsqrte_type): Likewise. | |
19243 | (get_rsqrts_type): Likewise. | |
19244 | (get_recpe_type): Likewise. | |
19245 | (get_recps_type): Likewise. | |
19246 | (aarch64_gimplify_va_arg_expr): Likewise. | |
19247 | (aarch64_simd_container_mode): Likewise. | |
19248 | (aarch64_emit_load_exclusive): Likewise. | |
19249 | (aarch64_emit_store_exclusive): Likewise. | |
19250 | (aarch64_expand_compare_and_swap): Likewise. | |
19251 | (aarch64_gen_atomic_cas): Likewise. | |
19252 | (aarch64_emit_bic): Likewise. | |
19253 | (aarch64_emit_atomic_swap): Likewise. | |
19254 | (aarch64_emit_atomic_load_op): Likewise. | |
19255 | (aarch64_evpc_trn): Likewise. | |
19256 | (aarch64_evpc_uzp): Likewise. | |
19257 | (aarch64_evpc_zip): Likewise. | |
19258 | (aarch64_evpc_ext): Likewise. | |
19259 | (aarch64_evpc_rev): Likewise. | |
19260 | (aarch64_evpc_dup): Likewise. | |
19261 | (aarch64_gen_ccmp_first): Likewise. | |
19262 | (aarch64_gen_ccmp_next): Likewise. | |
19263 | * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise. | |
19264 | (alpha_emit_xfloating_libcall): Likewise. | |
19265 | (emit_insxl): Likewise. | |
19266 | (alpha_arg_type): Likewise. | |
19267 | * config/arc/arc.c (arc_vector_mode_supported_p): Likewise. | |
19268 | (arc_preferred_simd_mode): Likewise. | |
19269 | (arc_secondary_reload): Likewise. | |
19270 | (get_arc_condition_code): Likewise. | |
19271 | (arc_print_operand): Likewise. | |
19272 | (arc_legitimate_constant_p): Likewise. | |
19273 | * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. | |
19274 | * config/arc/arc.md (casesi_load): Likewise. | |
19275 | (casesi_compact_jump): Likewise. | |
19276 | * config/arc/predicates.md (proper_comparison_operator): Likewise. | |
19277 | (cc_use_register): Likewise. | |
19278 | * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. | |
19279 | * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise. | |
19280 | (arm_init_iwmmxt_builtins): Likewise. | |
19281 | * config/arm/arm.c (thumb1_size_rtx_costs): Likewise. | |
19282 | (neon_expand_vector_init): Likewise. | |
19283 | (arm_attr_length_move_neon): Likewise. | |
19284 | (maybe_get_arm_condition_code): Likewise. | |
19285 | (arm_emit_vector_const): Likewise. | |
19286 | (arm_preferred_simd_mode): Likewise. | |
19287 | (arm_output_iwmmxt_tinsr): Likewise. | |
19288 | (thumb1_output_casesi): Likewise. | |
19289 | (thumb2_output_casesi): Likewise. | |
19290 | (arm_emit_load_exclusive): Likewise. | |
19291 | (arm_emit_store_exclusive): Likewise. | |
19292 | (arm_expand_compare_and_swap): Likewise. | |
19293 | (arm_evpc_neon_vuzp): Likewise. | |
19294 | (arm_evpc_neon_vzip): Likewise. | |
19295 | (arm_evpc_neon_vrev): Likewise. | |
19296 | (arm_evpc_neon_vtrn): Likewise. | |
19297 | (arm_evpc_neon_vext): Likewise. | |
19298 | (arm_validize_comparison): Likewise. | |
19299 | * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise. | |
19300 | * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise. | |
19301 | * config/avr/avr.c (avr_rtx_costs_1): Likewise. | |
19302 | * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise. | |
19303 | (c6x_preferred_simd_mode): Likewise. | |
19304 | * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise. | |
19305 | (epiphany_rtx_costs): Likewise. | |
19306 | * config/epiphany/predicates.md (proper_comparison_operator): | |
19307 | Likewise. | |
19308 | * config/frv/frv.c (condexec_memory_operand): Likewise. | |
19309 | (frv_emit_move): Likewise. | |
19310 | (output_move_single): Likewise. | |
19311 | (output_condmove_single): Likewise. | |
19312 | (frv_hard_regno_mode_ok): Likewise. | |
19313 | (frv_matching_accg_mode): Likewise. | |
19314 | * config/h8300/h8300.c (split_adds_subs): Likewise. | |
19315 | (h8300_rtx_costs): Likewise. | |
19316 | (h8300_print_operand): Likewise. | |
19317 | (compute_mov_length): Likewise. | |
19318 | (output_logical_op): Likewise. | |
19319 | (compute_logical_op_length): Likewise. | |
19320 | (compute_logical_op_cc): Likewise. | |
19321 | (h8300_shift_needs_scratch_p): Likewise. | |
19322 | (output_a_shift): Likewise. | |
19323 | (compute_a_shift_length): Likewise. | |
19324 | (compute_a_shift_cc): Likewise. | |
19325 | (expand_a_rotate): Likewise. | |
19326 | (output_a_rotate): Likewise. | |
19327 | * config/i386/i386.c (classify_argument): Likewise. | |
19328 | (function_arg_advance_32): Likewise. | |
19329 | (function_arg_32): Likewise. | |
19330 | (function_arg_64): Likewise. | |
19331 | (function_value_64): Likewise. | |
19332 | (ix86_gimplify_va_arg): Likewise. | |
19333 | (ix86_legitimate_constant_p): Likewise. | |
19334 | (put_condition_code): Likewise. | |
19335 | (split_double_mode): Likewise. | |
19336 | (ix86_avx256_split_vector_move_misalign): Likewise. | |
19337 | (ix86_expand_vector_logical_operator): Likewise. | |
19338 | (ix86_split_idivmod): Likewise. | |
19339 | (ix86_expand_adjust_ufix_to_sfix_si): Likewise. | |
19340 | (ix86_build_const_vector): Likewise. | |
19341 | (ix86_build_signbit_mask): Likewise. | |
19342 | (ix86_match_ccmode): Likewise. | |
19343 | (ix86_cc_modes_compatible): Likewise. | |
19344 | (ix86_expand_branch): Likewise. | |
19345 | (ix86_expand_sse_cmp): Likewise. | |
19346 | (ix86_expand_sse_movcc): Likewise. | |
19347 | (ix86_expand_int_sse_cmp): Likewise. | |
19348 | (ix86_expand_vec_perm_vpermi2): Likewise. | |
19349 | (ix86_expand_vec_perm): Likewise. | |
19350 | (ix86_expand_sse_unpack): Likewise. | |
19351 | (ix86_expand_int_addcc): Likewise. | |
19352 | (ix86_split_to_parts): Likewise. | |
19353 | (ix86_vectorize_builtin_gather): Likewise. | |
19354 | (ix86_vectorize_builtin_scatter): Likewise. | |
19355 | (avx_vpermilp_parallel): Likewise. | |
19356 | (inline_memory_move_cost): Likewise. | |
19357 | (ix86_tieable_integer_mode_p): Likewise. | |
19358 | (x86_maybe_negate_const_int): Likewise. | |
19359 | (ix86_expand_vector_init_duplicate): Likewise. | |
19360 | (ix86_expand_vector_init_one_nonzero): Likewise. | |
19361 | (ix86_expand_vector_init_one_var): Likewise. | |
19362 | (ix86_expand_vector_init_concat): Likewise. | |
19363 | (ix86_expand_vector_init_interleave): Likewise. | |
19364 | (ix86_expand_vector_init_general): Likewise. | |
19365 | (ix86_expand_vector_set): Likewise. | |
19366 | (ix86_expand_vector_extract): Likewise. | |
19367 | (emit_reduc_half): Likewise. | |
19368 | (ix86_emit_i387_round): Likewise. | |
19369 | (ix86_mangle_type): Likewise. | |
19370 | (ix86_expand_round_sse4): Likewise. | |
19371 | (expand_vec_perm_blend): Likewise. | |
19372 | (canonicalize_vector_int_perm): Likewise. | |
19373 | (ix86_expand_vec_one_operand_perm_avx512): Likewise. | |
19374 | (expand_vec_perm_1): Likewise. | |
19375 | (expand_vec_perm_interleave3): Likewise. | |
19376 | (expand_vec_perm_even_odd_pack): Likewise. | |
19377 | (expand_vec_perm_even_odd_1): Likewise. | |
19378 | (expand_vec_perm_broadcast_1): Likewise. | |
19379 | (ix86_vectorize_vec_perm_const_ok): Likewise. | |
19380 | (ix86_expand_vecop_qihi): Likewise. | |
19381 | (ix86_expand_mul_widen_hilo): Likewise. | |
19382 | (ix86_expand_sse2_abs): Likewise. | |
19383 | (ix86_expand_pextr): Likewise. | |
19384 | (ix86_expand_pinsr): Likewise. | |
19385 | (ix86_preferred_simd_mode): Likewise. | |
19386 | (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise. | |
19387 | * config/i386/sse.md (*andnot<mode>3): Likewise. | |
19388 | (<mask_codefor><code><mode>3<mask_name>): Likewise. | |
19389 | (*<code><mode>3): Likewise. | |
19390 | * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise. | |
19391 | (ia64_expand_atomic_op): Likewise. | |
19392 | (ia64_arg_type): Likewise. | |
19393 | (ia64_mode_to_int): Likewise. | |
19394 | (ia64_scalar_mode_supported_p): Likewise. | |
19395 | (ia64_vector_mode_supported_p): Likewise. | |
19396 | (expand_vec_perm_broadcast): Likewise. | |
19397 | * config/iq2000/iq2000.c (iq2000_move_1word): Likewise. | |
19398 | (iq2000_function_arg_advance): Likewise. | |
19399 | (iq2000_function_arg): Likewise. | |
19400 | * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise. | |
19401 | * config/m68k/m68k.c (output_dbcc_and_branch): Likewise. | |
19402 | (m68k_libcall_value): Likewise. | |
19403 | (m68k_function_value): Likewise. | |
19404 | (sched_attr_op_type): Likewise. | |
19405 | * config/mcore/mcore.c (mcore_output_move): Likewise. | |
19406 | * config/microblaze/microblaze.c (microblaze_function_arg_advance): | |
19407 | Likewise. | |
19408 | (microblaze_function_arg): Likewise. | |
19409 | * config/mips/mips.c (mips16_build_call_stub): Likewise. | |
19410 | (mips_print_operand): Likewise. | |
19411 | (mips_mode_ok_for_mov_fmt_p): Likewise. | |
19412 | (mips_vector_mode_supported_p): Likewise. | |
19413 | (mips_preferred_simd_mode): Likewise. | |
19414 | (mips_expand_vpc_loongson_even_odd): Likewise. | |
19415 | (mips_expand_vec_unpack): Likewise. | |
19416 | (mips_expand_vi_broadcast): Likewise. | |
19417 | (mips_expand_vector_init): Likewise. | |
19418 | (mips_expand_vec_reduc): Likewise. | |
19419 | (mips_expand_msa_cmp): Likewise. | |
19420 | * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise. | |
19421 | * config/mn10300/mn10300.c (mn10300_print_operand): Likewise. | |
19422 | (cc_flags_for_mode): Likewise. | |
19423 | * config/msp430/msp430.c (msp430_print_operand): Likewise. | |
19424 | * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise. | |
19425 | (nds32_output_casesi_pc_relative): Likewise. | |
19426 | * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. | |
19427 | * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise. | |
19428 | (nvptx_gen_unpack): Likewise. | |
19429 | (nvptx_gen_pack): Likewise. | |
19430 | (nvptx_gen_shuffle): Likewise. | |
19431 | (nvptx_gen_wcast): Likewise. | |
19432 | (nvptx_preferred_simd_mode): Likewise. | |
19433 | * config/pa/pa.c (pa_secondary_reload): Likewise. | |
19434 | * config/pa/predicates.md (base14_operand): Likewise. | |
19435 | * config/powerpcspe/powerpcspe-c.c | |
19436 | (altivec_resolve_overloaded_builtin): Likewise. | |
19437 | * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks): | |
19438 | Likewise. | |
19439 | (rs6000_preferred_simd_mode): Likewise. | |
19440 | (output_vec_const_move): Likewise. | |
19441 | (rs6000_expand_vector_extract): Likewise. | |
19442 | (rs6000_split_vec_extract_var): Likewise. | |
19443 | (reg_offset_addressing_ok_p): Likewise. | |
19444 | (rs6000_legitimate_offset_address_p): Likewise. | |
19445 | (rs6000_legitimize_address): Likewise. | |
19446 | (rs6000_emit_set_const): Likewise. | |
19447 | (rs6000_const_vec): Likewise. | |
19448 | (rs6000_emit_move): Likewise. | |
19449 | (spe_build_register_parallel): Likewise. | |
19450 | (rs6000_darwin64_record_arg_recurse): Likewise. | |
19451 | (swap_selector_for_mode): Likewise. | |
19452 | (spe_init_builtins): Likewise. | |
19453 | (paired_init_builtins): Likewise. | |
19454 | (altivec_init_builtins): Likewise. | |
19455 | (do_load_for_compare): Likewise. | |
19456 | (rs6000_generate_compare): Likewise. | |
19457 | (rs6000_expand_float128_convert): Likewise. | |
19458 | (emit_load_locked): Likewise. | |
19459 | (emit_store_conditional): Likewise. | |
19460 | (rs6000_output_function_epilogue): Likewise. | |
19461 | (rs6000_handle_altivec_attribute): Likewise. | |
19462 | (rs6000_function_value): Likewise. | |
19463 | (emit_fusion_gpr_load): Likewise. | |
19464 | (emit_fusion_p9_load): Likewise. | |
19465 | (emit_fusion_p9_store): Likewise. | |
19466 | * config/powerpcspe/predicates.md (easy_fp_constant): Likewise. | |
19467 | (fusion_gpr_mem_load): Likewise. | |
19468 | (fusion_addis_mem_combo_load): Likewise. | |
19469 | (fusion_addis_mem_combo_store): Likewise. | |
19470 | * config/rs6000/predicates.md (easy_fp_constant): Likewise. | |
19471 | (fusion_gpr_mem_load): Likewise. | |
19472 | (fusion_addis_mem_combo_load): Likewise. | |
19473 | (fusion_addis_mem_combo_store): Likewise. | |
19474 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
19475 | Likewise. | |
19476 | * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise. | |
19477 | * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise. | |
19478 | (rs6000_preferred_simd_mode): Likewise. | |
19479 | (output_vec_const_move): Likewise. | |
19480 | (rs6000_expand_vector_extract): Likewise. | |
19481 | (rs6000_split_vec_extract_var): Likewise. | |
19482 | (reg_offset_addressing_ok_p): Likewise. | |
19483 | (rs6000_legitimate_offset_address_p): Likewise. | |
19484 | (rs6000_legitimize_address): Likewise. | |
19485 | (rs6000_emit_set_const): Likewise. | |
19486 | (rs6000_const_vec): Likewise. | |
19487 | (rs6000_emit_move): Likewise. | |
19488 | (rs6000_darwin64_record_arg_recurse): Likewise. | |
19489 | (swap_selector_for_mode): Likewise. | |
19490 | (paired_init_builtins): Likewise. | |
19491 | (altivec_init_builtins): Likewise. | |
19492 | (rs6000_expand_float128_convert): Likewise. | |
19493 | (emit_load_locked): Likewise. | |
19494 | (emit_store_conditional): Likewise. | |
19495 | (rs6000_output_function_epilogue): Likewise. | |
19496 | (rs6000_handle_altivec_attribute): Likewise. | |
19497 | (rs6000_function_value): Likewise. | |
19498 | (emit_fusion_gpr_load): Likewise. | |
19499 | (emit_fusion_p9_load): Likewise. | |
19500 | (emit_fusion_p9_store): Likewise. | |
19501 | * config/rx/rx.c (rx_gen_move_template): Likewise. | |
19502 | (flags_from_mode): Likewise. | |
19503 | * config/s390/predicates.md (s390_alc_comparison): Likewise. | |
19504 | (s390_slb_comparison): Likewise. | |
19505 | * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise. | |
19506 | (s390_vector_mode_supported_p): Likewise. | |
19507 | (s390_cc_modes_compatible): Likewise. | |
19508 | (s390_match_ccmode_set): Likewise. | |
19509 | (s390_canonicalize_comparison): Likewise. | |
19510 | (s390_emit_compare_and_swap): Likewise. | |
19511 | (s390_branch_condition_mask): Likewise. | |
19512 | (s390_rtx_costs): Likewise. | |
19513 | (s390_secondary_reload): Likewise. | |
19514 | (__SECONDARY_RELOAD_CASE): Likewise. | |
19515 | (s390_expand_cs): Likewise. | |
19516 | (s390_preferred_simd_mode): Likewise. | |
19517 | * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise. | |
19518 | * config/sh/sh.c (sh_print_operand): Likewise. | |
19519 | (dump_table): Likewise. | |
19520 | (sh_secondary_reload): Likewise. | |
19521 | * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. | |
19522 | * config/sh/sh.md (casesi_worker_1): Likewise. | |
19523 | (casesi_worker_2): Likewise. | |
19524 | * config/sparc/predicates.md (icc_comparison_operator): Likewise. | |
19525 | (fcc_comparison_operator): Likewise. | |
19526 | * config/sparc/sparc.c (sparc_expand_move): Likewise. | |
19527 | (emit_soft_tfmode_cvt): Likewise. | |
19528 | (sparc_preferred_simd_mode): Likewise. | |
19529 | (output_cbranch): Likewise. | |
19530 | (sparc_print_operand): Likewise. | |
19531 | (sparc_expand_vec_perm_bmask): Likewise. | |
19532 | (vector_init_bshuffle): Likewise. | |
19533 | * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise. | |
19534 | (spu_vector_mode_supported_p): Likewise. | |
19535 | (spu_expand_insv): Likewise. | |
19536 | (spu_emit_branch_or_set): Likewise. | |
19537 | (spu_handle_vector_attribute): Likewise. | |
19538 | (spu_builtin_splats): Likewise. | |
19539 | (spu_builtin_extract): Likewise. | |
19540 | (spu_builtin_promote): Likewise. | |
19541 | (spu_expand_sign_extend): Likewise. | |
19542 | * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise. | |
19543 | (tilegx_simd_int): Likewise. | |
19544 | * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise. | |
19545 | (tilepro_simd_int): Likewise. | |
19546 | * config/v850/v850.c (const_double_split): Likewise. | |
19547 | (v850_print_operand): Likewise. | |
19548 | (ep_memory_offset): Likewise. | |
19549 | * config/vax/vax.c (vax_rtx_costs): Likewise. | |
19550 | (vax_output_int_move): Likewise. | |
19551 | (vax_output_int_add): Likewise. | |
19552 | (vax_output_int_subtract): Likewise. | |
19553 | * config/visium/predicates.md (visium_branch_operator): Likewise. | |
19554 | * config/visium/visium.c (rtx_ok_for_offset_p): Likewise. | |
19555 | (visium_print_operand_address): Likewise. | |
19556 | * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. | |
19557 | * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise. | |
19558 | (xtensa_expand_conditional_branch): Likewise. | |
19559 | (xtensa_copy_incoming_a7): Likewise. | |
19560 | (xtensa_output_literal): Likewise. | |
19561 | * dfp.c (decimal_real_maxval): Likewise. | |
19562 | * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise. | |
19563 | ||
19564 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19565 | Alan Hayward <alan.hayward@arm.com> | |
19566 | David Sherwood <david.sherwood@arm.com> | |
19567 | ||
19568 | * genmodes.c (mode_size_inline): Add an E_ prefix to mode names. | |
19569 | (mode_nunits_inline): Likewise. | |
19570 | (mode_inner_inline): Likewise. | |
19571 | (mode_unit_size_inline): Likewise. | |
19572 | (mode_unit_precision_inline): Likewise. | |
19573 | (emit_insn_modes_h): Likewise. Also emit a #define of the | |
19574 | unprefixed name. | |
19575 | (emit_mode_wider): Add an E_ prefix to mode names. | |
19576 | (emit_mode_complex): Likewise. | |
19577 | (emit_mode_inner): Likewise. | |
19578 | (emit_mode_adjustments): Likewise. | |
19579 | (emit_mode_int_n): Likewise. | |
19580 | * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP) | |
19581 | (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP) | |
19582 | (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP) | |
19583 | (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise. | |
19584 | (CRC32_BUILTIN, ENTRY): Likewise. | |
19585 | * config/aarch64/aarch64.c (aarch64_push_regs): Likewise. | |
19586 | (aarch64_pop_regs): Likewise. | |
19587 | (aarch64_process_components): Likewise. | |
19588 | * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise. | |
19589 | * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP) | |
19590 | (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP) | |
19591 | (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise. | |
19592 | * config/arm/arm.c (arm_init_libfuncs): Likewise. | |
19593 | * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode): | |
19594 | Likewise. | |
19595 | * config/i386/i386-builtin.def (pcmpestr): Likewise. | |
19596 | (pcmpistr): Likewise. | |
19597 | * config/microblaze/microblaze.c (double_memory_operand): Likewise. | |
19598 | * config/mmix/mmix.c (mmix_output_condition): Likewise. | |
19599 | * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok): | |
19600 | Likewise. | |
19601 | * config/rl78/rl78.c (mduc_regs): Likewise. | |
19602 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise. | |
19603 | (htm_expand_builtin): Likewise. | |
19604 | * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise. | |
19605 | * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise. | |
19606 | * config/xtensa/xtensa.c (print_operand): Likewise. | |
19607 | * expmed.h (NUM_MODE_PARTIAL_INT): Likewise. | |
19608 | (NUM_MODE_VECTOR_INT): Likewise. | |
19609 | * genoutput.c (null_operand): Likewise. | |
19610 | (output_operand_data): Likewise. | |
19611 | * genrecog.c (print_parameter_value): Likewise. | |
19612 | * lra.c (debug_operand_data): Likewise. | |
19613 | ||
19614 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19615 | ||
19616 | * dwarf2out.c (scompare_loc_descriptor_wide) | |
19617 | (scompare_loc_descriptor_narrow): New functions, split out from... | |
19618 | (scompare_loc_descriptor): ...here. | |
19619 | * expmed.c (emit_store_flag_int): New function, split out from... | |
19620 | (emit_store_flag): ...here. | |
19621 | ||
19622 | 2017-08-30 Richard Biener <rguenther@suse.de> | |
19623 | ||
19624 | * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames. | |
19625 | (dwarf2out_early_finish): Move setting of AT_pubnames from | |
19626 | early debug output to early finish. | |
19627 | ||
19628 | 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com> | |
19629 | ||
19630 | * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker | |
19631 | and -mdata-region to the assembler. | |
19632 | ||
19633 | 2017-08-30 Richard Biener <rguenther@suse.de> | |
19634 | ||
19635 | * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate | |
19636 | attributes. | |
19637 | (gen_subprogram_die): Add DW_AT_object_pointer only early. | |
19638 | (dwarf2out_early_global_decl): Only generate a DIE for the | |
19639 | abstract origin if it doesn't already exist or is a declaration DIE. | |
19640 | (resolve_addr): Do not add the linkage name twice when | |
19641 | generating a stub DIE for the DW_TAG_GNU_call_site target. | |
19642 | ||
19643 | 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org> | |
19644 | ||
19645 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
19646 | Use machine_mode rather than int for arg1_mode. | |
19647 | ||
19648 | 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com> | |
19649 | ||
19650 | PR target/82015 | |
19651 | * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure | |
19652 | that the second argument of the built-in functions to unpack | |
19653 | 128-bit scalar types to 64-bit values is 0 or 1. Change to use a | |
19654 | switch statement instead a lot of if statements. | |
19655 | * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator): | |
19656 | Allow 64-bit values to be in Altivec registers as well as | |
19657 | traditional floating point registers. | |
19658 | (pack<mode>, FMOVE128_VSX iterator): Likewise. | |
19659 | ||
19660 | 2017-08-29 Alexander Monakov <amonakov@ispras.ru> | |
19661 | ||
19662 | * ira-costs.c (record_address_regs): Handle both operands of PLUS for | |
19663 | MAX_REGS_PER_ADDRESS == 1. | |
19664 | ||
19665 | 2017-08-29 Uros Bizjak <ubizjak@gmail.com> | |
19666 | ||
19667 | * config/i386/i386.opt (flag_fentry): Do not init to -1. | |
19668 | * config/i386/i386.c (ix86_option_override_internal): Simplify | |
19669 | setting of opts->x_flag_entry. | |
19670 | ||
19671 | 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
19672 | Jakub Jelinek <jakub@redhat.com> | |
19673 | Richard Biener <rguenther@suse.de> | |
19674 | ||
19675 | PR tree-optimization/81503 | |
19676 | * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure | |
19677 | folded constant fits in the target type; reorder tests for clarity. | |
19678 | ||
19679 | 2017-08-29 Martin Liska <mliska@suse.cz> | |
19680 | ||
19681 | * passes.def: Include pass_lower_switch. | |
19682 | * stmt.c (dump_case_nodes): Remove and move to | |
19683 | tree-switch-conversion. | |
19684 | (case_values_threshold): Likewise. | |
19685 | (expand_switch_as_decision_tree_p): Likewise. | |
19686 | (emit_case_decision_tree): Likewise. | |
19687 | (expand_case): Likewise. | |
19688 | (balance_case_nodes): Likewise. | |
19689 | (node_has_low_bound): Likewise. | |
19690 | (node_has_high_bound): Likewise. | |
19691 | (node_is_bounded): Likewise. | |
19692 | (emit_case_nodes): Likewise. | |
19693 | (struct simple_case_node): New struct. | |
19694 | (add_case_node): Remove. | |
19695 | (emit_case_dispatch_table): Use vector instead of case_list. | |
19696 | (reset_out_edges_aux): Remove. | |
19697 | (compute_cases_per_edge): Likewise. | |
19698 | (expand_case): Build list of simple_case_node. | |
19699 | (expand_sjlj_dispatch_table): Use it. | |
19700 | * tree-switch-conversion.c (struct case_node): Moved from | |
19701 | stmt.c and adjusted. | |
19702 | (emit_case_nodes): Likewise. | |
19703 | (node_has_low_bound): Likewise. | |
19704 | (node_has_high_bound): Likewise. | |
19705 | (node_is_bounded): Likewise. | |
19706 | (case_values_threshold): Likewise. | |
19707 | (reset_out_edges_aux): Likewise. | |
19708 | (compute_cases_per_edge): Likewise. | |
19709 | (add_case_node): Likewise. | |
19710 | (dump_case_nodes): Likewise. | |
19711 | (balance_case_nodes): Likewise. | |
19712 | (expand_switch_as_decision_tree_p): Likewise. | |
19713 | (emit_jump): Likewise. | |
19714 | (emit_case_decision_tree): Likewise. | |
19715 | (try_switch_expansion): Likewise. | |
19716 | (do_jump_if_equal): Likewise. | |
19717 | (emit_cmp_and_jump_insns): Likewise. | |
19718 | (fix_phi_operands_for_edge): New function. | |
19719 | (record_phi_operand_mapping): Likewise. | |
19720 | (class pass_lower_switch): New pass. | |
19721 | (pass_lower_switch::execute): New function. | |
19722 | (make_pass_lower_switch): Likewise. | |
19723 | (conditional_probability): | |
19724 | * timevar.def: Add TV_TREE_SWITCH_LOWERING. | |
19725 | * tree-pass.h: Add make_pass_lower_switch. | |
19726 | ||
19727 | 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com> | |
19728 | ||
19729 | PR target/80993 | |
19730 | * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt | |
19731 | handlers as used. | |
19732 | ||
19733 | 2017-08-29 Richard Biener <rguenther@suse.de> | |
19734 | ||
19735 | * dwarf2out.c (add_dwarf_attr): When checking is enabled verify | |
19736 | we do not add a DW_AT_inline attribute twice. | |
19737 | (gen_subprogram_die): Remove code setting DW_AT_inline on | |
19738 | DECL_ABSTRACT_P nodes. | |
19739 | ||
19740 | 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org> | |
19741 | ||
19742 | * gimplify.c (gimplify_call_expr): Copy the nothrow flag to | |
19743 | calls to internal functions. | |
19744 | (gimplify_modify_expr): Likewise. | |
19745 | * tree-call-cdce.c (use_internal_fn): Likewise. | |
19746 | * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. | |
19747 | (convert_to_divmod): Set the nothrow flag. | |
19748 | * tree-if-conv.c (predicate_mem_writes): Likewise. | |
19749 | * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. | |
19750 | (vectorizable_call): Likewise. | |
19751 | (vectorizable_store): Likewise. | |
19752 | (vectorizable_load): Likewise. | |
19753 | * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise. | |
19754 | (vect_recog_mask_conversion_pattern): Likewise. | |
19755 | ||
19756 | 2017-08-29 Martin Liska <mliska@suse.cz> | |
19757 | ||
19758 | PR other/39851 | |
19759 | * gcc.c (driver_handle_option): Add new argument. | |
19760 | * opts-common.c (handle_option): Pass | |
19761 | target_option_override_hook. | |
19762 | * opts-global.c (lang_handle_option): Add new option. | |
19763 | (set_default_handlers): Add new argument. | |
19764 | (decode_options): Likewise. | |
19765 | * opts.c (target_handle_option): Likewise. | |
19766 | (common_handle_option): Call target_option_override_hook. | |
19767 | * opts.h (struct cl_option_handler_func): Add hook for | |
19768 | target option override. | |
19769 | (struct cl_option_handlers): Likewise. | |
19770 | (set_default_handlers): Add new argument. | |
19771 | (decode_options): Likewise. | |
19772 | (common_handle_option): Likewise. | |
19773 | (target_handle_option): Likewise. | |
19774 | * toplev.c (toplev::main): Pass targetm.target_option.override | |
19775 | hook. | |
19776 | ||
19777 | 2017-08-29 Richard Biener <rguenther@suse.de> | |
19778 | Dominik Infuehr <dominik.infuehr@theobroma-systems.com> | |
19779 | ||
19780 | * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine | |
19781 | life to the active subtree. | |
19782 | ||
19783 | 2017-08-28 Jeff Law <law@redhat.com> | |
19784 | ||
19785 | * tree-ssa-dom.c (edge_info::record_simple_equiv): Call | |
19786 | derive_equivalences. | |
19787 | (derive_equivalences_from_bit_ior, record_temporary_equivalences): | |
19788 | Code moved into.... | |
19789 | (edge_info::derive_equivalences): New private member function | |
19790 | ||
19791 | * tree-ssa-dom.c (class edge_info): Changed from a struct | |
19792 | to a class. Add ctor/dtor, methods and data members. | |
19793 | (edge_info::edge_info): Renamed from allocate_edge_info. | |
19794 | Initialize additional members. | |
19795 | (edge_info::~edge_info): New. | |
19796 | (free_dom_edge_info): Delete the edge info. | |
19797 | (record_edge_info): Use new class & associated member functions. | |
19798 | Tighten forms for testing for edge equivalences. | |
19799 | (record_temporary_equivalences): Iterate over the simple | |
19800 | equivalences rather than assuming there's only one per edge. | |
19801 | (cprop_into_successor_phis): Iterate over the simple | |
19802 | equivalences rather than assuming there's only one per edge. | |
19803 | (optimize_stmt): Use operand_equal_p rather than pointer | |
19804 | equality for mini-DSE code. | |
19805 | ||
19806 | 2017-08-28 Nathan Sidwell <nathan@acm.org> | |
19807 | ||
19808 | * gcc.c (execute): Fold SIGPIPE handling into switch | |
19809 | statement. Adjust internal error message. | |
19810 | ||
19811 | 2017-08-28 Richard Biener <rguenther@suse.de> | |
19812 | ||
19813 | PR debug/81993 | |
19814 | * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes): | |
19815 | Do nothing for removed DIEs. | |
19816 | ||
19817 | 2017-08-28 Richard Biener <rguenther@suse.de> | |
19818 | ||
19819 | PR tree-optimization/81977 | |
19820 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through | |
19821 | memcpy. | |
19822 | ||
19823 | 2017-08-28 Alexander Monakov <amonakov@ispras.ru> | |
19824 | ||
19825 | PR target/80640 | |
19826 | * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite. | |
19827 | * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when | |
19828 | using targetm.gen_mem_thread_fence. | |
19829 | ||
19830 | 2017-08-27 Uros Bizjak <ubizjak@gmail.com> | |
19831 | ||
19832 | PR target/81995 | |
19833 | * config/i386/i386.md (*<btsc><mode>): Change operand 2 | |
19834 | predicate to register_operand. Reorder operands. | |
19835 | (*btr<mode>): Ditto. | |
19836 | (*<btsc><mode>_mask): Change operand 3 predicate to register_operand. | |
19837 | (*btr<mode>_mask): Ditto. | |
19838 | ||
19839 | 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org> | |
19840 | ||
19841 | * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h. | |
19842 | * config/rs6000/xmmintrin.h: New file. | |
19843 | * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h. | |
19844 | ||
19845 | 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
19846 | ||
19847 | PR target/81504 | |
19848 | * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference | |
19849 | parameter and_insn and return it. | |
19850 | (recombine_lvx_pattern): Insert a copy to ensure availability of | |
19851 | the base register of the copied masking operation at the point of | |
19852 | the instruction replacement. | |
19853 | (recombine_stvx_pattern): Likewise. | |
19854 | ||
19855 | 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com> | |
19856 | ||
19857 | * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete | |
19858 | undocumented switches. | |
19859 | (-mpower9-dform-vector): Likewise. | |
19860 | (-mpower9-dform): Likewise. | |
19861 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update | |
19862 | comments to delete references to -mpower9-dform* switches. | |
19863 | * config/rs6000/predicates.md (vsx_quad_dform_memory_operand): | |
19864 | Delete reference to -mpower9-dform* switches, test for | |
19865 | -mpower9-vector instead. | |
19866 | * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise. | |
19867 | (OTHER_P9_VECTOR_MASKS): Likewise. | |
19868 | (POWERPC_MASKS): Likewise. | |
19869 | * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change | |
19870 | tests against -mpower9-dform* to -mpower9-vector. Delete code | |
19871 | that checked for -mpower9-dform* consistancy with other options. | |
19872 | Add test for -mpower9-misc to enable other power9 switches. | |
19873 | (rs6000_init_hard_regno_mode_ok): Likewise. | |
19874 | (rs6000_option_override_internal): Likewise. | |
19875 | (rs6000_emit_prologue): Likewise. | |
19876 | (rs6000_emit_epilogue): Likewise. | |
19877 | (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}. | |
19878 | (rs6000_disable_incompatiable_switches): Delete -mpower9-dform. | |
19879 | (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar | |
19880 | -mpower9-vector. | |
19881 | (emit_fusion_p9_store): Likewise. | |
19882 | * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete | |
19883 | resetting these macros if the assembler does not support ISA 3.0 | |
19884 | instructions. | |
19885 | (TARGET_P9_DFORM_VECTOR): Likewise. | |
19886 | * config/rs6000/rs6000.md (peepholes to optimize altivec memory): | |
19887 | Change to use -mpower9-vector instead of -mpower9-dform-scalar. | |
19888 | ||
19889 | 2017-08-25 Alan Modra <amodra@gmail.com> | |
19890 | ||
19891 | PR rtl-optimization/81747 | |
19892 | * cse.c (cse_extended_basic_block): Don't attempt to record | |
19893 | equivalences for degenerate conditional branches that branch | |
19894 | to their fall-through. | |
19895 | ||
19896 | 2017-08-24 Martin Sebor <msebor@redhat.com> | |
19897 | ||
19898 | PR middle-end/81908 | |
19899 | * gimple-fold.c (size_must_be_zero_p): New function. | |
19900 | (gimple_fold_builtin_memory_op): Call it. | |
19901 | ||
19902 | 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org> | |
19903 | ||
19904 | * config/rs6000/mm_malloc.h: New file. | |
19905 | ||
19906 | 2017-08-24 Bin Cheng <bin.cheng@arm.com> | |
19907 | ||
19908 | PR tree-optimization/81913 | |
19909 | * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter | |
19910 | analysis when either IVs in condition can wrap. | |
19911 | ||
19912 | 2017-08-24 Uros Bizjak <ubizjak@gmail.com> | |
19913 | ||
19914 | * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40. | |
19915 | * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove. | |
19916 | ||
19917 | 2017-08-24 Richard Biener <rguenther@suse.de> | |
19918 | ||
19919 | PR target/81921 | |
19920 | * targhooks.c (default_target_can_inline_p): Properly | |
19921 | use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET | |
19922 | is present and always compare. | |
19923 | * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not | |
19924 | infer -mfpmath=sse from TARGET_SSE_P. | |
19925 | (ix86_can_inline_p): Properly use target_option_default_node when | |
19926 | no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare. | |
19927 | ||
19928 | 2017-08-24 Richard Biener <rguenther@suse.de> | |
19929 | ||
19930 | PR debug/81936 | |
19931 | * dwarf2out.c (output_die): Handle flag_generate_offload like | |
19932 | flag_generate_lto. | |
19933 | (output_comp_unit): Likewise. | |
19934 | (gen_array_type_die): Likewise. | |
19935 | (dwarf2out_early_finish): Likewise. | |
19936 | (note_variable_value_in_expr): Likewise. | |
19937 | (dwarf2out_finish): Likewise. Adjust assert. | |
19938 | * cgraphunit.c (symbol_table::compile): Move setting of | |
19939 | flag_generate_offload earlier ... | |
19940 | (symbol_table::finalize_compilation_unit): ... here, before | |
19941 | early debug finalization. | |
19942 | ||
19943 | 2017-08-24 Richard Biener <rguenther@suse.de> | |
19944 | ||
19945 | * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h | |
19946 | and ipa-fnsummary.h. | |
19947 | (ix86_can_inline_p): When ix86_fpmath flags do not match | |
19948 | check whether the callee uses FP math at all. | |
19949 | ||
19950 | 2017-08-24 Aldy Hernandez <aldyh@redhat.com> | |
19951 | ||
19952 | PR middle-end/81931 | |
19953 | * tree-ssanames.c (get_nonzero_bits): Use element_precision | |
19954 | instead of TYPE_PRECISION. | |
19955 | ||
19956 | 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org> | |
19957 | Alan Hayward <alan.hayward@arm.com> | |
19958 | David Sherwood <david.sherwood@arm.com> | |
19959 | ||
19960 | * combine.c (make_extraction): Use subreg_offset_from_lsb. | |
19961 | ||
19962 | 2017-08-23 Daniel Santos <daniel.santos@pobox.com> | |
19963 | ||
19964 | * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset): | |
19965 | Remove field. | |
19966 | (ix86_frame::stack_realign_allocate): New field. | |
19967 | (struct machine_frame_state): Modify comments. | |
19968 | (machine_frame_state::sp_realigned_fp_end): New field. | |
19969 | * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame | |
19970 | layout calculation. | |
19971 | (sp_valid_at): Add assertion to assure no attempt to access invalid | |
19972 | offset of a realigned stack. | |
19973 | (fp_valid_at): Likewise. | |
19974 | (choose_baseaddr): Modify comments. | |
19975 | (ix86_emit_outlined_ms2sysv_save): Adjust to changes in | |
19976 | ix86_expand_prologue. | |
19977 | (ix86_expand_prologue): Modify stack realignment and allocation. | |
19978 | (ix86_expand_epilogue): Modify comments. | |
19979 | * doc/sourcebuild.texi: Add documentation for target selectors avx2, | |
19980 | avx2_runtime, avx512f, and avx512f_runtime. | |
19981 | ||
19982 | 2017-08-23 Uros Bizjak <ubizjak@gmail.com> | |
19983 | ||
19984 | * config/i386/i386.opt: Remove unneeded Init(0) initializations. | |
19985 | (mstackrealign): Do not init to -1. | |
19986 | * config/i386/i386.c (ix86_option_override_internal): | |
19987 | Check opts_set, not opts when setting default value of | |
19988 | opts->x_ix86_force_align_arg_pointer. | |
19989 | ||
19990 | 2017-08-23 Richard Biener <rguenther@suse.de> | |
19991 | ||
19992 | * function.c (fndecl_name): Use verbosity 1 (no arguments) for | |
19993 | lang_hooks.decl_printable_name. | |
19994 | * print-rtl-function.c (print_rtx_function): Likewise. | |
19995 | * tree-pretty-print.c (dump_function_header): Likewise. | |
19996 | ||
19997 | 2017-08-23 Richard Biener <rguenther@suse.de> | |
19998 | ||
19999 | PR lto/81940 | |
20000 | * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with | |
20001 | -g0 at compile-time. | |
20002 | ||
20003 | 2017-08-23 Tamar Christina <tamar.christina@arm.com> | |
20004 | ||
20005 | PR middle-end/19706 | |
20006 | * doc/sourcebuild.texi (Other hardware attributes): | |
20007 | Document xorsign. | |
20008 | ||
20009 | 2017-08-23 Tamar Christina <tamar.christina@arm.com> | |
20010 | ||
20011 | PR middle-end/19706 | |
20012 | * tree-ssa-math-opts.c (convert_expand_mult_copysign): | |
20013 | Fix single-use check. | |
20014 | ||
20015 | 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
20016 | ||
20017 | * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available. | |
20018 | ||
20019 | 2017-08-22 Daniel Santos <daniel.santos@pobox.com> | |
20020 | ||
20021 | * doc/install.texi: Modify to add more details on running selected | |
20022 | tests. | |
20023 | ||
20024 | 2017-08-22 Daniel Santos <daniel.santos@pobox.com> | |
20025 | ||
20026 | * config/i386/i386.c (ix86_option_override_internal): Error when -mx32 | |
20027 | is combined with -mabi=ms. | |
20028 | (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute | |
20029 | ms_abi. | |
20030 | ||
20031 | 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
20032 | ||
20033 | PR tree-optimization/81488 | |
20034 | * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited | |
20035 | and cached_basis fields. | |
20036 | (MAX_SPREAD): New constant. | |
20037 | (alloc_cand_and_find_basis): Initialize new fields. | |
20038 | (clear_visited): New function. | |
20039 | (create_phi_basis_1): Rename from create_phi_basis, set visited | |
20040 | and cached_basis fields. | |
20041 | (create_phi_basis): New wrapper function. | |
20042 | (phi_add_costs_1): Rename from phi_add_costs, add spread | |
20043 | parameter, set visited field, short-circuit when limits reached. | |
20044 | (phi_add_costs): New wrapper function. | |
20045 | (record_phi_increments_1): Rename from record_phi_increments, set | |
20046 | visited field. | |
20047 | (record_phi_increments): New wrapper function. | |
20048 | (phi_incr_cost_1): Rename from phi_incr_cost, set visited field. | |
20049 | (phi_incr_cost): New wrapper function. | |
20050 | (all_phi_incrs_profitable_1): Rename from | |
20051 | all_phi_incrs_profitable, set visited field. | |
20052 | (all_phi_incrs_profitable): New wrapper function. | |
20053 | ||
20054 | 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org> | |
20055 | Alan Hayward <alan.hayward@arm.com> | |
20056 | David Sherwood <david.sherwood@arm.com> | |
20057 | ||
20058 | * rtl.h (paradoxical_subreg_p): Define inline, and add a version | |
20059 | that takes the outer and inner modes. | |
20060 | * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE | |
20061 | comparison as the canonical test for a paradoxical subreg. | |
20062 | * combine.c (simplify_set): Use paradoxical_subreg_p. | |
20063 | (make_extraction): Likewise. | |
20064 | (force_to_mode): Likewise. | |
20065 | (rtx_equal_for_field_assignment_p): Likewise. | |
20066 | (gen_lowpart_for_combine): Likewise. | |
20067 | (simplify_comparison): Likewise. | |
20068 | * cse.c (equiv_constant): Likewise. | |
20069 | * expmed.c (store_bit_field_1): Likewise. | |
20070 | * final.c (alter_subreg): Likewise. | |
20071 | * fwprop.c (propagate_rtx): Likewise. | |
20072 | (forward_propagate_subreg): Likewise. | |
20073 | * ira-conflicts.c (ira_build_conflicts): Likewise. | |
20074 | * lower-subreg.c (simplify_gen_subreg_concatn): Likewise. | |
20075 | * lra-constraints.c (curr_insn_transform): Likewise. | |
20076 | (split_reg): Likewise. | |
20077 | * lra-eliminations.c (move_plus_up): Likewise. | |
20078 | (lra_eliminate_regs_1): Likewise. | |
20079 | * recog.c (general_operand): Likewise. | |
20080 | * ree.c (combine_reaching_defs): Likewise. | |
20081 | * reload.c (push_reload): Likewise. | |
20082 | (find_reloads): Likewise. | |
20083 | * reload1.c (elimination_effects): Likewise. | |
20084 | (compute_reload_subreg_offset): Likewise. | |
20085 | (choose_reload_regs): Likewise. | |
20086 | * rtlanal.c (subreg_lsb_1): Likewise. | |
20087 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
20088 | (simplify_subreg): Likewise. | |
20089 | * var-tracking.c (track_loc_p): Likewise. | |
20090 | * emit-rtl.c (byte_lowpart_offset): Likewise. | |
20091 | (paradoxical_subreg_p): Delete out-of-line definition. | |
20092 | ||
20093 | 2017-08-22 Jeff Law <law@redhat.com> | |
20094 | ||
20095 | PR tree-optimization/81741 | |
20096 | PR tree-optimization/71947 | |
20097 | * tree-ssa-dom.c: Include tree-inline.h. | |
20098 | (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME | |
20099 | equivalences if one is more expensive to compute than the other. | |
20100 | * tree-ssa-scopedtables.h (class const_or_copies): Make | |
20101 | record_const_or_copy_raw method private. | |
20102 | (class avail_exprs_stack): New method simplify_binary_operation. | |
20103 | * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call | |
20104 | avail_exprs_stack::simplify_binary_operation as needed. | |
20105 | (avail_exprs_stack::simplify_binary_operation): New function. | |
20106 | ||
20107 | 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
20108 | ||
20109 | * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt. | |
20110 | * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define. | |
20111 | (DOT_SYMBOLS): Likewise. | |
20112 | (MINIMAL_TOC_SECTION_ASM_OP): Likewise. | |
20113 | (RELOCATABLE_NEEDS_FIXUP): Likewise. | |
20114 | (RS6000_ABI_NAME): Likewise. | |
20115 | (TARGET_CMODEL): Likewise. | |
20116 | (TOC_SECTION_ASM_OP): Likewise. | |
20117 | (SET_CMODEL): New macro. | |
20118 | (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options. | |
20119 | ||
20120 | 2017-08-22 Richard Biener <rguenther@suse.de> | |
20121 | ||
20122 | * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT] | |
20123 | to allow for free-lang-data replacements similar to verify_type_variant. | |
20124 | ||
20125 | 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org> | |
20126 | Alan Hayward <alan.hayward@arm.com> | |
20127 | David Sherwood <david.sherwood@arm.com> | |
20128 | ||
20129 | * config/aarch64/aarch64.md (casesi): Use DImode rather than | |
20130 | VOIDmode for the LABEL_REF. | |
20131 | ||
20132 | 2017-08-22 Richard Biener <rguenther@suse.de> | |
20133 | ||
20134 | * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes. | |
20135 | ||
20136 | 2017-08-22 Richard Biener <rguenther@suse.de> | |
20137 | ||
20138 | * common.opt (feliminate-dwarf2-dups): Ignore. | |
20139 | * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation. | |
20140 | * dwarf2out.c (push_new_compile_unit, pop_compile_unit, | |
20141 | same_die_p_wrap, compute_section_prefix, | |
20142 | is_symbol_die, assign_symbol_names, break_out_includes): Remove. | |
20143 | (comdat_symbol_id, comdat_symbol_number): Likewise. | |
20144 | (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type): | |
20145 | Likewise. | |
20146 | (check_duplicate_cu, record_comdat_symbol_number): Likewise. | |
20147 | (output_die): Mark unreachable path unreachable. | |
20148 | (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL. | |
20149 | (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL. | |
20150 | (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups. | |
20151 | (dwarf2out_early_finish): Likewise. | |
20152 | ||
20153 | 2017-08-22 Aldy Hernandez <aldyh@redhat.com> | |
20154 | ||
20155 | * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend. | |
20156 | ||
20157 | 2017-08-22 Georg-Johann Lay <avr@gjlay.de> | |
20158 | ||
20159 | PR target/81910 | |
20160 | * config/avr/avr.c (avr_handle_addr_attribute): Early return if | |
20161 | not VAR_P. Filter attribute warnings with OPT_Wattributes. | |
20162 | (avr_attribute_table) <io, io_low, address>: Initialize | |
20163 | .decl_required with true. | |
20164 | ||
20165 | 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com> | |
20166 | ||
20167 | * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete | |
20168 | undocumented debugging options. | |
20169 | (-mvsx-scalar-double): Likewise. | |
20170 | (-mallow-df-permute): Likewise. | |
20171 | (-mvectorize-builtins): Likewise. | |
20172 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise. | |
20173 | (rs6000_builtin_vectorized_function): Likewise. | |
20174 | (rs6000_builtin_md_vectorized_function): Likewise. | |
20175 | (rs6000_opt_vars): Likewise. | |
20176 | ||
20177 | 2017-08-21 Uros Bizjak <ubizjak@gmail.com> | |
20178 | ||
20179 | PR target/46091 | |
20180 | * config/i386/i386.md (*btsq_imm): Rename from *btsq. | |
20181 | (*btrq_imm): Rename from *btrq. | |
20182 | (*btcq_imm): Rename from *btcq. | |
20183 | (btsc): New code attribute. | |
20184 | (*<btsc><mode>): New insn pattern. | |
20185 | (*btr<mode>): Ditto. | |
20186 | (*<btsc><mode>_mask): New insn_and_split pattern. | |
20187 | (*btr<mode>_mask): Ditto. | |
20188 | ||
20189 | 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> | |
20190 | Alan Hayward <alan.hayward@arm.com> | |
20191 | David Sherwood <david.sherwood@arm.com> | |
20192 | ||
20193 | * function.c (pad_below): Simplify padding calculation. | |
20194 | ||
20195 | 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> | |
20196 | Alan Hayward <alan.hayward@arm.com> | |
20197 | David Sherwood <david.sherwood@arm.com> | |
20198 | ||
20199 | * target.def (function_prologue): Remove frame size argument. | |
20200 | (function_epilogue): Likewise. | |
20201 | * doc/tm.texi: Regenerate. | |
20202 | * final.c (final_start_function): Update call to function_prologue. | |
20203 | (final_end_function): Update call to function_epilogue. | |
20204 | (default_function_pro_epilogue): Remove frame size argument. | |
20205 | * output.h (default_function_pro_epilogue): Likewise. | |
20206 | * config/arm/arm.c (arm_output_function_epilogue): Likewise. | |
20207 | (arm_output_function_prologue): Likewise. | |
20208 | * config/frv/frv.c (frv_function_prologue): Likewise. | |
20209 | (frv_function_epilogue): Likewise. | |
20210 | * config/i386/i386.c (ix86_output_function_epilogue): Likewise. | |
20211 | * config/ia64/ia64.c (ia64_output_function_prologue): Likewise. | |
20212 | (ia64_output_function_epilogue): Likewise. | |
20213 | * config/m32r/m32r.c (m32r_output_function_prologue): Likewise. | |
20214 | (m32r_output_function_epilogue): Likewise. | |
20215 | * config/microblaze/microblaze.c (microblaze_function_prologue) | |
20216 | (microblaze_function_epilogue): Likewise. | |
20217 | * config/mips/mips.c (mips_output_function_prologue): Likewise. | |
20218 | (mips_output_function_epilogue): Likewise. | |
20219 | * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise. | |
20220 | (mmix_target_asm_function_epilogue): Likewise. | |
20221 | * config/msp430/msp430.c (msp430_start_function): Likewise. | |
20222 | * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise. | |
20223 | (nds32_asm_function_epilogue): Likewise. | |
20224 | * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise. | |
20225 | * config/pa/pa.c (pa_output_function_prologue): Likewise. | |
20226 | (pa_output_function_epilogue): Likewise. | |
20227 | * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue) | |
20228 | (rs6000_output_function_epilogue): Likewise. | |
20229 | * config/rl78/rl78.c (rl78_start_function): Likewise. | |
20230 | * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise. | |
20231 | (rs6000_output_function_epilogue): Likewise. | |
20232 | * config/rx/rx.c (rx_output_function_prologue): Likewise. | |
20233 | * config/sh/sh.c (sh_output_function_epilogue): Likewise. | |
20234 | * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise. | |
20235 | (sparc_asm_function_epilogue): Likewise. | |
20236 | ||
20237 | 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> | |
20238 | ||
20239 | * tree.h (type_has_mode_precision_p): New function. | |
20240 | * convert.c (convert_to_integer_1): Use it. | |
20241 | * expr.c (expand_expr_real_2): Likewise. | |
20242 | (expand_expr_real_1): Likewise. | |
20243 | * fold-const.c (fold_single_bit_test_into_sign_test): Likewise. | |
20244 | * match.pd: Likewise. | |
20245 | * tree-ssa-forwprop.c (simplify_rotate): Likewise. | |
20246 | * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise. | |
20247 | * tree-tailcall.c (process_assignment): Likewise. | |
20248 | * tree-vect-loop.c (vectorizable_reduction): Likewise. | |
20249 | * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern) | |
20250 | (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise. | |
20251 | * tree-vect-stmts.c (vectorizable_conversion): Likewise. | |
20252 | (vectorizable_assignment): Likewise. | |
20253 | (vectorizable_shift): Likewise. | |
20254 | (vectorizable_operation): Likewise. | |
20255 | * tree-vrp.c (register_edge_assert_for_2): Likewise. | |
20256 | ||
20257 | 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com> | |
20258 | ||
20259 | * match.pd: Add pow (C, x) simplification. | |
20260 | ||
20261 | 2017-08-21 Richard Biener <rguenther@suse.de> | |
20262 | ||
20263 | PR tree-optimization/81900 | |
20264 | * tree-ssa-pre.c (compute_antic_aux): Properly compute changed | |
20265 | for blocks with abnormal predecessors. | |
20266 | (compute_antic): Do not set visited flag prematurely. | |
20267 | ||
20268 | 2017-08-21 Georg-Johann Lay <avr@gjlay.de> | |
20269 | ||
20270 | PR target/79883 | |
20271 | * config/avr/avr.c (avr_set_current_function): Typo in diagnostic. | |
20272 | ||
20273 | 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> | |
20274 | ||
20275 | * stor-layout.h (vector_type_mode): Move to... | |
20276 | * tree.h (vector_type_mode): ...here. | |
20277 | * stor-layout.c (vector_type_mode): Move to... | |
20278 | * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h. | |
20279 | ||
20280 | 2017-08-21 Richard Biener <rguenther@suse.de> | |
20281 | ||
20282 | * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and | |
20283 | register_external_die hooks. | |
20284 | (debug_false_tree_charstarstar_uhwistar): Declare. | |
20285 | (debug_nothing_tree_charstar_uhwi): Likewise. | |
20286 | * debug.c (do_nothing_debug_hooks): Adjust. | |
20287 | (debug_false_tree_charstarstar_uhwistar): New do nothing. | |
20288 | (debug_nothing_tree_charstar_uhwi): Likewise. | |
20289 | * dbxout.c (dbx_debug_hooks): Adjust. | |
20290 | (xcoff_debug_hooks): Likewise. | |
20291 | * sdbout.c (sdb_debug_hooks): Likewise. | |
20292 | * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. | |
20293 | * dwarf2out.c (macinfo_label_base): New global. | |
20294 | (dwarf2out_register_external_die): New function for the | |
20295 | register_external_die hook. | |
20296 | (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl. | |
20297 | (dwarf2_debug_hooks): Use them. | |
20298 | (dwarf2_lineno_debug_hooks): Adjust. | |
20299 | (struct die_struct): Add with_offset flag. | |
20300 | (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION, | |
20301 | DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION, | |
20302 | DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION, | |
20303 | DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION, | |
20304 | DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION, | |
20305 | DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros | |
20306 | defining section names for the early LTO debug variants. | |
20307 | (reset_indirect_string): New helper. | |
20308 | (add_AT_external_die_ref): Helper for dwarf2out_register_external_die. | |
20309 | (print_dw_val): Add support for offsetted symbol references. | |
20310 | (get_ultimate_context): Split out from is_cxx. | |
20311 | (is_cxx): Use get_ultimate_context. | |
20312 | (is_fortran): Add decl overload. | |
20313 | (compute_comp_unit_symbol): Split out worker from | |
20314 | compute_section_prefix. | |
20315 | (compute_section_prefix): Call compute_comp_unit_symbol and | |
20316 | set comdat_type_p here. | |
20317 | (output_die): Skip DIE symbol output for the LTO added one. | |
20318 | Handle DIE symbol references with offset. | |
20319 | (output_comp_unit): Guard section name mangling properly. | |
20320 | For LTO debug sections emit a symbol at the section beginning | |
20321 | which we use to refer to its DIEs. | |
20322 | (add_abstract_origin_attribute): For DIEs registered via | |
20323 | dwarf2out_register_external_die directly refer to the early | |
20324 | DIE rather than indirectly through the shadow one we created. | |
20325 | Remove obsolete call to dwarf2out_abstract_function for | |
20326 | non-function/block origins. | |
20327 | (gen_array_type_die): When generating early LTO debug do | |
20328 | not emit DW_AT_string_length. | |
20329 | (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs | |
20330 | late when in LTO. As suggested place a gcc_unreachable for | |
20331 | the DECL_ABSTRACT_P case. | |
20332 | (gen_subprogram_die): Avoid another specification DIE | |
20333 | for early built declarations/definitions for the late LTO case. | |
20334 | (gen_variable_die): Add type references for late duplicated VLA dies | |
20335 | when in late LTO. | |
20336 | (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function, | |
20337 | we have the abstract instance already. | |
20338 | (process_scope_var): Adjust decl DIE contexts in LTO which | |
20339 | first puts them in limbo. | |
20340 | (gen_decl_die): Do not generate type DIEs late apart from | |
20341 | types for VLAs or for decls we do not yet have a DIE. Do not | |
20342 | call dwarf2out_abstract_function late. | |
20343 | (dwarf2out_early_global_decl): Make sure to create DIEs | |
20344 | for abstract instances of a decl first. | |
20345 | (dwarf2out_late_global_decl): Adjust comment. | |
20346 | (output_macinfo_op): With multiple macro sections use | |
20347 | macinfo_label_base to distinguish labels. | |
20348 | (output_macinfo): Likewise. Update macinfo_label_base. | |
20349 | Pass in the line info label. | |
20350 | (note_variable_value_in_expr): When generating LTO resolve | |
20351 | all variable values here by generating DIEs as needed. | |
20352 | (init_sections_and_labels): Add early LTO debug flag parameter | |
20353 | and generate different sections and names if set. Add generation | |
20354 | counter for the labels so we can have multiple of them. | |
20355 | (reset_dies): Helper to allow DIEs to be output multiple times. | |
20356 | (dwarf2out_finish): When outputting DIEs to the fat part of an | |
20357 | LTO object first reset DIEs. | |
20358 | (dwarf2out_early_finish): Output early DIEs when generating LTO. | |
20359 | (modified_type_die): Check for decl_ultimate_origin being self | |
20360 | before recursing. | |
20361 | (gen_type_die_with_usage): Likewise. | |
20362 | (gen_typedef_die): Allow decl_ultimate_origin being self. | |
20363 | (set_decl_abstract_flags): Remove. | |
20364 | (set_block_abstract_flags): Likewise. | |
20365 | (dwarf2out_abstract_function): Treat the early generated DIEs | |
20366 | as the abstract copy and only add DW_AT_inline and | |
20367 | DW_AT_artificial here and call set_decl_origin_self. | |
20368 | If the DIE has an abstract origin don't do anything. | |
20369 | * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL | |
20370 | if we have none yet (Go fails to build one, PR78628). | |
20371 | (variably_modified_type_p): Prevent endless recursion for Ada | |
20372 | cyclic pointer types. | |
20373 | * lto-streamer-in.c: Include debug.h. | |
20374 | (dref_queue): New global. | |
20375 | (lto_read_tree_1): Stream in DIE references. | |
20376 | (lto_input_tree): Register DIE references. | |
20377 | (input_function): Stream DECL_DEBUG_ARGS. | |
20378 | * lto-streamer-out.c: Include debug.h. | |
20379 | (lto_write_tree_1): Output DIE references. | |
20380 | (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN. | |
20381 | Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls. | |
20382 | (output_function): Stream DECL_DEBUG_ARGS. | |
20383 | * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): | |
20384 | Stream DECL_ABSTRACT_ORIGIN. | |
20385 | * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. | |
20386 | (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL | |
20387 | DECL_CONTEXT for file-scope decls. | |
20388 | * lto-streamer.h (struct dref_entry): Declare. | |
20389 | (dref_queue): Likewise. | |
20390 | * cfgexpand.c (pass_expand::execute): Do not call the | |
20391 | outlining_inline_function hook here. | |
20392 | * lto-wrapper.c (debug_obj): New global. | |
20393 | (tool_cleanup): Unlink it if required. | |
20394 | (debug_objcopy): New function. | |
20395 | (run_gcc): Handle early debug sections in the IL files by | |
20396 | extracting them to separate files, partially linkin them and | |
20397 | feeding the result back as result to the linker. | |
20398 | * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION, | |
20399 | DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION, | |
20400 | DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug | |
20401 | sections into a separate segment. | |
20402 | * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO | |
20403 | segments. | |
20404 | (darwin_asm_dwarf_section): Likewise. | |
20405 | (darwin_asm_output_dwarf_offset): Likewise. | |
20406 | * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P. | |
20407 | ||
20408 | 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> | |
20409 | Alan Hayward <alan.hayward@arm.com> | |
20410 | David Sherwood <david.sherwood@arm.com> | |
20411 | ||
20412 | * read-md.h (md_reader::record_potential_iterator_use): Replace | |
20413 | pointer argument with an rtx and an index. | |
20414 | * read-rtl.c (iterator_group::apply_iterator): Likewise. | |
20415 | (apply_mode_iterator): Likewise. | |
20416 | (apply_code_iterator): Likewise. | |
20417 | (apply_int_iterator): Likewise. | |
20418 | (apply_subst_iterator): Likewise. | |
20419 | (record_iterator_use): Likewise. | |
20420 | (record_attribute_use): Likewise. | |
20421 | (md_reader::record_potential_iterator_use): Likewise. Update calls | |
20422 | to record_iterator_use and apply_iterator. | |
20423 | (iterator_use): Replace ptr with x and index. | |
20424 | (attribute_use): Likewise. | |
20425 | (apply_attribute_uses): Update calls to apply_iterator. | |
20426 | (apply_iterators): Likewise. Update initialization of iterator_use. | |
20427 | (rtx_reader::read_rtx_code): Update calls to record_iterator_use | |
20428 | and record_potential_iterator_use. | |
20429 | (rtx_reader::read_rtx_operand): Likewise. | |
20430 | ||
20431 | 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org> | |
20432 | Alan Hayward <alan.hayward@arm.com> | |
20433 | David Sherwood <david.sherwood@arm.com> | |
20434 | ||
20435 | * varasm.c (const_rtx_hash_1): Don't hash in the mode of a | |
20436 | CONST_WIDE_INT. | |
20437 | ||
20438 | 2017-08-21 Richard Biener <rguenther@suse.de> | |
20439 | ||
20440 | PR middle-end/81884 | |
20441 | * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses | |
20442 | at struct end conservatively when comparing common bases. | |
20443 | ||
20444 | 2017-08-21 Richard Biener <rguenther@suse.de> | |
20445 | ||
20446 | * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member. | |
20447 | (mem_ref_in_stmt): Remove. | |
20448 | (determine_max_movement): Use ref index to get at the reference. | |
20449 | (invariantness_dom_walker::before_dom_children): Deal with | |
20450 | lim data already initialized. | |
20451 | (gather_mem_refs_stmt): Initialize lim data and record ref index. | |
20452 | ||
20453 | 2017-08-19 Uros Bizjak <ubizjak@gmail.com> | |
20454 | ||
20455 | * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove. | |
20456 | (TARGET_ISA_ROUND): Ditto. | |
20457 | (TARGET_ROUND): Ditto. | |
20458 | * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1. | |
20459 | * config/i386/i386.md: Ditto. | |
20460 | * config/i386/sse.md: Ditto. | |
20461 | * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND | |
20462 | with OPTION_MASK_ISA_SSE4_1. | |
20463 | ||
20464 | 2017-08-19 Uros Bizjak <ubizjak@gmail.com> | |
20465 | ||
20466 | PR target/81894 | |
20467 | * doc/extend.texi (x86 Built-in Functions): Correct the name of | |
20468 | __builtin_ia32_lzcnt_u16. | |
20469 | ||
20470 | 2017-08-18 Peter Bergner <bergner@vnet.ibm.com> | |
20471 | ||
20472 | PR target/80210 | |
20473 | * config/rs6000/rs6000.c (rs6000_activate_target_options): New function. | |
20474 | (rs6000_set_current_function): Rewrite function to use it. | |
20475 | ||
20476 | 2017-08-18 H.J. Lu <hongjiu.lu@intel.com> | |
20477 | ||
20478 | PR c/53037 | |
20479 | * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN | |
20480 | and TYPE_WARN_IF_NOT_ALIGN. | |
20481 | * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN. | |
20482 | (handle_warn_if_not_align): New. | |
20483 | (place_union_field): Call handle_warn_if_not_align. | |
20484 | (place_field): Call handle_warn_if_not_align. | |
20485 | Copy TYPE_WARN_IF_NOT_ALIGN. | |
20486 | (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN. | |
20487 | (layout_type): Likewise. | |
20488 | * tree-core.h (tree_type_common): Add warn_if_not_align. Set | |
20489 | spare to 18. | |
20490 | (tree_decl_common): Add warn_if_not_align. | |
20491 | * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN. | |
20492 | * tree.h (TYPE_WARN_IF_NOT_ALIGN): New. | |
20493 | (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise. | |
20494 | (DECL_WARN_IF_NOT_ALIGN): Likewise. | |
20495 | (SET_DECL_WARN_IF_NOT_ALIGN): Likewise. | |
20496 | * doc/extend.texi: Document warn_if_not_aligned attribute. | |
20497 | * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned. | |
20498 | ||
20499 | 2017-08-17 Martin Liska <mliska@suse.cz> | |
20500 | ||
20501 | PR bootstrap/81864 | |
20502 | * tree-loop-distribution.c (ddrs_table): Change type to pointer type. | |
20503 | (get_data_dependence): Use it as pointer type. | |
20504 | (distribute_loop): Likewise. | |
20505 | ||
20506 | 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
20507 | ||
20508 | * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant. | |
20509 | (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct. | |
20510 | (p8_vmrgow_<mode>_direct): New define_insn. | |
20511 | * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly | |
20512 | handle endianness for vmrgew and vmrgow permute patterns. | |
20513 | ||
20514 | 2017-08-17 Peter Bergner <bergner@vnet.ibm.com> | |
20515 | ||
20516 | * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE. | |
20517 | * config/rs6000/rs6000-cpus.def: Remove comment. | |
20518 | (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE; | |
20519 | (POWERPC_MASKS): Likewise. | |
20520 | * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded | |
20521 | use of TARGET_VSX_TIMODE. | |
20522 | (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX. | |
20523 | (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of | |
20524 | TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX. | |
20525 | (rs6000_option_override_internal): Remove dead code. | |
20526 | (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX. | |
20527 | (rs6000_legitimize_reload_address): Likewise. | |
20528 | (rs6000_legitimate_address_p): Likewise. | |
20529 | (rs6000_opt_masks): Delete "vsx-timode". | |
20530 | (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode | |
20531 | from function comment. | |
20532 | * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete. | |
20533 | * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE. | |
20534 | (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty | |
20535 | condition. | |
20536 | * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub. | |
20537 | * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE. | |
20538 | * config/rs6000/vsx.md (VSX_LE_128): Likewise. | |
20539 | (VSX_TI): Likewise. | |
20540 | (VSX_M): Likewise. | |
20541 | (define_peephole2): Likewise. | |
20542 | ||
20543 | 2017-08-17 Martin Sebor <msebor@redhat.com> | |
20544 | ||
20545 | PR c/81859 | |
20546 | * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading | |
20547 | past the end of an array. | |
20548 | (test_pp_format): Add test cases. | |
20549 | ||
20550 | 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org> | |
20551 | ||
20552 | * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add | |
20553 | missing ECF_NOTHROW flags. | |
20554 | ||
20555 | 2017-08-17 Peter Bergner <bergner@vnet.ibm.com> | |
20556 | ||
20557 | PR target/72804 | |
20558 | * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for | |
20559 | operands residing in integer registers. | |
20560 | (*vsx_le_perm_load_<mode>): Likewise. | |
20561 | (*vsx_le_perm_store_<mode>): Likewise. | |
20562 | (define_peephole2): Add peepholes to optimize the above. | |
20563 | ||
20564 | 2017-08-17 Marek Polacek <polacek@redhat.com> | |
20565 | ||
20566 | PR middle-end/81814 | |
20567 | * fold-const.c (operand_equal_for_comparison_p): Remove code that used | |
20568 | to mimic what shorten_compare did. Change the return type to bool. | |
20569 | (fold_cond_expr_with_comparison): Update call to | |
20570 | operand_equal_for_comparison_p. | |
20571 | (fold_ternary_loc): Likewise. | |
20572 | ||
20573 | 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com> | |
20574 | ||
20575 | * aarch64-simd.md (mov<mode>): No longer force zero immediate into | |
20576 | register. | |
20577 | (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate. | |
20578 | ||
20579 | 2017-08-17 Richard Biener <rguenther@suse.de> | |
20580 | ||
20581 | * tree-ssa-structalias.c (solve_graph): When propagating | |
20582 | to successors update the graphs succ edges and avoid duplicate work. | |
20583 | ||
20584 | 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com> | |
20585 | ||
20586 | PR target/81861 | |
20587 | * config/i386/i386.c (ix86_option_override_internal): Save target | |
20588 | specific options after ix86_stack_protector_guard_reg was changed. | |
20589 | ||
20590 | 2017-08-17 Richard Biener <rguenther@suse.de> | |
20591 | ||
20592 | PR tree-optimization/81827 | |
20593 | * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag. | |
20594 | (new_var_info): Initialize it conservatively. | |
20595 | (get_call_vi): Mark register vars. | |
20596 | (new_scalar_tmp_constraint_exp): Likewise. | |
20597 | (handle_rhs_call): Likewise. | |
20598 | (handle_const_call): Likewise. | |
20599 | (create_function_info_for): Likewise. | |
20600 | (solve_constraints): Sort varinfos to separate register from | |
20601 | non-register vars to pack points-to solution bitmaps during | |
20602 | iteration. | |
20603 | ||
20604 | 2017-08-17 Marek Polacek <polacek@redhat.com> | |
20605 | ||
20606 | * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1. | |
20607 | ||
20608 | 2017-08-17 Richard Biener <rguenther@suse.de> | |
20609 | ||
20610 | * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p | |
20611 | to true when overflow is undefined and we saturated the result. | |
20612 | ||
20613 | 2017-08-17 Alan Modra <amodra@gmail.com> | |
20614 | ||
20615 | PR target/80938 | |
20616 | * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09. | |
20617 | Don't use store multiple if only one reg needs saving. | |
20618 | (interesting_frame_related_regno): New function. | |
20619 | (rs6000_frame_related): Don't emit frame info for regs that | |
20620 | don't need saving. | |
20621 | (rs6000_emit_epilogue): Likewise. | |
20622 | ||
20623 | 2017-08-16 Nathan Sidwell <nathan@acm.org> | |
20624 | ||
20625 | * tree-core.h (tree_type_non_common): Rename binfo to lang_1. | |
20626 | * tree.h (TYPE_BINFO): Use type_non_common.maxval. | |
20627 | (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type. | |
20628 | * tree.c (free_lang_data_in_type): Use else-if chain. Always | |
20629 | clear TYPE_LANG_1. Remove obsolete member-function stripping. | |
20630 | (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW. | |
20631 | (verify_type): Adjust for TYPE_BINFO move. | |
20632 | * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to | |
20633 | process TYPE_BINFO directly. | |
20634 | (hash_tree): Likewise. | |
20635 | * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): | |
20636 | Likewise. | |
20637 | * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): | |
20638 | Likewise. | |
20639 | ||
20640 | 2017-08-16 David Malcolm <dmalcolm@redhat.com> | |
20641 | ||
20642 | * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field. | |
20643 | ||
20644 | 2017-08-16 Uros Bizjak <ubizjak@gmail.com> | |
20645 | ||
20646 | PR target/46091 | |
20647 | * config/i386/i386.md (*anddi_1_btr): Change predicates of | |
20648 | operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint. | |
20649 | Add ix86_binary_operator_ok to insn constraint. | |
20650 | (*iordi_1_bts): Ditto. | |
20651 | (*xordi_1_btc): Ditto. | |
20652 | (*btsq): Change predicate of operand 0 to nonimmediate_operand. | |
20653 | Update corresponding peephole2 pattern. | |
20654 | (*btrq): Ditto. | |
20655 | (*btcq): Ditto. | |
20656 | ||
20657 | 2017-08-16 Bin Cheng <bin.cheng@arm.com> | |
20658 | ||
20659 | PR tree-optimization/81832 | |
20660 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't | |
20661 | copy loop header which has IFN_LOOP_DIST_ALIAS call. | |
20662 | ||
20663 | 2017-08-16 Marek Polacek <polacek@redhat.com> | |
20664 | ||
20665 | PR middle/81695 | |
20666 | * fold-const.c (fold_indirect_ref_1): Restore original behavior | |
20667 | regarding size_zero_node. | |
20668 | ||
20669 | 2017-08-16 Martin Liska <mliska@suse.cz> | |
20670 | ||
20671 | PR target/81753 | |
20672 | * config.gcc: Respect previously set extra_objs in case | |
20673 | of darwin target. | |
20674 | ||
20675 | 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org> | |
20676 | ||
20677 | PR tree-optimization/81835 | |
20678 | * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for | |
20679 | the phi SSA_NAME. Check that the condition in a COND_EXPR does | |
20680 | not depend on the phi. | |
20681 | ||
20682 | 2017-08-16 Alan Modra <amodra@gmail.com> | |
20683 | ||
20684 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete | |
20685 | dead code. | |
20686 | ||
20687 | 2017-08-16 Alan Modra <amodra@gmail.com> | |
20688 | ||
20689 | * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge.. | |
20690 | (save_reg_p): ..into this. Update all callers. | |
20691 | (first_reg_to_save): Simplify. | |
20692 | ||
20693 | 2017-08-16 Alan Modra <amodra@gmail.com> | |
20694 | ||
20695 | * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore | |
20696 | fixed regs. | |
20697 | ||
20698 | 2017-08-15 Joseph Myers <joseph@codesourcery.com> | |
20699 | ||
20700 | PR target/78460 | |
20701 | PR target/67712 | |
20702 | * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for | |
20703 | constant count if that count is less than 32. | |
20704 | ||
20705 | 2017-08-15 Nathan Sidwell <nathan@acm.org> | |
20706 | ||
20707 | * gcc.c (execute): Emit friendlier message if inferior is killed | |
20708 | by an external cause. | |
20709 | ||
20710 | 2017-08-15 Richard Biener <rguenther@suse.de> | |
20711 | ||
20712 | PR tree-optimization/81790 | |
20713 | * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both | |
20714 | CONSTRUCTORs from simplifying and VN. | |
20715 | ||
20716 | 2017-08-14 Martin Sebor <msebor@redhat.com> | |
20717 | ||
20718 | * builtin-attrs.def: Add comments. | |
20719 | ||
20720 | 2017-08-14 Martin Sebor <msebor@redhat.com> | |
20721 | ||
20722 | PR c/81117 | |
20723 | * doc/extend.texi (attribute nonstring): Document new attribute. | |
20724 | ||
20725 | 2017-08-14 Martin Sebor <msebor@redhat.com> | |
20726 | ||
20727 | PR c/81117 | |
20728 | * tree-diagnostic.c (default_tree_printer): Handle %G. | |
20729 | * gimple-pretty-print.h (percent_G_format): Declare new function. | |
20730 | * gimple-pretty-print.c (percent_G_format): Define. | |
20731 | * tree-pretty-print.c (percent_K_format): Add argument. | |
20732 | ||
20733 | 2017-08-14 Martin Sebor <msebor@redhat.com> | |
20734 | ||
20735 | PR translation/79998 | |
20736 | * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): | |
20737 | Remove a stray space. | |
20738 | ||
20739 | 2017-08-14 Uros Bizjak <ubizjak@gmail.com> | |
20740 | ||
20741 | PR target/46091 | |
20742 | * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern. | |
20743 | (*iordi_1_bts): Ditto. | |
20744 | (*xordi_1_btc): Ditto. | |
20745 | ||
20746 | 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
20747 | ||
20748 | PR target/79845 | |
20749 | * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings. | |
20750 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
20751 | Likewise. | |
20752 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use | |
20753 | quoted strings, and make more translator-friendly. | |
20754 | (darwin_rs6000_override_options): Likewise. | |
20755 | (rs6000_option_override_internal): Likewise. | |
20756 | (rs6000_return_in_memory): Fix overlong line. | |
20757 | (init_cmulative_args): Use quoted strings, and make more | |
20758 | translator-friendly. | |
20759 | (rs6000_pass_by_reference): Fix overlong line. | |
20760 | (def_builtin): Use quoted strings. | |
20761 | (altivec_expand_predicate_builtin): Use quoted strings, and make | |
20762 | more translator-friendly. | |
20763 | (htm_expand_builtin): Use quoted strings. | |
20764 | (cpu_expand_builtin): Use quoted strings, and make more | |
20765 | translator-friendly. | |
20766 | (altivec_expand_builtin): Likewise. | |
20767 | (paired_expand_predicate_builtin): Likewise. | |
20768 | (rs6000_invalid_builtin): Likewise. | |
20769 | (builtin_function_type): Use quoted strings. | |
20770 | (rs6000_expand_split_stack_prologue): Use quoted strings, and make | |
20771 | more translator-friendly. | |
20772 | (rs6000_trampoline_init): Likewise. | |
20773 | (rs6000_handle_altivec_attribute): Likewise. | |
20774 | (rs6000_inner_target_options): Use quoted strings. | |
20775 | (rs6000_disable_incompatible_switches): Likewise. | |
20776 | * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted | |
20777 | strings, and make more translator-friendly. | |
20778 | (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings. | |
20779 | ||
20780 | 2017-08-14 Bin Cheng <bin.cheng@arm.com> | |
20781 | ||
20782 | PR tree-optimization/81799 | |
20783 | * tree-loop-distribution.c (version_loop_by_alias_check): Force | |
20784 | cond_expr to simple gimple operand. | |
20785 | ||
20786 | 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com> | |
20787 | ||
20788 | PR middle-end/46932 | |
20789 | * doc/sourcebuild.texi (autoincdec): Add autoincdec description. | |
20790 | ||
20791 | 2017-08-14 Georg-Johann Lay <avr@gjlay.de> | |
20792 | ||
20793 | PR target/81754 | |
20794 | PR target/81268 | |
20795 | * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues. | |
20796 | * config/avr/avr.md (gasisr, *gasisr): Use it instead of | |
20797 | TARGET_GASISR_PROLOGUES. | |
20798 | * config/avr/avr.c (avr_option_override): Same. | |
20799 | (avr_pass_pre_proep::execute): Same. | |
20800 | ||
20801 | 2017-08-13 H.J. Lu <hongjiu.lu@intel.com> | |
20802 | ||
20803 | PR target/81820 | |
20804 | * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace | |
20805 | frame pointer with stack pointer - UNITS_PER_WORD in debug insns. | |
20806 | ||
20807 | 2017-08-13 Uros Bizjak <ubizjak@gmail.com> | |
20808 | ||
20809 | * config/i386/i386.md (*load_tp_<mode>): Redefine as | |
20810 | define_insn_and_split. Split to a memory load from 0 in | |
20811 | DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32 | |
20812 | using PTR mode iterator. | |
20813 | (*load_tp_x32_zext"): Redefine as define_insn_and_split. | |
20814 | Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space. | |
20815 | (*add_tp_<mode>): Redefine as define_insn_and_split. | |
20816 | Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG | |
20817 | address space. Merge with *add_tp_x32 using PTR mode iterator. | |
20818 | (*add_tp_x32_zext"): Redefine as define_insn_and_split. | |
20819 | Split to an add with a memory load from 0 in | |
20820 | DEFAULT_TLS_SEG_REG address space. | |
20821 | ||
20822 | 2017-08-12 Andrew Pinski <apinski@cavium.com> | |
20823 | ||
20824 | * config/aarch64/aarch64-option-extensions.def (rdma): | |
20825 | Fix feature string to what Linux prints out in /proc/cpuinfo. | |
20826 | ||
20827 | 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com> | |
20828 | ||
20829 | PR ada/79542 | |
20830 | * dwarf2out.c (modified_type_die): For C typedef types that have | |
20831 | an ultimate origin, process the ultimate origin instead of the | |
20832 | input type. | |
20833 | (gen_typedef_die): Assert that input DECLs have no ultimate | |
20834 | origin. | |
20835 | (gen_type_die_with_usage): For typedef variants that have an | |
20836 | ultimate origin, just call gen_decl_die on the original DECL. | |
20837 | (process_scope_var): Avoid creating DIEs for local typedefs and | |
20838 | concrete static variables. | |
20839 | ||
20840 | 2017-08-12 Alan Modra <amodra@gmail.com> | |
20841 | ||
20842 | PR target/81170 | |
20843 | PR target/81295 | |
20844 | * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to | |
20845 | match gnu-user.h startfile. | |
20846 | (ENDFILE_LINUX_SPEC): Similarly. | |
20847 | ||
20848 | 2017-08-11 Thomas Schwinge <thomas@codesourcery.com> | |
20849 | ||
20850 | PR lto/81430 | |
20851 | * config/nvptx/nvptx.c (nvptx_override_options_after_change): | |
20852 | Remove function. | |
20853 | (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition. | |
20854 | ||
20855 | 2017-08-11 Tamar Christina <tamar.christina@arm.com> | |
20856 | * config/aarch64/aarch64.md (mov<mode>): Change. | |
20857 | (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): | |
20858 | aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero. | |
20859 | * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed. | |
20860 | ||
20861 | 2017-08-11 Eric Botcazou <ebotcazou@adacore.com> | |
20862 | ||
20863 | * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics | |
20864 | for storage order barriers. | |
20865 | ||
20866 | 2017-08-11 Martin Liska <mliska@suse.cz> | |
20867 | ||
20868 | PR tree-opt/79987 | |
20869 | * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument | |
20870 | variables of void type. | |
20871 | ||
20872 | 2017-08-11 Martin Liska <mliska@suse.cz> | |
20873 | ||
20874 | * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with | |
20875 | TARGET_SUPPORTS_ALIASES. | |
20876 | * cgraph.c (cgraph_node::create_same_body_alias): Likewise. | |
20877 | * ipa-visibility.c (can_replace_by_local_alias): Likewise. | |
20878 | (optimize_weakref): Likewise. | |
20879 | * symtab.c (symtab_node::noninterposable_alias): Likewise. | |
20880 | * varpool.c (varpool_node::create_extra_name_alias): Likewise. | |
20881 | * defaults.h: Introduce TARGET_SUPPORTS_ALIASES. | |
20882 | ||
20883 | 2017-08-11 Martin Liska <mliska@suse.cz> | |
20884 | ||
20885 | PR ipa/81213 | |
20886 | * config/i386/i386.c (make_resolver_func): Do complete | |
20887 | refactoring of the function. | |
20888 | ||
20889 | 2017-08-10 Uros Bizjak <ubizjak@gmail.com> | |
20890 | ||
20891 | PR target/81708 | |
20892 | * config/i386/i386.opt (mstack-protector-guard-symbol=): New option | |
20893 | * config/i386/i386.c (ix86_stack_protect_guard): Use | |
20894 | ix86_stack_protect_guard_symbol_str to generate varible declaration. | |
20895 | * doc/invoke.texi (x86 Options): Document | |
20896 | -mstack-protector-guard-symbol= option. | |
20897 | ||
20898 | 2017-08-10 Uros Bizjak <ubizjak@gmail.com> | |
20899 | ||
20900 | * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype. | |
20901 | * config/i386/i386.c (ix86_split_stack_guard): New function. | |
20902 | (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard. | |
20903 | (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove. | |
20904 | (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto. | |
20905 | (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling. | |
20906 | * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK. | |
20907 | (split_stack_space_check): Call ix86_split_stack_guard. | |
20908 | ||
20909 | 2017-08-10 Martin Sebor <msebor@redhat.com> | |
20910 | ||
20911 | * print-tree.c (print_node): Print location using the established | |
20912 | format %s:%i%i. | |
20913 | Replace spaces with colons. | |
20914 | (debug_raw, debug): Ditto. | |
20915 | ||
20916 | 2017-08-10 Martin Sebor <msebor@redhat.com> | |
20917 | ||
20918 | PR c++/81586 | |
20919 | * pretty-print.c (pp_format): Correct the handling of %s precision. | |
20920 | ||
20921 | 2017-08-10 H.J. Lu <hongjiu.lu@intel.com> | |
20922 | ||
20923 | PR target/81736 | |
20924 | * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed | |
20925 | to ... | |
20926 | (ix86_finalize_stack_frame_flags): This. Also clear | |
20927 | frame_pointer_needed if -fno-omit-frame-pointer is used without | |
20928 | stack access. | |
20929 | (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags | |
20930 | with ix86_finalize_stack_frame_flags. | |
20931 | (ix86_expand_epilogue): Likewise. | |
20932 | (ix86_expand_split_stack_prologue): Likewise. | |
20933 | * doc/invoke.texi: Add a note for -fno-omit-frame-pointer. | |
20934 | ||
20935 | 2017-08-10 Martin Liska <mliska@suse.cz> | |
20936 | ||
20937 | PR c++/81355 | |
20938 | * c-attribs.c (handle_target_attribute): | |
20939 | Report warning for an empty string argument of target attribute. | |
20940 | ||
20941 | 2017-08-09 Jakub Jelinek <jakub@redhat.com> | |
20942 | ||
20943 | PR c/81687 | |
20944 | * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL | |
20945 | LABEL_DECLs. | |
20946 | * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL | |
20947 | or DECL_NONLOCAL labels. | |
20948 | (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL | |
20949 | or DECL_NONLOCAL labels here. | |
20950 | ||
20951 | 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com> | |
20952 | ||
20953 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb | |
20954 | to indicate when early gimple folding has been disabled. | |
20955 | (rs6000_gimple_fold_builtin): Add debug content. | |
20956 | (rs6000_invalid_builtin): Fix whitespace. | |
20957 | (rs6000_expand_builtin): Fix whitespace. | |
20958 | * config/rs6000/rs6000.opt: Add option for -mfold-gimple. | |
20959 | ||
20960 | 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org> | |
20961 | ||
20962 | PR target/80938 | |
20963 | * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use | |
20964 | SAVE_MULTIPLE if not all the registers that saves, should be saved. | |
20965 | ||
20966 | 2017-08-09 Jim Wilson <jim.wilson@linaro.org> | |
20967 | ||
20968 | * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline. | |
20969 | (qdf24xx): Likewise. | |
20970 | * config/aarch64/aarch64.md: Include falkor.md. | |
20971 | * config/aarch64/falkor.md: New. | |
20972 | ||
20973 | 2017-08-09 Marek Polacek <polacek@redhat.com> | |
20974 | ||
20975 | PR c/81233 | |
20976 | * diagnostic-core.h (emit_diagnostic_valist): Add declaration. | |
20977 | * diagnostic.c (emit_diagnostic): Add a comment. | |
20978 | (emit_diagnostic_valist): New function. | |
20979 | ||
20980 | 2017-08-09 Marek Polacek <polacek@redhat.com> | |
20981 | ||
20982 | PR c/81417 | |
20983 | * input.c (make_location): New overload. | |
20984 | * input.h (make_location): Declare. | |
20985 | ||
20986 | 2017-08-08 Alan Modra <amodra@gmail.com> | |
20987 | H.J. Lu <hongjiu.lu@intel.com> | |
20988 | ||
20989 | PR driver/81523 | |
20990 | * gcc.c (NO_PIE_SPEC): Delete. | |
20991 | (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r | |
20992 | exclusion.. | |
20993 | (LINK_PIE_SPEC): ..to here. | |
20994 | (LINK_COMMAND_SPEC): Support -no-pie. | |
20995 | * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct | |
20996 | chain of crtbegin*.o selection, update for PIE_SPEC changes and | |
20997 | format. | |
20998 | (GNU_USER_TARGET_ENDFILE_SPEC): Similarly. | |
20999 | * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly. | |
21000 | (ENDFILE_CRTEND_SPEC): Similarly. | |
21001 | ||
21002 | 2017-08-08 Uros Bizjak <ubizjak@gmail.com> | |
21003 | ||
21004 | PR target/81708 | |
21005 | * config/i386/i386.opt (mstack-protector-guard-reg=): New option | |
21006 | (mstack-protector-guard-offset=): Ditto. | |
21007 | * config/i386/i386.c (ix86_option_override): Handle | |
21008 | -mstack-protector-guard-reg= and -mstack-protector-guard-offset= | |
21009 | options. | |
21010 | (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and | |
21011 | ix86_stack_protect_guard_offset variables. | |
21012 | (TARGET_STACK_PROTECT_GUARD): Always define. | |
21013 | * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg= | |
21014 | and -mstack-protector-guard-offset= options. | |
21015 | ||
21016 | 2017-08-08 Bin Cheng <bin.cheng@arm.com> | |
21017 | ||
21018 | * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle | |
21019 | boundary case for the last candidate. | |
21020 | ||
21021 | 2017-08-08 Bin Cheng <bin.cheng@arm.com> | |
21022 | ||
21023 | * doc/invoke.texi: Document -ftree-loop-distribution for O3. | |
21024 | * opts.c (default_options_table): Add OPT_ftree_loop_distribution. | |
21025 | ||
21026 | 2017-08-08 Tamar Christina <tamar.christina@arm.com> | |
21027 | ||
21028 | PR middle-end/19706 | |
21029 | * config/aarch64/aarch64.md (xorsign<mode>3): New optabs. | |
21030 | * config/aarch64/aarch64-builtins.c | |
21031 | (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN. | |
21032 | * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP. | |
21033 | * config/aarch64/aarch64-simd.md: Added xorsign<mode>3 | |
21034 | ||
21035 | 2017-08-08 Tamar Christina <tamar.christina@arm.com> | |
21036 | Andrew Pinski <pinskia@gmail.com> | |
21037 | ||
21038 | PR middle-end/19706 | |
21039 | * internal-fn.def (XORSIGN): New. | |
21040 | * optabs.def (xorsign_optab): New. | |
21041 | * tree-ssa-math-opts.c (is_copysign_call_with_1): New. | |
21042 | (convert_expand_mult_copysign): New. | |
21043 | (pass_optimize_widening_mul::execute): Call | |
21044 | convert_expand_mult_copysign. | |
21045 | ||
21046 | 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
21047 | ||
21048 | PR tree-optimization/81354 | |
21049 | * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge): | |
21050 | Insert on edges rather than explicitly creating landing pads. | |
21051 | (analyze_candidates_and_replace): Commit edge inserts. | |
21052 | ||
21053 | 2017-08-08 Richard Biener <rguenther@suse.de> | |
21054 | ||
21055 | PR middle-end/81719 | |
21056 | * tree-ssa-loop-niter.c: Include tree-dfa.h. | |
21057 | (expand_simple_operations): Also look through ADDR_EXPRs with | |
21058 | MEM_REF bases treating them as POINTER_PLUS_EXPR. | |
21059 | ||
21060 | 2017-08-08 Richard Biener <rguenther@suse.de> | |
21061 | ||
21062 | PR tree-optimization/81723 | |
21063 | * tree-vect-slp.c (struct bst_traits): New hash traits. | |
21064 | (bst_fail): New global. | |
21065 | (vect_build_slp_tree_2): New worker, split out from ... | |
21066 | (vect_build_slp_tree): ... this now wrapping it with using | |
21067 | bst_fail set to cache SLP tree build fails. Properly handle | |
21068 | max_tree_size. | |
21069 | (vect_analyze_slp_instance): Allocate and free bst_fail. | |
21070 | ||
21071 | 2017-08-08 Martin Liska <mliska@suse.cz> | |
21072 | ||
21073 | PR tree-opt/81696 | |
21074 | * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider | |
21075 | LABEL_DECLs that can be from a different function. | |
21076 | ||
21077 | 2017-08-08 Bin Cheng <bin.cheng@arm.com> | |
21078 | ||
21079 | PR tree-optimization/81744 | |
21080 | * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of | |
21081 | loop's number of iterations. | |
21082 | ||
21083 | 2017-08-08 Martin Liska <mliska@suse.cz> | |
21084 | ||
21085 | * asan.c: Include header files. | |
21086 | * attribs.c (build_decl_attribute_variant): New function moved | |
21087 | from tree.[ch]. | |
21088 | (build_type_attribute_qual_variant): Likewise. | |
21089 | (cmp_attrib_identifiers): Likewise. | |
21090 | (simple_cst_list_equal): Likewise. | |
21091 | (omp_declare_simd_clauses_equal): Likewise. | |
21092 | (attribute_value_equal): Likewise. | |
21093 | (comp_type_attributes): Likewise. | |
21094 | (build_type_attribute_variant): Likewise. | |
21095 | (lookup_ident_attribute): Likewise. | |
21096 | (remove_attribute): Likewise. | |
21097 | (merge_attributes): Likewise. | |
21098 | (merge_type_attributes): Likewise. | |
21099 | (merge_decl_attributes): Likewise. | |
21100 | (merge_dllimport_decl_attributes): Likewise. | |
21101 | (handle_dll_attribute): Likewise. | |
21102 | (attribute_list_equal): Likewise. | |
21103 | (attribute_list_contained): Likewise. | |
21104 | * attribs.h (lookup_attribute): New function moved from tree.[ch]. | |
21105 | (lookup_attribute_by_prefix): Likewise. | |
21106 | * bb-reorder.c: Include header files. | |
21107 | * builtins.c: Likewise. | |
21108 | * calls.c: Likewise. | |
21109 | * cfgexpand.c: Likewise. | |
21110 | * cgraph.c: Likewise. | |
21111 | * cgraphunit.c: Likewise. | |
21112 | * convert.c: Likewise. | |
21113 | * dwarf2out.c: Likewise. | |
21114 | * final.c: Likewise. | |
21115 | * fold-const.c: Likewise. | |
21116 | * function.c: Likewise. | |
21117 | * gimple-expr.c: Likewise. | |
21118 | * gimple-fold.c: Likewise. | |
21119 | * gimple-pretty-print.c: Likewise. | |
21120 | * gimple.c: Likewise. | |
21121 | * gimplify.c: Likewise. | |
21122 | * hsa-common.c: Likewise. | |
21123 | * hsa-gen.c: Likewise. | |
21124 | * internal-fn.c: Likewise. | |
21125 | * ipa-chkp.c: Likewise. | |
21126 | * ipa-cp.c: Likewise. | |
21127 | * ipa-devirt.c: Likewise. | |
21128 | * ipa-fnsummary.c: Likewise. | |
21129 | * ipa-inline.c: Likewise. | |
21130 | * ipa-visibility.c: Likewise. | |
21131 | * ipa.c: Likewise. | |
21132 | * lto-cgraph.c: Likewise. | |
21133 | * omp-expand.c: Likewise. | |
21134 | * omp-general.c: Likewise. | |
21135 | * omp-low.c: Likewise. | |
21136 | * omp-offload.c: Likewise. | |
21137 | * omp-simd-clone.c: Likewise. | |
21138 | * opts-global.c: Likewise. | |
21139 | * passes.c: Likewise. | |
21140 | * predict.c: Likewise. | |
21141 | * sancov.c: Likewise. | |
21142 | * sanopt.c: Likewise. | |
21143 | * symtab.c: Likewise. | |
21144 | * toplev.c: Likewise. | |
21145 | * trans-mem.c: Likewise. | |
21146 | * tree-chkp.c: Likewise. | |
21147 | * tree-eh.c: Likewise. | |
21148 | * tree-into-ssa.c: Likewise. | |
21149 | * tree-object-size.c: Likewise. | |
21150 | * tree-parloops.c: Likewise. | |
21151 | * tree-profile.c: Likewise. | |
21152 | * tree-ssa-ccp.c: Likewise. | |
21153 | * tree-ssa-live.c: Likewise. | |
21154 | * tree-ssa-loop.c: Likewise. | |
21155 | * tree-ssa-sccvn.c: Likewise. | |
21156 | * tree-ssa-structalias.c: Likewise. | |
21157 | * tree-ssa.c: Likewise. | |
21158 | * tree-streamer-in.c: Likewise. | |
21159 | * tree-vectorizer.c: Likewise. | |
21160 | * tree-vrp.c: Likewise. | |
21161 | * tsan.c: Likewise. | |
21162 | * ubsan.c: Likewise. | |
21163 | * varasm.c: Likewise. | |
21164 | * varpool.c: Likewise. | |
21165 | * tree.c: Remove functions moved to attribs.[ch]. | |
21166 | * tree.h: Likewise. | |
21167 | * config/aarch64/aarch64.c: Add attrs.h header file. | |
21168 | * config/alpha/alpha.c: Likewise. | |
21169 | * config/arc/arc.c: Likewise. | |
21170 | * config/arm/arm.c: Likewise. | |
21171 | * config/avr/avr.c: Likewise. | |
21172 | * config/bfin/bfin.c: Likewise. | |
21173 | * config/c6x/c6x.c: Likewise. | |
21174 | * config/cr16/cr16.c: Likewise. | |
21175 | * config/cris/cris.c: Likewise. | |
21176 | * config/darwin.c: Likewise. | |
21177 | * config/epiphany/epiphany.c: Likewise. | |
21178 | * config/fr30/fr30.c: Likewise. | |
21179 | * config/frv/frv.c: Likewise. | |
21180 | * config/ft32/ft32.c: Likewise. | |
21181 | * config/h8300/h8300.c: Likewise. | |
21182 | * config/i386/winnt.c: Likewise. | |
21183 | * config/ia64/ia64.c: Likewise. | |
21184 | * config/iq2000/iq2000.c: Likewise. | |
21185 | * config/lm32/lm32.c: Likewise. | |
21186 | * config/m32c/m32c.c: Likewise. | |
21187 | * config/m32r/m32r.c: Likewise. | |
21188 | * config/m68k/m68k.c: Likewise. | |
21189 | * config/mcore/mcore.c: Likewise. | |
21190 | * config/microblaze/microblaze.c: Likewise. | |
21191 | * config/mips/mips.c: Likewise. | |
21192 | * config/mmix/mmix.c: Likewise. | |
21193 | * config/mn10300/mn10300.c: Likewise. | |
21194 | * config/moxie/moxie.c: Likewise. | |
21195 | * config/msp430/msp430.c: Likewise. | |
21196 | * config/nds32/nds32-isr.c: Likewise. | |
21197 | * config/nds32/nds32.c: Likewise. | |
21198 | * config/nios2/nios2.c: Likewise. | |
21199 | * config/nvptx/nvptx.c: Likewise. | |
21200 | * config/pa/pa.c: Likewise. | |
21201 | * config/pdp11/pdp11.c: Likewise. | |
21202 | * config/powerpcspe/powerpcspe.c: Likewise. | |
21203 | * config/riscv/riscv.c: Likewise. | |
21204 | * config/rl78/rl78.c: Likewise. | |
21205 | * config/rx/rx.c: Likewise. | |
21206 | * config/s390/s390.c: Likewise. | |
21207 | * config/sh/sh.c: Likewise. | |
21208 | * config/sol2.c: Likewise. | |
21209 | * config/sparc/sparc.c: Likewise. | |
21210 | * config/spu/spu.c: Likewise. | |
21211 | * config/stormy16/stormy16.c: Likewise. | |
21212 | * config/tilegx/tilegx.c: Likewise. | |
21213 | * config/tilepro/tilepro.c: Likewise. | |
21214 | * config/v850/v850.c: Likewise. | |
21215 | * config/vax/vax.c: Likewise. | |
21216 | * config/visium/visium.c: Likewise. | |
21217 | * config/xtensa/xtensa.c: Likewise. | |
21218 | ||
21219 | 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com> | |
21220 | ||
21221 | PR target/81593 | |
21222 | * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup | |
21223 | constraints since the -mupper-regs-* switches have been | |
21224 | eliminated. | |
21225 | (vsx_concat_<mode>_1): New combiner insns to recognize inserting | |
21226 | into a vector from a double word element that was extracted from | |
21227 | another vector, and eliminate extra XXPERMDI instructions. | |
21228 | (vsx_concat_<mode>_2): Likewise. | |
21229 | (vsx_concat_<mode>_3): Likewise. | |
21230 | (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector | |
21231 | concat to allow optimizing inserts from previous extracts. | |
21232 | ||
21233 | 2017-08-07 Uros Bizjak <ubizjak@gmail.com> | |
21234 | ||
21235 | * config/i386/i386.c (ix86_stack_protect_guard): Generate | |
21236 | memory reference to a SSP offset in TLS address space. | |
21237 | (ix86_print_operand) <case '@'>: Remove. | |
21238 | (ix86_print_operand_punct_valid_p): Remove '@' code. | |
21239 | * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and | |
21240 | UNSPEC_SP_TLS_TEST. | |
21241 | (stack_tls_protect_set_<mode>): Remove. | |
21242 | (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>. | |
21243 | (stack_tls_protect_test_<mode>): Remove. | |
21244 | (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>. | |
21245 | ||
21246 | 2017-08-07 Olivier Hainque <hainque@adacore.com> | |
21247 | ||
21248 | PR target/81755 | |
21249 | * config/vxworksae.h (VXWORKS_HAVE_TLS): Define. | |
21250 | ||
21251 | 2017-08-07 Douglas Rupp <rupp@adacore.com> | |
21252 | ||
21253 | * Makefile.in (install-mkheaders): Fix typo, where the multi_dir | |
21254 | variable was referenced as multidir in command. | |
21255 | ||
21256 | 2017-08-07 Jakub Jelinek <jakub@redhat.com> | |
21257 | ||
21258 | PR c/69389 | |
21259 | * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and | |
21260 | BIT_FIELD_REF. | |
21261 | ||
21262 | 2017-08-07 Martin Liska <mliska@suse.cz> | |
21263 | ||
21264 | * config/m32c/m32c.c: Add include of stringpool.h and attribs.h. | |
21265 | * config/rl78/rl78.c: Add include of attribs.h. | |
21266 | * config/sh/sh.c: Likewise. | |
21267 | * config/v850/v850.c: Likewise. | |
21268 | ||
21269 | 2017-08-07 Tom de Vries <tom@codesourcery.com> | |
21270 | ||
21271 | PR middle-end/78266 | |
21272 | * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough. | |
21273 | ||
21274 | 2017-08-07 Martin Liska <mliska@suse.cz> | |
21275 | ||
21276 | * config/mips/mips.c: Include attribs.h. | |
21277 | ||
21278 | 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org> | |
21279 | ||
21280 | PR fortran/68829 | |
21281 | * doc/invoke.texi: Document change in behvaior for -Ofast for | |
21282 | Fortran. | |
21283 | ||
21284 | 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com> | |
21285 | ||
21286 | * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): | |
21287 | Use gen_frame_mem. | |
21288 | (aarch64_pop_regs): Likewise. | |
21289 | (aarch64_gen_load_pair): Likewise. | |
21290 | (aarch64_save_callee_saves): Likewise. | |
21291 | (aarch64_restore_callee_saves): Likewise. | |
21292 | ||
21293 | 2017-08-07 H.J. Lu <hongjiu.lu@intel.com> | |
21294 | ||
21295 | * config/i386/i386.c: Revert the last change. | |
21296 | ||
21297 | 2017-08-07 H.J. Lu <hongjiu.lu@intel.com> | |
21298 | ||
21299 | PR target/81736 | |
21300 | * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed | |
21301 | to ... | |
21302 | (ix86_finalize_stack_frame_flags): This. Also clear | |
21303 | frame_pointer_needed if -fno-omit-frame-pointer is used without | |
21304 | stack access. | |
21305 | (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags | |
21306 | with ix86_finalize_stack_frame_flags. | |
21307 | (ix86_expand_epilogue): Likewise. | |
21308 | (ix86_expand_split_stack_prologue): Likewise. | |
21309 | ||
21310 | 2017-08-07 H.J. Lu <hongjiu.lu@intel.com> | |
21311 | ||
21312 | PR target/81743 | |
21313 | * config/i386/i386.c (get_builtin_code_for_version): Set priority | |
21314 | to P_AES for Westmere. | |
21315 | ||
21316 | 2017-08-07 Jonathan Yong <10walls@gmail.com> | |
21317 | ||
21318 | * config/i386/mingw.opt (fset-stack-executable): Removed. | |
21319 | * config/i386/cygming.opt (fset-stack-executable): Moved | |
21320 | from mingw.opt. | |
21321 | * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED. | |
21322 | ||
21323 | 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org> | |
21324 | ||
21325 | * print-rtl.c (print_exp): Print NOT as "~" instead of as "!". | |
21326 | ||
21327 | 2017-08-07 Marek Polacek <polacek@redhat.com> | |
21328 | ||
21329 | PR middle-end/81737 | |
21330 | * fold-const.c (fold_indirect_ref_1): Check type_domain. | |
21331 | ||
21332 | 2017-08-07 Martin Liska <mliska@suse.cz> | |
21333 | ||
21334 | * attribs.h (canonicalize_attr_name): New function. | |
21335 | (cmp_attribs): Move from c-format.c and adjusted. | |
21336 | (is_attribute_p): Moved from tree.h. | |
21337 | * tree-inline.c: Add new includes. | |
21338 | * tree.c (cmp_attrib_identifiers): Use cmp_attribs. | |
21339 | (private_is_attribute_p): Remove. | |
21340 | (private_lookup_attribute): Likewise. | |
21341 | (private_lookup_attribute_by_prefix): Simplify. | |
21342 | (remove_attribute): Use is_attribute_p. | |
21343 | * tree.h: Remove removed declarations. | |
21344 | ||
21345 | 2017-08-07 Jakub Jelinek <jakub@redhat.com> | |
21346 | ||
21347 | PR middle-end/81698 | |
21348 | * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument, | |
21349 | instead of computing it in the function. Formatting fix. | |
21350 | (expand_case): Don't rely on default_edge being the first edge, | |
21351 | clear it if removing it, pass default_edge to | |
21352 | emit_case_dispatch_table. | |
21353 | (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting | |
21354 | fix. | |
21355 | ||
21356 | 2017-08-06 Uros Bizjak <ubizjak@gmail.com> | |
21357 | ||
21358 | * config/alpha/alpha.c (alpha_reorg): If trap is the last active | |
21359 | insn in the function, emit NOP after the insn. | |
21360 | ||
21361 | 2017-08-06 Tom de Vries <tom@codesourcery.com> | |
21362 | ||
21363 | * omp-expand.c (expand_oacc_for): Add missing edge probability for tile | |
21364 | and element loops. | |
21365 | ||
21366 | 2017-08-06 Tom de Vries <tom@codesourcery.com> | |
21367 | ||
21368 | * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk | |
21369 | loop. | |
21370 | ||
21371 | 2017-08-04 Yury Gribov <tetra2005@gmail.com> | |
21372 | ||
21373 | PR tree-optimization/57371 | |
21374 | * match.pd: New pattern. | |
21375 | ||
21376 | 2017-08-04 Marek Polacek <polacek@redhat.com> | |
21377 | ||
21378 | PR middle-end/81695 | |
21379 | * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1], | |
21380 | perform the computation in offset_int. | |
21381 | ||
21382 | 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org> | |
21383 | ||
21384 | PR tree-optimization/81136 | |
21385 | * tree-vectorizer.h: Include tree-hash-traits.h. | |
21386 | (vec_base_alignments): New typedef. | |
21387 | (vec_info): Add a base_alignments field. | |
21388 | (vect_record_base_alignments): Declare. | |
21389 | * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt | |
21390 | field. | |
21391 | (DR_IS_CONDITIONAL_IN_STMT): New macro. | |
21392 | (create_data_ref): Add an is_conditional_in_stmt argument. | |
21393 | * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize | |
21394 | the is_conditional_in_stmt field. | |
21395 | (data_ref_loc): Add an is_conditional_in_stmt field. | |
21396 | (get_references_in_stmt): Set the is_conditional_in_stmt field. | |
21397 | (find_data_references_in_stmt): Update call to create_data_ref. | |
21398 | (graphite_find_data_references_in_stmt): Likewise. | |
21399 | * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise. | |
21400 | * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. | |
21401 | (vect_record_base_alignment): New function. | |
21402 | (vect_record_base_alignments): Likewise. | |
21403 | (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to | |
21404 | for nested statements even if we fail to compute a misalignment. | |
21405 | Use pooled base alignments for unconditional references. | |
21406 | (vect_find_same_alignment_drs): Compare base addresses instead | |
21407 | of base objects. | |
21408 | (vect_analyze_data_refs_alignment): Call vect_record_base_alignments. | |
21409 | * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise. | |
21410 | ||
21411 | 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org> | |
21412 | ||
21413 | * tree-vectorizer.h (vec_info): Add a constructor and destructor. | |
21414 | Add an explicit name for the enum. Use auto_vec for slp_instances | |
21415 | and grouped_stores. | |
21416 | (_loop_vec_info): Add a constructor and destructor. Use auto_vec | |
21417 | for all vectors. | |
21418 | (_bb_vec_info): Add a constructor and destructor. | |
21419 | (vinfo_for_stmt): Return NULL for uids of -1 as well. | |
21420 | (destroy_loop_vec_info): Delete. | |
21421 | (vect_destroy_datarefs): Likewise. | |
21422 | * tree-vectorizer.c (vect_destroy_datarefs): Delete. | |
21423 | (vec_info::vec_info): New function. | |
21424 | (vec_info::~vec_info): Likewise. | |
21425 | (vectorize_loops): Use delete instead of destroy_loop_vec_info. | |
21426 | * tree-parloops.c (gather_scalar_reductions): Use delete instead of | |
21427 | destroy_loop_vec_info. | |
21428 | * tree-vect-loop.c (new_loop_vec_info): Replace with... | |
21429 | (_loop_vec_info::_loop_vec_info): ...this. | |
21430 | (destroy_loop_vec_info): Replace with... | |
21431 | (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete | |
21432 | the stmt_vec_infos. Leave handling of vec_info information to its | |
21433 | destructor. Remove explicit vector releases. | |
21434 | (vect_analyze_loop_form): Use new instead of new_loop_vec_info. | |
21435 | (vect_analyze_loop): Use delete instead of destroy_loop_vec_info. | |
21436 | * tree-vect-slp.c (new_bb_vec_info): Replace with... | |
21437 | (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in | |
21438 | BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES. | |
21439 | (destroy_bb_vec_info): Replace with... | |
21440 | (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info | |
21441 | information to its destructor. | |
21442 | (vect_slp_analyze_bb_1): Use new and delete instead of | |
21443 | new_bb_vec_info and destroy_bb_vec_info. | |
21444 | (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a | |
21445 | single delete. | |
21446 | ||
21447 | 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org> | |
21448 | ||
21449 | * tree-data-ref.h (subscript): Add access_fn field. | |
21450 | (data_dependence_relation): Add could_be_independent_p. | |
21451 | (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros. | |
21452 | (same_access_functions): Move to tree-data-ref.c. | |
21453 | * tree-data-ref.c (ref_contains_union_access_p): New function. | |
21454 | (access_fn_component_p): Likewise. | |
21455 | (access_fn_components_comparable_p): Likewise. | |
21456 | (dr_analyze_indices): Add a reference to access_fn_component_p. | |
21457 | (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of | |
21458 | DR_ACCESS_FN. | |
21459 | (constant_access_functions): Likewise. | |
21460 | (add_other_self_distances): Likewise. | |
21461 | (same_access_functions): Likewise. (Moved from tree-data-ref.h.) | |
21462 | (initialize_data_dependence_relation): Use XCNEW and remove | |
21463 | explicit zeroing of DDR_REVERSED_P. Look for a subsequence | |
21464 | of access functions that have the same type. Allow the | |
21465 | subsequence to end with different bases in some circumstances. | |
21466 | Record the chosen access functions in SUB_ACCESS_FN. | |
21467 | (build_classic_dist_vector_1): Replace ddr_a and ddr_b with | |
21468 | a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN. | |
21469 | (subscript_dependence_tester_1): Likewise dra and drb. | |
21470 | (build_classic_dist_vector): Update calls accordingly. | |
21471 | (subscript_dependence_tester): Likewise. | |
21472 | * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check | |
21473 | DDR_COULD_BE_INDEPENDENT_P. | |
21474 | * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test | |
21475 | comp_alias_ddrs instead of may_alias_ddrs. | |
21476 | * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): | |
21477 | New function. | |
21478 | (vect_analyze_data_ref_dependence): Use it if | |
21479 | DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded | |
21480 | distance vectors if that fails. | |
21481 | (dependence_distance_ge_vf): New function. | |
21482 | (vect_prune_runtime_alias_test_list): Use it. Don't clear | |
21483 | LOOP_VINFO_MAY_ALIAS_DDRS. | |
21484 | ||
21485 | 2017-08-04 Richard Biener <rguenther@suse.de> | |
21486 | ||
21487 | PR middle-end/81705 | |
21488 | * fold-const.c (fold_binary_loc): Properly restrict | |
21489 | minus_var0 && minus_var1 case when associating undefined overflow | |
21490 | entities. | |
21491 | ||
21492 | 2017-08-04 Tom de Vries <tom@codesourcery.com> | |
21493 | ||
21494 | * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability. | |
21495 | ||
21496 | 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
21497 | ||
21498 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
21499 | Don't start diagnostic messages with a capital letter. | |
21500 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
21501 | Likewise. | |
21502 | (rs6000_invalid_builtin): Likewise. | |
21503 | (rs6000_trampoline_init): Likewise. | |
21504 | ||
21505 | 2017-08-03 Jakub Jelinek <jakub@redhat.com> | |
21506 | ||
21507 | PR target/81621 | |
21508 | * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish | |
21509 | after setting changeable df flags. | |
21510 | ||
21511 | 2017-08-03 Richard Biener <rguenther@suse.de> | |
21512 | ||
21513 | * tree-ssa-reassoc.c (should_break_up_subtract): Also break | |
21514 | up if the use is in USE - X. | |
21515 | ||
21516 | 2017-08-03 Alexander Monakov <amonakov@ispras.ru> | |
21517 | ||
21518 | * toplev.c (dumpfile.h): New include. | |
21519 | (internal_error_reentered): New static function. Use it... | |
21520 | (internal_error_function): ...here to handle reentered internal_error. | |
21521 | ||
21522 | 2017-08-03 Richard Biener <rguenther@suse.de> | |
21523 | ||
21524 | PR middle-end/81148 | |
21525 | * fold-const.c (split_tree): Add minus_var and minus_con | |
21526 | arguments, remove unused loc arg. Never generate NEGATE_EXPRs | |
21527 | here but always use minus_*. | |
21528 | (associate_trees): Assert we never associate with MINUS_EXPR | |
21529 | and NULL first operand. Do not recurse for PLUS_EXPR operands | |
21530 | when associating as MINUS_EXPR either. | |
21531 | (fold_binary_loc): Track minus_var and minus_con. | |
21532 | ||
21533 | 2017-08-03 Tom de Vries <tom@codesourcery.com> | |
21534 | ||
21535 | PR lto/81430 | |
21536 | * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If | |
21537 | ACCEL_COMPILER, apply finish_options on | |
21538 | DECL_FUNCTION_SPECIFIC_OPTIMIZATION. | |
21539 | ||
21540 | 2017-08-03 Tom de Vries <tom@codesourcery.com> | |
21541 | ||
21542 | PR target/81662 | |
21543 | * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if | |
21544 | function_entry_patch_area_size > 0. | |
21545 | ||
21546 | 2017-08-03 Jakub Jelinek <jakub@redhat.com> | |
21547 | ||
21548 | PR driver/81650 | |
21549 | * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??) | |
21550 | instead of 10??LU, perform unit multiplication in wide_int, | |
21551 | don't change alloc_object_size_limit if the limit is larger | |
21552 | than SSIZE_MAX. | |
21553 | ||
21554 | PR tree-optimization/81655 | |
21555 | PR tree-optimization/81588 | |
21556 | * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also | |
21557 | the case when ranges[i].low and high are 1 for unsigned type with | |
21558 | precision 1. | |
21559 | ||
21560 | PR middle-end/81052 | |
21561 | * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp. | |
21562 | (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd. | |
21563 | ||
21564 | 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
21565 | ||
21566 | * tree-vrp.h: Add include guard. | |
21567 | ||
21568 | 2017-08-02 Uros Bizjak <ubizjak@gmail.com> | |
21569 | ||
21570 | PR target/81644 | |
21571 | * config/i386/i386.md (unspecv): Add UNSPECV_UD2. | |
21572 | (ud2): New insn pattern. | |
21573 | * config/i386/i386.c (ix86_expand_epilogue): | |
21574 | For naked functions, generate ud2 instead of trap insn. | |
21575 | ||
21576 | 2017-08-02 Marek Polacek <polacek@redhat.com> | |
21577 | ||
21578 | PR other/81667 | |
21579 | * alloc-pool.h (base_pool_allocator): Initialize m_elt_size. | |
21580 | ||
21581 | 2017-08-02 Tom de Vries <tom@codesourcery.com> | |
21582 | Cesar Philippidis <cesar@codesourcery.com> | |
21583 | ||
21584 | * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update): | |
21585 | Add missing edge probabilities. | |
21586 | ||
21587 | 2017-08-02 Tamar Christina <tamar.christina@arm.com> | |
21588 | ||
21589 | * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): | |
21590 | Correct endianness. | |
21591 | ||
21592 | 2017-08-02 Jakub Jelinek <jakub@redhat.com> | |
21593 | ||
21594 | PR middle-end/79499 | |
21595 | * function.c (thread_prologue_and_epilogue_insns): Determine blocks | |
21596 | for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN | |
21597 | of first NONDEBUG_INSN_P in each of the split_prologue_seq and | |
21598 | prologue_seq sequences - if any. | |
21599 | ||
21600 | 2017-08-02 Richard Biener <rguenther@suse.de> | |
21601 | ||
21602 | * tree-vect-stmts.c (vectorizable_store): Perform vector extracts | |
21603 | via vectors if supported, integer extracts via punning if supported | |
21604 | or otherwise vector extracts. | |
21605 | ||
21606 | 2017-08-02 Richard Biener <rguenther@suse.de> | |
21607 | ||
21608 | * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline | |
21609 | into ... | |
21610 | (bitmap_insert_into_set): ... this. | |
21611 | ||
21612 | 2017-08-02 Richard Biener <rguenther@suse.de> | |
21613 | ||
21614 | PR tree-optimization/81633 | |
21615 | Revert | |
21616 | 2015-08-17 Alan Hayward <alan.hayward@arm.com> | |
21617 | ||
21618 | PR tree-optimization/71752 | |
21619 | * tree-vect-slp.c (vect_get_slp_defs): Handle null operands. | |
21620 | ||
21621 | 2017-08-01 Daniel Santos <daniel.santos@pobox.com> | |
21622 | ||
21623 | * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field. | |
21624 | (machine_function::call_ms2sysv_pad_out): Remove field. | |
21625 | * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify. | |
21626 | (ix86_compute_frame_layout): Likewise. | |
21627 | ||
21628 | 2017-08-01 H.J. Lu <hongjiu.lu@intel.com> | |
21629 | ||
21630 | PR target/81654 | |
21631 | * config/i386/i386.c (ix86_set_func_type): Disallow naked | |
21632 | attribute with interrupt attribute. | |
21633 | ||
21634 | 2017-08-01 Andrew Pinski <apinski@cavium.com> | |
21635 | ||
21636 | * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check | |
21637 | BIT_INSERT_EXPR's operand 1 | |
21638 | to see if the types precision matches. | |
21639 | ||
21640 | 2017-08-01 Martin Liska <mliska@suse.cz> | |
21641 | ||
21642 | PR middle-end/70140 | |
21643 | * builtins.c (expand_builtin_memcpy_args): Remove. | |
21644 | (expand_builtin_memcpy): Call newly added function | |
21645 | expand_builtin_memory_copy_args. | |
21646 | (expand_builtin_memcpy_with_bounds): Likewise. | |
21647 | (expand_builtin_mempcpy): Remove last argument. | |
21648 | (expand_builtin_mempcpy_with_bounds): Likewise. | |
21649 | (expand_builtin_memory_copy_args): New function created from | |
21650 | expand_builtin_mempcpy_args with small modifications. | |
21651 | (expand_builtin_mempcpy_args): Remove. | |
21652 | (expand_builtin_stpcpy): Remove unused argument. | |
21653 | (expand_builtin): Likewise. | |
21654 | (expand_builtin_with_bounds): Likewise. | |
21655 | ||
21656 | 2017-08-01 Martin Liska <mliska@suse.cz> | |
21657 | ||
21658 | Revert r250771 | |
21659 | Make mempcpy more optimal (PR middle-end/70140). | |
21660 | ||
21661 | 2017-08-01 Jakub Jelinek <jakub@redhat.com> | |
21662 | ||
21663 | PR target/81622 | |
21664 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For | |
21665 | __builtin_vec_cmpne verify both arguments are compatible vectors | |
21666 | before looking at TYPE_MODE on the element type. For __builtin_vec_ld | |
21667 | verify arg1_type is a pointer or array type. For __builtin_vec_st, | |
21668 | move computation of aligned to after checking the argument types. | |
21669 | Formatting fixes. | |
21670 | ||
21671 | PR target/80846 | |
21672 | * config/rs6000/vsx.md (vextract_fp_from_shorth, | |
21673 | vextract_fp_from_shortl): Add element mode after mode in gen_vec_init* | |
21674 | calls. | |
21675 | ||
21676 | 2017-08-01 Jerome Lambourg <lambourg@adacore.com> | |
21677 | Doug Rupp <rupp@adacore.com> | |
21678 | Olivier Hainque <hainque@adacore.com> | |
21679 | ||
21680 | * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as | |
21681 | well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to | |
21682 | arm8 (arch v4). | |
21683 | * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper | |
21684 | for TARGET_OS_CPP_BUILTIN. | |
21685 | (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(), | |
21686 | refine CPU definitions for arm_arch5 and add those for arm_arch6 and | |
21687 | arm_arch7. | |
21688 | (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC, | |
21689 | passing required abi options to the assembler for EABI configurations. | |
21690 | (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production | |
21691 | of .text.hot and .text.unlikely sections for kernel modules when | |
21692 | using ARM style exceptions. | |
21693 | (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain | |
21694 | options. Add EXTRA_CC1_SPEC. | |
21695 | (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab | |
21696 | toolchain options. | |
21697 | (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7 | |
21698 | transition. | |
21699 | (ARM_TARGET2_DWARF_FORMAT): Define. | |
21700 | * config/arm/t-vxworks: Adjust multilib control to removal of the | |
21701 | Diab command line options. | |
21702 | ||
21703 | 2017-08-01 Martin Liska <mliska@suse.cz> | |
21704 | ||
21705 | PR gcov-profile/81561 | |
21706 | * gcov.c (unblock): Make unblocking safe as we need to preserve | |
21707 | index correspondence of blocks and block_lists. | |
21708 | ||
21709 | 2017-08-01 Richard Biener <rguenther@suse.de> | |
21710 | ||
21711 | PR tree-optimization/81181 | |
21712 | * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ... | |
21713 | (compute_antic): ... end of iteration here. | |
21714 | ||
21715 | 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com> | |
21716 | ||
21717 | * common.opt (ftree-vectorize): No longer set flag_tree_vectorize. | |
21718 | (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize. | |
21719 | (ftree-slp-vectorize): Likewise. | |
21720 | * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it | |
21721 | can no longer be set independent of flag_tree_loop_vectorize. | |
21722 | * omp-general.c (emp_max_vf): Likewise. | |
21723 | * opts.c (enable_fdo_optimizations): Remove references to | |
21724 | flag_tree_vectorize, these are now implicit. | |
21725 | (common_handle_option): Remove handling for OPT_ftree_vectorize, | |
21726 | and leave it for the options machinery. | |
21727 | ||
21728 | 2017-08-01 Martin Liska <mliska@suse.cz> | |
21729 | ||
21730 | PR middle-end/70140 | |
21731 | * builtins.c (expand_builtin_memcpy_args): Remove. | |
21732 | (expand_builtin_memcpy): Call newly added function | |
21733 | expand_builtin_memory_copy_args. | |
21734 | (expand_builtin_memcpy_with_bounds): Likewise. | |
21735 | (expand_builtin_mempcpy): Remove last argument. | |
21736 | (expand_builtin_mempcpy_with_bounds): Likewise. | |
21737 | (expand_builtin_memory_copy_args): New function created from | |
21738 | expand_builtin_mempcpy_args with small modifications. | |
21739 | (expand_builtin_mempcpy_args): Remove. | |
21740 | (expand_builtin_stpcpy): Remove unused argument. | |
21741 | (expand_builtin): Likewise. | |
21742 | (expand_builtin_with_bounds): Likewise. | |
21743 | ||
21744 | 2017-08-01 Uros Bizjak <ubizjak@gmail.com> | |
21745 | ||
21746 | PR target/81641 | |
21747 | * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel | |
21748 | print "ds:" only for immediates in generic address space. | |
21749 | ||
21750 | 2017-08-01 Uros Bizjak <ubizjak@gmail.com> | |
21751 | ||
21752 | PR target/81639 | |
21753 | * config/i386/i386.c (ix86_funciton_naked): New prototype. | |
21754 | (ix86_function_ok_for_sibcall): Return false for naked functions. | |
21755 | ||
21756 | 2017-08-01 Richard Biener <rguenther@suse.de> | |
21757 | ||
21758 | * tree-ssa-pre.c (print_pre_expr): Handle NULL expr. | |
21759 | (compute_antic): Seed worklist with exit block predecessors. | |
21760 | * cfganal.c (dfs_find_deadend): For a cycle return the source | |
21761 | of the edge closing it. | |
21762 | ||
21763 | 2017-08-01 Tamar Christina <tamar.christina@arm.com> | |
21764 | ||
21765 | * config/aarch64/aarch64.c | |
21766 | (aarch64_can_const_movi_rtx_p): Move 0 check. | |
21767 | ||
21768 | 2017-08-01 Bin Cheng <bin.cheng@arm.com> | |
21769 | ||
21770 | * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete. | |
21771 | * fold-const.c (fold_comparison, fold_binary_loc): Delete use of | |
21772 | above macro. | |
21773 | * match.pd: Ditto in address comparison pattern. | |
21774 | ||
21775 | 2017-08-01 Bin Cheng <bin.cheng@arm.com> | |
21776 | ||
21777 | PR tree-optimization/81627 | |
21778 | * tree-predcom.c (prepare_finalizers): Always rewrite into loop | |
21779 | closed ssa form for store-store chain. | |
21780 | ||
21781 | 2017-08-01 Bin Cheng <bin.cheng@arm.com> | |
21782 | ||
21783 | PR tree-optimization/81620 | |
21784 | * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after | |
21785 | for store-store chain. | |
21786 | ||
21787 | 2017-08-01 Jakub Jelinek <jakub@redhat.com> | |
21788 | ||
21789 | PR tree-optimization/81588 | |
21790 | * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If | |
21791 | ranges[i].in_p, invert comparison code ccode. For >/>=, | |
21792 | swap rhs1 and rhs2 and comparison code unconditionally, | |
21793 | for </<= don't do that. Don't swap rhs1/rhs2 again if | |
21794 | ranges[i].in_p, instead invert comparison code ccode if | |
21795 | opcode or oe->rank is BIT_IOR_EXPR. | |
21796 | ||
21797 | PR target/80846 | |
21798 | * optabs.def (vec_extract_optab, vec_init_optab): Change from | |
21799 | a direct optab to conversion optab. | |
21800 | * optabs.c (expand_vector_broadcast): Use convert_optab_handler | |
21801 | with GET_MODE_INNER as last argument instead of optab_handler. | |
21802 | * expmed.c (extract_bit_field_1): Likewise. Use vector from | |
21803 | vector extraction if possible and optab is available. | |
21804 | * expr.c (store_constructor): Use convert_optab_handler instead | |
21805 | of optab_handler. Use vector initialization from smaller | |
21806 | vectors if possible and optab is available. | |
21807 | * tree-vect-stmts.c (vectorizable_load): Likewise. | |
21808 | * doc/md.texi (vec_extract, vec_init): Document that the optabs | |
21809 | now have two modes. | |
21810 | * config/i386/i386.c (ix86_expand_vector_init): Handle expansion | |
21811 | of vec_init from half-sized vectors with the same element mode. | |
21812 | * config/i386/sse.md (ssehalfvecmode): Add V4TI case. | |
21813 | (ssehalfvecmodelower, ssescalarmodelower): New mode attributes. | |
21814 | (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df, | |
21815 | reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf, | |
21816 | reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode | |
21817 | after mode in gen_vec_extract* calls. | |
21818 | (vec_extract<mode>): Renamed to ... | |
21819 | (vec_extract<mode><ssescalarmodelower>): ... this. | |
21820 | (vec_extract<mode><ssehalfvecmodelower>): New expander. | |
21821 | (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add | |
21822 | element mode after mode in gen_vec_init* calls. | |
21823 | (VEC_INIT_HALF_MODE): New mode iterator. | |
21824 | (vec_init<mode>): Renamed to ... | |
21825 | (vec_init<mode><ssescalarmodelower>): ... this. | |
21826 | (vec_init<mode><ssehalfvecmodelower>): New expander. | |
21827 | * config/i386/mmx.md (vec_extractv2sf): Renamed to ... | |
21828 | (vec_extractv2sfsf): ... this. | |
21829 | (vec_initv2sf): Renamed to ... | |
21830 | (vec_initv2sfsf): ... this. | |
21831 | (vec_extractv2si): Renamed to ... | |
21832 | (vec_extractv2sisi): ... this. | |
21833 | (vec_initv2si): Renamed to ... | |
21834 | (vec_initv2sisi): ... this. | |
21835 | (vec_extractv4hi): Renamed to ... | |
21836 | (vec_extractv4hihi): ... this. | |
21837 | (vec_initv4hi): Renamed to ... | |
21838 | (vec_initv4hihi): ... this. | |
21839 | (vec_extractv8qi): Renamed to ... | |
21840 | (vec_extractv8qiqi): ... this. | |
21841 | (vec_initv8qi): Renamed to ... | |
21842 | (vec_initv8qiqi): ... this. | |
21843 | * config/rs6000/vector.md (VEC_base_l): New mode attribute. | |
21844 | (vec_init<mode>): Renamed to ... | |
21845 | (vec_init<mode><VEC_base_l>): ... this. | |
21846 | (vec_extract<mode>): Renamed to ... | |
21847 | (vec_extract<mode><VEC_base_l>): ... this. | |
21848 | * config/rs6000/paired.md (vec_initv2sf): Renamed to ... | |
21849 | (vec_initv2sfsf): ... this. | |
21850 | * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3, | |
21851 | vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi, | |
21852 | vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add | |
21853 | element mode after mode in gen_vec_init* calls. | |
21854 | * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ... | |
21855 | (vec_init<mode><Vel>): ... this. | |
21856 | (vec_extract<mode>): Renamed to ... | |
21857 | (vec_extract<mode><Vel>): ... this. | |
21858 | * config/aarch64/iterators.md (Vel): New mode attribute. | |
21859 | * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr): | |
21860 | Add element mode after mode in gen_vec_extract* calls. | |
21861 | * config/s390/vector.md (non_vec_l): New mode attribute. | |
21862 | (vec_extract<mode>): Renamed to ... | |
21863 | (vec_extract<mode><non_vec_l>): ... this. | |
21864 | (vec_init<mode>): Renamed to ... | |
21865 | (vec_init<mode><non_vec_l>): ... this. | |
21866 | * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf, | |
21867 | s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after | |
21868 | vec_extract mode. | |
21869 | * config/arm/iterators.md (V_elem_l): New mode attribute. | |
21870 | * config/arm/neon.md (vec_extract<mode>): Renamed to ... | |
21871 | (vec_extract<mode><V_elem_l>): ... this. | |
21872 | (vec_extractv2di): Renamed to ... | |
21873 | (vec_extractv2didi): ... this. | |
21874 | (vec_init<mode>): Renamed to ... | |
21875 | (vec_init<mode><V_elem_l>): ... this. | |
21876 | (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>, | |
21877 | reduc_smax_scal_<mode>, reduc_umin_scal_<mode>, | |
21878 | reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>): | |
21879 | Add element mode after gen_vec_extract* calls. | |
21880 | * config/mips/mips-msa.md (vec_init<mode>): Renamed to ... | |
21881 | (vec_init<mode><unitmode>): ... this. | |
21882 | (vec_extract<mode>): Renamed to ... | |
21883 | (vec_extract<mode><unitmode>): ... this. | |
21884 | * config/mips/loongson.md (vec_init<mode>): Renamed to ... | |
21885 | (vec_init<mode><unitmode>): ... this. | |
21886 | * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ... | |
21887 | (vec_initv2sfsf): ... this. | |
21888 | (vec_extractv2sf): Renamed to ... | |
21889 | (vec_extractv2sfsf): ... this. | |
21890 | (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf): | |
21891 | Add element mode after gen_vec_extract* calls. | |
21892 | * config/mips/mips.md (unitmode): New mode iterator. | |
21893 | * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack, | |
21894 | spu_builtin_extract): Add element mode after gen_vec_extract* calls. | |
21895 | * config/spu/spu.md (inner_l): New mode attribute. | |
21896 | (vec_init<mode>): Renamed to ... | |
21897 | (vec_init<mode><inner_l>): ... this. | |
21898 | (vec_extract<mode>): Renamed to ... | |
21899 | (vec_extract<mode><inner_l>): ... this. | |
21900 | * config/sparc/sparc.md (veltmode): New mode iterator. | |
21901 | (vec_init<VMALL:mode>): Renamed to ... | |
21902 | (vec_init<VMALL:mode><VMALL:veltmode>): ... this. | |
21903 | * config/ia64/vect.md (vec_initv2si): Renamed to ... | |
21904 | (vec_initv2sisi): ... this. | |
21905 | (vec_initv2sf): Renamed to ... | |
21906 | (vec_initv2sfsf): ... this. | |
21907 | (vec_extractv2sf): Renamed to ... | |
21908 | (vec_extractv2sfsf): ... this. | |
21909 | * config/powerpcspe/vector.md (VEC_base_l): New mode attribute. | |
21910 | (vec_init<mode>): Renamed to ... | |
21911 | (vec_init<mode><VEC_base_l>): ... this. | |
21912 | (vec_extract<mode>): Renamed to ... | |
21913 | (vec_extract<mode><VEC_base_l>): ... this. | |
21914 | * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ... | |
21915 | (vec_initv2sfsf): ... this. | |
21916 | * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3, | |
21917 | vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi, | |
21918 | vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in | |
21919 | gen_vec_init* calls. | |
21920 | ||
21921 | 2017-08-01 Richard Biener <rguenther@suse.de> | |
21922 | ||
21923 | PR tree-optimization/81297 | |
21924 | * tree-vrp.c (get_single_symbol): Remove assert, instead drop | |
21925 | TREE_OVERFLOW from INTEGER_CSTs. | |
21926 | ||
21927 | 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org> | |
21928 | ||
21929 | * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma. | |
21930 | ||
21931 | 2017-07-31 Carl Love <cel@us.ibm.com> | |
21932 | ||
21933 | * config/rs6000/rs6000-c: Add support for built-in functions | |
21934 | vector signed char vec_xl_be (signed long long, signed char *); | |
21935 | vector unsigned char vec_xl_be (signed long long, unsigned char *); | |
21936 | vector signed int vec_xl_be (signed long long, signed int *); | |
21937 | vector unsigned int vec_xl_be (signed long long, unsigned int *); | |
21938 | vector signed long long vec_xl_be (signed long long, signed long long *); | |
21939 | vector unsigned long long vec_xl_be (signed long long, unsigned long long *); | |
21940 | vector signed short vec_xl_be (signed long long, signed short *); | |
21941 | vector unsigned short vec_xl_be (signed long long, unsigned short *); | |
21942 | vector double vec_xl_be (signed long long, double *); | |
21943 | vector float vec_xl_be (signed long long, float *); | |
21944 | * config/rs6000/altivec.h (vec_xl_be): Add #define. | |
21945 | * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI) | |
21946 | XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions | |
21947 | for the builtins. | |
21948 | * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function. | |
21949 | (altivec_expand_builtin): Add switch statement to call | |
21950 | altivec_expand_xl_be for each builtin. | |
21951 | (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi, | |
21952 | __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di, | |
21953 | __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df, | |
21954 | __builtin_vsx_le_be_v16qi. | |
21955 | * doc/extend.texi: Update the built-in documentation file for the | |
21956 | new built-in functions. | |
21957 | ||
21958 | 2017-07-31 Uros Bizjak <ubizjak@gmail.com> | |
21959 | ||
21960 | PR target/25967 | |
21961 | * config/i386/i386.c (ix86_allocate_stack_slots_for_args): | |
21962 | New function. | |
21963 | (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define. | |
21964 | ||
21965 | 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
21966 | ||
21967 | * config.gcc: Add z14. | |
21968 | * config/s390/driver-native.c (s390_host_detect_local_cpu): Add | |
21969 | CPU model numbers for z13s and z14. | |
21970 | * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace | |
21971 | arch12 with z14. | |
21972 | * config/s390/s390-opts.h (enum processor_type): Rename | |
21973 | PROCESSOR_ARCH12 to PROCESSOR_3906_Z14. | |
21974 | * config/s390/s390.c (processor_table): Add field for CPU name to | |
21975 | be passed to Binutils. | |
21976 | (s390_asm_output_machine_for_arch): Use the new field in | |
21977 | processor_table for Binutils. | |
21978 | (s390_expand_builtin): Replace arch12 with z14. | |
21979 | (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14. | |
21980 | (s390_get_sched_attrmask): Likewise. | |
21981 | (s390_get_unit_mask): Likewise. | |
21982 | * config/s390/s390.opt: Add z14 to processor_type enum. | |
21983 | ||
21984 | 2017-07-31 Martin Jambor <mjambor@suse.cz> | |
21985 | ||
21986 | PR hsa/81477 | |
21987 | * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable | |
21988 | regardless of optimization level. | |
21989 | ||
21990 | 2017-07-31 Jan Hubicka <hubicka@ucw.cz> | |
21991 | Martin Liska <mliska@suse.cz> | |
21992 | ||
21993 | * predict.def: Remove old comment and adjust probability. | |
21994 | * gimplify.c (should_warn_for_implicit_fallthrough): Ignore | |
21995 | PREDICT statements. | |
21996 | ||
21997 | 2017-07-31 Uros Bizjak <ubizjak@gmail.com> | |
21998 | ||
21999 | PR target/25967 | |
22000 | * config/i386/i386.c (ix86_function_naked): New function. | |
22001 | (ix86_can_use_return_insn_p): Return false for naked functions. | |
22002 | (ix86_expand_prologue): Skip prologue for naked functions. | |
22003 | (ix86_expand_epilogue): Skip epilogue for naked functions | |
22004 | and emit trap instruction. | |
22005 | (ix86_warn_func_return): New function. | |
22006 | (ix86_attribute_table): Add "naked" attribute specification. | |
22007 | (TARGET_WARN_FUNC_RETURN): Define. | |
22008 | * doc/extend.texi (x86 Function Attributes) <naked>: Document it. | |
22009 | ||
22010 | 2017-07-31 Martin Liska <mliska@suse.cz> | |
22011 | ||
22012 | * gimple-pretty-print.c (dump_gimple_label): Never dump BB info. | |
22013 | (dump_gimple_bb_header): Always dump BB info. | |
22014 | (pp_cfg_jump): Do not append info about BB when dumping a jump. | |
22015 | ||
22016 | 2017-07-31 Martin Liska <mliska@suse.cz> | |
22017 | ||
22018 | PR sanitize/81530 | |
22019 | * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p | |
22020 | also with current_function_decl non-null equality. | |
22021 | ||
22022 | 2017-07-31 Jakub Jelinek <jakub@redhat.com> | |
22023 | ||
22024 | PR sanitizer/81604 | |
22025 | * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't | |
22026 | change type to the element type, instead add eltype variable and | |
22027 | use it where we are interested in the element type. | |
22028 | ||
22029 | PR tree-optimization/81603 | |
22030 | * ipa-polymorphic-call.c | |
22031 | (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform | |
22032 | offset arithmetic in offset_int, bail out if the resulting bit offset | |
22033 | doesn't fit into shwi. | |
22034 | ||
22035 | 2017-07-31 Martin Liska <mliska@suse.cz> | |
22036 | ||
22037 | * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk. | |
22038 | (gimplify_save_expr): Fix comment. | |
22039 | ||
22040 | 2017-07-30 H.J. Lu <hongjiu.lu@intel.com> | |
22041 | ||
22042 | PR target/79793 | |
22043 | * config/i386/i386.c (ix86_function_arg): Update arguments for | |
22044 | exception handler. | |
22045 | (ix86_compute_frame_layout): Set the initial stack offset to | |
22046 | INCOMING_FRAME_SP_OFFSET. Update red-zone offset with | |
22047 | INCOMING_FRAME_SP_OFFSET. | |
22048 | (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the | |
22049 | stack before exception handler returns. | |
22050 | * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the | |
22051 | the 'ERROR_CODE' for exception handler. | |
22052 | ||
22053 | 2017-07-30 Uros Bizjak <ubizjak@gmail.com> | |
22054 | ||
22055 | * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro. | |
22056 | (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers. | |
22057 | (ASM_OUTPUT_REG_POP): Ditto. | |
22058 | * config/i386/i386.c (ix86_asm_output_function_label): Use fputs | |
22059 | instead of asm_fprintf to output pure string. | |
22060 | ||
22061 | 2017-07-29 Jakub Jelinek <jakub@redhat.com> | |
22062 | ||
22063 | * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument | |
22064 | to imported_module_or_decl hook. | |
22065 | (debug_nothing_tree_tree_tree_bool): Remove. | |
22066 | (debug_nothing_tree_tree_tree_bool_bool): New declaration. | |
22067 | * debug.c (do_nothing_debug_hooks): Use | |
22068 | debug_nothing_tree_tree_tree_bool_bool instead of | |
22069 | debug_nothing_tree_tree_tree_bool. | |
22070 | * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. | |
22071 | * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. | |
22072 | * sdbout.c (sdb_debug_hooks): Likewise. | |
22073 | * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise. | |
22074 | (gen_namespace_die): Add DW_AT_export_symbols attribute if | |
22075 | langhook wants it. | |
22076 | (dwarf2out_imported_module_or_decl): Add IMPLICIT argument, | |
22077 | if true, -gdwarf-5 and decl will have DW_AT_export_symbols | |
22078 | attribute, don't add anything. | |
22079 | ||
22080 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22081 | ||
22082 | * fold-const.c (fold_build1_stat_loc): Remove _stat from name. | |
22083 | (fold_build2_stat_loc): Likewise. | |
22084 | (fold_build3_stat_loc): Likewise. | |
22085 | * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust. | |
22086 | (fold_build1_loc): Remove macro. | |
22087 | (fold_build2_loc): Likewise. | |
22088 | (fold_build3_loc): Likewise. | |
22089 | ||
22090 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22091 | ||
22092 | * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name. | |
22093 | (gimple_build_debug_bind_source_stat): Likewise. | |
22094 | * gimple.h (gimple_build_debug_bind): Remove macro. | |
22095 | (gimple_build_debug_bind_source): Likewise. | |
22096 | ||
22097 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22098 | ||
22099 | * bitmap.c (bitmap_alloc): Adjust. | |
22100 | (bitmap_gc_alloc): Likewise. | |
22101 | * bitmap.h (bitmap_initialize_stat): Remove _stat from name. | |
22102 | ||
22103 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22104 | ||
22105 | * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc. | |
22106 | (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc. | |
22107 | * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype. | |
22108 | (bitmap_gc_alloc_stat): Likewise. | |
22109 | (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust. | |
22110 | ||
22111 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22112 | ||
22113 | * rtl.c (shallow_copy_rtx_stat): Remove _stat from name. | |
22114 | * rtl.h (shallow_copy_rtx): Remove macro. | |
22115 | ||
22116 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22117 | ||
22118 | * emit-rtl.c (gen_raw_REG): Adjust. | |
22119 | * gengenrtl.c (gendef): Likewise. | |
22120 | * rtl.c (rtx_alloc_stat): Remove _stat from name. | |
22121 | * rtl.h (rtx_alloc): Remove macro. | |
22122 | ||
22123 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22124 | ||
22125 | * tree.c (build_tree_list_vec_stat): Remove _stat from name. | |
22126 | (build_tree_list_stat): Likewise. | |
22127 | * tree.h (build_tree_list): Remove macro. | |
22128 | (build_tree_list_vec): Likewise. | |
22129 | ||
22130 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22131 | ||
22132 | * tree.c (make_vector_stat): Remove _stat from name. | |
22133 | (build_vector_stat): Likewise. | |
22134 | * tree.h (make_vector_stat): Remove macro. | |
22135 | (build_vector_stat): Likewise. | |
22136 | ||
22137 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22138 | ||
22139 | * tree.h (build_var_debug_value): Remove prototype. | |
22140 | ||
22141 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22142 | ||
22143 | * tree.c (tree_cons_stat): Remove _stat from name. | |
22144 | * tree.h (tree_cons): Remove macro. | |
22145 | ||
22146 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22147 | ||
22148 | * tree.c (build_vl_exp_stat): Remove _stat from name. | |
22149 | * tree.h (build_vl_exp): Remove macro. | |
22150 | ||
22151 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22152 | ||
22153 | * tree.c (build_decl_stat): Remove _stat from name. | |
22154 | * tree.h (build_decl): Remove macro. | |
22155 | ||
22156 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22157 | ||
22158 | * gimple.c (gimple_build_with_ops_stat): Adjust. | |
22159 | (gimple_alloc_stat): Remove _stat from name. | |
22160 | * gimple.h (gimple_alloc): Remove macro. | |
22161 | ||
22162 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22163 | ||
22164 | * tree.c (make_tree_vec_stat): Remove _stat from name. | |
22165 | (grow_tree_vec_stat): Likewise. | |
22166 | * tree.h (make_tree_vec_stat): Adjust prototype. | |
22167 | (grow_tree_vec_stat): Likewise. | |
22168 | (make_tree_vec): Remove macro. | |
22169 | (grow_tree_vec): Likewise. | |
22170 | ||
22171 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22172 | ||
22173 | * fold-const.c (fold_build1_stat_loc): Adjust. | |
22174 | (fold_build2_stat_loc): Likewise. | |
22175 | (fold_build3_stat_loc): Likewise. | |
22176 | * tree.c (build0_stat): Remove _stat from name. | |
22177 | (build1_stat): Likewise. | |
22178 | (build2_stat): Likewise. | |
22179 | (build3_stat): Likewise. | |
22180 | (build4_stat): Likewise. | |
22181 | (build5_stat): Likewise. | |
22182 | * tree.h (build1_loc): Remove macro, and rename _stat function | |
22183 | to this. | |
22184 | (build2_loc): Likewise. | |
22185 | (build3_loc): Likewise. | |
22186 | (build4_loc): Likewise. | |
22187 | (build5_loc): Likewise. | |
22188 | ||
22189 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22190 | ||
22191 | * tree.c (make_int_cst_stat): Remove _stat from name. | |
22192 | * tree.h (make_int_cst_stat): Adjust prototype. | |
22193 | (make_int_cst): Remove macro. | |
22194 | ||
22195 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22196 | ||
22197 | * tree.c (make_tre_binfo_stat): Remove _stat from name. | |
22198 | * tree.h (make_tree_binfo_stat): Adjust prototype. | |
22199 | (make_tree_binfo): Remove. | |
22200 | ||
22201 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22202 | ||
22203 | * tree.c (copy_node_stat): Rename to copy_node. | |
22204 | (build_distinct_type_copy): Adjust. | |
22205 | * tree.h (copy_node_stat): Adjust prototype. | |
22206 | (copy_node): Remove macro. | |
22207 | ||
22208 | 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
22209 | ||
22210 | * tree.c (make_node_stat): rename to make_node. | |
22211 | (build_tree_list_stat): Adjust. | |
22212 | (build0_stat): Likewise. | |
22213 | (build2_stat): Likewise. | |
22214 | (build3_stat): Likewise. | |
22215 | (build4_stat): Likewise. | |
22216 | (build5_stat): Likewise. | |
22217 | (build_decl_stat): Likewise. | |
22218 | * tree.h (make_node_stat): Adjust prototype. | |
22219 | (make_node): remove macro. | |
22220 | ||
22221 | 2017-07-28 Peter Bergner <bergner@vnet.ibm.com> | |
22222 | ||
22223 | * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define. | |
22224 | (PPC_FEATURE2_SCV): Likewise. | |
22225 | * config/rs6000/rs6000.c (cpu_supports_info): Use them. | |
22226 | ||
22227 | 2017-07-28 Tamar Christina <tamar.christina@arm.com> | |
22228 | ||
22229 | * config/aarch64/aarch64.c | |
22230 | (aarch64_internal_mov_immediate): Add new special pattern. | |
22231 | * config/aarch64/aarch64.md (*movdi_aarch64): | |
22232 | Add reg/32bit const mov case. | |
22233 | ||
22234 | 2017-07-28 Tamar Christina <tamar.christina@arm.com> | |
22235 | Richard Sandiford <richard.sandiford@linaro.org> | |
22236 | ||
22237 | * config/aarch64/aarch64.md (mov<mode>): Generalize. | |
22238 | (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64): | |
22239 | Add integer and movi cases. | |
22240 | (movi-split-hf-df-sf split, fp16): New. | |
22241 | (enabled): Added TARGET_FP_F16INST. | |
22242 | * config/aarch64/iterators.md (GPF_HF): New. | |
22243 | * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New. | |
22244 | ||
22245 | 2017-07-28 Tamar Christina <tamar.christina@arm.com> | |
22246 | ||
22247 | * config/aarch64/aarch64.c | |
22248 | (aarch64_simd_container_mode): Add prototype. | |
22249 | (aarch64_expand_mov_immediate): Add HI support. | |
22250 | (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New. | |
22251 | (aarch64_can_const_movi_rtx_p): New. | |
22252 | (aarch64_preferred_reload_class): | |
22253 | Remove restrictions of using FP registers for certain SIMD operations. | |
22254 | (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves. | |
22255 | (aarch64_valid_floating_const): Add integer move validation. | |
22256 | (aarch64_simd_imm_scalar_p): Remove. | |
22257 | (aarch64_output_scalar_simd_mov_immediate): Generalize function. | |
22258 | (aarch64_legitimate_constant_p): Expand list of supported cases. | |
22259 | * config/aarch64/aarch64-protos.h | |
22260 | (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New. | |
22261 | (aarch64_reinterpret_float_as_int): New. | |
22262 | (aarch64_simd_imm_scalar_p): Remove. | |
22263 | * config/aarch64/constraints.md (Uvi): New. | |
22264 | (Dd): Split into Ds and new Dd. | |
22265 | * config/aarch64/aarch64.md (*movsi_aarch64): | |
22266 | Add SIMD mov case. | |
22267 | (*movdi_aarch64): Add SIMD mov case. | |
22268 | ||
22269 | 2017-07-28 Bin Cheng <bin.cheng@arm.com> | |
22270 | ||
22271 | * tree-predcom.c: (struct chain): Handle store-store chain in which | |
22272 | stores for elimination only store loop invariant values. | |
22273 | (execute_pred_commoning_chain): Ditto. | |
22274 | (prepare_initializers_chain_store_elim): Ditto. | |
22275 | (prepare_finalizers): Ditto. | |
22276 | (is_inv_store_elimination_chain): New function. | |
22277 | (initialize_root_vars_store_elim_1): New function. | |
22278 | ||
22279 | 2017-07-28 Bin Cheng <bin.cheng@arm.com> | |
22280 | ||
22281 | * tree-predcom.c: Revise general description of the pass. | |
22282 | (enum chain_type): New enum type for store elimination. | |
22283 | (struct chain): New field supporting store elimination. | |
22284 | (struct component): Ditto. | |
22285 | (dump_chain): Dump store-stores chain. | |
22286 | (release_chain): Release resources. | |
22287 | (split_data_refs_to_components): Compute and create component | |
22288 | contains only stores for elimination. | |
22289 | (get_chain_last_ref_at): New function. | |
22290 | (make_invariant_chain): Initialization. | |
22291 | (make_rooted_chain): Specify chain type in parameter and record it. | |
22292 | (add_looparound_copies): Skip for store-stores chain. | |
22293 | (determine_roots_comp): Compute type of chain and pass it to | |
22294 | make_rooted_chain. | |
22295 | (initialize_root_vars_store_elim_2): New function. | |
22296 | (finalize_eliminated_stores): New function. | |
22297 | (remove_stmt): Handle store for elimination. | |
22298 | (execute_pred_commoning_chain): Execute predictive commoning on | |
22299 | store-store chains. | |
22300 | (determine_unroll_factor): Skip unroll for store-stores chain. | |
22301 | (prepare_initializers_chain_store_elim): New function. | |
22302 | (prepare_initializers_chain): Hanlde store-store chain. | |
22303 | (prepare_finalizers_chain, prepare_finalizers): New function. | |
22304 | (tree_predictive_commoning_loop): Return integer value indicating | |
22305 | if loop is unrolled or lcssa form is corrupted. | |
22306 | (tree_predictive_commoning): Rewrite for lcssa form if necessary. | |
22307 | ||
22308 | 2017-07-28 Bin Cheng <bin.cheng@arm.com> | |
22309 | ||
22310 | * tree-predcom.c (initialize_root): Delete. | |
22311 | (execute_pred_commoning_chain): Initialize root vars and replace | |
22312 | reference of non-combined chain directly, rather than call above | |
22313 | function. | |
22314 | ||
22315 | 2017-07-28 Bin Cheng <bin.cheng@arm.com> | |
22316 | ||
22317 | * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute | |
22318 | memory reference to DR at (NITERS + ITERS)-th iteration of loop. | |
22319 | ||
22320 | 2017-07-28 Bin Cheng <bin.cheng@arm.com> | |
22321 | ||
22322 | * tree-predcom.c (struct chain): New field init_seq. | |
22323 | (release_chain): Release init_seq. | |
22324 | (prepare_initializers_chain): Record intialization stmts in above | |
22325 | field. | |
22326 | (insert_init_seqs): New function. | |
22327 | (tree_predictive_commoning_loop): Call insert_init_seqs. | |
22328 | ||
22329 | 2017-07-28 Bin Cheng <bin.cheng@arm.com> | |
22330 | ||
22331 | * tree-predcom.c (determine_roots_comp): Skip trivial components. | |
22332 | ||
22333 | 2017-07-28 Richard Biener <rguenther@suse.de> | |
22334 | ||
22335 | * match.pd: Remove superfluous :c. | |
22336 | * genmatch.c (simplify::id): Add member. | |
22337 | (lower_commutative, lower_opt_convert, lower_cond, lower_for): | |
22338 | Copy id. | |
22339 | (current_id): New global. | |
22340 | (dt_node::parent): Move from ... | |
22341 | (dt_operand::parent): ... here. Add for_id member. | |
22342 | (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand. | |
22343 | (decision_tree::find_node): Relax order requirement when | |
22344 | merging DT_TRUE nodes to ones inbetween the current simplify | |
22345 | and the one we try to merge with. Add diagnostic whenever | |
22346 | we need to enforce pattern order by not merging. | |
22347 | (decision_tree::insert): Set current_id. | |
22348 | (decision_tree::print_node): Dump parent node and for_id. | |
22349 | (parser::last_id): Add member. | |
22350 | (parser::push_simplify): Assign unique id. | |
22351 | (parser::parser): Initialize last_id. | |
22352 | ||
22353 | 2017-07-28 Martin Liska <mliska@suse.cz> | |
22354 | ||
22355 | PR sanitizer/81340 | |
22356 | * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after | |
22357 | gimple_build_debug_bind. | |
22358 | ||
22359 | 2017-07-28 Richard Biener <rguenther@suse.de> | |
22360 | ||
22361 | PR tree-optimization/81502 | |
22362 | * match.pd: Add pattern combining BIT_INSERT_EXPR with | |
22363 | BIT_FIELD_REF. | |
22364 | * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF | |
22365 | size/pos operands. | |
22366 | (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos. | |
22367 | * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype | |
22368 | for BIT_FIELD_REF args. | |
22369 | * fold-const.c (make_bit_field_ref): Likewise. | |
22370 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. | |
22371 | ||
22372 | 2017-07-28 Jakub Jelinek <jakub@redhat.com> | |
22373 | ||
22374 | PR sanitizer/80998 | |
22375 | * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR. | |
22376 | * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise. | |
22377 | * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW. | |
22378 | Or it into SANITIZER_UNDEFINED. | |
22379 | * ubsan.c: Include gimple-fold.h and varasm.h. | |
22380 | (ubsan_expand_ptr_ifn): New function. | |
22381 | (instrument_pointer_overflow): New function. | |
22382 | (maybe_instrument_pointer_overflow): New function. | |
22383 | (instrument_object_size): Formatting fix. | |
22384 | (pass_ubsan::execute): Call instrument_pointer_overflow | |
22385 | and maybe_instrument_pointer_overflow. | |
22386 | * internal-fn.c (expand_UBSAN_PTR): New function. | |
22387 | * ubsan.h (ubsan_expand_ptr_ifn): Declare. | |
22388 | * sanitizer.def (__ubsan_handle_pointer_overflow, | |
22389 | __ubsan_handle_pointer_overflow_abort): New builtins. | |
22390 | * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR. | |
22391 | * internal-fn.def (UBSAN_PTR): New internal function. | |
22392 | * opts.c (sanitizer_opts): Add pointer-overflow. | |
22393 | * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR. | |
22394 | * fold-const.c (build_range_check): Compute pointer range check in | |
22395 | integral type if pointer arithmetics would be needed. Formatting | |
22396 | fixes. | |
22397 | ||
22398 | 2017-07-28 Martin Liska <mliska@suse.cz> | |
22399 | ||
22400 | PR sanitizer/81460 | |
22401 | * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite | |
22402 | parameters that are of a variable-length. | |
22403 | ||
22404 | 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
22405 | ||
22406 | * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add | |
22407 | rs6000/biarch64.h. | |
22408 | * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro. | |
22409 | (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. | |
22410 | (CRT_CALL_STATIC_FUNCTION): Likewise. | |
22411 | (ASM_DEFAULT_SPEC): New define. | |
22412 | (ASM_SPEC32): Likewise. | |
22413 | (ASM_SPEC64): Likewise. | |
22414 | (ASM_SPEC_COMMON): Likewise. | |
22415 | (ASM_SPEC): Likewise. | |
22416 | (INVALID_64BIT): Likewise. | |
22417 | (LINK_OS_DEFAULT_SPEC): Likewise. | |
22418 | (LINK_OS_SPEC32): Likewise. | |
22419 | (LINK_OS_SPEC64): Likewise. | |
22420 | (POWERPC_LINUX): Likewise. | |
22421 | (PTRDIFF_TYPE): Likewise. | |
22422 | (RESTORE_FP_PREFIX): Likewise. | |
22423 | (RESTORE_FP_SUFFIX): Likewise. | |
22424 | (SAVE_FP_PREFIX): Likewise. | |
22425 | (SAVE_FP_SUFFIX): Likewise. | |
22426 | (SIZE_TYPE): Likewise. | |
22427 | (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. | |
22428 | (TARGET_64BIT): Likewise. | |
22429 | (TARGET_64BIT): Likewise. | |
22430 | (TARGET_AIX): Likewise. | |
22431 | (WCHAR_TYPE_SIZE): Likewise. | |
22432 | (WCHAR_TYPE): Undefine. | |
22433 | (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines. | |
22434 | (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC. | |
22435 | (CPP_OS_RTEMS_SPEC): Delete. | |
22436 | (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add | |
22437 | asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and | |
22438 | link_os_spec64. | |
22439 | * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs. | |
22440 | ||
22441 | 2017-07-28 Jakub Jelinek <jakub@redhat.com> | |
22442 | ||
22443 | PR tree-optimization/81578 | |
22444 | * tree-parloops.c (build_new_reduction): Bail out if | |
22445 | reduction_code isn't one of the standard OpenMP reductions. | |
22446 | Move the details printing after that decision. | |
22447 | ||
22448 | 2017-07-27 Peter Bergner <bergner@vnet.ibm.com> | |
22449 | ||
22450 | * config/rs6000/predicates.md (volatile_mem_operand): Remove code | |
22451 | related to reload_in_progress. | |
22452 | (splat_input_operand): Likewise. | |
22453 | * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx): | |
22454 | Delete prototype. | |
22455 | * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot | |
22456 | field. | |
22457 | (TARGET_EXPAND_TO_RTL_HOOK): Delete. | |
22458 | (TARGET_INSTANTIATE_DECLS): Likewise. | |
22459 | (legitimate_indexed_address_p): Delete reload_in_progress code. | |
22460 | (rs6000_debug_legitimate_address_p): Likewise. | |
22461 | (rs6000_eliminate_indexed_memrefs): Likewise. | |
22462 | (rs6000_emit_le_vsx_store): Likewise. | |
22463 | (rs6000_emit_move_si_sf_subreg): Likewise. | |
22464 | (rs6000_emit_move): Likewise. | |
22465 | (register_to_reg_type): Likewise. | |
22466 | (rs6000_pre_atomic_barrier): Likewise. | |
22467 | (rs6000_machopic_legitimize_pic_address): Likewise. | |
22468 | (rs6000_allocate_stack_temp): Likewise. | |
22469 | (rs6000_address_for_fpconvert): Likewise. | |
22470 | (rs6000_address_for_altivec): Likewise. | |
22471 | (rs6000_secondary_memory_needed_rtx): Delete function. | |
22472 | (rs6000_check_sdmode): Likewise. | |
22473 | (rs6000_alloc_sdmode_stack_slot): Likewise. | |
22474 | (rs6000_instantiate_decls): Likewise. | |
22475 | * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete. | |
22476 | * config/rs6000/rs6000.md (splitter for *movsi_got_internal): | |
22477 | Delete reload_in_progress. | |
22478 | (*vec_reload_and_plus_<mptrsize>): Likewise. | |
22479 | * config/rs6000/vsx.md (vsx_mul_v2di): Likewise. | |
22480 | (vsx_div_v2di): Likewise. | |
22481 | (vsx_udiv_v2di): Likewise. | |
22482 | ||
22483 | 2017-07-27 Peter Bergner <bergner@vnet.ibm.com> | |
22484 | ||
22485 | * config/rs6000/rs6000.opt (mlra): Replace with stub. | |
22486 | * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA. | |
22487 | * config/rs6000/rs6000.c (TARGET_LRA_P): Delete. | |
22488 | (rs6000_debug_reg_global): Delete print of LRA status. | |
22489 | (rs6000_option_override_internal): Delete dead LRA related code. | |
22490 | (rs6000_lra_p): Delete function. | |
22491 | * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra. | |
22492 | ||
22493 | 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
22494 | ||
22495 | * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*). | |
22496 | * config/riscv/rtems.h: New file. | |
22497 | ||
22498 | 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22499 | Sudakshina Das <sudi.das@arm.com> | |
22500 | ||
22501 | * config/aarch64/aarch64.md | |
22502 | (define_split for and<mode>3nr_compare): Move | |
22503 | non aarch64_logical_operand to a register. | |
22504 | (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non | |
22505 | register immediate operand to a register. | |
22506 | * config/aarch64/predicates.md (aarch64_mov_imm_operand): New. | |
22507 | ||
22508 | 2017-07-27 Peter Bergner <bergner@vnet.ibm.com> | |
22509 | ||
22510 | PR middle-end/81564 | |
22511 | * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks. | |
22512 | ||
22513 | 2017-07-27 Richard Biener <rguenther@suse.de> | |
22514 | ||
22515 | PR tree-optimization/81573 | |
22516 | PR tree-optimization/81494 | |
22517 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle | |
22518 | multi defuse cycle case. | |
22519 | ||
22520 | 2017-07-27 Richard Biener <rguenther@suse.de> | |
22521 | ||
22522 | PR tree-optimization/81571 | |
22523 | * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction | |
22524 | PHIs. | |
22525 | ||
22526 | 2017-07-27 Eric Botcazou <ebotcazou@adacore.com> | |
22527 | ||
22528 | * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag | |
22529 | earlier and only if MASK_FPU is set. Adjust formatting. | |
22530 | ||
22531 | 2017-07-27 Martin Liska <mliska@suse.cz> | |
22532 | ||
22533 | * opt-functions.awk: Add validation of value of Init. | |
22534 | * optc-gen.awk: Pass new argument. | |
22535 | ||
22536 | 2017-07-27 Martin Liska <mliska@suse.cz> | |
22537 | ||
22538 | * auto-profile.c (autofdo_source_profile::update_inlined_ind_target): | |
22539 | Fix wrong condition. | |
22540 | ||
22541 | 2017-07-27 Martin Liska <mliska@suse.cz> | |
22542 | ||
22543 | * auto-profile.c (afdo_annotate_cfg): Assign zero counts to | |
22544 | BBs and edges seen by autoFDO. | |
22545 | ||
22546 | 2017-07-27 Richard Biener <rguenther@suse.de> | |
22547 | ||
22548 | PR tree-optimization/81502 | |
22549 | * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR | |
22550 | with incompatible but same sized type. | |
22551 | (execute_update_addresses_taken): Likewise. | |
22552 | ||
22553 | 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com> | |
22554 | ||
22555 | * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on | |
22556 | flag_tree_loop_vectorize rather than flag_tree_vectorize. | |
22557 | ||
22558 | 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
22559 | ||
22560 | PR target/81534 | |
22561 | * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1") | |
22562 | ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"): | |
22563 | Change s_operand to memory_operand. | |
22564 | ||
22565 | 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org> | |
22566 | ||
22567 | * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare. | |
22568 | * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with... | |
22569 | (rs6000_emit_le_vsx_permute): ...this. Take the destination as input. | |
22570 | Emit instructions rather than returning an expression. Handle TFmode | |
22571 | and KFmode by casting to TImode. | |
22572 | (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute. | |
22573 | (rs6000_emit_le_vsx_store): Likewise. | |
22574 | * config/rs6000/vsx.md (VSX_TI): New iterator. | |
22575 | (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128. | |
22576 | (*vsx_le_undo_permute_<mode>): Likewise. | |
22577 | (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to | |
22578 | emit the split sequence. | |
22579 | (*vsx_le_perm_store_<mode>): Likewise. | |
22580 | ||
22581 | 2017-07-27 Jakub Jelinek <jakub@redhat.com> | |
22582 | ||
22583 | PR tree-optimization/81555 | |
22584 | PR tree-optimization/81556 | |
22585 | * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument, | |
22586 | if true, force CHANGED for the recursive invocation. | |
22587 | (reassociate_bb): Remember original length of ops array, pass | |
22588 | len != orig_len as NEXT_CHANGED in rewrite_expr_tree call. | |
22589 | ||
22590 | * attribs.c (decl_attributes): Imply noinline, noclone and no_icf | |
22591 | attributes for noipa attribute. For naked attribute use | |
22592 | lookup_attribute first before lookup_attribute_spec. | |
22593 | * final.c (rest_of_handle_final): Disable IPA RA for functions with | |
22594 | noipa attribute. | |
22595 | * ipa-visibility.c (non_local_p): Fix comment typos. Return true | |
22596 | for functions with noipa attribute. | |
22597 | (cgraph_externally_visible_p): Return true for functions with noipa | |
22598 | attribute. | |
22599 | * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE | |
22600 | for functions with noipa attribute. | |
22601 | * doc/extend.texi: Document noipa function attribute. | |
22602 | * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p | |
22603 | also for functions with noipa attribute. | |
22604 | (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute. | |
22605 | ||
22606 | 2017-07-26 Andrew Pinski <apinski@cavium.com> | |
22607 | ||
22608 | * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of | |
22609 | vec_unalign_load_cost and vec_unalign_store_cost. | |
22610 | ||
22611 | 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com> | |
22612 | ||
22613 | * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete | |
22614 | -mvsx-small-integer option. | |
22615 | (ISA_3_0_MASKS_IEEE): Likewise. | |
22616 | (OTHER_VSX_VECTOR_MASKS): Likewise. | |
22617 | (POWERPC_MASKS): Likewise. | |
22618 | * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise. | |
22619 | * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify | |
22620 | code, only testing for DImode being allowed in non-VSX floating | |
22621 | point registers. | |
22622 | (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER | |
22623 | to TARGET_P8_VECTOR test. Remove redundant VSX test inside of | |
22624 | another VSX test. | |
22625 | (rs6000_option_override_internal): Delete -mvsx-small-integer. | |
22626 | (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to | |
22627 | TARGET_P8_VECTOR test. | |
22628 | (rs6000_secondary_reload_simple_move): Likewise. | |
22629 | (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER, | |
22630 | since TARGET_P9_VECTOR was already tested. | |
22631 | (rs6000_opt_masks): Remove -mvsx-small-integer. | |
22632 | * config/rs6000/vsx.md (vsx_extract_<mode>): Delete | |
22633 | TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was | |
22634 | used. | |
22635 | (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a | |
22636 | test for TARGET_VEXTRACTUB was used, and that uses | |
22637 | TARGET_P9_VECTOR. | |
22638 | (p9 extract splitter): Likewise. | |
22639 | (vsx_extract_<mode>_di_p9): Likewise. | |
22640 | (vsx_extract_<mode>_store_p9): Likewise. | |
22641 | (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test | |
22642 | for TARGET_P9_VECTOR was used. Delete code that is now dead with | |
22643 | the elimination of TARGET_VSX_SMALL_INTEGER. | |
22644 | (vsx_extract_<mode>_p8): Likewise. | |
22645 | (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise. | |
22646 | (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise. | |
22647 | (vsx_set_<mode>_p9): Likewise. | |
22648 | (vsx_set_v4sf_p9): Likewise. | |
22649 | (vsx_set_v4sf_p9_zero): Likewise. | |
22650 | (vsx_insert_extract_v4sf_p9): Likewise. | |
22651 | (vsx_insert_extract_v4sf_p9_2): Likewise. | |
22652 | * config/rs6000/rs6000.md (sign extend splitter): Change | |
22653 | TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test. | |
22654 | (floatsi<mode>2_lfiwax_mem): Likewise. | |
22655 | (floatunssi<mode>2_lfiwzx_mem): Likewise. | |
22656 | (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER, | |
22657 | since a test for TARGET_P9_VECTOR was used. | |
22658 | (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise. | |
22659 | (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise. | |
22660 | (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise. | |
22661 | (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to | |
22662 | TARGET_P8_VECTOR test. | |
22663 | (fix_trunc<mode>si2_stfiwx): Likewise. | |
22664 | (fix_trunc<mode>si2_internal): Likewise. | |
22665 | (fix_trunc<SFDF:mode><QHI:mode>2): Delete | |
22666 | TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was | |
22667 | used. | |
22668 | (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. | |
22669 | (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to | |
22670 | TARGET_P8_VECTOR test. | |
22671 | (fixuns_trunc<mode>si2_stfiwx): Likewise. | |
22672 | (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete | |
22673 | TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was | |
22674 | used. | |
22675 | (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. | |
22676 | (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER, | |
22677 | since a test for TARGET_P9_VECTOR was used. | |
22678 | (splitter for loading small constants): Likewise. | |
22679 | ||
22680 | 2017-07-26 Andrew Pinski <apinski@cavium.com> | |
22681 | ||
22682 | * config/aarch64/aarch64.c (thunderx_vector_cost): Fix | |
22683 | vec_fp_stmt_cost. | |
22684 | ||
22685 | 2017-07-26 H.J. Lu <hongjiu.lu@intel.com> | |
22686 | ||
22687 | PR target/81563 | |
22688 | * config/i386/i386.c (sp_valid_at): Properly check CFA offset. | |
22689 | (fp_valid_at): Likewise. | |
22690 | ||
22691 | 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com> | |
22692 | ||
22693 | * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove. | |
22694 | (qdf24xx_addrcost_table): Likewise. | |
22695 | (cortexa57_tunings): Update to use generic_branch_cost. | |
22696 | (cortexa72_tunings): Likewise. | |
22697 | (cortexa73_tunings): Likewise. | |
22698 | (qdf24xx_tunings): Likewise. | |
22699 | ||
22700 | 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com> | |
22701 | ||
22702 | * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove. | |
22703 | (thunderx2t99_branch_cost): Likewise. | |
22704 | (cortexa35_tunings): Update to use generic_branch_cost. | |
22705 | (cortexa53_tunings): Likewise. | |
22706 | (cortexa57_tunings): Likewise. | |
22707 | (cortexa72_tunings): Likewise. | |
22708 | (cortexa73_tunings): Likewise. | |
22709 | (thunderx2t99_tunings): Likewise. | |
22710 | ||
22711 | 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
22712 | ||
22713 | * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD. | |
22714 | (sparc_option_override): Honour MASK_FSMULD. | |
22715 | * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD. | |
22716 | * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD. | |
22717 | * config/sparc/sparc.opt (mfsmuld): New option. | |
22718 | * doc/invoke.texi (mfsmuld): Document option. | |
22719 | ||
22720 | 2017-07-26 Marek Polacek <polacek@redhat.com> | |
22721 | ||
22722 | PR middle-end/70992 | |
22723 | * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero. | |
22724 | ||
22725 | 2017-07-26 Richard Biener <rguenther@suse.de> | |
22726 | ||
22727 | * gimple-match-head.c (do_valueize): Return OP if valueize | |
22728 | returns NULL_TREE. | |
22729 | (get_def): New helper to get at the def stmt of a SSA name | |
22730 | if valueize allows. | |
22731 | * genmatch.c (dt_node::gen_kids_1): Use get_def instead of | |
22732 | do_valueize to get at the def stmt. | |
22733 | (dt_operand::gen_gimple_expr): Simplify do_valueize calls. | |
22734 | ||
22735 | 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com> | |
22736 | ||
22737 | PR middle-end/46932 | |
22738 | * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp. | |
22739 | ||
22740 | 2017-07-26 Martin Liska <mliska@suse.cz> | |
22741 | ||
22742 | PR sanitize/81186 | |
22743 | * function.c (expand_function_start): Make expansion of | |
22744 | nonlocal_goto_save_area after parm_birth_insn. | |
22745 | ||
22746 | 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
22747 | ||
22748 | * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU | |
22749 | from all CPU target flags enable members. | |
22750 | ||
22751 | 2017-07-26 Richard Biener <rguenther@suse.de> | |
22752 | ||
22753 | * genmatch.c (dt_simplify::gen): Make iterator vars const. | |
22754 | (decision_tree::gen): Make 'type' const. | |
22755 | (write_predicate): Likewise. | |
22756 | ||
22757 | 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com> | |
22758 | ||
22759 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): | |
22760 | Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage. | |
22761 | (rs6000_option_override_internal): Likewise. | |
22762 | (rs6000_expand_vector_set): Likewise. | |
22763 | * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete. | |
22764 | (TARGET_UPPER_REGS_SF): Likewise. | |
22765 | (TARGET_UPPER_REGS_DI): Likewise. | |
22766 | (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}. | |
22767 | (TARGET_DIRECT_MOVE_64BIT): Likewise. | |
22768 | * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise. | |
22769 | (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise. | |
22770 | (Splitters for DI constants in Altivec registers): Likewise. | |
22771 | * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise. | |
22772 | (vsx_set_v4sf_p9): Likewise. | |
22773 | (vsx_set_v4sf_p9_zero): Likewise. | |
22774 | (vsx_insert_extract_v4sf_p9): Likewise. | |
22775 | (vsx_insert_extract_v4sf_p9_2): Likewise. | |
22776 | ||
22777 | 2017-07-25 Carl Love <cel@us.ibm.com> | |
22778 | ||
22779 | * doc/extend.texi: Update the built-in documentation file for the | |
22780 | existing built-in functions | |
22781 | vector signed char vec_cnttz (vector signed char); | |
22782 | vector unsigned char vec_cnttz (vector unsigned char); | |
22783 | vector signed short vec_cnttz (vector signed short); | |
22784 | vector unsigned short vec_cnttz (vector unsigned short); | |
22785 | vector signed int vec_cnttz (vector signed int); | |
22786 | vector unsigned int vec_cnttz (vector unsigned int); | |
22787 | vector signed long long vec_cnttz (vector signed long long); | |
22788 | vector unsigned long long vec_cnttz (vector unsigned long long); | |
22789 | ||
22790 | 2017-07-25 Andrew Pinski <apinski@cavium.com> | |
22791 | ||
22792 | * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory | |
22793 | accesses where the use is for the first operand of a BIT_INSERT. | |
22794 | ||
22795 | 2017-07-25 Jim Wilson <jim.wilson@linaro.org> | |
22796 | ||
22797 | PR bootstrap/81521 | |
22798 | * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look | |
22799 | for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS. | |
22800 | ||
22801 | 2017-07-25 Jim Wilson <jim.wilson@linaro.org> | |
22802 | ||
22803 | * config/i386/gstabs.h: Delete. | |
22804 | * config/i386/openbsd.h, config/i386/t-openbsd: Likewise. | |
22805 | ||
22806 | 2017-07-25 Uros Bizjak <ubizjak@gmail.com> | |
22807 | ||
22808 | * config/i386/i386.c (ix86_decompose_address): Do not check for | |
22809 | register RTX when looking at index_reg or base_reg. | |
22810 | * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx. | |
22811 | ||
22812 | 2017-07-25 Eric Botcazou <ebotcazou@adacore.com> | |
22813 | ||
22814 | * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace | |
22815 | to update EH info here. | |
22816 | ||
22817 | 2017-07-25 Alexander Monakov <amonakov@ispras.ru> | |
22818 | ||
22819 | * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2). | |
22820 | ||
22821 | 2017-07-25 Alexander Monakov <amonakov@ispras.ru> | |
22822 | ||
22823 | * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST. | |
22824 | ||
22825 | 2017-07-25 Torsten Duwe <duwe@suse.de> | |
22826 | ||
22827 | * common.opt: Introduce -fpatchable-function-entry | |
22828 | command line option, and its variables function_entry_patch_area_size | |
22829 | and function_entry_patch_area_start. | |
22830 | * opts.c (common_handle_option): Add -fpatchable_function_entry_ case, | |
22831 | including a two-value parser. | |
22832 | * target.def (print_patchable_function_entry): New target hook. | |
22833 | * targhooks.h (default_print_patchable_function_entry): New function. | |
22834 | * targhooks.c (default_print_patchable_function_entry): Likewise. | |
22835 | * toplev.c (process_options): Switch off IPA-RA if | |
22836 | patchable function entries are being generated. | |
22837 | * varasm.c (assemble_start_function): Look at the | |
22838 | patchable-function-entry command line switch and current | |
22839 | function attributes and maybe generate NOP instructions by | |
22840 | calling the print_patchable_function_entry hook. | |
22841 | * doc/extend.texi: Document patchable_function_entry attribute. | |
22842 | * doc/invoke.texi: Document -fpatchable_function_entry | |
22843 | command line option. | |
22844 | * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): | |
22845 | New target hook. | |
22846 | * doc/tm.texi: Re-generate. | |
22847 | ||
22848 | 2017-07-25 Jakub Jelinek <jakub@redhat.com> | |
22849 | ||
22850 | PR target/81532 | |
22851 | * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for | |
22852 | TARGET_AVX512DQ rather than TARGET_AVX512BW. | |
22853 | ||
22854 | 2017-07-25 Tamar Christina <tamar.christina@arm.com> | |
22855 | ||
22856 | * config/arm/parsecpu.awk (all_cores): Remove duplicates. | |
22857 | ||
22858 | 2017-07-25 Richard Biener <rguenther@suse.de> | |
22859 | ||
22860 | PR tree-optimization/81455 | |
22861 | * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to | |
22862 | not walk in cycles when looking for guards. | |
22863 | ||
22864 | 2017-07-25 Richard Biener <rguenther@suse.de> | |
22865 | ||
22866 | PR tree-optimization/81529 | |
22867 | * tree-vect-stmts.c (process_use): Disregard live induction PHIs | |
22868 | when optimizing backedge uses. | |
22869 | ||
22870 | 2017-07-25 David Edelsohn <dje.gcc@gmail.com> | |
22871 | ||
22872 | * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote | |
22873 | character for AIX. | |
22874 | * dwarf2out.c (output_macinfo): Copy debug_line_section_label | |
22875 | to dl_section_ref. On AIX, append an expression to subtract | |
22876 | the size of the section length to dl_section_ref. | |
22877 | ||
22878 | 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org> | |
22879 | ||
22880 | * configure.ac: If any of the config.* scripts fail, exit 1. | |
22881 | * configure: Regenerate. | |
22882 | ||
22883 | 2017-07-25 Richard Biener <rguenther@suse.de> | |
22884 | ||
22885 | PR middle-end/81546 | |
22886 | * tree-ssa-operands.c (verify_imm_links): Remove cap on number | |
22887 | of immediate uses, be more verbose on errors. | |
22888 | ||
22889 | 2017-07-25 Richard Biener <rguenther@suse.de> | |
22890 | ||
22891 | PR tree-optimization/81510 | |
22892 | * tree-vect-loop.c (vect_is_simple_reduction): When the | |
22893 | reduction stmt is not inside the loop bail out. | |
22894 | ||
22895 | 2017-07-25 Richard Biener <rguenther@suse.de> | |
22896 | ||
22897 | PR tree-optimization/81303 | |
22898 | * tree-vect-loop-manip.c (vect_loop_versioning): Build | |
22899 | profitability check against LOOP_VINFO_NITERSM1. | |
22900 | ||
22901 | 2017-07-25 Alexander Monakov <amonakov@ispras.ru> | |
22902 | ||
22903 | * domwalk.c (cmp_bb_postorder): Simplify. | |
22904 | (sort_bbs_postorder): New function. Use it... | |
22905 | (dom_walker::walk): ...here to optimize common cases. | |
22906 | ||
22907 | 2017-07-25 Martin Liska <mliska@suse.cz> | |
22908 | ||
22909 | PR ipa/81520 | |
22910 | * ipa-visibility.c (function_and_variable_visibility): Make the | |
22911 | redirection just on target that supports aliasing. | |
22912 | Fix GNU coding style. | |
22913 | ||
22914 | 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
22915 | ||
22916 | PR libgcc/61152 | |
22917 | * config/aarch64/rtems.h: Add GCC Runtime Library Exception. | |
22918 | Format changes. | |
22919 | * config/arm/rtems.h: Likewise. | |
22920 | * config/bfin/rtems.h: Likewise. | |
22921 | * config/i386/rtemself.h: Likewise. | |
22922 | * config/lm32/rtems.h: Likewise. | |
22923 | * config/m32c/rtems.h: Likewise. | |
22924 | * config/m68k/rtemself.h: Likewise. | |
22925 | * config/microblaze/rtems.h: Likewise. | |
22926 | * config/mips/rtems.h: Likewise. | |
22927 | * config/moxie/rtems.h: Likewise. | |
22928 | * config/nios2/rtems.h: Likewise. | |
22929 | * config/powerpcspe/rtems.h: Likewise. | |
22930 | * config/rs6000/rtems.h: Likewise. | |
22931 | * config/rtems.h: Likewise. | |
22932 | * config/sh/rtems.h: Likewise. | |
22933 | * config/sh/rtemself.h: Likewise. | |
22934 | * config/sparc/rtemself.h: Likewise. | |
22935 | ||
22936 | 2017-07-25 Georg-Johann Lay <avr@gjlay.de> | |
22937 | ||
22938 | PR 81487 | |
22939 | * hsa-brig.c (brig_init): Use xasprintf instead of asprintf. | |
22940 | * gimple-pretty-print.c (dump_profile, dump_probability): Same. | |
22941 | * tree-ssa-structalias.c (alias_get_name): Same. | |
22942 | ||
22943 | 2017-07-25 Bin Cheng <bin.cheng@arm.com> | |
22944 | ||
22945 | PR target/81414 | |
22946 | * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac | |
22947 | instructions if no du chain is found. | |
22948 | ||
22949 | 2017-07-25 Georg-Johann Lay <avr@gjlay.de> | |
22950 | ||
22951 | * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE. | |
22952 | ||
22953 | 2017-07-25 Richard Biener <rguenther@suse.de> | |
22954 | ||
22955 | PR middle-end/81505 | |
22956 | * fold-const.c (fold_negate_const): TREE_OVERFLOW should be | |
22957 | sticky. | |
22958 | ||
22959 | 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com> | |
22960 | ||
22961 | * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete | |
22962 | upper-regs options. | |
22963 | (ISA_2_7_MASKS_SERVER): Likewise. | |
22964 | (ISA_3_0_MASKS_IEEE): Likewise. | |
22965 | (OTHER_P8_VECTOR_MASKS): Likewise. | |
22966 | (OTHER_VSX_VECTOR_MASKS): Likewise. | |
22967 | (POWERPC_MASKS): Likewise. | |
22968 | (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a | |
22969 | duplicate list of options. | |
22970 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove | |
22971 | explicit -mupper-regs options. | |
22972 | * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete | |
22973 | -mupper-regs* options. Delete -mvsx-scalar-memory, which was an | |
22974 | alias for -mupper-regs-df. | |
22975 | * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise. | |
22976 | (rs6000_init_hard_regno_mode_ok): Likewise. | |
22977 | (rs6000_option_override_internal): Likewise. | |
22978 | (rs6000_opt_masks): Likewise. | |
22979 | * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs | |
22980 | options in terms of whether -mvsx or -mpower8-vector was used. | |
22981 | (TARGET_UPPER_REGS_DI): Likewise. | |
22982 | (TARGET_UPPER_REGS_SF): Likewise. | |
22983 | * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the | |
22984 | -mupper-regs-* options. | |
22985 | ||
22986 | 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org> | |
22987 | ||
22988 | * passes.c (emergency_dump_function): Print some empty lines and a | |
22989 | header before the RTL dump. | |
22990 | ||
22991 | 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org> | |
22992 | ||
22993 | * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL. | |
22994 | ||
22995 | 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com> | |
22996 | ||
22997 | PR target/79041 | |
22998 | * config/aarch64/aarch64.c (aarch64_classify_symbol): | |
22999 | Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals. | |
23000 | ||
23001 | 2017-07-24 Carl Love <cel@us.ibm.com> | |
23002 | ||
23003 | * config/rs6000/rs6000-c.c: Add support for built-in functions | |
23004 | vector float vec_extract_fp32_from_shorth (vector unsigned short); | |
23005 | vector float vec_extract_fp32_from_shortl (vector unsigned short); | |
23006 | * config/rs6000/altivec.h (vec_extract_fp_from_shorth, | |
23007 | vec_extract_fp_from_shortl): Add defines for the two builtins. | |
23008 | * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH, | |
23009 | VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1 | |
23010 | new builtins. | |
23011 | * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn. | |
23012 | (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands. | |
23013 | * doc/extend.texi: Update the built-in documentation file for the | |
23014 | new built-in function. | |
23015 | ||
23016 | 2017-07-24 Jakub Jelinek <jakub@redhat.com> | |
23017 | ||
23018 | PR bootstrap/81521 | |
23019 | * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS | |
23020 | documentation. | |
23021 | * doc/generic.texi: Likewise. | |
23022 | * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look | |
23023 | for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS. | |
23024 | ||
23025 | 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com> | |
23026 | ||
23027 | * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New. | |
23028 | (aarch64_mls_elt_merge<mode>): Likewise. | |
23029 | ||
23030 | 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com> | |
23031 | ||
23032 | * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not | |
23033 | having __cxa_atexit. | |
23034 | ||
23035 | 2017-07-23 Michael Collison <michael.collison@arm.com> | |
23036 | ||
23037 | * config/arm/arm.c (arm_option_override): Deprecate | |
23038 | use of -mstructure-size-boundary. | |
23039 | * config/arm/arm.opt: Deprecate -mstructure-size-boundary. | |
23040 | * doc/invoke.texi: Deprecate -mstructure-size-boundary. | |
23041 | ||
23042 | 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
23043 | ||
23044 | PR target/80695 | |
23045 | * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): | |
23046 | Reduce cost estimate for direct moves. | |
23047 | ||
23048 | 2017-07-23 Uros Bizjak <ubizjak@gmail.com> | |
23049 | ||
23050 | PR target/80569 | |
23051 | * config/i386/i386.c (ix86_option_override_internal): Disable | |
23052 | BMI, BMI2 and TBM instructions for -m16. | |
23053 | ||
23054 | 2017-07-21 Carl Love <cel@us.ibm.com> | |
23055 | ||
23056 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
23057 | ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, | |
23058 | ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. | |
23059 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, | |
23060 | builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. | |
23061 | * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, | |
23062 | VMULOSW): New enum "unspec" values. | |
23063 | (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, | |
23064 | altivec_vmulosw): New patterns. | |
23065 | * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, | |
23066 | VMULOSW): Add definitions. | |
23067 | ||
23068 | 2017-07-21 Jim Wilson <jim.wilson@linaro.org> | |
23069 | ||
23070 | * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA. | |
23071 | (qdf24xx): Likewise. | |
23072 | * config/aarch64/aarch64-options-extensions.def (rdma); New. | |
23073 | * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New. | |
23074 | (AARCH64_FL_V8_1): Renumber. | |
23075 | (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA. | |
23076 | (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA. | |
23077 | * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a. | |
23078 | * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add | |
23079 | rdma to feature modifiers list. | |
23080 | ||
23081 | 2017-07-21 Yury Gribov <tetra2005@gmail.com> | |
23082 | ||
23083 | PR middle-end/56727 | |
23084 | * ipa-visibility (function_and_variable_visibility): Convert | |
23085 | recursive PLT call to direct call if appropriate. | |
23086 | ||
23087 | 2017-07-21 Andrew Pinski <apinski@cavium.com> | |
23088 | ||
23089 | * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's | |
23090 | operand 1 to see if the types precision matches. | |
23091 | * fold-const.c (operand_equal_p): Likewise. | |
23092 | ||
23093 | 2017-07-21 Richard Biener <rguenther@suse.de> | |
23094 | ||
23095 | PR tree-optimization/81303 | |
23096 | * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass | |
23097 | in datarefs vector. Allow NULL dr0 for no peeling cost estimate. | |
23098 | (vect_peeling_hash_get_lowest_cost): Adjust. | |
23099 | (vect_enhance_data_refs_alignment): Likewise. Use | |
23100 | vect_get_peeling_costs_all_drs to compute the penalty for no | |
23101 | peeling to match up costs. | |
23102 | ||
23103 | 2017-07-21 Richard Biener <rguenther@suse.de> | |
23104 | ||
23105 | PR tree-optimization/81500 | |
23106 | * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if | |
23107 | we didn't identify a reduction path. | |
23108 | ||
23109 | 2017-07-21 Tom de Vries <tom@codesourcery.com> | |
23110 | Cesar Philippidis <cesar@codesourcery.com> | |
23111 | ||
23112 | PR gcov-profile/81442 | |
23113 | * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge | |
23114 | probabilities. | |
23115 | ||
23116 | 2017-07-21 Tom de Vries <tom@codesourcery.com> | |
23117 | ||
23118 | PR lto/81430 | |
23119 | * config/nvptx/nvptx.c (nvptx_override_options_after_change): New | |
23120 | function. | |
23121 | (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to | |
23122 | nvptx_override_options_after_change. | |
23123 | ||
23124 | 2017-07-21 Ulrich Drepper <drepper@redhat.com> | |
23125 | ||
23126 | * dwarf2out.c (output_file_names): Avoid double testing for | |
23127 | dwarf_version >= 5. | |
23128 | ||
23129 | 2017-07-21 Georg-Johann Lay <avr@gjlay.de> | |
23130 | ||
23131 | * doc/invoke.texi (AVR Built-in Functions): Re-layout section. | |
23132 | ||
23133 | 2016-07-21 Jan Hubicka <hubicka@ucw.cz> | |
23134 | ||
23135 | * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across | |
23136 | hot/cold regions. | |
23137 | (try_crossjump_to_edge): Do not punt on partitioned functions. | |
23138 | ||
23139 | 2016-07-21 Jan Hubicka <hubicka@ucw.cz> | |
23140 | ||
23141 | * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges): | |
23142 | Put all BBs reachable only via paths crossing cold region to cold | |
23143 | region. | |
23144 | * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function. | |
23145 | ||
23146 | 2016-07-21 Richard Biener <rguenther@suse.de> | |
23147 | ||
23148 | PR tree-optimization/81303 | |
23149 | * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take | |
23150 | into account prologue and epilogue iterations when raising | |
23151 | min_profitable_iters to sth at least covering one vector iteration. | |
23152 | ||
23153 | 2017-07-21 Tamar Christina <tamar.christina@arm.com> | |
23154 | ||
23155 | * config/arm/arm.c (arm_test_cpu_arch_dat): | |
23156 | Check for overlap. | |
23157 | ||
23158 | 2017-07-20 Nathan Sidwell <nathan@acm.org> | |
23159 | ||
23160 | Remove TYPE_METHODS. | |
23161 | * tree.h (TYPE_METHODS): Delete. | |
23162 | * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS. | |
23163 | * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs. | |
23164 | (dbxout_type_methods): Scan TYPE_FIELDS. | |
23165 | (dbxout_type): Don't check TYPE_METHODS here. | |
23166 | * function.c (use_register_for_decl): Always ignore register for | |
23167 | class types when not optimizing. | |
23168 | * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan. | |
23169 | * tree.c (free_lang_data_in_type): Stitch out member functions and | |
23170 | templates from TYPE_FIELDS. | |
23171 | (build_distinct_type_copy, verify_type_variant, | |
23172 | verify_type): Member fns are on TYPE_FIELDS. | |
23173 | * tree-dump.c (dequeue_and_dump): No TYPE_METHODS. | |
23174 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
23175 | ||
23176 | 2017-07-20 Jakub Jelinek <jakub@redhat.com> | |
23177 | ||
23178 | PR target/80846 | |
23179 | * config/i386/i386.c (ix86_expand_vector_init_general): Handle | |
23180 | V2TImode and V4TImode. | |
23181 | (ix86_expand_vector_extract): Likewise. | |
23182 | * config/i386/sse.md (VMOVE): Enable V4TImode even for just | |
23183 | TARGET_AVX512F, instead of only for TARGET_AVX512BW. | |
23184 | (ssescalarmode): Handle V4TImode and V2TImode. | |
23185 | (VEC_EXTRACT_MODE): Add V4TImode and V2TImode. | |
23186 | (*vec_extractv2ti, *vec_extractv4ti): New insns. | |
23187 | (VEXTRACTI128_MODE): New mode iterator. | |
23188 | (splitter for *vec_extractv?ti first element): New. | |
23189 | (VEC_INIT_MODE): New mode iterator. | |
23190 | (vec_init<mode>): Consolidate 3 expanders into one using | |
23191 | VEC_INIT_MODE mode iterator. | |
23192 | ||
23193 | 2017-07-20 Alexander Monakov <amonakov@ispras.ru> | |
23194 | ||
23195 | * lra-assigns.c (pseudo_compare_func): Fix comparison step based on | |
23196 | non_spilled_static_chain_regno_p. | |
23197 | ||
23198 | 2017-07-20 Alexander Monakov <amonakov@ispras.ru> | |
23199 | ||
23200 | * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos. | |
23201 | ||
23202 | 2017-07-20 Jan Hubicka <hubicka@ucw.cz> | |
23203 | ||
23204 | * bb-reorder.c (connect_traces): Allow copying of blocks within | |
23205 | single partition. | |
23206 | ||
23207 | 2017-07-20 Richard Biener <rguenther@suse.de> | |
23208 | ||
23209 | * gimple.h (gimple_phi_result): Add gphi * overload. | |
23210 | (gimple_phi_result_ptr): Likewise. | |
23211 | (gimple_phi_arg): Likewise. Adjust index assert to only | |
23212 | allow actual argument accesses rather than all slots available | |
23213 | by capacity. | |
23214 | (gimple_phi_arg_def): Add gphi * overload. | |
23215 | * tree-phinodes.c (make_phi_node): Initialize only actual | |
23216 | arguments. | |
23217 | (resize_phi_node): Clear memory not covered by old node, | |
23218 | do not initialize excess argument slots. | |
23219 | (reserve_phi_args_for_new_edge): Initialize new argument slot | |
23220 | completely. | |
23221 | ||
23222 | 2017-07-20 Bin Cheng <bin.cheng@arm.com> | |
23223 | ||
23224 | PR tree-optimization/81388 | |
23225 | Revert r238585: | |
23226 | 2016-07-21 Bin Cheng <bin.cheng@arm.com> | |
23227 | ||
23228 | * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up | |
23229 | by removing computation of may_be_zero. | |
23230 | ||
23231 | 2017-07-18 Jan Hubicka <hubicka@ucw.cz> | |
23232 | Tom de Vries <tom@codesourcery.com> | |
23233 | ||
23234 | PR middle-end/81030 | |
23235 | * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note | |
23236 | when gimple level profile disagrees with what RTL expander did. | |
23237 | ||
23238 | 2017-07-20 Richard Biener <rguenther@suse.de> | |
23239 | ||
23240 | PR tree-optimization/61171 | |
23241 | * tree-vectorizer.h (slp_instance): Add reduc_phis member. | |
23242 | (vect_analyze_stmt): Add slp instance parameter. | |
23243 | (vectorizable_reduction): Likewise. | |
23244 | * tree-vect-loop.c (vect_analyze_loop_operations): Adjust. | |
23245 | (vect_is_simple_reduction): Deal with chains not detected | |
23246 | as SLP reduction chain, specifically not properly associated | |
23247 | chains containing a mix of plus/minus. | |
23248 | (get_reduction_op): Remove. | |
23249 | (get_initial_defs_for_reduction): Simplify, pass in whether | |
23250 | this is a reduction chain, pass in the SLP node for the PHIs. | |
23251 | (vect_create_epilog_for_reduction): Get the SLP instance as | |
23252 | arg and adjust. | |
23253 | (vectorizable_reduction): Get the SLP instance as arg. | |
23254 | During analysis remember the SLP node with the PHIs in the | |
23255 | instance. Simplify getting at the vectorized reduction PHIs. | |
23256 | * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass | |
23257 | through SLP instance. | |
23258 | (vect_slp_analyze_operations): Likewise. | |
23259 | * tree-vect-stms.c (vect_analyze_stmt): Likewise. | |
23260 | (vect_transform_stmt): Likewise. | |
23261 | ||
23262 | 2017-07-20 Tom de Vries <tom@codesourcery.com> | |
23263 | ||
23264 | PR tree-optimization/81489 | |
23265 | * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move | |
23266 | read of phi arg location to before loop that modifies phi. | |
23267 | ||
23268 | 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
23269 | ||
23270 | * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): | |
23271 | New pattern. | |
23272 | ||
23273 | 2017-07-19 Jan Hubicka <hubicka@ucw.cz> | |
23274 | ||
23275 | PR middle-end/81331 | |
23276 | * except.c (execute): Fix ordering issue. | |
23277 | ||
23278 | 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org> | |
23279 | ||
23280 | PR rtl-optimization/81423 | |
23281 | * combine.c (make_compound_operation_int): Don't try to optimize | |
23282 | the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical. | |
23283 | ||
23284 | 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org> | |
23285 | ||
23286 | PR rtl-optimization/81423 | |
23287 | * simplify-rtx.c (simplify_truncation): Handle truncating an IOR | |
23288 | with a constant that is -1 in the truncated to mode. | |
23289 | ||
23290 | 2017-07-19 Jan Hubicka <hubicka@ucw.cz> | |
23291 | ||
23292 | * predict.c (propagate_unlikely_bbs_forward): Break out from ... | |
23293 | (determine_unlikely_bbs): ... here. | |
23294 | * predict.h (propagate_unlikely_bbs_forward): Declare. | |
23295 | * cfgexpand.c (pass_expand::execute): Use it. | |
23296 | * bb-reorder.c (sanitize_hot_paths): Do not consider known to be | |
23297 | unlikely edges. | |
23298 | (find_rarely_executed_basic_blocks_and_crossing_edges): Use | |
23299 | propagate_unlikely_bbs_forward. | |
23300 | ||
23301 | 2017-07-19 Jan Hubicka <hubicka@ucw.cz> | |
23302 | ||
23303 | PR middle-end/81331 | |
23304 | * except.c (maybe_add_nop_after_section_switch): New function. | |
23305 | (execute): Use it. | |
23306 | ||
23307 | 2017-07-19 Tom de Vries <tom@codesourcery.com> | |
23308 | ||
23309 | * gimple.h (gimple_phi_set_arg): Make assert more strict. | |
23310 | ||
23311 | 2017-07-19 Tom de Vries <tom@codesourcery.com> | |
23312 | ||
23313 | * gimple.h (gimple_phi_arg): Make assert more strict. | |
23314 | ||
23315 | 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org> | |
23316 | ||
23317 | * config.gcc (powerpc*-*-*): Add mmintrin.h. | |
23318 | * config/rs6000/mmintrin.h: New file. | |
23319 | * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h. | |
23320 | ||
23321 | 2017-07-19 Jakub Jelinek <jakub@redhat.com> | |
23322 | ||
23323 | PR tree-optimization/81346 | |
23324 | * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0. | |
23325 | ||
23326 | 2017-07-19 Tom de Vries <tom@codesourcery.com> | |
23327 | ||
23328 | * config/nvptx/nvptx.md (VECIM): Add V2DI. | |
23329 | ||
23330 | 2017-07-19 Tom de Vries <tom@codesourcery.com> | |
23331 | ||
23332 | * config/nvptx/nvptx-modes.def: Add V2DImode. | |
23333 | * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare. | |
23334 | * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode. | |
23335 | (nvptx_output_mov_insn): Handle lack of mov.b128. | |
23336 | (nvptx_print_operand): Handle 'H' and 'L' codes. | |
23337 | (nvptx_vector_mode_supported): Allow V2DImode. | |
23338 | (nvptx_preferred_simd_mode): New function. | |
23339 | (nvptx_data_alignment): New function. | |
23340 | (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to | |
23341 | nvptx_preferred_simd_mode. | |
23342 | * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from | |
23343 | 64 to 128 bits. | |
23344 | (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment. | |
23345 | ||
23346 | 2017-07-19 Tom de Vries <tom@codesourcery.com> | |
23347 | ||
23348 | * config/nvptx/nvptx-modes.def: New file. Add V2SImode. | |
23349 | * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode. | |
23350 | (nvptx_vector_mode_supported): New function. Allow V2SImode. | |
23351 | (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported. | |
23352 | * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI. | |
23353 | (mov<VECIM>_insn): New define_insn. | |
23354 | (define_expand "mov<VECIM>): New define_expand. | |
23355 | ||
23356 | 2017-07-19 Tom de Vries <tom@codesourcery.com> | |
23357 | ||
23358 | * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode. | |
23359 | ||
23360 | 2017-07-19 Jakub Jelinek <jakub@redhat.com> | |
23361 | ||
23362 | PR tree-optimization/81346 | |
23363 | * fold-const.h (fold_div_compare, range_check_type): Declare. | |
23364 | * fold-const.c (range_check_type): New function. | |
23365 | (build_range_check): Use range_check_type. | |
23366 | (fold_div_compare): No longer static, rewritten into | |
23367 | a match.pd helper function. | |
23368 | (fold_comparison): Don't call fold_div_compare here. | |
23369 | * match.pd (X / C1 op C2): New optimization using fold_div_compare | |
23370 | as helper function. | |
23371 | ||
23372 | 2017-07-19 Nathan Sidwell <nathan@acm.org> | |
23373 | ||
23374 | * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ... | |
23375 | (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these. | |
23376 | * tree.c (find_decls_types_r, verify_type): Use | |
23377 | TYPE_{MIN,MAX}_VALUE_RAW. | |
23378 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise. | |
23379 | (hash_tree): Likewise. | |
23380 | * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): | |
23381 | Likewise. | |
23382 | * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): | |
23383 | Likewise. | |
23384 | ||
23385 | 2017-07-18 Tom de Vries <tom@codesourcery.com> | |
23386 | ||
23387 | PR middle-end/81464 | |
23388 | * omp-expand.c (expand_omp_for_static_chunk): Handle | |
23389 | equal-argument loop exit phi. | |
23390 | ||
23391 | 2017-07-18 Uros Bizjak <ubizjak@gmail.com> | |
23392 | ||
23393 | PR target/81471 | |
23394 | * config/i386/i386.md (rorx_immediate_operand): New mode attribute. | |
23395 | (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as | |
23396 | operand 2 predicate. | |
23397 | (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as | |
23398 | operand 2 predicate. | |
23399 | (ror,rol -> rorx splitters): Use const_int_operand as | |
23400 | operand 2 predicate. | |
23401 | ||
23402 | 2017-06-18 Richard Biener <rguenther@suse.de> | |
23403 | ||
23404 | PR tree-optimization/81410 | |
23405 | * tree-vect-stmts.c (vectorizable_load): Properly adjust for | |
23406 | the gap in the ! slp_perm SLP case after each group. | |
23407 | ||
23408 | 2017-07-18 Jan Hubicka <hubicka@ucw.cz> | |
23409 | ||
23410 | PR middle-end/81463 | |
23411 | * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency | |
23412 | again. | |
23413 | ||
23414 | 2017-07-18 Jan Hubicka <hubicka@ucw.cz> | |
23415 | ||
23416 | PR middle-end/81462 | |
23417 | * predict.c (set_even_probabilities): Cleanup; do not affect | |
23418 | probabilities that are already known. | |
23419 | (combine_predictions_for_bb): Call even when count is set. | |
23420 | ||
23421 | 2017-07-18 Nathan Sidwell <nathan@acm.org> | |
23422 | ||
23423 | * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use | |
23424 | TYPE_MAX_VALUE. | |
23425 | ||
23426 | 2017-07-18 Bin Cheng <bin.cheng@arm.com> | |
23427 | ||
23428 | PR target/81408 | |
23429 | * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed | |
23430 | optimization for loop niter analysis. | |
23431 | ||
23432 | 2017-07-18 Georg-Johann Lay <avr@gjlay.de> | |
23433 | ||
23434 | PR target/81473 | |
23435 | * config/avr/avr.c (avr_optimize_casesi): Don't use | |
23436 | INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX. | |
23437 | ||
23438 | 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
23439 | ||
23440 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove | |
23441 | body_cost_vec from _vect_peel_extended_info. | |
23442 | (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec. | |
23443 | (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and | |
23444 | npeel. | |
23445 | ||
23446 | 2017-07-18 Bin Cheng <bin.cheng@arm.com> | |
23447 | ||
23448 | * config/arm/arm.c (emit_unlikely_jump): Remove unused var. | |
23449 | ||
23450 | 2017-07-18 Richard Biener <rguenther@suse.de> | |
23451 | ||
23452 | PR tree-optimization/80620 | |
23453 | PR tree-optimization/81403 | |
23454 | * tree-ssa-pre.c (phi_translate_1): Clear range and points-to | |
23455 | info when re-using a VN table entry. | |
23456 | ||
23457 | 2017-07-18 Richard Biener <rguenther@suse.de> | |
23458 | ||
23459 | PR tree-optimization/81418 | |
23460 | * tree-vect-loop.c (vectorizable_reduction): Properly compute | |
23461 | vectype_in. Verify that with lane-reducing reduction operations | |
23462 | we have a single def-use cycle. | |
23463 | ||
23464 | 2017-07-17 Carl Love <cel@us.ibm.com> | |
23465 | ||
23466 | Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com> | |
23467 | ||
23468 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
23469 | ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, | |
23470 | ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. | |
23471 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, | |
23472 | builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. | |
23473 | * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, | |
23474 | VMULOSW): New enum "unspec" values. | |
23475 | (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, | |
23476 | vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, | |
23477 | altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, | |
23478 | altivec_vmulosw): New patterns. | |
23479 | * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, | |
23480 | VMULOSW): Add definitions. | |
23481 | ||
23482 | 2017-07-17 Uros Bizjak <ubizjak@gmail.com> | |
23483 | ||
23484 | * config/alpha/alpha.c: Include predict.h. | |
23485 | ||
23486 | 2017-07-17 Yury Gribov <tetra2005@gmail.com> | |
23487 | ||
23488 | * tree-vrp.c (compare_assert_loc): Fix comparison function | |
23489 | to return predictable results. | |
23490 | ||
23491 | 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> | |
23492 | ||
23493 | * config/arc/arc.md (adddi3): Remove support for mexpand-adddi | |
23494 | option. | |
23495 | (subdi3): Likewise. | |
23496 | * config/arc/arc.opt (mexpand-adddi): Deprecate it. | |
23497 | * doc/invoke.texi (mexpand-adddi): Update text. | |
23498 | ||
23499 | 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> | |
23500 | ||
23501 | * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction | |
23502 | that also clobbers the CC register. The old expand code is moved | |
23503 | to ... | |
23504 | (*arc_clzsi2): ... here. | |
23505 | (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers | |
23506 | the CC register. The old expand code is moved to ... | |
23507 | (arc_ctzsi2): ... here. | |
23508 | ||
23509 | 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> | |
23510 | ||
23511 | * config/arc/arc.opt (mindexed-loads): Use initial value | |
23512 | TARGET_INDEXED_LOADS_DEFAULT. | |
23513 | (mauto-modify-reg): Use initial value | |
23514 | TARGET_AUTO_MODIFY_REG_DEFAULT. | |
23515 | * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define. | |
23516 | (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. | |
23517 | * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define. | |
23518 | (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise. | |
23519 | ||
23520 | 2017-07-17 Martin Liska <mliska@suse.cz> | |
23521 | ||
23522 | PR sanitizer/81302 | |
23523 | * opts.c (finish_options): Do not allow -fgnu-tm | |
23524 | w/ -fsanitize={kernel-,}address. Say sorry. | |
23525 | ||
23526 | 2017-07-17 Bin Cheng <bin.cheng@arm.com> | |
23527 | ||
23528 | PR target/81369 | |
23529 | * tree-loop-distribution.c (classify_partition): Only assert on | |
23530 | numer of iterations. | |
23531 | (merge_dep_scc_partitions): Delete prameter. Update function call. | |
23532 | (distribute_loop): Remove code handling loop with unknown niters. | |
23533 | (pass_loop_distribution::execute): Skip loop with unknown niters. | |
23534 | ||
23535 | 2017-07-17 Bin Cheng <bin.cheng@arm.com> | |
23536 | ||
23537 | PR target/81369 | |
23538 | * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to | |
23539 | function sort_partitions_by_post_order. | |
23540 | ||
23541 | 2017-07-17 Bin Cheng <bin.cheng@arm.com> | |
23542 | ||
23543 | PR tree-optimization/81374 | |
23544 | * tree-loop-distribution.c (pass_loop_distribution::execute): Record | |
23545 | the max index of basic blocks, rather than number of basic blocks. | |
23546 | ||
23547 | 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> | |
23548 | ||
23549 | * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove | |
23550 | proto. | |
23551 | (arc_legitimate_pic_operand_p): Likewise. | |
23552 | * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove | |
23553 | function. | |
23554 | (arc_needs_pcl_p): Likewise. | |
23555 | (arc_legitimate_pc_offset_p): Likewise. | |
23556 | (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this | |
23557 | function is also used in constrains.md. | |
23558 | (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to | |
23559 | validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and | |
23560 | PLUS. Only return true/false in known cases, otherwise assert. | |
23561 | (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it | |
23562 | is already called in arc_legitimate_constant_p. | |
23563 | * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for | |
23564 | pic addresses. | |
23565 | (LEGITIMATE_PIC_OPERAND_P): Use | |
23566 | arc_raw_symbolic_reference_mentioned_p function. | |
23567 | * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p | |
23568 | function. | |
23569 | (Cal): Likewise. | |
23570 | (C32): Likewise. | |
23571 | ||
23572 | 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com> | |
23573 | Andrew Burgess <andrew.burgess@embecosm.com> | |
23574 | ||
23575 | * config/arc/arc-protos.h (arc_compute_function_type): Change prototype. | |
23576 | (arc_return_address_register): New function. | |
23577 | * config/arc/arc.c (arc_handle_fndecl_attribute): New function. | |
23578 | (arc_handle_fndecl_attribute): Add naked attribute. | |
23579 | (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define. | |
23580 | (TARGET_WARN_FUNC_RETURN): Likewise. | |
23581 | (arc_allocate_stack_slots_for_args): New function. | |
23582 | (arc_warn_func_return): Likewise. | |
23583 | (machine_function): Change type fn_type. | |
23584 | (arc_compute_function_type): Consider new naked function type, | |
23585 | change function return type. | |
23586 | (arc_must_save_register): Adapt to handle new | |
23587 | arc_compute_function_type's return type. | |
23588 | (arc_expand_prologue): Likewise. | |
23589 | (arc_expand_epilogue): Likewise. | |
23590 | (arc_return_address_regs): Delete. | |
23591 | (arc_return_address_register): New function. | |
23592 | (arc_epilogue_uses): Use above function. | |
23593 | * config/arc/arc.h (arc_return_address_regs): Delete prototype. | |
23594 | (arc_function_type): Change encoding, add naked type. | |
23595 | (ARC_INTERRUPT_P): Change to handle the new encoding. | |
23596 | (ARC_FAST_INTERRUPT_P): Likewise. | |
23597 | (ARC_NORMAL_P): Define. | |
23598 | (ARC_NAKED_P): Likewise. | |
23599 | (arc_compute_function_type): Delete prototype. | |
23600 | * config/arc/arc.md (in_ret_delay_slot): Use | |
23601 | arc_return_address_register function. | |
23602 | (simple_return): Likewise. | |
23603 | (p_return_i): Likewise. | |
23604 | ||
23605 | 2017-07-17 Jakub Jelinek <jakub@redhat.com> | |
23606 | ||
23607 | PR tree-optimization/81428 | |
23608 | * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1 | |
23609 | can't be built for those types. | |
23610 | ||
23611 | 2017-07-17 Georg-Johann Lay <avr@gjlay.de> | |
23612 | ||
23613 | Remove stuff dead since r239246. | |
23614 | ||
23615 | * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto. | |
23616 | * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str) | |
23617 | (avr_inform_devices): Remove dead stuff. | |
23618 | ||
23619 | 2017-07-17 Tamar Christina <tamar.christina@arm.com> | |
23620 | ||
23621 | * config/arm/arm_neon.h: Fix softp typo. | |
23622 | ||
23623 | 2017-07-17 Jakub Jelinek <jakub@redhat.com> | |
23624 | ||
23625 | PR tree-optimization/81365 | |
23626 | * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting | |
23627 | aggregate moves onto bb predecessor edges, make sure there are no | |
23628 | loads that could alias the lhs in between the start of bb and the | |
23629 | loads from *phi. | |
23630 | ||
23631 | 2017-07-17 Georg-Johann Lay <avr@gjlay.de> | |
23632 | ||
23633 | PR 80929 | |
23634 | * config/avr/avr.c (avr_mul_highpart_cost): New static function. | |
23635 | (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost. | |
23636 | [LSHIFTRT, outer_code = TRUNCATE]: Same. | |
23637 | ||
23638 | 2017-07-17 Jakub Jelinek <jakub@redhat.com> | |
23639 | ||
23640 | PR tree-optimization/81396 | |
23641 | * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field. | |
23642 | (init_symbolic_number): Initialize it to 1. | |
23643 | (perform_symbolic_merge): Add n_ops from both operands into the new | |
23644 | n_ops. | |
23645 | (find_bswap_or_nop): Don't consider n->n == cmpnop computations | |
23646 | without base_addr as useless if they need more than one operation. | |
23647 | (bswap_replace): Handle !bswap case for NULL base_addr. | |
23648 | ||
23649 | 2017-07-17 Tom de Vries <tom@codesourcery.com> | |
23650 | ||
23651 | PR target/81069 | |
23652 | * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late | |
23653 | as possible. | |
23654 | ||
23655 | 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
23656 | ||
23657 | * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add | |
23658 | conditional builtin define __FIX_LEON3FT_B2BST. | |
23659 | ||
23660 | 2017-07-17 Daniel Cederman <cederman@gaisler.com> | |
23661 | ||
23662 | * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace | |
23663 | MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc | |
23664 | with -mfix-ut700. | |
23665 | ||
23666 | 2017-07-16 Eric Botcazou <ebotcazou@adacore.com> | |
23667 | ||
23668 | PR rtl-optimization/81424 | |
23669 | * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg | |
23670 | to remove potential trapping from operands if -fnon-call-exceptions. | |
23671 | ||
23672 | 2017-07-16 Jan Hubicka <hubicka@ucw.cz> | |
23673 | ||
23674 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use | |
23675 | profile_proability for scalling. | |
23676 | * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise. | |
23677 | ||
23678 | 2017-07-16 Jan Hubicka <hubicka@ucw.cz> | |
23679 | ||
23680 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup. | |
23681 | ||
23682 | 2017-07-16 Jan Hubicka <hubicka@ucw.cz> | |
23683 | ||
23684 | * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE | |
23685 | fixpoint arithmetics. | |
23686 | ||
23687 | 2017-07-16 Jan Hubicka <hubicka@ucw.cz> | |
23688 | ||
23689 | * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE | |
23690 | fixpoint arithmetics. | |
23691 | ||
23692 | 2017-07-16 Jan Hubicka <hubicka@ucw.cz> | |
23693 | ||
23694 | * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE | |
23695 | fixpoint arithmetics. | |
23696 | ||
23697 | 2017-07-16 Jan Hubicka <hubicka@ucw.cz> | |
23698 | ||
23699 | * profile-count.h (profile_probability::from_reg_br_prob_note, | |
23700 | profile_probability::to_reg_br_prob_note): New functions. | |
23701 | * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation. | |
23702 | * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs. | |
23703 | * predict.c (probability_reliable_p): Update. | |
23704 | (edge_probability_reliable_p): Update. | |
23705 | (br_prob_note_reliable_p): Update. | |
23706 | (invert_br_probabilities): Update. | |
23707 | (add_reg_br_prob_note): New function. | |
23708 | (combine_predictions_for_insn): Update. | |
23709 | * asan.c (asan_clear_shadow): Update. | |
23710 | * cfgbuild.c (compute_outgoing_frequencies): Update. | |
23711 | * cfgrtl.c (force_nonfallthru_and_redirect): Update. | |
23712 | (update_br_prob_note): Update. | |
23713 | (rtl_verify_edges): Update. | |
23714 | (purge_dead_edges): Update. | |
23715 | (fixup_reorder_chain): Update. | |
23716 | * emit-rtl.c (try_split): Update. | |
23717 | * ifcvt.c (cond_exec_process_insns): Update. | |
23718 | (cond_exec_process_if_block): Update. | |
23719 | (dead_or_predicable): Update. | |
23720 | * internal-fn.c (expand_addsub_overflow): Update. | |
23721 | (expand_neg_overflow): Update. | |
23722 | (expand_mul_overflow): Update. | |
23723 | * loop-doloop.c (doloop_modify): Update. | |
23724 | * loop-unroll.c (compare_and_jump_seq): Update. | |
23725 | * optabs.c (emit_cmp_and_jump_insn_1): Update. | |
23726 | * predict.h: Update. | |
23727 | * reorg.c (mostly_true_jump): Update. | |
23728 | * rtl.h: Update. | |
23729 | * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update. | |
23730 | * config/alpha/alpha.c (emit_unlikely_jump): Update. | |
23731 | * config/arc/arc.c: (emit_unlikely_jump): Update. | |
23732 | * config/arm/arm.c: (emit_unlikely_jump): Update. | |
23733 | * config/bfin/bfin.c (cbranch_predicted_taken_p): Update. | |
23734 | * config/frv/frv.c (frv_print_operand_jump_hint): Update. | |
23735 | * config/i386/i386.c (ix86_expand_split_stack_prologue): Update. | |
23736 | (ix86_print_operand): Update. | |
23737 | (ix86_split_fp_branch): Update. | |
23738 | (predict_jump): Update. | |
23739 | * config/ia64/ia64.c (ia64_print_operand): Update. | |
23740 | * config/mmix/mmix.c (mmix_print_operand): Update. | |
23741 | * config/powerpcspe/powerpcspe.c (output_cbranch): Update. | |
23742 | (rs6000_expand_split_stack_prologue): Update. | |
23743 | * config/rs6000/rs6000.c: Update. | |
23744 | * config/s390/s390.c (s390_expand_vec_strlen): Update. | |
23745 | (s390_expand_vec_movstr): Update. | |
23746 | (s390_expand_cs_tdsi): Update. | |
23747 | (s390_expand_split_stack_prologue): Update. | |
23748 | * config/sh/sh.c (sh_print_operand): Update. | |
23749 | (expand_cbranchsi4): Update. | |
23750 | (expand_cbranchdi4): Update. | |
23751 | * config/sparc/sparc.c (output_v9branch): Update. | |
23752 | * config/spu/spu.c (get_branch_target): Update. | |
23753 | (ea_load_store_inline): Update. | |
23754 | * config/tilegx/tilegx.c (cbranch_predicted_p): Update. | |
23755 | * config/tilepro/tilepro.c: Update. | |
23756 | ||
23757 | 2017-07-16 Eric Botcazou <ebotcazou@adacore.com> | |
23758 | ||
23759 | * gimplify.c (mostly_copy_tree_r): Revert latest change. | |
23760 | (gimplify_save_expr): Likewise. | |
23761 | ||
23762 | 2017-07-07 Jan Hubicka <hubicka@ucw.cz> | |
23763 | ||
23764 | * ipa-visibility.c (function_and_variable_visibility): Fix pasto. | |
23765 | ||
23766 | 2017-07-07 Jan Hubicka <hubicka@ucw.cz> | |
23767 | ||
23768 | * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use | |
23769 | TV_IPA_FNSUMMARY. | |
23770 | * timevar.def (TV_IPA_FNSUMMARY): Define. | |
23771 | ||
23772 | 2017-07-16 Daniel Cederman <cederman@gaisler.com> | |
23773 | ||
23774 | * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back | |
23775 | to back store errata sensitive sequence from being generated. | |
23776 | (sqrtdf2_fix): Likewise. | |
23777 | ||
23778 | 2017-07-07 Jan Hubicka <hubicka@ucw.cz> | |
23779 | ||
23780 | * tree-ssa-threadupdate.c (compute_path_counts, | |
23781 | update_joiner_offpath_counts): Use profile_probability. | |
23782 | ||
23783 | 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
23784 | ||
23785 | Revert: | |
23786 | 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
23787 | ||
23788 | * config/arm/arm-c.c (arm_cpu_builtins): Define | |
23789 | __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5. | |
23790 | ||
23791 | 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
23792 | ||
23793 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
23794 | array entries to represent __ieee128 versions of the | |
23795 | scalar_test_data_class, scalar_test_neg, scalar_extract_exp, | |
23796 | scalar_extract_sig, and scalar_insert_exp built-in functions. | |
23797 | (altivec_resolve_overloaded_builtin): Add special case handling | |
23798 | for the __builtin_scalar_insert_exp function, as represented by | |
23799 | the P9V_BUILTIN_VEC_VSIEDP constant. | |
23800 | * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract | |
23801 | exponent support for __ieee128 argument. | |
23802 | (VSESQP): Add scalar extract signature support for __ieee128 | |
23803 | argument. | |
23804 | (VSTDCNQP): Add scalar test negative support for __ieee128 | |
23805 | argument. | |
23806 | (VSIEQP): Add scalar insert exponent support for __int128 argument | |
23807 | with __ieee128 result. | |
23808 | (VSIEQPF): Add scalar insert exponent support for __ieee128 | |
23809 | argument with __ieee128 result. | |
23810 | (VSTDCQP): Add scalar test data class support for __ieee128 | |
23811 | argument. | |
23812 | (VSTDCNQP): Add overload support for scalar test negative with | |
23813 | __ieee128 argument. | |
23814 | (VSTDCQP): Add overload support for scalar test data class | |
23815 | __ieee128 argument. | |
23816 | * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace | |
23817 | UNSPEC_VSX_SXSIGDP. | |
23818 | (UNSPEC_VSX_SIEXPQP): New constant. | |
23819 | (xsxexpqp): New insn for VSX scalar extract exponent quad | |
23820 | precision. | |
23821 | (xsxsigqp): New insn for VSX scalar extract significand quad | |
23822 | precision. | |
23823 | (xsiexpqpf): New insn for VSX scalar insert exponent quad | |
23824 | precision with floating point argument. | |
23825 | (xststdcqp): New expand for VSX scalar test data class quad | |
23826 | precision. | |
23827 | (xststdcnegqp): New expand for VSX scalar test negative quad | |
23828 | precision. | |
23829 | (xststdcqp): New insn to match expansions for VSX scalar test data | |
23830 | class quad precision and VSX scalar test negative quad precision. | |
23831 | * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add | |
23832 | special case operand checking to enforce that second operand of | |
23833 | VSX scalar test data class with quad precision argument is a 7-bit | |
23834 | unsigned literal. | |
23835 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add | |
23836 | prototypes and descriptions of __ieee128 versions of | |
23837 | scalar_extract_exp, scalar_extract_sig, scalar_insert_exp, | |
23838 | scalar_test_data_class, and scalar_test_neg built-in functions. | |
23839 | ||
23840 | 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
23841 | ||
23842 | PR tree-optimization/81162 | |
23843 | * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't | |
23844 | replace a negate with an add. | |
23845 | ||
23846 | 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com> | |
23847 | ||
23848 | * doc/invoke.texi (arm/-mcpu): Document +crypto. | |
23849 | ||
23850 | 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
23851 | ||
23852 | * config/arm/arm-c.c (arm_cpu_builtins): Define | |
23853 | __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5. | |
23854 | ||
23855 | 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
23856 | ||
23857 | * config/arm/arm-cpus.in (cortex-r52): Add new entry. | |
23858 | (armv8-r): Set ARM Cortex-R52 as default CPU. | |
23859 | * config/arm/arm-tables.opt: Regenerate. | |
23860 | * config/arm/arm-tune.md: Regenerate. | |
23861 | * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM | |
23862 | Cortex-R52. | |
23863 | * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp | |
23864 | extension for -mcpu=cortex-r52. | |
23865 | ||
23866 | 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
23867 | ||
23868 | * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator. | |
23869 | (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32. | |
23870 | * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5. | |
23871 | (fp-armv8): Define it as FP_ARMv8 only. | |
23872 | config/arm/arm.h (TARGET_FPU_ARMV8): Delete. | |
23873 | (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than | |
23874 | TARGET_FPU_ARMV8. | |
23875 | config/arm/arm.c (arm_rtx_costs_internal): Replace checks against | |
23876 | TARGET_FPU_ARMV8 by checks against TARGET_VFP5. | |
23877 | * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define | |
23878 | first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather | |
23879 | than TARGET_FPU_ARMV8. | |
23880 | * config/arm/arm-c.c (arm_cpu_builtins): Likewise for | |
23881 | __ARM_FEATURE_NUMERIC_MAXMIN macro definition. | |
23882 | * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than | |
23883 | TARGET_FPU_ARMV8. | |
23884 | * config/arm/neon.md (neon_vrint): Likewise. | |
23885 | (neon_vcvt): Likewise. | |
23886 | (neon_<fmaxmin_op><mode>): Likewise. | |
23887 | (<fmaxmin><mode>3): Likewise. | |
23888 | * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise. | |
23889 | * config/arm/predicates.md (arm_cond_move_operator): Check against | |
23890 | TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing. | |
23891 | ||
23892 | 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com> | |
23893 | ||
23894 | * config/aarch64/aarch64.c (aarch64_print_operand): Move comments | |
23895 | to top of function. | |
23896 | ||
23897 | 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23898 | ||
23899 | * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to | |
23900 | loop in comment with memset. | |
23901 | ||
23902 | 2017-07-14 Martin Liska <mliska@suse.cz> | |
23903 | ||
23904 | * cfgexpand.c (expand_gimple_basic_block): Remove dead comment. | |
23905 | * dwarf2out.c (is_java): Remove the function. | |
23906 | (output_pubname): Remove usage of the function. | |
23907 | (lower_bound_default): Remove usage of DW_LANG_Java. | |
23908 | (gen_compile_unit_die): Likewise. | |
23909 | * gcc.c: Remove compiler defaults for .java and .zip files. | |
23910 | * gimple-expr.c (remove_suffix): Change as there's no longer | |
23911 | extension than 4-letter one. | |
23912 | * gimplify.c (mostly_copy_tree_r): Remove Java-special part. | |
23913 | (gimplify_save_expr): Likewise. | |
23914 | * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment | |
23915 | as it's possible even for other languages than Java. | |
23916 | * langhooks.h (struct lang_hooks): Remove Java from a comment. | |
23917 | * lto-opts.c (lto_write_options): Remove reference to Java. | |
23918 | * opts.c (strip_off_ending): Update file extension handling. | |
23919 | * tree-cfg.c (verify_gimple_call): Remove comment with Java. | |
23920 | * tree-eh.c (lower_resx): Likewise. | |
23921 | * tree.c (free_lang_data_in_type): Remove dead code. | |
23922 | (find_decls_types_r): Likewise. | |
23923 | (build_common_builtin_nodes): Remove Java from a comment. | |
23924 | (verify_type): Remove dead code. | |
23925 | * varasm.c (assemble_external): Remove Java from a comment. | |
23926 | ||
23927 | 2017-07-14 Martin Liska <mliska@suse.cz> | |
23928 | ||
23929 | * opts.c (finish_options): Add quotes. | |
23930 | (common_handle_option): Likewise. | |
23931 | ||
23932 | 2017-07-14 Martin Liska <mliska@suse.cz> | |
23933 | ||
23934 | * dbxout.c (get_lang_number): Do not handle GNU Pascal. | |
23935 | * dbxout.h (extern void dbxout_stab_value_internal_label_diff): | |
23936 | Remove N_SO_PASCAL. | |
23937 | * dwarf2out.c (lower_bound_default): Do not handle | |
23938 | DW_LANG_Pascal83. | |
23939 | (gen_compile_unit_die): Likewise. | |
23940 | * gcc.c: Remove default extension binding for GNU Pascal. | |
23941 | * stmt.c: Remove Pascal language from a comment. | |
23942 | * xcoffout.c: Likewise. | |
23943 | ||
23944 | 2017-07-13 David Malcolm <dmalcolm@redhat.com> | |
23945 | ||
23946 | PR c/81405 | |
23947 | * diagnostic-show-locus.c (fixit_cmp): New function. | |
23948 | (layout::layout): Sort m_fixit_hints. | |
23949 | (column_range::column_range): Assert that the values are valid. | |
23950 | (struct char_span): New struct. | |
23951 | (correction::overwrite): New method. | |
23952 | (struct source_line): New struct. | |
23953 | (line_corrections::add_hint): Add assertions. Reimplement memcpy | |
23954 | calls in terms of classes source_line and char_span, and | |
23955 | correction::overwrite. | |
23956 | (selftest::test_overlapped_fixit_printing_2): New function. | |
23957 | (selftest::diagnostic_show_locus_c_tests): Call it. | |
23958 | ||
23959 | 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com> | |
23960 | ||
23961 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return | |
23962 | early if there is no lhs. | |
23963 | ||
23964 | 2017-07-13 Martin Liska <mliska@suse.cz> | |
23965 | ||
23966 | * dwarf2out.c (gen_pointer_type_die): Remove dead code. | |
23967 | (gen_reference_type_die): Likewise. | |
23968 | * stor-layout.c: Remove Pascal-related comment. | |
23969 | ||
23970 | 2017-07-13 Martin Liska <mliska@suse.cz> | |
23971 | ||
23972 | * opts.c (finish_options): Add quotes to error messages. | |
23973 | (parse_sanitizer_options): Likewise. | |
23974 | ||
23975 | 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
23976 | ||
23977 | * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension. | |
23978 | ||
23979 | 2017-07-13 Richard Earnshaw <rearnsha@arm.com> | |
23980 | ||
23981 | * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define. | |
23982 | ||
23983 | 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com> | |
23984 | ||
23985 | * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments | |
23986 | during expansion. | |
23987 | * builtins.c (expand_asan_emit_allocas_unpoison): Likewise. | |
23988 | ||
23989 | 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
23990 | ||
23991 | PR target/81193 | |
23992 | * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC | |
23993 | provides the hardware capability bits, define the macro | |
23994 | __BUILTIN_CPU_SUPPORTS__. | |
23995 | * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning | |
23996 | if GLIBC does not provide the hardware capability bits. Add a | |
23997 | gcc_unreachable call if the built-in cpu function is neither | |
23998 | __builtin_cpu_is nor __builtin_cpu_supports. | |
23999 | (rs6000_get_function_versions_dispatcher): Change the warning | |
24000 | that an old GLIBC is used which does not export the capability | |
24001 | bits to be an error. | |
24002 | * doc/extend.texi (target_clones attribute): Document the | |
24003 | restriction that GLIBC 2.23 or newer is needed on the PowerPC. | |
24004 | (PowerPC built-in functions): Document that GLIBC 2.23 or newer is | |
24005 | needed by __builtin_cpu_is and __builtin_cpu_supports. Document | |
24006 | the macros defined by GCC if the newer GLIBC is available. | |
24007 | ||
24008 | 2017-07-12 Jeff Law <law@redhat.com> | |
24009 | ||
24010 | * config/riscv/riscv.c: Remove unnecessary includes. Reorder | |
24011 | remaining includes slightly. | |
24012 | * config/riscv/riscv-builtins.c: Include profile-count.h. | |
24013 | ||
24014 | 2017-07-12 Georg-Johann Lay <avr@gjlay.de> | |
24015 | ||
24016 | PR target/79883 | |
24017 | * config/avr/avr.c (avr_set_current_function): In diagnostic | |
24018 | messages: Quote keywords and (parts of) identifiers. | |
24019 | [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or | |
24020 | "INTERUPT". | |
24021 | ||
24022 | 2017-07-12 Carl Love <cel@us.ibm.com> | |
24023 | ||
24024 | * config/rs6000/rs6000-c.c: Add support for built-in functions | |
24025 | vector bool char vec_revb (vector bool char); | |
24026 | vector bool short vec_revb (vector short char); | |
24027 | vector bool int vec_revb (vector bool int); | |
24028 | vector bool long long vec_revb (vector bool long long); | |
24029 | * doc/extend.texi: Update the built-in documentation file for the | |
24030 | new built-in functions. | |
24031 | ||
24032 | 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
24033 | ||
24034 | * config/s390/s390.md: Remove movcc splitter. | |
24035 | ||
24036 | 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
24037 | ||
24038 | * config/s390/s390.c (s390_rtx_costs): Return proper costs for | |
24039 | load/store on condition. | |
24040 | ||
24041 | 2017-07-12 Georg-Johann Lay <avr@gjlay.de> | |
24042 | ||
24043 | PR target/81407 | |
24044 | * config/avr/avr.c (avr_encode_section_info) | |
24045 | [progmem && !TREE_READONLY]: Error if progmem object needs | |
24046 | constructing. | |
24047 | ||
24048 | 2017-07-11 Michael Collison <michael.collison@arm.com> | |
24049 | ||
24050 | * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0): | |
24051 | New pattern. | |
24052 | ||
24053 | 2017-07-11 Carl Love <cel@us.ibm.com> | |
24054 | ||
24055 | * config/rs6000/rs6000-c.c: Add support for builtins | |
24056 | vector unsigned int vec_parity_lsbb (vector signed int); | |
24057 | vector unsigned int vec_parity_lsbb (vector unsigned int); | |
24058 | vector unsigned __int128 vec_parity_lsbb (vector signed __int128); | |
24059 | vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128); | |
24060 | vector unsigned long long vec_parity_lsbb (vector signed long long); | |
24061 | vector unsigned long long vec_parity_lsbb (vector unsigned long long); | |
24062 | * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1. | |
24063 | * config/rs6000/altivec.h (vec_parity_lsbb): Add define. | |
24064 | * doc/extend.texi: Update the built-in documentation file for the | |
24065 | new built-in functions. | |
24066 | ||
24067 | 2017-07-11 David Malcolm <dmalcolm@redhat.com> | |
24068 | ||
24069 | * diagnostic-show-locus.c: Include "gcc-rich-location.h". | |
24070 | (layout::m_primary_loc): New field. | |
24071 | (layout::layout): Initialize new field. Move location filtering | |
24072 | logic from here to... | |
24073 | (layout::maybe_add_location_range): ...this new method. Add | |
24074 | support for filtering to just the lines already specified by other | |
24075 | locations. | |
24076 | (layout::will_show_line_p): New method. | |
24077 | (gcc_rich_location::add_location_if_nearby): New method. | |
24078 | (selftest::test_add_location_if_nearby): New test function. | |
24079 | (selftest::diagnostic_show_locus_c_tests): Call it. | |
24080 | * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): | |
24081 | New method. | |
24082 | ||
24083 | 2017-07-11 Tom de Vries <tom@codesourcery.com> | |
24084 | ||
24085 | * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro. | |
24086 | (bb_first_real_insn): New function. | |
24087 | (nvptx_single): Add extra initialization of broadcasted condition | |
24088 | variables. | |
24089 | ||
24090 | 2017-07-11 Nathan Sidwell <nathan@acm.org> | |
24091 | ||
24092 | * dwarf2out.c (gen_member_die): Remove useless check for anon ctors. | |
24093 | ||
24094 | 2017-07-11 Georg-Johann Lay <avr@gjlay.de> | |
24095 | ||
24096 | * doc/extend.texi (AVR Function Attributes): Remove weblink to | |
24097 | Binutils doc as TEXI will mess them up. | |
24098 | * doc/invoke.texi (AVR Options): Same here. | |
24099 | ||
24100 | 2017-07-11 Daniel Cederman <cederman@gaisler.com> | |
24101 | ||
24102 | * config/sparc/sparc.opt (mfix-ut700): New option. | |
24103 | (mfix-gr712rc): Likewise. | |
24104 | (sparc_fix_b2bst): New variable. | |
24105 | * doc/invoke.texi (SPARC options): Document them. | |
24106 | (ARM options): Fix warnings. | |
24107 | * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP | |
24108 | instructions to prevent sequences that can trigger the store-store | |
24109 | errata for certain LEON3FT processors. | |
24110 | (pass_work_around_errata::gate): Also test sparc_fix_b2bst. | |
24111 | (sparc_option_override): Set sparc_fix_b2bst appropriately. | |
24112 | * config/sparc/sparc.md (fix_b2bst): New attribute. | |
24113 | (in_branch_delay): Prevent stores in delay slot if fix_b2bst. | |
24114 | ||
24115 | 2017-07-10 Uros Bizjak <ubizjak@gmail.com> | |
24116 | ||
24117 | PR target/81375 | |
24118 | * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH. | |
24119 | (rcpps): Ditto. | |
24120 | (*rsqrtsf2_sse): Ditto. | |
24121 | (rsqrtsf2): Ditto. | |
24122 | (div<mode>3): Macroize insn from divdf3 and divsf3 | |
24123 | using MODEF mode iterator. | |
24124 | ||
24125 | 2017-07-10 Martin Sebor <msebor@redhat.com> | |
24126 | ||
24127 | PR tree-optimization/80397 | |
24128 | * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P() | |
24129 | instead of testing for equality to INTEGER_TYPE. | |
24130 | ||
24131 | 2017-07-10 Vineet Gupta <vgupta@synopsys.com> | |
24132 | ||
24133 | * config.gcc: Remove uclibc from arc target spec. | |
24134 | ||
24135 | 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com> | |
24136 | ||
24137 | * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define. | |
24138 | ||
24139 | 2017-07-07 Jan Hubicka <hubicka@ucw.cz> | |
24140 | ||
24141 | PR lto/80838 | |
24142 | * lto-wrapper.c (remove_option): New function. | |
24143 | (merge_and_complain): Merge PIC/PIE options more realistically. | |
24144 | ||
24145 | 2017-07-10 Georg-Johann Lay <avr@gjlay.de> | |
24146 | ||
24147 | Better ISR prologues by supporting GASes __gcc_isr pseudo insn. | |
24148 | ||
24149 | PR target/20296 | |
24150 | PR target/81268 | |
24151 | * configure.ac [target=avr]: Add GAS check for -mgcc-isr. | |
24152 | (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it. | |
24153 | * config.in: Regenerate. | |
24154 | * configure: Regenerate. | |
24155 | * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it. | |
24156 | * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it. | |
24157 | * config/avr/avr.opt (-mgas-isr-prologues): New option and... | |
24158 | (TARGET_GASISR_PROLOGUES): ...target mask. | |
24159 | * common/config/avr/avr-common.c | |
24160 | (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]: | |
24161 | Set -mgas-isr-prologues. | |
24162 | * config/avr/avr-passes.def (avr_pass_pre_proep): Add | |
24163 | INSERT_PASS_BEFORE for it. | |
24164 | * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto. | |
24165 | * config/avr/avr.c (avr_option_override) | |
24166 | [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES. | |
24167 | (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions. | |
24168 | (avr_attribute_table) <no_gccisr>: Add new function attribute. | |
24169 | (avr_set_current_function) <is_no_gccisr>: Init machine field. | |
24170 | (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data | |
24171 | and rtl_opt_pass. | |
24172 | (make_avr_pass_pre_proep): New function. | |
24173 | (emit_push_sfr) <treg>: Add argument to function and use it | |
24174 | instead of TMP_REG. | |
24175 | (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn | |
24176 | and set machine->gasisr.yes. | |
24177 | (avr_expand_epilogue) [machine->gasisr.yes]: Similar. | |
24178 | (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add | |
24179 | __gcc_isr.n_pushed to .L__stack_usage. | |
24180 | (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to... | |
24181 | (avr_asm_final_postscan_insn): ...this new static function. | |
24182 | * config/avr/avr.h (machine_function) | |
24183 | <is_no_gccisr, use_L__stack_usage>: New fields. | |
24184 | <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields. | |
24185 | * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum. | |
24186 | (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants. | |
24187 | (gasisr, *gasisr): New expander and insn. | |
24188 | * config/avr/gen-avr-mmcu-specs.c (print_mcu) | |
24189 | [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec. | |
24190 | * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec. | |
24191 | ||
24192 | 2017-07-10 Richard Earnshaw <rearnsha@arm.com> | |
24193 | ||
24194 | * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes | |
24195 | in quoted strings. | |
24196 | ||
24197 | 2017-07-10 Georg-Johann Lay <avr@gjlay.de> | |
24198 | ||
24199 | Move jump-tables out of .text again. | |
24200 | ||
24201 | PR target/81075 | |
24202 | * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function. | |
24203 | (ASM_OUTPUT_ADDR_VEC): New function. | |
24204 | (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0. | |
24205 | (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump | |
24206 | INSN_ADDRESSes as asm comment. | |
24207 | * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment. | |
24208 | (ASM_OUTPUT_ADDR_VEC_ELT): Remove define. | |
24209 | (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec. | |
24210 | * config/avr/avr.md (*tablejump): Adjust comment. | |
24211 | * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove. | |
24212 | * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>: | |
24213 | New detail. | |
24214 | * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto. | |
24215 | (avr_output_addr_vec): New proto. | |
24216 | (avr_log_t) <insn_addresses>: New field. | |
24217 | ||
24218 | 2017-07-09 H.J. Lu <hongjiu.lu@intel.com> | |
24219 | ||
24220 | PR target/81313 | |
24221 | * config/i386/i386.c (ix86_function_arg_advance): Set | |
24222 | outgoing_args_on_stack to true if there are outgoing arguments | |
24223 | on stack. | |
24224 | (ix86_function_arg): Likewise. | |
24225 | (ix86_get_drap_rtx): Use DRAP only if there are outgoing | |
24226 | arguments on stack and ACCUMULATE_OUTGOING_ARGS is false. | |
24227 | * config/i386/i386.h (machine_function): Add | |
24228 | outgoing_args_on_stack. | |
24229 | ||
24230 | 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com> | |
24231 | ||
24232 | * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not | |
24233 | supporting pthreds. | |
24234 | * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads. | |
24235 | ||
24236 | 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org> | |
24237 | ||
24238 | * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H) | |
24239 | (REAL_H): Remove $(MACHMODE_H). | |
24240 | (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and | |
24241 | double-int.h. | |
24242 | (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h, | |
24243 | $(MACHMODE_H) and double-int.h. | |
24244 | (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than | |
24245 | $(MACHMODE_H). | |
24246 | (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on | |
24247 | double-int.h. | |
24248 | ||
24249 | 2017-07-07 Andrew Pinski <apinski@cavium.com> | |
24250 | ||
24251 | * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check | |
24252 | prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH. | |
24253 | ||
24254 | 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com> | |
24255 | ||
24256 | * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher): | |
24257 | Add warning if GCC was not configured to link against a GLIBC that | |
24258 | exports the hardware capability bits. | |
24259 | (make_resolver_func): Make resolver function private and not a | |
24260 | COMDAT function. Create the name with clone_function_name instead | |
24261 | of make_unique_name. | |
24262 | ||
24263 | PR target/81348 | |
24264 | * config/rs6000/rs6000.md (HI sign_extend splitter): Use the | |
24265 | correct operand in doing the split. | |
24266 | ||
24267 | 2017-07-07 Carl Love <cel@us.ibm.com> | |
24268 | ||
24269 | * config/rs6000/rs6000-c: Add support for built-in function | |
24270 | vector unsigned short vec_pack_to_short_fp32 (vector float, | |
24271 | vector float). | |
24272 | * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add | |
24273 | BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions. | |
24274 | * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define. | |
24275 | * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC. | |
24276 | (convert_4f32_8i16): Add define_expand. | |
24277 | * doc/extend.texi: Update the built-in documentation file for the | |
24278 | new built-in function. | |
24279 | ||
24280 | 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> | |
24281 | ||
24282 | * config/sparc/m8.md: New file. | |
24283 | * config/sparc/sparc.md: Include m8.md. | |
24284 | ||
24285 | 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> | |
24286 | ||
24287 | * config/sparc/sparc.opt: New option -mvis4b. | |
24288 | * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B. | |
24289 | (sparc_option_override): Handle VIS4B. | |
24290 | (enum sparc_builtins): Define | |
24291 | SPARC_BUILTIN_DICTUNPACK{8,16,32}, | |
24292 | SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL, | |
24293 | SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL, | |
24294 | SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and | |
24295 | SPARC_BUILTIN_FPCMPUR{8,16,32}SHL. | |
24296 | (check_constant_argument): New function. | |
24297 | (sparc_vis_init_builtins): Define builtins | |
24298 | __builtin_vis_dictunpack{8,16,32}, | |
24299 | __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl, | |
24300 | __builtin_vis_fpcmpu{le,gt}{8,16,32}shl, | |
24301 | __builtin_vis_fpcmpde{8,16,32}shl and | |
24302 | __builtin_vis_fpcmpur{8,16,32}shl. | |
24303 | (sparc_expand_builtin): Check that the constant operands to | |
24304 | __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed | |
24305 | constant and in range. | |
24306 | * config/sparc/sparc-c.c (sparc_target_macros): Handle | |
24307 | TARGET_VIS4B. | |
24308 | * config/sparc/sparc.h (SPARC_IMM2_P): Define. | |
24309 | (SPARC_IMM5_P): Likewise. | |
24310 | * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b". | |
24311 | (enabled): Handle vis4b. | |
24312 | (UNSPEC_DICTUNPACK): New unspec. | |
24313 | (UNSPEC_FPCMPSHL): Likewise. | |
24314 | (UNSPEC_FPUCMPSHL): Likewise. | |
24315 | (UNSPEC_FPCMPDESHL): Likewise. | |
24316 | (UNSPEC_FPCMPURSHL): Likewise. | |
24317 | (cpu_feature): New CPU feature `vis4b'. | |
24318 | (dictunpack{8,16,32}): New insns. | |
24319 | (FPCSMODE): New mode iterator. | |
24320 | (fpcscond): New code iterator. | |
24321 | (fpcsucond): Likewise. | |
24322 | (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns. | |
24323 | (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise. | |
24324 | (fpcmpde{8,16,32}{si,di}shl): Likewise. | |
24325 | (fpcmpur{8,16,32}{si,di}shl): Likewise. | |
24326 | * config/sparc/constraints.md: Define constraints `q' for unsigned | |
24327 | 2-bit integer constants and `t' for unsigned 5-bit integer | |
24328 | constants. | |
24329 | * config/sparc/predicates.md (imm5_operand_dictunpack8): New | |
24330 | predicate. | |
24331 | (imm5_operand_dictunpack16): Likewise. | |
24332 | (imm5_operand_dictunpack32): Likewise. | |
24333 | (imm2_operand): Likewise. | |
24334 | * doc/invoke.texi (SPARC Options): Document -mvis4b. | |
24335 | * doc/extend.texi (SPARC VIS Built-in Functions): Document the | |
24336 | ditunpack* and fpcmp*shl builtins. | |
24337 | ||
24338 | 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> | |
24339 | ||
24340 | * config.gcc: Handle m8 in --with-{cpu,tune} options. | |
24341 | * config.in: Add HAVE_AS_SPARC6 define. | |
24342 | * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC | |
24343 | M8. | |
24344 | * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for | |
24345 | TARGET_CPU_m8. | |
24346 | (ASM_CPU32_DEFAUILT_SPEC): Likewise. | |
24347 | (CPP_CPU_SPEC): Handle m8. | |
24348 | (ASM_CPU_SPEC): Likewise. | |
24349 | * config/sparc/sparc-opts.h (enum processor_type): Add | |
24350 | PROCESSOR_M8. | |
24351 | * config/sparc/sparc.c (m8_costs): New struct. | |
24352 | (sparc_option_override): Handle TARGET_CPU_m8. | |
24353 | (sparc32_initialize_trampoline): Likewise. | |
24354 | (sparc64_initialize_trampoline): Likewise. | |
24355 | (sparc_issue_rate): Likewise. | |
24356 | (sparc_register_move_cost): Likewise. | |
24357 | * config/sparc/sparc.h (TARGET_CPU_m8): Define. | |
24358 | (CPP_CPU64_DEFAULT_SPEC): Define for M8. | |
24359 | (ASM_CPU64_DEFAULT_SPEC): Likewise. | |
24360 | (CPP_CPU_SPEC): Handle M8. | |
24361 | (ASM_CPU_SPEC): Likewise. | |
24362 | (AS_M8_FLAG): Define. | |
24363 | * config/sparc/sparc.md: Add m8 to the cpu attribute. | |
24364 | * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets. | |
24365 | * configure.ac (HAVE_AS_SPARC6): Check for assembler support for | |
24366 | M8 instructions. | |
24367 | * configure: Regenerate. | |
24368 | * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and | |
24369 | -mtune=m8. | |
24370 | ||
24371 | 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> | |
24372 | ||
24373 | * config/sparc/niagara7.md: Rework the DFA scheduler to use insn | |
24374 | subtypes. | |
24375 | * config/sparc/sparc.md: Remove the `v3pipe' insn attribute. | |
24376 | ("*movdi_insn_sp32"): Do not set v3pipe. | |
24377 | ("*movsi_insn"): Likewise. | |
24378 | ("*movdi_insn_sp64"): Likewise. | |
24379 | ("*movsf_insn"): Likewise. | |
24380 | ("*movdf_insn_sp32"): Likewise. | |
24381 | ("*movdf_insn_sp64"): Likewise. | |
24382 | ("*zero_extendsidi2_insn_sp64"): Likewise. | |
24383 | ("*sign_extendsidi2_insn"): Likewise. | |
24384 | ("*mov<VM32:mode>_insn"): Likewise. | |
24385 | ("*mov<VM64:mode>_insn_sp64"): Likewise. | |
24386 | ("*mov<VM64:mode>_insn_sp32"): Likewise. | |
24387 | ("<plusminus_insn><VADDSUB:mode>3"): Likewise. | |
24388 | ("<vlop:code><VL:mode>3"): Likewise. | |
24389 | ("*not_<vlop:code><VL:mode>3"): Likewise. | |
24390 | ("*nand<VL:mode>_vis"): Likewise. | |
24391 | ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise. | |
24392 | ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise. | |
24393 | ("one_cmpl<VL:mode>2"): Likewise. | |
24394 | ("faligndata<VM64:mode>_vis"): Likewise. | |
24395 | ("alignaddrsi_vis"): Likewise. | |
24396 | ("alignaddrdi_vis"): Likweise. | |
24397 | ("alignaddrlsi_vis"): Likewise. | |
24398 | ("alignaddrldi_vis"): Likewise. | |
24399 | ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise. | |
24400 | ("bmaskdi_vis"): Likewise. | |
24401 | ("bmasksi_vis"): Likewise. | |
24402 | ("bshuffle<VM64:mode>_vis"): Likewise. | |
24403 | ("cmask8<P:mode>_vis"): Likewise. | |
24404 | ("cmask16<P:mode>_vis"): Likewise. | |
24405 | ("cmask32<P:mode>_vis"): Likewise. | |
24406 | ("pdistn<P:mode>_vis"): Likewise. | |
24407 | ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise. | |
24408 | ||
24409 | 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> | |
24410 | ||
24411 | * config/sparc/sparc.md ("subtype"): New insn attribute. | |
24412 | ("*wrgsr_sp64"): Set insn subtype. | |
24413 | ("*rdgsr_sp64"): Likewise. | |
24414 | ("alignaddrsi_vis"): Likewise. | |
24415 | ("alignaddrdi_vis"): Likewise. | |
24416 | ("alignaddrlsi_vis"): Likewise. | |
24417 | ("alignaddrldi_vis"): Likewise. | |
24418 | ("<plusminus_insn><VADDSUB:mode>3"): Likewise. | |
24419 | ("fexpand_vis"): Likewise. | |
24420 | ("fpmerge_vis"): Likewise. | |
24421 | ("faligndata<VM64:mode>_vis"): Likewise. | |
24422 | ("bshuffle<VM64:mode>_vis"): Likewise. | |
24423 | ("cmask8<P:mode>_vis"): Likewise. | |
24424 | ("cmask16<P:mode>_vis"): Likewise. | |
24425 | ("cmask32<P:mode>_vis"): Likewise. | |
24426 | ("fchksm16_vis"): Likewise. | |
24427 | ("v<vis3_shift_patname><GCM:mode>3"): Likewise. | |
24428 | ("fmean16_vis"): Likewise. | |
24429 | ("fp<plusminus_insn>64_vis"): Likewise. | |
24430 | ("<plusminus_insn>v8qi3"): Likewise. | |
24431 | ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise. | |
24432 | ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise. | |
24433 | ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise. | |
24434 | ("<vis3_addsub_ss_patname>v8qi3"): Likewise. | |
24435 | ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise. | |
24436 | ("*movqi_insn"): Likewise. | |
24437 | ("*movhi_insn"): Likewise. | |
24438 | ("*movsi_insn"): Likewise. | |
24439 | ("movsi_pic_gotdata_op"): Likewise. | |
24440 | ("*movdi_insn_sp32"): Likewise. | |
24441 | ("*movdi_insn_sp64"): Likewise. | |
24442 | ("movdi_pic_gotdata_op"): Likewise. | |
24443 | ("*movsf_insn"): Likewise. | |
24444 | ("*movdf_insn_sp32"): Likewise. | |
24445 | ("*movdf_insn_sp64"): Likewise. | |
24446 | ("*zero_extendhisi2_insn"): Likewise. | |
24447 | ("*zero_extendqihi2_insn"): Likewise. | |
24448 | ("*zero_extendqisi2_insn"): Likewise. | |
24449 | ("*zero_extendqidi2_insn"): Likewise. | |
24450 | ("*zero_extendhidi2_insn"): Likewise. | |
24451 | ("*zero_extendsidi2_insn_sp64"): Likewise. | |
24452 | ("ldfsr"): Likewise. | |
24453 | ("prefetch_64"): Likewise. | |
24454 | ("prefetch_32"): Likewise. | |
24455 | ("tie_ld32"): Likewise. | |
24456 | ("tie_ld64"): Likewise. | |
24457 | ("*tldo_ldub_sp32"): Likewise. | |
24458 | ("*tldo_ldub1_sp32"): Likewise. | |
24459 | ("*tldo_ldub2_sp32"): Likewise. | |
24460 | ("*tldo_ldub_sp64"): Likewise. | |
24461 | ("*tldo_ldub1_sp64"): Likewise. | |
24462 | ("*tldo_ldub2_sp64"): Likewise. | |
24463 | ("*tldo_ldub3_sp64"): Likewise. | |
24464 | ("*tldo_lduh_sp32"): Likewise. | |
24465 | ("*tldo_lduh1_sp32"): Likewise. | |
24466 | ("*tldo_lduh_sp64"): Likewise. | |
24467 | ("*tldo_lduh1_sp64"): Likewise. | |
24468 | ("*tldo_lduh2_sp64"): Likewise. | |
24469 | ("*tldo_lduw_sp32"): Likewise. | |
24470 | ("*tldo_lduw_sp64"): Likewise. | |
24471 | ("*tldo_lduw1_sp64"): Likewise. | |
24472 | ("*tldo_ldx_sp64"): Likewise. | |
24473 | ("*mov<VM32:mode>_insn"): Likewise. | |
24474 | ("*mov<VM64:mode>_insn_sp64"): Likewise. | |
24475 | ("*mov<VM64:mode>_insn_sp32"): Likewise. | |
24476 | ||
24477 | 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> | |
24478 | ||
24479 | * config/sparc/sparc.md ("type"): New insn type viscmp. | |
24480 | ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to | |
24481 | viscmp. | |
24482 | ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise. | |
24483 | ("fucmp<gcond:code>8<P:mode>_vis"): Likewise. | |
24484 | ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise. | |
24485 | * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle | |
24486 | viscmp. | |
24487 | ("n7_vis_logical_11cycle"): Likewise. | |
24488 | * config/sparc/niagara4.md ("n4_vis_logical"): Likewise. | |
24489 | * config/sparc/niagara2.md ("niag3_vis": Likewise. | |
24490 | * config/sparc/niagara.md ("niag_vis"): Likewise. | |
24491 | * config/sparc/ultra3.md ("us3_fga"): Likewise. | |
24492 | * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise. | |
24493 | ||
24494 | 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com> | |
24495 | ||
24496 | * config/sparc/sparc.md: New instruction type `bmask'. | |
24497 | (bmaskdi_vis): Use the `bmask' type. | |
24498 | (bmasksi_vis): Likewise. | |
24499 | * config/sparc/ultra3.md (us3_array): Likewise. | |
24500 | * config/sparc/niagara7.md (n7_array): Likewise. | |
24501 | * config/sparc/niagara4.md (n4_array): Likewise. | |
24502 | * config/sparc/niagara2.md (niag2_vis): Likewise. | |
24503 | (niag3_vis): Likewise. | |
24504 | * config/sparc/niagara.md (niag_vis): Likewise. | |
24505 | ||
24506 | 2017-07-06 Jan Hubicka <hubicka@ucw.cz> | |
24507 | ||
24508 | * ipa-comdats.c: Remove optimize check from gate. | |
24509 | * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary | |
24510 | for functions not optimized. | |
24511 | (ipa_fn_summary_read): Skip optimize check. | |
24512 | (ipa_fn_summary_write): Likewise. | |
24513 | * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller | |
24514 | is optimized. | |
24515 | * ipa-inline.c (can_inline_edge_p): Not optimized functions are | |
24516 | uninlinable. | |
24517 | (can_inline_edge_p): Check flag_pcc_struct_return for match. | |
24518 | (check_callers): Give up on caller which is not optimized. | |
24519 | (inline_small_functions): Likewise. | |
24520 | (ipa_inline): Do not give up when not optimizing. | |
24521 | * ipa-visbility.c (function_and_variable_visibility): Do not optimize | |
24522 | away unoptimizes cdtors. | |
24523 | (whole_program_function_and_variable_visibility): Do | |
24524 | ipa_discover_readonly_nonaddressable_vars in LTO mode. | |
24525 | * ipa.c (process_references): Do not check optimize. | |
24526 | (symbol_table::remove_unreachable_nodes): Update optimize check. | |
24527 | (set_writeonly_bit): Update optimize check. | |
24528 | (pass_ipa_cdtor_merge::gate): Do not check optimize. | |
24529 | (pass_ipa_single_use::gate): Remove. | |
24530 | ||
24531 | 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
24532 | ||
24533 | * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p, | |
24534 | insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p, | |
24535 | rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps, | |
24536 | mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index, | |
24537 | permute_load, permute_store, adjust_extract, adjust_splat, | |
24538 | adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables, | |
24539 | replace_swap_with_copy, dump_swap_insn_table, | |
24540 | alignment_with_canonical_addr, alignment_mask, find_alignment_op, | |
24541 | recombine_lvx_pattern, recombine_stvx_pattern, | |
24542 | recombine_lvx_stvx_patterns, rs6000_analyze_swaps, | |
24543 | make_pass_analyze_swaps): Move all code related to p8 swap optimizations | |
24544 | to file rs6000-p8swap.c. | |
24545 | * config/rs6000/rs6000-p8swap.c: New file. | |
24546 | * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o. | |
24547 | * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-* | |
24548 | and rs6000*-*-* targets. | |
24549 | ||
24550 | 2017-07-06 David Malcolm <dmalcolm@redhat.com> | |
24551 | ||
24552 | * Makefile.in (selftest): Remove dependency on s-selftest-c++. | |
24553 | ||
24554 | 2017-07-06 Jan Hubicka <hubicka@ucw.cz> | |
24555 | ||
24556 | * lto-wrapper.c (merge_and_complain): Do not merge | |
24557 | fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno, | |
24558 | fsigned_zeros, ftrapping_math, fwrapv. | |
24559 | (append_compiler_options): Do not track these options. | |
24560 | (append_linker_options): Likewie | |
24561 | ||
24562 | 2017-07-06 Jan Hubicka <hubicka@ucw.cz> | |
24563 | ||
24564 | * cgraphunit.c (cgraph_node::finalize_function): When | |
24565 | !flag_toplevel_reorde set no_reorder flag. | |
24566 | (varpool_node::finalize_decl): Likewise. | |
24567 | (symbol_table::compile): Drop no toplevel reorder path. | |
24568 | ||
24569 | 2017-07-06 Jan Hubicka <hubicka@ucw.cz> | |
24570 | ||
24571 | * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh | |
24572 | edges; zero probability is not better than uninitialized. | |
24573 | ||
24574 | 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com> | |
24575 | ||
24576 | * asan.h (asan_sanitize_allocas_p): Declare. | |
24577 | * asan.c (asan_sanitize_allocas_p): New function. | |
24578 | (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p. | |
24579 | (handle_builtin_alloca): Likewise. | |
24580 | * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff | |
24581 | if !asan_sanitize_allocas_p. | |
24582 | * params.def (asan-instrument-allocas): Add new option. | |
24583 | * params.h (ASAN_PROTECT_ALLOCAS): Define. | |
24584 | * opts.c (common_handle_option): Disable allocas sanitization for | |
24585 | KASan by default. | |
24586 | ||
24587 | 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com> | |
24588 | ||
24589 | * asan.c: Include gimple-fold.h. | |
24590 | (get_last_alloca_addr): New function. | |
24591 | (handle_builtin_stackrestore): Likewise. | |
24592 | (handle_builtin_alloca): Likewise. | |
24593 | (asan_emit_allocas_unpoison): Likewise. | |
24594 | (get_mem_refs_of_builtin_call): Add new parameter, remove const | |
24595 | quallifier from first paramerer. Handle BUILT_IN_ALLOCA, | |
24596 | BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins. | |
24597 | (instrument_builtin_call): Pass gimple iterator to | |
24598 | get_mem_refs_of_builtin_call. | |
24599 | (last_alloca_addr): New global. | |
24600 | * asan.h (asan_emit_allocas_unpoison): Declare. | |
24601 | * builtins.c (expand_asan_emit_allocas_unpoison): New function. | |
24602 | (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON. | |
24603 | * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison | |
24604 | if function calls alloca. | |
24605 | * gimple-fold.c (replace_call_with_value): Remove static keyword. | |
24606 | * gimple-fold.h (replace_call_with_value): Declare. | |
24607 | * internal-fn.c: Include asan.h. | |
24608 | * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON, | |
24609 | BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins. | |
24610 | ||
24611 | 2017-07-06 David Malcolm <dmalcolm@redhat.com> | |
24612 | ||
24613 | * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to... | |
24614 | (C_SELFTEST_FLAGS): New. | |
24615 | (CPP_SELFTEST_FLAGS): New. | |
24616 | (SELFTEST_DEPS): New, from deps of s-selftest. | |
24617 | (C_SELFTEST_DEPS): New, from deps of s-selftest. | |
24618 | (CPP_SELFTEST_DEPS): New. | |
24619 | (selftest): Add dependency on s-selftest-c++. | |
24620 | (s-selftest): Rename to... | |
24621 | (s-selftest-c): ...this, moving deps to SELFTEST_DEPS | |
24622 | and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather | |
24623 | than SELFTEST_FLAGS. | |
24624 | (selftest-gdb): Rename to... | |
24625 | (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and | |
24626 | C_SELFTEST_FLAGS. | |
24627 | (selftest-gdb): Reintroduce as an alias for selftest-c-gdb. | |
24628 | (selftest-valgrind): Rename to... | |
24629 | (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and | |
24630 | C_SELFTEST_FLAGS. | |
24631 | (selftest-valgrind): Reintroduce as an alias for | |
24632 | selftest-c-valgrind. | |
24633 | (s-selftest-c++): New. | |
24634 | (selftest-c++-gdb): New. | |
24635 | (selftest-c++-valgrind): New. | |
24636 | ||
24637 | 2017-07-06 Olivier Hainque <hainque@adacore.com> | |
24638 | ||
24639 | * gcc.c (process_command): When deciding if undefined variables | |
24640 | should be ignored when processing specs, accept "gcc -v" as well. | |
24641 | ||
24642 | 2017-07-06 Jan Hubicka <hubicka@ucw.cz> | |
24643 | ||
24644 | * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge, | |
24645 | afdo_annotate_cfg): Set counts/probabilities as determined by afdo. | |
24646 | ||
24647 | 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
24648 | ||
24649 | * config/arm/arm-cpus.in (armv8-r): Add new entry. | |
24650 | * config/arm/arm-isa.h (ISA_ARMv8r): Define macro. | |
24651 | * config/arm/arm-tables.opt: Regenerate. | |
24652 | * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R | |
24653 | enumerator. | |
24654 | * doc/invoke.texi: Mention -march=armv8-r and its extensions. | |
24655 | ||
24656 | 2017-07-06 Carl Love <cel@us.ibm.com> | |
24657 | ||
24658 | * ChangeLog: Clean up from mid air collision | |
24659 | ||
24660 | 2017-07-06 Carl Love <cel@us.ibm.com> | |
24661 | ||
24662 | * config/rs6000/rs6000-c.c: Add support for built-in functions | |
24663 | vector signed int vec_subc (vector signed int, vector signed int); | |
24664 | vector signed __int128 vec_subc (vector signed __int128, | |
24665 | vector signed __int128); | |
24666 | vector unsigned __int128 vec_subc (vector unsigned __int128, | |
24667 | vector unsigned __int128); | |
24668 | vector signed int vec_sube (vector signed int, vector signed int, | |
24669 | vector signed int); | |
24670 | vector unsigned int vec_sube (vector unsigned int, | |
24671 | vector unsigned int, | |
24672 | vector unsigned int); | |
24673 | vector signed __int128 vec_sube (vector signed __int128, | |
24674 | vector signed __int128, | |
24675 | vector signed__int128); | |
24676 | vector unsigned __int128 vec_sube (vector unsigned __int128, | |
24677 | vector unsigned __int128, | |
24678 | vector unsigned __int128); | |
24679 | vector signed int vec_subec (vector signed int, vector signed int, | |
24680 | vector signed int); | |
24681 | vector unsigned int vec_subec (vector unsigned int, | |
24682 | vector unsigned int, | |
24683 | vector unsigned int); | |
24684 | vector signed __int128 vec_subec (vector signed __int128, | |
24685 | vector signed __int128, | |
24686 | vector signed__int128); | |
24687 | vector unsigned __int128 vec_subec (vector unsigned __int128, | |
24688 | vector unsigned __int128, | |
24689 | vector unsigned __int128); | |
24690 | * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE, | |
24691 | ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins. | |
24692 | * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add | |
24693 | BU_ALTIVEC_OVERLOAD_X definitions. | |
24694 | * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines. | |
24695 | * doc/extend.texi: Update the built-in documentation file for the new | |
24696 | built-in functions. | |
24697 | ||
24698 | 2017-07-06 David Malcolm <dmalcolm@redhat.com> | |
24699 | ||
24700 | PR c++/79300 | |
24701 | * diagnostic-show-locus.c (layout::layout): Use start and finish | |
24702 | spelling location for the start and finish of each range. | |
24703 | * genmatch.c (linemap_client_expand_location_to_spelling_point): | |
24704 | Add unused aspect param. | |
24705 | * input.c (expand_location_1): Add "aspect" param, and use it | |
24706 | to access the correct part of the location. | |
24707 | (expand_location): Pass LOCATION_ASPECT_CARET to new param of | |
24708 | expand_location_1. | |
24709 | (expand_location_to_spelling_point): Likewise. | |
24710 | (linemap_client_expand_location_to_spelling_point): Add "aspect" | |
24711 | param, and pass it to expand_location_1. | |
24712 | ||
24713 | 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com> | |
24714 | ||
24715 | * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss, | |
24716 | _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd, | |
24717 | _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd, | |
24718 | _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss, | |
24719 | _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss, | |
24720 | _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd, | |
24721 | _mm_maskz_getmant_sd, _mm_mask_getmant_ss, | |
24722 | _mm_maskz_getmant_ss): New intrinsics. | |
24723 | (__builtin_ia32_getexpss128_mask): Changed to ... | |
24724 | __builtin_ia32_getexpss128_round ... this. | |
24725 | (__builtin_ia32_getexpsd128_mask): Changed to ... | |
24726 | __builtin_ia32_getexpsd128_round ... this. | |
24727 | * config/i386/i386-builtin-types.def | |
24728 | ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT), | |
24729 | (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases. | |
24730 | * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round, | |
24731 | __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round, | |
24732 | __builtin_ia32_getmantss_mask_round): New builtins. | |
24733 | * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT, | |
24734 | V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types. | |
24735 | (CODE_FOR_avx512f_vgetmantv2df_mask_round, | |
24736 | CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases. | |
24737 | * config/i386/sse.md | |
24738 | (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ... | |
24739 | avx512f_sgetexp<mode><mask_scalar_name> | |
24740 | <round_saeonly_scalar_name> ... this. | |
24741 | (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0| | |
24742 | %0, %1, %2<round_saeonly_op3>}): Changed to ... | |
24743 | vgetexp<ssescalarmodesuffix> | |
24744 | \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| | |
24745 | %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this. | |
24746 | (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ... | |
24747 | avx512f_vgetmant<mode><mask_scalar_name> | |
24748 | <round_saeonly_scalar_name> ... this. | |
24749 | (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0| | |
24750 | %0, %1, %2<round_saeonly_op4>, %3}): Changed to ... | |
24751 | vgetmant<ssescalarmodesuffix> | |
24752 | \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>| | |
24753 | %0<mask_scalar_operand4>, %1, %2 | |
24754 | <round_saeonly_scalar_mask_op4>, %3} ... this. | |
24755 | * config/i386/subst.md (mask_scalar_operand4, | |
24756 | round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4, | |
24757 | round_saeonly_scalar_nimm_predicate): New subst attributes. | |
24758 | ||
24759 | 2017-07-06 Julia Koval <julia.koval@intel.com> | |
24760 | ||
24761 | * config/i386/i386.c (ix86_erase_embedded_rounding): | |
24762 | Remove code for old rounding pattern. | |
24763 | ||
24764 | 2017-07-06 Richard Earnshaw <rearnsha@arm.com> | |
24765 | ||
24766 | * config/arm/t-arm (GTM_H): Add arm-cpu.h. | |
24767 | ||
24768 | 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org> | |
24769 | ||
24770 | * doc/sourcebuild.texi (Test Directives, Variants of | |
24771 | dg-require-support): Add documentation for dg-require-stack-check. | |
24772 | ||
24773 | 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com> | |
24774 | ||
24775 | * config/i386/subst.md (mask_scalar, round_scalar, | |
24776 | round_saeonly_scalar): New meta-templates. | |
24777 | (mask_scalar_name, mask_scalar_operand3, round_scalar_name, | |
24778 | round_scalar_mask_operand3, round_scalar_mask_op3, | |
24779 | round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name, | |
24780 | round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3, | |
24781 | round_saeonly_scalar_constraint, | |
24782 | round_saeonly_scalar_prefix): New subst attribute. | |
24783 | * config/i386/sse.md | |
24784 | (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ... | |
24785 | <sse>_vm<plusminus_insn><mode>3<mask_scalar_name> | |
24786 | <round_scalar_name> ... this. | |
24787 | (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ... | |
24788 | <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name> | |
24789 | <round_scalar_name> ... this. | |
24790 | (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ... | |
24791 | <sse>_vm<code><mode>3<mask_scalar_name> | |
24792 | <round_saeonly_scalar_name> ... this. | |
24793 | (v<plusminus_mnemonic><ssescalarmodesuffix> | |
24794 | \t{<round_mask_op3>%2, %1, %0<mask_operand3>| | |
24795 | %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... | |
24796 | v<plusminus_mnemonic><ssescalarmodesuffix> | |
24797 | \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| | |
24798 | %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. | |
24799 | (v<multdiv_mnemonic><ssescalarmodesuffix> | |
24800 | \t{<round_mask_op3>%2, %1, %0<mask_operand3>| | |
24801 | %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ... | |
24802 | v<multdiv_mnemonic><ssescalarmodesuffix> | |
24803 | \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| | |
24804 | %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this. | |
24805 | (v<maxmin_float><ssescalarmodesuffix> | |
24806 | \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>| | |
24807 | %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ... | |
24808 | v<maxmin_float><ssescalarmodesuffix> | |
24809 | \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>| | |
24810 | %0<mask_scalar_operand3>, %1, %<iptr>2 | |
24811 | <round_saeonly_scalar_mask_op3>} ... this. | |
24812 | ||
24813 | 2017-07-05 Richard Earnshaw <rearnsha@arm.com> | |
24814 | ||
24815 | * config/arm/arm.c (arm_fixed_condition_code_regs): New function. | |
24816 | (TARGET_FIXED_CONDITION_CODE_REGS): Redefine. | |
24817 | ||
24818 | 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org> | |
24819 | Alan Hayward <alan.hayward@arm.com> | |
24820 | David Sherwood <david.sherwood@arm.com> | |
24821 | ||
24822 | * combine.c (simplify_if_then_else): Remove "enum" before | |
24823 | "machine_mode". | |
24824 | * compare-elim.c (can_eliminate_compare): Likewise. | |
24825 | * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type): | |
24826 | Likewise. | |
24827 | (aarch64_lookup_simd_builtin_type): Likewise. | |
24828 | (aarch64_simd_builtin_type): Likewise. | |
24829 | (aarch64_init_simd_builtin_types): Likewise. | |
24830 | (aarch64_simd_expand_args): Likewise. | |
24831 | * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist): | |
24832 | Likewise. | |
24833 | (aarch64_reverse_mask): Likewise. | |
24834 | (aarch64_simd_emit_reg_reg_move): Likewise. | |
24835 | (aarch64_gen_adjusted_ldpstp): Likewise. | |
24836 | (aarch64_ccmp_mode_to_code): Likewise. | |
24837 | (aarch64_operands_ok_for_ldpstp): Likewise. | |
24838 | (aarch64_operands_adjust_ok_for_ldpstp): Likewise. | |
24839 | * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): | |
24840 | Likewise. | |
24841 | (aarch64_min_divisions_for_recip_mul): Likewise. | |
24842 | (aarch64_reassociation_width): Likewise. | |
24843 | (aarch64_get_condition_code_1): Likewise. | |
24844 | (aarch64_simd_emit_reg_reg_move): Likewise. | |
24845 | (aarch64_simd_attr_length_rglist): Likewise. | |
24846 | (aarch64_reverse_mask): Likewise. | |
24847 | (aarch64_operands_ok_for_ldpstp): Likewise. | |
24848 | (aarch64_operands_adjust_ok_for_ldpstp): Likewise. | |
24849 | (aarch64_gen_adjusted_ldpstp): Likewise. | |
24850 | * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename): | |
24851 | Likewise. | |
24852 | * config/arc/arc.c (legitimate_offset_address_p): Likewise. | |
24853 | * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise. | |
24854 | (arm_lookup_simd_builtin_type): Likewise. | |
24855 | (arm_simd_builtin_type): Likewise. | |
24856 | (arm_init_simd_builtin_types): Likewise. | |
24857 | (arm_expand_builtin_args): Likewise. | |
24858 | * config/arm/arm-protos.h (arm_expand_builtin): Likewise. | |
24859 | * config/ft32/ft32.c (ft32_libcall_value): Likewise. | |
24860 | (ft32_setup_incoming_varargs): Likewise. | |
24861 | (ft32_function_arg): Likewise. | |
24862 | (ft32_function_arg_advance): Likewise. | |
24863 | (ft32_pass_by_reference): Likewise. | |
24864 | (ft32_arg_partial_bytes): Likewise. | |
24865 | (ft32_valid_pointer_mode): Likewise. | |
24866 | (ft32_addr_space_pointer_mode): Likewise. | |
24867 | (ft32_addr_space_legitimate_address_p): Likewise. | |
24868 | * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): | |
24869 | Likewise. | |
24870 | * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. | |
24871 | (ix86_emit_outlined_ms2sysv_restore): Likewise. | |
24872 | (iamcu_alignment): Likewise. | |
24873 | (canonicalize_vector_int_perm): Likewise. | |
24874 | (ix86_noce_conversion_profitable_p): Likewise. | |
24875 | (ix86_mpx_bound_mode): Likewise. | |
24876 | (ix86_operands_ok_for_move_multiple): Likewise. | |
24877 | * config/microblaze/microblaze-protos.h | |
24878 | (microblaze_expand_conditional_branch_reg): Likewise. | |
24879 | * config/microblaze/microblaze.c | |
24880 | (microblaze_expand_conditional_branch_reg): Likewise. | |
24881 | * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok): | |
24882 | Likewise. | |
24883 | (rs6000_reassociation_width): Likewise. | |
24884 | (rs6000_invalid_binary_op): Likewise. | |
24885 | (fusion_p9_p): Likewise. | |
24886 | (emit_fusion_p9_load): Likewise. | |
24887 | (emit_fusion_p9_store): Likewise. | |
24888 | * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p): | |
24889 | Likewise. | |
24890 | (riscv_hard_regno_mode_ok_p): Likewise. | |
24891 | (riscv_address_insns): Likewise. | |
24892 | (riscv_split_symbol): Likewise. | |
24893 | (riscv_legitimize_move): Likewise. | |
24894 | (riscv_function_value): Likewise. | |
24895 | (riscv_hard_regno_nregs): Likewise. | |
24896 | (riscv_expand_builtin): Likewise. | |
24897 | * config/riscv/riscv.c (riscv_build_integer_1): Likewise. | |
24898 | (riscv_build_integer): Likewise. | |
24899 | (riscv_split_integer): Likewise. | |
24900 | (riscv_legitimate_constant_p): Likewise. | |
24901 | (riscv_cannot_force_const_mem): Likewise. | |
24902 | (riscv_regno_mode_ok_for_base_p): Likewise. | |
24903 | (riscv_valid_base_register_p): Likewise. | |
24904 | (riscv_valid_offset_p): Likewise. | |
24905 | (riscv_valid_lo_sum_p): Likewise. | |
24906 | (riscv_classify_address): Likewise. | |
24907 | (riscv_legitimate_address_p): Likewise. | |
24908 | (riscv_address_insns): Likewise. | |
24909 | (riscv_load_store_insns): Likewise. | |
24910 | (riscv_force_binary): Likewise. | |
24911 | (riscv_split_symbol): Likewise. | |
24912 | (riscv_force_address): Likewise. | |
24913 | (riscv_legitimize_address): Likewise. | |
24914 | (riscv_move_integer): Likewise. | |
24915 | (riscv_legitimize_const_move): Likewise. | |
24916 | (riscv_legitimize_move): Likewise. | |
24917 | (riscv_address_cost): Likewise. | |
24918 | (riscv_subword): Likewise. | |
24919 | (riscv_output_move): Likewise. | |
24920 | (riscv_canonicalize_int_order_test): Likewise. | |
24921 | (riscv_emit_int_order_test): Likewise. | |
24922 | (riscv_function_arg_boundary): Likewise. | |
24923 | (riscv_pass_mode_in_fpr_p): Likewise. | |
24924 | (riscv_pass_fpr_single): Likewise. | |
24925 | (riscv_pass_fpr_pair): Likewise. | |
24926 | (riscv_get_arg_info): Likewise. | |
24927 | (riscv_function_arg): Likewise. | |
24928 | (riscv_function_arg_advance): Likewise. | |
24929 | (riscv_arg_partial_bytes): Likewise. | |
24930 | (riscv_function_value): Likewise. | |
24931 | (riscv_pass_by_reference): Likewise. | |
24932 | (riscv_setup_incoming_varargs): Likewise. | |
24933 | (riscv_print_operand): Likewise. | |
24934 | (riscv_elf_select_rtx_section): Likewise. | |
24935 | (riscv_save_restore_reg): Likewise. | |
24936 | (riscv_for_each_saved_reg): Likewise. | |
24937 | (riscv_register_move_cost): Likewise. | |
24938 | (riscv_hard_regno_mode_ok_p): Likewise. | |
24939 | (riscv_hard_regno_nregs): Likewise. | |
24940 | (riscv_class_max_nregs): Likewise. | |
24941 | (riscv_memory_move_cost): Likewise. | |
24942 | * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise. | |
24943 | * config/rl78/rl78.c (rl78_split_movsi): Likewise. | |
24944 | (rl78_addr_space_address_mode): Likewise. | |
24945 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
24946 | Likewise. | |
24947 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise. | |
24948 | (rs6000_reassociation_width): Likewise. | |
24949 | (rs6000_invalid_binary_op): Likewise. | |
24950 | (fusion_p9_p): Likewise. | |
24951 | (emit_fusion_p9_load): Likewise. | |
24952 | (emit_fusion_p9_store): Likewise. | |
24953 | * config/visium/visium-protos.h (prepare_move_operands): Likewise. | |
24954 | (ok_for_simple_move_operands): Likewise. | |
24955 | (ok_for_simple_move_strict_operands): Likewise. | |
24956 | (ok_for_simple_arith_logic_operands): Likewise. | |
24957 | (visium_legitimize_reload_address): Likewise. | |
24958 | (visium_select_cc_mode): Likewise. | |
24959 | (output_cbranch): Likewise. | |
24960 | (visium_split_double_move): Likewise. | |
24961 | (visium_expand_copysign): Likewise. | |
24962 | (visium_expand_int_cstore): Likewise. | |
24963 | (visium_expand_fp_cstore): Likewise. | |
24964 | * config/visium/visium.c (visium_pass_by_reference): Likewise. | |
24965 | (visium_function_arg): Likewise. | |
24966 | (visium_function_arg_advance): Likewise. | |
24967 | (visium_libcall_value): Likewise. | |
24968 | (visium_setup_incoming_varargs): Likewise. | |
24969 | (visium_legitimate_constant_p): Likewise. | |
24970 | (visium_legitimate_address_p): Likewise. | |
24971 | (visium_legitimize_address): Likewise. | |
24972 | (visium_secondary_reload): Likewise. | |
24973 | (visium_register_move_cost): Likewise. | |
24974 | (visium_memory_move_cost): Likewise. | |
24975 | (prepare_move_operands): Likewise. | |
24976 | (ok_for_simple_move_operands): Likewise. | |
24977 | (ok_for_simple_move_strict_operands): Likewise. | |
24978 | (ok_for_simple_arith_logic_operands): Likewise. | |
24979 | (visium_function_value_1): Likewise. | |
24980 | (rtx_ok_for_offset_p): Likewise. | |
24981 | (visium_legitimize_reload_address): Likewise. | |
24982 | (visium_split_double_move): Likewise. | |
24983 | (visium_expand_copysign): Likewise. | |
24984 | (visium_expand_int_cstore): Likewise. | |
24985 | (visium_expand_fp_cstore): Likewise. | |
24986 | (visium_split_cstore): Likewise. | |
24987 | (visium_select_cc_mode): Likewise. | |
24988 | (visium_split_cbranch): Likewise. | |
24989 | (output_cbranch): Likewise. | |
24990 | (visium_print_operand_address): Likewise. | |
24991 | * expmed.c (flip_storage_order): Likewise. | |
24992 | * expmed.h (emit_cstore): Likewise. | |
24993 | (flip_storage_order): Likewise. | |
24994 | * genrecog.c (validate_pattern): Likewise. | |
24995 | * hsa-gen.c (gen_hsa_addr): Likewise. | |
24996 | * internal-fn.c (expand_arith_overflow): Likewise. | |
24997 | * ira-color.c (allocno_copy_cost_saving): Likewise. | |
24998 | * lra-assigns.c (find_hard_regno_for_1): Likewise. | |
24999 | * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise. | |
25000 | (process_invariant_for_inheritance): Likewise. | |
25001 | * lra-eliminations.c (move_plus_up): Likewise. | |
25002 | * omp-low.c (lower_oacc_reductions): Likewise. | |
25003 | * simplify-rtx.c (simplify_subreg): Likewise. | |
25004 | * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise. | |
25005 | (TARGET_CHKP_BOUND_MODE): Likewise.. | |
25006 | * targhooks.c (default_chkp_bound_mode): Likewise. | |
25007 | (default_setup_incoming_vararg_bounds): Likewise. | |
25008 | * targhooks.h (default_chkp_bound_mode): Likewise. | |
25009 | (default_setup_incoming_vararg_bounds): Likewise. | |
25010 | * tree-ssa-math-opts.c (divmod_candidate_p): Likewise. | |
25011 | * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise. | |
25012 | (have_whole_vector_shift): Likewise. | |
25013 | * tree-vect-stmts.c (vectorizable_load): Likewise. | |
25014 | * doc/tm.texi: Regenerate. | |
25015 | ||
25016 | 2017-07-05 Georg-Johann Lay <avr@gjlay.de> | |
25017 | ||
25018 | Graceful degrade if Binutils PR21472 is not available. | |
25019 | ||
25020 | PR target/81072 | |
25021 | * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3 | |
25022 | .rodata in flash test fails. | |
25023 | (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes. | |
25024 | * confgure: Regenerate. | |
25025 | * config.in: Regenerate. | |
25026 | * config/avr/avr.c (avr_asm_named_section) | |
25027 | [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger | |
25028 | __do_copy_data for stuff in .rodata if flash_pm_offset = 0. | |
25029 | (avr_asm_init_sections): Same. | |
25030 | ||
25031 | 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
25032 | ||
25033 | * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?. | |
25034 | (fma<VH:mode>4_intrinsic): Likewise. | |
25035 | (*fmsub<VCVTF:mode>4): Likewise. | |
25036 | (*fmsub<VH:mode>4_intrinsic): Likewise. | |
25037 | ||
25038 | 2017-07-05 Georg-Johann Lay <avr@gjlay.de> | |
25039 | ||
25040 | PR target/81305 | |
25041 | * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]: | |
25042 | Don't depend on "optimize > 0". | |
25043 | (out_movhi_r_mr, out_movqi_mr_r): Same. | |
25044 | (out_movhi_mr_r, out_movqi_r_mr): Same. | |
25045 | (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for | |
25046 | io_address_operand on "optimize > 0". | |
25047 | ||
25048 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25049 | ||
25050 | * tree-loop-distribution.c: Add general explanantion on the pass. | |
25051 | (generate_loops_for_partition): Mark distributed loop. | |
25052 | (pg_add_dependence_edges): New parameter. Handle alias data | |
25053 | dependence specially and record it in the parameter if asked. | |
25054 | (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs. | |
25055 | (init_partition_graph_vertices, add_partition_graph_edge): New. | |
25056 | (pg_skip_alias_edge, free_partition_graph_edata_cb): New. | |
25057 | (free_partition_graph_vdata, build_partition_graph): New. | |
25058 | (sort_partitions_by_post_order, merge_dep_scc_partitions): New. | |
25059 | (pg_collect_alias_ddrs, break_alias_scc_partitions): New. | |
25060 | (data_ref_segment_size, latch_dominated_by_data_ref): New. | |
25061 | (compute_alias_check_pairs, version_loop_by_alias_check): New. | |
25062 | (version_for_distribution_p, finalize_partitions): New. | |
25063 | (distribute_loop): Handle alias data dependence specially. Factor | |
25064 | out loop fusion code as functions and call these functions. | |
25065 | ||
25066 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25067 | ||
25068 | * tree-loop-distribution.c (classify_partition): New parameter and | |
25069 | better handle reduction statement. | |
25070 | (rdg_build_partitions): Revise comment. | |
25071 | (distribute_loop): Compute statements in all partitions and pass it | |
25072 | to classify_partition. | |
25073 | ||
25074 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25075 | ||
25076 | * tree-loop-distribution.c (enum partition_type): New. | |
25077 | (struct partition): New field type. | |
25078 | (partition_merge_into): Add parameter. Update partition type. | |
25079 | (data_dep_in_cycle_p, update_type_for_merge): New functions. | |
25080 | (build_rdg_partition_for_vertex): Compute partition type. | |
25081 | (rdg_build_partitions): Dump partition type. | |
25082 | (distribute_loop): Update calls to partition_merge_into. | |
25083 | ||
25084 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25085 | ||
25086 | * tree-loop-distribution.c (struct ddr_hasher): New. | |
25087 | (ddr_hasher::hash, ::equal, get_data_dependence): New function. | |
25088 | (ddrs_table): New. | |
25089 | (classify_partition): Call get_data_dependence. | |
25090 | (pg_add_dependence_edges): Ditto. | |
25091 | (distribute_loop): Release data dependence hash table. | |
25092 | ||
25093 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25094 | ||
25095 | * tree-loop-distribution.c (ref_base_address): Delete. | |
25096 | (similar_memory_accesses): Rename ... | |
25097 | (share_memory_accesses): ... to this. Check if partitions access | |
25098 | the same memory reference. | |
25099 | (distribute_loop): Call share_memory_accesses. | |
25100 | ||
25101 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25102 | ||
25103 | * tree-loop-distribution.c (struct partition): New field recording | |
25104 | its data reference. | |
25105 | (partition_alloc, partition_free): Init and release data refs. | |
25106 | (partition_merge_into): Merge data refs. | |
25107 | (build_rdg_partition_for_vertex): Collect data refs for partition. | |
25108 | (pg_add_dependence_edges): Change parameters from vector to bitmap. | |
25109 | Update uses. | |
25110 | (distribute_loop): Remve data refs from vertice data of partition | |
25111 | graph. | |
25112 | ||
25113 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25114 | ||
25115 | * tree-loop-distribution.c (params.h): Include header file. | |
25116 | (MAX_DATAREFS_NUM, DR_INDEX): New macro. | |
25117 | (datarefs_vec): New global var. | |
25118 | (create_rdg_vertices): Use datarefs_vec directly. | |
25119 | (free_rdg): Don't free data references. | |
25120 | (build_rdg): Update use. Don't free data references. | |
25121 | (distribute_loop): Compute global variable for data references. | |
25122 | Bail out if there are too many data references. | |
25123 | ||
25124 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25125 | ||
25126 | * tree-loop-distribution.c (loop_nest): New global var. | |
25127 | (build_rdg): Use loop directly, rather than loop nest. | |
25128 | (pg_add_dependence_edges): Remove loop nest parameter. Use global | |
25129 | variable directly. | |
25130 | (distribute_loop): Compute global variable loop nest. Update use. | |
25131 | ||
25132 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25133 | ||
25134 | * tree-loop-distribution.c (enum fuse_type, fuse_message): New. | |
25135 | (partition_merge_into): New parameter. Dump reason for fusion. | |
25136 | (distribute_loop): Update use of partition_merge_into. | |
25137 | ||
25138 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25139 | ||
25140 | * tree-loop-distribution.c (bb_top_order_index): New. | |
25141 | (bb_top_order_index_size, bb_top_order_cmp): New. | |
25142 | (stmts_from_loop): Use topological order. | |
25143 | (pass_loop_distribution::execute): Compute and release topological | |
25144 | order for basic blocks. | |
25145 | ||
25146 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25147 | ||
25148 | * tree-loop-distribution.c (pass_loop_distribution::execute): Skip | |
25149 | if no loops. | |
25150 | ||
25151 | 2017-07-05 Bin Cheng <bin.cheng@arm.com> | |
25152 | ||
25153 | * cfgloop.h (struct loop): Add comment. New field orig_loop_num. | |
25154 | * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change. | |
25155 | * internal-fn.c (expand_LOOP_DIST_ALIAS): New function. | |
25156 | * internal-fn.def (LOOP_DIST_ALIAS): New. | |
25157 | * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ... | |
25158 | (fold_loop_internal_call): ... this. | |
25159 | (vect_loop_dist_alias_call): New function. | |
25160 | (set_uid_loop_bbs): Call fold_loop_internal_call. | |
25161 | (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS | |
25162 | internal calls. | |
25163 | ||
25164 | 2017-07-04 Uros Bizjak <ubizjak@gmail.com> | |
25165 | ||
25166 | PR target/81300 | |
25167 | * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes): | |
25168 | Require dead FLAGS_REG at the beginning of a peephole. | |
25169 | ||
25170 | 2017-07-04 Uros Bizjak <ubizjak@gmail.com> | |
25171 | ||
25172 | PR target/81294 | |
25173 | * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y | |
25174 | arguments in the call to __builtin_ia32_sbb_u32. | |
25175 | (_subborrow_u64): Swap _X and _Y arguments in the call to | |
25176 | __builtin_ia32_sbb_u64. | |
25177 | ||
25178 | 2017-07-04 Jakub Jelinek <jakub@redhat.com> | |
25179 | ||
25180 | PR debug/81278 | |
25181 | * tree-vrp.c (compare_assert_loc): Turn into a function template | |
25182 | with stable template parameter. Only test if a->e is NULL, | |
25183 | !a->e == !b->e has been verified already. Use e == NULL or | |
25184 | e != NULL instead of e or ! e tests. If stable is true, don't use | |
25185 | iterative_hash_expr, on the other side allow a or b or both NULL | |
25186 | and sort the NULLs last. | |
25187 | (process_assert_insertions): Sort using compare_assert_loc<false> | |
25188 | instead of compare_assert_loc, later sort using | |
25189 | compare_assert_loc<true> before calling process_assert_insertions_for | |
25190 | in a loop. Use break instead of continue once seen NULL pointer. | |
25191 | ||
25192 | 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
25193 | ||
25194 | * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM | |
25195 | Cortex-R7 and Cortex-R8 processors. | |
25196 | ||
25197 | 2017-07-04 Jan Hubicka <hubicka@ucw.cz> | |
25198 | ||
25199 | * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is | |
25200 | uninitialized while src is not. | |
25201 | ||
25202 | 2017-07-04 Richard Earnshaw <rearnsha@arm.com> | |
25203 | ||
25204 | * common/config/arm/arm-common.c: Adjust include path for | |
25205 | arm-cpu-cdata.h | |
25206 | * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h. | |
25207 | (arm-cpu.h): Create in build directory. Adjust dependency rules. | |
25208 | (arm-cpu-data.h): Likewise. | |
25209 | (arm-cpu-cdata.h): Likewise. | |
25210 | * config/arm/arm-cpu.h: Delete. | |
25211 | * config/arm/arm-cpu-cdata.h: Delete. | |
25212 | * config/arm/arm-cpu-data.h: Delete. | |
25213 | ||
25214 | 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com> | |
25215 | ||
25216 | * config/arm/arm-cpus.in (cortex-a55): New. | |
25217 | (cortex-a75): Likewise. | |
25218 | (cortex-a75.cortex-a55): Likewise. | |
25219 | * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and | |
25220 | cortex-a75. | |
25221 | * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75. | |
25222 | * config/arm/arm-cpu-cdata.h: Regenerate. | |
25223 | * config/arm/arm-cpu-data.h: Regenerate. | |
25224 | * config/arm/arm-cpu.h: Regenerate. | |
25225 | * config/arm/arm-tables.opt: Regenerate. | |
25226 | * config/arm/arm-tune.md: Regenerate. | |
25227 | ||
25228 | 2017-07-04 Jan Hubicka <hubicka@ucw.cz> | |
25229 | ||
25230 | * haifa-sched.c (sched_create_recovery_edges): Update profile. | |
25231 | ||
25232 | 2017-07-04 Jan Hubicka <hubicka@ucw.cz> | |
25233 | ||
25234 | * bb-reorder.c (better_edge_p): Fix handling of uninitialized | |
25235 | probability. | |
25236 | ||
25237 | 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org> | |
25238 | ||
25239 | PR tree-optimization/81292 | |
25240 | * tree-ssa-strlen.c (handle_builtin_strlen): When setting | |
25241 | full_string_p, also call adjust_related_strinfos if the adjustment | |
25242 | is simple, otherwise invalidate related strinfos. | |
25243 | ||
25244 | 2017-07-04 Martin Liska <mliska@suse.cz> | |
25245 | ||
25246 | PR sanitizer/81040 | |
25247 | * sanopt.c (sanitize_rewrite_addressable_params): Mark the | |
25248 | newly created variable as DECL_IGNORED_P. | |
25249 | ||
25250 | 2017-07-04 Martin Liska <mliska@suse.cz> | |
25251 | ||
25252 | PR ipa/81293 | |
25253 | * ipa-inline.c (inline_small_functions): | |
25254 | Use xstrdup_for_dump. | |
25255 | ||
25256 | 2017-07-04 Tom de Vries <tom@codesourcery.com> | |
25257 | ||
25258 | * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK. | |
25259 | ||
25260 | 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> | |
25261 | ||
25262 | PR target/81033 | |
25263 | * config/darwin.c (darwin_function_switched_text_sections): | |
25264 | Fix spaces. | |
25265 | ||
25266 | 2017-07-03 Jan Hubicka <hubicka@ucw.cz> | |
25267 | ||
25268 | * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up. | |
25269 | ||
25270 | 2017-07-03 Richard Earnshaw <rearnsha@arm.com> | |
25271 | ||
25272 | * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary. | |
25273 | ||
25274 | 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> | |
25275 | ||
25276 | * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound, | |
25277 | min_profitable_iters, and th as inclusive lower bounds. | |
25278 | Fix LOOP_VINFO_PEELING_FOR_GAPS condition. | |
25279 | (vect_estimate_min_profitable_iters): Return inclusive lower bounds | |
25280 | for min_profitable_iters and min_profitable_estimate. | |
25281 | (vect_transform_loop): Treat th as an inclusive lower bound. | |
25282 | * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. | |
25283 | ||
25284 | 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr> | |
25285 | ||
25286 | PR target/81033 | |
25287 | * config/darwin.c (darwin_function_switched_text_sections): | |
25288 | Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw | |
25289 | in two pieces, and suppress the use of buf. | |
25290 | ||
25291 | 2017-07-03 Nathan Sidwell <nathan@acm.org> | |
25292 | ||
25293 | * hash-table.h (hash_table_mod1): Fix indentation. | |
25294 | ||
25295 | 2017-07-02 Jan Hubicka <hubicka@ucw.cz> | |
25296 | ||
25297 | PR middle-end/81290 | |
25298 | * predict.c (force_edge_cold): Be more careful about propagation | |
25299 | backward. | |
25300 | * profile-count.h (profile_probability::guessed, | |
25301 | profile_probability::fdo, profile_count::guessed, profile_count::fdo): | |
25302 | New. | |
25303 | * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed. | |
25304 | ||
25305 | 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com> | |
25306 | ||
25307 | * doc/invoke.texi (rcpc architecture extension): Document it. | |
25308 | ||
25309 | 2017-07-03 Richard Biener <rguenther@suse.de> | |
25310 | ||
25311 | PR tree-optimization/60510 | |
25312 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in | |
25313 | the scalar reduction PHI and use it. | |
25314 | (vectorizable_reduction): Properly guard the single_defuse_cycle | |
25315 | path for non-SLP reduction chains where we cannot use it. | |
25316 | Rework reduc_def/index and vector type deduction. Rework | |
25317 | vector operand gathering during reduction op code-gen. | |
25318 | * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction | |
25319 | chains dissolve the chain and leave it to non-SLP reduction | |
25320 | handling. | |
25321 | ||
25322 | 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> | |
25323 | ||
25324 | * tree-data-ref.h (dr_alignment): Declare. | |
25325 | * tree-data-ref.c (dr_alignment): New function. | |
25326 | * tree-vectorizer.h (dataref_aux): Remove base_element_aligned. | |
25327 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't | |
25328 | set it. | |
25329 | * tree-vect-stmts.c (vectorizable_store): Use dr_alignment. | |
25330 | ||
25331 | 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> | |
25332 | ||
25333 | * tree-data-ref.h (innermost_loop_behavior): Add base_alignment | |
25334 | and base_misalignment fields. | |
25335 | (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros. | |
25336 | * tree-data-ref.c: Include builtins.h. | |
25337 | (dr_analyze_innermost): Set up the new innmost_loop_behavior fields. | |
25338 | * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro. | |
25339 | (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise. | |
25340 | * tree-vect-data-refs.c: Include tree-cfg.h. | |
25341 | (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior | |
25342 | fields instead of calculating an alignment here. | |
25343 | (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new | |
25344 | innermost_loop_behavior fields. | |
25345 | ||
25346 | 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> | |
25347 | ||
25348 | * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment | |
25349 | field. | |
25350 | (DR_STEP_ALIGNMENT): New macro. | |
25351 | * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise. | |
25352 | * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment. | |
25353 | (create_data_ref): Print it. | |
25354 | * tree-vect-stmts.c (vectorizable_load): Use the step alignment | |
25355 | to tell whether the step preserves vector (mis)alignment. | |
25356 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. | |
25357 | Move the check for an integer step and generalise to all INTEGER_CST. | |
25358 | (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP. | |
25359 | Print the outer step alignment. | |
25360 | ||
25361 | 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> | |
25362 | ||
25363 | * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to | |
25364 | with offset_alignment. | |
25365 | (DR_ALIGNED_TO): Delete. | |
25366 | (DR_OFFSET_ALIGNMENT): New macro. | |
25367 | * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete. | |
25368 | (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro. | |
25369 | * tree-data-ref.c (dr_analyze_innermost): Update after above changes. | |
25370 | (create_data_ref): Likewise. | |
25371 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise. | |
25372 | (vect_analyze_data_refs): Likewise. | |
25373 | * tree-if-conv.c (if_convertible_loop_p_1): Use memset before | |
25374 | creating dummy innermost behavior. | |
25375 | ||
25376 | 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> | |
25377 | ||
25378 | * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument | |
25379 | with a "innermost_loop_behavior *" and refeence tree. | |
25380 | * tree-data-ref.c (dr_analyze_innermost): Likewise. | |
25381 | (create_data_ref): Update call accordingly. | |
25382 | * tree-predcom.c (find_looparound_phi): Likewise. | |
25383 | ||
25384 | 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> | |
25385 | ||
25386 | * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_* | |
25387 | fields with dr_wrt_vec_loop. | |
25388 | (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET) | |
25389 | (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly. | |
25390 | (STMT_VINFO_DR_WRT_VEC_LOOP): New macro. | |
25391 | (vect_dr_behavior): New function. | |
25392 | (vect_create_addr_base_for_vector_ref): Remove loop parameter. | |
25393 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use | |
25394 | vect_dr_behavior. Use a step_preserves_misalignment_p boolean to | |
25395 | track whether the step preserves the misalignment. | |
25396 | (vect_create_addr_base_for_vector_ref): Remove loop parameter. | |
25397 | Use vect_dr_behavior. | |
25398 | (vect_setup_realignment): Update call accordingly. | |
25399 | (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior. | |
25400 | * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update | |
25401 | call to vect_create_addr_base_for_vector_ref. | |
25402 | (vect_create_cond_for_align_checks): Likewise. | |
25403 | * tree-vect-patterns.c (vect_recog_bool_pattern): Copy | |
25404 | STMT_VINFO_DR_WRT_VEC_LOOP as a block. | |
25405 | (vect_recog_mask_conversion_pattern): Likewise. | |
25406 | * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior. | |
25407 | (new_stmt_vec_info): Remove redundant zeroing. | |
25408 | ||
25409 | 2017-07-03 Richard Earnshaw <rearnsha@arm.com> | |
25410 | ||
25411 | * common/config/arm/arm-common.c (arm_be8_option): New function. | |
25412 | * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8. | |
25413 | (ISA_ARMv6): Add isa_bit_be8. | |
25414 | * config/arm/arm.h (arm_be8_option): Add prototype. | |
25415 | (BE8_SPEC_FUNCTION): New define. | |
25416 | (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION. | |
25417 | * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian. | |
25418 | (mlittle-endian): Similarly. | |
25419 | (mbe8, mbe32): New options. | |
25420 | * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option. | |
25421 | * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32. | |
25422 | ||
25423 | 2017-07-02 Jan Hubicka <hubicka@ucw.cz> | |
25424 | ||
25425 | * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating. | |
25426 | ||
25427 | 2017-07-02 Jan Hubicka <hubicka@ucw.cz> | |
25428 | ||
25429 | * tree-cfgcleanup.c (want_merge_blocks_p): New function. | |
25430 | (cleanup_tree_cfg_bb): Use it. | |
25431 | * profile-count.h (profile_count::of_for_merging, profile_count::merge): | |
25432 | New functions. | |
25433 | * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge. | |
25434 | ||
25435 | 2017-07-02 Jan Hubicka <hubicka@ucw.cz> | |
25436 | ||
25437 | PR bootstrap/81285 | |
25438 | * loop-doloop.c (add_test): Update profile. | |
25439 | ||
25440 | 2017-07-03 Martin Liska <mliska@suse.cz> | |
25441 | ||
25442 | PR sanitize/81040 | |
25443 | * sanopt.c (rewrite_usage_of_param): New function. | |
25444 | (sanitize_rewrite_addressable_params): Likewise. | |
25445 | (pass_sanopt::execute): Call rewrite_usage_of_param. | |
25446 | ||
25447 | 2017-07-03 Richard Biener <rguenther@suse.de> | |
25448 | ||
25449 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert | |
25450 | back to using VIEW_CONVERT_EXPR. | |
25451 | ||
25452 | 2017-07-03 Martin Liska <mliska@suse.cz> | |
25453 | ||
25454 | PR other/78366 | |
25455 | * doc/extend.texi: Document when a resolver function is | |
25456 | generated for target_clones. | |
25457 | ||
25458 | 2017-07-03 Martin Liska <mliska@suse.cz> | |
25459 | ||
25460 | * asan.c (asan_emit_stack_protection): Unpoison just red zones | |
25461 | and shadow memory of auto variables which are subject of | |
25462 | use-after-scope sanitization. | |
25463 | (asan_expand_mark_ifn): Add do set only when is_poison. | |
25464 | ||
25465 | 2016-07-03 Richard Biener <rguenther@suse.de> | |
25466 | ||
25467 | * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze | |
25468 | reduction PHIs. | |
25469 | (vect_force_simple_reduction): Record reduction def -> phi mapping. | |
25470 | (vectorizable_reduction): Perform reduction PHI creation when | |
25471 | visiting a reduction PHI and adjust and simplify code generation | |
25472 | phase of the reduction op. Cache dts, use fold_binary, not fold_build2. | |
25473 | (vect_transform_loop): Visit reduction PHIs. | |
25474 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction | |
25475 | defs into the SLP tree. | |
25476 | (vect_build_slp_tree): Reduction defs terminate the recursion. | |
25477 | * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup | |
25478 | of reduction defs. | |
25479 | (vect_get_vec_defs_for_stmt_copy): Export. | |
25480 | (vect_get_vec_defs): Likewise. | |
25481 | * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def | |
25482 | purpose. | |
25483 | (vect_get_vec_defs_for_stmt_copy): Declare. | |
25484 | (vect_get_vec_defs): Likewise. | |
25485 | ||
25486 | 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org> | |
25487 | ||
25488 | * tree-data-ref.c (dr_analyze_innermost): Replace the "nest" | |
25489 | parameter with a "loop" parameter and use it instead of the | |
25490 | loop containing DR_STMT. Don't check simple_iv when doing | |
25491 | BB analysis. Describe the two analysis modes in the comment. | |
25492 | ||
25493 | 2017-07-03 Tom de Vries <tom@codesourcery.com> | |
25494 | ||
25495 | PR tree-optimization/69468 | |
25496 | * tree-ssa-tail-merge.c (ignore_edge_flags): New constant. | |
25497 | (find_same_succ_bb): Handle ignore_edge_flags. | |
25498 | ||
25499 | 2017-07-03 Tom de Vries <tom@codesourcery.com> | |
25500 | ||
25501 | PR tree-optimization/81192 | |
25502 | * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in | |
25503 | hash. | |
25504 | (same_succ::equal): Don't find bbs to be equal if bb->loop_father | |
25505 | differs. | |
25506 | (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch. | |
25507 | ||
25508 | 2017-07-03 Tom de Vries <tom@codesourcery.com> | |
25509 | ||
25510 | PR tree-optimization/81192 | |
25511 | * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle | |
25512 | BB_SAME_SUCC (bb) == NULL. | |
25513 | ||
25514 | 2017-07-02 Jan Hubicka <hubicka@ucw.cz> | |
25515 | ||
25516 | * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability | |
25517 | consistency. | |
25518 | ||
25519 | 2017-07-02 Jan Hubicka <hubicka@ucw.cz> | |
25520 | ||
25521 | * dumpfile.c: Include profile-count.h | |
25522 | * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes; | |
25523 | update profile. | |
25524 | (insert_cond_bb): Update profile. | |
25525 | * tree-cfg.h (insert_cond_bb): Update prototype. | |
25526 | * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update. | |
25527 | * tree-dump.c: Do not include tree-cfg. | |
25528 | ||
25529 | 2017-07-02 Jan Hubicka <hubicka@ucw.cz> | |
25530 | ||
25531 | * bb-reorder.c (fix_up_crossing_landing_pad): Update profile. | |
25532 | ||
25533 | 2017-07-02 Jan Hubicka <hubicka@ucw.cz> | |
25534 | ||
25535 | * expect.c (dw2_build_landing_pads): Update profile of the landing pad | |
25536 | bb. | |
25537 | ||
25538 | 2017-07-02 Jan Hubicka <hubicka@ucw.cz> | |
25539 | ||
25540 | * tree-complex.c (expand_complex_div_wide): update profile. | |
25541 | ||
25542 | 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org> | |
25543 | Alan Hayward <alan.hayward@arm.com> | |
25544 | David Sherwood <david.sherwood@arm.com> | |
25545 | ||
25546 | * Makefile.in (MACHMODE_H): Remove insn-modes.h | |
25547 | (CORETYPES_H): New define. | |
25548 | (MOSTLYCLEANFILES): Add insn-modes-inline.h. | |
25549 | (insn-modes-inline.h, s-modes-inline-h): New rules. | |
25550 | (generated_files): Add insn-modes-inline.h. | |
25551 | (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h. | |
25552 | (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise. | |
25553 | (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise. | |
25554 | (build/vec.o, build/hash-table.o, build/inchash.o): Likewise. | |
25555 | (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise. | |
25556 | (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise. | |
25557 | (build/gencodes.o, build/genconditions.o): Likewise. | |
25558 | (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise. | |
25559 | (build/genenums.o, build/genextract.o, build/genflags.o): Likewise. | |
25560 | (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o) | |
25561 | (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise. | |
25562 | (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise. | |
25563 | (build/gencfn-macros.o, build/gcov-iov.o): Likewise. | |
25564 | * coretypes.h: Include everything up to real.h for generators. | |
25565 | Include insn-modes.h first. Include wide-int-print.h after | |
25566 | wide-int.h. Include insn-modes-inline.h and then machmode.h. | |
25567 | * machmode.h: Don't include insn-modes.h here. | |
25568 | * function-tests.c: Remove includes of signop.h, machmode.h, | |
25569 | double-int.h and wide-int.h. | |
25570 | * rtl.h: Likewise. | |
25571 | * gcc-rich-location.c: Remove includes of machmode.h, double-int.h | |
25572 | and wide-int.h. | |
25573 | * optc-save-gen.awk: Likewise. | |
25574 | * gencheck.c (BITS_PER_UNIT): Delete dummy definition. | |
25575 | * godump.c: Remove include of wide-int-print.h. | |
25576 | * pretty-print.h: Likewise. | |
25577 | * wide-int-print.cc: Likewise. | |
25578 | * wide-int.cc: Likewise. | |
25579 | * hash-map-tests.c: Remove include of signop.h. | |
25580 | * hash-set-tests.c: Likewise. | |
25581 | * rtl-tests.c: Likewise. | |
25582 | * mkconfig.sh: Remove include of machmode.h. | |
25583 | * genmodes.c (emit_insn_modes_h): Split emission of inline functions | |
25584 | into... | |
25585 | (emit_insn_modes_inline_h): ...this new function. Emit the code | |
25586 | into an insn-modes-inline.h header file, adding appropriate | |
25587 | include guards and end comments. | |
25588 | (emit_insn_modes_c_header): Remove include of machmode.h. | |
25589 | (emit_min_insn_modes_c_header): Include coretypes.h rather than | |
25590 | machmode.h. | |
25591 | (main): Handle -i flag and call emit_insn_modes_inline_h when | |
25592 | it is passed. | |
25593 | ||
25594 | 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org> | |
25595 | ||
25596 | * tree-ssa-strlen.c (strinfo): Rename the length field to | |
25597 | nonzero_chars. Add a full_string_p field. | |
25598 | (compare_nonzero_chars, zero_length_string_p): New functions. | |
25599 | (get_addr_stridx): Add an offset_out parameter. | |
25600 | Use compare_nonzero_chars. | |
25601 | (get_stridx): Update accordingly. Use compare_nonzero_chars. | |
25602 | (new_strinfo): Update after above changes to strinfo. | |
25603 | (set_endptr_and_length): Set full_string_p. | |
25604 | (get_string_length): Update after above changes to strinfo. | |
25605 | (unshare_strinfo): Update call to new_strinfo. | |
25606 | (maybe_invalidate): Likewise. | |
25607 | (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT. | |
25608 | Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars | |
25609 | as a uhwi instead of an shwi. Update after above changes to | |
25610 | strinfo and new_strinfo. | |
25611 | (zero_length_string): Assert that chainsi contains full strings. | |
25612 | Use zero_length_string_p. Update call to new_strinfo. | |
25613 | (adjust_related_strinfos): Update after above changes to strinfo. | |
25614 | Copy full_string_p from origsi. | |
25615 | (adjust_last_stmt): Use zero_length_string_p. | |
25616 | (handle_builtin_strlen): Update after above changes to strinfo and | |
25617 | new_strinfo. Install the lhs as the string length if the previous | |
25618 | entry didn't describe a full string. | |
25619 | (handle_builtin_strchr): Update after above changes to strinfo | |
25620 | and new_strinfo. | |
25621 | (handle_builtin_strcpy): Likewise. | |
25622 | (handle_builtin_strcat): Likewise. | |
25623 | (handle_builtin_malloc): Likewise. | |
25624 | (handle_pointer_plus): Likewise. | |
25625 | (handle_builtin_memcpy): Likewise. Track nonzero characters | |
25626 | that aren't necessarily followed by a nul terminator. | |
25627 | (handle_char_store): Likewise. | |
25628 | ||
25629 | 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org> | |
25630 | ||
25631 | PR tree-optimization/80769 | |
25632 | * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used | |
25633 | for malloc and calloc. Document the new invariant that all related | |
25634 | strinfos have delayed lengths or none do. | |
25635 | (verify_related_strinfos): Move earlier in file. | |
25636 | (set_endptr_and_length): New function, split out from... | |
25637 | (get_string_length): ...here. Also set the lengths of related | |
25638 | strinfos. | |
25639 | (zero_length_string): Assert that chainsi has known (rather than | |
25640 | delayed) lengths. | |
25641 | (adjust_related_strinfos): Likewise. | |
25642 | ||
25643 | 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org> | |
25644 | ||
25645 | PR tree-optimization/81136 | |
25646 | * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only | |
25647 | assert that two references with the same misalignment have the same | |
25648 | compile-time misalignment if those compile-time misalignments | |
25649 | are known. | |
25650 | ||
25651 | 2017-07-01 Andi Kleen <ak@linux.intel.com> | |
25652 | ||
25653 | * print-tree.c (print_node): Print all attributes. | |
25654 | ||
25655 | 2017-07-01 Jan Hubicka <hubicka@ucw.cz> | |
25656 | ||
25657 | * cfg.c (scale_bbs_frequencies): New function. | |
25658 | * cfg.h (scale_bbs_frequencies): Declare it. | |
25659 | * cfgloopanal.c (single_likely_exit): Cleanup. | |
25660 | * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability | |
25661 | as parameter. | |
25662 | (scale_loop_profile): Likewise. | |
25663 | (loop_version): Likewise. | |
25664 | (create_empty_loop_on_edge): Update. | |
25665 | * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile, | |
25666 | scale_loop_frequencies, scale_loop_profile, loopify, | |
25667 | loop_version): Update prototypes. | |
25668 | * modulo-sched.c (sms_schedule): Update. | |
25669 | * predict.c (unlikely_executed_edge_p): Also check probability. | |
25670 | (probably_never_executed_edge_p): Fix typo. | |
25671 | * tree-if-conv.c (version_loop_for_if_conversion): Update. | |
25672 | * tree-parloops.c (gen_parallel_loop): Update. | |
25673 | * tree-ssa-loop-ivcanon.c (try_peel_loop): Update. | |
25674 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. | |
25675 | * tree-ssa-loop-split.c (split_loop): Update. | |
25676 | * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update. | |
25677 | * tree-vect-loop-manip.c (vect_do_peeling): Update. | |
25678 | (vect_loop_versioning): Update. | |
25679 | * tree-vect-loop.c (scale_profile_for_vect_loop): Update. | |
25680 | ||
25681 | 2017-07-01 Jan Hubicka <hubicka@ucw.cz> | |
25682 | ||
25683 | * trans-mem.c (split_bb_make_tm_edge): Update profile. | |
25684 | ||
25685 | 2017-07-01 Jan Hubicka <hubicka@ucw.cz> | |
25686 | ||
25687 | * tree-if-conv.c (combine_blocks): Use make_single_succ_edge | |
25688 | to keep profile consistent. | |
25689 | ||
25690 | 2017-07-01 Jan Hubicka <hubicka@ucw.cz> | |
25691 | ||
25692 | * cfgrtl.c (rtl_flow_call_edges_add): Update profile. | |
25693 | * tree-cfg.c (gimple_flow_call_edges_add): Likewise. | |
25694 | * profile-count.h (max_safe_multiplier): Make unsigned. | |
25695 | (profile_count::guessed_zero): New. | |
25696 | ||
25697 | 2017-07-01 Jan Hubicka <hubicka@ucw.cz> | |
25698 | ||
25699 | * bb-reorder.c (fix_up_crossing_landing_pad, | |
25700 | fix_crossing_conditional_branches): Use make_single_succ_edge | |
25701 | to keep profile consistent. | |
25702 | ||
25703 | 2017-07-01 Jan Hubicka <hubicka@ucw.cz> | |
25704 | ||
25705 | * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge | |
25706 | to update profile. | |
25707 | ||
25708 | 2017-07-01 Jakub Jelinek <jakub@redhat.com> | |
25709 | ||
25710 | PR sanitizer/81262 | |
25711 | * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to | |
25712 | the right scopes, make sure cond_jump isn't preserved between multiple | |
25713 | iterations. Search for fallthru edge whenever there are 3+ edges and | |
25714 | use find_fallthru_edge for it. | |
25715 | ||
25716 | 2017-06-29 Jan Hubicka <hubicka@ucw.cz> | |
25717 | ||
25718 | Patch by Alexander Monakov <amonakov@ispras.ru> | |
25719 | * sel-sched-ir.c (compute_succs_info): Handle uninitialized | |
25720 | probabilities consistently. | |
25721 | ||
25722 | 2017-06-29 Jan Hubicka <hubicka@ucw.cz> | |
25723 | ||
25724 | * pa.c (pa_expand_compare_and_swap_loop): Update call of | |
25725 | emit_cmp_and_jump_insns. | |
25726 | ||
25727 | 2017-06-29 Jan Hubicka <hubicka@ucw.cz> | |
25728 | ||
25729 | PR ipa/81261 | |
25730 | * tree-inline.c (expand_call_inline): Combine profile statuses. | |
25731 | ||
25732 | 2017-06-30 Andrew Pinski <apinski@cavium.com> | |
25733 | ||
25734 | * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if | |
25735 | fold_stmt returned true. | |
25736 | ||
25737 | 2017-06-30 Nathan Sidwell <nathan@acm.org> | |
25738 | ||
25739 | * ggc.h (empty_string): Delete. | |
25740 | * cfgexpand.c (expand_asm_stmt): Use plain "". | |
25741 | * optabs.c (expand_asm_memory_barrier): Likewise. | |
25742 | * stringpool.c (empty_string): Delete. | |
25743 | (digit_vector, digit_string): Delete. | |
25744 | (ggc_alloc_string): Use plain "", don't optimize single digit | |
25745 | strings. Use ggc_alloc_atomic. | |
25746 | ||
25747 | 2017-06-30 Richard Earnshaw <rearnsha@arm.com> | |
25748 | ||
25749 | * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one | |
25750 | comparison set and one other set, use the cost of the non-comparison | |
25751 | set. | |
25752 | ||
25753 | 2017-06-30 Nathan Sidwell <nathan@acm.org> | |
25754 | ||
25755 | * ggc.h: Replace all 'static inline' with plain 'inline'. Fix | |
25756 | some formatting. | |
25757 | ||
25758 | 2017-06-30 Peter Bergner <bergner@vnet.ibm.com> | |
25759 | ||
25760 | * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing | |
25761 | loops. Remove now unneeded calls to gimple_switch_set_label() that | |
25762 | just set removed labels to NULL_TREE. | |
25763 | ||
25764 | 2017-06-30 Aldy Hernandez <aldyh@redhat.com> | |
25765 | ||
25766 | * tree-ssanames.c (set_range_info_raw): Abstract from ... | |
25767 | (set_range_info): ...here. Only call set_range_info_raw if domain | |
25768 | is useful. | |
25769 | (set_nonzero_bits): Call set_range_info_raw. | |
25770 | * tree-ssanames.h (set_range_info_raw): New. | |
25771 | ||
25772 | 2017-06-30 Jakub Jelinek <jakub@redhat.com> | |
25773 | ||
25774 | PR target/81225 | |
25775 | * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI, | |
25776 | V16FI and VI8F_256 iterators, use <store_mask_predicate> instead | |
25777 | of nonimmediate_operand and <store_mask_constraint> instead of m | |
25778 | for the input operand. For V8FI iterator, always split if input | |
25779 | is a MEM. For V16FI and V8SF_256 iterators, don't test if both | |
25780 | operands are MEM if <mask_applied>. For VI4F_256 iterator, use | |
25781 | <store_mask_predicate> instead of register_operand and | |
25782 | <store_mask_constraint> instead of v for the input operand. Make | |
25783 | sure both operands aren't MEMs for if not <mask_applied>. | |
25784 | ||
25785 | 2017-06-30 Sylvestre Ledru <sylvestre@debian.org> | |
25786 | ||
25787 | * lto-wrapper.c (copy_file) Close both file descriptors before | |
25788 | exiting normally. | |
25789 | ||
25790 | 2017-06-30 Martin Liska <mliska@suse.cz> | |
25791 | ||
25792 | PR ipa/81214 | |
25793 | * multiple_target.c (create_dispatcher_calls): Make ifunc | |
25794 | also for function that don't have calls or are not referenced. | |
25795 | ||
25796 | 2017-06-30 Richard Biener <rguenther@suse.de> | |
25797 | ||
25798 | * tree-vect-slp.c (vect_slp_analyze_node_operations): Only | |
25799 | analyze the first scalar stmt. Move vector type computation | |
25800 | for the BB case here from ... | |
25801 | * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard | |
25802 | live operation processing in the SLP case properly. | |
25803 | ||
25804 | 2017-06-30 Richard Biener <rguenther@suse.de> | |
25805 | ||
25806 | * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax. | |
25807 | ||
25808 | 2017-06-30 Martin Liska <mliska@suse.cz> | |
25809 | ||
25810 | PR sanitizer/81021 | |
25811 | * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN | |
25812 | before BUILT_IN_UNWIND_RESUME when ASAN is used. | |
25813 | ||
25814 | 2017-06-30 Yvan Roux <yvan.roux@linaro.org> | |
25815 | ||
25816 | * doc/invoke.texi (AArch64): Add missing options and remove redundant | |
25817 | ones. | |
25818 | ||
25819 | 2017-06-30 Richard Biener <rguenther@suse.de> | |
25820 | ||
25821 | PR tree-optimization/81249 | |
25822 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert | |
25823 | condition reduction result to original scalar type. | |
25824 | ||
25825 | 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
25826 | ||
25827 | * profile-count.h (enum profile_quality): Fix typos and whitespace | |
25828 | issues. | |
25829 | ||
25830 | 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
25831 | ||
25832 | * config/s390/s390.c (s390_expand_setmem): Adjust to the new data | |
25833 | type for branch probabilities. | |
25834 | ||
25835 | 2017-06-29 Julian Brown <julian@codesourcery.com> | |
25836 | Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
25837 | ||
25838 | * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry. | |
25839 | * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type. | |
25840 | (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag. | |
25841 | (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH. | |
25842 | ||
25843 | 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
25844 | ||
25845 | * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the | |
25846 | check for CC usage into AARCH64_FUSE_CMP_BRANCH. | |
25847 | * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for | |
25848 | CC usage from generic code to here. | |
25849 | * sched-deps.c (sched_macro_fuse_insns): Move the condition for | |
25850 | CC usage into the target macros. | |
25851 | ||
25852 | 2017-06-29 Maya Rashish <coypu@sdf.org> | |
25853 | ||
25854 | * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared | |
25855 | objects. | |
25856 | ||
25857 | 2017-06-29 Jan Hubicka <hubicka@ucw.cz> | |
25858 | ||
25859 | * arm/arm-builtins.c: Include profile-count.h | |
25860 | * except.c (sjlj_emit_function_enter): Use | |
25861 | profile_probability::unlikely. | |
25862 | ||
25863 | 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
25864 | ||
25865 | * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base | |
25866 | and tocrel_offset be pointer args rather than implicitly using | |
25867 | static versions. | |
25868 | (legitimate_constant_pool_address_p, rs6000_emit_move, | |
25869 | const_load_sequence_p, adjust_vperm): Add local tocrel_base and | |
25870 | tocrel_offset and use in toc_relative_expr_p call. | |
25871 | (print_operand, print_operand_address): Use static tocrel_base_oac | |
25872 | and tocrel_offset_oac. | |
25873 | (rs6000_output_addr_const_extra): Use static tocrel_base_oac and | |
25874 | tocrel_offset_oac. | |
25875 | ||
25876 | 2017-06-29 Maya Rashish <coypu@sdf.org> | |
25877 | ||
25878 | * config/vax/builtins.md (ffssi2_internal): Correct constraint. | |
25879 | ||
25880 | 2017-06-29 Eric Botcazou <ebotcazou@adacore.com> | |
25881 | ||
25882 | * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned | |
25883 | objects, take into account only the alignment of 'op0' and 'mode1' if | |
25884 | 'op0' is a MEM. | |
25885 | ||
25886 | 2017-06-29 Steve Ellcey <sellcey@cavium.com> | |
25887 | ||
25888 | * ccmp.c (ccmp_tree_comparison_p): New function. | |
25889 | (ccmp_candidate_p): Update to use above function. | |
25890 | (get_compare_parts): New function. | |
25891 | (expand_ccmp_next): Update to use new functions. | |
25892 | (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use | |
25893 | new functions. | |
25894 | (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1, | |
25895 | take mode as argument. | |
25896 | * ccmp.h (expand_ccmp_expr): Add mode as argument. | |
25897 | * expr.c (expand_expr_real_1): Pass mode as argument. | |
25898 | ||
25899 | 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org> | |
25900 | ||
25901 | * combine.c (combine_instructions): Print insns to dump_file, together | |
25902 | with their costs. | |
25903 | ||
25904 | 2017-06-29 Jan Hubicka <hubicka@ucw.cz> | |
25905 | ||
25906 | * asan.c (asan_emit_stack_protection): Update. | |
25907 | (create_cond_insert_point): Update. | |
25908 | * auto-profile.c (afdo_propagate_circuit): Update. | |
25909 | * basic-block.h (struct edge_def): Turn probability to | |
25910 | profile_probability. | |
25911 | (EDGE_FREQUENCY): Update. | |
25912 | * bb-reorder.c (find_traces_1_round): Update. | |
25913 | (better_edge_p): Update. | |
25914 | (sanitize_hot_paths): Update. | |
25915 | * cfg.c (unchecked_make_edge): Initialize probability to uninitialized. | |
25916 | (make_single_succ_edge): Update. | |
25917 | (check_bb_profile): Update. | |
25918 | (dump_edge_info): Update. | |
25919 | (update_bb_profile_for_threading): Update. | |
25920 | * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge | |
25921 | probabilitycount to 0. | |
25922 | * cfgbuild.c (compute_outgoing_frequencies): Update. | |
25923 | * cfgcleanup.c (try_forward_edges): Update. | |
25924 | (outgoing_edges_match): Update. | |
25925 | (try_crossjump_to_edge): Update. | |
25926 | * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge. | |
25927 | (expand_gimple_tailcall): Update. | |
25928 | (construct_init_block): Use make_single_succ_edge. | |
25929 | (construct_exit_block): Use make_single_succ_edge. | |
25930 | * cfghooks.c (verify_flow_info): Update. | |
25931 | (redirect_edge_succ_nodup): Update. | |
25932 | (split_edge): Update. | |
25933 | (account_profile_record): Update. | |
25934 | * cfgloopanal.c (single_likely_exit): Update. | |
25935 | * cfgloopmanip.c (scale_loop_profile): Update. | |
25936 | (set_zero_probability): Remove. | |
25937 | (duplicate_loop_to_header_edge): Update. | |
25938 | * cfgloopmanip.h (loop_version): Update prototype. | |
25939 | * cfgrtl.c (try_redirect_by_replacing_jump): Update. | |
25940 | (force_nonfallthru_and_redirect): Update. | |
25941 | (update_br_prob_note): Update. | |
25942 | (rtl_verify_edges): Update. | |
25943 | (purge_dead_edges): Update. | |
25944 | (rtl_lv_add_condition_to_bb): Update. | |
25945 | * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update. | |
25946 | * cgraphunit.c (init_lowered_empty_function): Update. | |
25947 | (cgraph_node::expand_thunk): Update. | |
25948 | * cilk-common.c: Include profile-count.h | |
25949 | * dojump.c (inv): Remove. | |
25950 | (jumpifnot): Update. | |
25951 | (jumpifnot_1): Update. | |
25952 | (do_jump_1): Update. | |
25953 | (do_jump): Update. | |
25954 | (do_jump_by_parts_greater_rtx): Update. | |
25955 | (do_compare_rtx_and_jump): Update. | |
25956 | * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump, | |
25957 | do_jump_1. do_compare_rtx_and_jump): Update prototype. | |
25958 | * dwarf2cfi.c: Include profile-count.h | |
25959 | * except.c (dw2_build_landing_pads): Use make_single_succ_edge. | |
25960 | (sjlj_emit_dispatch_table): Likewise. | |
25961 | * explow.c: Include profile-count.h | |
25962 | * expmed.c (emit_store_flag_force): Update. | |
25963 | (do_cmp_and_jump): Update. | |
25964 | * expr.c (compare_by_pieces_d::generate): Update. | |
25965 | (compare_by_pieces_d::finish_mode): Update. | |
25966 | (emit_block_move_via_loop): Update. | |
25967 | (store_expr_with_bounds): Update. | |
25968 | (store_constructor): Update. | |
25969 | (expand_expr_real_2): Update. | |
25970 | (expand_expr_real_1): Update. | |
25971 | * expr.h (try_casesi, try_tablejump): Update prototypes. | |
25972 | * gimple-pretty-print.c (dump_probability): Update. | |
25973 | (dump_profile): New. | |
25974 | (dump_gimple_label): Update. | |
25975 | (dump_gimple_bb_header): Update. | |
25976 | * graph.c (draw_cfg_node_succ_edges): Update. | |
25977 | * hsa-gen.c (convert_switch_statements): Update. | |
25978 | * ifcvt.c (cheap_bb_rtx_cost_p): Update. | |
25979 | (find_if_case_1): Update. | |
25980 | (find_if_case_2): Update. | |
25981 | * internal-fn.c (expand_arith_overflow_result_store): Update. | |
25982 | (expand_addsub_overflow): Update. | |
25983 | (expand_neg_overflow): Update. | |
25984 | (expand_mul_overflow): Update. | |
25985 | (expand_vector_ubsan_overflow): Update. | |
25986 | * ipa-cp.c (good_cloning_opportunity_p): Update. | |
25987 | * ipa-split.c (split_function): Use make_single_succ_edge. | |
25988 | * ipa-utils.c (ipa_merge_profiles): Update. | |
25989 | * loop-doloop.c (add_test): Update. | |
25990 | (doloop_modify): Update. | |
25991 | * loop-unroll.c (compare_and_jump_seq): Update. | |
25992 | (unroll_loop_runtime_iterations): Update. | |
25993 | * lra-constraints.c (lra_inheritance): Update. | |
25994 | * lto-streamer-in.c (input_cfg): Update. | |
25995 | * lto-streamer-out.c (output_cfg): Update. | |
25996 | * mcf.c (adjust_cfg_counts): Update. | |
25997 | * modulo-sched.c (sms_schedule): Update. | |
25998 | * omp-expand.c (expand_omp_for_init_counts): Update. | |
25999 | (extract_omp_for_update_vars): Update. | |
26000 | (expand_omp_ordered_sink): Update. | |
26001 | (expand_omp_for_ordered_loops): Update. | |
26002 | (expand_omp_for_generic): Update. | |
26003 | (expand_omp_for_static_nochunk): Update. | |
26004 | (expand_omp_for_static_chunk): Update. | |
26005 | (expand_cilk_for): Update. | |
26006 | (expand_omp_simd): Update. | |
26007 | (expand_omp_taskloop_for_outer): Update. | |
26008 | (expand_omp_taskloop_for_inner): Update. | |
26009 | * omp-simd-clone.c (simd_clone_adjust): Update. | |
26010 | * optabs.c (expand_doubleword_shift): Update. | |
26011 | (expand_abs): Update. | |
26012 | (emit_cmp_and_jump_insn_1): Update. | |
26013 | (expand_compare_and_swap_loop): Update. | |
26014 | * optabs.h (emit_cmp_and_jump_insns): Update prototype. | |
26015 | * predict.c (predictable_edge_p): Update. | |
26016 | (edge_probability_reliable_p): Update. | |
26017 | (set_even_probabilities): Update. | |
26018 | (combine_predictions_for_insn): Update. | |
26019 | (combine_predictions_for_bb): Update. | |
26020 | (propagate_freq): Update. | |
26021 | (estimate_bb_frequencies): Update. | |
26022 | (force_edge_cold): Update. | |
26023 | * profile-count.c (profile_count::dump): Add missing space into dump. | |
26024 | (profile_count::debug): Add newline. | |
26025 | (profile_count::differs_from_p): Explicitly convert to unsigned. | |
26026 | (profile_count::stream_in): Update. | |
26027 | (profile_probability::dump): New member function. | |
26028 | (profile_probability::debug): New member function. | |
26029 | (profile_probability::differs_from_p): New member function. | |
26030 | (profile_probability::differs_lot_from_p): New member function. | |
26031 | (profile_probability::stream_in): New member function. | |
26032 | (profile_probability::stream_out): New member function. | |
26033 | * profile-count.h (profile_count_quality): Rename to ... | |
26034 | (profile_quality): ... this one. | |
26035 | (profile_probability): New. | |
26036 | (profile_count): Update. | |
26037 | * profile.c (compute_branch_probabilities): Update. | |
26038 | * recog.c (peep2_attempt): Update. | |
26039 | * sched-ebb.c (schedule_ebbs): Update. | |
26040 | * sched-rgn.c (find_single_block_region): Update. | |
26041 | (compute_dom_prob_ps): Update. | |
26042 | (schedule_region): Update. | |
26043 | * sel-sched-ir.c (compute_succs_info): Update. | |
26044 | * stmt.c (struct case_node): Update. | |
26045 | (do_jump_if_equal): Update. | |
26046 | (get_outgoing_edge_probs): Update. | |
26047 | (conditional_probability): Update. | |
26048 | (emit_case_dispatch_table): Update. | |
26049 | (expand_case): Update. | |
26050 | (expand_sjlj_dispatch_table): Update. | |
26051 | (emit_case_nodes): Update. | |
26052 | * targhooks.c: Update. | |
26053 | * tracer.c (better_p): Update. | |
26054 | (find_best_successor): Update. | |
26055 | * trans-mem.c (expand_transaction): Update. | |
26056 | * tree-call-cdce.c: Update. | |
26057 | * tree-cfg.c (gimple_split_edge): Upate. | |
26058 | (move_sese_region_to_fn): Upate. | |
26059 | * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate. | |
26060 | * tree-eh.c (lower_resx): Upate. | |
26061 | (cleanup_empty_eh_move_lp): Upate. | |
26062 | * tree-if-conv.c (version_loop_for_if_conversion): Update. | |
26063 | * tree-inline.c (copy_edges_for_bb): Update. | |
26064 | (copy_cfg_body): Update. | |
26065 | * tree-parloops.c (gen_parallel_loop): Update. | |
26066 | * tree-profile.c (gimple_gen_ic_func_profiler): Update. | |
26067 | (gimple_gen_time_profiler): Update. | |
26068 | * tree-ssa-dce.c (remove_dead_stmt): Update. | |
26069 | * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. | |
26070 | * tree-ssa-loop-im.c (execute_sm_if_changed): Update. | |
26071 | * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update. | |
26072 | (unloop_loops): Update. | |
26073 | (try_peel_loop): Update. | |
26074 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. | |
26075 | * tree-ssa-loop-split.c (connect_loops): Update. | |
26076 | (split_loop): Update. | |
26077 | * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update. | |
26078 | (hoist_guard): Update. | |
26079 | * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update. | |
26080 | * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update. | |
26081 | (value_replacement): Update. | |
26082 | * tree-ssa-reassoc.c (branch_fixup): Update. | |
26083 | * tree-ssa-tail-merge.c (replace_block_by): Update. | |
26084 | * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update. | |
26085 | (create_edge_and_update_destination_phis): Update. | |
26086 | (compute_path_counts): Update. | |
26087 | (recompute_probabilities): Update. | |
26088 | (update_joiner_offpath_counts): Update. | |
26089 | (freqs_to_counts_path): Update. | |
26090 | (duplicate_thread_path): Update. | |
26091 | * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update. | |
26092 | (struct switch_conv_info): Update. | |
26093 | (gen_inbound_check): Update. | |
26094 | * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. | |
26095 | (vect_do_peeling): Update. | |
26096 | (vect_loop_versioning): Update. | |
26097 | * tree-vect-loop.c (scale_profile_for_vect_loop): Update. | |
26098 | (optimize_mask_stores): Update. | |
26099 | * ubsan.c (ubsan_expand_null_ifn): Update. | |
26100 | * value-prof.c (gimple_divmod_fixed_value): Update. | |
26101 | (gimple_divmod_fixed_value_transform): Update. | |
26102 | (gimple_mod_pow2): Update. | |
26103 | (gimple_mod_pow2_value_transform): Update. | |
26104 | (gimple_mod_subtract): Update. | |
26105 | (gimple_mod_subtract_transform): Update. | |
26106 | (gimple_ic): Update. | |
26107 | (gimple_stringop_fixed_value): Update. | |
26108 | (gimple_stringops_transform): Update. | |
26109 | * value-prof.h: Update. | |
26110 | ||
26111 | 2017-06-29 Carl Love <cel@us.ibm.com> | |
26112 | ||
26113 | * config/rs6000/rs6000-c.c: Add support for built-in functions | |
26114 | vector signed int vec_signed (vector float); | |
26115 | vector signed long long vec_signed (vector double); | |
26116 | vector signed int vec_signed2 (vector double, vector double); | |
26117 | vector signed int vec_signede (vector double); | |
26118 | vector signed int vec_signedo (vector double); | |
26119 | * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add | |
26120 | instruction generator. | |
26121 | * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS, | |
26122 | UNSPEC_VSX_VSIGNED2): Add UNSPECS. | |
26123 | (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df): | |
26124 | Add define_insn. | |
26125 | (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df, | |
26126 | vunsignede_v2df): Add define_expands. | |
26127 | * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED, | |
26128 | VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO, | |
26129 | VEC_UNSIGNEDO): Add definitions. | |
26130 | * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS, | |
26131 | UNSPEC_VSX_VSIGNED2): Add UNSPECs. | |
26132 | (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn. | |
26133 | (vsigned2_v2df, vsigendo_v2df, vsignede_v2df, | |
26134 | vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands. | |
26135 | * config/rs6000/altivec.h (vec_signed, vec_signed2, | |
26136 | vec_signede and vec_signedo, vec_unsigned, vec_unsigned2, | |
26137 | vec_unsignede, vec_unsignedo): Add builtin defines. | |
26138 | * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern | |
26139 | declaration. | |
26140 | * doc/extend.texi: Update the built-in documentation file for the | |
26141 | new built-in functions. | |
26142 | ||
26143 | 2017-06-29 Richard Biener <rguenther@suse.de> | |
26144 | ||
26145 | * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add | |
26146 | reduction chains to LOOP_VINFO_REDUCTIONS. | |
26147 | * tree-vect-slp.c (vect_analyze_slp): Continue looking for | |
26148 | SLP reductions after processing reduction chains. | |
26149 | ||
26150 | 2017-06-29 Nathan Sidwell <nathan@acm.org> | |
26151 | ||
26152 | * builtins.c (fold_builtin_FUNCTION): Use | |
26153 | lang_hooks.decl_printable_name. | |
26154 | ||
26155 | 2017-06-29 Peter Bergner <bergner@vnet.ibm.com> | |
26156 | ||
26157 | PR middle-end/81194 | |
26158 | * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements | |
26159 | with only one label. | |
26160 | * stmt.c (expand_case): Assert NCASES is greater than one. | |
26161 | ||
26162 | 2017-06-29 Richard Biener <rguenther@suse.de> | |
26163 | ||
26164 | * tree-cfg.c (group_case_labels_stmt): Return whether we changed | |
26165 | anything. | |
26166 | (group_case_labels): Likewise. | |
26167 | (find_taken_edge): Push sanity checking on val to workers... | |
26168 | (find_taken_edge_cond_expr): ... here | |
26169 | (find_taken_edge_switch_expr): ... and here, handle cases | |
26170 | with just a default label. | |
26171 | * tree-cfg.h (group_case_labels_stmt): Adjust prototype. | |
26172 | (group_case_labels): Likewise. | |
26173 | * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When | |
26174 | group_case_labels does anything cleanup the CFG again. | |
26175 | ||
26176 | 2017-06-29 Bin Cheng <bin.cheng@arm.com> | |
26177 | ||
26178 | PR tree-optimization/81196 | |
26179 | * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop | |
26180 | exit condition comparing two IVs. | |
26181 | ||
26182 | 2017-06-29 Richard Earnshaw <rearnsha@arm.com> | |
26183 | ||
26184 | * config/arm/parsecpu.awk (gen_comm_data): Add initializer for | |
26185 | profile to the dummy entry at the end of the list of architectures. | |
26186 | * config/arm/arm-cpu-cdata.h: Regenerated. | |
26187 | ||
26188 | 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
26189 | Michael Collison <michael.collison@arm.com> | |
26190 | ||
26191 | PR target/70119 | |
26192 | * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1): | |
26193 | New pattern. | |
26194 | (*aarch64_reg_<mode>3_neg_mask2): New pattern. | |
26195 | (*aarch64_reg_<mode>3_minus_mask): New pattern. | |
26196 | (*aarch64_<optab>_reg_di3_mask2): New pattern. | |
26197 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost | |
26198 | of shift when the shift amount is masked with constant equal to | |
26199 | the size of the mode. | |
26200 | * config/aarch64/predicates.md (subreg_lowpart_operator): New | |
26201 | predicate. | |
26202 | ||
26203 | 2017-06-29 Martin Liska <mliska@suse.cz> | |
26204 | ||
26205 | * config/i386/i386.opt: Change range from [1,5] to [0,5]. | |
26206 | ||
26207 | 2017-06-29 Yury Gribov <tetra2005@gmail.com> | |
26208 | ||
26209 | PR bootstrap/80565 | |
26210 | * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization | |
26211 | code. | |
26212 | * ipa-inline.h | |
26213 | (edge_growth_cache_entry::edge_growth_cache_entry): New | |
26214 | function. | |
26215 | (reset_edge_growth_cache): Update to use constructor. | |
26216 | ||
26217 | 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
26218 | ||
26219 | * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New. | |
26220 | (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. | |
26221 | (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT. | |
26222 | ||
26223 | 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com> | |
26224 | ||
26225 | * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64) | |
26226 | (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics. | |
26227 | ||
26228 | 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
26229 | ||
26230 | * config.gcc (*-linux-musl*): Add t-musl tmake_file. | |
26231 | (*-linux-uclibc*): Add t-uclibc tmake_file. | |
26232 | * config/t-musl: New. | |
26233 | * config/t-uclibc: New. | |
26234 | ||
26235 | 2017-06-28 Richard Earnshaw <rearnsha@arm.com> | |
26236 | ||
26237 | * config/arm/parsecpu.awk (profile): Parse new keyword in an arch | |
26238 | context. | |
26239 | (gen_comm_data): Emit architectural setting of arch_prof. | |
26240 | * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the | |
26241 | profile. | |
26242 | (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise. | |
26243 | (armv8-m.base, armv8-m.main): Likewise. | |
26244 | * arm-protos.h (arm_build_target): Add profile field. | |
26245 | (arch_option): Likewise. | |
26246 | * config/arm/arm.c (arm_configure_build_target): Copy the profile to | |
26247 | the active target. | |
26248 | * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use | |
26249 | arm_active_target.profile. | |
26250 | ||
26251 | 2017-06-28 Richard Biener <rguenther@suse.de> | |
26252 | ||
26253 | PR middle-end/81227 | |
26254 | * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not | |
26255 | TYPE_OVERFLOW_WRAPS. | |
26256 | * match.pd (negate_expr_p): Likewise. | |
26257 | * tree-ssa-reassoc.c (optimize_range_tests_diff): Use | |
26258 | fold_build2, not fold_binary. | |
26259 | ||
26260 | 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com> | |
26261 | ||
26262 | * config/aarch64/aarch64 (aarch64_expand_mov_immediate): | |
26263 | Convert memory address to Pmode. | |
26264 | (aarch64_print_operand): Assert MEM operands are always Pmode. | |
26265 | ||
26266 | 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com> | |
26267 | ||
26268 | PR target/79665 | |
26269 | * config/arm/aarch-common.c (arm_no_early_alu_shift_dep): | |
26270 | Remove redundant if. | |
26271 | (aarch_forward_to_shift_is_not_shifted_reg): Remove. | |
26272 | * config/arm/aarch-common-protos.h | |
26273 | (aarch_forward_to_shift_is_not_shifted_re): Remove. | |
26274 | * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass. | |
26275 | ||
26276 | 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com> | |
26277 | ||
26278 | PR ipa/81238 | |
26279 | * multiple_target.c (create_dispatcher_calls): Set the default | |
26280 | clone to be static, not public. | |
26281 | ||
26282 | 2017-06-28 Richard Biener <rguenther@suse.de> | |
26283 | ||
26284 | * tree-vect-loop.c (vectorizable_reduction): Move special | |
26285 | cond reduction IV var creation ... | |
26286 | (vect_create_epilog_for_reduction): ... here. Remove induction_index | |
26287 | parameter. Use STMT_VINFO_VECTYPE. | |
26288 | * tree-vect-slp.c (vect_get_constant_vectors): Properly reset | |
26289 | constant_p. | |
26290 | ||
26291 | 2017-06-28 Martin Liska <mliska@suse.cz> | |
26292 | ||
26293 | PR ipa/81128 | |
26294 | * ipa-visibility.c (non_local_p): Handle visibility. | |
26295 | ||
26296 | 2017-06-28 Martin Liska <mliska@suse.cz> | |
26297 | ||
26298 | PR driver/79659 | |
26299 | * common.opt: Add IntegerRange to various options. | |
26300 | * opt-functions.awk (integer_range_info): New function. | |
26301 | * optc-gen.awk: Add integer_range_info to cl_options struct. | |
26302 | * opts-common.c (decode_cmdline_option): Handle | |
26303 | CL_ERR_INT_RANGE_ARG. | |
26304 | (cmdline_handle_error): Likewise. | |
26305 | * opts.c (print_filtered_help): Show valid interval in | |
26306 | when --help is provided. | |
26307 | * opts.h (struct cl_option): Add range_min and range_max fields. | |
26308 | * config/i386/i386.opt: Add IntegerRange for -mbranch-cost. | |
26309 | ||
26310 | 2017-06-28 Marc Glisse <marc.glisse@inria.fr> | |
26311 | ||
26312 | * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^. | |
26313 | (x * C EQ/NE y * C): New transformation. | |
26314 | ||
26315 | 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org> | |
26316 | ||
26317 | * genmultilib (combination_space): Accept '+' in option names. | |
26318 | ||
26319 | 2017-06-28 Martin Liska <mliska@suse.cz> | |
26320 | ||
26321 | PR sanitizer/81224 | |
26322 | * asan.c (instrument_derefs): Bail out inner references | |
26323 | that are hard register variables. | |
26324 | ||
26325 | 2017-06-28 Jakub Jelinek <jakub@redhat.com> | |
26326 | ||
26327 | PR target/81175 | |
26328 | * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin | |
26329 | rather than def_builtin_pure for __builtin_ia32_gatherpf*. | |
26330 | ||
26331 | 2017-06-28 Richard Biener <rguenther@suse.de> | |
26332 | ||
26333 | * tree-vectorizer.h (vect_get_vec_defs): Remove. | |
26334 | (vect_get_slp_defs): Adjust. | |
26335 | * tree-vect-loop.c (get_initial_defs_for_reduction): Split | |
26336 | out from ... | |
26337 | * tree-vect-slp.c (vect_get_constant_vectors): ... here and | |
26338 | simplify. | |
26339 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Use | |
26340 | get_initial_defs_for_reduction instead of vect_get_vec_defs. | |
26341 | (vectorizable_reduction): Adjust. | |
26342 | * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction | |
26343 | handling. | |
26344 | (vect_get_slp_defs): Likewise. | |
26345 | * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust. | |
26346 | (vectorizable_bswap): Adjust. | |
26347 | (vectorizable_call): Likewise. | |
26348 | (vectorizable_conversion): Likewise. | |
26349 | (vectorizable_assignment): Likewise. | |
26350 | (vectorizable_shift): Likewise. | |
26351 | (vectorizable_operation): Likewise. | |
26352 | (vectorizable_store): Likewise. | |
26353 | (vectorizable_condition): Likewise. | |
26354 | (vectorizable_comparison): Likewise. | |
26355 | ||
26356 | 2017-06-28 Michael Collison <michael.collison@arm.com> | |
26357 | ||
26358 | PR target/68535 | |
26359 | * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary | |
26360 | set of base_reg | |
26361 | (arm_gen_movmemqi): Removed unused variable 'i'. | |
26362 | Convert 'for' loop into 'while' loop. | |
26363 | (arm_expand_prologue): Remove last unnecessary set of insn. | |
26364 | (thumb_pop): Remove unused variable 'pushed_words'. | |
26365 | (thumb_exit): Remove last unnecessary set of regs_to_pop. | |
26366 | ||
26367 | 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
26368 | ||
26369 | * config/s390/predicates.md: Use s390_rel_address_ok_p. | |
26370 | * config/s390/s390-protos.h: Add prototype of | |
26371 | s390_rel_address_ok_p. | |
26372 | * config/s390/s390.c (s390_got_symbol): New function. | |
26373 | (s390_rel_address_ok_p): New function. | |
26374 | (legitimize_pic_address): Use s390_rel_address_ok_p. | |
26375 | (s390_load_got): Use s390_got_symbol. | |
26376 | (s390_option_override): Issue error if | |
26377 | -mno-pic-data-is-text-relative is used without -fpic/-fPIC. | |
26378 | * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE): | |
26379 | New macro. | |
26380 | * config/s390/s390.opt: New option mpic-data-is-text-relative. | |
26381 | ||
26382 | 2017-06-27 Andrew Pinski <apinski@cavium.com> | |
26383 | ||
26384 | * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns. | |
26385 | (X * copysign (1.0, X)): New pattern. | |
26386 | (X * copysign (1.0, -X)): New pattern. | |
26387 | (copysign (-1.0, CST)): New pattern. | |
26388 | ||
26389 | 2017-06-27 Joseph Myers <joseph@codesourcery.com> | |
26390 | ||
26391 | * genmultilib (combination_space): Remove variable. | |
26392 | Validate reuse rules against regular expression for any sequence | |
26393 | of multilib options in any order. | |
26394 | ||
26395 | 2017-06-27 Michael Collison <michael.collison@arm.com> | |
26396 | ||
26397 | * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly | |
26398 | call aarch64_split_simd_combine. | |
26399 | * (aarch64_combine_internal<mode>): Delete pattern. | |
26400 | * config/aarch64/aarch64.c (aarch64_split_simd_combine): | |
26401 | Allow register and subreg operands. | |
26402 | ||
26403 | 2017-06-27 Jerome Lambourg <lambourg@adacore.com> | |
26404 | ||
26405 | * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target | |
26406 | specific need, just fallback on defaults. | |
26407 | (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define. | |
26408 | ||
26409 | 2017-06-27 Jerome Lambourg <lambourg@adacore.com> | |
26410 | Olivier Hainque <hainque@adacore.com> | |
26411 | ||
26412 | * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct | |
26413 | map for 64bits. | |
26414 | (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit | |
26415 | targets. Pick a default if no particular attempt applied. | |
26416 | (STACK_CHECK_PROTECT): Double for 64bit targets, which have | |
26417 | larger contexts. | |
26418 | ||
26419 | 2017-06-27 Jerome Lambourg <lambourg@adacore.com> | |
26420 | ||
26421 | * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet. | |
26422 | (x86_64-wrs-vxworks7): Likewise. | |
26423 | ||
26424 | 2017-06-27 Marek Polacek <polacek@redhat.com> | |
26425 | ||
26426 | PR sanitizer/81223 | |
26427 | * ubsan.c (instrument_null): Check get_base_address's result for null. | |
26428 | ||
26429 | 2017-06-27 Marc Glisse <marc.glisse@inria.fr> | |
26430 | ||
26431 | * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations. | |
26432 | ||
26433 | 2017-06-27 Marc Glisse <marc.glisse@inria.fr> | |
26434 | ||
26435 | * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR, | |
26436 | BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types. | |
26437 | (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR, | |
26438 | BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT): | |
26439 | New function types. | |
26440 | * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV, | |
26441 | BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND, | |
26442 | BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT, | |
26443 | BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG, | |
26444 | BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT, | |
26445 | BUILT_IN_FEUPDATEENV): New builtins. | |
26446 | * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE, | |
26447 | TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries. | |
26448 | * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node, | |
26449 | fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New | |
26450 | macros. | |
26451 | (builtin_structptr_types): Adjust size. | |
26452 | * tree.c (builtin_structptr_types): Add four entries. | |
26453 | ||
26454 | 2017-06-27 Jerome Lambourg <lambourg@adacore.com> | |
26455 | Olivier Hainque <hainque@adacore.com> | |
26456 | ||
26457 | * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ... | |
26458 | (TLS_SYM): New local macro, forcing reference to __tls__ on | |
26459 | link command lines for VxWorks 7 RTPs, triggering initialization | |
26460 | of tlsLib. | |
26461 | (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks | |
26462 | OS features TLS support, true for RTPs on VxWorks 7. | |
26463 | * config/vxworks.c (vxworks_override_options): Setup emutls | |
26464 | accordingly. | |
26465 | ||
26466 | 2017-06-27 Jakub Jelinek <jakub@redhat.com> | |
26467 | ||
26468 | * predict.c (test_prediction_value_range): Use -1U instead of -1 | |
26469 | to avoid narrowing conversion warning. | |
26470 | * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast | |
26471 | to avoid narrowing conversion warning. | |
26472 | * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of | |
26473 | -1. | |
26474 | * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1. | |
26475 | ||
26476 | 2017-06-27 Jerome Lambourg <lambourg@adacore.com> | |
26477 | ||
26478 | * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for | |
26479 | 64bit configurations. | |
26480 | (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64. | |
26481 | (SIZE_TYPE): Likewise. | |
26482 | * config/vxworks.c (vxworks_emutls_var_fields): Use | |
26483 | long_unsigned_type_node instead of unsigned_type_node as the offset | |
26484 | field type, which is "pointer" mode in emutls.c. | |
26485 | ||
26486 | 2017-06-27 Jakub Jelinek <jakub@redhat.com> | |
26487 | ||
26488 | PR sanitizer/81209 | |
26489 | * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var. | |
26490 | ||
26491 | PR middle-end/81207 | |
26492 | * gimple-fold.c (replace_call_with_call_and_fold): Handle | |
26493 | gimple_vuse copying separately from gimple_vdef copying. | |
26494 | ||
26495 | 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
26496 | ||
26497 | * value-prof.c (free_hist): Remove call to memset and the enclosing if | |
26498 | condition. | |
26499 | ||
26500 | 2017-06-26 Jerome Lambourg <lambourg@adacore.com> | |
26501 | Olivier Hainque <hainque@adacore.com> | |
26502 | ||
26503 | * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines | |
26504 | for all vxworks7 targets. | |
26505 | * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0. | |
26506 | (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7. | |
26507 | (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing | |
26508 | variations for VX6/VX7 and 32/64bits later on in ... | |
26509 | (VXWORKS_LIB_SPEC): Leverage new macros. | |
26510 | (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7, | |
26511 | as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword. | |
26512 | ||
26513 | 2017-06-26 Jerome Lambourg <lambourg@adacore.com> | |
26514 | ||
26515 | * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define | |
26516 | _VX_TOOL_FAMILY and _VX_TOOL to gnu. | |
26517 | ||
26518 | 2017-06-26 Carl Love <cel@us.ibm.com> | |
26519 | ||
26520 | * config/rs6000/rs6000-c.c: Add support for built-in functions | |
26521 | vector bool char vec_reve (vector bool char); | |
26522 | vector signed char vec_reve (vector signed char); | |
26523 | vector unsigned char vec_reve (vector unsigned char); | |
26524 | vector bool int vec_reve (vector bool int); | |
26525 | vector signed int vec_reve (vector signed int); | |
26526 | vector unsigned int vec_reve (vector unsigned int); | |
26527 | vector bool long long vec_reve (vector bool long long); | |
26528 | vector signed long long vec_reve (vector signed long long); | |
26529 | vector unsigned long long vec_reve (vector unsigned long long); | |
26530 | vector bool short vec_reve (vector bool short); | |
26531 | vector signed short vec_reve (vector signed short); | |
26532 | vector double vec_reve (vector double); | |
26533 | vector float vec_reve (vector float); | |
26534 | * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI, | |
26535 | VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin. | |
26536 | * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC. | |
26537 | (altivec_vreve): New pattern. | |
26538 | * config/rs6000/altivec.h (vec_reve): New define. | |
26539 | * doc/extend.texi (vec_rev): Update the built-in documentation file | |
26540 | for the new built-in functions. | |
26541 | ||
26542 | 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
26543 | ||
26544 | PR tree-optimization/71815 | |
26545 | * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New | |
26546 | function. | |
26547 | (find_basis_for_candidate): Call uses_consumed_by_stmt rather than | |
26548 | has_single_use. | |
26549 | (slsr_process_phi): Likewise. | |
26550 | (replace_uncond_cands_and_profitable_phis): Don't replace a | |
26551 | multiply candidate with a stride of 1 (copy or cast). | |
26552 | (phi_incr_cost): Call uses_consumed_by_stmt rather than | |
26553 | has_single_use. | |
26554 | (lowest_cost_path): Likewise. | |
26555 | (total_savings): Likewise. | |
26556 | ||
26557 | 2017-06-26 Richard Biener <rguenther@suse.de> | |
26558 | ||
26559 | PR target/81175 | |
26560 | * config/i386/i386.c (ix86_init_mmx_sse_builtins): | |
26561 | Use def_builtin_pure for all gather builtins. | |
26562 | ||
26563 | 2017-06-26 Richard Biener <rguenther@suse.de> | |
26564 | ||
26565 | PR tree-optimization/81203 | |
26566 | * tree-tailcall.c (find_tail_calls): Do not move stmts into | |
26567 | non-dominating BBs. | |
26568 | ||
26569 | 2017-06-26 Marek Polacek <polacek@redhat.com> | |
26570 | ||
26571 | PR c/80116 | |
26572 | * doc/invoke.texi: Document -Wmultistatement-macros. | |
26573 | ||
26574 | 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org> | |
26575 | ||
26576 | * doc/sourcebuild.texi (ARM-specific attributes): Document new | |
26577 | arm_neon_ok_no_float_abi effective target. | |
26578 | ||
26579 | 2017-06-26 Richard Biener <rguenther@suse.de> | |
26580 | ||
26581 | PR tree-optimization/80928 | |
26582 | * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag. | |
26583 | (copy_bbs): Set BB_DUPLICATED flag early. | |
26584 | (execute_on_growing_pred): Do not execute for BB_DUPLICATED | |
26585 | marked blocks. | |
26586 | (execute_on_shrinking_pred): Likewise. | |
26587 | * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in | |
26588 | BB_DUPLICATED blocks. | |
26589 | * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly | |
26590 | iterate over all PHIs considering removal of *gsi. | |
26591 | ||
26592 | 2017-06-23 Jim Wilson <jim.wilson@linaro.org> | |
26593 | ||
26594 | * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and | |
26595 | qdf24xx. | |
26596 | ||
26597 | 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
26598 | ||
26599 | * config/rs6000/rs6000-string.c: (expand_block_clear, | |
26600 | do_load_for_compare, select_block_compare_mode, | |
26601 | compute_current_alignment, expand_block_compare, | |
26602 | expand_strncmp_align_check, expand_strn_compare, | |
26603 | expand_block_move, rs6000_output_load_multiple) | |
26604 | Move functions related to string/block move/compare | |
26605 | to a separate file. | |
26606 | * config/rs6000/rs6000.c: Move above functions to rs6000-string.c. | |
26607 | * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype | |
26608 | for this function which is now used in two files. | |
26609 | * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o. | |
26610 | * config.gcc: Add rs6000-string.o to extra_objs for | |
26611 | targets powerpc*-*-* and rs6000*-*-*. | |
26612 | ||
26613 | 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> | |
26614 | ||
26615 | PR target/80510 | |
26616 | * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in | |
26617 | 32-bit, since indexed is not valid for DImode. | |
26618 | (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA | |
26619 | 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64. | |
26620 | (define_peephole2 for Altivec d-form load): Add 32-bit support. | |
26621 | (define_peephole2 for Altivec d-form store): Likewise. | |
26622 | ||
26623 | PR ipa/81185 | |
26624 | * multiple_target.c (create_dispatcher_calls): Only create the | |
26625 | dispatcher call if the function is the default clone of a | |
26626 | versioned function. | |
26627 | ||
26628 | 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org> | |
26629 | ||
26630 | PR middle-end/80902 | |
26631 | * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after | |
26632 | a call, force the call to not be a tail call. | |
26633 | ||
26634 | 2017-06-23 Jeff Law <law@redhat.com> | |
26635 | ||
26636 | * doc/contrib.texi: Add entry for Steven Pemberton's work on | |
26637 | enquire. | |
26638 | ||
26639 | 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com> | |
26640 | ||
26641 | * config/rs6000/rs6000.c: Add include of ssa-propagate.h for | |
26642 | update_call_from_tree(). (rs6000_gimple_fold_builtin): Add | |
26643 | handling for early expansion of vector shifts (sl,sr,sra,rl). | |
26644 | (builtin_function_type): Add vector shift right instructions | |
26645 | to the unsigned argument list. | |
26646 | ||
26647 | 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
26648 | ||
26649 | rtl-optimizatoin/79286 | |
26650 | * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again. | |
26651 | * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never | |
26652 | trap. PIC register plus a const unspec without offset can never trap. | |
26653 | ||
26654 | 2017-06-23 Marc Glisse <marc.glisse@inria.fr> | |
26655 | ||
26656 | * tree.h (builtin_structptr_type): New type. | |
26657 | (builtin_structptr_types): Declare new array. | |
26658 | * tree.c (builtin_structptr_types): New array. | |
26659 | (free_lang_data, build_common_tree_nodes): Use it. | |
26660 | ||
26661 | 2017-06-23 Jonathan Wakely <jwakely@redhat.com> | |
26662 | ||
26663 | PR c++/81187 | |
26664 | * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from | |
26665 | -Wnoexcept. | |
26666 | ||
26667 | 2017-06-22 Matt Turner <mattst88@gmail.com> | |
26668 | ||
26669 | * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby | |
26670 | Lake models to skylake case. Assume skylake for unknown | |
26671 | models with clflushopt. | |
26672 | ||
26673 | 2017-06-22 Jeff Law <law@redhat.com> | |
26674 | ||
26675 | * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle | |
26676 | frame sizes that do not satisfy aarch64_uimm12_shift. | |
26677 | ||
26678 | 2017-06-22 Jan Hubicka <hubicka@ucw.cz> | |
26679 | ||
26680 | * profile-count.h (apply_probability, | |
26681 | apply_scale, probability_in): Fix checks for zero. | |
26682 | ||
26683 | 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
26684 | ||
26685 | * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix. | |
26686 | * doc/cppdiropts.texi (-I @var{dir}): Document it. | |
26687 | ||
26688 | 2016-06-22 Richard Biener <rguenther@suse.de> | |
26689 | ||
26690 | * tree-vect-loop.c (vect_model_reduction_cost): Handle | |
26691 | COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without | |
26692 | REDUC_MAX_EXPR support. | |
26693 | (vectorizable_reduction): Likewise. | |
26694 | (vect_create_epilog_for_reduction): Likewise. | |
26695 | ||
26696 | 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com> | |
26697 | ||
26698 | * match.pd (A / (1 << B) -> A >> B): New. | |
26699 | * generic-match-head.c: Include optabs-tree.h. | |
26700 | * gimple-match-head.c: Likewise. | |
26701 | * optabs-tree.h (target_supports_op_p): New. | |
26702 | * optabs-tree.c (target_supports_op_p): New. | |
26703 | ||
26704 | 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
26705 | ||
26706 | * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for | |
26707 | $gcc_cv_ld --help output. | |
26708 | (gcc_cv_ld_demangle): Likewise. | |
26709 | (gcc_cv_ld_eh_frame_hdr): Likewise. | |
26710 | (gcc_cv_ld_pie): Likewise. | |
26711 | (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld. | |
26712 | (gcc_cv_ld_buildid): Likewise. | |
26713 | (gcc_cv_ld_sysroot): Likewise. | |
26714 | (ld_bndplt_support): Likewise. | |
26715 | (ld_pushpopstate_support): Likewise. | |
26716 | * configure: Regenerate. | |
26717 | * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define. | |
26718 | ||
26719 | 2017-06-21 Jakub Jelinek <jakub@redhat.com> | |
26720 | ||
26721 | PR target/81151 | |
26722 | * config/i386/sse.md (round<mode>2): Renumber match_dup and | |
26723 | operands indexes to avoid gap between operands and match_dups. | |
26724 | ||
26725 | 2017-06-21 Andrew Pinski <apinski@cavium.com> | |
26726 | ||
26727 | * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs): | |
26728 | Increment Arith_shift and Arith_shift_reg by 1. | |
26729 | * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend): | |
26730 | New tuning flag. | |
26731 | * config/aarch64/aarch64.c (thunderx_tunings): Enable | |
26732 | AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. | |
26733 | (aarch64_strip_extend): Add new argument and test for it. | |
26734 | (aarch64_cheap_mult_shift_p): New function. | |
26735 | (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't | |
26736 | add a cost if it is true. | |
26737 | Update calls to aarch64_strip_extend. | |
26738 | (aarch64_rtx_costs): Update calls to aarch64_strip_extend. | |
26739 | ||
26740 | 2017-06-21 Andrew Pinski <apinski@cavium.com> | |
26741 | ||
26742 | * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88 | |
26743 | tunings. | |
26744 | (thunderxt88): Likewise. | |
26745 | * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable. | |
26746 | (thunderx_prefetch_tune): New variable. | |
26747 | (thunderx2t99_prefetch_tune): Update for the correct values. | |
26748 | (thunderxt88_tunings): New variable. | |
26749 | (thunderx_tunings): Use thunderx_prefetch_tune instead of | |
26750 | generic_prefetch_tune. | |
26751 | (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK. | |
26752 | ||
26753 | 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
26754 | ||
26755 | * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse, | |
26756 | SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z. | |
26757 | (aarch64_compare_and_swap<mode>_lse, GPI): Likewise. | |
26758 | (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2. | |
26759 | (aarch64_atomic_cas<mode>, GPI): Likewise. | |
26760 | ||
26761 | 2017-06-21 Martin Liska <mliska@suse.cz> | |
26762 | ||
26763 | * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT | |
26764 | statements on cold and hot labels. | |
26765 | * predict.c (tree_estimate_probability_bb): Remove the | |
26766 | prediction from this place. | |
26767 | ||
26768 | 2017-06-21 Martin Liska <mliska@suse.cz> | |
26769 | ||
26770 | PR tree-optimization/79489 | |
26771 | * gimplify.c (maybe_add_early_return_predict_stmt): New | |
26772 | function. | |
26773 | (gimplify_return_expr): Call the function. | |
26774 | * predict.c (tree_estimate_probability_bb): Remove handling | |
26775 | of early return. | |
26776 | * predict.def: Update comment about early return predictor. | |
26777 | * gimple-predict.h (is_gimple_predict): New function. | |
26778 | * predict.def: Change default value of early return to 66. | |
26779 | * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT | |
26780 | statements. | |
26781 | * passes.def: Put pass_strip_predict_hints to the beginning of | |
26782 | IPA passes. | |
26783 | ||
26784 | 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com> | |
26785 | ||
26786 | * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope | |
26787 | FUNCTION_DECL declarations. | |
26788 | (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL | |
26789 | declarations. | |
26790 | (dwaf2out_decl): Likewise. | |
26791 | * godump.c (go_early_global_decl): Skip call to the real debug hook | |
26792 | for FUNCTION_DECL declarations. | |
26793 | * passes.c (rest_of_decl_compilation): Skip call to the | |
26794 | early_global_decl debug hook for FUNCTION_DECL declarations, unless | |
26795 | -fdump-go-spec is passed. | |
26796 | ||
26797 | 2017-06-21 Marc Glisse <marc.glisse@inria.fr> | |
26798 | ||
26799 | * config/i386/i386.c (struct builtin_isa): New field pure_p. | |
26800 | Reorder for compactness. | |
26801 | (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p. | |
26802 | (def_builtin_pure, def_builtin_pure2): New functions. | |
26803 | (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure. | |
26804 | ||
26805 | 2017-06-21 Marc Glisse <marc.glisse@inria.fr> | |
26806 | ||
26807 | * match.pd (nop_convert): New predicate. | |
26808 | ((A +- CST1) +- CST2): Allow some NOP conversions. | |
26809 | ||
26810 | 2017-06-21 Jakub Jelinek <jakub@redhat.com> | |
26811 | ||
26812 | PR c++/81130 | |
26813 | * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types | |
26814 | with ctors/dtors if GOVD_SHARED is set. | |
26815 | ||
26816 | 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com> | |
26817 | ||
26818 | * config/aarch64/aarch64.md (movti_aarch64): | |
26819 | Emit mov rather than orr. | |
26820 | (movtf_aarch64): Likewise. | |
26821 | * config/aarch64/aarch64-simd.md (aarch64_simd_mov): | |
26822 | Emit mov rather than orr. | |
26823 | ||
26824 | 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com> | |
26825 | ||
26826 | * config/aarch64/aarch64-simd.md (aarch64_simd_dup): | |
26827 | Swap alternatives, make integer dup more expensive. | |
26828 | ||
26829 | 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com> | |
26830 | ||
26831 | * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): | |
26832 | Return true for non-tls symbols. | |
26833 | ||
26834 | 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com> | |
26835 | ||
26836 | * config/aarch64/aarch64-cores.def (cortex-a55): New. | |
26837 | (cortex-a75): Likewise. | |
26838 | (cortex-a75.cortex-a55): Likewise. | |
26839 | * config/aarch64/aarch64-tune.md: Regenerate. | |
26840 | * doc/invoke.texi (-mtune): Document new values for -mtune. | |
26841 | ||
26842 | 2017-06-21 Tom de Vries <tom@codesourcery.com> | |
26843 | ||
26844 | * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add | |
26845 | stack_size feature. | |
26846 | (Effective-Target Keywords, Other attributes): Suggest using | |
26847 | dg-add-options stack_size feature to get stack limit in stack_size | |
26848 | effective target documentation. | |
26849 | ||
26850 | 2017-06-21 Julian Brown <julian@codesourcery.com> | |
26851 | Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
26852 | ||
26853 | * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi) | |
26854 | (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull. | |
26855 | * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New | |
26856 | reservation. | |
26857 | * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to | |
26858 | attribute type list for neon_multiply. | |
26859 | * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to | |
26860 | attribute type list for neon_multiply. | |
26861 | * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull. | |
26862 | * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to | |
26863 | attribute type list for neon_multiply. | |
26864 | * config/arm/types.md (crypto_pmull): Add. | |
26865 | * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to | |
26866 | attribute type list. | |
26867 | ||
26868 | 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org> | |
26869 | ||
26870 | * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to | |
26871 | arm1176jzf-s. | |
26872 | ||
26873 | 2017-06-20 Jakub Jelinek <jakub@redhat.com> | |
26874 | ||
26875 | * ira-costs.c (find_costs_and_classes): Initialize cost_classes later | |
26876 | to make sure not to dereference a NULL cost_classes_ptr pointer. | |
26877 | ||
26878 | 2017-06-20 Carl Love <cel@us.ibm.com> | |
26879 | ||
26880 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
26881 | ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW, | |
26882 | ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries. | |
26883 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin, | |
26884 | builtin_function_type): Add ALTIVEC_BUILTIN_* case statements. | |
26885 | * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW, | |
26886 | VMULOSW): New enum "unspec" values. | |
26887 | (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, | |
26888 | vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, | |
26889 | altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw, | |
26890 | altivec_vmulosw): New patterns. | |
26891 | * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW, | |
26892 | VMULOSW): Add definitions. | |
26893 | ||
26894 | 2017-06-20 Julia Koval <julia.koval@intel.com> | |
26895 | ||
26896 | * config/i386/i386.c: Fix rounding expand for new pattern. | |
26897 | * config/i386/subst.md: Fix pattern (parallel -> unspec). | |
26898 | ||
26899 | 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com> | |
26900 | ||
26901 | * config/aarch64/aarch64-option-extensions.def (rcpc): New. | |
26902 | * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New. | |
26903 | ||
26904 | 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com> | |
26905 | ||
26906 | * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected | |
26907 | feature string. | |
26908 | ||
26909 | 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com> | |
26910 | ||
26911 | * config/aarch64/aarch64-cores.def: Rearrange to sort by | |
26912 | architecture, then by implementer ID. | |
26913 | * config/aarch64/aarch64-tune.md: Regenerate. | |
26914 | ||
26915 | 2017-06-20 Richard Biener <rguenther@suse.de> | |
26916 | ||
26917 | PR middle-end/81097 | |
26918 | * fold-const.c (split_tree): Fold to type before negating. | |
26919 | ||
26920 | 2017-06-20 David Malcolm <dmalcolm@redhat.com> | |
26921 | ||
26922 | * diagnostic-show-locus.c | |
26923 | (selftest::test_fixit_deletion_affecting_newline): New function. | |
26924 | (selftest::diagnostic_show_locus_c_tests): Call it. | |
26925 | ||
26926 | 2017-06-20 Andreas Schwab <schwab@suse.de> | |
26927 | ||
26928 | PR target/80970 | |
26929 | * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d" | |
26930 | instead of "+d". | |
26931 | ||
26932 | 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com> | |
26933 | ||
26934 | * config/arm/arm-c.c (arm_cpu_builtins): New block to define | |
26935 | __ARM_FEATURE_COPROC according to support. | |
26936 | ||
26937 | 2017-06-20 Jakub Jelinek <jakub@redhat.com> | |
26938 | ||
26939 | * tree-chkp.c (chkp_get_hard_register_var_fake_base_address): | |
26940 | Rewritten to avoid overflow for > 32-bit pointers. | |
26941 | ||
26942 | PR sanitizer/81125 | |
26943 | * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser | |
26944 | by removing enum keyword. | |
26945 | (ubsan_type_descriptor): Likewise. Formatting fix. | |
26946 | ||
26947 | PR target/81121 | |
26948 | * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} | |
26949 | splitter): Require TARGET_SSE2 in the condition. | |
26950 | ||
26951 | 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com> | |
26952 | ||
26953 | PR target/79799 | |
26954 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support | |
26955 | for doing vector set of SFmode on ISA 3.0. | |
26956 | * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise. | |
26957 | (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF | |
26958 | element. | |
26959 | (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a | |
26960 | SFmode value into a V4SF variable that was extracted from another | |
26961 | V4SF variable without converting the element to double precision | |
26962 | and back to single precision vector format. | |
26963 | (vsx_insert_extract_v4sf_p9_2): Likewise. | |
26964 | ||
26965 | 2017-06-19 Jakub Jelinek <jakub@redhat.com> | |
26966 | ||
26967 | * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply | |
26968 | in UWHI to avoid undefined overflow. | |
26969 | ||
26970 | PR sanitizer/81125 | |
26971 | * ubsan.h (enum ubsan_encode_value_phase): New. | |
26972 | (ubsan_encode_value): Change second argument to | |
26973 | enum ubsan_encode_value_phase with default value of | |
26974 | UBSAN_ENCODE_VALUE_GENERIC. | |
26975 | * ubsan.c (ubsan_encode_value): Change second argument to | |
26976 | enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P, | |
26977 | adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just | |
26978 | create_tmp_var_raw instead of create_tmp_var and use a | |
26979 | TARGET_EXPR. | |
26980 | (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin, | |
26981 | instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust | |
26982 | ubsan_encode_value callers. | |
26983 | ||
26984 | PR sanitizer/81111 | |
26985 | * ubsan.c (ubsan_encode_value): If current_function_decl is NULL, | |
26986 | use create_tmp_var_raw instead of create_tmp_var, mark it addressable | |
26987 | just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR. | |
26988 | ||
26989 | 2017-06-19 Richard Biener <rguenther@suse.de> | |
26990 | ||
26991 | PR middle-end/81118 | |
26992 | * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter | |
26993 | estimates if we changed anything. | |
26994 | ||
26995 | 2017-06-19 Richard Biener <rguenther@suse.de> | |
26996 | ||
26997 | PR tree-optimization/80887 | |
26998 | * tree-ssa-sccvn.c (mprts_hook_cnt): New global. | |
26999 | (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful | |
27000 | simplified lookups, then reset mprts_hook. | |
27001 | (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before | |
27002 | simplifying. | |
27003 | (try_to_simplify): Likewise. | |
27004 | ||
27005 | 2017-06-19 Martin Liska <mliska@suse.cz> | |
27006 | ||
27007 | PR sanitizer/80879 | |
27008 | * gimplify.c (gimplify_switch_expr): | |
27009 | Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST. | |
27010 | ||
27011 | 2017-06-19 Martin Liska <mliska@suse.cz> | |
27012 | ||
27013 | * doc/install.texi: Document that PGO runs in 4 stages. | |
27014 | ||
27015 | 2017-06-19 Martin Liska <mliska@suse.cz> | |
27016 | ||
27017 | PR ipa/80732 | |
27018 | * attribs.c (make_dispatcher_decl): Do not append '.ifunc' | |
27019 | to dispatcher function name. | |
27020 | * multiple_target.c (replace_function_decl): New function. | |
27021 | (create_dispatcher_calls): Redirect both edges and references. | |
27022 | ||
27023 | 2017-06-19 Jan Hubicka <hubicka@ucw.cz> | |
27024 | ||
27025 | * profile-count.c (profile_count::dump): Dump quality. | |
27026 | (profile_count::differs_from_p): Update for unsigned val. | |
27027 | * profile-count.h (profile_count_quality): New enum. | |
27028 | (profile_count): Turn m_val to 62bit unsigned, add quality tracking. | |
27029 | ||
27030 | 2017-06-19 Richard Biener <rguenther@suse.de> | |
27031 | ||
27032 | * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take | |
27033 | struct function as arg. | |
27034 | (estimate_numbers_of_iterations): Export overload with loop arg. | |
27035 | (free_numbers_of_iterations_estimates_loop): Use an overload of | |
27036 | free_numbers_of_iterations_estimates instead. | |
27037 | * tree-cfg.c (remove_bb): Adjust. | |
27038 | * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise. | |
27039 | * tree-parloops.c (gen_parallel_loop): Likewise. | |
27040 | * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): | |
27041 | Likewise. | |
27042 | (tree_unroll_loops_completely): Likewise. | |
27043 | * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): | |
27044 | Use an overload instead and export. | |
27045 | (estimated_loop_iterations): Adjust. | |
27046 | (max_loop_iterations): Likewise. | |
27047 | (likely_max_loop_iterations): Likewise. | |
27048 | (estimate_numbers_of_iterations): Take struct function as arg | |
27049 | and adjust. | |
27050 | (loop_exits_before_overflow): Adjust. | |
27051 | (free_numbers_of_iterations_estimates_loop): Use an overload. | |
27052 | * tree-vect-loop.c (vect_analyze_loop_form): Adjust. | |
27053 | * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise. | |
27054 | ||
27055 | 2017-06-19 Richard Biener <rguenther@suse.de> | |
27056 | ||
27057 | PR ipa/81112 | |
27058 | * ipa-prop.c (find_constructor_constant_at_offset): Handle | |
27059 | RANGE_EXPR conservatively. | |
27060 | ||
27061 | 2017-06-16 Carl Love <cel@us.ibm.com> | |
27062 | ||
27063 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
27064 | definitions for vec_float, vec_float2, vec_floato, | |
27065 | vec_floate built-ins. | |
27066 | * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code | |
27067 | for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and | |
27068 | floate. | |
27069 | * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF, | |
27070 | FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF, | |
27071 | UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions. | |
27072 | * config/altivec.md (define_insn "p8_vmrgew_<mode>", | |
27073 | define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew. | |
27074 | * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate, | |
27075 | vec_floato): Add builtin defines. | |
27076 | * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato): | |
27077 | Update the built-in documentation file for the new built-in | |
27078 | functions. | |
27079 | ||
27080 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27081 | ||
27082 | * config/arm/arm.opt (marm): Mark as the negative of of -mthumb. | |
27083 | (mthumb): Mark as the negative of -marm. | |
27084 | ||
27085 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27086 | ||
27087 | * doc/invoke.texi (ARM Options, -mcpu): Document supported | |
27088 | extension options. | |
27089 | (ARM Options, -mtune): Document that this accepts the same | |
27090 | extension options as -mcpu. | |
27091 | (ARM Options, -mfpu): Document addition of -mfpu=auto. | |
27092 | ||
27093 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27094 | ||
27095 | * doc/invoke.texi (ARM Options, -march=): Document new syntax and | |
27096 | permitted extensions. | |
27097 | ||
27098 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27099 | ||
27100 | * config/arm/arm-cpus.in (armv7): Add extension +nofp. | |
27101 | (armv7-r): Add aliases vfpv3xd and vfpv3-d16. | |
27102 | (armv8-m.main): Add option +nodsp. | |
27103 | * config/arm/arm-cpu-cdata.h: Regenerated. | |
27104 | ||
27105 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27106 | ||
27107 | * config/arm/t-fuchsia: New file. | |
27108 | * config.gcc (arm*-*-fuchsia*): Use it. | |
27109 | ||
27110 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27111 | ||
27112 | * config/arm/t-symbian: Rewrite for new option infrastructure. | |
27113 | ||
27114 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27115 | ||
27116 | * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable. | |
27117 | (MULTILIB_REQUIRED): Likewise. | |
27118 | ||
27119 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27120 | ||
27121 | * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty. | |
27122 | (MULTILIB_RESUE): Likewise. | |
27123 | (MULTILIB_MATCHES): Likewise. | |
27124 | (MULTLIB_REQUIRED): Likewise. | |
27125 | ||
27126 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27127 | ||
27128 | * config/arm/t-rtems: Rewrite for new option framework. | |
27129 | ||
27130 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27131 | ||
27132 | * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants) | |
27133 | (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants) | |
27134 | (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants) | |
27135 | (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ... | |
27136 | * config/arm/t-multilib: ... here. | |
27137 | (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures. | |
27138 | (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for | |
27139 | armv7-a and armv8*-a when A-profile libraries have not been built. | |
27140 | * config/arm/t-rmprofile: Rewrite. | |
27141 | ||
27142 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27143 | ||
27144 | * genmultilib (multilib_reuse): Allow an explicit period to be escaped | |
27145 | with a backslash. Remove the backslash after substituting unescaped | |
27146 | periods. | |
27147 | * doc/fragments.texi (MULTILIB_REUSE): Document it. | |
27148 | ||
27149 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27150 | ||
27151 | * config.gcc: (arm*-*-*): When building a-profile libraries, force | |
27152 | the driver to pass through the default setting of -mfloat-abi. | |
27153 | * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm | |
27154 | rather than NULL. | |
27155 | * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty. | |
27156 | (all_feat_combs): New rule. | |
27157 | (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework | |
27158 | default libraries. | |
27159 | * config/arm/t-aprofile: Rewrite. | |
27160 | ||
27161 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27162 | ||
27163 | * config/arm/arm.h (FPUTYPE_AUTO): Define. | |
27164 | * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the | |
27165 | fpu is not specified by the user/command-line. | |
27166 | * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete. | |
27167 | * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete. | |
27168 | * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete. | |
27169 | * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete. | |
27170 | * common/config/arm/arm-common.c (arm_canon_arch_option): Use | |
27171 | FPUTYPE_AUTO insted of FPUTYPE_DEFAULT. | |
27172 | ||
27173 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27174 | ||
27175 | * config/arm/elf.h (MULTILIB_DEFAULTS): Delete. | |
27176 | * config/arm/t-arm-elf: Rewritten. | |
27177 | ||
27178 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27179 | ||
27180 | * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we | |
27181 | have some floating-point instructions. | |
27182 | (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT. | |
27183 | (TARGET_MAYBE_HARD_FLOAT): New macro. | |
27184 | * config/arm/arm-builtins.c (arm_init_builtins): Use | |
27185 | TARGET_MAYBE_HARD_FLOAT. | |
27186 | * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI. | |
27187 | ||
27188 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27189 | ||
27190 | * common/config/arm/arm-common.c: Define INCLUDE_LIST. | |
27191 | (configargs.h): Include it. | |
27192 | (arm_print_hint_for_fpu_option): New function. | |
27193 | (arm_parse_fpu_option): New function. | |
27194 | (candidate_extension): New class. | |
27195 | (arm_canon_for_multilib): New function. | |
27196 | * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro. | |
27197 | (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION. | |
27198 | (ARCH_CANONICAL_SPECS): New macro. | |
27199 | (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS. | |
27200 | ||
27201 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27202 | ||
27203 | * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu | |
27204 | are set after handling multilib fragments. Set target_cpu_default2 | |
27205 | from with_cpu. | |
27206 | ||
27207 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27208 | ||
27209 | * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real | |
27210 | cpu name. | |
27211 | (arm*-*-*): Set target_cpu_default2 to a quoted string. | |
27212 | * config/arm/parsecpu.awk (check_cpu): Validate any extension | |
27213 | options. | |
27214 | (check_arch): Likewise. | |
27215 | * config/arm/arm.c (arm_configure_build_target): Handle | |
27216 | TARGET_CPU_DEFAULT being a string constant. Scan any feature | |
27217 | options in the default. | |
27218 | ||
27219 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27220 | ||
27221 | * config/arm/arm-protos.h (cpu_arch_extension): Add field to record | |
27222 | when an option is an alias of another. | |
27223 | * config/arm/parsecpu.awk (optalias): New parser token. | |
27224 | (gen_comm_data): Mark non-alias options as such. Emit entries | |
27225 | for extension aliases. | |
27226 | * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias. | |
27227 | (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise. | |
27228 | (armv6kz, armv6zk, armv6t2): Likewise. | |
27229 | (armv7): Make vfpv3-d16 an alias. | |
27230 | (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in | |
27231 | canonical order. | |
27232 | (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases. | |
27233 | Sort in canonical order. | |
27234 | (armv8-a): Sort in canonical order. | |
27235 | (armv8.1-a, armv8.2-a): Likewise. | |
27236 | (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in | |
27237 | canonical order. | |
27238 | (cortex-a9): Sort in canonical order. | |
27239 | * config/arm/arm.c (selftests.h): Include it. | |
27240 | (arm_test_cpu_arch_data): New function. | |
27241 | (arm_run_self_tests): New function. | |
27242 | (TARGET_RUN_TARGET_SELFTESTS): Redefine. | |
27243 | (targetm): Move declaration to the end of the file. | |
27244 | * arm-cpu-cdata.h: Regenerated. | |
27245 | ||
27246 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27247 | ||
27248 | * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to | |
27249 | call to target_mode_check describing the type of option passed. | |
27250 | * common/config/arm/arm-common.c (arm_arch_core_flag): Delete. | |
27251 | (arm_target_thumb_only): Use arm_parse_arch_option_name or | |
27252 | arm_parse_cpu_option_name to match parameters against list of | |
27253 | available targets. | |
27254 | * config/arm/parsecpu.awk (gen_comm_data): Don't generate | |
27255 | arm_arch_core_flags data structure. | |
27256 | * config/arm/arm-cpu_cdata.h: Regenerated. | |
27257 | ||
27258 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27259 | ||
27260 | * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from | |
27261 | config/arm/arm.c. | |
27262 | (arm_print_hint_for_cpu_option): Likewise. | |
27263 | (arm_print_hint_for_arch_option): Likewise. | |
27264 | (arm_parse_cpu_option_name): Likewise. | |
27265 | (arm_parse_arch_option_name): Likewise. | |
27266 | * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number | |
27267 | of entries in the all_fpus list. | |
27268 | * config/arm/arm-protos.h (all_architectures, all_cores): Declare. | |
27269 | (arm_parse_cpu_option_name): Declare. | |
27270 | (arm_parse_arch_option_name): Declare. | |
27271 | (arm_parse_option_features): Declare. | |
27272 | (arm_intialize_isa): Declare. | |
27273 | * config/arm/parsecpu.awk (gen_data): Move CPU and architecture | |
27274 | data tables to ... | |
27275 | (gen_comm_data): ... here. Make definitions non-static. | |
27276 | * config/arm/arm-cpu-data.h: Regenerated. | |
27277 | * config/arm/arm-cpu-cdata.h: Regenerated. | |
27278 | ||
27279 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27280 | ||
27281 | * config/arm/arm-protos.h (arm_build_target): Remove arch_core. | |
27282 | (cpu_arch_extension): New structure. | |
27283 | (cpu_arch_option, arch_option, cpu_option): New structures. | |
27284 | * config/arm/parsecpu.awk (gen_headers): Build an enumeration of | |
27285 | architecture types. | |
27286 | (gen_data): Generate new format data tables. | |
27287 | * config/arm/arm.c (cpu_tune): New structure. | |
27288 | (cpu_option, processors): Delete. | |
27289 | (arm_print_hint_for_core_or_arch): Delete. Replace with ... | |
27290 | (arm_print_hint_for_cpu_option): ... this and ... | |
27291 | (arm_print_hint_for_arch_option): ... this. | |
27292 | (arm_parse_arch_cpu_name): Delete. Replace with ... | |
27293 | (arm_parse_cpu_option_name): ... this and ... | |
27294 | (arm_parse_arch_option_name): ... this. | |
27295 | (arm_unrecognized_feature): Change type of target parameter to | |
27296 | cpu_arch_option. | |
27297 | (arm_parse_arch_cpu_features): Delete. Replace with ... | |
27298 | (arm_parse_option_features): ... this. | |
27299 | (arm_configure_build_target): Rework to use new configuration data | |
27300 | tables. | |
27301 | (arm_print_tune_info): Rework for new configuration data tables. | |
27302 | * config/arm/arm-cpu-data.h: Regenerated. | |
27303 | * config/arm/arm-cpu.h: Regenerated. | |
27304 | ||
27305 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27306 | ||
27307 | * Makefile.in (OBJS): Move sbitmap.o from here ... | |
27308 | (OBJS-libcommon): ... to here. | |
27309 | ||
27310 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27311 | ||
27312 | * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU. | |
27313 | (ISA_ALL_CRYPTO): New macro. | |
27314 | (ISA_ALL_SIMD): New macro | |
27315 | (ISA_ALL_FP): New macro. | |
27316 | * config/arm/arm.c (fpu_bitlist): Update initializer. | |
27317 | * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto, | |
27318 | simd or fp. | |
27319 | (arm9e): Add fpu. Add option for nofp | |
27320 | (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise. | |
27321 | (arm926ej-s, arm1026ej-s): Likewise. | |
27322 | (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16, | |
27323 | vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3, | |
27324 | neon-fp16, neon-vfpv4, nofp and nosimd. | |
27325 | (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp. | |
27326 | (cortex-a8): Add fpu. Add option for nofp. | |
27327 | (cortex-a9): Add fpu. Add options for nosimd and nofp. | |
27328 | (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp. | |
27329 | (cortex-r4f): Add fpu. | |
27330 | (cortex-r5): Add fpu. Add options for nofp.dp and nofp. | |
27331 | (cortex-r7): Use idiv option from architecture. Add fpu. Add option | |
27332 | for nofp. | |
27333 | (cortex-r8): Likewise. | |
27334 | (cortex-m4): Add fpu. Add option for nofp. | |
27335 | (cortex-a15.cortex-a7): Add fpu. Add option for nofp. | |
27336 | (cortex-a17.cortex-a7): Likewise. | |
27337 | (cortex-a32): Add fpu. Add options for crypto and nofp. | |
27338 | (cortex-a35, cortex-a53): Likewise. | |
27339 | (cortex-a57): Add fpu. Add option for crypto. | |
27340 | (cortex-a72, cortex-a73): Likewise. | |
27341 | (exynos-m1): Likewise. | |
27342 | (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise. | |
27343 | (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise. | |
27344 | (cortex-m33): Add fpu. Add option for nofp. | |
27345 | * config/arm/arm-cpu-cdata.h: Regenerated | |
27346 | * config/arm/arm-cpu-data.h: Regenerated. | |
27347 | ||
27348 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27349 | ||
27350 | * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp. | |
27351 | (armv5te, armv5tej): Likewise. | |
27352 | (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise. | |
27353 | (armv7): Add options fp and vfpv3-d16. | |
27354 | (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16, | |
27355 | vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4, | |
27356 | nofp and nosimd. | |
27357 | (armv7ve): Likewise. | |
27358 | (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv. | |
27359 | (armv7e-m): Add options fp, fpv5, fp.dp and nofp. | |
27360 | (armv8-a): Add nocrypto option. | |
27361 | (armv8.1-a, armv8.2-a): Likewise. | |
27362 | (armv8-m.main): add options fp, fp.dp and nofp. | |
27363 | ||
27364 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27365 | ||
27366 | * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and | |
27367 | nofp. | |
27368 | (armv8-a+crc): Delete. | |
27369 | (armv8.1-a): Add options simd, crypto and nofp. | |
27370 | (armv8.2-a): Add options fp16, simd, crypto and nofp. | |
27371 | (armv8.2-a+fp16): Delete. | |
27372 | (armv8-m.main): Add option dsp. | |
27373 | (armv8-m.main+dsp): Delete. | |
27374 | (cortex-a8): Add fpu. Add nofp option. | |
27375 | (cortex-a9): Add fpu. Add nofp and nosimd options. | |
27376 | * config/arm/parsecpu.awk (gen_data): Generate option tables and | |
27377 | link to main cpu and architecture data structures. | |
27378 | (gen_comm_data): Only put isa attributes from the main architecture | |
27379 | in common tables. | |
27380 | (option): New statement for architecture and CPU entries. | |
27381 | * arm.c (struct cpu_option): New structure. | |
27382 | (struct processors): Add entry for options. | |
27383 | (arm_unrecognized_feature): New function. | |
27384 | (arm_parse_arch_cpu_name): Ignore any characters after the first | |
27385 | '+' character. | |
27386 | (arm_parse_arch_cpu_feature): New function. | |
27387 | (arm_configure_build_target): Separate out any CPU and architecture | |
27388 | features and parse separately. Don't error out if -mfpu=auto is | |
27389 | used with only an architecture string. | |
27390 | (arm_print_asm_arch_directives): New function. | |
27391 | (arm_file_start): Call it. | |
27392 | * config/arm/arm-cpu-cdata.h: Regenerated. | |
27393 | * config/arm/arm-cpu-data.h: Likewise. | |
27394 | * config/arm/arm-tables.opt: Likewise. | |
27395 | ||
27396 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27397 | ||
27398 | * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the | |
27399 | assembler when it is not -mfpu=auto. | |
27400 | ||
27401 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27402 | ||
27403 | * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro. | |
27404 | (ASM_REWRITE_SPEC_FUNCTIONS): New macro. | |
27405 | (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro. | |
27406 | (ASM_CPU_SPEC): Rewrite. | |
27407 | (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro. | |
27408 | (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use | |
27409 | MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove | |
27410 | reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS. | |
27411 | * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure | |
27412 | copied string is NUL-terminated. Also strip any characters prefixed | |
27413 | by '+'. | |
27414 | (arm_rewrite_selected_arch): New function. | |
27415 | (arm_rewrite_march): New function. | |
27416 | ||
27417 | 2017-06-16 Richard Earnshaw <rearnsha@arm.com> | |
27418 | ||
27419 | * config/arm/arm.opt (x_arm_arch_string): New TargetSave option. | |
27420 | (x_arm_cpu_string, x_arm_tune_string): Likewise. | |
27421 | (march, mcpu, mtune): Convert to string-based options. | |
27422 | * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function. | |
27423 | (arm_parse_arch_cpu_name): New function. | |
27424 | (arm_configure_build_target): Use arm_parse_arch_cpu_name to | |
27425 | identify selected architecture or CPU. | |
27426 | (arm_option_save): New function. | |
27427 | (TARGET_OPTION_SAVE): Redefine. | |
27428 | (arm_option_restore): Restore string options. | |
27429 | (arm_option_print): Print string options. | |
27430 | ||
27431 | 2017-06-16 Martin Sebor <msebor@redhat.com> | |
27432 | ||
27433 | PR tree-optimization/80933 | |
27434 | PR tree-optimization/80934 | |
27435 | * builtins.c (fold_builtin_3): Do not handle bcmp here. | |
27436 | * gimple-fold.c (gimple_fold_builtin_bcmp): New function. | |
27437 | (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise. | |
27438 | (gimple_fold_builtin): Call them. | |
27439 | ||
27440 | 2017-06-16 Jan Hubicka <hubicka@ucw.cz> | |
27441 | ||
27442 | * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path | |
27443 | as unlikely; update profile. | |
27444 | ||
27445 | 2017-06-16 Jan Hubicka <hubicka@ucw.cz> | |
27446 | ||
27447 | * predict.c (force_edge_cold): Handle declaring edges impossible | |
27448 | more aggresively. | |
27449 | ||
27450 | 2017-06-16 Jan Hubicka <hubicka@ucw.cz> | |
27451 | ||
27452 | * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update | |
27453 | profile. | |
27454 | (try_unroll_loop_completely): Fix reporting. | |
27455 | ||
27456 | 2017-06-16 Jan Hubicka <hubicka@ucw.cz> | |
27457 | ||
27458 | * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating. | |
27459 | ||
27460 | 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com> | |
27461 | ||
27462 | PR target/71778 | |
27463 | * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET | |
27464 | if given a non-constant argument for an intrinsic which requires a | |
27465 | constant. | |
27466 | ||
27467 | 2017-06-16 Jan Hubicka <hubicka@ucw.cz> | |
27468 | ||
27469 | * profile.c (compare_freqs): New function. | |
27470 | (branch_prob): Sort edge list. | |
27471 | (find_spanning_tree): Assume that the list is priority sorted. | |
27472 | ||
27473 | 2017-06-16 Richard Biener <rguenther@suse.de> | |
27474 | ||
27475 | PR tree-optimization/81090 | |
27476 | * passes.def (pass_record_bounds): Remove. | |
27477 | * tree-pass.h (make_pass_record_bounds): Likewise. | |
27478 | * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds, | |
27479 | make_pass_record_bounds): Likewise. | |
27480 | * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do | |
27481 | not free niter estimates at the beginning but at the end. | |
27482 | * tree-scalar-evolution.c (scev_finalize): Free niter estimates. | |
27483 | ||
27484 | 2017-06-16 Richard Biener <rguenther@suse.de> | |
27485 | ||
27486 | * tree-switch-conversion.c (emit_case_bit_tests): Adjust | |
27487 | initializer to workaround ICE in host GCC 4.8. | |
27488 | ||
27489 | 2017-06-16 Jan Hubicka <hubicka@ucw.cz> | |
27490 | ||
27491 | * ipa-inline-transform.c (update_noncloned_frequencies): Update also | |
27492 | counts. | |
27493 | (clone_inlined_nodes): Update. | |
27494 | ||
27495 | 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
27496 | ||
27497 | * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update | |
27498 | prefetch settings, and enable prefetching by default at -O3. | |
27499 | ||
27500 | 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
27501 | ||
27502 | * config/aarch64/aarch64.c (aarch64_override_options_internal): | |
27503 | Set flag_prefetch_loop_arrays according to tuning data. | |
27504 | ||
27505 | 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
27506 | ||
27507 | * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune): | |
27508 | New tune structure. | |
27509 | (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size. | |
27510 | [Unrelated to main purpose of the patch] Place the pointer field last | |
27511 | to enable type checking errors when tune structure are wrongly merged. | |
27512 | * config/aarch64/aarch64.c (generic_prefetch_tune,) | |
27513 | (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,) | |
27514 | (thunderx2t99_prefetch_tune): New tune constants. | |
27515 | (tune_params *_tunings): Update all tunings (no functional change). | |
27516 | (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES, | |
27517 | PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE | |
27518 | from tunings structures. | |
27519 | ||
27520 | 2017-06-16 Jakub Jelinek <jakub@redhat.com> | |
27521 | ||
27522 | PR sanitizer/81094 | |
27523 | * ubsan.c (instrument_null): Add T argument, use it instead | |
27524 | of computing it based on IS_LHS. | |
27525 | (instrument_object_size): Likewise. | |
27526 | (pass_ubsan::execute): Adjust instrument_null and | |
27527 | instrument_object_size callers to pass gimple_get_lhs or | |
27528 | gimple_assign_rhs1 result to it. Use instrument_null instead of | |
27529 | calling get_base_address and instrument_mem_ref. Handle | |
27530 | aggregate call arguments for object-size sanitization. | |
27531 | ||
27532 | 2017-06-16 Yury Gribov <tetra2005@gmail.com> | |
27533 | ||
27534 | PR tree-optimization/81089 | |
27535 | * tree-vrp.c (is_masked_range_test): Validate operands of | |
27536 | subexpression. | |
27537 | ||
27538 | 2017-06-15 Martin Sebor <msebor@redhat.com> | |
27539 | ||
27540 | PR c++/80560 | |
27541 | * dumpfile.c (dump_register): Avoid calling memset to initialize | |
27542 | a class with a default ctor. | |
27543 | * gcc.c (struct compiler): Remove const qualification. | |
27544 | * genattrtab.c (gen_insn_reserv): Replace memset with initialization. | |
27545 | * hash-table.h: Ditto. | |
27546 | * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with | |
27547 | assignment. | |
27548 | * ipa-prop.c (ipa_free_edge_args_substructures): Ditto. | |
27549 | * omp-low.c (lower_omp_ordered_clauses): Replace memset with | |
27550 | default ctor. | |
27551 | * params.h (struct param_info): Make struct members non-const. | |
27552 | * tree-switch-conversion.c (emit_case_bit_tests): Replace memset | |
27553 | with default initialization. | |
27554 | * vec.h (vec_copy_construct, vec_default_construct): New helper | |
27555 | functions. | |
27556 | (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy | |
27557 | with vec_copy_construct. | |
27558 | (vect<T>::quick_grow_cleared): Replace memset with default ctor. | |
27559 | (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same. | |
27560 | * doc/invoke.texi (-Wclass-memaccess): Document. | |
27561 | ||
27562 | 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
27563 | ||
27564 | * emit-rtl.h (is_leaf): Update comment about local | |
27565 | register allocator. | |
27566 | ||
27567 | 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com> | |
27568 | ||
27569 | PR target/78818 | |
27570 | * config/msp430/msp430.c (msp430_data_attr): Check that it's possible | |
27571 | for a variable to have a section before checking if the section has a | |
27572 | name. | |
27573 | Set section to.persistent if persistent attribute is set. | |
27574 | Warn if .persistent attribute is used on an automatic variable. | |
27575 | ||
27576 | 2017-06-15 Eric Botcazou <ebotcazou@adacore.com> | |
27577 | ||
27578 | PR rtl-optimization/80474 | |
27579 | * reorg.c (update_block): Do not ignore instructions in a delay slot. | |
27580 | ||
27581 | 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org> | |
27582 | ||
27583 | * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead | |
27584 | of REGNO. | |
27585 | ||
27586 | 2017-06-14 Maciej W. Rozycki <macro@imgtec.com> | |
27587 | ||
27588 | * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant. | |
27589 | (casesi): Emit bounds checking as RTL. | |
27590 | (casesi_internal_mips16_<mode>): Remove bounds checking. | |
27591 | ||
27592 | 2017-06-14 Max Filippov <jcmvbkbc@gmail.com> | |
27593 | ||
27594 | * config/xtensa/xtensa.c (xtensa_option_override): Append | |
27595 | MASK_CONST16 to target_flags in the absence of TARGET_L32R. | |
27596 | (hwloop_optimize, hwloop_fail, hwloop_pattern_reg, | |
27597 | xtensa_doloop_hooks): Define unconditionally. | |
27598 | (xtensa_reorg_loops): Only call reorg_loops in the presence of | |
27599 | TARGET_LOOPS. | |
27600 | * config/xtensa/xtensa.h (TARGET_L32R): New definition. | |
27601 | (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account | |
27602 | for it in xtensa_option_override. | |
27603 | (HARD_FRAME_POINTER_IS_FRAME_POINTER, | |
27604 | HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions. | |
27605 | ||
27606 | 2017-06-14 Boris Kolpackov <boris@codesynthesis.com> | |
27607 | ||
27608 | * doc/cppopts.texi: Document '-' special value to -MF. | |
27609 | ||
27610 | 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com> | |
27611 | ||
27612 | * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency. | |
27613 | (cortex_a53_fconst): Likewise. | |
27614 | (cortex_a53_fpmul): Likewise. | |
27615 | (cortex_a53_f_load_64): Likewise. | |
27616 | (cortex_a53_f_load_many): Likewise. | |
27617 | (cortex_a53_advsimd_alu): Likewise. | |
27618 | (cortex_a53_advsimd_alu_q): Likewise. | |
27619 | (cortex_a53_advsimd_mul): Likewise. | |
27620 | (cortex_a53_advsimd_mul_q): Likewise. | |
27621 | (fpmac bypass): Add new bypass for fpmac-fpmac case. | |
27622 | Add missing fmul, r2f_cvt and fconst cases. | |
27623 | ||
27624 | 2017-06-14 Richard Biener <rguenther@suse.de> | |
27625 | ||
27626 | PR middle-end/81088 | |
27627 | * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from | |
27628 | literal constants. | |
27629 | (fold_binary_loc): When associating do not treat pre-existing | |
27630 | TREE_OVERFLOW on literal constants as a reason to allow | |
27631 | TREE_OVERFLOW on associated literal constants. | |
27632 | ||
27633 | 2017-06-14 Eric Botcazou <ebotcazou@adacore.com> | |
27634 | ||
27635 | * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3. | |
27636 | (MASK_FEATURES): New macro. | |
27637 | * config/sparc/sparc.c (sparc_option_override): Remove the special | |
27638 | handling of -mfpu and generalize it to all MASK_FEATURES switches. | |
27639 | ||
27640 | 2017-06-14 Eric Botcazou <ebotcazou@adacore.com> | |
27641 | ||
27642 | * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify | |
27643 | a division of 0 if non-call exceptions are enabled. | |
27644 | ||
27645 | 2017-06-14 Andrew Pinski <apinski@cavium.com> | |
27646 | Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
27647 | ||
27648 | PR target/71663 | |
27649 | * config/aarch64/aarch64.c (aarch64_expand_vector_init): | |
27650 | Improve vector initialization code gen for only variable case. | |
27651 | ||
27652 | 2017-06-14 Eric Botcazou <ebotcazou@adacore.com> | |
27653 | ||
27654 | * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry. | |
27655 | ||
27656 | 2017-06-14 Richard Biener <rguenther@suse.de> | |
27657 | ||
27658 | PR tree-optimization/81083 | |
27659 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals | |
27660 | as values. | |
27661 | ||
27662 | 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> | |
27663 | ||
27664 | * config/rs6000/rs6000.c: Update all comments that mentioned SPE. | |
27665 | (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL. | |
27666 | * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete. | |
27667 | * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use. | |
27668 | * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete. | |
27669 | * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete. | |
27670 | ||
27671 | 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> | |
27672 | ||
27673 | * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE. | |
27674 | * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE. | |
27675 | ||
27676 | 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> | |
27677 | ||
27678 | * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete. | |
27679 | ||
27680 | 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> | |
27681 | ||
27682 | * config/rs6000/t-rtems: Don't handle SPE. | |
27683 | ||
27684 | 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> | |
27685 | ||
27686 | * config/rs6000/t-linux: Don't handle SPE. | |
27687 | ||
27688 | 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> | |
27689 | ||
27690 | * config/rs6000/eabispe.h: Delete file. | |
27691 | ||
27692 | 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> | |
27693 | ||
27694 | * config/rs6000/t-spe: Delete file. | |
27695 | ||
27696 | 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> | |
27697 | ||
27698 | * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete. | |
27699 | (rs6000_legitimate_offset_address_p): Return false for anything in | |
27700 | V2SImode or V2SFmode. | |
27701 | ||
27702 | 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org> | |
27703 | ||
27704 | * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes | |
27705 | except V2SF and V2SI. Rearrange the vector modes, and add comments. | |
27706 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode | |
27707 | and V4HImode. | |
27708 | (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode. | |
27709 | (rs6000_legitimate_offset_address_p): Ditto. | |
27710 | (rs6000_emit_move): Ditto. | |
27711 | (rs6000_init_builtins): Remove V4HI_type_node. | |
27712 | ||
27713 | 2017-06-13 Martin Liska <mliska@suse.cz> | |
27714 | ||
27715 | PR sanitize/78204 | |
27716 | * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p. | |
27717 | (gate_asan): Likewise. | |
27718 | * asan.h (asan_no_sanitize_address_p): Remove the function. | |
27719 | (sanitize_flags_p): New function. | |
27720 | * builtins.def: Fix coding style. | |
27721 | * common.opt: Use renamed enum value. | |
27722 | * convert.c (convert_to_integer_1): Use sanitize_flags_p. | |
27723 | * doc/extend.texi: Document no_sanitize attribute. | |
27724 | * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT | |
27725 | to SANITIZE_UNDEFINED_NONDEFAULT. | |
27726 | * gcc.c (sanitize_spec_function): Use the renamed enum value. | |
27727 | * gimple-fold.c (optimize_atomic_compare_exchange_p): | |
27728 | Use sanitize_flags_p. | |
27729 | * gimplify.c (gimplify_function_tree): Likewise. | |
27730 | * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise. | |
27731 | * opts.c (parse_no_sanitize_attribute): New function. | |
27732 | (common_handle_option): Use renamed enum value. | |
27733 | * opts.h (parse_no_sanitize_attribute): Declare. | |
27734 | * tree.c (sanitize_flags_p): New function. | |
27735 | * tree.h: Declared here. | |
27736 | * tsan.c: Use sanitize_flags_p. | |
27737 | * ubsan.c (ubsan_expand_null_ifn): Likewise. | |
27738 | (instrument_mem_ref): Likewise. | |
27739 | (instrument_bool_enum_load): Likewise. | |
27740 | (do_ubsan_in_current_function): Remove the function. | |
27741 | (pass_ubsan::execute): Use sanitize_flags_p. | |
27742 | * ubsan.h: Remove do_ubsan_in_current_function | |
27743 | * tree-cfg.c (print_no_sanitize_attr_value): New function. | |
27744 | (dump_function_to_file): Use it here. | |
27745 | ||
27746 | 2017-06-13 Martin Jambor <mjambor@suse.cz> | |
27747 | ||
27748 | PR tree-optimization/80803 | |
27749 | PR tree-optimization/81063 | |
27750 | * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file. | |
27751 | (propagate_subaccesses_across_link): Enqueue subtree whenever | |
27752 | necessary instead of relying on the caller. | |
27753 | ||
27754 | 2017-06-13 Martin Jambor <mjambor@suse.cz> | |
27755 | ||
27756 | * tree-sra.c (add_access_to_work_queue): Only enqueue accesses | |
27757 | that have a first_link. | |
27758 | (sort_and_splice_var_accesses): Do not check first_link before | |
27759 | enquing. | |
27760 | (subtree_mark_written_and_enqueue): Likewise. | |
27761 | (propagate_all_subaccesses): Likewise and do not stop at first | |
27762 | parent with a first_link. | |
27763 | ||
27764 | 2017-06-13 Martin Jambor <mjambor@suse.cz> | |
27765 | ||
27766 | * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr | |
27767 | instead of f. | |
27768 | ||
27769 | 2017-06-13 Yury Gribov <tetra2005@gmail.com> | |
27770 | ||
27771 | * match.pd: New pattern. | |
27772 | ||
27773 | 2017-06-13 Yury Gribov <tetra2005@gmail.com> | |
27774 | ||
27775 | * tree-vrp.c (is_masked_range_test): New function. | |
27776 | (register_edge_assert_for): Determine ranges for | |
27777 | some bit tests. | |
27778 | ||
27779 | 2017-06-13 Yury Gribov <tetra2005@gmail.com> | |
27780 | ||
27781 | PR tree-optimization/67328 | |
27782 | * fold-const.c (maskable_range_p): New function. | |
27783 | (build_range_check): Generate bittests if possible. | |
27784 | ||
27785 | 2017-06-13 Martin Liska <mliska@suse.cz> | |
27786 | ||
27787 | * gimple-pretty-print.c (dump_probability): Add new argument. | |
27788 | (dump_edge_probability): Dump both probability and count. | |
27789 | (dump_gimple_label): Likewise. | |
27790 | (dump_gimple_bb_header): Likewise. | |
27791 | ||
27792 | 2017-06-13 Georg-Johann Lay <avr@gjlay.de> | |
27793 | ||
27794 | PR target/81072 | |
27795 | * config/avr/avr-devices.c: Fix indentation. | |
27796 | * config/avr/gen-avr-mmcu-specs.c: Dito. | |
27797 | ||
27798 | 2017-06-13 Richard Biener <rguenther@suse.de> | |
27799 | ||
27800 | * tree-vect-loop.c (vect_model_reduction_cost): Do not fail, | |
27801 | instead get vector type from stmt_info. | |
27802 | (vectorizable_reduction): Adjust. Remove dead code. | |
27803 | ||
27804 | 2017-06-13 Richard Biener <rguenther@suse.de> | |
27805 | ||
27806 | PR middle-end/81065 | |
27807 | * fold-const.c (extract_muldiv_1): Remove bogus distribution | |
27808 | case of C * (x * C2 + C3). | |
27809 | (fold_addr_of_array_ref_difference): Properly fold index difference. | |
27810 | ||
27811 | 2017-06-12 David S. Miller <davem@davemloft.net> | |
27812 | ||
27813 | PR target/80968 | |
27814 | * config/sparc/sparc.md (return expander): Emit frame blockage if | |
27815 | function uses alloca. | |
27816 | ||
27817 | 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org> | |
27818 | ||
27819 | * combine.c (make_field_assignment): Check len rather than the mode | |
27820 | precision when calling force_to_mode. | |
27821 | ||
27822 | 2017-06-12 Georg-Johann Lay <avr@gjlay.de> | |
27823 | ||
27824 | Support multilibs and devices that see flash in RAM address range. | |
27825 | ||
27826 | PR target/81072 | |
27827 | * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum. | |
27828 | (avr_mcu_t) <flash_pm_offset>: New field. | |
27829 | (avr_device_specific_features) <AVR_ISA_RCALL>: New enum. | |
27830 | * config/avr/avr.h (AVR_SHORT_CALLS): New define. | |
27831 | (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS. | |
27832 | (AVR_TINY_PM_OFFSET): Remove macro. | |
27833 | * config/avr/avr.opt (-mshort-calls): New option. | |
27834 | * config/avr/gen-avr-mmcu-specs.c (print_mcu) | |
27835 | [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL. | |
27836 | * config/avr/avr-c.c (avr_cpu_cpp_builtins) | |
27837 | <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS. | |
27838 | <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition | |
27839 | instead of avr_arch->have_jmp_call. | |
27840 | <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset. | |
27841 | [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use | |
27842 | avr_arch->flash_pm_offset to define. | |
27843 | * config/avr/avr-devices.c (avr_arch_types): Add initializers for | |
27844 | new field flash_pm_offset. Add entry for avrxmega3. | |
27845 | (avr_texinfo): Add entry for avrxmega3. | |
27846 | * config/avr/avr-mcus.def: Add entries for: avrxmega3, | |
27847 | attiny212, attiny214, | |
27848 | attiny412, attiny414, attiny416, attiny417, | |
27849 | attiny814, attiny816, attiny817, | |
27850 | attiny1614, attiny1616, attiny1617, | |
27851 | attiny3214, attiny3216, attiny3217. | |
27852 | * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use | |
27853 | avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET. | |
27854 | (avr_print_operand_address) [AVR_TINY]: Same. | |
27855 | (avr_asm_init_sections) <readonly_data_section>: Only patch | |
27856 | callback if avr_arch->flash_pm_offset = 0. | |
27857 | (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it | |
27858 | for rodata if avr_arch->flash_pm_offset != 0. | |
27859 | (avr_encode_section_info) [AVR_TINY]: Adjust comment. | |
27860 | * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars. | |
27861 | (opts) [AVR_ISA_RCALL]: Append opt_rcall. | |
27862 | (m_options): Append opt_rcall. | |
27863 | (m_dirnames): Append dir_rcall. | |
27864 | * config/avr/t-multilib: Regenerate. | |
27865 | ||
27866 | * configure.ac [target=avr]: Check whether avrxmega3 default | |
27867 | linker description file works as needed. | |
27868 | * configure: Regenerate. | |
27869 | * doc/avr-mmcu.texi: Regenerate. | |
27870 | * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it. | |
27871 | <__AVR_ARCH__>: Document avrxmega3 and 103. | |
27872 | <__AVR_HAVE_JMP_CALL__>: Adjust documentation. | |
27873 | <__AVR_SHORT_CALLS__>: Document it. | |
27874 | <__AVR_PM_BASE_ADDRESS__>: Document it. | |
27875 | * doc/extend.texi (AVR Options) <-mshort-calls>: Document it. | |
27876 | (AVR Variable Attributes) <progmem>: Document this is | |
27877 | not needed for avrxmega3. | |
27878 | (AVR Named Address Spaces) <__flash>: Dito. | |
27879 | ||
27880 | 2017-06-12 Jan Hubicka <hubicka@ucw.cz> | |
27881 | ||
27882 | * cgraph.c (cgraph_node::dump): Complain about profile insanities. | |
27883 | ||
27884 | 2017-06-12 Doug Rupp <rupp@adacore.com> | |
27885 | ||
27886 | * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide". | |
27887 | Append vxworks-stdint.h to the tm_file list. | |
27888 | * config/vxworks-stdint.h: New file. | |
27889 | ||
27890 | 2017-06-12 Martin Liska <mliska@suse.cz> | |
27891 | ||
27892 | PR tree-optimization/81041 | |
27893 | * tree-profile.c (gimple_gen_ic_func_profiler): | |
27894 | Create an extra BB in profile-generate | |
27895 | (gimple_gen_time_profiler): Likewise. | |
27896 | ||
27897 | 2017-06-12 Jakub Jelinek <jakub@redhat.com> | |
27898 | ||
27899 | PR tree-optimization/81003 | |
27900 | * tree-ssa-reassoc.c (force_into_ssa_name): New function. | |
27901 | (update_range_test): Use it instead of force_gimple_operand_gsi. | |
27902 | ||
27903 | 2017-06-12 Richard Biener <rguenther@suse.de> | |
27904 | ||
27905 | PR tree-optimization/81053 | |
27906 | * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI | |
27907 | with backedge value not defined in loop. Simplify def stmt | |
27908 | compute. | |
27909 | ||
27910 | 2017-06-11 Tom de Vries <tom@codesourcery.com> | |
27911 | ||
27912 | PR target/79939 | |
27913 | * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function. | |
27914 | Return true. | |
27915 | (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to | |
27916 | nvptx_cannot_force_const_mem. | |
27917 | ||
27918 | 2017-06-10 Jan Hubicka <hubicka@ucw.cz> | |
27919 | ||
27920 | * opts.c (finish_options): Move test for flag_split_stack after | |
27921 | it has been initialized. | |
27922 | ||
27923 | 2017-06-11 Jason Merrill <jason@redhat.com> | |
27924 | ||
27925 | * tree.h (id_equal): New. | |
27926 | * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c, | |
27927 | omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it | |
27928 | instead of strcmp of IDENTIFIER_POINTER. | |
27929 | ||
27930 | 2017-06-10 Jan Hubicka <hubicka@ucw.cz> | |
27931 | ||
27932 | * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h | |
27933 | (mark_all_inlined_calls_cdtor): Fix formating. | |
27934 | (inline_transform): Rescale profile before inlining. | |
27935 | ||
27936 | 2017-06-10 Jan Hubicka <hubicka@ucw.cz> | |
27937 | ||
27938 | * cgraph.h (cgraph_edge::clone): Update prototype. | |
27939 | * cgraphclones.c (cgraph_edge::clone): Update profile scaling. | |
27940 | (cgraph_node::create_clone): Update. | |
27941 | (cgraph_node::create_version_clone): Update. | |
27942 | * tree-inline.c (copy_bb): Update. | |
27943 | (expand_call_inline): Update. | |
27944 | ||
27945 | 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org> | |
27946 | ||
27947 | * config/rs6000/rs6000.c (emit_vrsave_prologue): New function, | |
27948 | factored out from ... | |
27949 | (rs6000_emit_prologue): ... here. | |
27950 | ||
27951 | 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org> | |
27952 | ||
27953 | * config/rs6000/rs6000.c (emit_split_stack_prologue): New function, | |
27954 | factored out from ... | |
27955 | (rs6000_emit_prologue): ... here. | |
27956 | ||
27957 | 2017-06-10 Jan Hubicka <hubicka@ucw.cz> | |
27958 | ||
27959 | * predict.c (drop_profile): Also drop individual bb/edge and cgraph | |
27960 | edge counts. | |
27961 | (handle_missing_profiles): Fix computation of tp_first_run. | |
27962 | (counts_to_freqs): Do not touch freqs when count is 0. | |
27963 | ||
27964 | 2017-06-10 Jan Hubicka <hubicka@ucw.cz> | |
27965 | ||
27966 | * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch | |
27967 | profile. | |
27968 | ||
27969 | 2017-06-10 Tom de Vries <tom@codesourcery.com> | |
27970 | ||
27971 | * doc/sourcebuild.texi (Effective-Target Keywords, Environment | |
27972 | attributes): Document signal effective target. | |
27973 | ||
27974 | 2017-06-10 Tom de Vries <tom@codesourcery.com> | |
27975 | ||
27976 | * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): | |
27977 | Document effective target stack_size. | |
27978 | ||
27979 | 2017-06-09 David Malcolm <dmalcolm@redhat.com> | |
27980 | ||
27981 | * diagnostic.c (diagnostic_report_diagnostic): Only add fixits | |
27982 | to the edit_context if they can be auto-applied. | |
27983 | ||
27984 | 2017-06-9 Ian Lance Taylor <iant@golang.org> | |
27985 | ||
27986 | * opts.c (finish_options): If -fsplit-stack, disable implicit | |
27987 | -forder-blocks-and-partition. | |
27988 | * doc/invoke.texi (Optimize Options): Document that when using | |
27989 | -fsplit-stack -forder-blocks-and-partition is not implicitly | |
27990 | enabled. | |
27991 | ||
27992 | 2017-06-09 Jan Hubicka <hubicka@ucw.cz> | |
27993 | ||
27994 | * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST, | |
27995 | ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST, | |
27996 | ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New. | |
27997 | * builtins.def (abort, trap, unreachable): Declare cold. | |
27998 | * calls.c (flags_from_decl_or_type): Lookup ECF_COLD. | |
27999 | * tree-core.h (ECF_COLD): New. | |
28000 | * tree.c (set_call_expr_flags): Handle ECF_COLD. | |
28001 | (build_common_builtin_nodes): Mark unreachable and abort as cold. | |
28002 | ||
28003 | 2017-06-09 Jan Hubicka <hubicka@ucw.cz> | |
28004 | ||
28005 | * predict.c (unlikely_executed_stmt_p): Cleanup. | |
28006 | ||
28007 | 2017-06-09 Richard Biener <rguenther@suse.de> | |
28008 | ||
28009 | * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded | |
28010 | model if the ref is always written to. | |
28011 | ||
28012 | 2017-06-09 Tamar Christina <tamar.christina@arm.com> | |
28013 | ||
28014 | * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New. | |
28015 | ||
28016 | 2017-06-09 Tamar Christina <tamar.christina@arm.com> | |
28017 | ||
28018 | * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive | |
28019 | than udiv. | |
28020 | ||
28021 | 2017-06-09 Tom de Vries <tom@codesourcery.com> | |
28022 | ||
28023 | PR target/80855 | |
28024 | * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with | |
28025 | "target cannot support label values" when encountering LABEL_REF. | |
28026 | ||
28027 | 2017-06-09 Martin Liska <mliska@suse.cz> | |
28028 | ||
28029 | * tree-profile.c (gimple_gen_ic_profiler): Update comment. | |
28030 | (gimple_gen_ic_func_profiler): Emit direct comparison | |
28031 | of __gcov_indirect_call_callee with NULL. | |
28032 | (gimple_gen_time_profiler): Change probability from | |
28033 | PROB_VERY_UNLIKELY to PROB_UNLIKELY. | |
28034 | ||
28035 | 2017-06-09 Jan Hubicka <hubicka@ucw.cz> | |
28036 | ||
28037 | * profile.c (edge_gcov_counts): Turn to pointer. | |
28038 | (compute_branch_probabilities, compute_branch_probabilities): Update. | |
28039 | (branch_prob): Do not clear edge_gcov_count. | |
28040 | * profile.h (edge_gcov_counts): Turn to pointer. | |
28041 | (edge_gcov_count): Update. | |
28042 | ||
28043 | 2017-06-09 Jan Hubicka <hubicka@ucw.cz> | |
28044 | ||
28045 | * gimple.h (gimple_check_failed): Mark cold. | |
28046 | ||
28047 | 2017-06-09 Richard Biener <rguenther@suse.de> | |
28048 | ||
28049 | PR tree-optimization/66623 | |
28050 | * tree-vect-loop.c (vect_is_simple_reduction): Cleanup, | |
28051 | refactor check_reduction into two parts, properly computing | |
28052 | whether we have to check reduction validity for outer loop | |
28053 | vectorization. | |
28054 | ||
28055 | 2017-06-09 Richard Biener <rguenther@suse.de> | |
28056 | ||
28057 | PR tree-optimization/79483 | |
28058 | * graphite-scop-detection.c (order): New global. | |
28059 | (get_order): Compute bb to order mapping that satisfies code | |
28060 | generation constraints. | |
28061 | (cmp_pbbs): New helper. | |
28062 | (build_scops): Start domwalk at entry block, sort generated | |
28063 | pbbs. | |
28064 | ||
28065 | 2017-06-09 Richard Biener <rguenther@suse.de> | |
28066 | ||
28067 | PR middle-end/81007 | |
28068 | * ipa-polymorphic-call.c | |
28069 | (ipa_polymorphic_call_context::restrict_to_inner_class): | |
28070 | Skip FIELD_DECLs with error_mark_node type. | |
28071 | * passes.def (all_lowering_passes): Run pass_build_cgraph_edges | |
28072 | last again. | |
28073 | ||
28074 | 2017-06-09 Martin Liska <mliska@suse.cz> | |
28075 | ||
28076 | * predict.c (struct branch_predictor): New struct. | |
28077 | (test_prediction_value_range): New test. | |
28078 | (predict_c_tests): New function. | |
28079 | * selftest-run-tests.c (selftest::run_tests): Run the function. | |
28080 | * selftest.h: Declare new tests. | |
28081 | ||
28082 | 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org> | |
28083 | ||
28084 | PR target/80966 | |
28085 | * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that | |
28086 | gen_add3_insn did not fail. | |
28087 | * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to | |
28088 | r0, construct that number in a temporary reg and add that reg to r0. | |
28089 | If asked to put the result in r0 as well, fail. | |
28090 | ||
28091 | 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com> | |
28092 | ||
28093 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling | |
28094 | for early expansion of vec_eqv. | |
28095 | ||
28096 | 2017-06-08 Jakub Jelinek <jakub@redhat.com> | |
28097 | ||
28098 | PR middle-end/81005 | |
28099 | * ubsan.c (instrument_null): Avoid pointless code temporary. | |
28100 | (pass_ubsan::execute): Instrument aggregate arguments of calls. | |
28101 | ||
28102 | 2017-06-08 Uros Bizjak <ubizjak@gmail.com> | |
28103 | ||
28104 | PR target/81015 | |
28105 | Revert: | |
28106 | 2016-12-14 Uros Bizjak <ubizjak@gmail.com> | |
28107 | ||
28108 | PR target/59874 | |
28109 | * config/i386/i386.md (*ctzhi2): New insn_and_split pattern. | |
28110 | (*clzhi2): Ditto. | |
28111 | ||
28112 | 2017-06-08 Jan Hubicka <hubicka@ucw.cz> | |
28113 | ||
28114 | * predict.c (unlikely_executed_edge_p): Move ahead. | |
28115 | (probably_never_executed_edge_p): Use it. | |
28116 | ||
28117 | 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com> | |
28118 | ||
28119 | PR middle-end/79988 | |
28120 | * tree-chkp.c (chkp_gimple_call_builtin_p): Remove | |
28121 | gimple_call_builtin_p call. | |
28122 | ||
28123 | 2017-06-08 Jan Hubicka <hubicka@ucw.cz> | |
28124 | ||
28125 | * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD. | |
28126 | * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1, | |
28127 | rtl_check_failed_type2, rtl_check_failed_code1, | |
28128 | rtl_check_failed_code2, rtl_check_failed_code_mode, | |
28129 | rtl_check_failed_block_symbol, cwi_check_failed_bounds, | |
28130 | rtvec_check_failed_bounds, rtl_check_failed_flag, | |
28131 | _fatal_insn_not_found, _fatal_insn): Likewise. | |
28132 | * tree.h (tree_contains_struct_check_failed, | |
28133 | tree_check_failed, tree_not_check_failed, | |
28134 | tree_class_check_failed, tree_range_check_failed, | |
28135 | tree_not_class_check_failed, tree_int_cst_elt_check_failed, | |
28136 | tree_vec_elt_check_failed, phi_node_elt_check_failed, | |
28137 | tree_operand_check_failed, omp_clause_check_failed, | |
28138 | omp_clause_operand_check_failed, omp_clause_range_check_failed): | |
28139 | Likewise. | |
28140 | ||
28141 | 2017-06-08 Jan Hubicka <hubicka@ucw.cz> | |
28142 | ||
28143 | * cgraph.c (cgraph_edge::maybe_hot_p): Do not check | |
28144 | flag_branch_probabilities. | |
28145 | * ipa-inline.c (edge_badness): Likewise. | |
28146 | * ipa-profile.c (ipa_propagate_frequency_1): Likewise. | |
28147 | * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. | |
28148 | * predict.c (maybe_hot_frequency_p): Likewise. | |
28149 | (probably_never_executed): Likewise. | |
28150 | * sched-ebb.c (schedule_ebbs): Likewise. | |
28151 | * sched-rgn.c (find_single_block_region): Likewise. | |
28152 | * tracer.c (tail_duplicate): Likewise. | |
28153 | ||
28154 | 2017-06-08 Jan Hubicka <hubicka@ucw.cz> | |
28155 | ||
28156 | * opts.c (finish_options): x_flag_reorder_blocks_and_partition no | |
28157 | longer requires x_flag_profile_use. | |
28158 | ||
28159 | 2017-06-08 Jan Hubicka <hubicka@ucw.cz> | |
28160 | ||
28161 | * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition | |
28162 | instead of flag_reorder_blocks_and_partition. | |
28163 | * dbxout.c (dbxout_function_end): Likewise. | |
28164 | * dwarf2out.c (gen_subprogram_die): Likewise. | |
28165 | * haifa-sched.c (sched_create_recovery_edges): Likewise. | |
28166 | * hw-doloop.c (reorg_loops): Likewise. | |
28167 | * varasm.c (assemble_start_function, | |
28168 | assemble_end_function): Likewise. | |
28169 | (decide_function_section): Do not check for | |
28170 | flag_reorder_blocks_and_partition. | |
28171 | ||
28172 | 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com> | |
28173 | ||
28174 | * tree-chkp.c (chkp_get_hard_register_var_fake_base_address): | |
28175 | New function. | |
28176 | (chkp_get_hard_register_fake_addr_expr): Ditto. | |
28177 | (chkp_build_addr_expr): Add check for hard reg case. | |
28178 | (chkp_parse_array_and_component_ref): Ditto. | |
28179 | (chkp_find_bounds_1): Ditto. | |
28180 | (chkp_process_stmt): Don't generate bounds store for | |
28181 | hard reg case. | |
28182 | ||
28183 | 2017-06-08 Jan Hubicka <hubicka@ucw.cz> | |
28184 | ||
28185 | * predict.c (maybe_hot_bb_p): Do not check profile status. | |
28186 | (maybe_hot_edge_p): Likewise. | |
28187 | (probably_never_executed): Check for zero counts even if profile | |
28188 | is not read. | |
28189 | (unlikely_executed_edge_p): New function. | |
28190 | (unlikely_executed_stmt_p): New function. | |
28191 | (unlikely_executed_bb_p): New function. | |
28192 | (set_even_probabilities): Use unlikely predicates. | |
28193 | (combine_predictions_for_bb): Likewise. | |
28194 | (predict_paths_for_bb): Likewise. | |
28195 | (predict_paths_leading_to_edge): Likewise. | |
28196 | (determine_unlikely_bbs): New function. | |
28197 | (estimate_bb_frequencies): Use it. | |
28198 | (compute_function_frequency): Use zero counts even if profile is | |
28199 | not read. | |
28200 | * profile-count.h: Fix typo. | |
28201 | ||
28202 | 2017-08-08 Julia Koval <julia.koval@intel.com> | |
28203 | ||
28204 | * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8, | |
28205 | _mm512_mask_cvtsepi16_storeu_epi8, | |
28206 | _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics. | |
28207 | * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8, | |
28208 | _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8, | |
28209 | _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8, | |
28210 | _mm_mask_cvtepi16_storeu_epi8): New intrinsics. | |
28211 | * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type. | |
28212 | (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI, | |
28213 | VOID_FTYPE_PV16QI_V16HI_UHI): New function types. | |
28214 | * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask, | |
28215 | __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask, | |
28216 | __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask, | |
28217 | __builtin_ia32_pmovuswb256mem_mask, | |
28218 | __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask) | |
28219 | __builtin_ia32_pmovwb512mem_mask): New builtins. | |
28220 | ||
28221 | 2017-08-08 Julia Koval <julia.koval@intel.com> | |
28222 | ||
28223 | PR target/73350,80862 | |
28224 | * config/i386/subst.md (round): Fix round pattern. | |
28225 | * config/i386/i386.c (ix86_erase_embedded_rounding): | |
28226 | Fix erasing rounding for the fixed pattern. | |
28227 | ||
28228 | 2017-06-08 Jan Hubicka <hubicka@ucw.cz> | |
28229 | ||
28230 | * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko. | |
28231 | ||
28232 | 2017-06-08 Martin Liska <mliska@suse.cz> | |
28233 | ||
28234 | PR gcov-profile/80911 | |
28235 | * gcov.c (block_info::block_info): New constructor. | |
28236 | ||
28237 | 2017-06-07 Carl Love <cel@us.ibm.com> | |
28238 | ||
28239 | * config/rs6000/rs6000-c: The return type of the following | |
28240 | built-in functions was implemented as int not long long. Fix sign | |
28241 | of return value for the unsigned version of vec_mulo and vec_mule. | |
28242 | vector unsigned long long vec_bperm (vector unsigned long long, | |
28243 | vector unsigned char) | |
28244 | vector signed long long vec_mule (vector signed int, | |
28245 | vector signed int) | |
28246 | vector unsigned long long vec_mule (vector unsigned int, | |
28247 | vector unsigned int) | |
28248 | vector signed long long vec_mulo (vector signed int, | |
28249 | vector signed int) | |
28250 | vector unsigned long long vec_mulo (vector unsigned int, | |
28251 | vector unsigned int) | |
28252 | * doc/extend.texi: Fix the documentation for the built-in | |
28253 | functions. | |
28254 | ||
28255 | 2017-06-07 Carl Love <cel@us.ibm.com> | |
28256 | ||
28257 | PR target/80982 | |
28258 | * config/rs6000/altivec.md (double<mode>2): Fix the implementation of | |
28259 | for BE. | |
28260 | ||
28261 | 2017-06-07 Carl Love <cel@us.ibm.com> | |
28262 | ||
28263 | * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel | |
28264 | support, Generate doublehv for signed int/float for BE case only. | |
28265 | ||
28266 | 2017-06-07 Alexander Monakov <amonakov@ispras.ru> | |
28267 | ||
28268 | * doc/invoke.texi (mcx16): Rewrite. | |
28269 | ||
28270 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28271 | ||
28272 | * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete. | |
28273 | * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf, | |
28274 | *mov<mode>_softfloat, and an anonymous splitter): Use | |
28275 | nonimmediate_operand instead of rs6000_nonimmediate_operand. | |
28276 | ||
28277 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28278 | ||
28279 | * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and | |
28280 | SPEFSCR registers. | |
28281 | * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto. | |
28282 | (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE. | |
28283 | (rs6000_debug_reg_global): Adjust. | |
28284 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
28285 | (rs6000_dbx_register_number): Adjust. | |
28286 | * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115. | |
28287 | (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): | |
28288 | Remove SPE_ACC and SPEFSCR. | |
28289 | (REG_ALLOC_ORDER): Ditto. | |
28290 | (FRAME_POINTER_REGNUM): Change to 111. | |
28291 | (enum reg_class): Remove the SPE_ACC and SPEFSCR registers. | |
28292 | (REG_CLASS_NAMES): Ditto. | |
28293 | (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers. | |
28294 | (REGISTER_NAMES): Ditto. | |
28295 | (ADDITIONAL_REG_NAMES): Ditto. | |
28296 | (rs6000_reg_names): Ditto. | |
28297 | * config/rs6000/rs6000.md: Renumber some register number | |
28298 | define_constants. | |
28299 | ||
28300 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28301 | ||
28302 | * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high | |
28303 | registers. | |
28304 | * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto. | |
28305 | * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149 | |
28306 | to 117. | |
28307 | (DWARF_REG_TO_UNWIND_COLUMN): Do not define. | |
28308 | (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): | |
28309 | Delete the SPE high registers. | |
28310 | (REG_ALLOC_ORDER): Ditto. | |
28311 | (enum reg_class): Remove SPE_HIGH_REGS. | |
28312 | (REG_CLASS_NAMES): Ditto. | |
28313 | (REG_CLASS_CONTENTS): Delete the SPE high registers. | |
28314 | (REGISTER_NAMES): Ditto. | |
28315 | (rs6000_reg_names): Ditto. | |
28316 | * doc/tm.texi.in: Remove SPE as example. | |
28317 | * doc/tm.texi: Regenerate. | |
28318 | ||
28319 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28320 | ||
28321 | * config/rs6000/8540.md (ppc8540_brinc): Delete. | |
28322 | * config/rs6000/e500mc.md (e500mc_brinc): Delete. | |
28323 | * config/rs6000/e500mc64.md (e500mc64_brinc): Delete. | |
28324 | * config/rs6000/rs6000.md (type): Remove "brinc". | |
28325 | ||
28326 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28327 | ||
28328 | * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers. | |
28329 | (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000. | |
28330 | * config/rs6000/linuxspe.h: Delete file. | |
28331 | * config/rs6000/rs6000.md: Don't include spe.md. | |
28332 | * config/rs6000/spe.h: Delete file. | |
28333 | * config/rs6000/spe.md: Delete file. | |
28334 | * config/rs6000/t-rs6000: Remove spe.md. | |
28335 | ||
28336 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28337 | ||
28338 | * config/rs6000/predicates.md (reg_or_mem_operand): Reformat. | |
28339 | (reg_or_none500mem_operand): Delete. | |
28340 | * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand | |
28341 | instead of reg_or_none500mem_operand. | |
28342 | ||
28343 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28344 | ||
28345 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete | |
28346 | handling of SPE flags. | |
28347 | * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete. | |
28348 | ||
28349 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28350 | ||
28351 | * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove | |
28352 | SPE ABI handling. | |
28353 | * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2. | |
28354 | (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3, | |
28355 | paired_divv2sf3): Similar. | |
28356 | * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI, | |
28357 | SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify. | |
28358 | * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and | |
28359 | RS6000_BUILTIN_S. | |
28360 | Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X. | |
28361 | Rename the paired_* instruction patterns. | |
28362 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not | |
28363 | define __SPE__. | |
28364 | * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete. | |
28365 | * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S. | |
28366 | (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size, | |
28367 | spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and | |
28368 | TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with | |
28369 | PAIRED_VECTOR_MODE. | |
28370 | (struct machine_function): Delete field spe_insn_chain_scanned_p. | |
28371 | (spe_func_has_64bit_regs_p): Delete. | |
28372 | (spe_expand_predicate_builtin): Delete. | |
28373 | (spe_expand_evsel_builtin): Delete. | |
28374 | (TARGET_DWARF_REGISTER_SPAN): Do not define. | |
28375 | (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define. | |
28376 | (invalid_e500_subreg): Delete. | |
28377 | (rs6000_legitimize_address): Always force_reg op2 as well, for | |
28378 | paired single memory accesses. | |
28379 | (rs6000_member_type_forces_blk): Delete. | |
28380 | (rs6000_spe_function_arg): Delete. | |
28381 | (rs6000_expand_unop_builtin): Delete SPE handling. | |
28382 | (rs6000_expand_binop_builtin): Ditto. | |
28383 | (spe_expand_stv_builtin): Delete. | |
28384 | (bdesc_2arg_spe): Delete. | |
28385 | (spe_expand_builtin): Delete. | |
28386 | (spe_expand_predicate_builtin): Delete. | |
28387 | (spe_expand_evsel_builtin): Delete. | |
28388 | (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling. | |
28389 | (spe_init_builtins): Delete. | |
28390 | (spe_func_has_64bit_regs_p): Delete. | |
28391 | (savres_routine_name): Delete "info" parameter. Adjust callers. | |
28392 | (rs6000_emit_stack_reset): Ditto. | |
28393 | (rs6000_dwarf_register_span): Delete. | |
28394 | * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE, | |
28395 | UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P, | |
28396 | SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S): | |
28397 | Delete. | |
28398 | * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO): | |
28399 | Delete. | |
28400 | * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete. | |
28401 | * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE. | |
28402 | * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3, | |
28403 | mulv2sf3, divv2sf3): Delete expanders. | |
28404 | ||
28405 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28406 | ||
28407 | config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete. | |
28408 | ||
28409 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28410 | ||
28411 | * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete. | |
28412 | * config/rs6000/rs6000.c: Ditto. | |
28413 | ||
28414 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28415 | ||
28416 | * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete. | |
28417 | * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by | |
28418 | comparison_operator. | |
28419 | ||
28420 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28421 | ||
28422 | * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs. | |
28423 | * config/rs6000/rs6000.opt: Ditto. | |
28424 | * config/rs6000/t-rtems: Ditto. | |
28425 | ||
28426 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28427 | ||
28428 | * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and | |
28429 | TARGET_E500_SINGLE by 0, simplify. | |
28430 | * config/rs6000/rs6000.c: Ditto. | |
28431 | (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS. | |
28432 | (spe_build_register_parallel): Delete. | |
28433 | * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE, | |
28434 | TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS. | |
28435 | * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE, | |
28436 | TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify. | |
28437 | (E500_CONVERT): Delete. | |
28438 | * config/rs6000/spe.md: Remove many patterns and all define_constants. | |
28439 | ||
28440 | 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28441 | ||
28442 | * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify. | |
28443 | * config/rs6000/dfp.md: Ditto. | |
28444 | (negdd2, *negdd2_fpr): Merge. | |
28445 | (absdd2, *absdd2_fpr): Merge. | |
28446 | (negtd2, *negtd2_fpr): Merge. | |
28447 | (abstd2, *abstd2_fpr): Merge. | |
28448 | * config/rs6000/e500.h: Delete file. | |
28449 | * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace | |
28450 | TARGET_FPRS by 1 and simplify. | |
28451 | * config/rs6000/rs6000-c.c: Ditto. | |
28452 | * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and | |
28453 | TARGET_DF_SPE by 0. | |
28454 | * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and | |
28455 | TARGET_DF_SPE. | |
28456 | * config/rs6000/rs6000.md: Ditto. | |
28457 | (floatdidf2, *floatdidf2_fpr): Merge. | |
28458 | (move_from_CR_gt_bit): Delete. | |
28459 | * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify. | |
28460 | (E500_CR_IOR_COMPARE): Delete. | |
28461 | (All patterns that require !TARGET_FPRS): Delete. | |
28462 | * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify. | |
28463 | ||
28464 | 2017-06-07 Bin Cheng <bin.cheng@arm.com> | |
28465 | ||
28466 | * passes.def (pass_iv_canon): Move before pass_loop_distribution. | |
28467 | ||
28468 | 2017-06-07 Bin Cheng <bin.cheng@arm.com> | |
28469 | ||
28470 | * graphds.c (add_edge): Intitialize edge's attached data. | |
28471 | (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function | |
28472 | pointer parameter. Call pointed function on each edge during | |
28473 | graph traversing. Skip traversing the edge when the function | |
28474 | returns true. | |
28475 | (graphds_dfs, graphds_scc): Ditto. | |
28476 | (for_each_edge): New parameter. Pass the new parameter to callback | |
28477 | function. | |
28478 | * graphds.h (skip_edge_callback): New function pointer type. | |
28479 | (graphds_dfs, graphds_scc): New function pointer parameter. | |
28480 | (graphds_edge_callback, for_each_edge): New parameter. | |
28481 | ||
28482 | 2017-06-07 Bin Cheng <bin.cheng@arm.com> | |
28483 | ||
28484 | * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor | |
28485 | out code checking if runtime alias check is possible to below ... | |
28486 | Call the new function. | |
28487 | * tree-data-ref.c (runtime_alias_check_p): ... to new function. | |
28488 | * tree-data-ref.h (runtime_alias_check_p): New decalaration. | |
28489 | ||
28490 | 2017-06-07 Marek Polacek <polacek@redhat.com> | |
28491 | ||
28492 | PR sanitizer/80932 | |
28493 | * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add | |
28494 | TYPE_OVERFLOW_WRAPS check. | |
28495 | ||
28496 | 2017-06-07 Bin Cheng <bin.cheng@arm.com> | |
28497 | ||
28498 | * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop | |
28499 | if versioning is required. | |
28500 | * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop | |
28501 | peeling with the check for versioning. | |
28502 | ||
28503 | 2017-06-07 Bin Cheng <bin.cheng@arm.com> | |
28504 | ||
28505 | * tree-vectorizer.h (vect_build_loop_niters): New parameter. | |
28506 | * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter. | |
28507 | Set true to new parameter if new ssa variable is defined. | |
28508 | (vect_gen_vector_loop_niters): Refactor. Set range information | |
28509 | for the new vector loop bound variable. | |
28510 | (vect_do_peeling): Ditto. | |
28511 | ||
28512 | 2017-06-07 Bin Cheng <bin.cheng@arm.com> | |
28513 | ||
28514 | * tree-affine.c (ssa.h): Include header file. | |
28515 | (tree_to_aff_combination): Handle (T1)(X - CST) when inner type | |
28516 | has wrapping overflow behavior. | |
28517 | ||
28518 | 2017-06-07 Bin Cheng <bin.cheng@arm.com> | |
28519 | ||
28520 | * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X). | |
28521 | ||
28522 | 2017-06-07 Bin Cheng <bin.cheng@arm.com> | |
28523 | ||
28524 | (aff_combination_expand): Move (T1)(X *+- CST) simplification to ... | |
28525 | (tree_to_aff_combination): ... here. | |
28526 | ||
28527 | 2017-06-07 Bin Cheng <bin.cheng@arm.com> | |
28528 | ||
28529 | * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New | |
28530 | reg_pressure model function. | |
28531 | (ivopts_global_cost_for_size): Delete. | |
28532 | (determine_set_costs, iv_ca_recount_cost): Call new model function | |
28533 | ivopts_estimate_reg_pressure. | |
28534 | ||
28535 | 2017-06-07 Tamar Christina <tamar.christina@arm.com> | |
28536 | ||
28537 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more | |
28538 | expensive than udiv. Remove floating point cases from mod. | |
28539 | ||
28540 | 2017-06-07 Tamar Christina <tamar.christina@arm.com> | |
28541 | ||
28542 | * config/arm/aarch-cost-tables.h (cortexa53_extra_cost): | |
28543 | Increase idiv cost. | |
28544 | ||
28545 | 2017-06-07 Tamar Christina <tamar.christina@arm.com> | |
28546 | ||
28547 | * config/aarch64/aarch64.md | |
28548 | (copysignsf3): Fix mask generation. | |
28549 | ||
28550 | 2017-06-07 Jakub Jelinek <jakub@redhat.com> | |
28551 | ||
28552 | * dumpfile.h (enum tree_dump_index): Rename TDI_generic to | |
28553 | TDI_gimple. | |
28554 | (class dump_manager): Add register_dumps method. | |
28555 | * dumpfile.c: Include langhooks.h. | |
28556 | (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}. | |
28557 | (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1. | |
28558 | (FIRST_ME_AUTO_NUMBERED_DUMP): Define. | |
28559 | (dump_manager::dump_register): Start with 512 entries instead of 32. | |
28560 | (dump_manager::register_dumps): New method. | |
28561 | * toplev.c (general_init): Instead of invoking register_dumps | |
28562 | langhook, invoke register_dumps method on the dump manager. | |
28563 | * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of | |
28564 | TDI_generic. | |
28565 | ||
28566 | 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org> | |
28567 | ||
28568 | * doc/md.texi: Clarify the restrictions on a define_insn condition. | |
28569 | Say that # requires an associated define_split to exist, and that | |
28570 | the define_split must be suitable for use after register allocation. | |
28571 | ||
28572 | 2017-06-06 Jan Hubicka <hubicka@ucw.cz> | |
28573 | ||
28574 | * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks. | |
28575 | (compute_outgoing_frequencies): Also initialize zero counts. | |
28576 | (find_many_sub_basic_blocks): Do not produce uninitialized profile | |
28577 | around loops; preserve more of profile when nothing changes. | |
28578 | ||
28579 | 2017-06-06 Jim Wilson <jim.wilson@linaro.org> | |
28580 | ||
28581 | * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to | |
28582 | here. | |
28583 | * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here. | |
28584 | * config/arm/arm-cpu-cdata.h: Regenerate. | |
28585 | * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise. | |
28586 | * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise. | |
28587 | * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries. | |
28588 | * config/arm/arm.c (arm_qdf24xx_tune): Delete. | |
28589 | * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx | |
28590 | support. | |
28591 | * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx | |
28592 | support. | |
28593 | * config/arm/t-rmprofile: Likewise. | |
28594 | * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support. | |
28595 | ||
28596 | 2017-06-06 David S. Miller <davem@davemloft.net> | |
28597 | ||
28598 | PR target/80968 | |
28599 | * config/sparc/sparc.c (sparc_expand_prologue): Emit frame | |
28600 | blockage if function uses alloca. | |
28601 | ||
28602 | 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
28603 | ||
28604 | * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref): | |
28605 | New "uid" fields to hold pretty-print IDs of group and ref. | |
28606 | Memory references are now identified as <group_id>:<ref_id> | |
28607 | instead of using [random] addresses. | |
28608 | (dump_mem_details): Simplify, no functional change. | |
28609 | (dump_mem_ref): Simplify and make output more concise. | |
28610 | Replace couple of fprintf's throughout code with calls to dump_mem_ref. | |
28611 | (find_or_create_group): Initialize group uid. | |
28612 | (record_ref): Initialize ref uid. Improve debug output. | |
28613 | (prune_group_by_reuse, should_issue_prefetch_p,) | |
28614 | (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,) | |
28615 | (mark_nontemporal_store, determine_loop_nest_reuse): | |
28616 | Improve debug output. | |
28617 | ||
28618 | 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> | |
28619 | ||
28620 | * dbgcnt.def (prefetch): New debug counter. | |
28621 | * tree-ssa-loop-prefetch.c (dbgcnt.h): New include. | |
28622 | (schedule_prefetches): Stop issueing prefetches if debug counter | |
28623 | tripped. | |
28624 | ||
28625 | 2017-06-06 Tom de Vries <tom@codesourcery.com> | |
28626 | ||
28627 | * doc/sourcebuild.texi (Testsuites, C Language Testsuites, | |
28628 | gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme. | |
28629 | ||
28630 | 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
28631 | ||
28632 | * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander): | |
28633 | Use aarch64_reg_or_zero predicate for operand 4. | |
28634 | (aarch64_compare_and_swap<mode> define_insn_and_split): | |
28635 | Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint. | |
28636 | (aarch64_store_exclusive<mode>): Likewise for operand 2. | |
28637 | ||
28638 | 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
28639 | ||
28640 | * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ... | |
28641 | (arm_compute_save_core_reg_mask): This. | |
28642 | (thumb1_compute_save_reg_mask): Rename into ... | |
28643 | (thumb1_compute_save_core_reg_mask): This. | |
28644 | (arm_compute_save_reg0_reg12_mask): Adapt comment. | |
28645 | (arm_compute_frame_layout): Likewise. | |
28646 | ||
28647 | 2017-06-06 Richard Biener <rguenther@suse.de> | |
28648 | ||
28649 | PR tree-optimization/80974 | |
28650 | * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only | |
28651 | keep or clear leaders SSA info. | |
28652 | ||
28653 | 2017-06-06 Tom de Vries <tom@codesourcery.com> | |
28654 | ||
28655 | * config/nvptx/nvptx.c (split_mode_p): New function. | |
28656 | (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p. | |
28657 | ||
28658 | 2017-06-06 Tom de Vries <tom@codesourcery.com> | |
28659 | ||
28660 | * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode. | |
28661 | ||
28662 | 2017-06-06 Jan Hubicka <hubicka@ucw.cz> | |
28663 | ||
28664 | PR bootstrap/80978 | |
28665 | * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale | |
28666 | profile. | |
28667 | ||
28668 | 2017-06-06 Jan Hubicka <hubicka@ucw.cz> | |
28669 | ||
28670 | * shrink-wrap.c (handle_simple_exit): Update profile. | |
28671 | (try_shrink_wrapping): Upate profile. | |
28672 | ||
28673 | 2017-06-06 Jan Hubicka <hubicka@ucw.cz> | |
28674 | ||
28675 | * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY. | |
28676 | (tree_guess_outgoing_edge_probabilities): New. | |
28677 | * predict.h (tree_guess_outgoing_edge_probabilities): Declare. | |
28678 | * tree-cfg.c (gimple_find_sub_bbs): Propagate profile. | |
28679 | ||
28680 | 2017-06-06 Jan Hubicka <hubicka@ucw.cz> | |
28681 | ||
28682 | * ipa-split.c (split_function): Initialize return bb profile. | |
28683 | ||
28684 | 2017-06-06 Jan Hubicka <hubicka@ucw.cz> | |
28685 | ||
28686 | * profile.c (compute_branch_probabilities): Also initialize | |
28687 | EXIT_BLOCK profile. | |
28688 | ||
28689 | 2017-06-06 Richard Biener <rguenther@suse.de> | |
28690 | ||
28691 | PR tree-optimization/80928 | |
28692 | * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps. | |
28693 | (vect_analyze_loop_operations): Properly guard analysis for | |
28694 | pure SLP case. | |
28695 | (vect_transform_loop): Likewise. | |
28696 | (vect_analyze_loop_2): Also reset SLP type on PHIs. | |
28697 | (vect_model_induction_cost): Do not cost for pure SLP. | |
28698 | (vectorizable_induction): Pass in SLP node, implement SLP vectorization | |
28699 | of induction in inner loop vectorization. | |
28700 | * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs. | |
28701 | (vect_get_and_check_slp_defs): Handle vect_induction_def. | |
28702 | (vect_build_slp_tree): Likewise. Handle PHIs as terminating the | |
28703 | recursion. | |
28704 | (vect_analyze_slp_cost_1): Cost induction. | |
28705 | (vect_detect_hybrid_slp_stmts): Handle PHIs. | |
28706 | (vect_get_slp_vect_defs): Likewise. | |
28707 | * tree-vect-stmts.c (vect_analyze_stmt): Handle induction. | |
28708 | (vect_transform_stmt): Handle SLP reductions. | |
28709 | * tree-vectorizer.h (vectorizable_induction): Adjust. | |
28710 | ||
28711 | 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com> | |
28712 | ||
28713 | * config/rs6000/rs6000.c (make_resolver_func): Update | |
28714 | init_lowered_empty_function call. | |
28715 | ||
28716 | 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
28717 | ||
28718 | * doc/invoke.texi: Document the -fprofile-abs-path option. | |
28719 | * common.opt (fprofile-abs-path): New option. | |
28720 | * gcov-io.h (gcov_write_filename): Declare. | |
28721 | * gcov-io.c (gcov_write_filename): New function. | |
28722 | * coverage.c (coverage_begin_function): Use gcov_write_filename. | |
28723 | * profile.c (output_location): Likewise. | |
28724 | ||
28725 | 2017-06-05 Jan Hubicka <hubicka@ucw.cz> | |
28726 | ||
28727 | * shring-wrap.c: Revert accidental commit. | |
28728 | ||
28729 | 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de> | |
28730 | ||
28731 | * doc/invoke.texi (-Wduplicated-branches): Add to warning list. | |
28732 | ||
28733 | 2017-06-05 Jan Hubicka <hubicka@ucw.cz> | |
28734 | ||
28735 | * cfgexpand.c (expand_gimple_tailcall): Initialize profile of | |
28736 | new edge. | |
28737 | * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing | |
28738 | profile in callgraph edge. | |
28739 | * profile-count.h (apply_probability): If THIS is 0, then result is 0 | |
28740 | (apply_scale): Likewise. | |
28741 | * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body): | |
28742 | Also scale profile when inlining function with zero profile. | |
28743 | (initialize_cfun): Update exit block profile even when it is zero. | |
28744 | * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case | |
28745 | when profile is read. | |
28746 | ||
28747 | 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com> | |
28748 | ||
28749 | * config/rs6000/rs6000.c (toplevel): Include attribs.h. | |
28750 | (CLONE_*): New constants to define the processors we can generate | |
28751 | code for with the target_clone attribute. | |
28752 | (rs6000_clone_map): New array to identify which clone processors | |
28753 | the current program is running on. | |
28754 | (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the | |
28755 | target_clone attribute. | |
28756 | (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise. | |
28757 | (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise. | |
28758 | (TARGET_OPTION_FUNCTION_VERSIONS): Likewise. | |
28759 | (cpu_expand_builtin): Add support for target_clone attribute. | |
28760 | (rs6000_valid_attribute_p): Allow "default" attribute. | |
28761 | (get_decl_name): New debug function to simplify printing the | |
28762 | current function name in debugging statements. | |
28763 | (rs6000_clone_priority): New functions to support the target_clone | |
28764 | attribute, and be able to generate code to switch between ISA 2.05 | |
28765 | through ISA 3.0 (power6 through power9). | |
28766 | (rs6000_compare_version_priority): Likewise. | |
28767 | (rs6000_get_function_versions_dispatcher): Likewise. | |
28768 | (make_resolver_func): Likewise. | |
28769 | (add_condition_to_bb): Likewise. | |
28770 | (dispatch_function_versions): Likewise. | |
28771 | (rs6000_generate_version_dispatcher_body): Likewise. | |
28772 | (rs6000_can_inline_p): Call get_decl_name for debugging usage. | |
28773 | (fusion_gpr_load_p): Fix a spacing issue. | |
28774 | * doc/extend.texi (Common Function Attributes): Document that the | |
28775 | PowerPC supports the target_clone attribute. | |
28776 | ||
28777 | 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
28778 | ||
28779 | * config/arm/arm.h: explain F symbol found in description of ARM | |
28780 | register allocation in its legend. | |
28781 | ||
28782 | 2017-06-05 Jan Hubicka <hubicka@ucw.cz> | |
28783 | ||
28784 | * config/mips/frame-header-opt.c: Include profile-count.h. | |
28785 | * config/riscv/riscv.c: Include profile-count.h | |
28786 | ||
28787 | 2017-06-05 Jan Hubicka <hubicka@ucw.cz> | |
28788 | ||
28789 | * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter; | |
28790 | update profile. | |
28791 | (sm_set_flag_if_changed): Add bbs field. | |
28792 | (execute_sm_if_changed_flag_set): Pass BBS. | |
28793 | (execute_sm): Update. | |
28794 | ||
28795 | 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
28796 | ||
28797 | * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>): | |
28798 | New pattern. | |
28799 | ||
28800 | 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
28801 | ||
28802 | * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn. | |
28803 | (peephole2): New peephole2 to emit the above. | |
28804 | * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate. | |
28805 | ||
28806 | 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
28807 | ||
28808 | * config/aarch64/aarch64.c (define_peephole2 above | |
28809 | *sub_<shift>_<mode>): New peephole. | |
28810 | ||
28811 | 2017-05-23 Jan Hubicka <hubicka@ucw.cz> | |
28812 | ||
28813 | * config/i386/i386.c (make_resolver_func): Update. | |
28814 | * Makefile.in: Add profile-count.h and profile-count.o | |
28815 | * auto-profile.c (afdo_indirect_call): Update to new API. | |
28816 | (afdo_set_bb_count): Update. | |
28817 | (afdo_propagate_edge): Update. | |
28818 | (afdo_propagate_circuit): Update. | |
28819 | (afdo_calculate_branch_prob): Update. | |
28820 | (afdo_annotate_cfg): Update. | |
28821 | * basic-block.h: Include profile-count.h | |
28822 | (struct edge_def): Turn count to profile_count. | |
28823 | (struct basic_block_def): Likewie. | |
28824 | (REG_BR_PROB_BASE): Move to profile-count.h | |
28825 | (RDIV): Move to profile-count.h | |
28826 | * bb-reorder.c (max_entry_count): Turn to profile_count. | |
28827 | (find_traces): Update. | |
28828 | (rotate_loop):Update. | |
28829 | (connect_traces):Update. | |
28830 | (sanitize_hot_paths):Update. | |
28831 | * bt-load.c (migrate_btr_defs): Update. | |
28832 | * cfg.c (RDIV): Remove. | |
28833 | (init_flow): Use alloc_block. | |
28834 | (alloc_block): Uninitialize count. | |
28835 | (unchecked_make_edge): Uninitialize count. | |
28836 | (check_bb_profile): Update. | |
28837 | (dump_edge_info): Update. | |
28838 | (dump_bb_info): Update. | |
28839 | (update_bb_profile_for_threading): Update. | |
28840 | (scale_bbs_frequencies_int): Update. | |
28841 | (scale_bbs_frequencies_gcov_type): Update. | |
28842 | (scale_bbs_frequencies_profile_count): New. | |
28843 | * cfg.h (update_bb_profile_for_threading): Update. | |
28844 | (scale_bbs_frequencies_profile_count): Declare. | |
28845 | * cfgbuild.c (compute_outgoing_frequencies): Update. | |
28846 | (find_many_sub_basic_blocks): Update. | |
28847 | * cfgcleanup.c (try_forward_edges): Update. | |
28848 | (try_crossjump_to_edge): Update. | |
28849 | * cfgexpand.c (expand_gimple_tailcall): Update. | |
28850 | (construct_exit_block): Update. | |
28851 | * cfghooks.c (verify_flow_info): Update. | |
28852 | (dump_bb_for_graph): Update. | |
28853 | (split_edge): Update. | |
28854 | (make_forwarder_block): Update. | |
28855 | (duplicate_block): Update. | |
28856 | (account_profile_record): Update. | |
28857 | * cfgloop.c (find_subloop_latch_edge_by_profile): Update. | |
28858 | (get_estimated_loop_iterations): Update. | |
28859 | * cfgloopanal.c (expected_loop_iterations_unbounded): Update. | |
28860 | (single_likely_exit): Update. | |
28861 | * cfgloopmanip.c (scale_loop_profile): Update. | |
28862 | (loopify): Update. | |
28863 | (set_zero_probability): Update. | |
28864 | (lv_adjust_loop_entry_edge): Update. | |
28865 | * cfgrtl.c (force_nonfallthru_and_redirect): Update. | |
28866 | (purge_dead_edges): Update. | |
28867 | (rtl_account_profile_record): Update. | |
28868 | * cgraph.c (cgraph_node::create): Uninitialize count. | |
28869 | (symbol_table::create_edge): Uninitialize count. | |
28870 | (cgraph_update_edges_for_call_stmt_node): Update. | |
28871 | (cgraph_edge::dump_edge_flags): Update. | |
28872 | (cgraph_node::dump): Update. | |
28873 | (cgraph_edge::maybe_hot_p): Update. | |
28874 | * cgraph.h: Include profile-count.h | |
28875 | (create_clone), create_edge, create_indirect_edge): Update. | |
28876 | (cgraph_node): Turn count to profile_count. | |
28877 | (cgraph_edge0: Likewise. | |
28878 | (make_speculative, clone): Update. | |
28879 | (create_edge): Update. | |
28880 | (init_lowered_empty_function): Update. | |
28881 | * cgraphclones.c (cgraph_edge::clone): Update. | |
28882 | (duplicate_thunk_for_node): Update. | |
28883 | (cgraph_node::create_clone): Update. | |
28884 | * cgraphunit.c (cgraph_node::analyze): Update. | |
28885 | (cgraph_node::expand_thunk): Update. | |
28886 | * final.c (dump_basic_block_info): Update. | |
28887 | * gimple-streamer-in.c (input_bb): Update. | |
28888 | * gimple-streamer-out.c (output_bb): Update. | |
28889 | * graphite.c (print_global_statistics): Update. | |
28890 | (print_graphite_scop_statistics): Update. | |
28891 | * hsa-brig.c: Include basic-block.h. | |
28892 | * hsa-dump.c: Include basic-block.h. | |
28893 | * hsa-gen.c (T sum_slice): Update. | |
28894 | (convert_switch_statements):Update. | |
28895 | * hsa-regalloc.c: Include basic-block.h. | |
28896 | * ipa-chkp.c (chkp_produce_thunks): Update. | |
28897 | * ipa-cp.c (struct caller_statistics): Update. | |
28898 | (init_caller_stats): Update. | |
28899 | (gather_caller_stats): Update. | |
28900 | (ipcp_cloning_candidate_p): Update. | |
28901 | (good_cloning_opportunity_p): Update. | |
28902 | (get_info_about_necessary_edges): Update. | |
28903 | (dump_profile_updates): Update. | |
28904 | (update_profiling_info): Update. | |
28905 | (update_specialized_profile): Update. | |
28906 | (perhaps_add_new_callers): Update. | |
28907 | (decide_about_value): Update. | |
28908 | (ipa_cp_c_finalize): Update. | |
28909 | * ipa-devirt.c (struct odr_type_warn_count): Update. | |
28910 | (struct decl_warn_count): Update. | |
28911 | (struct final_warning_record): Update. | |
28912 | (possible_polymorphic_call_targets): Update. | |
28913 | (ipa_devirt): Update. | |
28914 | * ipa-fnsummary.c (redirect_to_unreachable): Update. | |
28915 | * ipa-icf.c (sem_function::merge): Update. | |
28916 | * ipa-inline-analysis.c (do_estimate_edge_time): Update. | |
28917 | * ipa-inline.c (compute_uninlined_call_time): Update. | |
28918 | (compute_inlined_call_time): Update. | |
28919 | (want_inline_small_function_p): Update. | |
28920 | (want_inline_self_recursive_call_p): Update. | |
28921 | (edge_badness): Update. | |
28922 | (lookup_recursive_calls): Update. | |
28923 | (recursive_inlining): Update. | |
28924 | (inline_small_functions): Update. | |
28925 | (dump_overall_stats): Update. | |
28926 | (dump_inline_stats): Update. | |
28927 | * ipa-profile.c (ipa_profile_generate_summary): Update. | |
28928 | (ipa_propagate_frequency): Update. | |
28929 | (ipa_profile): Update. | |
28930 | * ipa-prop.c (ipa_make_edge_direct_to_target): Update. | |
28931 | * ipa-utils.c (ipa_merge_profiles): Update. | |
28932 | * loop-doloop.c (doloop_modify): Update. | |
28933 | * loop-unroll.c (report_unroll): Update. | |
28934 | (unroll_loop_runtime_iterations): Update. | |
28935 | * lto-cgraph.c (lto_output_edge): Update. | |
28936 | (lto_output_node): Update. | |
28937 | (input_node): Update. | |
28938 | (input_edge): Update. | |
28939 | (merge_profile_summaries): Update. | |
28940 | * lto-streamer-in.c (input_cfg): Update. | |
28941 | * lto-streamer-out.c (output_cfg): Update. | |
28942 | * mcf.c (create_fixup_graph): Update. | |
28943 | (adjust_cfg_counts): Update. | |
28944 | (sum_edge_counts): Update. | |
28945 | * modulo-sched.c (sms_schedule): Update. | |
28946 | * postreload-gcse.c (eliminate_partially_redundant_load): Update. | |
28947 | * predict.c (maybe_hot_count_p): Update. | |
28948 | (probably_never_executed): Update. | |
28949 | (dump_prediction): Update. | |
28950 | (combine_predictions_for_bb): Update. | |
28951 | (propagate_freq): Update. | |
28952 | (handle_missing_profiles): Update. | |
28953 | (counts_to_freqs): Update. | |
28954 | (rebuild_frequencies): Update. | |
28955 | (force_edge_cold): Update. | |
28956 | * predict.h: Include profile-count.h | |
28957 | (maybe_hot_count_p, counts_to_freqs): UPdate. | |
28958 | * print-rtl-function.c: Do not include cfg.h | |
28959 | * print-rtl.c: Include basic-block.h | |
28960 | * profile-count.c: New file. | |
28961 | * profile-count.h: New file. | |
28962 | * profile.c (is_edge_inconsistent): Update. | |
28963 | (correct_negative_edge_counts): Update. | |
28964 | (is_inconsistent): Update. | |
28965 | (set_bb_counts): Update. | |
28966 | (read_profile_edge_counts): Update. | |
28967 | (compute_frequency_overlap): Update. | |
28968 | (compute_branch_probabilities): Update; Initialize and deinitialize | |
28969 | gcov_count tables. | |
28970 | (branch_prob): Update. | |
28971 | * profile.h (bb_gcov_counts, edge_gcov_counts): New. | |
28972 | (edge_gcov_count): New. | |
28973 | (bb_gcov_count): New. | |
28974 | * shrink-wrap.c (try_shrink_wrapping): Update. | |
28975 | * tracer.c (better_p): Update. | |
28976 | * trans-mem.c (expand_transaction): Update. | |
28977 | (ipa_tm_insert_irr_call): Update. | |
28978 | (ipa_tm_insert_gettmclone_call): Update. | |
28979 | * tree-call-cdce.c: Update. | |
28980 | * tree-cfg.c (gimple_duplicate_sese_region): Update. | |
28981 | (gimple_duplicate_sese_tail): Update. | |
28982 | (gimple_account_profile_record): Update. | |
28983 | (execute_fixup_cfg): Update. | |
28984 | * tree-inline.c (copy_bb): Update. | |
28985 | (copy_edges_for_bb): Update. | |
28986 | (initialize_cfun): Update. | |
28987 | (freqs_to_counts): Update. | |
28988 | (copy_cfg_body): Update. | |
28989 | (expand_call_inline): Update. | |
28990 | * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update. | |
28991 | * tree-ssa-loop-ivcanon.c (unloop_loops): Update. | |
28992 | (try_unroll_loop_completely): Update. | |
28993 | (try_peel_loop): Update. | |
28994 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update. | |
28995 | * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update. | |
28996 | * tree-ssa-loop-split.c (connect_loops): Update. | |
28997 | * tree-ssa-loop-unswitch.c (hoist_guard): Update. | |
28998 | * tree-ssa-reassoc.c (branch_fixup): Update. | |
28999 | * tree-ssa-tail-merge.c (replace_block_by): Update. | |
29000 | * tree-ssa-threadupdate.c (create_block_for_threading): Update. | |
29001 | (compute_path_counts): Update. | |
29002 | (update_profile): Update. | |
29003 | (recompute_probabilities): Update. | |
29004 | (update_joiner_offpath_counts): Update. | |
29005 | (estimated_freqs_path): Update. | |
29006 | (freqs_to_counts_path): Update. | |
29007 | (clear_counts_path): Update. | |
29008 | (ssa_fix_duplicate_block_edges): Update. | |
29009 | (duplicate_thread_path): Update. | |
29010 | * tree-switch-conversion.c (case_bit_test_cmp): Update. | |
29011 | (struct switch_conv_info): Update. | |
29012 | * tree-tailcall.c (decrease_profile): Update. | |
29013 | * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update. | |
29014 | * tree-vect-loop.c (scale_profile_for_vect_loop): Update. | |
29015 | * value-prof.c (check_counter): Update. | |
29016 | (gimple_divmod_fixed_value): Update. | |
29017 | (gimple_mod_pow2): Update. | |
29018 | (gimple_mod_subtract): Update. | |
29019 | (gimple_ic_transform): Update. | |
29020 | (gimple_stringop_fixed_value): Update. | |
29021 | * value-prof.h (gimple_ic): Update. | |
29022 | ||
29023 | 2017-06-02 Carl Love <cel@us.ibm.com> | |
29024 | ||
29025 | * config/rs6000/rs6000-c: Add support for built-in functions | |
29026 | vector double vec_doublee (vector signed int); | |
29027 | vector double vec_doublee (vector unsigned int); | |
29028 | vector double vec_doublee (vector float); | |
29029 | vector double vec_doubleh (vector signed int); | |
29030 | vector double vec_doubleh (vector unsigned int); | |
29031 | vector double vec_doubleh (vector float); | |
29032 | vector double vec_doublel (vector signed int); | |
29033 | vector double vec_doublel (vector unsigned int); | |
29034 | vector double vec_doublel (vector float); | |
29035 | vector double vec_doubleo (vector signed int); | |
29036 | vector double vec_doubleo (vector unsigned int); | |
29037 | vector double vec_doubleo (vector float);. | |
29038 | * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE, | |
29039 | DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH, | |
29040 | UNS_DOUBLEL. | |
29041 | * config/rs6000/altivec.md: Add code generator for doublee<mode>2, | |
29042 | unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2, | |
29043 | unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute | |
29044 | VS_sxwsp. | |
29045 | * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo, | |
29046 | vec_doublel, vec_doubleh. | |
29047 | * doc/extend.texi: Update the built-in documentation file for the | |
29048 | new built-in functions. | |
29049 | ||
29050 | 2017-06-02 David Malcolm <dmalcolm@redhat.com> | |
29051 | ||
29052 | PR jit/80954 | |
29053 | * ipa-inline-analysis.c (free_growth_caches): Set | |
29054 | edge_removal_hook_holder to NULL after removing it. | |
29055 | ||
29056 | 2017-06-02 Sudakshina Das <sudi.das@arm.com> | |
29057 | ||
29058 | * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for | |
29059 | comparision with zero. | |
29060 | ||
29061 | 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com> | |
29062 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling | |
29063 | for early expansion of vec_min and vec_max builtins. | |
29064 | (builtin_function_type): Add min/max unsigned variants to those | |
29065 | identified as having unsigned arguments. | |
29066 | ||
29067 | 2017-06-02 Olivier Hainque <hainque@adacore.com> | |
29068 | ||
29069 | * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1. | |
29070 | ||
29071 | 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
29072 | ||
29073 | * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>): | |
29074 | Use VALL_F16 iterator rather than VALL. | |
29075 | ||
29076 | 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
29077 | ||
29078 | * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): | |
29079 | Emit CBNZ inside loop when doing a strong exchange and comparing | |
29080 | against zero. Generate the CC flags after the loop. | |
29081 | ||
29082 | 2017-06-02 David Edelsohn <dje.gcc@gmail.com> | |
29083 | ||
29084 | * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New. | |
29085 | (dl_section_ref): New. | |
29086 | (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref. | |
29087 | On AIX, append an expression to subtract the size of the | |
29088 | section length to dl_section_ref. | |
29089 | ||
29090 | 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com> | |
29091 | ||
29092 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling | |
29093 | for early expansion of vector absolute builtins. | |
29094 | ||
29095 | 2017-06-02 Richard Biener <rguenther@suse.de> | |
29096 | ||
29097 | * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up | |
29098 | what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts. | |
29099 | ||
29100 | 2017-06-02 Richard Biener <rguenther@suse.de> | |
29101 | ||
29102 | PR tree-optimization/80948 | |
29103 | * tree-tailcall.c (find_tail_calls): Track stmts to move in | |
29104 | stmt order as well. | |
29105 | ||
29106 | 2017-06-02 Richard Biener <rguenther@suse.de> | |
29107 | ||
29108 | * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant | |
29109 | PHIs are ok. | |
29110 | * tree-vect-stmts.c (process_use): Do not mark backedge defs | |
29111 | for inductions as relevant. | |
29112 | ||
29113 | 2017-06-02 Richard Biener <rguenther@suse.de> | |
29114 | ||
29115 | * tree-vect-loop.c (get_initial_def_for_induction): Inline into ... | |
29116 | (vectorizable_induction): ... this. Remove dead code. | |
29117 | ||
29118 | 2017-06-02 Eric Botcazou <ebotcazou@adacore.com> | |
29119 | ||
29120 | * builtins. (expand_builtin_alloca): Remove second parameter and | |
29121 | infer its value from the first parameter instead. | |
29122 | (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above. | |
29123 | ||
29124 | 2017-06-02 Jakub Jelinek <jakub@redhat.com> | |
29125 | ||
29126 | PR rtl-optimization/80903 | |
29127 | * loop-doloop.c (add_test): Unshare sequence. | |
29128 | ||
29129 | 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
29130 | ||
29131 | * doc/invoke.texi: Document the -Wsizeof-pointer-div warning. | |
29132 | ||
29133 | 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
29134 | ||
29135 | * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make | |
29136 | static. | |
29137 | (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances, | |
29138 | xlogue_layout::get_instance, logue_layout::xlogue_layout, | |
29139 | sp_valid_at, fp_valid_at, choose_basereg): Formatting. | |
29140 | (xlogue_layout::get_stub_rtx): Make static. | |
29141 | (xlogue_layout::get_stub_name): Avoid const-cast, make static. | |
29142 | (xlogue_layout::compute_stub_managed_regs): Rename to... | |
29143 | (xlogue_layout::count_stub_managed_regs): ...this. | |
29144 | (xlogue_layout::is_stub_managed_reg): New function. | |
29145 | (xlogue_layout::m_stub_names): Rename to... | |
29146 | (xlogue_layout::s_stub_names): ...this, make static. | |
29147 | (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS, | |
29148 | xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS, | |
29149 | xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN, | |
29150 | xlogue_layout::s_stub_names): Instantiate statics. | |
29151 | (stub_managed_regs): Remove. | |
29152 | (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs. | |
29153 | (disable_call_ms2sysv_xlogues): Rename to... | |
29154 | (warn_once_call_ms2sysv_xlogues): ...this, and warn only once. | |
29155 | (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv | |
29156 | warning logic. | |
29157 | (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't | |
29158 | change after reload_completed. | |
29159 | (ix86_can_use_return_insn_p): Use the ix86_frame data structure | |
29160 | directly. | |
29161 | (ix86_expand_prologue): Likewise. | |
29162 | (ix86_expand_epilogue): Likewise. | |
29163 | (ix86_expand_split_stack_prologue): Likewise. | |
29164 | (ix86_compute_frame_layout): Remove frame parameter ... | |
29165 | (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook. | |
29166 | (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout | |
29167 | only if necessary. | |
29168 | (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs. | |
29169 | (ix86_frame): Move from here ... | |
29170 | * config/i386/i386.h (ix86_frame): ... to here. | |
29171 | (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the | |
29172 | complete ix86_frame data structure instead. Remove some_ld_name. | |
29173 | ||
29174 | 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com> | |
29175 | ||
29176 | * dwarf2out.c (dwarf2out_late_global_decl): Add locations for | |
29177 | symbols that hold a DECL_VALUE_EXPR. | |
29178 | ||
29179 | 2017-06-01 Martin Jambor <mjambor@suse.cz> | |
29180 | ||
29181 | PR tree-optimization/80898 | |
29182 | * tree-sra.c (process_subtree_disqualification): Removed. | |
29183 | (disqualify_candidate): Do not acll | |
29184 | process_subtree_disqualification. | |
29185 | (subtree_mark_written_and_enqueue): New function. | |
29186 | (propagate_all_subaccesses): Set grp_write of LHS subtree if the | |
29187 | RHS has been disqualified and re-queue LHS if necessary. Apart | |
29188 | from that, ignore disqualified RHS. | |
29189 | ||
29190 | 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
29191 | ||
29192 | * config/s390/s390.c (s390_emit_epilogue): Disable early return | |
29193 | address fetch for z10 or later. | |
29194 | ||
29195 | 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> | |
29196 | ||
29197 | * config/arc/arc.md (tst_movb): Add guard when splitting. | |
29198 | ||
29199 | 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> | |
29200 | ||
29201 | * config/arc/arc.c (arc_can_eliminate): Test against | |
29202 | arc_frame_pointer_needed. | |
29203 | ||
29204 | 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> | |
29205 | ||
29206 | * config/arc/arc.c (arc_expand_prologue): Emit a special barrier | |
29207 | to prevent store reordering. | |
29208 | * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define. | |
29209 | (type): Add block type. | |
29210 | (stack_tie): Define special instruction to be used in | |
29211 | expand_prologue. | |
29212 | ||
29213 | 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> | |
29214 | ||
29215 | * config/arc/arc.md (commutative_binary_comparison): Remove 'I' | |
29216 | constraint. It is not valid for the pattern. | |
29217 | (noncommutative_binary_comparison): Likewise. | |
29218 | ||
29219 | 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> | |
29220 | ||
29221 | * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid | |
29222 | scaled addresses. | |
29223 | ||
29224 | 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> | |
29225 | ||
29226 | * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to | |
29227 | be used by the reg-alloc. | |
29228 | ||
29229 | 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> | |
29230 | ||
29231 | * config/arc/arc.md (mulsi3): Avoid use of hard registers before | |
29232 | reg-alloc when having mul64 or mul32x16 instructions. | |
29233 | (mulsidi3): Likewise. | |
29234 | (umulsidi3): Likewise. | |
29235 | (mulsi32x16): New pattern. | |
29236 | (mulsi64): Likewise. | |
29237 | (mulsidi64): Likewise. | |
29238 | (umulsidi64): Likewise. | |
29239 | (MUL32x16_REG): Define. | |
29240 | (mul64_600): Use MUL32x16_REG. | |
29241 | (mac64_600): Likewise. | |
29242 | (umul64_600): Likewise. | |
29243 | (umac64_600): Likewise. | |
29244 | ||
29245 | 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com> | |
29246 | ||
29247 | * config/arc/arc.md (mulsi3_700): Make it commutative. | |
29248 | ||
29249 | 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com> | |
29250 | ||
29251 | * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn | |
29252 | type for movstouw. | |
29253 | (*sign_extendsidi2_insn): Likewise for movstosw. | |
29254 | ||
29255 | 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com> | |
29256 | ||
29257 | * dwarf2out.c (get_discr_value): Call the get_debug_type hook on | |
29258 | the type of the input discriminant value. Convert the | |
29259 | discriminant value of signedness vary. | |
29260 | ||
29261 | 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de> | |
29262 | ||
29263 | * doc/invoke.texi (-Wcatch-value): Document new shortcut. | |
29264 | Add to -Wall section. | |
29265 | ||
29266 | 2017-06-01 Richard Biener <rguenther@suse.de> | |
29267 | ||
29268 | PR middle-end/66313 | |
29269 | * fold-const.c (fold_plusminus_mult_expr): If the factored | |
29270 | factor may be zero use a wrapping type for the inner operation. | |
29271 | * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap | |
29272 | and handle moved defs. | |
29273 | (process_assignment): Properly guard the unary op case. Return a | |
29274 | tri-state indicating that moving the stmt before the call may allow | |
29275 | to continue. Pass through to_move. | |
29276 | (find_tail_calls): Handle moving unrelated defs before | |
29277 | the call. | |
29278 | ||
29279 | 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org> | |
29280 | ||
29281 | PR target/80618 | |
29282 | * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the | |
29283 | splitter result in the canonical way. | |
29284 | ||
29285 | 2017-05-31 Uros Bizjak <ubizjak@gmail.com> | |
29286 | ||
29287 | * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj) | |
29288 | also for 32bit target. Update insn attributes. | |
29289 | (zero-extendsidi2 splitter): Allow all registers for operand 1. | |
29290 | ||
29291 | 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com> | |
29292 | ||
29293 | * config/i386/avx512fintrin.h (_mm_mask_max_sd) | |
29294 | (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss) | |
29295 | (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss) | |
29296 | (_mm_maskz_min_ss): New intrinsics. | |
29297 | ||
29298 | 2017-05-31 Martin Liska <mliska@suse.cz> | |
29299 | ||
29300 | * tree-vect-loop.c (vect_create_epilog_for_reduction): | |
29301 | Change comment style to one we normally use. | |
29302 | (vectorizable_reduction): Likewise. | |
29303 | (vectorizable_induction): Likewise. | |
29304 | * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise. | |
29305 | (vectorizable_call): Likewise. | |
29306 | (vectorizable_simd_clone_call): Likewise. | |
29307 | (vectorizable_conversion): Likewise. | |
29308 | (vectorizable_assignment): Likewise. | |
29309 | (vectorizable_shift): Likewise. | |
29310 | (vectorizable_operation): Likewise. | |
29311 | (vectorizable_store): Likewise. | |
29312 | (vectorizable_load): Likewise. | |
29313 | * tree-vectorizer.h: Likewise. | |
29314 | ||
29315 | 2017-05-31 Alexander Monakov <amonakov@ispras.ru> | |
29316 | ||
29317 | * passes.c (emergency_dump_function): New. | |
29318 | * tree-pass.h (emergency_dump_function): Declare. | |
29319 | * plugin.c (plugins_internal_error_function): Remove. | |
29320 | * plugin.h (plugins_internal_error_function): Remove declaration. | |
29321 | * toplev.c (internal_error_function): New static function. Use it... | |
29322 | (general_init): ...here. | |
29323 | ||
29324 | 2017-05-31 Graham Markall <graham.markall@embecosm.com> | |
29325 | ||
29326 | * config/arc/arc.c (arc_print_operand): Handle constant operands. | |
29327 | (arc_rtx_costs): Add costs for new patterns. | |
29328 | * config/arc/arc.md: Additional *add_n and *sub_n patterns. | |
29329 | * config/arc/predicates.md: Add _1_2_3_operand predicate. | |
29330 | ||
29331 | 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org> | |
29332 | ||
29333 | * tree-ssa-strlen.c (get_next_strinfo): New function. | |
29334 | (get_stridx_plus_constant): Use it. | |
29335 | (zero_length_string): Likewise. | |
29336 | (adjust_related_strinfos): Likewise. | |
29337 | (adjust_last_stmt): Likewise. | |
29338 | ||
29339 | 2017-05-31 Richard Biener <rguenther@suse.de> | |
29340 | ||
29341 | PR target/80880 | |
29342 | * config/i386/i386.c (ix86_expand_builtin): Remove assert | |
29343 | for arg being an SSA name when expanding IX86_BUILTIN_BNDRET. | |
29344 | ||
29345 | 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org> | |
29346 | ||
29347 | * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove | |
29348 | loop_vinfo argument and use of dependence distance vectors. | |
29349 | Check instead whether the two references differ only in their | |
29350 | initial value and assume that they have the same alignment if the | |
29351 | difference is a multiple of the vector alignment. | |
29352 | (vect_analyze_data_refs_alignment): Update call accordingly. | |
29353 | ||
29354 | 2017-05-31 Martin Liska <mliska@suse.cz> | |
29355 | ||
29356 | PR target/79155 | |
29357 | * config/i386/cpuid.h: Fix typo in a comment in cpuid.h. | |
29358 | ||
29359 | 2017-05-31 Bin Cheng <bin.cheng@arm.com> | |
29360 | ||
29361 | * tree-vect-loop-manip.c (create_intersect_range_checks_index) | |
29362 | (create_intersect_range_checks): Move from ... | |
29363 | * tree-data-ref.c (create_intersect_range_checks_index) | |
29364 | (create_intersect_range_checks): ... to here. | |
29365 | (create_runtime_alias_checks): New function factored from ... | |
29366 | * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ... | |
29367 | here. Call above function. | |
29368 | * tree-data-ref.h (create_runtime_alias_checks): New function. | |
29369 | ||
29370 | 2017-05-31 Bin Cheng <bin.cheng@arm.com> | |
29371 | ||
29372 | * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal | |
29373 | segment length for dr_b and compute it in wide_int. | |
29374 | ||
29375 | 2017-05-31 Richard Biener <rguenther@suse.de> | |
29376 | ||
29377 | PR tree-optimization/80906 | |
29378 | * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get | |
29379 | and pass through iv_map. | |
29380 | (copy_bb_and_scalar_dependences): Adjust. | |
29381 | (translate_pending_phi_nodes): Likewise. | |
29382 | (copy_loop_close_phi_args): Handle code-generating IVs instead | |
29383 | of ICEing. | |
29384 | ||
29385 | 2017-05-30 David Malcolm <dmalcolm@redhat.com> | |
29386 | ||
29387 | * diagnostic-color.c (color_dict): Add "type-diff". | |
29388 | (parse_gcc_colors): Update comment. | |
29389 | * doc/invoke.texi (Diagnostic Message Formatting Options): Add | |
29390 | -fdiagnostics-show-template-tree and -fno-elide-type. | |
29391 | (GCC_COLORS): Add type-diff to example. | |
29392 | (type-diff=): New. | |
29393 | (-fdiagnostics-show-template-tree): New. | |
29394 | (-fno-elide-type): New. | |
29395 | * pretty-print.c (pp_format): Pass quote and formatters[argno] to | |
29396 | the pp_format_decoder callback. Call any m_format_postprocessor's | |
29397 | "handle" method. | |
29398 | (pretty_printer::pretty_printer): Initialize | |
29399 | m_format_postprocessor. | |
29400 | (pretty_printer::~pretty_printer): Delete any | |
29401 | m_format_postprocessor. | |
29402 | * pretty-print.h (printer_fn): Add bool and const char ** parameters. | |
29403 | (class format_postprocessor): New class. | |
29404 | (struct pretty_printer::format_decoder): Document the new parameters. | |
29405 | (struct pretty_printer::m_format_postprocessor): New field. | |
29406 | * tree-diagnostic.c (default_tree_printer): Update for new | |
29407 | bool and const char ** params. | |
29408 | * tree-diagnostic.h (default_tree_printer): Likewise. | |
29409 | ||
29410 | 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org> | |
29411 | ||
29412 | * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete. | |
29413 | (lwa_operand): Delete rs6000_gen_cell_microcode test. | |
29414 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete | |
29415 | rs6000_gen_cell_microcode code. | |
29416 | (rs6000_final_prescan_insn): Delete. | |
29417 | (rs6000_opt_vars): Delete the "gen-cell-microcode" and | |
29418 | "warn-cell-microcode" entries. | |
29419 | * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete. | |
29420 | * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests | |
29421 | throughout. Change cc_reg_not_micro_cr0_operand to | |
29422 | cc_reg_not_cr0_operand throughout. | |
29423 | (*extendhi<mode>2_noload): Delete. | |
29424 | * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub. | |
29425 | (mwarn-cell-microcode): Delete. | |
29426 | * doc/invoke.texi (RS/6000 and PowerPC Options): Delete | |
29427 | -mgen-cell-microcode and -mwarn-cell-microcode. | |
29428 | ||
29429 | 2017-05-30 Uros Bizjak <ubizjak@gmail.com> | |
29430 | ||
29431 | PR target/80833 | |
29432 | * config/i386/constraints.md (Yd): New constraint. | |
29433 | (Ye): Ditto. | |
29434 | * config/i386/i386.md (*movti_internal): Add (?r, Ye) | |
29435 | and (?Yd, r) alternatives. Update insn attributes. | |
29436 | * config/i386/i386.md (*movti_internal): Add (?r, *Ye) | |
29437 | and (?*Yd, r) alternatives. Update insn attributes. | |
29438 | (double-mode inter-unit splitters): Add new GR<->XMM splitters. | |
29439 | ||
29440 | 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com> | |
29441 | ||
29442 | * gimplify.c (gimplify_modify_expr): Don't create a | |
29443 | DECL_DEBUG_EXPR link if *FROM_P does not belong to the current | |
29444 | function. | |
29445 | ||
29446 | 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com> | |
29447 | ||
29448 | * config/arm/arm-builtins.c (arm_expand_builtin): Remove const. | |
29449 | ||
29450 | 2017-05-30 Richard Biener <rguenther@suse.de> | |
29451 | ||
29452 | * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type | |
29453 | and reduc_def fields. | |
29454 | (STMT_VINFO_REDUC_TYPE): New define. | |
29455 | (STMT_VINFO_REDUC_DEF): Likewise. | |
29456 | (vect_force_simple_reduction): Adjust prototype. | |
29457 | * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust. | |
29458 | (vect_is_simple_reduction): Remove check_reduction argument. | |
29459 | (vect_force_simple_reduction): Adjust and set | |
29460 | STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF. | |
29461 | (vectorizable_reduction): Do not re-do reduction analysis | |
29462 | but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF. | |
29463 | * tree-parloops.c (gather_scalar_reductions): Adjust. | |
29464 | ||
29465 | 2017-05-30 Richard Biener <rguenther@suse.de> | |
29466 | ||
29467 | PR middle-end/80901 | |
29468 | * cfgexpand.c (expand_gimple_cond): Match up loop fixup with | |
29469 | split_edge code. | |
29470 | ||
29471 | 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
29472 | ||
29473 | * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): | |
29474 | Introduce unknown_misalignment parameter and remove vf. | |
29475 | (vect_peeling_hash_get_lowest_cost): | |
29476 | Pass unknown_misalignment parameter. | |
29477 | (vect_enhance_data_refs_alignment): | |
29478 | Fix unsupportable data ref treatment. | |
29479 | ||
29480 | 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
29481 | ||
29482 | * tree-vect-data-refs.c (vect_get_data_access_cost): | |
29483 | Workaround for SLP handling. | |
29484 | (vect_enhance_data_refs_alignment): | |
29485 | Compute costs for doing no peeling at all, compare to the best | |
29486 | peeling costs so far and avoid peeling if cheaper. | |
29487 | ||
29488 | 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
29489 | ||
29490 | * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling): | |
29491 | Return peeling info and set costs to zero for unlimited cost | |
29492 | model. | |
29493 | (vect_enhance_data_refs_alignment): Also inspect all datarefs | |
29494 | with unknown misalignment. Compute and costs for unknown | |
29495 | misalignment, compare them to the costs for known misalignment | |
29496 | and choose the cheapest for peeling. | |
29497 | ||
29498 | 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
29499 | ||
29500 | * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename. | |
29501 | (vect_get_peeling_costs_all_drs): Create function. | |
29502 | (vect_peeling_hash_get_lowest_cost): | |
29503 | Use vect_get_peeling_costs_all_drs. | |
29504 | (vect_peeling_supportable): Create function. | |
29505 | (vect_enhance_data_refs_alignment): Use vect_peeling_supportable. | |
29506 | ||
29507 | 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
29508 | ||
29509 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create | |
29510 | DR_HAS_NEGATIVE_STEP. | |
29511 | (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT. | |
29512 | (vect_enhance_data_refs_alignment): Use. | |
29513 | (vect_duplicate_ssa_name_ptr_info): Use. | |
29514 | * tree-vectorizer.h (dr_misalignment): Use. | |
29515 | (known_alignment_for_access_p): Use. | |
29516 | ||
29517 | 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com> | |
29518 | ||
29519 | PR target/78838 | |
29520 | * config/msp430/msp430.c (gen_prefix): Return NULL when section name is | |
29521 | .lowtext. | |
29522 | (has_section_name): New function. | |
29523 | ||
29524 | 2017-05-30 Martin Liska <mliska@suse.cz> | |
29525 | ||
29526 | PR other/80909 | |
29527 | * auto-profile.c (get_function_decl_from_block): Fix | |
29528 | parenthesis. | |
29529 | ||
29530 | 2017-05-30 Richard Biener <rguenther@suse.de> | |
29531 | ||
29532 | PR middle-end/80876 | |
29533 | * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again. | |
29534 | ||
29535 | 2017-05-30 Martin Liska <mliska@suse.cz> | |
29536 | ||
29537 | * dumpfile.c: Use newly added macro DUMP_FILE_INFO. | |
29538 | * dumpfile.h (struct dump_file_info): Remove ctors. | |
29539 | ||
29540 | 2017-05-30 Martin Liska <mliska@suse.cz> | |
29541 | ||
29542 | * predict.def: Fix GNU coding style. | |
29543 | ||
29544 | 2017-05-29 Max Filippov <jcmvbkbc@gmail.com> | |
29545 | ||
29546 | * config/xtensa/xtensa.c (xtensa_initial_elimination_offset): | |
29547 | Mark 'to' argument with ATTRIBUTE_UNUSED. | |
29548 | ||
29549 | 2017-05-29 Max Filippov <jcmvbkbc@gmail.com> | |
29550 | ||
29551 | * config/xtensa/xtensa.c (xtensa_emit_call): Use | |
29552 | HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string. | |
29553 | (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld | |
29554 | format string. | |
29555 | ||
29556 | 2017-05-29 Eric Botcazou <ebotcazou@adacore.com> | |
29557 | ||
29558 | * doc/install.texi (Options specification): Restore entry of | |
29559 | --enable-sjlj-exceptions. | |
29560 | ||
29561 | 2017-05-27 Michael Eager <eager@eagercon.com> | |
29562 | ||
29563 | Revert: | |
29564 | 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com> | |
29565 | ||
29566 | See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html. | |
29567 | ||
29568 | * config/microblaze/microblaze.h | |
29569 | (FIXED_REGISTERS): Update in macro. | |
29570 | (CALL_USED_REGISTERS): Update in macro. | |
29571 | ||
29572 | 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org> | |
29573 | ||
29574 | * doc/install.texi: Add links to macOS binary distributions. | |
29575 | ||
29576 | 2017-05-27 Jakub Jelinek <jakub@redhat.com> | |
29577 | ||
29578 | PR bootstrap/80887 | |
29579 | Revert: | |
29580 | 2017-05-25 Marc Glisse <marc.glisse@inria.fr> | |
29581 | ||
29582 | * match.pd ((A +- CST1) +- CST2): Allow some conversions. | |
29583 | ||
29584 | 2017-05-26 Martin Liska <mliska@suse.cz> | |
29585 | ||
29586 | * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous. | |
29587 | ||
29588 | 2017-05-26 Martin Liska <mliska@suse.cz> | |
29589 | ||
29590 | * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print | |
29591 | always leading ';; '. | |
29592 | (dump_bb_info): Likewise. | |
29593 | (brief_dump_cfg): Likewise. | |
29594 | * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT. | |
29595 | * dumpfile.c: Remove usage of TDF_VERBOSE. | |
29596 | * dumpfile.h (enum dump_kind): Likewise. | |
29597 | (dump_gimple_bb_header): Do not use TDF_COMMENT. | |
29598 | * print-tree.c (debug_verbose): Remove. | |
29599 | * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT. | |
29600 | (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE. | |
29601 | * tree-diagnostic.c (default_tree_printer): Replace | |
29602 | TDF_DIAGNOSTIC with TDF_SLIM. | |
29603 | ||
29604 | 2017-05-26 Bin Cheng <bin.cheng@arm.com> | |
29605 | ||
29606 | * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass | |
29607 | in parameter loop, rather than loop_vinfo. | |
29608 | (create_intersect_range_checks): Ditto. | |
29609 | (vect_create_cond_for_alias_checks): Update call to above functions. | |
29610 | ||
29611 | 2017-05-26 Bin Cheng <bin.cheng@arm.com> | |
29612 | ||
29613 | PR tree-optimization/80815 | |
29614 | * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition | |
29615 | for merging runtime alias checks. Handle negative DR_STEPs. | |
29616 | ||
29617 | 2017-05-26 Bin Cheng <bin.cheng@arm.com> | |
29618 | ||
29619 | * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair): | |
29620 | Move from ... | |
29621 | * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here. | |
29622 | * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor | |
29623 | out code pruning runtime alias checks. | |
29624 | * tree-data-ref.c (prune_runtime_alias_test_list): New function | |
29625 | factored out from above. | |
29626 | * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t): | |
29627 | Move from ... | |
29628 | * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t): | |
29629 | ... to here. | |
29630 | (prune_runtime_alias_test_list): New decalaration. | |
29631 | ||
29632 | 2017-05-26 Bin Cheng <bin.cheng@arm.com> | |
29633 | ||
29634 | * tree-vect-data-refs.c (compare_tree): Rename and move ... | |
29635 | * tree-data-ref.c (data_ref_compare_tree): ... to here. | |
29636 | * tree-data-ref.h (data_ref_compare_tree): New decalaration. | |
29637 | * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses. | |
29638 | (operator==, comp_dr_with_seg_len_pair): Ditto. | |
29639 | (vect_prune_runtime_alias_test_list): Ditto. | |
29640 | ||
29641 | 2017-05-26 Martin Liska <mliska@suse.cz> | |
29642 | ||
29643 | PR ipa/80663 | |
29644 | * params.def: Bound partial-inlining-entry-probability param. | |
29645 | ||
29646 | 2017-05-26 Marek Polacek <polacek@redhat.com> | |
29647 | ||
29648 | PR sanitizer/80875 | |
29649 | * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1 | |
29650 | can be negated. | |
29651 | ||
29652 | 2017-05-26 Richard Biener <rguenther@suse.de> | |
29653 | ||
29654 | PR tree-optimization/80842 | |
29655 | * tree-ssa-ccp.c (set_lattice_value): Always meet with the old | |
29656 | value. | |
29657 | ||
29658 | 2017-05-26 Richard Biener <rguenther@suse.de> | |
29659 | ||
29660 | PR tree-optimization/80844 | |
29661 | * tree-vectorizer.c (adjust_simduid_builtins): Propagate results. | |
29662 | ||
29663 | 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com> | |
29664 | ||
29665 | * doc/md.texi (Machine Constraints): Update x86 family | |
29666 | machine constraints section to match 'config/i386/constraints.md'. | |
29667 | ||
29668 | 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de> | |
29669 | ||
29670 | * doc/invoke.texi (-Wcatch-value=): Document new warning option. | |
29671 | ||
29672 | 2017-05-25 Nathan Sidwell <nathan@acm.org> | |
29673 | ||
29674 | * doc/invoke.texi (--enable-languages): Update documentation. | |
29675 | ||
29676 | 2017-05-25 Martin Liska <mliska@suse.cz> | |
29677 | ||
29678 | * dumpfile.c: Add TDF_FOLDING. | |
29679 | * dumpfile.h (enum dump_kind): Likewise. | |
29680 | * genmatch.c (dt_simplify::gen_1): Use it. | |
29681 | ||
29682 | 2017-05-25 Marc Glisse <marc.glisse@inria.fr> | |
29683 | ||
29684 | * match.pd (view_convert (convert@0 @1)): Handle zero-extension. | |
29685 | ||
29686 | 2017-05-25 Marc Glisse <marc.glisse@inria.fr> | |
29687 | ||
29688 | * match.pd ((A +- CST1) +- CST2): Allow some conversions. | |
29689 | * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST. | |
29690 | ||
29691 | 2017-05-25 Marc Glisse <marc.glisse@inria.fr> | |
29692 | ||
29693 | * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation. | |
29694 | * match.pd (X == C): Rewrite it here. | |
29695 | (with_possible_nonzero_bits, with_possible_nonzero_bits2, | |
29696 | with_certain_nonzero_bits2): New predicates. | |
29697 | * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST. | |
29698 | ||
29699 | 2017-05-24 Nathan Sidwell <nathan@acm.org> | |
29700 | ||
29701 | * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to | |
29702 | avoid warning. | |
29703 | ||
29704 | * auto-profile.c (afdo_propagate): Adjust T const cast to avoid | |
29705 | warning. | |
29706 | ||
29707 | 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org> | |
29708 | ||
29709 | * config/powerpcspe: New port. Files are copied from the rs6000 | |
29710 | port, with "rs6000" in filenames replaced by "powerpcspe". | |
29711 | ||
29712 | 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com> | |
29713 | ||
29714 | PR rtl-optimization/80754 | |
29715 | * lra-remat.c (do_remat): Add overlap checks for dst_regno. | |
29716 | ||
29717 | 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com> | |
29718 | ||
29719 | * config/sparc/sparc.md (length): Return the correct value for -mflat | |
29720 | sibcalls to match output_sibcall. | |
29721 | ||
29722 | 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org> | |
29723 | ||
29724 | PR bootstrap/80860 | |
29725 | PR bootstrap/80843 | |
29726 | * config/rs6000/rs6000.c (struct machine_function): Add new field | |
29727 | n_components. | |
29728 | (rs6000_get_separate_components): Init that field, use it. | |
29729 | (rs6000_components_for_bb): Use the field. | |
29730 | ||
29731 | 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
29732 | ||
29733 | * config/arm/arm.c (arm_expand_prologue): Fix typo in comment. | |
29734 | ||
29735 | 2017-05-24 Peter Bergner <bergner@vnet.ibm.com> | |
29736 | ||
29737 | PR middle-end/80823 | |
29738 | * tree-cfg.c (group_case_labels_stmt): Delete increment of "i"; | |
29739 | ||
29740 | 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
29741 | ||
29742 | PR target/80725 | |
29743 | * config/s390/s390.c (s390_check_qrst_address): Check incoming | |
29744 | address against address_operand predicate. | |
29745 | * config/s390/s390.md ("*indirect_jump"): Swap alternatives. | |
29746 | ||
29747 | 2017-05-24 Eric Botcazou <ebotcazou@adacore.com> | |
29748 | ||
29749 | * var-tracking.c (track_expr_p): Do not return 0 for tracked record | |
29750 | parameters passed indirectly. | |
29751 | ||
29752 | 2017-05-23 Uros Bizjak <ubizjak@gmail.com> | |
29753 | ||
29754 | * config/i386/i386.md (*movdi_internal): Remove SSE4 | |
29755 | alternative 18 (?r, *v). Update insn attributes. | |
29756 | (*movsi_internal): Remove SSE4 alternative 13 (?r, *v). | |
29757 | Update insn attributes. | |
29758 | (*zero_extendsidi2): Remove SSE4 alternative (?r, *x). | |
29759 | Update insn attributes. | |
29760 | * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4 | |
29761 | alternative 1 (r, v). Remove isa attribute. | |
29762 | * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): | |
29763 | Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC | |
29764 | and !TARGET_INTER_UNIT_MOVES_TO_VEC targets. | |
29765 | ||
29766 | 2017-05-23 Tom de Vries <tom@codesourcery.com> | |
29767 | ||
29768 | * doc/sourcebuild.texi (Directives, Verify compiler message): Document | |
29769 | dg-line directive. | |
29770 | ||
29771 | 2017-05-23 Jan Hubicka <hubicka@ucw.cz> | |
29772 | ||
29773 | * cgraphunit.c (symbol_table::process_new_functions): Update. | |
29774 | * ipa-fnsummary.c (pass_data_inline_parameters): Remove. | |
29775 | (inline_generate_summary): Rename to ... | |
29776 | (ipa_fn_summary_generate): ... this one. | |
29777 | (inline_read_summary): Rename to ... | |
29778 | (ipa_fn_summary_read): ... this one. | |
29779 | (inline_write_summary): Rename to ... | |
29780 | (ipa_fn_summary_write): ... this one. | |
29781 | (inline_free_summary): Rename to ... | |
29782 | (ipa_free_fn_summary): ... this one. | |
29783 | (pass_data_local_fn_summary, pass_local_fn_summary, | |
29784 | make_pass_local_fn_summary, pass_data_ipa_free_fn_summary, | |
29785 | pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary, | |
29786 | pass_data_ipa_fn_summary, pass_ipa_fn_summary, | |
29787 | make_pass_ipa_fn_summary): New. | |
29788 | * ipa-fnsummary.h (inline_generate_summary, inline_read_summary, | |
29789 | inline_write_summary, inline_free_summary): Remove. | |
29790 | (ipa_free_fn_summary) : New. | |
29791 | * ipa-inline.c (ipa_inline): Update. | |
29792 | (pass_ipa_inline): Do not generate summaries. | |
29793 | * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary): | |
29794 | Remove. | |
29795 | * passes.def: Replace pass_inline_parameters by pass_local_fn_summary | |
29796 | and add pass_ipa_fn_summary. | |
29797 | * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary): | |
29798 | New. | |
29799 | (make_pass_inline_parameters): Remove. | |
29800 | ||
29801 | 2017-05-23 Thomas Schwinge <thomas@codesourcery.com> | |
29802 | ||
29803 | * omp-low.c (struct omp_context): Remove "default_kind" member. | |
29804 | Adjust all users. | |
29805 | ||
29806 | * omp-offload.c (execute_oacc_device_lower): Remove the | |
29807 | parallelism dimensions function attributes for unparallelized | |
29808 | OpenACC kernels constructs. | |
29809 | ||
29810 | 2017-05-23 Martin Liska <mliska@suse.cz> | |
29811 | ||
29812 | * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name | |
29813 | functions. | |
29814 | (cgraph_edge::make_speculative): Likewise. | |
29815 | (cgraph_edge::resolve_speculation): Likewise. | |
29816 | (cgraph_edge::redirect_call_stmt_to_callee): Likewise. | |
29817 | (cgraph_node::dump): Likewise. | |
29818 | * cgraph.h: Likewise. | |
29819 | * cgraphunit.c (analyze_functions): Likewise. | |
29820 | (symbol_table::compile): Likewise. | |
29821 | * ipa-cp.c (print_all_lattices): Likewise. | |
29822 | (determine_versionability): Likewise. | |
29823 | (initialize_node_lattices): Likewise. | |
29824 | (ipcp_verify_propagated_values): Likewise. | |
29825 | (estimate_local_effects): Likewise. | |
29826 | (update_profiling_info): Likewise. | |
29827 | (create_specialized_node): Likewise. | |
29828 | (perhaps_add_new_callers): Likewise. | |
29829 | (decide_about_value): Likewise. | |
29830 | (decide_whether_version_node): Likewise. | |
29831 | (identify_dead_nodes): Likewise. | |
29832 | (ipcp_store_bits_results): Likewise. | |
29833 | * ipa-devirt.c (dump_targets): Likewise. | |
29834 | (ipa_devirt): Likewise. | |
29835 | * ipa-icf.c (sem_item::dump): Likewise. | |
29836 | (sem_function::equals): Likewise. | |
29837 | (sem_variable::equals): Likewise. | |
29838 | (sem_item_optimizer::read_section): Likewise. | |
29839 | (sem_item_optimizer::execute): Likewise. | |
29840 | (congruence_class::dump): Likewise. | |
29841 | * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise. | |
29842 | (dump_inline_summary): Likewise. | |
29843 | (estimate_node_size_and_time): Likewise. | |
29844 | (inline_analyze_function): Likewise. | |
29845 | * ipa-inline-transform.c (inline_call): Likewise. | |
29846 | * ipa-inline.c (report_inline_failed_reason): Likewise. | |
29847 | (want_early_inline_function_p): Likewise. | |
29848 | (edge_badness): Likewise. | |
29849 | (update_edge_key): Likewise. | |
29850 | (inline_small_functions): Likewise. | |
29851 | * ipa-profile.c (ipa_profile): Likewise. | |
29852 | * ipa-prop.c (ipa_print_node_jump_functions): Likewise. | |
29853 | (ipa_make_edge_direct_to_target): Likewise. | |
29854 | (remove_described_reference): Likewise. | |
29855 | (ipa_impossible_devirt_target): Likewise. | |
29856 | (propagate_controlled_uses): Likewise. | |
29857 | (ipa_print_node_params): Likewise. | |
29858 | (ipcp_transform_function): Likewise. | |
29859 | * ipa-pure-const.c (pure_const_read_summary): Likewise. | |
29860 | (propagate_pure_const): Likewise. | |
29861 | * ipa-reference.c (generate_summary): Likewise. | |
29862 | (read_write_all_from_decl): Likewise. | |
29863 | (propagate): Likewise. | |
29864 | (ipa_reference_read_optimization_summary): Likewise. | |
29865 | * ipa-utils.c (ipa_merge_profiles): Likewise. | |
29866 | * ipa.c (walk_polymorphic_call_targets): Likewise. | |
29867 | (symbol_table::remove_unreachable_nodes): Likewise. | |
29868 | (ipa_single_use): Likewise. | |
29869 | * passes.c (execute_todo): Likewise. | |
29870 | * predict.c (drop_profile): Likewise. | |
29871 | * symtab.c (symtab_node::get_dump_name): New function. | |
29872 | (symtab_node::dump_name): Likewise. | |
29873 | (symtab_node::dump_asm_name): Likewise. | |
29874 | (symtab_node::dump_references): Likewise. | |
29875 | (symtab_node::dump_referring): Likewise. | |
29876 | (symtab_node::dump_base): Likewise. | |
29877 | (symtab_node::debug_symtab): Likewise. | |
29878 | * tree-sra.c (convert_callers_for_node): Likewise. | |
29879 | * tree-ssa-structalias.c (ipa_pta_execute): Likewise. | |
29880 | * value-prof.c (init_node_map): Likewise. | |
29881 | ||
29882 | 2017-05-23 Martin Liska <mliska@suse.cz> | |
29883 | ||
29884 | * cgraph.h: Move symtab_node::dump_table to symbol_table::dump | |
29885 | and symtab_node::debug_symtab to symbol_table::debug. | |
29886 | * cgraphunit.c (analyze_functions): Use the renamed function. | |
29887 | (symbol_table::compile): Likewise. | |
29888 | * ipa-cp.c (ipcp_verify_propagated_values): Likewise. | |
29889 | * ipa-icf.c (sem_item_optimizer::execute): Likewise. | |
29890 | * passes.c (execute_todo): Likewise. | |
29891 | * symtab.c (symbol_table::dump): New function. | |
29892 | * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function. | |
29893 | ||
29894 | 2017-05-23 Jan Hubicka <hubicka@ucw.cz> | |
29895 | ||
29896 | * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check | |
29897 | that nonconst implies exec. | |
29898 | ||
29899 | 2017-05-23 Jan Hubicka <hubicka@ucw.cz> | |
29900 | ||
29901 | * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list, | |
29902 | inline_edge_removal_hook, inline_edge_duplication_hook): Remove. | |
29903 | (inline_edge_summary_vec): Turn into ... | |
29904 | (ipa_call_summaries): ... this one. | |
29905 | (redirect_to_unreachable, edge_set_predicate, | |
29906 | evaluate_properties_for_edge, inline_summary_alloc, | |
29907 | reset_ipa_call_summary, reset_inline_summary, | |
29908 | inline_summary_t::duplicate): Update. | |
29909 | (inline_edge_duplication_hook): Turn to ... | |
29910 | (ipa_call_summary_t::duplicate): ... this one. | |
29911 | (inline_edge_removal_hook): Turn to ... | |
29912 | (ipa_call_summary_t::remove): ... this one. | |
29913 | (dump_inline_edge_summary): Turn to ... | |
29914 | (dump_ipa_call_summary): ... this one. | |
29915 | (estimate_function_body_sizes): Update. | |
29916 | (inline_update_callee_summaries): Update. | |
29917 | (remap_edge_change_prob): Update. | |
29918 | (remap_edge_summaries): Update. | |
29919 | (inline_merge_summary): Update. | |
29920 | (do_estimate_edge_time): Update. | |
29921 | (inline_generate_summary): Update. | |
29922 | (inline_read_section): Update. | |
29923 | (inline_read_summary): Update. | |
29924 | (inline_free_summary): Update. | |
29925 | * ipa-inline.c (can_inline_edge_p): Update. | |
29926 | (compute_inlined_call_time): Update. | |
29927 | (want_inline_small_function_p): Update. | |
29928 | (edge_badness): Update. | |
29929 | (early_inliner): Update. | |
29930 | * ipa-inline.h (inline_edge_summary): Turn to ... | |
29931 | (ipa_call_summary): ... this one. | |
29932 | (ipa_call_summary_t): New class. | |
29933 | (inline_edge_summary_t, inline_edge_summary_vec): Remove. | |
29934 | (ipa_call_summaries): New. | |
29935 | (inline_edge_summary): Remove. | |
29936 | (estimate_edge_growth): Update. | |
29937 | * ipa-profile.c (ipa_propagate_frequency_1): Update. | |
29938 | * ipa-prop.c (ipa_make_edge_direct_to_target): Update. | |
29939 | * ipa-split.c (execute_split_functions): Update. | |
29940 | * ipa.c (symbol_table::remove_unreachable_nodes): Update. | |
29941 | ||
29942 | 2017-05-23 Tom de Vries <tom@codesourcery.com> | |
29943 | ||
29944 | * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware | |
29945 | attributes): Document rdrand effective target. | |
29946 | ||
29947 | 2017-05-23 Tom de Vries <tom@codesourcery.com> | |
29948 | ||
29949 | * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware | |
29950 | attributes): Sort alphabetically. | |
29951 | ||
29952 | 2017-05-23 Georg-Johann Lay <avr@gjlay.de> | |
29953 | ||
29954 | * config/avr/genmultilib.awk: Use gsub instead of gensub. | |
29955 | ||
29956 | 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com> | |
29957 | ||
29958 | PR target/80718 | |
29959 | * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split | |
29960 | V2DF/V2DI splat into two separate patterns, one that handles | |
29961 | registers, and the other that only handles memory. Drop support | |
29962 | for splatting from a GPR on ISA 2.07 and then splitting the | |
29963 | splat into direct move and splat. | |
29964 | (vsx_splat_<mode>_reg): Likewise. | |
29965 | (vsx_splat_<mode>_mem): Likewise. | |
29966 | ||
29967 | 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org> | |
29968 | ||
29969 | * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs. | |
29970 | ||
29971 | 2017-05-22 Jakub Jelinek <jakub@redhat.com> | |
29972 | ||
29973 | PR middle-end/80809 | |
29974 | * omp-low.c (finish_taskreg_remap): New function. | |
29975 | (finish_taskreg_scan): If unit size of ctx->record_type | |
29976 | is non-constant, unshare the size expression and replace | |
29977 | decls in it with possible outer var refs. | |
29978 | ||
29979 | PR middle-end/80809 | |
29980 | * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use | |
29981 | GOVD_SHARED rather than GOVD_PRIVATE with it. | |
29982 | (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect | |
29983 | GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE. | |
29984 | ||
29985 | PR middle-end/80853 | |
29986 | * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE | |
29987 | as last argument to build_outer_var_ref for pointer bases of array | |
29988 | section reductions. | |
29989 | ||
29990 | 2017-05-19 Martin Sebor <msebor@redhat.com> | |
29991 | ||
29992 | * print-tree.c (print_node): Print DECL_READ_P flag. | |
29993 | ||
29994 | 2017-05-22 Jan Hubicka <hubicka@ucw.cz> | |
29995 | ||
29996 | * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h | |
29997 | * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h | |
29998 | * cgraph.c: Likewise. | |
29999 | * cgraphunit.c: Likewise. | |
30000 | * gengtype.c: Likewise. | |
30001 | * ipa-cp.c: Likewise. | |
30002 | * ipa-devirt.c: Likewise. | |
30003 | * ipa-icf.c: Likewise. | |
30004 | * ipa-predicate.c: Likewise. | |
30005 | * ipa-profile.c: Likewise. | |
30006 | * ipa-prop.c: Likewise. | |
30007 | * ipa-split.c: Likewise. | |
30008 | * ipa.c: Likewise. | |
30009 | * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries, | |
30010 | edge_predicate_pool, dump_inline_hints, | |
30011 | inline_summary::account_size_time, redirect_to_unreachable, | |
30012 | edge_set_predicate, set_hint_predicate, | |
30013 | evaluate_conditions_for_known_args, evaluate_properties_for_edge, | |
30014 | inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset, | |
30015 | inline_summary_t::remove, remap_hint_predicate_after_duplication, | |
30016 | inline_summary_t::duplicate, ipa_call_summary_t::duplicate, | |
30017 | ipa_call_summary_t::remove, initialize_growth_caches, | |
30018 | free_growth_caches, dump_ipa_call_summary, dump_inline_summary, | |
30019 | debug_inline_summary, dump_inline_summaries, initialize_inline_failed, | |
30020 | mark_modified, unmodified_parm_1, unmodified_parm, | |
30021 | unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob, | |
30022 | set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate, | |
30023 | compute_bb_predicates, will_be_nonconstant_expr_predicate, | |
30024 | will_be_nonconstant_predicate, record_modified_bb_info, | |
30025 | get_minimal_bb, record_modified, param_change_prob, | |
30026 | phi_result_unknown_predicate, predicate_for_phi_result, | |
30027 | array_index_predicate, clobber_only_eh_bb_p, fp_expression_p, | |
30028 | estimate_function_body_sizes, compute_inline_parameters, | |
30029 | compute_inline_parameters_for_curren, pass_data_inline_parameters, | |
30030 | estimate_node_size_and_time, estimate_ipcp_clone_size_and_time, | |
30031 | inline_update_callee_summaries, remap_edge_change_prob, | |
30032 | remap_edge_summaries, remap_hint_predicate, inline_merge_summary, | |
30033 | inline_update_overall_summary, inline_indirect_intraprocedural_analysis, | |
30034 | inline_analyze_function, inline_summary_t::insert, | |
30035 | inline_generate_summary, read_ipa_call_summary, inline_read_section, | |
30036 | inline_read_summary, write_ipa_call_summary, inline_write_summary, | |
30037 | inline_free_summary): Move to ipa-fnsummary.h | |
30038 | (predicate_t): Remove. | |
30039 | * ipa-fnsummary.c: New file. | |
30040 | * ipa-inline.h: Do not include sreal.h and ipa-predicate.h | |
30041 | (enum inline_hints_vals, inline_hints, agg_position_info, | |
30042 | INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t, | |
30043 | inline_summaries, ipa_call_summary, ipa_call_summary_t, | |
30044 | ipa_call_summaries, debug_inline_summary, dump_inline_summaries, | |
30045 | dump_inline_summary, dump_inline_hints, inline_generate_summary, | |
30046 | inline_read_summary, inline_write_summary, inline_free_summary, | |
30047 | inline_analyze_function, initialize_inline_failed, | |
30048 | inline_merge_summary, inline_update_overall_summary, | |
30049 | compute_inline_parameters): Move to ipa-fnsummary.h | |
30050 | * ipa-fnsummary.h: New file. | |
30051 | * ipa-inline-transform.h: Include ipa-inline.h. | |
30052 | * ipa-inline.c: LIkewise. | |
30053 | ||
30054 | 2017-05-22 Jan Hubicka <hubicka@ucw.cz> | |
30055 | ||
30056 | * ipa-inline.c (edge_badness): Use inlined_time instead of | |
30057 | inline_summaries->get. | |
30058 | ||
30059 | 2017-05-22 Jan Hubicka <hubicka@ucw.cz> | |
30060 | ||
30061 | * ipa-inline.c (edge_badness): Use estimate_size_after_inlining. | |
30062 | ||
30063 | 2017-05-22 Nathan Sidwell <nathan@acm.org> | |
30064 | ||
30065 | * doc/invoke.texi (fdump-translation-unit): Delete documentation. | |
30066 | (fdump-lang): Document 'raw' option. | |
30067 | * dumpfile.h (TDI_tu): Delete. | |
30068 | * dumpfile.c (dump_files): Remove translation-unit. | |
30069 | (FIRST_AUTO_NUMBERED_DUMP): Decrement. | |
30070 | ||
30071 | 2017-05-22 Georg-Johann Lay <avr@gjlay.de> | |
30072 | ||
30073 | * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile" | |
30074 | command option from $(AWK) call. | |
30075 | * config/avr/genmultilib.awk: Simplify and rewrite so that it | |
30076 | generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS. | |
30077 | [FORMAT]: Remove handling of variable. | |
30078 | * config/avr/t-multilib: Regenerate. | |
30079 | ||
30080 | 2017-05-22 Jan Hubicka <hubicka@ucw.cz> | |
30081 | ||
30082 | * ipa-inline-analysis.c (inline_summary::reset): Do not reset | |
30083 | self_time. | |
30084 | (dump_inline_summary): Do not print self_time. | |
30085 | (estimate_function_body_sizes): Do not set self_time. | |
30086 | (compute_inline_parameters): Likewise. | |
30087 | (inline_read_section, inline_write_summary): Do not stream self_time. | |
30088 | * ipa-inline.h (inline_summary): Drop self_time. | |
30089 | ||
30090 | 2017-05-22 Jan Hubicka <hubicka@ucw.cz> | |
30091 | ||
30092 | * ipa-inline-analysis.c (account_size_time): Rename to ... | |
30093 | (inline_summary::account_size_time): ... this one. | |
30094 | (reset_ipa_call_summary): Turn to ... | |
30095 | (ipa_call_summary::reset): ... this one. | |
30096 | (reset_inline_summary): Turn to ... | |
30097 | (inline_summary::reset): ... this one. | |
30098 | (inline_summary_t::remove): Update. | |
30099 | (inline_summary_t::duplicate): Update. | |
30100 | (ipa_call_summary_t::remove): Update. | |
30101 | (dump_inline_summary): Update. | |
30102 | (estimate_function_body_sizes): Update. | |
30103 | (compute_inline_parameters): Update. | |
30104 | (estimate_node_size_and_time): Update. | |
30105 | (inline_merge_summary): Update. | |
30106 | (inline_update_overall_summary): Update. | |
30107 | (inline_read_section): Update. | |
30108 | (inline_write_summary): Update. | |
30109 | * ipa-inline.h (inline_summary): Rename entry to size_time_table; | |
30110 | add account_size_time and reset member functions. | |
30111 | (ipa_call_summary): Add reset function. | |
30112 | * ipa-predicate.h (predicate::operator &): Constify. | |
30113 | ||
30114 | 2017-05-22 Richard Biener <rguenther@suse.de> | |
30115 | ||
30116 | * df-scan.c (df_insn_refs_verify): Speedup when not verifying. | |
30117 | ||
30118 | 2017-05-19 Jason Merrill <jason@redhat.com> | |
30119 | ||
30120 | * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t. | |
30121 | ||
30122 | 2017-05-19 Marek Polacek <polacek@redhat.com> | |
30123 | ||
30124 | PR sanitizer/80800 | |
30125 | * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add | |
30126 | TYPE_OVERFLOW_WRAPS checks. | |
30127 | ||
30128 | 2017-05-19 Thomas Schwinge <thomas@codesourcery.com> | |
30129 | ||
30130 | * tree-core.h (enum omp_clause_default_kind): Add | |
30131 | "OMP_CLAUSE_DEFAULT_PRESENT". | |
30132 | * tree-pretty-print.c (dump_omp_clause): Handle it. | |
30133 | * gimplify.c (enum gimplify_omp_var_data): Add | |
30134 | "GOVD_MAP_FORCE_PRESENT". | |
30135 | (gimplify_adjust_omp_clauses_1): Map it to | |
30136 | "GOMP_MAP_FORCE_PRESENT". | |
30137 | (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT". | |
30138 | ||
30139 | * gimplify.c (oacc_default_clause): Clarify. | |
30140 | ||
30141 | 2017-05-19 Nathan Sidwell <nathan@acm.org> | |
30142 | ||
30143 | LANG_HOOK_REGISTER_DUMPS | |
30144 | * toplev.c (general_init): Call register dump lang hook. | |
30145 | * doc/invoke.texi: Document -fdump-lang option family. | |
30146 | * dumpfile.c (dump_files): Remove class dump here. | |
30147 | (FIRST_AUTO_NUMBERED_DUMP): Adjust. | |
30148 | * dumpfile.h (tree_dump_index): Remove TDI_class. | |
30149 | * langhooks-def.h (lhd_register_dumps): Declare. | |
30150 | (LANG_HOOKS_REGISTER_DUMPS): Define. | |
30151 | (LANG_HOOKS_INITIALIZER): Add it. | |
30152 | * langhooks.c (lhd_register_dumps): Define. | |
30153 | * langhooks.h (struct lang_hooks): Add register_dumps. | |
30154 | ||
30155 | 2017-05-19 Nathan Sidwell <nathan@acm.org> | |
30156 | ||
30157 | * context.h (context::set_passes): New. | |
30158 | * context.c (context::context): Do not create pass manager. | |
30159 | * toplev.c (general_init): Create pass manager here. | |
30160 | ||
30161 | 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org> | |
30162 | ||
30163 | * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't | |
30164 | use this splitter if two add or or instructions would also work for | |
30165 | the constant we want to generate. | |
30166 | ||
30167 | 2017-05-19 Richard Biener <rguenther@suse.de> | |
30168 | ||
30169 | PR build/80821 | |
30170 | * genmatch.c (dt_node::gen_kids_1): Add missing scope around | |
30171 | predicate evaluation. | |
30172 | ||
30173 | 2017-05-19 Jan Hubicka <hubicka@ucw.cz> | |
30174 | ||
30175 | * ipa-inline.h (ipa_call_summary): Turn sizes into signed; | |
30176 | add ctor. | |
30177 | * ipa-inline.c (want_inline_small_function_p): Do not cast to | |
30178 | unsigned. | |
30179 | ||
30180 | 2017-05-19 Jan Hubicka <hubicka@ucw.cz> | |
30181 | ||
30182 | * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list, | |
30183 | inline_edge_removal_hook, inline_edge_duplication_hook): Remove. | |
30184 | (inline_edge_summary_vec): Turn into ... | |
30185 | (ipa_call_summaries): ... this one. | |
30186 | (redirect_to_unreachable, edge_set_predicate, | |
30187 | evaluate_properties_for_edge, inline_summary_alloc, | |
30188 | reset_ipa_call_summary, reset_inline_summary, | |
30189 | inline_summary_t::duplicate): Update. | |
30190 | (inline_edge_duplication_hook): Turn to ... | |
30191 | (ipa_call_summary_t::duplicate): ... this one. | |
30192 | (inline_edge_removal_hook): Turn to ... | |
30193 | (ipa_call_summary_t::remove): ... this one. | |
30194 | (dump_inline_edge_summary): Turn to ... | |
30195 | (dump_ipa_call_summary): ... this one. | |
30196 | (estimate_function_body_sizes): Update. | |
30197 | (inline_update_callee_summaries): Update. | |
30198 | (remap_edge_change_prob): Update. | |
30199 | (remap_edge_summaries): Update. | |
30200 | (inline_merge_summary): Update. | |
30201 | (do_estimate_edge_time): Update. | |
30202 | (inline_generate_summary): Update. | |
30203 | (inline_read_section): Update. | |
30204 | (inline_read_summary): Update. | |
30205 | (inline_free_summary): Update. | |
30206 | * ipa-inline.c (can_inline_edge_p): Update. | |
30207 | (compute_inlined_call_time): Update. | |
30208 | (want_inline_small_function_p): Update. | |
30209 | (edge_badness): Update. | |
30210 | (early_inliner): Update. | |
30211 | * ipa-inline.h (inline_edge_summary): Turn to ... | |
30212 | (ipa_call_summary): ... this one. | |
30213 | (ipa_call_summary_t): New class. | |
30214 | (inline_edge_summary_t, inline_edge_summary_vec): Remove. | |
30215 | (ipa_call_summaries): New. | |
30216 | (inline_edge_summary): Remove. | |
30217 | (estimate_edge_growth): Update. | |
30218 | * ipa-profile.c (ipa_propagate_frequency_1): Update. | |
30219 | * ipa-prop.c (ipa_make_edge_direct_to_target): Update. | |
30220 | * ipa-split.c (execute_split_functions): Update. | |
30221 | * ipa.c (symbol_table::remove_unreachable_nodes): Update. | |
30222 | ||
30223 | 2017-05-19 Richard Biener <rguenther@suse.de> | |
30224 | ||
30225 | PR middle-end/80764 | |
30226 | * cfgexpand.c (expand_gimple_cond): Fix loop fixup. | |
30227 | ||
30228 | 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org> | |
30229 | ||
30230 | * config/rs6000/rs6000.c (struct machine_function): Add field | |
30231 | fpr_is_wrapped_separately. | |
30232 | (rs6000_get_separate_components): Use 64 components. Handle the | |
30233 | new FPR components. | |
30234 | (rs6000_components_for_bb): Handle the FPR components. | |
30235 | (rs6000_emit_prologue_components): Handle the FPR components. | |
30236 | (rs6000_emit_epilogue_components): Handle the FPR components. | |
30237 | (rs6000_set_handled_components): Handle the FPR components. | |
30238 | (rs6000_emit_prologue): Don't output prologue code for those FPRs | |
30239 | that are already separately shrink-wrapped. | |
30240 | (rs6000_emit_epilogue): Don't output epilogue code for those FPRs | |
30241 | that are already separately shrink-wrapped. | |
30242 | ||
30243 | 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com> | |
30244 | ||
30245 | PR target/80510 | |
30246 | * config/rs6000/predicates.md (simple_offsettable_mem_operand): | |
30247 | New predicate. | |
30248 | ||
30249 | * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator. | |
30250 | (define_peephole2 for Altivec d-form load): Add peepholes to catch | |
30251 | cases where the register allocator uses a move and an offsettable | |
30252 | memory operation to/from a FPR register on ISA 2.06/2.07. | |
30253 | (define_peephole2 for Altivec d-form store): Likewise. | |
30254 | ||
30255 | 2017-05-18 Uros Bizjak <ubizjak@gmail.com> | |
30256 | ||
30257 | PR target/80799 | |
30258 | * config/i386/mmx.md (*mov<mode>_internal): Enable | |
30259 | alternatives 11, 12, 13 and 14 also for 32bit targets. | |
30260 | Remove alternatives 15, 16, 17 and 18. | |
30261 | * config/i386/sse.md (vec_concatv2di): Change | |
30262 | alternative (!x, *y) to (x, ?!*Yn). | |
30263 | ||
30264 | 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com> | |
30265 | ||
30266 | * dumpfile.h (enum dump_kind): Remove stray comma. | |
30267 | ||
30268 | 2017-05-18 Jan Hubicka <hubicka@ucw.cz> | |
30269 | ||
30270 | * Makefile.in: Add ipa-predicate.o and ipa-predicate.h | |
30271 | * ipa-inline-analysis.c (NUM_CONDITIONS): turn into | |
30272 | predicate::num_conditions | |
30273 | (IS_NOT_CONSTANT): turn into predicate::is_not_constant. | |
30274 | (CHANGED): turn into predicate::changed. | |
30275 | (agg_position_info): Move to ipa-predicate.h | |
30276 | (add_condition, predicate::add_clause, predicate::operator &=, | |
30277 | predicate::or_with, predicate::evaluate, predicate::probability, | |
30278 | dump_condition, dump_clause, predicate::dump, | |
30279 | predicate::remap_after_duplication, predicate::remap_after_inlining, | |
30280 | predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c | |
30281 | (evaluate_conditions_for_known_args): Update. | |
30282 | (set_cond_stmt_execution_predicate): Update. | |
30283 | * ipa-inline.h: Include ipa-predicate.h | |
30284 | (condition, inline_param_summary, conditions, agg_position_info, | |
30285 | predicate): Move to ipa-predicate.h | |
30286 | * ipa-predicate.c: New file. | |
30287 | * ipa-predicate.h: New file. | |
30288 | ||
30289 | 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com> | |
30290 | ||
30291 | * final.c (leaf_function_p): Check we are not in a sequence. | |
30292 | ||
30293 | 2017-05-18 Martin Liska <mliska@suse.cz> | |
30294 | ||
30295 | * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL. | |
30296 | * dumpfile.c (dump_register): Use new enum dump_kind. | |
30297 | (get_dump_file_name): Likewise. | |
30298 | (dump_enable_all): Likewise. | |
30299 | (dump_switch_p_1): Likewise. | |
30300 | (enable_rtl_dump_file): Remove usage of TDF_RTL. | |
30301 | * dumpfile.h (enum dump_kind): New enum type. | |
30302 | (struct dump_file_info): Create constructor and | |
30303 | format fields and comments. | |
30304 | * passes.c (pass_manager::register_one_dump_file): | |
30305 | Use num dump_kind. | |
30306 | * statistics.c (statistics_early_init): Likewise. | |
30307 | * tree-ssa-loop-prefetch.c (dump_mem_details): Replace | |
30308 | TDF_TREE with TDF_SLIM. | |
30309 | (gather_memory_references_ref): Likewise. | |
30310 | ||
30311 | 2017-05-18 Martin Liska <mliska@suse.cz> | |
30312 | ||
30313 | * vec.h (struct vnull): Use it. | |
30314 | ||
30315 | 2017-05-18 Jan Hubicka <hubicka@ucw.cz> | |
30316 | ||
30317 | * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h | |
30318 | (true_predicate, false_predicate, true_predicate_p, | |
30319 | false_predicate_p): Remove. | |
30320 | (single_cond_predicate, not_inlined_predicate): Turn to member function | |
30321 | in ipa-inline.h | |
30322 | (add_condition): Update. | |
30323 | (add_clause): Turn to... | |
30324 | (predicate::add_clause): ... this one; update; allow passing NULL | |
30325 | as parameter. | |
30326 | (and_predicates): Turn to ... | |
30327 | (predicate::operator &=): ... this one. | |
30328 | (predicates_equal_p): Move to predicate::operator == in ipa-inline.h | |
30329 | (or_predicates): Turn to ... | |
30330 | (predicate::or_with): ... this one. | |
30331 | (evaluate_predicate): Turn to ... | |
30332 | (predicate::evaluate): ... this one. | |
30333 | (predicate_probability): Turn to ... | |
30334 | (predicate::probability): ... this one. | |
30335 | (dump_condition): Update. | |
30336 | (dump_predicate): Turn to ... | |
30337 | (predicate::dump): ... this one. | |
30338 | (account_size_time): Update. | |
30339 | (edge_set_predicate): Update. | |
30340 | (set_hint_predicate): UPdate. | |
30341 | (evaluate_conditions_for_known_args): Update. | |
30342 | (evaluate_properties_for_edge): Update. | |
30343 | (remap_predicate_after_duplication): Turn to... | |
30344 | (predicate::remap_after_duplication): ... this one. | |
30345 | (remap_hint_predicate_after_duplication): Update. | |
30346 | (inline_summary_t::duplicate): UPdate. | |
30347 | (dump_inline_edge_summary): Update. | |
30348 | (dump_inline_summary): Update. | |
30349 | (set_cond_stmt_execution_predicate): Update. | |
30350 | (set_switch_stmt_execution_predicate): Update. | |
30351 | (compute_bb_predicates): Update. | |
30352 | (will_be_nonconstant_expr_predicate): Update. | |
30353 | (will_be_nonconstant_predicate): Update. | |
30354 | (phi_result_unknown_predicate): Update. | |
30355 | (predicate_for_phi_result): Update. | |
30356 | (array_index_predicate): Update. | |
30357 | (estimate_function_body_sizes): Update. | |
30358 | (estimate_node_size_and_time): Update. | |
30359 | (estimate_ipcp_clone_size_and_time): Update. | |
30360 | (remap_predicate): Rename to ... | |
30361 | (predicate::remap_after_inlining): ... this one. | |
30362 | (remap_hint_predicate): Update. | |
30363 | (inline_merge_summary): Update. | |
30364 | (inline_update_overall_summary): Update. | |
30365 | (estimate_size_after_inlining): Update. | |
30366 | (read_predicate): Rename to ... | |
30367 | (predicate::stream_in): ... this one. | |
30368 | (read_inline_edge_summary): Update. | |
30369 | (write_predicate): Rename to ... | |
30370 | (predicate::stream_out): ... this one. | |
30371 | (write_inline_edge_summary): Update. | |
30372 | * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses. | |
30373 | (clause_t): Turn to uint32_t | |
30374 | (predicate): Turn to class; implement constructor and operators | |
30375 | ==, !=, & | |
30376 | (size_time_entry): Update. | |
30377 | (inline_summary): Update. | |
30378 | (inline_edge_summary): Update. | |
30379 | ||
30380 | 2017-05-18 Marc Glisse <marc.glisse@inria.fr> | |
30381 | ||
30382 | * fold-const.c (fold_binary_loc): Move transformation... | |
30383 | * match.pd (C - X CMP X): ... here. | |
30384 | ||
30385 | 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com> | |
30386 | ||
30387 | * config/sparc/sparc.c (sparc_option_override): Set function | |
30388 | alignment for -mcpu=niagara7 to 64 to match the I$ line. | |
30389 | * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch | |
30390 | latency to 1. | |
30391 | * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch | |
30392 | latency to 2. | |
30393 | * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo. | |
30394 | ||
30395 | 2017-05-18 Marek Polacek <polacek@redhat.com> | |
30396 | ||
30397 | PR sanitizer/80797 | |
30398 | * ubsan.c (instrument_null): Unwrap ADDR_EXPRs. | |
30399 | (pass_ubsan::execute): Call gimple_assign_single_p instead of | |
30400 | gimple_assign_load_p. | |
30401 | ||
30402 | 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org> | |
30403 | ||
30404 | PR middle-end/80692 | |
30405 | * real.c (do_compare): Give decimal_do_compare preference over | |
30406 | comparing just the signs. | |
30407 | ||
30408 | 2017-05-17 Uros Bizjak <ubizjak@gmail.com> | |
30409 | ||
30410 | * doc/md.texi (Canonicalization of Instructions): Describe the | |
30411 | canonical form of instructions that inherently set a condition | |
30412 | code register. | |
30413 | ||
30414 | 2017-05-17 Peter Bergner <bergner@vnet.ibm.com> | |
30415 | ||
30416 | PR middle-end/80775 | |
30417 | * tree-cfg.c: Move deletion of unreachable case statements to after | |
30418 | the merging of consecutive case labels. | |
30419 | ||
30420 | 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
30421 | ||
30422 | * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer | |
30423 | readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and | |
30424 | restoring of callee-saved registers. | |
30425 | ||
30426 | 2017-05-17 Eric Botcazou <ebotcazou@adacore.com> | |
30427 | ||
30428 | * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment. | |
30429 | * config/visium/visium.c (single_set_and_flags): Likewise. | |
30430 | * config/visium/visium.md (Substitutions): Likewise. | |
30431 | ||
30432 | 2017-05-17 Martin Liska <mliska@suse.cz> | |
30433 | ||
30434 | * cfg.c: Introduce dump_flags_t type and | |
30435 | use it instead of int type. | |
30436 | * cfg.h: Likewise. | |
30437 | * cfghooks.c: Likewise. | |
30438 | * cfghooks.h (struct cfg_hooks): Likewise. | |
30439 | * cfgrtl.c: Likewise. | |
30440 | * cfgrtl.h: Likewise. | |
30441 | * cgraph.c (cgraph_node::get_body): Likewise. | |
30442 | * coretypes.h: Likewise. | |
30443 | * domwalk.c: Likewise. | |
30444 | * domwalk.h: Likewise. | |
30445 | * dumpfile.c (struct dump_option_value_info): Likewise. | |
30446 | (dump_enable_all): Likewise. | |
30447 | (dump_switch_p_1): Likewise. | |
30448 | (opt_info_switch_p): Likewise. | |
30449 | * dumpfile.h (enum tree_dump_index): Likewise. | |
30450 | (struct dump_file_info): Likewise. | |
30451 | * genemit.c: Likewise. | |
30452 | * generic-match-head.c: Likewise. | |
30453 | * gengtype.c (open_base_files): Likewise. | |
30454 | * gimple-pretty-print.c: Likewise. | |
30455 | * gimple-pretty-print.h: Likewise. | |
30456 | * graph.c (print_graph_cfg): Likewise. | |
30457 | * graphite-scop-detection.c (dot_all_sese): Likewise. | |
30458 | * ipa-devirt.c (build_type_inheritance_graph): Likewise. | |
30459 | * loop-unroll.c (report_unroll): Likewise. | |
30460 | * passes.c (pass_manager::register_one_dump_file): Likewise. | |
30461 | * print-tree.c: Likewise. | |
30462 | * statistics.c: Likewise. | |
30463 | * tree-cfg.c: Likewise. | |
30464 | * tree-cfg.h: Likewise. | |
30465 | * tree-dfa.c: Likewise. | |
30466 | * tree-dfa.h: Likewise. | |
30467 | * tree-dump.c (dump_function): Likewise. | |
30468 | * tree-dump.h (struct dump_info): Likewise. | |
30469 | * tree-pretty-print.c: Likewise. | |
30470 | * tree-pretty-print.h: Likewise. | |
30471 | * tree-ssa-live.c: Likewise. | |
30472 | * tree-ssa-live.h: Likewise. | |
30473 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. | |
30474 | * tree-vect-loop.c: Likewise. | |
30475 | * tree-vect-slp.c: Likewise. | |
30476 | ||
30477 | 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com> | |
30478 | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
30479 | ||
30480 | PR tree-optimization/80457 | |
30481 | * tree-vect-stmts.c (vect_model_simple_cost): Model the cost | |
30482 | of all arguments to a statement as scalar_to_vec operations. | |
30483 | (vectorizable_call): Adjust call to vect_model_simple_cost for | |
30484 | new parameter. | |
30485 | (vectorizable_conversion): Likewise. | |
30486 | (vectorizable_assignment): Likewise. | |
30487 | (vectorizable_shift): Likewise. | |
30488 | (vectorizable_operation): Likewise. | |
30489 | (vectorizable_comparison): Likewise. | |
30490 | (vect_is_simple_cond): Record the def types for operands. | |
30491 | (vectorizable_condition): Likewise, call vect_model_simple_cost. | |
30492 | * tree-vectorizer.h (vect_model_simple_cost): Add new parameter | |
30493 | for statement argument count. | |
30494 | ||
30495 | 2017-05-16 Carl Love <cel@us.ibm.com> | |
30496 | ||
30497 | * config/rs6000/rs6000-c: Add support for built-in functions | |
30498 | vector unsigned long long vec_bperm (vector unsigned long long, | |
30499 | vector unsigned char) | |
30500 | vector signed long long vec_mule (vector signed int, | |
30501 | vector signed int) | |
30502 | vector unsigned long long vec_mule (vector unsigned int, | |
30503 | vector unsigned int) | |
30504 | vector signed long long vec_mulo (vector signed int, | |
30505 | vector signed int) | |
30506 | vector unsigned long long vec_mulo (vector unsigned int, | |
30507 | vector unsigned int) | |
30508 | vector signed char vec_sldw (vector signed char, | |
30509 | vector signed char, | |
30510 | const int) | |
30511 | vector unsigned char vec_sldw (vector unsigned char, | |
30512 | vector unsigned char, | |
30513 | const int) | |
30514 | vector signed short vec_sldw (vector signed short, | |
30515 | vector signed short, | |
30516 | const int) | |
30517 | vector unsigned short vec_sldw (vector unsigned short, | |
30518 | vector unsigned short, | |
30519 | const int) | |
30520 | vector signed int vec_sldw (vector signed int, | |
30521 | vector signed int, | |
30522 | const int) | |
30523 | vector unsigned int vec_sldw (vector unsigned int, | |
30524 | vector unsigned int, | |
30525 | const int) | |
30526 | vector signed long long vec_sldw (vector signed long long, | |
30527 | vector signed long long, | |
30528 | const int) | |
30529 | vector unsigned long long vec_sldw (vector unsigned long long, | |
30530 | vector unsigned long long, | |
30531 | const int) | |
30532 | * config/rs6000/rs6000-c: Add support for built-in functions | |
30533 | * config/rs6000/rs6000-builtin.def: Add definition for SLDW. | |
30534 | * config/rs6000/altivec.h: Add defintion for vec_sldw. | |
30535 | * doc/extend.texi: Update the built-in documentation for the | |
30536 | new built-in functions. | |
30537 | ||
30538 | 2017-05-16 Marek Polacek <polacek@redhat.com> | |
30539 | ||
30540 | PR sanitizer/80536 | |
30541 | PR sanitizer/80386 | |
30542 | * tree.c (save_expr): Don't fold the expression. | |
30543 | ||
30544 | 2017-05-16 Uros Bizjak <ubizjak@gmail.com> | |
30545 | ||
30546 | * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative | |
30547 | to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r) | |
30548 | and (?*y,m). Update insn attributes. | |
30549 | ||
30550 | 2017-05-16 Martin Liska <mliska@suse.cz> | |
30551 | ||
30552 | * cgraph.c (cgraph_edge::resolve_speculation): Add default value for | |
30553 | flags argument of print_gimple_stmt, print_gimple_expr, | |
30554 | print_generic_stmt and print_generic_expr. | |
30555 | * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. | |
30556 | * coretypes.h: Likewise. | |
30557 | * except.c (dump_eh_tree): Likewise. | |
30558 | * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. | |
30559 | * gimple-pretty-print.h: Likewise. | |
30560 | * gimple-ssa-backprop.c (dump_usage_prefix): Likewise. | |
30561 | (backprop::push_to_worklist): Likewise. | |
30562 | (backprop::pop_from_worklist): Likewise. | |
30563 | (backprop::process_use): Likewise. | |
30564 | (backprop::intersect_uses): Likewise. | |
30565 | (note_replacement): Likewise. | |
30566 | * gimple-ssa-store-merging.c | |
30567 | (pass_store_merging::terminate_all_aliasing_chains): Likewise. | |
30568 | (imm_store_chain_info::coalesce_immediate_stores): Likewise. | |
30569 | (pass_store_merging::execute): Likewise. | |
30570 | * gimple-ssa-strength-reduction.c (dump_candidate): Likewise. | |
30571 | (ssa_base_cand_dump_callback): Likewise. | |
30572 | (dump_incr_vec): Likewise. | |
30573 | (replace_refs): Likewise. | |
30574 | (replace_mult_candidate): Likewise. | |
30575 | (create_add_on_incoming_edge): Likewise. | |
30576 | (create_phi_basis): Likewise. | |
30577 | (insert_initializers): Likewise. | |
30578 | (all_phi_incrs_profitable): Likewise. | |
30579 | (introduce_cast_before_cand): Likewise. | |
30580 | (replace_one_candidate): Likewise. | |
30581 | * gimplify.c (gimplify_expr): Likewise. | |
30582 | * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise. | |
30583 | (set_rename): Likewise. | |
30584 | (rename_uses): Likewise. | |
30585 | (copy_loop_phi_nodes): Likewise. | |
30586 | (add_close_phis_to_merge_points): Likewise. | |
30587 | (copy_loop_close_phi_args): Likewise. | |
30588 | (copy_cond_phi_args): Likewise. | |
30589 | (graphite_copy_stmts_from_block): Likewise. | |
30590 | (translate_pending_phi_nodes): Likewise. | |
30591 | * graphite-poly.c (print_pdr): Likewise. | |
30592 | (dump_gbb_cases): Likewise. | |
30593 | (dump_gbb_conditions): Likewise. | |
30594 | (print_scop_params): Likewise. | |
30595 | * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise. | |
30596 | (build_cross_bb_scalars_use): Likewise. | |
30597 | (gather_bbs::before_dom_children): Likewise. | |
30598 | * hsa-dump.c (dump_hsa_immed): Likewise. | |
30599 | * ipa-cp.c (print_ipcp_constant_value): Likewise. | |
30600 | (get_replacement_map): Likewise. | |
30601 | * ipa-inline-analysis.c (dump_condition): Likewise. | |
30602 | (estimate_function_body_sizes): Likewise. | |
30603 | * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise. | |
30604 | (ipa_polymorphic_call_context::get_dynamic_type): Likewise. | |
30605 | * ipa-prop.c (ipa_dump_param): Likewise. | |
30606 | (ipa_print_node_jump_functions_for_edge): Likewise. | |
30607 | (ipa_modify_call_arguments): Likewise. | |
30608 | (ipa_modify_expr): Likewise. | |
30609 | (ipa_dump_param_adjustments): Likewise. | |
30610 | (ipa_dump_agg_replacement_values): Likewise. | |
30611 | (ipcp_modif_dom_walker::before_dom_children): Likewise. | |
30612 | * ipa-pure-const.c (check_stmt): Likewise. | |
30613 | (pass_nothrow::execute): Likewise. | |
30614 | * ipa-split.c (execute_split_functions): Likewise. | |
30615 | * omp-offload.c (dump_oacc_loop_part): Likewise. | |
30616 | (dump_oacc_loop): Likewise. | |
30617 | * trans-mem.c (tm_log_emit): Likewise. | |
30618 | (tm_memopt_accumulate_memops): Likewise. | |
30619 | (dump_tm_memopt_set): Likewise. | |
30620 | (dump_tm_memopt_transform): Likewise. | |
30621 | * tree-cfg.c (gimple_verify_flow_info): Likewise. | |
30622 | (print_loop): Likewise. | |
30623 | * tree-chkp-opt.c (chkp_print_addr): Likewise. | |
30624 | (chkp_gather_checks_info): Likewise. | |
30625 | (chkp_get_check_result): Likewise. | |
30626 | (chkp_remove_check_if_pass): Likewise. | |
30627 | (chkp_use_outer_bounds_if_possible): Likewise. | |
30628 | (chkp_reduce_bounds_lifetime): Likewise. | |
30629 | * tree-chkp.c (chkp_register_addr_bounds): Likewise. | |
30630 | (chkp_mark_completed_bounds): Likewise. | |
30631 | (chkp_register_incomplete_bounds): Likewise. | |
30632 | (chkp_mark_invalid_bounds): Likewise. | |
30633 | (chkp_maybe_copy_and_register_bounds): Likewise. | |
30634 | (chkp_build_returned_bound): Likewise. | |
30635 | (chkp_get_bound_for_parm): Likewise. | |
30636 | (chkp_build_bndldx): Likewise. | |
30637 | (chkp_get_bounds_by_definition): Likewise. | |
30638 | (chkp_generate_extern_var_bounds): Likewise. | |
30639 | (chkp_get_bounds_for_decl_addr): Likewise. | |
30640 | * tree-chrec.c (chrec_apply): Likewise. | |
30641 | * tree-data-ref.c (dump_data_reference): Likewise. | |
30642 | (dump_subscript): Likewise. | |
30643 | (dump_data_dependence_relation): Likewise. | |
30644 | (analyze_overlapping_iterations): Likewise. | |
30645 | * tree-inline.c (expand_call_inline): Likewise. | |
30646 | (tree_function_versioning): Likewise. | |
30647 | * tree-into-ssa.c (dump_defs_stack): Likewise. | |
30648 | (dump_currdefs): Likewise. | |
30649 | (dump_names_replaced_by): Likewise. | |
30650 | (dump_update_ssa): Likewise. | |
30651 | (update_ssa): Likewise. | |
30652 | * tree-object-size.c (pass_object_sizes::execute): Likewise. | |
30653 | * tree-parloops.c (build_new_reduction): Likewise. | |
30654 | (try_create_reduction_list): Likewise. | |
30655 | (ref_conflicts_with_region): Likewise. | |
30656 | (oacc_entry_exit_ok_1): Likewise. | |
30657 | (oacc_entry_exit_single_gang): Likewise. | |
30658 | * tree-pretty-print.h: Likewise. | |
30659 | * tree-scalar-evolution.c (set_scalar_evolution): Likewise. | |
30660 | (get_scalar_evolution): Likewise. | |
30661 | (add_to_evolution): Likewise. | |
30662 | (get_loop_exit_condition): Likewise. | |
30663 | (analyze_evolution_in_loop): Likewise. | |
30664 | (analyze_initial_condition): Likewise. | |
30665 | (analyze_scalar_evolution): Likewise. | |
30666 | (instantiate_scev): Likewise. | |
30667 | (number_of_latch_executions): Likewise. | |
30668 | (gather_chrec_stats): Likewise. | |
30669 | (final_value_replacement_loop): Likewise. | |
30670 | (scev_const_prop): Likewise. | |
30671 | * tree-sra.c (dump_access): Likewise. | |
30672 | (disqualify_candidate): Likewise. | |
30673 | (create_access): Likewise. | |
30674 | (reject): Likewise. | |
30675 | (maybe_add_sra_candidate): Likewise. | |
30676 | (create_access_replacement): Likewise. | |
30677 | (analyze_access_subtree): Likewise. | |
30678 | (analyze_all_variable_accesses): Likewise. | |
30679 | (sra_modify_assign): Likewise. | |
30680 | (initialize_constant_pool_replacements): Likewise. | |
30681 | (find_param_candidates): Likewise. | |
30682 | (decide_one_param_reduction): Likewise. | |
30683 | (replace_removed_params_ssa_names): Likewise. | |
30684 | * tree-ssa-ccp.c (ccp_fold_stmt): Likewise. | |
30685 | * tree-ssa-copy.c (dump_copy_of): Likewise. | |
30686 | (copy_prop_visit_cond_stmt): Likewise. | |
30687 | * tree-ssa-dce.c (mark_operand_necessary): Likewise. | |
30688 | * tree-ssa-dom.c (pass_dominator::execute): Likewise. | |
30689 | (record_equivalences_from_stmt): Likewise. | |
30690 | * tree-ssa-dse.c (compute_trims): Likewise. | |
30691 | (delete_dead_call): Likewise. | |
30692 | (delete_dead_assignment): Likewise. | |
30693 | * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise. | |
30694 | (forward_propagate_into_cond): Likewise. | |
30695 | (pass_forwprop::execute): Likewise. | |
30696 | * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. | |
30697 | * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children): | |
30698 | Likewise. | |
30699 | (move_computations_worker): Likewise. | |
30700 | (execute_sm): Likewise. | |
30701 | * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise. | |
30702 | (remove_exits_and_undefined_stmts): Likewise. | |
30703 | (remove_redundant_iv_tests): Likewise. | |
30704 | * tree-ssa-loop-ivopts.c (dump_use): Likewise. | |
30705 | (adjust_iv_update_pos): Likewise. | |
30706 | * tree-ssa-math-opts.c (bswap_replace): Likewise. | |
30707 | * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise. | |
30708 | (value_replacement): Likewise. | |
30709 | * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise. | |
30710 | * tree-ssa-pre.c (print_pre_expr): Likewise. | |
30711 | (get_representative_for): Likewise. | |
30712 | (create_expression_by_pieces): Likewise. | |
30713 | (insert_into_preds_of_block): Likewise. | |
30714 | (eliminate_insert): Likewise. | |
30715 | (eliminate_dom_walker::before_dom_children): Likewise. | |
30716 | (eliminate): Likewise. | |
30717 | (remove_dead_inserted_code): Likewise. | |
30718 | * tree-ssa-propagate.c (substitute_and_fold): Likewise. | |
30719 | * tree-ssa-reassoc.c (get_rank): Likewise. | |
30720 | (eliminate_duplicate_pair): Likewise. | |
30721 | (eliminate_plus_minus_pair): Likewise. | |
30722 | (eliminate_not_pairs): Likewise. | |
30723 | (undistribute_ops_list): Likewise. | |
30724 | (eliminate_redundant_comparison): Likewise. | |
30725 | (update_range_test): Likewise. | |
30726 | (optimize_range_tests_var_bound): Likewise. | |
30727 | (optimize_vec_cond_expr): Likewise. | |
30728 | (rewrite_expr_tree): Likewise. | |
30729 | (rewrite_expr_tree_parallel): Likewise. | |
30730 | (linearize_expr): Likewise. | |
30731 | (break_up_subtract): Likewise. | |
30732 | (linearize_expr_tree): Likewise. | |
30733 | (attempt_builtin_powi): Likewise. | |
30734 | (attempt_builtin_copysign): Likewise. | |
30735 | (transform_stmt_to_copy): Likewise. | |
30736 | (transform_stmt_to_multiply): Likewise. | |
30737 | (dump_ops_vector): Likewise. | |
30738 | * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise. | |
30739 | (print_scc): Likewise. | |
30740 | (set_ssa_val_to): Likewise. | |
30741 | (visit_reference_op_store): Likewise. | |
30742 | (visit_use): Likewise. | |
30743 | (sccvn_dom_walker::before_dom_children): Likewise. | |
30744 | (run_scc_vn): Likewise. | |
30745 | * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): | |
30746 | Likewise. | |
30747 | (expr_hash_elt::print): Likewise. | |
30748 | (const_and_copies::pop_to_marker): Likewise. | |
30749 | (const_and_copies::record_const_or_copy_raw): Likewise. | |
30750 | * tree-ssa-structalias.c (compute_dependence_clique): Likewise. | |
30751 | * tree-ssa-uninit.c (collect_phi_def_edges): Likewise. | |
30752 | (dump_predicates): Likewise. | |
30753 | (find_uninit_use): Likewise. | |
30754 | (warn_uninitialized_phi): Likewise. | |
30755 | (pass_late_warn_uninitialized::execute): Likewise. | |
30756 | * tree-ssa.c (verify_vssa): Likewise. | |
30757 | (verify_ssa): Likewise. | |
30758 | (maybe_optimize_var): Likewise. | |
30759 | * tree-vrp.c (dump_value_range): Likewise. | |
30760 | (dump_all_value_ranges): Likewise. | |
30761 | (dump_asserts_for): Likewise. | |
30762 | (register_edge_assert_for_2): Likewise. | |
30763 | (vrp_visit_cond_stmt): Likewise. | |
30764 | (vrp_visit_switch_stmt): Likewise. | |
30765 | (vrp_visit_stmt): Likewise. | |
30766 | (vrp_visit_phi_node): Likewise. | |
30767 | (simplify_cond_using_ranges_1): Likewise. | |
30768 | (fold_predicate_in): Likewise. | |
30769 | (evrp_dom_walker::before_dom_children): Likewise. | |
30770 | (evrp_dom_walker::push_value_range): Likewise. | |
30771 | (evrp_dom_walker::pop_value_range): Likewise. | |
30772 | (execute_early_vrp): Likewise. | |
30773 | ||
30774 | 2017-05-16 Richard Biener <rguenther@suse.de> | |
30775 | ||
30776 | * dwarf2out.c (loc_list_from_tree_1): Do not create | |
30777 | DW_OP_GNU_variable_value for DECL_IGNORED_P decls. | |
30778 | ||
30779 | 2017-05-16 Richard Biener <rguenther@suse.de> | |
30780 | ||
30781 | * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE | |
30782 | just generated. | |
30783 | (note_variable_value_in_expr): If we resolved the decl ref | |
30784 | do not push to the stack. | |
30785 | ||
30786 | 2017-05-16 Matthew Wahab <matthew.wahab@arm.com> | |
30787 | ||
30788 | * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic | |
30789 | operations in fast-math mode. | |
30790 | (vaddq_f16): Likewise. | |
30791 | (vmul_f16): Likewise. | |
30792 | (vmulq_f16): Likewise. | |
30793 | (vsub_f16): Likewise. | |
30794 | (vsubq_f16): Likewise. | |
30795 | * config/arm/neon.md (add<mode>3): New. | |
30796 | (sub<mode>3): New. | |
30797 | (fma:<VH:mode>3): New. Also remove outdated comment. | |
30798 | (mul<mode>3): New. | |
30799 | ||
30800 | 2017-05-16 Martin Liska <mliska@suse.cz> | |
30801 | ||
30802 | PR ipa/79849. | |
30803 | PR ipa/79850. | |
30804 | * ipa-devirt.c (warn_types_mismatch): Fix typo. | |
30805 | (odr_types_equivalent_p): Likewise. | |
30806 | ||
30807 | 2017-05-15 Sylvestre Ledru <sylvestre@debian.org> | |
30808 | ||
30809 | * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637). | |
30810 | ||
30811 | 2017-05-15 Uros Bizjak <ubizjak@gmail.com> | |
30812 | ||
30813 | PR target/80425 | |
30814 | * config/i386.i386.md (*zero_extendsidi2): Do not penalize | |
30815 | non-interunit SSE move alternatives with '?'. | |
30816 | (zero-extendsidi peephole2): New peephole to skip intermediate | |
30817 | general register in SSE zero-extend sequence. | |
30818 | ||
30819 | 2017-05-15 Jeff Law <law@redhat.com> | |
30820 | ||
30821 | * reorg.c (relax_delay_slots): Create a new variable to hold | |
30822 | the temporary target rather than clobbering TARGET_LABEL. | |
30823 | ||
30824 | * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add | |
30825 | missing argument to extract_bit_field call. | |
30826 | * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise. | |
30827 | ||
30828 | 2017-05-15 Martin Liska <mliska@suse.cz> | |
30829 | ||
30830 | PR driver/31468 | |
30831 | * gcc.c (process_command): Do not allow empty argument of -o option. | |
30832 | ||
30833 | 2017-05-15 Renlin Li <renlin.li@arm.com> | |
30834 | ||
30835 | * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare. | |
30836 | * config/aarch64/aarch64.c (aarch64_expand_call): Define. | |
30837 | * config/aarch64/constraints.md (Usf): Add long call check. | |
30838 | * config/aarch64/aarch64.md (call): Use aarch64_expand_call. | |
30839 | (call_value): Likewise. | |
30840 | (sibcall): Likewise. | |
30841 | (sibcall_value): Likewise. | |
30842 | (call_insn): New. | |
30843 | (call_value_insn): New. | |
30844 | (sibcall_insn): Update rtx pattern. | |
30845 | (sibcall_value_insn): Likewise. | |
30846 | (call_internal): Remove. | |
30847 | (call_value_internal): Likewise. | |
30848 | (sibcall_internal): Likewise. | |
30849 | (sibcall_value_internal): Likewise. | |
30850 | (call_reg): Likewise. | |
30851 | (call_symbol): Likewise. | |
30852 | (call_value_reg): Likewise. | |
30853 | (call_value_symbol): Likewise. | |
30854 | ||
30855 | 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com> | |
30856 | ||
30857 | PR target/80600 | |
30858 | * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc. | |
30859 | ||
30860 | 2017-05-14 Uros Bizjak <ubizjak@gmail.com> | |
30861 | ||
30862 | * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is | |
30863 | compatible with CCGOCmode and with CCZmode. | |
30864 | ||
30865 | 2017-05-14 Martin Sebor <msebor@redhat.com> | |
30866 | ||
30867 | PR middle-end/77671 | |
30868 | * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern. | |
30869 | (gimple_fold_builtin_snprintf): Same. | |
30870 | * gimple-fold.h (gimple_fold_builtin_sprintf): Declare. | |
30871 | (gimple_fold_builtin_snprintf): Same. | |
30872 | * gimple-ssa-sprintf.c (get_format_string): Correct the detection | |
30873 | of character types. | |
30874 | (is_call_safe): New function. | |
30875 | (try_substitute_return_value): Call it. | |
30876 | (try_simplify_call): New function. | |
30877 | (pass_sprintf_length::handle_gimple_call): Call it. | |
30878 | ||
30879 | 2017-05-14 Martin Sebor <msebor@redhat.com> | |
30880 | ||
30881 | PR middle-end/80669 | |
30882 | * builtins.c (expand_builtin_stpncpy): Simplify. | |
30883 | ||
30884 | 2017-05-14 Daniel Santos <daniel.santos@pobox.com> | |
30885 | ||
30886 | * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues. | |
30887 | * config/i386/i386.h | |
30888 | (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned. | |
30889 | (NUM_X86_64_MS_CLOBBERED_REGS): New macro. | |
30890 | (struct machine_function): Add new members call_ms2sysv, | |
30891 | call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs. | |
30892 | (struct machine_frame_state): New fields sp_realigned and | |
30893 | sp_realigned_offset. | |
30894 | * config/i386/i386.c | |
30895 | (enum xlogue_stub): New enum. | |
30896 | (enum xlogue_stub_sets): New enum. | |
30897 | (class xlogue_layout): New class. | |
30898 | (struct ix86_frame): New fields stack_realign_allocate_offset, | |
30899 | stack_realign_offset and outlined_save_offset. Modify comments to | |
30900 | detail stack layout when using out-of-line stubs. | |
30901 | (ix86_target_string): Add -mcall-ms2sysv-xlogues option. | |
30902 | (ix86_option_override_internal): Add sorry() for TARGET_SEH and | |
30903 | -mcall-ms2sysv-xlogues. | |
30904 | (stub_managed_regs): New static variable. | |
30905 | (ix86_save_reg): Add new parameter ignore_outlined to optionally omit | |
30906 | registers managed by out-of-line stub. | |
30907 | (disable_call_ms2sysv_xlogues): New function. | |
30908 | (ix86_compute_frame_layout): Modify re-alignment calculations, disable | |
30909 | m->call_ms2sysv when appropriate and compute frame layout for | |
30910 | out-of-line stubs. | |
30911 | (sp_valid_at, fp_valid_at): New inline functions. | |
30912 | (choose_basereg): New function. | |
30913 | (choose_baseaddr): Add align parameter, use choose_basereg and modify | |
30914 | all callers. | |
30915 | (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov): | |
30916 | Use align parameter of choose_baseaddr to generated aligned SSE movs | |
30917 | when possible. | |
30918 | (pro_epilogue_adjust_stack): Modify to track | |
30919 | machine_frame_state::sp_realigned. | |
30920 | (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg. | |
30921 | (ix86_nsaved_sseregs): Likewise. | |
30922 | (ix86_emit_save_regs): Likewise. | |
30923 | (ix86_emit_save_regs_using_mov): Likewise. | |
30924 | (ix86_emit_save_sse_regs_using_mov): Likewise. | |
30925 | (get_scratch_register_on_entry): Likewise. | |
30926 | (gen_frame_set): New function. | |
30927 | (gen_frame_load): Likewise. | |
30928 | (gen_frame_store): Likewise. | |
30929 | (emit_outlined_ms2sysv_save): Likewise. | |
30930 | (emit_outlined_ms2sysv_restore): Likewise. | |
30931 | (ix86_expand_prologue): Modify stack re-alignment code and call | |
30932 | emit_outlined_ms2sysv_save when appropriate. | |
30933 | (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add | |
30934 | parameter rtx_insn *insn, which allows the function to be used to only | |
30935 | generate the notes. | |
30936 | (ix86_expand_epilogue): Modify validity checks of frame and stack | |
30937 | pointers, and call emit_outlined_ms2sysv_restore when appropriate. | |
30938 | (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate. | |
30939 | * config/i386/predicates.md | |
30940 | (save_multiple): New predicate. | |
30941 | (restore_multiple): Likewise. | |
30942 | * config/i386/sse.md | |
30943 | (save_multiple<mode>): New pattern. | |
30944 | (save_multiple_realign<mode>): Likewise. | |
30945 | (restore_multiple<mode>): Likewise. | |
30946 | (restore_multiple_and_return<mode>): Likewise. | |
30947 | (restore_multiple_leave_return<mode>): Likewise. | |
30948 | * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp | |
30949 | ||
30950 | 2017-05-14 Julia Koval <julia.koval@intel.com> | |
30951 | ||
30952 | * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type. | |
30953 | * config/i386/i386-builtin.def (__builtin_ia32_xgetbv) | |
30954 | (__builtin_ia32_xsetbv): New builtins. | |
30955 | * config/i386/i386.c (ix86_expand_special_args_builtin): | |
30956 | Process new types. | |
30957 | (ix86_expand_builtin): Special expand for new intrinsics. | |
30958 | * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New. | |
30959 | (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns. | |
30960 | * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics. | |
30961 | ||
30962 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
30963 | ||
30964 | * cfganal.c (inverted_post_order_compute): Change argument type | |
30965 | to vec *. | |
30966 | * cfganal.h (inverted_post_order_compute): Adjust prototype. | |
30967 | * df-core.c (rest_of_handle_df_initialize): Adjust. | |
30968 | (rest_of_handle_df_finish): Likewise. | |
30969 | (df_analyze_1): Likewise. | |
30970 | (df_analyze): Likewise. | |
30971 | (loop_inverted_post_order_compute): Change argument to be a vec *. | |
30972 | (df_analyze_loop): Adjust. | |
30973 | (df_get_n_blocks): Likewise. | |
30974 | (df_get_postorder): Likewise. | |
30975 | * df.h (struct df_d): Change field to be a vec. | |
30976 | * lcm.c (compute_laterin): Adjust. | |
30977 | (compute_available): Likewise. | |
30978 | * lra-lives.c (lra_create_live_ranges_1): Likewise. | |
30979 | * tree-ssa-dce.c (remove_dead_stmt): Likewise. | |
30980 | * tree-ssa-pre.c (compute_antic): Likewise. | |
30981 | ||
30982 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
30983 | ||
30984 | * cfganal.c (connect_infinite_loops_to_exit): Adjust. | |
30985 | (depth_first_search::depth_first_search): Change structure init | |
30986 | function to this constructor. | |
30987 | (depth_first_search::add_bb): Rename function to this member. | |
30988 | (depth_first_search::execute): Likewise. | |
30989 | (flow_dfs_compute_reverse_finish): Adjust. | |
30990 | ||
30991 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
30992 | ||
30993 | * ddg.c (find_nodes_on_paths): Use auto_sbitmap. | |
30994 | (longest_simple_path): Likewise. | |
30995 | * shrink-wrap.c (spread_components): Likewise. | |
30996 | (disqualify_problematic_components): Likewise. | |
30997 | (emit_common_heads_for_components): Likewise. | |
30998 | (emit_common_tails_for_components): Likewise. | |
30999 | (insert_prologue_epilogue_for_components): Likewise. | |
31000 | ||
31001 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
31002 | ||
31003 | * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a | |
31004 | auto_sbitmap. | |
31005 | ||
31006 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
31007 | ||
31008 | * df-core.c (df_set_blocks): Start using auto_bitmap. | |
31009 | (df_compact_blocks): Likewise. | |
31010 | * df-problems.c (df_rd_confluence_n): Likewise. | |
31011 | * df-scan.c (df_insn_rescan_all): Likewise. | |
31012 | (df_process_deferred_rescans): Likewise. | |
31013 | (df_update_entry_block_defs): Likewise. | |
31014 | (df_update_exit_block_uses): Likewise. | |
31015 | (df_entry_block_bitmap_verify): Likewise. | |
31016 | (df_exit_block_bitmap_verify): Likewise. | |
31017 | (df_scan_verify): Likewise. | |
31018 | * lra-constraints.c (lra_constraints): Likewise. | |
31019 | (undo_optional_reloads): Likewise. | |
31020 | (lra_undo_inheritance): Likewise. | |
31021 | * lra-remat.c (calculate_gen_cands): Likewise. | |
31022 | (do_remat): Likewise. | |
31023 | * lra-spills.c (assign_spill_hard_regs): Likewise. | |
31024 | (spill_pseudos): Likewise. | |
31025 | * tree-ssa-pre.c (bitmap_set_and): Likewise. | |
31026 | (bitmap_set_subtract_values): Likewise. | |
31027 | ||
31028 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
31029 | ||
31030 | * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap | |
31031 | management with auto_bitmap. | |
31032 | (fix_inter_tick): Likewise. | |
31033 | (fix_recovery_deps): Likewise. | |
31034 | * ira.c (add_store_equivs): Likewise. | |
31035 | (find_moveable_pseudos): Likewise. | |
31036 | (split_live_ranges_for_shrink_wrap): Likewise. | |
31037 | * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise. | |
31038 | (rtx_reuse_manager::seen_def_p): Likewise. | |
31039 | (rtx_reuse_manager::set_seen_def): Likewise. | |
31040 | * print-rtl.h (class rtx_reuse_manager): Likewise. | |
31041 | ||
31042 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
31043 | ||
31044 | * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap | |
31045 | lifetime. | |
31046 | (migrate_btr_def): Likewise. | |
31047 | * cfgloop.c (get_loop_body_in_bfs_order): Likewise. | |
31048 | * df-core.c (loop_post_order_compute): Likewise. | |
31049 | (loop_inverted_post_order_compute): Likewise. | |
31050 | * hsa-common.h: Likewise. | |
31051 | * hsa-gen.c (hsa_bb::~hsa_bb): Likewise. | |
31052 | * init-regs.c (initialize_uninitialized_regs): Likewise. | |
31053 | * ipa-inline.c (resolve_noninline_speculation): Likewise. | |
31054 | (inline_small_functions): Likewise. | |
31055 | * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise. | |
31056 | * ira.c (combine_and_move_insns): Likewise. | |
31057 | (build_insn_chain): Likewise. | |
31058 | * loop-invariant.c (find_invariants): Likewise. | |
31059 | * lower-subreg.c (propagate_pseudo_copies): Likewise. | |
31060 | * predict.c (tree_predict_by_opcode): Likewise. | |
31061 | (predict_paths_leading_to): Likewise. | |
31062 | (predict_paths_leading_to_edge): Likewise. | |
31063 | (estimate_loops_at_level): Likewise. | |
31064 | (estimate_loops): Likewise. | |
31065 | * shrink-wrap.c (try_shrink_wrapping): Likewise. | |
31066 | (spread_components): Likewise. | |
31067 | * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise. | |
31068 | * tree-loop-distribution.c (rdg_build_partitions): Likewise. | |
31069 | * tree-predcom.c (tree_predictive_commoning_loop): Likewise. | |
31070 | * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise. | |
31071 | * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise. | |
31072 | * tree-ssa-pre.c (remove_dead_inserted_code): Likewise. | |
31073 | * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise. | |
31074 | * tree-ssa-threadupdate.c (compute_path_counts): Likewise. | |
31075 | (mark_threaded_blocks): Likewise. | |
31076 | (thread_through_all_blocks): Likewise. | |
31077 | * tree-ssa.c (verify_ssa): Likewise. | |
31078 | (execute_update_addresses_taken): Likewise. | |
31079 | * tree-ssanames.c (verify_ssaname_freelists): Likewise. | |
31080 | ||
31081 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
31082 | ||
31083 | * cfganal.c (mark_dfs_back_edges): Replace manual stack with | |
31084 | auto_vec. | |
31085 | (post_order_compute): Likewise. | |
31086 | (inverted_post_order_compute): Likewise. | |
31087 | (pre_and_rev_post_order_compute_fn): Likewise. | |
31088 | ||
31089 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
31090 | ||
31091 | * genrecog.c (int_set::int_set): Explicitly construct our | |
31092 | auto_vec base class. | |
31093 | * vec.h (auto_vec::auto_vec): New constructor. | |
31094 | ||
31095 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
31096 | ||
31097 | * bitmap.h (class auto_bitmap): New constructor taking | |
31098 | bitmap_obstack * argument. | |
31099 | ||
31100 | 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> | |
31101 | ||
31102 | * bitmap.h (class auto_bitmap): Change type of m_bits to | |
31103 | bitmap_head, and adjust ctor / dtor and member operators. | |
31104 | ||
31105 | 2017-05-13 Uros Bizjak <ubizjak@gmail.com> | |
31106 | ||
31107 | * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX | |
31108 | when returned register mode doesn't match original mode. | |
31109 | ||
31110 | 2017-05-12 Jeff Law <law@redhat.com> | |
31111 | Jakub Jelinek <jakub@redhat.com> | |
31112 | ||
31113 | * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where | |
31114 | we look for cc setter after the compare-elim changes. | |
31115 | * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns | |
31116 | within the vector to match what compare-elim now expects. | |
31117 | (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise. | |
31118 | (xorsi3_flags, one_cmplsi2_flags): Likewise. | |
31119 | ||
31120 | * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter | |
31121 | after the compare-elim changes. | |
31122 | * config/rx/rx.md (abssi2_flags): Fix order of patterns within | |
31123 | the vector to match what compare-elim now expects. | |
31124 | (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise. | |
31125 | (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise. | |
31126 | (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise. | |
31127 | (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise. | |
31128 | (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise. | |
31129 | ||
31130 | * config/visium/visium.c (single_set_and_flags): Fix where | |
31131 | we look for cc setter after the compare-elim changes. | |
31132 | * config/visium/visium.md (flags_subst_logic): Fix order of patterns | |
31133 | with the vector to match what compare-elim now expects. | |
31134 | (flags_subst_arith, add<mode>3_insn_set_carry): Likewise. | |
31135 | (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise. | |
31136 | (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise. | |
31137 | (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise. | |
31138 | (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise. | |
31139 | (neg<mode>2_insn_set_overflow): Likewise. | |
31140 | ||
31141 | 2017-05-12 Jim Wilson <jim.wilson@linaro.org> | |
31142 | ||
31143 | PR middle-end/79794 | |
31144 | * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before | |
31145 | maybe_expand_insn call, set ops[0].target. If still set after call, | |
31146 | set alt_rtl. Add extra arg to recursive calls. | |
31147 | (extract_bit_field): Add alt_rtl argument. Pass to | |
31148 | extract_bit_field. | |
31149 | * expmed.h (extract_bit_field): Fix prototype. | |
31150 | * expr.c (emit_group_load_1, copy_blkmode_from_reg) | |
31151 | (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL | |
31152 | to extract_bit_field_calls. | |
31153 | (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0. | |
31154 | Pass alt_rtl to extract_bit_field calls. | |
31155 | * calls.c (store_unaligned_arguments_into_psuedos) | |
31156 | load_register_parameters): Pass extra NULL to extract_bit_field calls. | |
31157 | * optabs.c (maybe_legitimize_operand): Clear op->target when call | |
31158 | gen_reg_rtx. | |
31159 | * optabs.h (struct expand_operand): Add target bitfield. | |
31160 | ||
31161 | 2017-05-12 Uros Bizjak <ubizjak@gmail.com> | |
31162 | ||
31163 | * compare-elim.c (try_eliminate_compare): Canonicalize | |
31164 | operation with embedded compare to | |
31165 | [(set (reg:CCM) (compare:CCM (operation) (immediate))) | |
31166 | (set (reg) (operation)]. | |
31167 | ||
31168 | * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define. | |
31169 | ||
31170 | 2017-05-12 Uros Bizjak <ubizjak@gmail.com> | |
31171 | ||
31172 | PR target/80723 | |
31173 | * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the | |
31174 | cost of adding a carry flag for ADC instruction. | |
31175 | [case MINUS]: Ignore the cost of subtracting a carry flag | |
31176 | for SBB instruction. | |
31177 | ||
31178 | 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org> | |
31179 | ||
31180 | * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h, | |
31181 | and x86intrin.h | |
31182 | * config/rs6000/bmiintrin.h: New file. | |
31183 | * config/rs6000/bmi2intrin.h: New file. | |
31184 | * config/rs6000/x86intrin.h: New file. | |
31185 | ||
31186 | 2017-05-12 Jeff Law <law@redhat.com> | |
31187 | ||
31188 | * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding | |
31189 | markers. | |
31190 | ||
31191 | 2017-05-12 Peter Bergner <bergner@vnet.ibm.com> | |
31192 | ||
31193 | PR middle-end/80707 | |
31194 | * tree-cfg.c: Remove cfg edges of unreachable case statements. | |
31195 | ||
31196 | 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> | |
31197 | ||
31198 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for | |
31199 | early expansion of vector divide builtins. | |
31200 | (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of | |
31201 | builtins identified as having unsigned arguments. | |
31202 | ||
31203 | 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> | |
31204 | ||
31205 | * config/rs6000/rs6000.c (gimple-fold.h): New #include. | |
31206 | (rs6000_gimple_fold_builtin): Add handling for early GIMPLE | |
31207 | expansion of vector logical operations (and, andc, or, xor, | |
31208 | nor, orc, nand). | |
31209 | ||
31210 | 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> | |
31211 | ||
31212 | * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration. | |
31213 | * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype. | |
31214 | ||
31215 | 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com> | |
31216 | ||
31217 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for | |
31218 | early GIMPLE expansion of vector multiplies. | |
31219 | ||
31220 | 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com> | |
31221 | ||
31222 | * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the | |
31223 | TARGET_HAVE_MOVT conditional. | |
31224 | (movt splitter): Likewise. | |
31225 | ||
31226 | 2017-05-12 Richard Biener <rguenther@suse.de> | |
31227 | ||
31228 | * tree-ssa-sccvn.h (has_VN_INFO): Declare. | |
31229 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): | |
31230 | Fold all stmts not inplace. | |
31231 | ||
31232 | 2017-05-12 Richard Biener <rguenther@suse.de> | |
31233 | ||
31234 | PR tree-optimization/80713 | |
31235 | * tree-ssa-pre.c (remove_dead_inserted_code): Clear | |
31236 | inserted_exprs bit for not removed stmts. | |
31237 | ||
31238 | 2017-05-12 Thomas Schwinge <thomas@codesourcery.com> | |
31239 | ||
31240 | PR middle-end/69921 | |
31241 | * tree-parloops.c (create_parallel_loop): Set "oacc kernels | |
31242 | parallelized" attribute for parallelized OpenACC kernels. | |
31243 | * omp-offload.c (execute_oacc_device_lower): Use it. | |
31244 | ||
31245 | * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>: | |
31246 | Set "oacc kernels" attribute. | |
31247 | * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal | |
31248 | parameter. Adjust all users. | |
31249 | (oacc_fn_attrib_kernels_p): Remove function. | |
31250 | * omp-offload.c (execute_oacc_device_lower): Look for "oacc | |
31251 | kernels" attribute instead of calling oacc_fn_attrib_kernels_p. | |
31252 | * tree-ssa-loop.c (gate_oacc_kernels): Likewise. | |
31253 | * tree-parloops.c (create_parallel_loop): If oacc_kernels_p, | |
31254 | assert "oacc kernels" attribute is set. | |
31255 | ||
31256 | 2017-05-11 Carl Love <cel@us.ibm.com> | |
31257 | ||
31258 | * config/rs6000/rs6000-c: Add support for built-in functions | |
31259 | vector unsigned char vec_popcnt (vector signed char) | |
31260 | vector unsigned char vec_popcnt (vector unsigned char) | |
31261 | vector unsigned short vec_popcnt (vector signed short) | |
31262 | vector unsigned short vec_popcnt (vector unsigned short) | |
31263 | vector unsigned int vec_popcnt (vector signed int) | |
31264 | vector unsigned int vec_popcnt (vector unsigned int) | |
31265 | vector unsigned long long vec_popcnt (vector signed long long) | |
31266 | vector unsigned long long vec_popcnt (vector unsigned long long) | |
31267 | vector signed long long vec_slo (vector signed long long, | |
31268 | vector signed char) | |
31269 | vector signed long long vec_slo (vector signed long long, | |
31270 | vector unsigned char) | |
31271 | vector unsigned long long vec_slo (vector unsigned long long, | |
31272 | vector signed char) | |
31273 | vector unsigned long long vec_slo (vector unsigned long long, | |
31274 | vector unsigned char) | |
31275 | * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB, | |
31276 | VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads. | |
31277 | * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb, | |
31278 | vec_popcnth, vec_popcntw and vec_popcntd built-in functions. | |
31279 | * doc/extend.texi: Update the built-in documentation file for the | |
31280 | new built-in functions. | |
31281 | ||
31282 | 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com> | |
31283 | ||
31284 | * attribs.h (sorted_attr_string): Move machine independent | |
31285 | functions for target clone support from the i386 port to common | |
31286 | code. Rename ix86_function_versions to common_function_versions. | |
31287 | Rename make_name to make_unique_name. | |
31288 | (common_function_versions): Likewise. | |
31289 | (make_unique_name): Likewise. | |
31290 | (make_dispatcher_decl): Likewise. | |
31291 | (is_function_default_version): Likewise. | |
31292 | * attribs.c (attr_strcmp): Likewise. | |
31293 | (sorted_attr_string): Likewise. | |
31294 | (common_function_versions): Likewise. | |
31295 | (make_unique_name): Likewise. | |
31296 | (make_dispatcher_decl): Likewise. | |
31297 | (is_function_default_version): Likewise. | |
31298 | * config/i386/i386.c (attr_strcmp): Likewise. | |
31299 | (sorted_attr_string): Likewise. | |
31300 | (ix86_function_versions): Likewise. | |
31301 | (make_name): Likewise. | |
31302 | (make_dispatcher_decl): Likewise. | |
31303 | (is_function_default_version): Likewise. | |
31304 | (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook. | |
31305 | ||
31306 | 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
31307 | ||
31308 | PR target/80695 | |
31309 | * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): | |
31310 | Account for direct move costs for vec_construct of integer | |
31311 | vectors. | |
31312 | ||
31313 | 2017-05-11 Uros Bizjak <ubizjak@gmail.com> | |
31314 | ||
31315 | PR target/80706 | |
31316 | * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec. | |
31317 | (UNSPEC_STX_ATOMIC): Ditto. | |
31318 | (loaddi_via_sse): New insn. | |
31319 | (storedi_via_sse): Ditto. | |
31320 | (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse. | |
31321 | Update corresponding peephole2 patterns. | |
31322 | (atomic_storedi_fpu): Ditto. | |
31323 | ||
31324 | 2017-05-11 Julia Koval <julia.koval@intel.com> | |
31325 | ||
31326 | * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd) | |
31327 | (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss): | |
31328 | New intrinsics. | |
31329 | * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask) | |
31330 | (__builtin_ia32_rsqrt14ss_mask): New builtins. | |
31331 | * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern. | |
31332 | ||
31333 | 2017-05-11 Nathan Sidwell <nathan@acm.org> | |
31334 | ||
31335 | * graphite-poly.c: Include dumpfile.h. | |
31336 | ||
31337 | * dumpfle.h (dump_function): Declare here ... | |
31338 | * tree-dump.h (dump_function): ... not here. | |
31339 | * dumpfile.c: #include tree-cfg.h. | |
31340 | (dump_function): Move here from ... | |
31341 | * tree-dump.c (dump_function): ... here. | |
31342 | * gimplify.c: #include splay-tree.h, not tree-dump.h. | |
31343 | * graphite-poly.c: Don't include tree-dump.h. | |
31344 | * cgraphclones.c: Include dumpfile.h not tree-dump.h. | |
31345 | * print-tree.c: Likewise. | |
31346 | * stor-layout.c: Likewise. | |
31347 | * tree-nested.c: Likewise. | |
31348 | ||
31349 | * dumpfile.c (dump_start): Use TDF_FLAGS. | |
31350 | (dump_enable_all): Fix TDF_KIND check thinko. | |
31351 | ||
31352 | 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
31353 | ||
31354 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
31355 | array entries to represent two legal parameterizations of the | |
31356 | overloaded __builtin_cmpb function, as represented by the | |
31357 | P6_OV_BUILTIN_CMPB constant. | |
31358 | (altivec_resolve_overloaded_builtin): Add special case handling | |
31359 | for the __builtin_cmpb function, as represented by the | |
31360 | P6_OV_BUILTIN_CMPB constant. | |
31361 | * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro. | |
31362 | (BU_P6_64BIT_2): New macro. | |
31363 | (BU_P6_OVERLOAD_2): New macro | |
31364 | (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets. | |
31365 | (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets. | |
31366 | (CMPB): Add overload support to represent both 32-bit and 64-bit | |
31367 | compare-bytes function. | |
31368 | * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add | |
31369 | support for TARGET_CMPB. | |
31370 | * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB. | |
31371 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add | |
31372 | documentation of the __builtin_cmpb overloaded built-in function. | |
31373 | ||
31374 | 2017-05-11 Richard Biener <rguenther@suse.de> | |
31375 | ||
31376 | PR tree-optimization/80705 | |
31377 | * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED | |
31378 | bases are not vectorizable. | |
31379 | ||
31380 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31381 | ||
31382 | * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger | |
31383 | when counting register pressure. | |
31384 | ||
31385 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31386 | ||
31387 | * tree-ssa-loop-ivopts.c (compare_cost_pair): New. | |
31388 | (iv_ca_more_deps): Renamed to ... | |
31389 | (iv_ca_compare_deps): ... this. | |
31390 | (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP. | |
31391 | ||
31392 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31393 | ||
31394 | * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump | |
31395 | to ... | |
31396 | (determine_group_iv_costs): ... here. | |
31397 | (find_inv_vars_cb): Record inv var if it's not recorded before. | |
31398 | ||
31399 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31400 | ||
31401 | * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments. | |
31402 | (get_shiftadd_cost): Ditto. | |
31403 | ||
31404 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31405 | ||
31406 | * tree-ssa-address.c: Include header file. | |
31407 | (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory | |
31408 | address. | |
31409 | (add_to_parts): Refactor. | |
31410 | (addr_to_parts): New parameter. Update use of move_hint_to_base. | |
31411 | (create_mem_ref): Update use of addr_to_parts. Re-associate addr | |
31412 | in new order. | |
31413 | ||
31414 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31415 | ||
31416 | PR tree-optimization/53090 | |
31417 | * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value | |
31418 | COMP_IV_EXPR_2. | |
31419 | (extract_cond_operands): Detect condition with IV on both sides | |
31420 | and return COMP_IV_EXPR_2. | |
31421 | (find_interesting_uses_cond): Add iv_use for both IVs in condition. | |
31422 | (rewrite_use_compare): Simplify by removing call to function | |
31423 | extract_cond_operands. | |
31424 | ||
31425 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31426 | ||
31427 | * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New. | |
31428 | (extract_cond_operands): Detect condition comparing against non- | |
31429 | invariant bound and return appropriate enum value. | |
31430 | (find_interesting_uses_cond): Update use of extract_cond_operands. | |
31431 | Handle its return value accordingly. | |
31432 | (determine_group_iv_cost_cond, rewrite_use_compare): Ditto. | |
31433 | ||
31434 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31435 | ||
31436 | * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate | |
31437 | nonlinear iv_use computation in loop invariant sensitive way. | |
31438 | ||
31439 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31440 | ||
31441 | * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New. | |
31442 | (find_iv_candidates): Call relate_compare_use_with_all_cands. | |
31443 | ||
31444 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31445 | ||
31446 | * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs. | |
31447 | (dump_cand): Support iv_cand.inv_exprs. | |
31448 | (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs | |
31449 | for candidates. | |
31450 | (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support | |
31451 | iv_cand.inv_exprs. | |
31452 | ||
31453 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31454 | ||
31455 | * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move | |
31456 | from ... | |
31457 | * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here | |
31458 | as local function. Include necessary header files. | |
31459 | * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete. | |
31460 | ||
31461 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31462 | ||
31463 | * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify. | |
31464 | ||
31465 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31466 | ||
31467 | * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more | |
31468 | operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR, | |
31469 | RSHIFT_EXPR and BIT_NOT_EXPR. | |
31470 | ||
31471 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31472 | ||
31473 | * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify. | |
31474 | (adjust_setup_cost): New parameter supporting round up adjustment. | |
31475 | (struct address_cost_data): Delete. | |
31476 | (force_expr_to_var_cost): Don't bound cost with spill_cost. | |
31477 | (split_address_cost, ptr_difference_cost): Delete. | |
31478 | (difference_cost, compare_aff_trees, record_inv_expr): Delete. | |
31479 | (struct ainc_cost_data): New struct. | |
31480 | (get_address_cost_ainc): New function. | |
31481 | (get_address_cost, get_computation_cost): Reimplement. | |
31482 | (determine_group_iv_cost_address): Record inv_expr for all uses of | |
31483 | a group. | |
31484 | (determine_group_iv_cost_cond): Call get_loop_invariant_expr. | |
31485 | (iv_ca_has_deps): Reimplemented to ... | |
31486 | (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps | |
31487 | than OLD_CP. | |
31488 | (iv_ca_extend): Call iv_ca_more_deps. | |
31489 | ||
31490 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31491 | ||
31492 | * tree-ssa-address.c (struct mem_address): Move to header file. | |
31493 | (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global. | |
31494 | * tree-ssa-address.h (struct mem_address): Move from C file. | |
31495 | (valid_mem_ref_p, move_fixed_address_to_symbol): Declare. | |
31496 | ||
31497 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31498 | ||
31499 | * tree-affine.h (aff_combination_type): New interface. | |
31500 | (aff_combination_zero_p): Remove static. | |
31501 | (aff_combination_const_p): New interface. | |
31502 | (aff_combination_singleton_var_p): New interfaces. | |
31503 | ||
31504 | 2017-05-11 Richard Biener <rguenther@suse.de> | |
31505 | ||
31506 | * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): | |
31507 | Skip unreachable blocks and destinations. | |
31508 | (eliminate): Move stmt removal and fixup ... | |
31509 | (fini_eliminate): ... here. Skip inserted exprs. | |
31510 | (pass_pre::execute): Move fini_pre after fini_eliminate. | |
31511 | * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h. | |
31512 | (tail_merge_optimize): Run cleanup_tree_cfg if requested by | |
31513 | PRE to get rid of dead code that has invalid SSA form and | |
31514 | split critical edges again. | |
31515 | ||
31516 | 2017-05-11 Bin Cheng <bin.cheng@arm.com> | |
31517 | ||
31518 | * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. | |
31519 | ||
31520 | 2017-05-11 Richard Biener <rguenther@suse.de> | |
31521 | ||
31522 | * passes.c (execute_function_todo): Verify loops if they are | |
31523 | said to be up-to-date. | |
31524 | * cfgexpand.c (pass_expand::execute): Discard loops for -dx. | |
31525 | * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup. | |
31526 | ||
31527 | 2017-05-10 John David Anglin <danglin@gcc.gnu.org> | |
31528 | ||
31529 | PR target/80090 | |
31530 | * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF, | |
31531 | handle calling assemble_external ourself. | |
31532 | ||
31533 | PR target/79027 | |
31534 | * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from | |
31535 | modes with zero size. Enhance comment. | |
31536 | ||
31537 | 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
31538 | ||
31539 | * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8 | |
31540 | built-ins for vec_xl and vec_xst with short and char pointer | |
31541 | arguments. | |
31542 | ||
31543 | 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com> | |
31544 | ||
31545 | * config/i386/avx512fintrin.h (_mm_mask_max_round_sd) | |
31546 | (_mm_maskz_max_round_sd, _mm_mask_max_round_ss) | |
31547 | (_mm_maskz_max_round_ss, _mm_mask_min_round_sd) | |
31548 | (_mm_maskz_min_round_sd, _mm_mask_min_round_ss) | |
31549 | (_mm_maskz_min_round_ss): New intrinsics. | |
31550 | * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT) | |
31551 | (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases. | |
31552 | * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round) | |
31553 | (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round) | |
31554 | (__builtin_ia32_minss_mask_round): New builtins. | |
31555 | * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) | |
31556 | (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types. | |
31557 | * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>): | |
31558 | Rename to ... | |
31559 | (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this. | |
31560 | (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}): | |
31561 | Change to ... | |
31562 | (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): | |
31563 | ... this. | |
31564 | ||
31565 | 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com> | |
31566 | ||
31567 | * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd) | |
31568 | (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss) | |
31569 | (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd) | |
31570 | (_mm_maskz_div_round_sd, _mm_mask_div_round_ss) | |
31571 | (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd) | |
31572 | (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd) | |
31573 | (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics. | |
31574 | * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) | |
31575 | (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases. | |
31576 | * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round) | |
31577 | (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round) | |
31578 | (__builtin_ia32_mulss_mask_round): New builtins. | |
31579 | * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) | |
31580 | (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types. | |
31581 | * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>): | |
31582 | Rename to ... | |
31583 | (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this. | |
31584 | (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}): | |
31585 | Change to ... | |
31586 | (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): | |
31587 | ... this. | |
31588 | ||
31589 | 2017-05-10 Julia Koval <julia.koval@intel.com> | |
31590 | ||
31591 | * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d) | |
31592 | (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d) | |
31593 | (_mm256_setr_m128i): New intrinsics. | |
31594 | ||
31595 | 2017-05-10 Julia Koval <julia.koval@intel.com> | |
31596 | ||
31597 | * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd) | |
31598 | (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss) | |
31599 | (_mm_maskz_rcp14_ss): New intrinsics. | |
31600 | * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask) | |
31601 | (__builtin_ia32_rcp14ss_mask): New builtins. | |
31602 | * config/i386/sse.md (srcp14<mode>_mask): New pattern. | |
31603 | ||
31604 | 2017-05-10 Peter Bergner <bergner@vnet.ibm.com> | |
31605 | ||
31606 | PR tree-optimization/51513 | |
31607 | * tree-cfg.c (gimple_seq_unreachable_p): New function. | |
31608 | (assert_unreachable_fallthru_edge_p): Use it. | |
31609 | (group_case_labels_stmt): Likewise. | |
31610 | * tree-cfg.h: Prototype it. | |
31611 | * stmt.c: Include cfghooks.h and tree-cfg.h. | |
31612 | (emit_case_dispatch_table) <gap_label>: New local variable. | |
31613 | Use it to fill dispatch table gaps. | |
31614 | Test for default_label before updating probabilities. | |
31615 | (expand_case) <default_label>: Remove unneeded initialization. | |
31616 | Test for unreachable default case statement and remove its edge. | |
31617 | Set default_label accordingly. | |
31618 | * tree-ssa-ccp.c (optimize_unreachable): Update comment. | |
31619 | ||
31620 | 2017-05-10 Carl Love <cel@us.ibm.com> | |
31621 | ||
31622 | * config/rs6000/rs6000-c: Add support for built-in functions | |
31623 | vector signed char vec_neg (vector signed char) | |
31624 | vector signed short int vec_neg (vector short int) | |
31625 | vector signed int vec_neg (vector signed int) | |
31626 | vector signed long long vec_neg (vector signed long long) | |
31627 | vector float vec_neg (vector float) | |
31628 | vector double vec_neg (vector double) | |
31629 | * config/rs6000/rs6000-builtin.def: Add definitions for NEG function | |
31630 | overload. | |
31631 | * config/rs6000/altivec.h: Add define for vec_neg | |
31632 | * doc/extend.texi: Update the built-in documentation for the | |
31633 | new built-in functions. | |
31634 | ||
31635 | 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
31636 | ||
31637 | PR tree-optimization/77644 | |
31638 | * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern. | |
31639 | ||
31640 | 2017-05-10 Nathan Sidwell <nathan@acm.org> | |
31641 | ||
31642 | * dumpfile.h (TDI_lang_all): New. | |
31643 | (TDF_KIND): New. Renumber others | |
31644 | (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather | |
31645 | than bits. | |
31646 | * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add | |
31647 | lang-all. | |
31648 | (get_dump_file_name): Adjust suffix generation. | |
31649 | (dump_enable_all): Use TDF_KIND. | |
31650 | * doc/invoke.texi (-fdump-lang-all): Document. | |
31651 | ||
31652 | * dumpfile.h: Tabify. | |
31653 | ||
31654 | 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com> | |
31655 | ||
31656 | PR target/80671 | |
31657 | * config/aarch64/cortex-a57-fma-steering.c (merge_forest): | |
31658 | Move member access before delete. | |
31659 | ||
31660 | 2017-05-10 Alexandre Oliva <aoliva@redhat.com> | |
31661 | ||
31662 | * tree-inline.c (expand_call_inline): Split block at stmt | |
31663 | before the call. | |
31664 | ||
31665 | 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com> | |
31666 | ||
31667 | PR target/68163 | |
31668 | * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that | |
31669 | are now unused after splitting mov{sf,sd}_hardfloat. | |
31670 | (f32_lr2): Likewise. | |
31671 | (f32_lm): Likewise. | |
31672 | (f32_lm2): Likewise. | |
31673 | (f32_li): Likewise. | |
31674 | (f32_li2): Likewise. | |
31675 | (f32_lv): Likewise. | |
31676 | (f32_sr): Likewise. | |
31677 | (f32_sr2): Likewise. | |
31678 | (f32_sm): Likewise. | |
31679 | (f32_sm2): Likewise. | |
31680 | (f32_si): Likewise. | |
31681 | (f32_si2): Likewise. | |
31682 | (f32_sv): Likewise. | |
31683 | (f32_dm): Likewise. | |
31684 | (f32_vsx): Likewise. | |
31685 | (f32_av): Likewise. | |
31686 | (mov<mode>_hardfloat): Split into separate movsf and movsd pieces. | |
31687 | For movsf, order stores so the VSX stores occur before the GPR | |
31688 | store which encourages the register allocator to use a traditional | |
31689 | FPR instead of a GPR. For movsd, order the stores so that the GPR | |
31690 | store comes before the VSX stores to allow the power6 to work. | |
31691 | This is due to the power6 not having a 32-bit integer store | |
31692 | instruction from a FPR. | |
31693 | (movsf_hardfloat): Likewise. | |
31694 | (movsd_hardfloat): Likewise. | |
31695 | ||
31696 | 2017-05-09 Martin Sebor <msebor@redhat.com> | |
31697 | ||
31698 | PR translation/80280 | |
31699 | * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member | |
31700 | added in r247778. | |
31701 | ||
31702 | PR translation/80280 | |
31703 | * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new | |
31704 | data member added in r247778. | |
31705 | (ms_scanf_flag_specs, ms_strftime_flag_specs): Same. | |
31706 | ||
31707 | 2017-05-09 Nathan Sidwell <nathan@acm.org> | |
31708 | ||
31709 | * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure. | |
31710 | ||
31711 | * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope | |
31712 | typedefs. | |
31713 | ||
31714 | 2017-05-09 Marek Polacek <polacek@redhat.com> | |
31715 | ||
31716 | * doc/invoke.texi: Fix typo. | |
31717 | ||
31718 | 2017-05-09 Richard Biener <rguenther@suse.de> | |
31719 | ||
31720 | * tree-vrp.c (vrp_val_is_max): Adjust comment. | |
31721 | (vrp_val_is_min): Likewise. | |
31722 | (set_value_range_to_value): Likewise. | |
31723 | (set_value_range_to_nonnegative): Likewise. | |
31724 | (gimple_assign_nonzero_p): Likewise. | |
31725 | (gimple_stmt_nonzero_p): Likewise. | |
31726 | (vrp_int_const_binop): Likewise. Remove unreachable case. | |
31727 | (adjust_range_with_scev): Adjust comments. | |
31728 | (compare_range_with_value): Likewise. | |
31729 | (extract_range_from_phi_node): Likewise. | |
31730 | (test_for_singularity): Likewise. | |
31731 | ||
31732 | 2017-05-09 Richard Biener <rguenther@suse.de> | |
31733 | ||
31734 | * tree-vrp.c (get_single_symbol): Add assert that we don't | |
31735 | get overflowed constants as invariant part. | |
31736 | (compare_values_warnv): Add comment before the TREE_NO_WARNING | |
31737 | checks. Use wi::cmp instead of recursing for integer constants. | |
31738 | (compare_values): Just ignore whether we assumed undefined | |
31739 | overflow instead of failing the compare. | |
31740 | (extract_range_for_var_from_comparison_expr): Add comment before the | |
31741 | TREE_NO_WARNING sets. | |
31742 | (test_for_singularity): Likewise. | |
31743 | (extract_range_from_comparison): Do not disable optimization | |
31744 | when we assumed undefined overflow. | |
31745 | (extract_range_basic): Remove init of unused var. | |
31746 | ||
31747 | 2017-05-09 Richard Biener <rguenther@suse.de> | |
31748 | ||
31749 | * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify. | |
31750 | (extract_range_from_multiplicative_op_1): Adjust. | |
31751 | (extract_range_from_binary_expr_1): Use int_const_binop. | |
31752 | ||
31753 | 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
31754 | ||
31755 | PR target/80101 | |
31756 | * config/rs6000/power6.md: Replace store_data_bypass_p calls with | |
31757 | rs6000_store_data_bypass_p in seven define_bypass directives and | |
31758 | in several comments. | |
31759 | * config/rs6000/rs6000-protos.h: Add prototype for | |
31760 | rs6000_store_data_bypass_p function. | |
31761 | * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New | |
31762 | function implements slightly different (rs6000-specific) semantics | |
31763 | than store_data_bypass_p, returning false rather than aborting | |
31764 | with assertion error when arguments do not satisfy the | |
31765 | requirements of store data bypass. | |
31766 | (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with | |
31767 | rs6000_store_data_bypass_p. | |
31768 | ||
31769 | 2017-05-08 Max Filippov <jcmvbkbc@gmail.com> | |
31770 | ||
31771 | * config/xtensa/xtensa-protos.h | |
31772 | (xtensa_initial_elimination_offset): New declaration. | |
31773 | * config/xtensa/xtensa.c (xtensa_initial_elimination_offset): | |
31774 | New function. Move its body from the INITIAL_ELIMINATION_OFFSET | |
31775 | macro definition, add case for FRAME_POINTER_REGNUM when | |
31776 | FRAME_GROWS_DOWNWARD. | |
31777 | * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition. | |
31778 | (INITIAL_ELIMINATION_OFFSET): Replace body with call to | |
31779 | xtensa_initial_elimination_offset. | |
31780 | ||
31781 | 2017-05-08 Nathan Sidwell <nathan@acm.org> | |
31782 | ||
31783 | * doc/invoke.texi: Alphabetize -fdump options. | |
31784 | ||
31785 | 2017-05-08 Martin Sebor <msebor@redhat.com> | |
31786 | ||
31787 | PR translation/80280 | |
31788 | * config/sol2-c.c (solaris_pragma_align): Correct quoting. | |
31789 | ||
31790 | 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
31791 | ||
31792 | * target.def (compute_frame_layout): New optional target hook. | |
31793 | * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook. | |
31794 | * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation. | |
31795 | * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout | |
31796 | target hook. | |
31797 | * reload1.c (verify_initial_elim_offsets): Likewise. | |
31798 | * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define. | |
31799 | (use_simple_return_p): Call arm_compute_frame_layout if needed. | |
31800 | (arm_get_frame_offsets): Split up into this ... | |
31801 | (arm_compute_frame_layout): ... and this function. | |
31802 | ||
31803 | 2017-05-08 Richard Sandiford <richard.sandiford@arm.com> | |
31804 | ||
31805 | * config/aarch64/constraints.md (Usa): New constraint. | |
31806 | * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it. | |
31807 | ||
31808 | 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
31809 | ||
31810 | * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from | |
31811 | with_multilib_list after it has been checked. | |
31812 | ||
31813 | 2017-05-08 Richard Biener <rguenther@suse.de> | |
31814 | ||
31815 | * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy. | |
31816 | (bitmap_set_subtract_values): Likewise. | |
31817 | ||
31818 | 2017-05-08 Richard Biener <rguenther@suse.de> | |
31819 | ||
31820 | * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ... | |
31821 | (gimple_assign_nonzero): ... this and remove strict_overflow_p | |
31822 | argument. | |
31823 | (gimple_stmt_nonzero_warnv_p): Rename to ... | |
31824 | (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p | |
31825 | argument. | |
31826 | (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument. | |
31827 | (extract_range_basic): Adjust, do not disable propagation on | |
31828 | strict overflow sensitive simplification. | |
31829 | (vrp_visit_cond_stmt): Likewise. | |
31830 | ||
31831 | 2017-05-05 Jan Hubicka <hubicka@ucw.cz> | |
31832 | ||
31833 | * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute | |
31834 | body size unconditionally. | |
31835 | ||
31836 | 2017-05-07 Jeff Law <law@redhat.com> | |
31837 | ||
31838 | Revert: | |
31839 | 2017-05-06 Jeff Law <law@redhat.com> | |
31840 | PR tree-optimization/78496 | |
31841 | * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging | |
31842 | code. | |
31843 | ||
31844 | PR tree-optimization/78496 | |
31845 | * tree-vrp.c (simplify_assert_expr_using_ranges): New function. | |
31846 | (simplify_stmt_using_ranges): Call it. | |
31847 | (vrp_dom_walker::before_dom_children): Extract equivalences | |
31848 | from an ASSERT_EXPR with an equality comparison against a | |
31849 | constant. | |
31850 | ||
31851 | 2017-05-06 Jeff Law <law@redhat.com> | |
31852 | ||
31853 | PR tree-optimization/78496 | |
31854 | * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging | |
31855 | code. | |
31856 | ||
31857 | PR tree-optimization/78496 | |
31858 | * tree-vrp.c (simplify_assert_expr_using_ranges): New function. | |
31859 | (simplify_stmt_using_ranges): Call it. | |
31860 | (vrp_dom_walker::before_dom_children): Extract equivalences | |
31861 | from an ASSERT_EXPR with an equality comparison against a | |
31862 | constant. | |
31863 | ||
31864 | 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org> | |
31865 | ||
31866 | * lra-constraints.c (lra_copy_reg_equiv): New function. | |
31867 | (split_reg): Use it to copy equivalence information from the | |
31868 | original register to the spill register. | |
31869 | ||
31870 | 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org> | |
31871 | ||
31872 | PR rtl-optimization/75964 | |
31873 | * simplify-rtx.c (simplify_const_relational_operation): Remove | |
31874 | invalid handling of comparisons of integer ABS. | |
31875 | ||
31876 | 2017-05-06 Uros Bizjak <ubizjak@gmail.com> | |
31877 | ||
31878 | * config/i386/i386.c (ext_80387_constant_init): Do not explicitly | |
31879 | initialize to zero. | |
31880 | (init_regs): Remove declaration. | |
31881 | (function_arg_advance_32): Initialize error_p as boolean variable. | |
31882 | ||
31883 | 2017-05-05 Nathan Sidwell <nathan@acm.org> | |
31884 | ||
31885 | * store-motion.c (remove_reachable_equiv_notes): Reformat long | |
31886 | lines. Use for (;;). | |
31887 | ||
31888 | 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
31889 | ||
31890 | * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var. | |
31891 | (rs6000_init_cost): Initialize rs6000_vect_nonmem. | |
31892 | (rs6000_add_stmt_cost): Update rs6000_vect_nonmem. | |
31893 | (rs6000_finish_cost): Avoid vectorizing simple copy loops with | |
31894 | VF=2 that require versioning. | |
31895 | ||
31896 | 2017-05-05 David Malcolm <dmalcolm@redhat.com> | |
31897 | ||
31898 | * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const | |
31899 | int. | |
31900 | ||
31901 | 2017-05-05 David Malcolm <dmalcolm@redhat.com> | |
31902 | ||
31903 | * diagnostic.h (diagnostic_override_option_index): Convert from | |
31904 | macro to inline function. | |
31905 | ||
31906 | 2017-05-05 David Malcolm <dmalcolm@redhat.com> | |
31907 | ||
31908 | * diagnostic.c (last_module_changed_p): New function. | |
31909 | (set_last_module): New function. | |
31910 | (diagnostic_report_current_module): Convert macro usage to | |
31911 | the above functions. | |
31912 | * diagnostic.h (diagnostic_context::last_module): Strengthen | |
31913 | from const line_map * to const line_map_ordinary *. | |
31914 | (diagnostic_last_module_changed): Delete macro. | |
31915 | (diagnostic_set_last_module): Delete macro. | |
31916 | ||
31917 | 2017-05-05 David Malcolm <dmalcolm@redhat.com> | |
31918 | ||
31919 | * diagnostic.c (diagnostic_impl): Replace report_diagnostic | |
31920 | with diagnostic_report_diagnostic. | |
31921 | (diagnostic_n_impl_richloc): Likewise. | |
31922 | * diagnostic.h (report_diagnostic): Delete macro. | |
31923 | * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic | |
31924 | with diagnostic_report_diagnostic. | |
31925 | * substring-locations.c (format_warning_va): Likewise. | |
31926 | ||
31927 | 2017-05-05 David Malcolm <dmalcolm@redhat.com> | |
31928 | ||
31929 | * diagnostic.c (diagnostic_report_diagnostic): Eliminate | |
31930 | save/restor of format_spec. Move option-printing code to... | |
31931 | (print_option_information): ...this new function, and | |
31932 | reimplement by simply printing to the pretty_printer, | |
31933 | rather than appending to the format string. | |
31934 | ||
31935 | 2017-05-05 David Malcolm <dmalcolm@redhat.com> | |
31936 | ||
31937 | * diagnostic.c (diagnostic_report_diagnostic): Split out pragma | |
31938 | handling logic into... | |
31939 | (update_effective_level_from_pragmas): ...this new function. | |
31940 | ||
31941 | 2017-05-04 Andrew Waterman <andrew@sifive.com> | |
31942 | ||
31943 | * config/riscv/riscv.opt (mstrict-align): New option. | |
31944 | * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment. | |
31945 | (SLOW_UNALIGNED_ACCESS): Define. | |
31946 | (riscv_slow_unaligned_access): Declare. | |
31947 | * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access | |
31948 | field. | |
31949 | (riscv_slow_unaligned_access): New variable. | |
31950 | (rocket_tune_info): Set slow_unaligned_access to true. | |
31951 | (optimize_size_tune_info): Set slow_unaligned_access to false. | |
31952 | (riscv_cpu_info_table): Add entry for optimize_size_tune_info. | |
31953 | (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN. | |
31954 | (riscv_option_override): Set riscv_slow_unaligned_access. | |
31955 | * doc/invoke.texi: Add -mstrict-align to RISC-V. | |
31956 | ||
31957 | 2017-05-04 Kito Cheng <kito.cheng@gmail.com> | |
31958 | ||
31959 | * config/riscv/riscv.md: Unify indentation. | |
31960 | ||
31961 | 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com> | |
31962 | ||
31963 | PR target/79038 | |
31964 | PR target/79202 | |
31965 | PR target/79203 | |
31966 | * config/rs6000/rs6000.md (u code attribute): Add FIX and | |
31967 | UNSIGNED_FIX. | |
31968 | (extendsi<mode>2): Add support for doing sign extension via | |
31969 | VUPKHSW and XXPERMDI if the value is in Altivec registers and we | |
31970 | don't have ISA 3.0 instructions. | |
31971 | (extendsi<mode>2 splitter): Likewise. | |
31972 | (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer), | |
31973 | generate the normal insns since SImode can now go in vector | |
31974 | registers. Disallow the special UNSPECs needed for previous | |
31975 | machines to hide SImode being used. Add new insns | |
31976 | fctiw{,w}_<mode>_smallint if SImode can go in vector registers. | |
31977 | (fix_trunc<mode>si2_stfiwx): Likewise. | |
31978 | (fix_trunc<mode>si2_internal): Likewise. | |
31979 | (fixuns_trunc<mode>si2): Likewise. | |
31980 | (fixuns_trunc<mode>si2_stfiwx): Likewise. | |
31981 | (fctiw<u>z_<mode>_smallint): Likewise. | |
31982 | (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion | |
31983 | of floating point to 32-bit integer from doing a direct move to | |
31984 | the GPR registers to do a store. | |
31985 | (fctiwz_<mode>): Break long line. | |
31986 | ||
31987 | 2017-05-05 Bin Cheng <bin.cheng@arm.com> | |
31988 | ||
31989 | * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c. | |
31990 | * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete. | |
31991 | (addr_list, addr_offset_valid_p): New. | |
31992 | (split_address_groups): Check offset validity with above function. | |
31993 | (gt-tree-ssa-loop-ivopts.h): Include header file. | |
31994 | ||
31995 | 2017-05-05 Nathan Sidwell <nathan@acm.org> | |
31996 | ||
31997 | * config.gcc (arm*-*-*): Add missing 'fi'. | |
31998 | ||
31999 | 2017-05-05 Steve Ellcey <sellcey@cavium.com> | |
32000 | ||
32001 | * doc/invoke.texi (-fopt-info): Explicitly say order of options | |
32002 | included in -fopt-info does not matter. | |
32003 | * doc/optinfo.texi (-fopt-info): Fix description of default | |
32004 | behavour. Explicitly say order of options included in -fopt-info | |
32005 | does not matter. | |
32006 | ||
32007 | 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
32008 | ||
32009 | * config.gcc: Allow combinations of aprofile and rmprofile values for | |
32010 | --with-multilib-list. | |
32011 | * config/arm/t-multilib: New file. | |
32012 | * config/arm/t-aprofile: Remove initialization of MULTILIB_* | |
32013 | variables. Remove setting of ISA and floating-point ABI in | |
32014 | MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in | |
32015 | MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS | |
32016 | and MULTILIB_DIRNAMES respectively. Add comment to introduce all | |
32017 | matches. Add architecture matches for marvel-pj4 and generic-armv7-a | |
32018 | CPU options. | |
32019 | * config/arm/t-rmprofile: Likewise except for the matches changes. | |
32020 | * doc/install.texi (--with-multilib-list): Document the combination of | |
32021 | aprofile and rmprofile values and warn about pitfalls in doing that. | |
32022 | ||
32023 | 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com> | |
32024 | ||
32025 | * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w. | |
32026 | (movdi_aarch64): Likewise. | |
32027 | ||
32028 | 2017-05-05 Jakub Jelinek <jakub@redhat.com> | |
32029 | ||
32030 | PR tree-optimization/80632 | |
32031 | * tree-switch-conversion.c (struct switch_conv_info): Add target_vop | |
32032 | field. | |
32033 | (build_arrays): Initialize it for virtual phis. | |
32034 | (fix_phi_nodes): Use it for virtual phis. | |
32035 | ||
32036 | PR tree-optimization/80558 | |
32037 | * tree-vrp.c (extract_range_from_binary_expr_1): Optimize | |
32038 | [x, y] op z into [x op, y op z] for op & or | if conditions | |
32039 | are met. | |
32040 | ||
32041 | 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
32042 | Prakhar Bahuguna <prakhar.bahuguna@arm.com> | |
32043 | ||
32044 | PR target/71607 | |
32045 | * config/arm/arm.md (use_literal_pool): Remove. | |
32046 | (64-bit immediate split): No longer takes cost into consideration | |
32047 | if arm_disable_literal_pool is enabled. | |
32048 | * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is | |
32049 | used when arm_disable_literal_pool is enabled. | |
32050 | (arm_max_const_double_inline_cost): Remove use of | |
32051 | arm_disable_literal_pool. | |
32052 | (push_minipool_fix): Add assert. | |
32053 | (arm_reorg): Add return if arm_disable_literal_pool is enabled. | |
32054 | * config/arm/vfp.md (no_literal_pool_df_immediate): New. | |
32055 | (no_literal_pool_sf_immediate): New. | |
32056 | ||
32057 | 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
32058 | ||
32059 | PR tree-optimization/80613 | |
32060 | * tree-ssa-dce.c (propagate_necessity): Remove cases for | |
32061 | BUILT_IN_STRDUP and BUILT_IN_STRNDUP. | |
32062 | ||
32063 | 2017-05-05 Richard Biener <rguenther@suse.de> | |
32064 | ||
32065 | * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify. | |
32066 | ||
32067 | 2017-05-05 Georg-Johann Lay <avr@gjlay.de> | |
32068 | ||
32069 | * config/avr/avr.md [flag_strict_overflow]: Remove any occurence | |
32070 | of this flag from insn conditions due to removal from r247495. | |
32071 | ||
32072 | 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com> | |
32073 | ||
32074 | * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr): | |
32075 | New function. | |
32076 | (arm_early_store_addr_dep_ptr): Likewise. | |
32077 | * config/arm/aarch-common-protos.h | |
32078 | (arm_early_load_addr_dep_ptr): Add prototype. | |
32079 | (arm_early_store_addr_dep_ptr): Likewise. | |
32080 | * config/arm/cortex-a53.md: Add new bypasses. | |
32081 | ||
32082 | 2017-05-05 Jakub Jelinek <jakub@redhat.com> | |
32083 | ||
32084 | * tree.c (next_type_uid): Change type to unsigned. | |
32085 | (type_hash_canon): Decrement back next_type_uid if | |
32086 | freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs | |
32087 | also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES | |
32088 | if possible. | |
32089 | ||
32090 | 2017-05-04 Martin Sebor <msebor@redhat.com> | |
32091 | ||
32092 | * builtins.c: Fix a trivial typo in a comment. | |
32093 | ||
32094 | PR middle-end/79234 | |
32095 | * builtins.c (check_sizes): Adjust to handle reading past the end. | |
32096 | Avoid printing excessive upper bound of ranges. Use %E to print | |
32097 | tree nodes instead of converting them to %wu. | |
32098 | (expand_builtin_memchr): New function. | |
32099 | (compute_dest_size): Rename... | |
32100 | (compute_objsize): ...to this. | |
32101 | (expand_builtin_memcpy): Adjust. | |
32102 | (expand_builtin_mempcpy): Adjust. | |
32103 | (expand_builtin_strcat): Adjust. | |
32104 | (expand_builtin_strcpy): Adjust. | |
32105 | (check_strncat_sizes): Adjust. | |
32106 | (expand_builtin_strncat): Adjust. | |
32107 | (expand_builtin_strncpy): Adjust and simplify. | |
32108 | (expand_builtin_memset): Adjust. | |
32109 | (expand_builtin_bzero): Adjust. | |
32110 | (expand_builtin_memcmp): Adjust. | |
32111 | (expand_builtin): Handle memcmp. | |
32112 | (maybe_emit_chk_warning): Check strncat just once. | |
32113 | ||
32114 | 2017-05-04 Martin Sebor <msebor@redhat.com> | |
32115 | ||
32116 | PR preprocessor/79214 | |
32117 | PR middle-end/79222 | |
32118 | PR middle-end/79223 | |
32119 | * builtins.c (check_sizes): Add inlining context and issue | |
32120 | warnings even when -Wno-system-headers is set. | |
32121 | (check_strncat_sizes): Same. | |
32122 | (expand_builtin_strncat): Same. | |
32123 | (expand_builtin_memmove): New function. | |
32124 | (expand_builtin_stpncpy): Same. | |
32125 | (expand_builtin): Handle memmove and stpncpy. | |
32126 | ||
32127 | 2017-05-04 Bin Cheng <bin.cheng@arm.com> | |
32128 | ||
32129 | * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr | |
32130 | which is not used any more. | |
32131 | ||
32132 | 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com> | |
32133 | ||
32134 | * config/aarch64/aarch64.c (generic_tunings): Update prefetch model. | |
32135 | ||
32136 | 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com> | |
32137 | ||
32138 | * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4. | |
32139 | (cortexa53_tunings): Likewise. | |
32140 | (cortexa57_tunings): Likewise. | |
32141 | (cortexa72_tunings): Likewise. | |
32142 | (cortexa73_tunings): Likewise. | |
32143 | ||
32144 | 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com> | |
32145 | ||
32146 | * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4. | |
32147 | Set loop alignment to 8. | |
32148 | ||
32149 | 2017-05-04 Martin Sebor <msebor@redhat.com> | |
32150 | ||
32151 | PR translation/80280 | |
32152 | * builtins.c (expand_builtin_object_size): Add missing quoting to | |
32153 | %D and like directives. | |
32154 | * hsa-gen.c (hsa_type_for_scalar_tree_type): Same. | |
32155 | (hsa_type_for_tree_type): Same. | |
32156 | (verify_function_arguments): Same. | |
32157 | * symtab.c (symbol_table::change_decl_assembler_name): Same. | |
32158 | * varasm.c (get_section): Same. | |
32159 | (mark_weak): Same. | |
32160 | ||
32161 | 2017-05-04 Martin Sebor <msebor@redhat.com> | |
32162 | ||
32163 | PR translation/80280 | |
32164 | * config/i386/i386.c (ix86_function_versions): Quote a %D directive. | |
32165 | ||
32166 | 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com> | |
32167 | ||
32168 | * config/aarch64/aarch64.c (generic_addrcost_table): | |
32169 | Change HI/TI mode setting. | |
32170 | ||
32171 | 2017-05-04 Martin Jambor <mjambor@suse.cz> | |
32172 | ||
32173 | PR tree-optimization/80622 | |
32174 | * tree-sra.c (comes_initialized_p): New function. | |
32175 | (build_accesses_from_assign): Only set write lazily when | |
32176 | comes_initialized_p is false. | |
32177 | (analyze_access_subtree): Use comes_initialized_p. | |
32178 | (propagate_subaccesses_across_link): Assert !comes_initialized_p | |
32179 | instead of testing for PARM_DECL. | |
32180 | ||
32181 | 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
32182 | ||
32183 | * config/aarch64/aarch64.md (prefetch); Adjust predicate and | |
32184 | constraint on operand 0 to allow more general addressing modes. | |
32185 | Adjust output template. | |
32186 | * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p): | |
32187 | New function. | |
32188 | * config/aarch64/aarch64-protos.h | |
32189 | (aarch64_address_valid_for_prefetch_p): Declare prototype. | |
32190 | * config/aarch64/constraints.md (Dp): New address constraint. | |
32191 | * config/aarch64/predicates.md (aarch64_prefetch_operand): New | |
32192 | predicate. | |
32193 | ||
32194 | 2017-05-04 Jan Hubicka <hubicka@ucw.cz> | |
32195 | ||
32196 | * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter; | |
32197 | update use of estimate_ipcp_clone_size_and_time. | |
32198 | (estimate_local_effects): Update use of | |
32199 | estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value. | |
32200 | * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype. | |
32201 | * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time): | |
32202 | Return nonspecialized time. | |
32203 | ||
32204 | 2017-05-04 Richard Biener <rguenther@suse.de> | |
32205 | ||
32206 | * tree-ssa-alias.c (get_continuation_for_phi): Improve looking | |
32207 | for the last VUSE which def dominates the PHI. Directly call | |
32208 | maybe_skip_until. | |
32209 | (get_continuation_for_phi_1): Remove. | |
32210 | ||
32211 | 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org> | |
32212 | ||
32213 | * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary | |
32214 | to explain the use of truncating division. Cap the number of | |
32215 | iterations to the maximum given by nb_iterations_upper_bound, | |
32216 | if defined. | |
32217 | ||
32218 | 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
32219 | ||
32220 | * configure.ac (--enable-mingw-wildcard): Add new configurable feature. | |
32221 | * configure: Regenerate. | |
32222 | * config.in: Regenerate. | |
32223 | * config/i386/driver-mingw32.c: new file. | |
32224 | * config/i386/x-mingw32: Add rule to build driver-mingw32.o. | |
32225 | * config.host: Link driver-mingw32.o on MinGW host. | |
32226 | * doc/install.texi: Document new --enable-mingw-wildcard configure | |
32227 | option. | |
32228 | ||
32229 | 2017-05-04 Marek Polacek <polacek@redhat.com> | |
32230 | ||
32231 | PR tree-optimization/80612 | |
32232 | * calls.c (get_size_range): Check for INTEGRAL_TYPE_P. | |
32233 | ||
32234 | 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com> | |
32235 | Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> | |
32236 | ||
32237 | * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT. | |
32238 | (movt splitter): Likewise. | |
32239 | * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2 | |
32240 | to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check. | |
32241 | (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else | |
32242 | block for Thumb-1 with MOVT. | |
32243 | (thumb2_legitimate_address_p): Move code block ... | |
32244 | (can_avoid_literal_pool_for_label_p): ... into this new function. | |
32245 | (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and | |
32246 | literal pool. | |
32247 | (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT | |
32248 | * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for | |
32249 | "M-profile targets with the MOVT instruction". | |
32250 | ||
32251 | 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com> | |
32252 | ||
32253 | * config/arm/arm-builtins.c (arm_init_builtins): Rename | |
32254 | __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename | |
32255 | __builtin_arm_stfscr to __builtin_arm_set_fpscr. | |
32256 | ||
32257 | 2017-05-04 Martin Liska <mliska@suse.cz> | |
32258 | ||
32259 | * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused | |
32260 | variable cond_code. | |
32261 | ||
32262 | 2017-05-04 Richard Biener <rguenther@suse.de> | |
32263 | ||
32264 | * tree.c (array_at_struct_end_p): Handle arrays at struct | |
32265 | end with flexarrays more conservatively. Refactor and treat | |
32266 | arrays of arrays or aggregates more strict. Fix | |
32267 | VIEW_CONVERT_EXPR handling. Remove allow_compref argument. | |
32268 | * tree.c (array_at_struct_end_p): Adjust prototype. | |
32269 | * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust. | |
32270 | * gimple-fold.c (get_range_strlen): Likewise. | |
32271 | * tree-chkp.c (chkp_may_narrow_to_field): Likewise. | |
32272 | ||
32273 | 2017-05-04 Richard Biener <rguenther@suse.de> | |
32274 | ||
32275 | PR tree-optimization/31130 | |
32276 | * tree-vrp.c (needs_overflow_infinity): Remove as always returning | |
32277 | false. | |
32278 | (supports_overflow_infinity): Likewise. | |
32279 | (is_negative_overflow_infinity): Likewise. | |
32280 | (is_positive_overflow_infinity): Likewise. | |
32281 | (is_overflow_infinity): Likewise. | |
32282 | (stmt_overflow_infinity): Likewise. | |
32283 | (overflow_infinity_range_p): Likewise. | |
32284 | (usable_range_p): Remove as always returning true. | |
32285 | (make_overflow_infinity): Remove. | |
32286 | (negative_overflow_infinity): Likewise. | |
32287 | (positive_overflow_infinity): Likewise. | |
32288 | (avoid_overflow_infinity): Likewise. | |
32289 | (set_value_range): Adjust accordingly. | |
32290 | (set_value_range_to_nonnegative): Likewise, remove now unused | |
32291 | overflow_infinity arg. | |
32292 | (vrp_operand_equal_p): Adjust. | |
32293 | (update_value_range): Likewise. | |
32294 | (range_int_cst_singleton_p): Likewise. | |
32295 | (operand_less_p): Likewise. | |
32296 | (compare_values_warnv): Likewise. | |
32297 | (extract_range_for_var_from_comparison_expr): Likewise. | |
32298 | (vrp_int_const_binop): Likewise. | |
32299 | (zero_nonzero_bits_from_vr): Likewise. | |
32300 | (extract_range_from_multiplicative_op_1): Likewise. | |
32301 | (extract_range_from_binary_expr_1): Likewise. | |
32302 | (extract_range_from_unary_expr): Likewise. | |
32303 | (extract_range_from_comparison): Likewise. | |
32304 | (extract_range_basic): Likewise. | |
32305 | (adjust_range_with_scev): Likewise. | |
32306 | (compare_ranges): Likewise. | |
32307 | (compare_range_with_value): Likewise. | |
32308 | (dump_value_range): Likewise. | |
32309 | (test_for_singularity): Likewise, remove strict_overflow_p parameter | |
32310 | never used. | |
32311 | (simplify_cond_using_ranges): Adjust. | |
32312 | ||
32313 | 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> | |
32314 | ||
32315 | * brig-builtins.def: Added a builtin for class_f64. | |
32316 | * builtin-types.def: Added a builtin type needed by class_f64. | |
32317 | ||
32318 | 2017-05-03 Jason Merrill <jason@redhat.com> | |
32319 | ||
32320 | * timevar.def: Add TV_CONSTEXPR. | |
32321 | ||
32322 | 2017-05-03 David Malcolm <dmalcolm@redhat.com> | |
32323 | ||
32324 | * common.opt (fdiagnostics-parseable-fixits): Fix typo. | |
32325 | ||
32326 | 2017-05-03 Martin Jambor <mjambor@suse.cz> | |
32327 | ||
32328 | * ipa-prop.c (ipa_update_after_lto_read): Removed. | |
32329 | * ipa-prop.h (ipa_update_after_lto_read): Remove declaration. | |
32330 | * ipa-cp.c (ipcp_propagate_stage): Do not call | |
32331 | ipa_update_after_lto_read. | |
32332 | * ipa-inline.c (ipa_inline): Likewise. | |
32333 | ||
32334 | 2017-05-03 Martin Jambor <mjambor@suse.cz> | |
32335 | ||
32336 | * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY | |
32337 | tag. Added a default constructor and a destructor. | |
32338 | (ipa_edge_args_sum_t): New class; | |
32339 | (ipa_edge_args_sum): Declare. | |
32340 | (ipa_edge_args_vector): Remove declaration. | |
32341 | (IPA_EDGE_REF): Use ipa_edge_args_sum. | |
32342 | (ipa_free_edge_args_substructures): Remove declaration. | |
32343 | (ipa_check_create_edge_args): Use ipa_edge_args_sum. | |
32344 | (ipa_edge_args_info_available_for_edge_p): Likewise. | |
32345 | * ipa-prop.c (ipa_edge_args_vector): Removed. | |
32346 | (edge_removal_hook_holder): Likewise. | |
32347 | (edge_duplication_hook_holder): Likewise. | |
32348 | (ipa_edge_args_sum): New variable. | |
32349 | (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of | |
32350 | ipa_edge_args_vector. | |
32351 | (ipa_free_edge_args_substructures): Likewise. | |
32352 | (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of | |
32353 | ipa_edge_args_vector. | |
32354 | (ipa_edge_removal_hook): Turned into method | |
32355 | ipa_edge_args_sum_t::remove. | |
32356 | (ipa_edge_duplication_hook): Turned into method | |
32357 | ipa_edge_args_sum_t::duplicate. | |
32358 | (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of | |
32359 | registering edge hooks. | |
32360 | (ipa_unregister_cgraph_hooks): Do not unregister edge hooks. | |
32361 | * ipa-inline-analysis.c (estimate_function_body_sizes): Test | |
32362 | ipa_edge_args_sum instead of ipa_edge_args_vector. | |
32363 | * ipa-profile.c (ipa_profile): Likewise. | |
32364 | ||
32365 | 2017-05-03 Martin Jambor <mjambor@suse.cz> | |
32366 | ||
32367 | * symbol-summary.h (function_summary): New method exists. | |
32368 | (function_summary::symtab_removal): Deallocate through release. | |
32369 | (call_summary): New class. | |
32370 | (gt_ggc_mx): New overload. | |
32371 | (gt_pch_nx): Likewise. | |
32372 | (gt_pch_nx): Likewise. | |
32373 | ||
32374 | 2017-05-03 Jeff Law <law@redhat.com> | |
32375 | ||
32376 | PR tree-optimization/78496 | |
32377 | * tree-vrp.c (simplify_cond_using_ranges_1): Renamed | |
32378 | from simplify_cond_using_ranges. Split off code to walk | |
32379 | backwards through casts into ... | |
32380 | (simplify_cond_using_ranges_2): New function. | |
32381 | (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1. | |
32382 | (execute_vrp): After identifying jump threads, call | |
32383 | simplify_cond_using_ranges_2. | |
32384 | ||
32385 | 2017-05-03 Jan Hubicka <hubicka@ucw.cz> | |
32386 | ||
32387 | PR bootstrap/80609 | |
32388 | * ipa-inline.h (inline_summary): Add ctor. | |
32389 | (create_ggc): Do not use ggc_cleared_alloc. | |
32390 | ||
32391 | 2017-05-03 Jeff Downs <heydowns@somuchpressure.net> | |
32392 | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
32393 | ||
32394 | * gcc.c (handle_braces): Support escaping in switch matching | |
32395 | text. | |
32396 | * doc/invoke.texi (Spec Files): Document it. | |
32397 | Remove superfluous @code markup in items. | |
32398 | ||
32399 | 2017-05-03 David Malcolm <dmalcolm@redhat.com> | |
32400 | ||
32401 | * diagnostic-show-locus.c (struct column_range): New struct. | |
32402 | (get_affected_columns): New function. | |
32403 | (get_printed_columns): New function. | |
32404 | (struct correction): New struct. | |
32405 | (correction::ensure_capacity): New function. | |
32406 | (correction::ensure_terminated): New function. | |
32407 | (struct line_corrections): New struct. | |
32408 | (line_corrections::~line_corrections): New dtor. | |
32409 | (line_corrections::add_hint): New function. | |
32410 | (layout::print_trailing_fixits): Reimplement in terms of the new | |
32411 | classes. | |
32412 | (selftest::test_overlapped_fixit_printing): New function. | |
32413 | (selftest::diagnostic_show_locus_c_tests): Call it. | |
32414 | ||
32415 | 2017-05-03 Nathan Sidwell <nathan@acm.org> | |
32416 | ||
32417 | Canonicalize canonical type hashing | |
32418 | * tree.h (type_hash_canon_hash): Declare. | |
32419 | * tree.c (type_hash_list, attribute_hash_list): Move into | |
32420 | type_hash_canon_hash. | |
32421 | (build_type_attribute_qual_variant): Break out hash code calc into | |
32422 | type_hash_canon_hash. | |
32423 | (type_hash_canon_hash): New. Generic type hash computation. | |
32424 | (build_range_type_1, build_array_type_1, build_function_type, | |
32425 | build_method_type_directly, build_offset_type, build_complex_type, | |
32426 | make_vector_type): Call it. | |
32427 | ||
32428 | 2017-05-03 Richard Biener <rguenther@suse.de> | |
32429 | ||
32430 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): | |
32431 | When all DRs have unknown misaligned do not always peel | |
32432 | when there is a store but apply the same costing model as if | |
32433 | there were only loads. | |
32434 | ||
32435 | 2017-05-03 Richard Biener <rguenther@suse.de> | |
32436 | ||
32437 | Revert | |
32438 | PR tree-optimization/80492 | |
32439 | * tree-ssa-alias.c (decl_refs_may_alias_p): Handle | |
32440 | compare_base_decls returning dont-know properly. | |
32441 | ||
32442 | 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
32443 | ||
32444 | * config/arm/iterators.md (CCSI): New mode iterator. | |
32445 | (arch): New mode attribute. | |
32446 | * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ... | |
32447 | (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ... | |
32448 | (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI | |
32449 | code iterator for success result mode. | |
32450 | * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use | |
32451 | the corresponding new insn generators. | |
32452 | ||
32453 | 2017-05-03 Bin Cheng <bin.cheng@arm.com> | |
32454 | ||
32455 | Revert r247509 | |
32456 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32457 | * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. | |
32458 | ||
32459 | 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org> | |
32460 | ||
32461 | * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets. | |
32462 | (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise. | |
32463 | (DDR_A): Wrap DDR argument in brackets. | |
32464 | (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise. | |
32465 | (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise. | |
32466 | (DDR_REVERSED_P): Likewise. | |
32467 | ||
32468 | 2017-05-03 Jakub Jelinek <jakub@redhat.com> | |
32469 | ||
32470 | PR tree-optimization/79472 | |
32471 | * tree-switch-conversion.c (struct switch_conv_info): Add | |
32472 | contiguous_range and default_case_nonstandard fields. | |
32473 | (collect_switch_conv_info): Compute contiguous_range and | |
32474 | default_case_nonstandard fields, don't clear final_bb if | |
32475 | contiguous_range and only the default case doesn't have the required | |
32476 | structure. | |
32477 | (check_all_empty_except_final): Set default_case_nonstandard instead | |
32478 | of failing if contiguous_range and the default case doesn't have empty | |
32479 | block. | |
32480 | (check_final_bb): Add SWTCH argument, don't fail if contiguous_range | |
32481 | and only the default case doesn't have the required constants. Skip | |
32482 | virtual phis. | |
32483 | (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW | |
32484 | if default_case_nonstandard. | |
32485 | (build_constructors): Build constant 1 just once. Assert that default | |
32486 | values aren't inserted in between cases if contiguous_range. Skip | |
32487 | virtual phis. | |
32488 | (build_arrays): Skip virtual phis. | |
32489 | (prune_bbs): Add DEFAULT_BB argument, don't remove that bb. | |
32490 | (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard. | |
32491 | Handle virtual phis. | |
32492 | (gen_inbound_check): Handle default_case_nonstandard case. | |
32493 | (process_switch): Adjust check_final_bb caller. Call | |
32494 | gather_default_values with the first non-default case instead of | |
32495 | default case if default_case_nonstandard. | |
32496 | ||
32497 | 2017-05-02 Nathan Sidwell <nathan@acm.org> | |
32498 | ||
32499 | * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i-- | |
32500 | check. Fix formatting. | |
32501 | ||
32502 | 2017-05-02 Jan Hubicka <hubicka@ucw.cz> | |
32503 | ||
32504 | * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff | |
32505 | errors when comparing specialized and unspecialized times. | |
32506 | ||
32507 | 2017-05-02 David Malcolm <dmalcolm@redhat.com> | |
32508 | ||
32509 | * diagnostic-show-locus.c | |
32510 | (layout::should_print_annotation_line_p): Make private. | |
32511 | (layout::print_annotation_line): Make private. | |
32512 | (layout::annotation_line_showed_range_p): Make private. | |
32513 | (layout::show_ruler): Make private. | |
32514 | (layout::print_source_line): Make private. Pass in line and | |
32515 | line_width, rather than calling location_get_source_line. Drop | |
32516 | returned value. | |
32517 | (layout::print_leading_fixits): New method. | |
32518 | (layout::print_any_fixits): Rename to... | |
32519 | (layout::print_trailing_fixits): ...this, and make private. | |
32520 | Don't print newline fixits. | |
32521 | (diagnostic_show_locus): Move logic for printing one row into... | |
32522 | (layout::print_line): ...this new function. Move the | |
32523 | location_get_source_line call and error-handling from | |
32524 | print_source_line to here. Call print_leading_fixits, and rename | |
32525 | print_any_fixits to print_trailing_fixits. | |
32526 | (selftest::test_fixit_insert_containing_newline): Update now that | |
32527 | newlines are partially supported. | |
32528 | (selftest::test_fixit_insert_containing_newline_2): New test. | |
32529 | (selftest::test_fixit_replace_containing_newline): Update comments. | |
32530 | (selftest::diagnostic_show_locus_c_tests): Call the new test. | |
32531 | * edit-context.c (class added_line): New class. | |
32532 | (class edited_line): Describe newline handling in comment. | |
32533 | (edited_line::actually_edited_p): New method. | |
32534 | (edited_line::print_content): Delete redundant decl. | |
32535 | (edited_line::m_predecessors): New field. | |
32536 | (edited_file::print_content): Call edited_line::print_content. | |
32537 | (edited_file::print_diff): Update to support newlines. | |
32538 | (edited_file::print_diff_hunk): Likewise. | |
32539 | (edited_file::print_run_of_changed_lines): New function. | |
32540 | (edited_file::print_diff_line): Convert to... | |
32541 | (print_diff_line): ...this. | |
32542 | (edited_file::get_effective_line_count): New function. | |
32543 | (edited_line::edited_line): Initialize new field m_predecessors. | |
32544 | (edited_line::~edited_line): Clean up m_predecessors. | |
32545 | (edited_line::apply_fixit): Handle newlines. | |
32546 | (edited_line::get_effective_line_count): New function. | |
32547 | (edited_line::print_content): New function. | |
32548 | (edited_line::print_diff_lines): New function. | |
32549 | (selftest::test_applying_fixits_insert_containing_newline): New | |
32550 | test. | |
32551 | (selftest::test_applying_fixits_replace_containing_newline): New | |
32552 | test. | |
32553 | (selftest::insert_line): New function. | |
32554 | (selftest::test_applying_fixits_multiple_lines): Add example of | |
32555 | inserting a line. | |
32556 | (selftest::edit_context_c_tests): Call the new tests. | |
32557 | ||
32558 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32559 | ||
32560 | * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete | |
32561 | parameter cand. Update dump information. | |
32562 | (get_computation_cost): Update uses. | |
32563 | ||
32564 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32565 | ||
32566 | * tree-ssa-loop-ivopts.c (get_computation_aff_1): New. | |
32567 | (get_computation_aff): Reorder parameters. Use get_computation_aff_1. | |
32568 | (get_computation_at, rewrite_use_address): Update use of | |
32569 | get_computation_aff. | |
32570 | ||
32571 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32572 | ||
32573 | * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters. | |
32574 | (get_computation): Delete. | |
32575 | (get_computation_cost): Implement like get_computation_cost_at. | |
32576 | Use get_computation_at. | |
32577 | (get_computation_cost_at): Delete. | |
32578 | (rewrite_use_nonlinear_expr): Use get_computation_at. | |
32579 | (rewrite_use_compare, remove_unused_ivs): Ditto. | |
32580 | ||
32581 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32582 | ||
32583 | * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor. | |
32584 | ||
32585 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32586 | ||
32587 | * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs. | |
32588 | (ivopts_global_cost_for_size): Rename parameter and update uses. | |
32589 | (iv_ca_recount_cost): Update uses. | |
32590 | (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and | |
32591 | candidates seperately in n_invs and n_cands. | |
32592 | (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto. | |
32593 | ||
32594 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32595 | ||
32596 | * tree-ssa-loop-ivopts.c (struct walk_tree_data): New. | |
32597 | (find_inv_vars_cb): New. | |
32598 | (find_depends): Renamed to ... | |
32599 | (find_inv_vars): ... this. | |
32600 | (add_candidate_1, force_var_cost): Call find_inv_vars. | |
32601 | (split_address_cost, determine_group_iv_cost_cond): Ditto. | |
32602 | ||
32603 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32604 | ||
32605 | * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to | |
32606 | inv_vars. Add inv_exprs. | |
32607 | (struct iv_cand): Rename depends_on to inv_vars. | |
32608 | (struct ivopts_data): Rename max_inv_id/n_invariant_uses to | |
32609 | max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around. | |
32610 | Refactor field used_inv_exprs from has_map to array n_inv_expr_uses. | |
32611 | (dump_cand): Dump inv_vars. | |
32612 | (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs. | |
32613 | (record_invariant, find_depends, add_candidate_1): Ditto. | |
32614 | (set_group_iv_cost, force_var_cost): Ditto. | |
32615 | (split_address_cost, ptr_difference_cost, difference_cost): Ditto. | |
32616 | (get_computation_cost_at, get_computation_cost): Ditto. | |
32617 | (determine_group_iv_cost_generic): Ditto. | |
32618 | (determine_group_iv_cost_address): Ditto. | |
32619 | (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto. | |
32620 | (determine_group_iv_costs): Ditto. | |
32621 | (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size. | |
32622 | (iv_ca_set_remove_invariants): Renamed to ... | |
32623 | (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs. | |
32624 | (iv_ca_set_no_cp): Use iv_ca_set_remove_invs. | |
32625 | (iv_ca_set_add_invariants): Renamed to ... | |
32626 | (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs. | |
32627 | (iv_ca_set_cp): Use iv_ca_set_add_invs. | |
32628 | (iv_ca_has_deps): Support inv_vars and inv_exprs. | |
32629 | (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto. | |
32630 | (create_new_ivs): Remove useless dump. | |
32631 | ||
32632 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32633 | ||
32634 | * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo | |
32635 | iv_cand code. | |
32636 | (determine_group_iv_cost_cond, determine_iv_cost): Ditto. | |
32637 | (iv_ca_set_no_cp, create_new_iv): Ditto. | |
32638 | ||
32639 | 2017-05-02 Bin Cheng <bin.cheng@arm.com> | |
32640 | ||
32641 | * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes. | |
32642 | ||
32643 | 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn> | |
32644 | ||
32645 | * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of | |
32646 | function tree_check2. | |
32647 | ||
32648 | 2017-05-02 Martin Liska <mliska@suse.cz> | |
32649 | ||
32650 | * doc/gcov.texi: Add missing preposition. | |
32651 | * gcov.c (function_info::function_info): Properly fill up | |
32652 | all member variables. | |
32653 | ||
32654 | 2017-05-02 Tamar Christina <tamar.christina@arm.com> | |
32655 | ||
32656 | * expr.c (expand_expr_real_2): Re-cost if previous costs are the same. | |
32657 | ||
32658 | 2017-05-02 Tamar Christina <tamar.christina@arm.com> | |
32659 | ||
32660 | * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case. | |
32661 | ||
32662 | 2017-05-02 Martin Liska <mliska@suse.cz> | |
32663 | ||
32664 | PR lto/77954. | |
32665 | * lto-streamer-in.c (lto_read_tree_1): Remove | |
32666 | LTO_STREAMER_DEBUG. | |
32667 | * lto-streamer.c (struct tree_hash_entry): Likewise. | |
32668 | (struct tree_entry_hasher): Likewise. | |
32669 | (tree_entry_hasher::hash): Likewise. | |
32670 | (tree_entry_hasher::equal): Likewise. | |
32671 | (lto_streamer_init): Likewise. | |
32672 | (lto_orig_address_map): Likewise. | |
32673 | (lto_orig_address_get): Likewise. | |
32674 | (lto_orig_address_remove): Likewise. | |
32675 | * lto-streamer.h: Likewise. | |
32676 | * tree-streamer-in.c (streamer_alloc_tree): Likewise. | |
32677 | * tree-streamer-out.c (streamer_write_tree_header): Likewise. | |
32678 | ||
32679 | 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com> | |
32680 | ||
32681 | * config/i386/avx512fintrin.h (_mm_mask_add_round_sd) | |
32682 | (_mm_maskz_add_round_sd, _mm_mask_add_round_ss) | |
32683 | (mm_maskz_add_round_ss, _mm_mask_sub_round_sd) | |
32684 | (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss) | |
32685 | (mm_maskz_sub_round_ss, _mm_mask_add_sd) | |
32686 | (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss) | |
32687 | (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss) | |
32688 | (mm_maskz_sub_ss): New intrinsics. | |
32689 | * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) | |
32690 | (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases. | |
32691 | * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round) | |
32692 | (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round) | |
32693 | (__builtin_ia32_subss_mask_round): New builtins. | |
32694 | * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT) | |
32695 | (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types. | |
32696 | * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>): | |
32697 | Renamed to ... | |
32698 | (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this. | |
32699 | (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}): | |
32700 | Changed to ... | |
32701 | (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): | |
32702 | ... this. | |
32703 | ||
32704 | 2017-05-02 Martin Jambor <mjambor@suse.cz> | |
32705 | ||
32706 | PR tree-optimization/78687 | |
32707 | * tree-sra.c (access): New field parent. | |
32708 | (process_subtree_disqualification): New function. | |
32709 | (disqualify_candidate): Call it. | |
32710 | (build_accesses_from_assign): Reset write flag if creating an | |
32711 | assighnment link. | |
32712 | (build_access_subtree): Fill in parent field and also prpagate | |
32713 | down grp_write flag. | |
32714 | (create_artificial_child_access): New parameter set_grp_write, set | |
32715 | grp_write to its value. | |
32716 | (propagate_subaccesses_across_link): Also propagate grp_write flag | |
32717 | values. | |
32718 | (propagate_all_subaccesses): Push the closest parent back to work | |
32719 | queue if add_access_to_work_queue returned true. | |
32720 | ||
32721 | 2017-05-02 Richard Biener <rguenther@suse.de> | |
32722 | ||
32723 | * common.opt (fstrict-overflow): Alias negative to fwrapv. | |
32724 | * doc/invoke.texi (fstrict-overflow): Remove all traces of | |
32725 | -fstrict-overflow documentation. | |
32726 | * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow. | |
32727 | (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of | |
32728 | flag_strict_overflow. | |
32729 | * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow. | |
32730 | * lto-opts.c (lto_write_options): Do not stream it. | |
32731 | * lto-wrapper.c (merge_and_complain): Do not handle it. | |
32732 | * opts.c (default_options_table): Do not set -fstrict-overflow. | |
32733 | (finish_options): Likewise do not clear it when sanitizing. | |
32734 | * simplify-rtx.c (simplify_const_relational_operation): Do not | |
32735 | test flag_strict_overflow. | |
32736 | ||
32737 | 2017-05-02 Uros Bizjak <ubizjak@gmail.com> | |
32738 | ||
32739 | * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3 | |
32740 | using enabled attribute. | |
32741 | (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute. | |
32742 | (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute. | |
32743 | (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute. | |
32744 | (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute. | |
32745 | (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute. | |
32746 | (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute. | |
32747 | (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute. | |
32748 | (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute. | |
32749 | (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute. | |
32750 | (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute. | |
32751 | ||
32752 | 2017-05-02 Uros Bizjak <ubizjak@gmail.com> | |
32753 | ||
32754 | * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG. | |
32755 | ||
32756 | 2017-05-02 Richard Biener <rguenther@suse.de> | |
32757 | ||
32758 | PR tree-optimization/80591 | |
32759 | Revert | |
32760 | 2017-04-10 Richard Biener <rguenther@suse.de> | |
32761 | ||
32762 | * tree-ssa-structalias.c (find_func_aliases): Properly handle | |
32763 | asm inputs. | |
32764 | ||
32765 | 2017-05-02 Richard Biener <rguenther@suse.de> | |
32766 | ||
32767 | PR tree-optimization/80549 | |
32768 | * tree-cfgcleanup.c (mfb_keep_latches): New helper. | |
32769 | (cleanup_tree_cfg_noloop): Create forwarders to known loop | |
32770 | headers if they do not have a preheader. | |
32771 | ||
32772 | 2017-05-02 Martin Liska <mliska@suse.cz> | |
32773 | ||
32774 | PR other/80589 | |
32775 | * common.opt: Fix typo. | |
32776 | * doc/invoke.texi: Likewise. | |
32777 | ||
32778 | 2017-05-01 Jan Beulich <jbeulich@suse.com> | |
32779 | ||
32780 | * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand | |
32781 | swapping, add (x,x,m,x,n) alternative. | |
32782 | ||
32783 | 2017-05-01 Nathan Sidwell <nathan@acm.org> | |
32784 | ||
32785 | * calls.c (combine_pending_stack_adjustment_and_call): Remove | |
32786 | unnecessary unadjusted_alignment check. | |
32787 | ||
32788 | 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn> | |
32789 | ||
32790 | PR c++/80038 | |
32791 | * cilk_common.c (expand_builtin_cilk_detach): Move pedigree | |
32792 | operations here. | |
32793 | * gimplify.c (gimplify_cilk_detach): New function. | |
32794 | (gimplify_call_expr, gimplify_modify_expr): Call it as needed. | |
32795 | * tree-core.h: Document EXPR_CILK_SPAWN. | |
32796 | * tree.h (EXPR_CILK_SPAWN): Define. | |
32797 | ||
32798 | 2017-05-01 David Malcolm <dmalcolm@redhat.com> | |
32799 | ||
32800 | * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite | |
32801 | to use new fixit_hint representation, using the "replace" logic. | |
32802 | (get_line_span_for_fixit_hint): Likewise. | |
32803 | (layout::print_any_fixits): Likewise. | |
32804 | (selftest::test_one_liner_many_fixits): Rename to... | |
32805 | (selftest::test_one_liner_many_fixits_1): ...this, and update | |
32806 | comment and expected output to reflect that the multiple fix-it | |
32807 | hints are now consolidated into one insertion. | |
32808 | (selftest::test_one_liner_many_fixits_2): New test. | |
32809 | (selftest::test_diagnostic_show_locus_one_liner): Update for | |
32810 | above. | |
32811 | (selftest::test_fixit_consolidation): Update for fix-it API | |
32812 | change. | |
32813 | * diagnostic.c (print_parseable_fixits): Likewise. | |
32814 | * edit-context.c (edited_line::m_line_events): Convert from | |
32815 | auto_vec <line_event *> to auto_vec <line_event>. | |
32816 | (class line_event): Convert from abstract base class to a concrete | |
32817 | class, taking over the role of replace_event. | |
32818 | (class insert_event): Delete. | |
32819 | (class replace_event): Rename to class line_event. Convert to | |
32820 | half-open range. | |
32821 | (edit_context::add_fixits): Reimplement. | |
32822 | (edit_context::apply_insert): Delete. | |
32823 | (edit_context::apply_replace): Rename to... | |
32824 | (edit_context::apply_fixit): ...this. Convert to half-open range. | |
32825 | (edited_file::apply_insert): Delete. | |
32826 | (edited_file::apply_replace): Rename to... | |
32827 | (edited_file::apply_fixit): ...this. | |
32828 | (edited_line::~edited_line): Drop deletion of events. | |
32829 | (edited_line::apply_insert): Delete. | |
32830 | (edited_line::apply_replace): Rename to... | |
32831 | (edited_line::apply_fixit): ...this. Convert to half-open range. | |
32832 | Update for change to type of m_line_events. | |
32833 | * edit-context.h (edit_context::apply_insert): Delete. | |
32834 | (edit_context::apply_replace): Rename to... | |
32835 | (edit_context::apply_fixit): ...this. | |
32836 | ||
32837 | 2017-05-01 Martin Sebor <msebor@redhat.com> | |
32838 | ||
32839 | * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's | |
32840 | known. | |
32841 | ||
32842 | 2017-05-01 Uros Bizjak <ubizjak@gmail.com> | |
32843 | ||
32844 | PR target/68491 | |
32845 | * config/i386/cpuid.h (__get_cpuid): Always return 0 when | |
32846 | __get_cpuid_max returns 0. | |
32847 | (__get_cpuid_count): Ditto. | |
32848 | ||
32849 | 2017-05-01 Eric Botcazou <ebotcazou@adacore.com> | |
32850 | ||
32851 | * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the | |
32852 | replacement expression is another instance of one of its arguments. | |
32853 | ||
32854 | 2017-05-01 Jakub Jelinek <jakub@redhat.com> | |
32855 | ||
32856 | PR target/79430 | |
32857 | * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also | |
32858 | check for stack push/pop autoinc. | |
32859 | * config/i386/i386.c (ix86_agi_dependent): Return false | |
32860 | if the only reason why modified_in_p returned true is that | |
32861 | addr is SP based and set_insn is a push or pop. | |
32862 | ||
32863 | 2017-04-29 Jan Hubicka <hubicka@ucw.cz> | |
32864 | ||
32865 | * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary | |
32866 | overflow check. | |
32867 | ||
32868 | 2017-04-29 Jan Hubicka <hubicka@ucw.cz> | |
32869 | ||
32870 | PR ipa/79224 | |
32871 | * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL. | |
32872 | (account_size_time): Use two predicates - exec_pred and | |
32873 | nonconst_pred_ptr. | |
32874 | (evaluate_conditions_for_known_args): Compute both clause and | |
32875 | nonspec_clause. | |
32876 | (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause. | |
32877 | (inline_summary_t::duplicate): Update. | |
32878 | (estimate_function_body_sizes): Caluculate exec and nonconst predicates | |
32879 | separately. | |
32880 | (compute_inline_parameters): Likewise. | |
32881 | (estimate_edge_size_and_time): Update caluclation of time. | |
32882 | (estimate_node_size_and_time): Compute both time and nonspecialized | |
32883 | time. | |
32884 | (estimate_ipcp_clone_size_and_time): Update. | |
32885 | (inline_merge_summary): Update. | |
32886 | (do_estimate_edge_time): Update. | |
32887 | (do_estimate_edge_size): Update. | |
32888 | (do_estimate_edge_hints): Update. | |
32889 | (inline_read_section, inline_write_summary): Stream both new predicates. | |
32890 | * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time | |
32891 | as argument. | |
32892 | (compute_inlined_call_time): Cleanup. | |
32893 | (big_speedup_p): Update. | |
32894 | (edge_badness): Update. | |
32895 | * ipa-inline.h (INLINE_TIME_SCALE): Remove. | |
32896 | (size_time_entry): Replace predicate by exec_predicate and | |
32897 | nonconst_predicate. | |
32898 | (edge_growth_cache_entry): Cache both time nad nonspecialized time. | |
32899 | (estimate_edge_time): Return also nonspec_time. | |
32900 | (reset_edge_growth_cache): Update. | |
32901 | ||
32902 | 2017-04-29 Jakub Jelinek <jakub@redhat.com> | |
32903 | ||
32904 | PR rtl-optimization/80491 | |
32905 | * ifcvt.c (noce_process_if_block): When looking for x setter | |
32906 | with missing else_bb, don't check only the insn right before | |
32907 | cond_earliest, but look for the last insn that x is modified in | |
32908 | within the same bb. | |
32909 | ||
32910 | PR rtl-optimization/80491 | |
32911 | * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs. | |
32912 | ||
32913 | 2017-04-29 Marc Glisse <marc.glisse@inria.fr> | |
32914 | ||
32915 | PR tree-optimization/80487 | |
32916 | * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy. | |
32917 | ||
32918 | 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
32919 | ||
32920 | PR tree-optimization/79697 | |
32921 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee | |
32922 | is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC. | |
32923 | (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or | |
32924 | BUILT_IN_STRNDUP. | |
32925 | * gimple-fold.c (gimple_fold_builtin_realloc): New function. | |
32926 | (gimple_fold_builtin): Call gimple_fold_builtin_realloc. | |
32927 | ||
32928 | 2017-04-28 Martin Sebor <msebor@redhat.com> | |
32929 | ||
32930 | PR tree-optimization/80523 | |
32931 | * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable. | |
32932 | (init_target_to_host_charmap, target_to_host, target_strtol10): New | |
32933 | functions. | |
32934 | (maybe_warn, format_directive, parse_directive): Use new functions. | |
32935 | (pass_sprintf_length::execute): Call init_target_to_host_charmap. | |
32936 | ||
32937 | 2017-04-28 Marc Glisse <marc.glisse@inria.fr> | |
32938 | ||
32939 | * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations. | |
32940 | ||
32941 | 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
32942 | ||
32943 | * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR, | |
32944 | target_header_dir): Set correctly. | |
32945 | * configure: Regenerated. | |
32946 | * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe. | |
32947 | (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR | |
32948 | instead of SYSTEM_HEADER_DIR. | |
32949 | ||
32950 | 2017-04-28 Jan Hubicka <hubicka@ucw.cz> | |
32951 | ||
32952 | * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal. | |
32953 | (estimate_local_effects): Likewise. | |
32954 | * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p, | |
32955 | edge_badness, inline_small_functions, dump_overall_stats): LIkewise. | |
32956 | * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining, | |
32957 | estimate_ipcp_clone_size_and_time, do_estimate_edge_time, | |
32958 | do_estimate_edge_time, estimate_edge_time): Likewise. | |
32959 | * ipa-inline-analysis.c (estimate_node_size_and_time, | |
32960 | estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise. | |
32961 | (estimate_time_after_inlining): Remove. | |
32962 | ||
32963 | 2017-04-28 Martin Liska <mliska@suse.cz> | |
32964 | ||
32965 | * doc/gcov.texi: Enhance documentation of gcov. | |
32966 | ||
32967 | 2017-04-28 Martin Liska <mliska@suse.cz> | |
32968 | ||
32969 | * doc/gcov.texi: Sort options in alphabetic order. | |
32970 | * doc/gcov-dump.texi: Likewise. | |
32971 | * doc/gcov-tool.texi: Likewise. | |
32972 | * gcov.c (print_usage): Likewise. | |
32973 | * gcov-dump.c (print_usage): Likewise. | |
32974 | * gcov-tool.c (print_merge_usage_message): Likewise. | |
32975 | (print_rewrite_usage_message): Likewise. | |
32976 | (print_overlap_usage_message): Likewise. | |
32977 | ||
32978 | 2017-04-28 Martin Liska <mliska@suse.cz> | |
32979 | ||
32980 | PR gcov-profile/53915 | |
32981 | * gcov.c (format_gcov): Print 'NAN %' when top > bottom. | |
32982 | ||
32983 | 2017-04-28 Martin Liska <mliska@suse.cz> | |
32984 | ||
32985 | PR gcov-profile/79891 | |
32986 | * gcov.c (add_line_counts): Assign BBs to lines just if the BB | |
32987 | is marked by compiler as living on a line. | |
32988 | (get_cycles_count): Remove usage of the union. | |
32989 | (output_intermediate_file): Likewise. | |
32990 | (find_source): Fix GNU coding style. | |
32991 | (accumulate_line_counts): Remove old non-all block mode. | |
32992 | (output_lines): Remove usage of the union. | |
32993 | * profile.c (output_location): Include all BBs, even if | |
32994 | belonging to a same line (and file) as a previous BB. | |
32995 | ||
32996 | 2017-04-28 Martin Liska <mliska@suse.cz> | |
32997 | ||
32998 | * gcov.c (process_args): Handle new argument 'w'. | |
32999 | (read_graph_file): Assign ID to BBs. | |
33000 | (output_branch_count): Display BB # if verbose flag is set. | |
33001 | (output_lines): Likewise for arcs. | |
33002 | (print_usage): Add '--verbose' option help. | |
33003 | * doc/gcov.texi: Document --verbose (-w) option. | |
33004 | ||
33005 | 2017-04-28 Martin Liska <mliska@suse.cz> | |
33006 | ||
33007 | * gcov.c (struct block_location_info): New struct. | |
33008 | (process_file): Fill up the new structure. | |
33009 | (read_graph_file): Replace usage of encoding by the newly added | |
33010 | struct. | |
33011 | (add_line_counts): Likewise. | |
33012 | (accumulate_line_counts): Remove usage of the union. | |
33013 | (function_info::function_info): New function. | |
33014 | (function_info::~function_info): Likewise. | |
33015 | (process_file): Call delete instead of release_function. | |
33016 | (release_function): Release the function. | |
33017 | (release_structures): Call delete instead of release_function. | |
33018 | (solve_flow_graph): Replace usage of num_blocks. | |
33019 | (find_exception_blocks): Likewise. | |
33020 | (output_lines): Fix GNU coding style. | |
33021 | ||
33022 | 2017-04-28 Martin Liska <mliska@suse.cz> | |
33023 | ||
33024 | PR driver/56469 | |
33025 | * coverage.c (coverage_remove_note_file): New function. | |
33026 | * coverage.h: Declare the function. | |
33027 | * toplev.c (finalize): Clean if an error has been seen. | |
33028 | ||
33029 | 2017-04-28 Martin Liska <mliska@suse.cz> | |
33030 | ||
33031 | PR gcov-profile/80031 | |
33032 | * gcov-dump.c (tag_blocks): Just print number of basic blocks. | |
33033 | * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro. | |
33034 | * gcov.c (read_graph_file): Read just number of blocks. | |
33035 | * profile.c (branch_prob): Do not stream 0 flags per a basic | |
33036 | block. | |
33037 | ||
33038 | 2017-04-28 Martin Liska <mliska@suse.cz> | |
33039 | ||
33040 | * gcov-dump.c (tag_*): Add new argument to declarations. | |
33041 | (dump_gcov_file): Likewise. | |
33042 | (tag_blocks): Add and use new argument depth. | |
33043 | (tag_arcs): Likewise. | |
33044 | (tag_lines): Likewise. | |
33045 | (tag_counters): Likewise. | |
33046 | (tag_summary): Likewise. | |
33047 | (dump_working_sets): Use depth to do a proper indentation. | |
33048 | ||
33049 | 2017-04-28 Jakub Jelinek <jakub@redhat.com> | |
33050 | ||
33051 | PR bootstrap/80531 | |
33052 | * cgraph.h (symtab_node::debug_symtab): No longer inline. | |
33053 | * symtab.c (symtab_node::debug_symtab): Move definition here. | |
33054 | ||
33055 | 2017-04-28 Richard Biener <rguenther@suse.de> | |
33056 | ||
33057 | * lto-streamer.h (LTO_major_version): Bump to 7. | |
33058 | ||
33059 | 2017-04-28 Richard Biener <rguenther@suse.de> | |
33060 | ||
33061 | * tree-vrp.c (assert_info): New struct. | |
33062 | (add_assert_info): New helper. | |
33063 | (register_edge_assert_for_2): Refactor to add asserts to a vector | |
33064 | of assert_info. | |
33065 | (register_edge_assert_for_1): Likewise. | |
33066 | (register_edge_assert_for): Likewise. | |
33067 | (finish_register_edge_assert_for): New helper actually registering | |
33068 | asserts where live on edge. | |
33069 | (find_conditional_asserts): Adjust. | |
33070 | (find_switch_asserts): Likewise. | |
33071 | (evrp_dom_walker::try_find_new_range): Generalize. | |
33072 | (evrp_dom_walker::before_dom_children): Use register_edge_assert_for. | |
33073 | ||
33074 | 2017-04-27 Marek Polacek <polacek@redhat.com> | |
33075 | ||
33076 | PR sanitizer/80349 | |
33077 | * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert | |
33078 | arg10 and arg11 to itype. | |
33079 | ||
33080 | 2017-04-27 Jonathan Wakely <jwakely@redhat.com> | |
33081 | ||
33082 | * doc/extend.texi (Object Size Checking): Improve grammar. | |
33083 | ||
33084 | 2017-04-27 Richard Earnshaw <rearnsha@arm.com> | |
33085 | ||
33086 | PR target/80530 | |
33087 | * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure | |
33088 | that the logic for permitting reciprocal estimates matches that | |
33089 | in use_rsqrt_p. | |
33090 | ||
33091 | 2017-04-27 Jakub Jelinek <jakub@redhat.com> | |
33092 | ||
33093 | PR c++/80534 | |
33094 | * tree.c (type_cache_hasher::equal): Only compare | |
33095 | TYPE_TYPELESS_STORAGE flag on non-aggregate element types. | |
33096 | (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on | |
33097 | non-aggregate element types. | |
33098 | * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details | |
33099 | about the flag on ARRAY_TYPEs in the comment, formatting fix. | |
33100 | ||
33101 | 2017-04-27 Richard Biener <rguenther@suse.de> | |
33102 | ||
33103 | PR middle-end/80533 | |
33104 | * emit-rtl.c (set_mem_attributes_minus_bitpos): When | |
33105 | stripping ARRAY_REFs from MEM_EXPR make sure we're not | |
33106 | keeping a reference to a trailing array. | |
33107 | ||
33108 | 2017-04-27 Richard Biener <rguenther@suse.de> | |
33109 | ||
33110 | PR middle-end/80539 | |
33111 | * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not | |
33112 | being in loop-closed SSA form conservatively. | |
33113 | (chrec_fold_multiply_poly_poly): Likewise. | |
33114 | ||
33115 | 2017-04-27 Tamar Christina <tamar.christina@arm.com> | |
33116 | ||
33117 | PR middle-end/79665 | |
33118 | * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR, | |
33119 | CEIL_MOD_EXPR, ROUND_MOD_EXPR cases. | |
33120 | ||
33121 | 2017-04-27 Jakub Jelinek <jakub@redhat.com> | |
33122 | ||
33123 | PR target/77728 | |
33124 | * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove. | |
33125 | (aarch64_function_arg_alignment): Return unsigned int again, but still | |
33126 | ignore TYPE_FIELDS chain decls other than FIELD_DECLs. | |
33127 | (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller. | |
33128 | Don't emit -Wpsabi note. | |
33129 | (aarch64_function_arg_boundary): Likewise. | |
33130 | (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment | |
33131 | caller. | |
33132 | ||
33133 | 2017-04-26 Nathan Sidwell <nathan@acm.org> | |
33134 | ||
33135 | * tree.h (crc32_unsigned_n): Declare. | |
33136 | (crc32_unsigned, crc32_unsigned): Make inline. | |
33137 | * tree.c (crc32_unsigned_bits): Replace with ... | |
33138 | (crc32_unsigned_n): ... this. | |
33139 | (crc32_unsigned, crc32_byte): Remove. | |
33140 | (crc32_string): Remove unnecessary braces. | |
33141 | ||
33142 | 2017-04-25 Jan Hubicka <hubicka@ucw.cz> | |
33143 | ||
33144 | * ipa-cp.c (estimate_local_effects): Convert sreal to int. | |
33145 | * ipa-inline-analysis.c (MAX_TIME): Remove. | |
33146 | (account_size_time): Use sreal for time. | |
33147 | (dump_inline_summary): Update. | |
33148 | (estimate_function_body_sizes): Update. | |
33149 | (estimate_edge_size_and_time): Update. | |
33150 | (estimate_calls_size_and_time): Update. | |
33151 | (estimate_node_size_and_time): Update. | |
33152 | (inline_merge_summary): Update. | |
33153 | (inline_update_overall_summary): Update. | |
33154 | (estimate_time_after_inlining): Update. | |
33155 | (inline_read_section): Update. | |
33156 | (inline_write_summary): Update. | |
33157 | * ipa-inline.c (compute_uninlined_call_time): Update. | |
33158 | (compute_inlined_call_time): Update. | |
33159 | (recursive_inlining): Update. | |
33160 | (inline_small_functions): Update. | |
33161 | (dump_overall_stats): Update. | |
33162 | * ipa-inline.h: Include sreal.h. | |
33163 | (size_time_entry): Turn time to sreal. | |
33164 | (inline_summary): Turn self_time nad time to sreal. | |
33165 | ||
33166 | 2017-04-25 Jan Hubicka <hubicka@ucw.cz> | |
33167 | ||
33168 | * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and | |
33169 | data-streamer.h | |
33170 | (sreal::stream_out, sreal::stream_in): New. | |
33171 | * sreal.h (sreal::stream_out, sreal::stream_in): Declare. | |
33172 | ||
33173 | 2017-04-25 Jakub Jelinek <jakub@redhat.com> | |
33174 | ||
33175 | * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the | |
33176 | environment. | |
33177 | ||
33178 | 2017-04-25 Uros Bizjak <ubizjak@gmail.com> | |
33179 | ||
33180 | PR target/70799 | |
33181 | * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): | |
33182 | Handle ASHIFTRT. | |
33183 | (dimode_scalar_chain::compute_convert_gain): Ditto. | |
33184 | (dimode_scalar_chain::make_vector_copies): Ditto. | |
33185 | (dimode_scalar_chain::convert_reg): Ditto. | |
33186 | (dimode_scalar_chain::convert_insn): Ditto. | |
33187 | * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator. | |
33188 | (VI248_AVX512BW_1): New mode iterator. | |
33189 | (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with | |
33190 | <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1 | |
33191 | mode iterator. | |
33192 | ||
33193 | 2017-04-25 Martin Sebor <msebor@redhat.com> | |
33194 | ||
33195 | PR tree-optimization/80497 | |
33196 | * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer | |
33197 | constants are representable in HOST_WIDE_INT. | |
33198 | (parse_directive): Ditto. | |
33199 | ||
33200 | 2017-04-25 Martin Sebor <msebor@redhat.com> | |
33201 | ||
33202 | PR bootstrap/80486 | |
33203 | * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned. | |
33204 | (new_zero_array): Adjust signature. | |
33205 | (dom_info::dom_init): Used unsigned rather that size_t. | |
33206 | (dom_info::dom_info): Same. | |
33207 | ||
33208 | 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
33209 | Jakub Jelinek <jakub@redhat.com> | |
33210 | ||
33211 | PR target/77728 | |
33212 | * config/arm/arm.c: Include gimple.h. | |
33213 | (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align | |
33214 | returns negative, increment ncrn only if it returned positive. | |
33215 | (arm_needs_doubleword_align): Return int instead of bool, | |
33216 | ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain | |
33217 | members, but if there is any such non-FIELD_DECL | |
33218 | > PARM_BOUNDARY aligned decl, return -1 instead of false. | |
33219 | (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align | |
33220 | returns negative, increment nregs only if it returned positive. | |
33221 | (arm_setup_incoming_varargs): Likewise. | |
33222 | (arm_function_arg_boundary): Emit -Wpsabi note if | |
33223 | arm_needs_doubleword_align returns negative, return | |
33224 | DOUBLEWORD_ALIGNMENT only if it returned positive. | |
33225 | ||
33226 | 2017-04-25 Marek Polacek <polacek@redhat.com> | |
33227 | ||
33228 | PR sanitizer/80349 | |
33229 | * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's | |
33230 | first argument to type. | |
33231 | ||
33232 | 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com> | |
33233 | ||
33234 | PR target/80482 | |
33235 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change | |
33236 | type checks to test for compatibility instead of equality. | |
33237 | ||
33238 | 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
33239 | Jakub Jelinek <jakub@redhat.com> | |
33240 | ||
33241 | PR target/77728 | |
33242 | * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New | |
33243 | type. | |
33244 | (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment | |
33245 | struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for | |
33246 | the alignment computation, but return their maximum in warn_alignment. | |
33247 | (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller. | |
33248 | Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment | |
33249 | is smaller. | |
33250 | (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX. | |
33251 | (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment | |
33252 | caller. | |
33253 | ||
33254 | 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> | |
33255 | ||
33256 | * config/arc/simdext.md (dmpyh): Fix typo. | |
33257 | ||
33258 | 2017-04-25 Richard Biener <rguenther@suse.de> | |
33259 | ||
33260 | PR tree-optimization/80492 | |
33261 | * alias.c (compare_base_decls): Handle registers with asm | |
33262 | specification conservatively. | |
33263 | * tree-ssa-alias.c (decl_refs_may_alias_p): Handle | |
33264 | compare_base_decls returning dont-know properly. | |
33265 | ||
33266 | 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> | |
33267 | ||
33268 | * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro. | |
33269 | (legitimate_offset_address_p): New function. | |
33270 | (arc_legitimate_address_p): Use above function. | |
33271 | ||
33272 | 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> | |
33273 | ||
33274 | * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls. | |
33275 | ||
33276 | 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> | |
33277 | ||
33278 | * config/arc/arc.c (arc_conditional_register_usage): Use ACCL, | |
33279 | ACCH registers whenever they are available. | |
33280 | ||
33281 | 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> | |
33282 | ||
33283 | * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1 | |
33284 | double regs fix when not used. | |
33285 | ||
33286 | 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> | |
33287 | ||
33288 | * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension | |
33289 | core registers. | |
33290 | (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise. | |
33291 | (REG_OK_FOR_BASE_P_NONSTRICT): Likewise. | |
33292 | ||
33293 | 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> | |
33294 | ||
33295 | * config/arc/arc.c (arc_output_addsi): Check for h-register class | |
33296 | when emitting short ADD instructions. | |
33297 | ||
33298 | 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> | |
33299 | ||
33300 | * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register | |
33301 | constraint. | |
33302 | (cmpsi_cc_c_insn): Likewise. | |
33303 | (cbranchsi4_scratch): Compute proper instruction length using | |
33304 | compact_hreg_operand. | |
33305 | * config/arc/predicates.md (compact_hreg_operand): New predicate. | |
33306 | ||
33307 | 2017-04-25 Richard Biener <rguenther@suse.de> | |
33308 | ||
33309 | PR middle-end/80509 | |
33310 | * passes.c (pass_manager::pass_manager): Initialize | |
33311 | m_name_to_pass_map. | |
33312 | ||
33313 | 2017-04-25 Richard Biener <rguenther@suse.de> | |
33314 | ||
33315 | PR tree-optimization/79201 | |
33316 | * tree-ssa-sink.c (statement_sink_location): Handle calls. | |
33317 | ||
33318 | 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
33319 | ||
33320 | PR target/80464 | |
33321 | * config/s390/vector.md: Split MEM->GPR vector moves for | |
33322 | non-s_operand addresses. | |
33323 | ||
33324 | 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
33325 | ||
33326 | PR target/79895 | |
33327 | * config/s390/predicates.md (reload_const_wide_int_operand): New | |
33328 | predicate. | |
33329 | * config/s390/s390.md ("movti"): Remove d/P alternative. | |
33330 | ("movti_bigconst"): New pattern definition. | |
33331 | ||
33332 | 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
33333 | ||
33334 | PR target/80080 | |
33335 | * s390-protos.h (s390_expand_cs_hqi): Removed. | |
33336 | (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes. | |
33337 | * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer | |
33338 | modes as well as CCZ1mode and CCZmode. | |
33339 | (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new | |
33340 | signature of s390_emit_compare_and_swap. | |
33341 | (s390_expand_cs_hqi): Likewise, make static. | |
33342 | (s390_expand_cs_tdsi): Generate an explicit compare before trying | |
33343 | compare-and-swap, in some cases. | |
33344 | (s390_expand_cs): Wrapper function. | |
33345 | (s390_expand_atomic_exchange_tdsi): New backend specific expander for | |
33346 | atomic_exchange. | |
33347 | (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode. | |
33348 | * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the | |
33349 | patterns for small and large integers. Forbid symref memory operands. | |
33350 | Move expander to s390.c. Require cc register. | |
33351 | ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal") | |
33352 | ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1") | |
33353 | ("*atomic_compare_and_swapdi<CCZZ1:mode>_2") | |
33354 | ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid | |
33355 | symref memory operands. Remove CC mode and call s390_match_ccmode | |
33356 | instead. | |
33357 | ("atomic_exchange<mode>"): Allow and implement all integer modes. | |
33358 | ||
33359 | 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
33360 | ||
33361 | * config/s390/s390.md (define_peephole2): New peephole to help | |
33362 | combining the load-and-test pattern with volatile memory. | |
33363 | ||
33364 | 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
33365 | ||
33366 | * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal | |
33367 | with CCZmode for TARGET_Z196. | |
33368 | ||
33369 | 2017-04-25 Jakub Jelinek <jakub@redhat.com> | |
33370 | ||
33371 | PR rtl-optimization/80501 | |
33372 | * combine.c (make_compound_operation_int): Set subreg_code to SET | |
33373 | even for AND with mask of the sign bit of mode. | |
33374 | ||
33375 | PR rtl-optimization/80500 | |
33376 | * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on | |
33377 | sum's initial value. | |
33378 | ||
33379 | 2017-04-25 Julian Brown <julian@codesourcery.com> | |
33380 | Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
33381 | ||
33382 | * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation. | |
33383 | ||
33384 | 2017-04-25 Marc Glisse <marc.glisse@inria.fr> | |
33385 | ||
33386 | * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME. | |
33387 | ||
33388 | 2017-04-25 Julian Brown <julian@codesourcery.com> | |
33389 | Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
33390 | ||
33391 | * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation. | |
33392 | (thunderx2t99_sha): New Reservation. | |
33393 | ||
33394 | 2017-04-25 Julian Brown <julian@codesourcery.com> | |
33395 | Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
33396 | ||
33397 | * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix | |
33398 | type for 1-element load. | |
33399 | ||
33400 | 2017-04-24 Marc Glisse <marc.glisse@inria.fr> | |
33401 | ||
33402 | * match.pd (X/[ex]C CMP Y/[ex]C): New transformation. | |
33403 | ||
33404 | 2017-04-24 Martin Jambor <mjambor@suse.cz> | |
33405 | ||
33406 | PR tree-optimization/80293 | |
33407 | * tree-sra.c (scalarizable_type_p): New parameter const_decl, make | |
33408 | char arrays not totally scalarizable if it is false. | |
33409 | (analyze_all_variable_accesses): Pass correct value in the new | |
33410 | parameter. Add a statistics counter. | |
33411 | ||
33412 | 2017-04-24 Jan Hubicka <hubicka@ucw.cz> | |
33413 | ||
33414 | PR middle-end/79931 | |
33415 | * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE. | |
33416 | ||
33417 | 2017-04-24 Richard Biener <rguenther@suse.de> | |
33418 | ||
33419 | PR tree-optimization/80494 | |
33420 | * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail | |
33421 | out for complex types. | |
33422 | ||
33423 | 2017-04-24 Richard Biener <rguenther@suse.de> | |
33424 | ||
33425 | * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype. | |
33426 | * tree-ssa-sccvn.c (print_scc): Print SCC size. | |
33427 | (extract_and_process_scc_for_name): Never fail but drop SCC to varying. | |
33428 | (DFS): Adjust and never fail. | |
33429 | (sccvn_dom_walker::fail): Remove. | |
33430 | (sccvn_dom_walker::before_dom_children): Adjust. | |
33431 | (run_scc_vn): Likewise and never fail. | |
33432 | * tree-ssa-pre.c (pass_pre::execute): Adjust. | |
33433 | (pass_fre::execute): Likewise. | |
33434 | ||
33435 | 2017-04-24 Richard Biener <rguenther@suse.de> | |
33436 | ||
33437 | PR tree-optimization/79725 | |
33438 | * tree-ssa-sink.c (statement_sink_location): Return whether | |
33439 | failure reason was zero uses. Move that check later. | |
33440 | (sink_code_in_bb): Deal with zero uses by removing the stmt | |
33441 | if possible. | |
33442 | ||
33443 | 2017-04-24 Richard Biener <rguenther@suse.de> | |
33444 | ||
33445 | PR c++/2972 | |
33446 | * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some | |
33447 | pointer-based references. | |
33448 | ||
33449 | 2017-04-24 Richard Biener <rguenther@suse.de> | |
33450 | ||
33451 | PR bootstrap/79814 | |
33452 | * pass_manager.h (pass_manager::operator new): Remove. | |
33453 | (pass_manager::operator delete): Likewise. | |
33454 | * passes.c (pass_manager::operator new): Remove. | |
33455 | (pass_manager::operator delete): Likewise. | |
33456 | (pass_manager::pass_manager): Zero individual pass members. | |
33457 | ||
33458 | 2017-04-23 Uros Bizjak <ubizjak@gmail.com> | |
33459 | ||
33460 | PR target/70799 | |
33461 | * config/i386/i386.c (dimode_scalar_to_vector_candidate_p) | |
33462 | <case ASHIFT, case LSHIFTRT>: Also consider variable shifts. | |
33463 | Check "XEXP (src, 1)" operand here. | |
33464 | <case PLUS, case MINUS, case IOR, case XOR, case AND>: | |
33465 | Check "XEXP (src, 1)" operand here. | |
33466 | (dimode_scalar_chain::make_vector_copies): Detect count register | |
33467 | of a shift instruction. Zero extend count register from QImode | |
33468 | to DImode to satisfy vector shift pattern count operand predicate. | |
33469 | Substitute vector shift count operand with a DImode copy. | |
33470 | (dimode_scalar_chain::convert_reg): Ditto, zero-extend from | |
33471 | vector register. | |
33472 | ||
33473 | 2017-04-21 Uros Bizjak <ubizjak@gmail.com> | |
33474 | ||
33475 | * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>. | |
33476 | Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. | |
33477 | (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove | |
33478 | UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern. | |
33479 | (UNSPEC_NOREX_MEM): Remove definition. | |
33480 | ||
33481 | 2017-04-21 Richard Biener <rguenther@suse.de> | |
33482 | ||
33483 | PR tree-optimization/79547 | |
33484 | * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): | |
33485 | Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp, | |
33486 | bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p | |
33487 | without any constraints. | |
33488 | ||
33489 | 2017-04-21 Richard Biener <rguenther@suse.de> | |
33490 | ||
33491 | PR tree-optimization/78847 | |
33492 | * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR. | |
33493 | ||
33494 | 2017-04-21 Richard Biener <rguenther@suse.de> | |
33495 | ||
33496 | * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO. | |
33497 | (build_distinct_type_copy): Likewise. | |
33498 | (build_variant_type_copy): Likewise. | |
33499 | * tree.c (build_qualified_type): Pass down mem-stat info. | |
33500 | (build_distinct_type_copy): Likewise. | |
33501 | (build_variant_type_copy): Likewise. | |
33502 | ||
33503 | 2017-04-21 Richard Biener <rguenther@suse.de> | |
33504 | ||
33505 | PR tree-optimization/80237 | |
33506 | * tree-ssa-pre.c (find_leader_in_sets): Add third set argument, | |
33507 | defaulted to NULL. | |
33508 | (phi_translate_1): Also allow a leader in AVAIL_OUT of pred | |
33509 | for a simplified result. | |
33510 | ||
33511 | 2016-04-21 Richard Biener <rguenther@suse.de> | |
33512 | ||
33513 | * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require | |
33514 | sth as strict as a simple_iv but a chrec without symbols and an | |
33515 | operand defined in the loop we are peeling (and not some subloop). | |
33516 | (propagate_constants_for_unrolling): Propagate all constants. | |
33517 | ||
33518 | 2017-04-20 Uros Bizjak <ubizjak@gmail.com> | |
33519 | ||
33520 | PR target/79804 | |
33521 | * config/i386/i386.c (print_reg): Remove assert for disalowed | |
33522 | regno values, call output_operand_lossage instead. | |
33523 | ||
33524 | 2017-04-20 Uros Bizjak <ubizjak@gmail.com> | |
33525 | ||
33526 | PR target/78090 | |
33527 | * config/i386/constraints.md (Yc): New register constraint. | |
33528 | * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed): | |
33529 | Use Yc constraint for alternative 2 of operand 0. Remove | |
33530 | preferred_for_speed attribute. | |
33531 | ||
33532 | 2017-04-20 Alexander Monakov <amonakov@ispras.ru> | |
33533 | ||
33534 | * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and | |
33535 | lastprivate clauses in SIMT case. | |
33536 | ||
33537 | 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de> | |
33538 | ||
33539 | * doc/invoke.texi (-Wextra-semi): Document new warning option. | |
33540 | ||
33541 | 2017-04-20 Richard Biener <rguenther@suse.de> | |
33542 | ||
33543 | PR tree-optimization/57796 | |
33544 | * tree-vect-stmts.c (vect_model_store_cost): Cost scatters | |
33545 | as N scalar stores. | |
33546 | (vect_model_load_cost): Cost gathers as N scalar loads. | |
33547 | ||
33548 | 2017-04-20 Richard Biener <rguenther@suse.de> | |
33549 | ||
33550 | * ggc-page.c (ggc_allocated_p): Rename to ... | |
33551 | (safe_lookup_page_table_entry): ... this and return the lookup | |
33552 | result. | |
33553 | (gt_ggc_m_S): Use safe_lookup_page_table_entry. | |
33554 | ||
33555 | 2017-04-20 Richard Biener <rguenther@suse.de> | |
33556 | ||
33557 | PR tree-optimization/80453 | |
33558 | * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members. | |
33559 | * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs | |
33560 | from the conditions. | |
33561 | (vn_phi_eq): Pass them down. | |
33562 | (vn_phi_lookup): Record them. | |
33563 | (vn_phi_insert): Likewise. | |
33564 | ||
33565 | 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com> | |
33566 | ||
33567 | * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix | |
33568 | uninitialized variable warning to avoid buffer overrun. | |
33569 | ||
33570 | 2017-04-20 Alexander Monakov <amonakov@ispras.ru> | |
33571 | ||
33572 | PR other/71250 | |
33573 | * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning | |
33574 | is suppressed for '{ 0 }' in C. | |
33575 | ||
33576 | 2017-04-20 Jakub Jelinek <jakub@redhat.com> | |
33577 | ||
33578 | * BASE-VER: Set to 8.0.0. | |
33579 | ||
33580 | 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
33581 | ||
33582 | * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default | |
33583 | priority .init_array and .fini_array section with SECTION_NOTYPE | |
33584 | flag. | |
33585 | ||
33586 | 2017-04-20 Jakub Jelinek <jakub@redhat.com> | |
33587 | ||
33588 | PR middle-end/80423 | |
33589 | * tree.h (build_array_type): Add typeless_storage default argument. | |
33590 | * tree.c (type_cache_hasher::equal): Also compare | |
33591 | TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs. | |
33592 | (build_array_type): Add typeless_storage argument, set | |
33593 | TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to | |
33594 | recursive call. | |
33595 | (build_nonshared_array_type): Adjust build_array_type_1 caller. | |
33596 | (build_array_type): Likewise. Add typeless_storage argument. | |
33597 | ||
33598 | 2017-04-19 Eric Botcazou <ebotcazou@adacore.com> | |
33599 | Jakub Jelinek <jakub@redhat.com> | |
33600 | ||
33601 | PR tree-optimization/80426 | |
33602 | * tree-vrp.c (extract_range_from_binary_expr_1): For an additive | |
33603 | operation on symbolic operands, also compute the overflow for the | |
33604 | invariant part when the operation degenerates into a negation. | |
33605 | ||
33606 | 2017-04-19 Jakub Jelinek <jakub@redhat.com> | |
33607 | ||
33608 | PR debug/80461 | |
33609 | * dwarf2out.c (modified_type_die, gen_type_die_with_usage): | |
33610 | Check for t with zero TYPE_QUALS_NO_ADDR_SPACE. | |
33611 | ||
33612 | PR debug/80436 | |
33613 | * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses. | |
33614 | ||
33615 | 2017-04-19 Georg-Johann Lay <avr@gjlay.de> | |
33616 | ||
33617 | PR target/80462 | |
33618 | * config/avr/avr.c (tree.h): Include it. | |
33619 | (cgraph.h): Include it. | |
33620 | (avr_encode_section_info): Don't warn for uninitialized progmem | |
33621 | variable if it's just an alias. | |
33622 | ||
33623 | 2017-04-19 Richard Biener <rguenther@suse.de> | |
33624 | ||
33625 | PR ipa/65972 | |
33626 | * auto-profile.c (afdo_vpt_for_early_inline): Update SSA | |
33627 | when needed by AutoPGO. | |
33628 | ||
33629 | 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com> | |
33630 | ||
33631 | PR lto/50345 | |
33632 | * doc/lto.texi: Remove an extra 'that'. | |
33633 | ||
33634 | 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org> | |
33635 | ||
33636 | PR rtl-optimization/80429 | |
33637 | * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that | |
33638 | are only used in debug insns. | |
33639 | ||
33640 | 2017-04-19 Eric Botcazou <ebotcazou@adacore.com> | |
33641 | Vladimir Makarov <vmakarov@redhat.com> | |
33642 | ||
33643 | * config/sparc/predicates.md (input_operand): Add comment. Return | |
33644 | true for any memory operand when LRA is in progress. | |
33645 | * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix. | |
33646 | ||
33647 | 2017-04-18 Jeff Law <law@redhat.com> | |
33648 | ||
33649 | PR target/74563 | |
33650 | * mips.md ({return,simple_return}_internal): Do not overwrite | |
33651 | operands[0]. | |
33652 | ||
33653 | 2017-04-18 Jakub Jelinek <jakub@redhat.com> | |
33654 | ||
33655 | PR tree-optimization/80443 | |
33656 | * tree-vrp.c (intersect_ranges): For signed 1-bit precision type, | |
33657 | instead of adding 1, subtract -1 and similarly instead of subtracting | |
33658 | 1 add -1. | |
33659 | ||
33660 | 2017-04-18 Richard Sandiford <richard.sandiford@arm.com> | |
33661 | ||
33662 | PR rtl-optimization/80357 | |
33663 | * haifa-sched.c (tmp_bitmap): New variable. | |
33664 | (model_recompute): Handle duplicate use records. | |
33665 | (alloc_global_sched_pressure_data): Initialize tmp_bitmap. | |
33666 | (free_global_sched_pressure_data): Free it. | |
33667 | ||
33668 | 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
33669 | ||
33670 | Revert: | |
33671 | 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
33672 | * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe. | |
33673 | (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR | |
33674 | instead of SYSTEM_HEADER_DIR. | |
33675 | ||
33676 | 2017-04-18 Jeff Law <law@redhat.com> | |
33677 | ||
33678 | PR middle-end/80422 | |
33679 | * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have | |
33680 | predecessors after walking up the insn chain. | |
33681 | ||
33682 | 2017-04-18 Jakub Jelinek <jakub@redhat.com> | |
33683 | ||
33684 | PR debug/80263 | |
33685 | * dwarf2out.c (modified_type_die): Try harder not to emit internal | |
33686 | sizetype type into debug info. | |
33687 | ||
33688 | 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com> | |
33689 | ||
33690 | PR target/80099 | |
33691 | * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate | |
33692 | unneeded test for TARGET_UPPER_REGS_SF. | |
33693 | * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise. | |
33694 | ||
33695 | 2017-04-18 Jakub Jelinek <jakub@redhat.com> | |
33696 | ||
33697 | PR sanitizer/80444 | |
33698 | * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb | |
33699 | instead of gsi_after_labels. | |
33700 | ||
33701 | 2017-04-18 Jeff Law <law@redhat.com> | |
33702 | ||
33703 | * regcprop.c (maybe_mode_change): Avoid creating copies of the | |
33704 | stack pointer. | |
33705 | ||
33706 | Revert: | |
33707 | 2017-04-13 Jeff Law <law@redhat.com> | |
33708 | * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear | |
33709 | in operands[1] if it is a MEM and TARGET_MIPS16 is active. | |
33710 | ||
33711 | 2017-04-18 Georg-Johann Lay <avr@gjlay.de> | |
33712 | ||
33713 | PR target/79453 | |
33714 | * config/avr/avr.c (intl.h): Include it. | |
33715 | (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _(). | |
33716 | ||
33717 | 2017-04-18 Martin Liska <mliska@suse.cz> | |
33718 | ||
33719 | PR gcov-profile/78783 | |
33720 | * gcov-tool.c (gcov_output_files): Validate that destination | |
33721 | file is either removed by the tool or by a user. | |
33722 | ||
33723 | 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com> | |
33724 | Guy Benyei <guybe@mellanox.com> | |
33725 | ||
33726 | * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local | |
33727 | block, and do not negate it, the stored id is already negative. | |
33728 | ||
33729 | 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com> | |
33730 | ||
33731 | * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax. | |
33732 | ||
33733 | 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com> | |
33734 | ||
33735 | PR target/80098 | |
33736 | * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define | |
33737 | masks of options that should be turned off if the VSX vector | |
33738 | options are turned off. | |
33739 | (OTHER_P8_VECTOR_MASKS): Likewise. | |
33740 | (OTHER_VSX_VECTOR_MASKS): Likewise. | |
33741 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Call | |
33742 | rs6000_disable_incompatible_switches to validate no type switches | |
33743 | like -mvsx. | |
33744 | (rs6000_incompatible_switch): New function to disallow turning on | |
33745 | other vector options if -mno-vsx, -mno-power8-vector, or | |
33746 | -mno-power9-vector are specified. | |
33747 | ||
33748 | 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com> | |
33749 | ||
33750 | * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls. | |
33751 | ||
33752 | 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com> | |
33753 | ||
33754 | * config/arc/arc-protos.h (arc_decl_pretend_args): Remove. | |
33755 | * config/arc/arc.c (arc_decl_pretend_args): Likewise. | |
33756 | * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise. | |
33757 | (ARG_POINTER_CFA_OFFSET): Likewise. | |
33758 | ||
33759 | 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com> | |
33760 | ||
33761 | * config/arc/arc.c (arc_mode_dependent_address_p): Relax | |
33762 | conditions to take advantage of various optimizations. | |
33763 | ||
33764 | 2017-04-13 Jeff Law <law@redhat.com> | |
33765 | ||
33766 | * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear | |
33767 | in operands[1] if it is a MEM and TARGET_MIPS16 is active. | |
33768 | (zero_extendsidi2_dext): Likewise. | |
33769 | ||
33770 | 2017-04-13 Jakub Jelinek <jakub@redhat.com> | |
33771 | ||
33772 | PR sanitizer/80403 | |
33773 | * fold-const.c (fold_ternary_loc): Revert | |
33774 | use op0 instead of fold_convert_loc (loc, type, arg0) part of | |
33775 | 2017-04-12 change. | |
33776 | ||
33777 | 2017-04-13 Vladimir Makarov <vmakarov@redhat.com> | |
33778 | ||
33779 | PR rtl-optimization/80343 | |
33780 | * lra-remat.c (update_scratch_ops): Assign original hard reg to | |
33781 | new scratch pseudo. | |
33782 | ||
33783 | 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com> | |
33784 | ||
33785 | PR sanitizer/80414 | |
33786 | * ubsan.c (ubsan_expand_bounds_ifn): Pass original index | |
33787 | to ubsan_encode_value. | |
33788 | ||
33789 | 2017-04-13 Jeff Law <law@redhat.com> | |
33790 | ||
33791 | * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs | |
33792 | appearing in DEBUG_INSNs. | |
33793 | ||
33794 | 2017-04-13 Martin Liska <mliska@suse.cz> | |
33795 | ||
33796 | PR gcov-profile/80413 | |
33797 | * gcov-io.c (gcov_write_string): Copy to buffer just when | |
33798 | allocated size is greater than zero. | |
33799 | ||
33800 | 2017-04-13 Jakub Jelinek <jakub@redhat.com> | |
33801 | ||
33802 | PR debug/80321 | |
33803 | * dwarf2out.c (decls_for_scope): Ignore declarations of | |
33804 | current_function_decl in BLOCK_NONLOCALIZED_VARS. | |
33805 | ||
33806 | 2017-04-12 Jan Hubicka <hubicka@ucw.cz> | |
33807 | ||
33808 | PR lto/69953 | |
33809 | * ipa-visibility.c (non_local_p): Fix typos. | |
33810 | (localize_node): When localizing symbol in same comdat group, | |
33811 | dissolve the group only when we know external symbols are going | |
33812 | to be privatized. | |
33813 | (function_and_variable_visibility): Do not localize DECL_EXTERNAL. | |
33814 | ||
33815 | 2017-04-12 Jakub Jelinek <jakub@redhat.com> | |
33816 | ||
33817 | PR tree-optimization/79390 | |
33818 | * optabs.c (emit_conditional_move): If the preferred op2/op3 operand | |
33819 | order does not result in usable sequence, retry with reversed operand | |
33820 | order. | |
33821 | ||
33822 | PR sanitizer/80403 | |
33823 | PR sanitizer/80404 | |
33824 | PR sanitizer/80405 | |
33825 | * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument | |
33826 | to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use | |
33827 | op0 instead of fold_convert_loc (loc, type, arg0). | |
33828 | ||
33829 | 2017-04-12 Jeff Law <law@redhat.com> | |
33830 | ||
33831 | * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still | |
33832 | has a delay slot in the generated code. | |
33833 | ||
33834 | * config/cris/cris.md (cris_preferred_reload_class): Return | |
33835 | GENNONACR_REGS rather than GENERAL_REGS. | |
33836 | ||
33837 | 2017-04-12 Jakub Jelinek <jakub@redhat.com> | |
33838 | ||
33839 | PR c/80163 | |
33840 | * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND | |
33841 | vs. ZERO_EXTEND based on signedness of treeop0's type rather than | |
33842 | signedness of the result type. | |
33843 | ||
33844 | 2017-04-12 Richard Biener <rguenther@suse.de> | |
33845 | Jeff Law <law@redhat.com> | |
33846 | ||
33847 | PR tree-optimization/80359 | |
33848 | * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not | |
33849 | trim stores to TARGET_MEM_REFs. | |
33850 | ||
33851 | 2017-04-12 Richard Biener <rguenther@suse.de> | |
33852 | ||
33853 | PR tree-optimization/79390 | |
33854 | * gimple-ssa-split-paths.c (is_feasible_trace): Restrict | |
33855 | threading case even more. | |
33856 | ||
33857 | 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org> | |
33858 | ||
33859 | PR target/80382 | |
33860 | * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test | |
33861 | for quad_address_p for TImode, instead of just not indexed_address. | |
33862 | ||
33863 | 2017-04-12 Richard Biener <rguenther@suse.de> | |
33864 | Bernd Edlinger <bernd.edlinger@hotmail.de> | |
33865 | ||
33866 | PR middle-end/79671 | |
33867 | * alias.c (component_uses_parent_alias_set_from): Handle | |
33868 | TYPE_TYPELESS_STORAGE. | |
33869 | (get_alias_set): Likewise. | |
33870 | * tree-core.h (tree_type_common): Add typeless_storage flag. | |
33871 | * tree.h (TYPE_TYPELESS_STORAGE): New macro. | |
33872 | * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE | |
33873 | for types containing members with TYPE_TYPELESS_STORAGE. | |
33874 | (place_field): Likewise. | |
33875 | (layout_type): Likewise for ARRAY_TYPE. | |
33876 | * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE. | |
33877 | * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream | |
33878 | TYPE_TYPELESS_STORAGE. | |
33879 | * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise. | |
33880 | ||
33881 | 2017-04-12 Jakub Jelinek <jakub@redhat.com> | |
33882 | ||
33883 | PR sanitizer/80349 | |
33884 | * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's | |
33885 | first argument to type. | |
33886 | ||
33887 | 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
33888 | ||
33889 | PR target/80376 | |
33890 | PR target/80315 | |
33891 | * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return | |
33892 | CONST0_RTX (mode) rather than const0_rtx where appropriate. | |
33893 | (rs6000_expand_binop_builtin): Likewise. | |
33894 | (rs6000_expand_ternop_builtin): Likewise; also add missing | |
33895 | vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for | |
33896 | vshasigma built-ins. | |
33897 | * doc/extend.texi: Document that vec_xxpermdi's third argument | |
33898 | must be a constant. | |
33899 | ||
33900 | 2017-04-11 Uros Bizjak <ubizjak@gmail.com> | |
33901 | ||
33902 | * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain): | |
33903 | Use shift_const cost parameter when calculating gain of STV shifts. | |
33904 | ||
33905 | 2017-04-11 Vladimir Makarov <vmakarov@redhat.com> | |
33906 | ||
33907 | PR rtl-optimization/70478 | |
33908 | * lra-constraints.c (process_alt_operands): Check memory for | |
33909 | disfavoring memory insn operand. | |
33910 | ||
33911 | 2017-04-11 Jakub Jelinek <jakub@redhat.com> | |
33912 | ||
33913 | PR middle-end/80100 | |
33914 | * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform | |
33915 | left shift in unsigned HOST_WIDE_INT type. | |
33916 | ||
33917 | PR rtl-optimization/80385 | |
33918 | * simplify-rtx.c (simplify_unary_operation_1): Don't transform | |
33919 | (not (neg X)) into (plus X -1) for complex or non-integral modes. | |
33920 | ||
33921 | PR libgomp/80394 | |
33922 | * omp-low.c (scan_omp_task): Don't optimize away empty tasks | |
33923 | if they have any depend clauses. | |
33924 | ||
33925 | 2017-04-11 Martin Liska <mliska@suse.cz> | |
33926 | ||
33927 | PR ipa/80212 | |
33928 | * cgraph.c (cgraph_node::dump): Dump calls_comdat_local. | |
33929 | * ipa-split.c (split_function): Create a local comdat symbol | |
33930 | if caller is in a comdat group. | |
33931 | ||
33932 | 2017-04-11 Martin Liska <mliska@suse.cz> | |
33933 | ||
33934 | PR ipa/80212 | |
33935 | * ipa-cp.c (determine_versionability): Handle calls_comdat_local | |
33936 | flags. | |
33937 | ||
33938 | 2017-04-11 Martin Sebor <msebor@redhat.com> | |
33939 | ||
33940 | PR middle-end/80364 | |
33941 | * gimple-ssa-sprintf.c (get_int_range): Remove second argument and | |
33942 | always use the int type. Use INTEGRAL_TYPE_P() rather than testing | |
33943 | for INTEGER_TYPE. | |
33944 | (directive::set_width, directive::set_precision, format_character): | |
33945 | Adjust. | |
33946 | (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for | |
33947 | INTEGER_TYPE. | |
33948 | ||
33949 | 2017-04-11 Richard Earnshaw <rearnsha@arm.com> | |
33950 | ||
33951 | PR target/80389 | |
33952 | * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch | |
33953 | conflict, set target->arch_name instead of target->cpu_name. | |
33954 | ||
33955 | 2017-04-11 Richard Biener <rguenther@suse.de> | |
33956 | ||
33957 | PR tree-optimization/80374 | |
33958 | * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use | |
33959 | build_zero_cst, remove fold_convertible_p check again. | |
33960 | ||
33961 | 2017-04-11 Martin Liska <mliska@suse.cz> | |
33962 | ||
33963 | PR sanitizer/70878 | |
33964 | * ubsan.c (instrument_object_size): Do not instrument register | |
33965 | variables. | |
33966 | ||
33967 | 2017-04-11 Jakub Jelinek <jakub@redhat.com> | |
33968 | ||
33969 | PR target/80381 | |
33970 | * config/i386/i386-builtin-types.def | |
33971 | (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT, | |
33972 | V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT, | |
33973 | V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT, | |
33974 | V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT, | |
33975 | V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT, | |
33976 | V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT, | |
33977 | V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT, | |
33978 | V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT, | |
33979 | V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT, | |
33980 | V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT, | |
33981 | V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT, | |
33982 | V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT, | |
33983 | V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT, | |
33984 | V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT, | |
33985 | V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT, | |
33986 | V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT, | |
33987 | V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT, | |
33988 | V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases. | |
33989 | * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask, | |
33990 | __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask, | |
33991 | __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask, | |
33992 | __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask, | |
33993 | __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask, | |
33994 | __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask, | |
33995 | __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask, | |
33996 | __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask, | |
33997 | __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask, | |
33998 | __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask, | |
33999 | __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask, | |
34000 | __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask, | |
34001 | __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask, | |
34002 | __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask, | |
34003 | __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask, | |
34004 | __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask, | |
34005 | __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask, | |
34006 | __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask, | |
34007 | __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask, | |
34008 | __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask, | |
34009 | __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask, | |
34010 | __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask, | |
34011 | __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask, | |
34012 | __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask, | |
34013 | __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask, | |
34014 | __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask, | |
34015 | __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask, | |
34016 | __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type | |
34017 | aliases. | |
34018 | * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count | |
34019 | flag to second_arg_count, handle 4 argument function type _COUNT | |
34020 | aliases, handle second_arg_count on second argument rather than last. | |
34021 | ||
34022 | 2017-04-10 Jeff Law <law@redhat.com> | |
34023 | ||
34024 | PR tree-optimization/80374 | |
34025 | * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to | |
34026 | record anything if we can not convert integer_zero_node to the | |
34027 | desired type. | |
34028 | ||
34029 | 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
34030 | ||
34031 | PR target/80108 | |
34032 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
34033 | Enhance special handling given to the TARGET_P9_MINMAX option in | |
34034 | relation to certain other options. | |
34035 | ||
34036 | 2017-04-10 Bin Cheng <bin.cheng@arm.com> | |
34037 | ||
34038 | PR tree-optimization/80153 | |
34039 | * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and | |
34040 | remove POINTER_PLUS_EXPR's base part directly, rather than through | |
34041 | aff_tree. | |
34042 | ||
34043 | 2017-04-10 Richard Biener <rguenther@suse.de> | |
34044 | Bin Cheng <bin.cheng@arm.com> | |
34045 | ||
34046 | PR tree-optimization/80153 | |
34047 | * tree-affine.c (aff_combination_to_tree): Get base pointer from | |
34048 | the first element of pointer type aff_tree. Build result expr in | |
34049 | aff_tree's type. | |
34050 | (add_elt_to_tree): Convert to type unconditionally. Remove other | |
34051 | fold_convert calls. | |
34052 | * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types. | |
34053 | (rewrite_use_nonlinear_expr): Check invariant using iv information. | |
34054 | ||
34055 | 2017-04-10 Richard Biener <rguenther@suse.de> | |
34056 | ||
34057 | * tree-ssa-structalias.c (find_func_aliases): Properly handle | |
34058 | asm inputs. | |
34059 | ||
34060 | 2017-04-10 Vladimir Makarov <vmakarov@redhat.com> | |
34061 | ||
34062 | PR rtl-optimization/70478 | |
34063 | * lra-constraints.c (curr_small_class_check): New. | |
34064 | (update_and_check_small_class_inputs): New. | |
34065 | (process_alt_operands): Update curr_small_class_check. Disfavor | |
34066 | alternative insn memory operands. Check available regs for small | |
34067 | class operands. | |
34068 | ||
34069 | 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com> | |
34070 | ||
34071 | PR target/80057 | |
34072 | * config/mips/mips.opt (-mvirt): Update description. | |
34073 | * doc/invoke.texi (-mvirt): Likewise. | |
34074 | ||
34075 | 2017-04-10 Richard Biener <rguenther@suse.de> | |
34076 | ||
34077 | PR middle-end/80362 | |
34078 | * fold-const.c (fold_binary_loc): Look at unstripped ops when | |
34079 | looking for NEGATE_EXPR in -A / -B to A / B folding. | |
34080 | ||
34081 | 2017-04-10 Martin Liska <mliska@suse.cz> | |
34082 | ||
34083 | PR gcov-profile/80224 | |
34084 | * gcov.c (print_usage): Fix usage string. | |
34085 | (get_gcov_intermediate_filename): Remove. | |
34086 | (output_gcov_file): Use both for normal and intermediate format. | |
34087 | (generate_results): Do not initialize special file for | |
34088 | intermediate format. | |
34089 | ||
34090 | 2017-04-10 Richard Biener <rguenther@suse.de> | |
34091 | ||
34092 | PR tree-optimization/80304 | |
34093 | * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse | |
34094 | for safelen. | |
34095 | ||
34096 | 2017-04-10 Nathan Sidwell <nathan@acm.org> | |
34097 | ||
34098 | PR target/79905 | |
34099 | * config/rs6000/rs6000.c (rs6000_vector_type): New. | |
34100 | (rs6000_init_builtins): Use it. | |
34101 | ||
34102 | 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34103 | ||
34104 | * config/arm/arm.md (<mrc>): Add mode to SET source. | |
34105 | (<mrrc>): Likewise. | |
34106 | ||
34107 | 2017-04-10 Richard Biener <rguenther@suse.de> | |
34108 | ||
34109 | PR middle-end/80344 | |
34110 | * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs. | |
34111 | ||
34112 | 2017-04-10 Jakub Jelinek <jakub@redhat.com> | |
34113 | ||
34114 | PR target/80324 | |
34115 | * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32, | |
34116 | _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32, | |
34117 | _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32, | |
34118 | _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32, | |
34119 | _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32, | |
34120 | _mm512_reduce_max_epi32, _mm512_reduce_min_epu32, | |
34121 | _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32, | |
34122 | _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32, | |
34123 | _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps, | |
34124 | _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps, | |
34125 | _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps, | |
34126 | _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps, | |
34127 | _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64, | |
34128 | _mm512_reduce_and_epi64, _mm512_reduce_or_epi64, | |
34129 | _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64, | |
34130 | _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64, | |
34131 | _mm512_reduce_min_epi64, _mm512_reduce_max_epi64, | |
34132 | _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64, | |
34133 | _mm512_reduce_min_epu64, _mm512_reduce_max_epu64, | |
34134 | _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64, | |
34135 | _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd, | |
34136 | _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd, | |
34137 | _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics. | |
34138 | ||
34139 | 2017-04-08 Vladimir Makarov <vmakarov@redhat.com> | |
34140 | ||
34141 | PR rtl-optimization/70478 | |
34142 | * lra-constraints.c: Reverse the last patch. | |
34143 | ||
34144 | 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org> | |
34145 | ||
34146 | * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME. | |
34147 | Add comment for WCHAR_T. | |
34148 | ||
34149 | 2017-04-08 Martin Liska <mliska@suse.cz> | |
34150 | ||
34151 | Revert: | |
34152 | 2017-04-07 Martin Liska <mliska@suse.cz> | |
34153 | ||
34154 | PR ipa/80212 | |
34155 | * ipa-split.c (split_function): Add function part to a same comdat | |
34156 | group. | |
34157 | ||
34158 | 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
34159 | ||
34160 | PR target/80358 | |
34161 | * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check. | |
34162 | ||
34163 | 2017-04-07 Pat Haugen <pthaugen@us.ibm.com> | |
34164 | ||
34165 | * rs6000/rs6000.c (vec_load_pendulum): Rename... | |
34166 | (vec_pairing): ...to this. | |
34167 | (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns. | |
34168 | (rs6000_sched_init): Adjust for name change. | |
34169 | (struct rs6000_sched_context): Likewise. | |
34170 | (rs6000_init_sched_context): Likewise. | |
34171 | (rs6000_set_sched_context): Likewise. | |
34172 | ||
34173 | 2017-04-07 Jakub Jelinek <jakub@redhat.com> | |
34174 | ||
34175 | PR target/80322 | |
34176 | PR target/80323 | |
34177 | PR target/80325 | |
34178 | PR target/80326 | |
34179 | * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New | |
34180 | intrinsics. | |
34181 | * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int, | |
34182 | _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd, | |
34183 | _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise. | |
34184 | ||
34185 | 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org> | |
34186 | ||
34187 | * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE. | |
34188 | ||
34189 | 2017-04-07 Vladimir Makarov <vmakarov@redhat.com> | |
34190 | ||
34191 | PR rtl-optimization/70703 | |
34192 | * ira-color.c (update_conflict_hard_regno_costs): Use | |
34193 | int64_t instead of HOST_WIDE_INT. | |
34194 | ||
34195 | 2017-04-07 Vladimir Makarov <vmakarov@redhat.com> | |
34196 | ||
34197 | PR rtl-optimization/70478 | |
34198 | * lra-constraints.c (process_alt_operands): Disfavor alternative | |
34199 | insn memory operands. | |
34200 | ||
34201 | 2017-04-07 Jeff Law <law@redhat.com> | |
34202 | ||
34203 | * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a | |
34204 | CALL and NOTE_INSN_CALL_ARG_LOCATION. | |
34205 | ||
34206 | 2017-04-07 Martin Liska <mliska@suse.cz> | |
34207 | ||
34208 | PR target/79889 | |
34209 | * config/aarch64/aarch64.c (aarch64_process_target_attr): | |
34210 | Show error message instead of an ICE. | |
34211 | ||
34212 | 2017-04-07 Martin Liska <mliska@suse.cz> | |
34213 | ||
34214 | PR ipa/80212 | |
34215 | * ipa-split.c (split_function): Add function part to a same comdat | |
34216 | group. | |
34217 | ||
34218 | 2017-04-07 Richard Biener <rguenther@suse.de> | |
34219 | ||
34220 | PR middle-end/80341 | |
34221 | * tree.c (get_unwidened): Also handle ! for_type case for | |
34222 | INTEGER_CSTs. | |
34223 | * convert.c (do_narrow): Split out from ... | |
34224 | (convert_to_integer_1): ... here. Do not pass final truncation | |
34225 | type to get_unwidened for TRUNC_DIV_EXPR. | |
34226 | ||
34227 | 2017-04-07 Richard Biener <rguenther@suse.de> | |
34228 | ||
34229 | * tree-affine.c (wide_int_ext_for_comb): Take type rather | |
34230 | than aff_tree. | |
34231 | (aff_combination_const): Adjust. | |
34232 | (aff_combination_scale): Likewise. | |
34233 | (aff_combination_add_elt): Likewise. | |
34234 | (aff_combination_add_cst): Likewise. | |
34235 | (aff_combination_convert): Likewise. | |
34236 | (add_elt_to_tree): Likewise. Remove unused argument. | |
34237 | (aff_combination_to_tree): Adjust calls to add_elt_to_tree. | |
34238 | ||
34239 | 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
34240 | ||
34241 | * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default | |
34242 | definition. | |
34243 | * config/arm/arm.c (arm_default_short_enums): Use | |
34244 | ARM_DEFAULT_SHORT_ENUMS. | |
34245 | * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define. | |
34246 | ||
34247 | 2017-04-06 Jakub Jelinek <jakub@redhat.com> | |
34248 | ||
34249 | PR debug/80234 | |
34250 | * dwarf2out.c (gen_member_die): Handle C++17 inline static data | |
34251 | members with redundant out-of-class redeclaration. | |
34252 | ||
34253 | 2017-04-06 Uros Bizjak <ubizjak@gmail.com> | |
34254 | ||
34255 | PR target/80286 | |
34256 | * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern. | |
34257 | * config/i386/i386.md (*zero_extendsidi2): | |
34258 | Add (?*x,*x) and (?*v,*v) alternatives. | |
34259 | ||
34260 | 2017-04-06 Uros Bizjak <ubizjak@gmail.com> | |
34261 | ||
34262 | PR target/79733 | |
34263 | * config/i386/i386.c (ix86_expand_builtin) | |
34264 | <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand | |
34265 | mode from insn data. Convert operands to insn operand mode. | |
34266 | Copy operands that don't satisfy insn predicate to a register. | |
34267 | ||
34268 | 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk> | |
34269 | ||
34270 | * config/rs6000/x-aix: Increase memory limit for genautomata on AIX. | |
34271 | Update comments. | |
34272 | ||
34273 | 2017-04-06 Richard Biener <rguenther@suse.de> | |
34274 | ||
34275 | PR tree-optimization/80334 | |
34276 | * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly | |
34277 | preserve alignment of accesses. | |
34278 | ||
34279 | 2017-04-06 Richard Biener <rguenther@suse.de> | |
34280 | ||
34281 | PR tree-optimization/80262 | |
34282 | * tree-sra.c (build_ref_for_offset): Preserve address-space | |
34283 | information. | |
34284 | * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): | |
34285 | Drop useless address-space information on MEM_REF offsets. | |
34286 | ||
34287 | 2017-04-05 Andreas Schwab <schwab@linux-m68k.org> | |
34288 | ||
34289 | * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type. | |
34290 | ||
34291 | 2017-04-05 Vladimir Makarov <vmakarov@redhat.com> | |
34292 | ||
34293 | PR rtl-optimization/70703 | |
34294 | * ira-color.c (update_conflict_hard_regno_costs): Use | |
34295 | HOST_WIDE_INT instead of long. | |
34296 | ||
34297 | 2017-04-05 Uros Bizjak <ubizjak@gmail.com> | |
34298 | ||
34299 | PR target/80298 | |
34300 | * config/i386/mmintrin.h: Add -msse target option when __SSE__ is | |
34301 | not defined for x86_64 target. Add -mmmx target option when __SSE2__ | |
34302 | is not defined. | |
34303 | * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined | |
34304 | for x86_64 target. Handle -m3dnowa option. | |
34305 | ||
34306 | 2017-04-05 Vladimir Makarov <vmakarov@redhat.com> | |
34307 | ||
34308 | PR rtl-optimization/70703 | |
34309 | * ira-color.c (update_costs_from_allocno): Use the smallest mode. | |
34310 | (update_conflict_hard_regno_costs): Use long instead of unsigned | |
34311 | arithmetic for cost calculation. | |
34312 | ||
34313 | 2017-04-05 Jakub Jelinek <jakub@redhat.com> | |
34314 | Bernd Edlinger <bernd.edlinger@hotmail.de> | |
34315 | ||
34316 | PR sanitizer/80308 | |
34317 | * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value | |
34318 | for big endian. | |
34319 | ||
34320 | 2017-04-05 Eric Botcazou <ebotcazou@adacore.com> | |
34321 | ||
34322 | PR target/78002 | |
34323 | * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace | |
34324 | ptr_mode with Pmode throughout. | |
34325 | * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename | |
34326 | into probe_stack_range and use DImode. | |
34327 | ||
34328 | 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
34329 | ||
34330 | PR target/79890 | |
34331 | * config/s390/s390.c (s390_register_info_gprtofpr): Return if | |
34332 | call_eh_return is true. | |
34333 | ||
34334 | 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
34335 | ||
34336 | * config/s390/s390-c.c (s390_resolve_overloaded_builtin): | |
34337 | Initialize last_match_fntype_index. | |
34338 | ||
34339 | 2017-04-05 Jakub Jelinek <jakub@redhat.com> | |
34340 | ||
34341 | PR target/80310 | |
34342 | * tree-nvr.c: Include internal-fn.h. | |
34343 | (pass_return_slot::execute): Ignore internal calls without | |
34344 | direct optab. | |
34345 | ||
34346 | 2017-04-04 Jakub Jelinek <jakub@redhat.com> | |
34347 | Richard Biener <rguenther@suse.de> | |
34348 | ||
34349 | PR c++/80297 | |
34350 | * genmatch.c (capture::gen_transform): For GENERIC unshare_expr | |
34351 | captures used multiple times, except for the last use. | |
34352 | * generic-match-head.c: Include gimplify.h. | |
34353 | ||
34354 | 2017-04-04 Jakub Jelinek <jakub@redhat.com> | |
34355 | ||
34356 | PR tree-optimization/79390 | |
34357 | * target.h (struct noce_if_info): Declare. | |
34358 | * targhooks.h (default_noce_conversion_profitable_p): Declare. | |
34359 | * target.def (noce_conversion_profitable_p): New target hook. | |
34360 | * ifcvt.h (struct noce_if_info): New type, moved from ... | |
34361 | * ifcvt.c (struct noce_if_info): ... here. | |
34362 | (noce_conversion_profitable_p): Renamed to ... | |
34363 | (default_noce_conversion_profitable_p): ... this. No longer | |
34364 | static nor inline. | |
34365 | (noce_try_store_flag_constants, noce_try_addcc, | |
34366 | noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith, | |
34367 | noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p | |
34368 | instead of noce_conversion_profitable_p. | |
34369 | * config/i386/i386.c: Include ifcvt.h. | |
34370 | (ix86_option_override_internal): Don't override | |
34371 | PARAM_MAX_RTL_IF_CONVERSION_INSNS default. | |
34372 | (ix86_noce_conversion_profitable_p): New function. | |
34373 | (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine. | |
34374 | * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment. | |
34375 | * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add. | |
34376 | * doc/tm.texi: Regenerated. | |
34377 | ||
34378 | 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
34379 | ||
34380 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar | |
34381 | correction. | |
34382 | ||
34383 | 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
34384 | ||
34385 | PR target/80307 | |
34386 | * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32 | |
34387 | instructions for small multiply cores. | |
34388 | ||
34389 | 2017-04-04 Jeff Law <law@redhat.com> | |
34390 | ||
34391 | * config/mips/mips.c (mips_multi_add): Zero initialize the newly | |
34392 | added member. | |
34393 | (mips_expand_vec_perm_const): Initialize elements in orig_perm | |
34394 | that are not set by the loop over the elements. | |
34395 | ||
34396 | 2017-04-04 Jakub Jelinek <jakub@redhat.com> | |
34397 | ||
34398 | PR target/80286 | |
34399 | * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar | |
34400 | int mode, convert_modes it to mode as unsigned, otherwise use | |
34401 | lowpart_subreg to mode rather than SImode. | |
34402 | * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>, | |
34403 | ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>): | |
34404 | Use DImode instead of SImode for the shift count operand. | |
34405 | * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3): | |
34406 | Likewise. | |
34407 | ||
34408 | 2017-04-04 Richard Biener <rguenther@suse.de> | |
34409 | ||
34410 | PR middle-end/80281 | |
34411 | * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned | |
34412 | arithmetic done for the negate or the plus. Simplify. | |
34413 | (A - (-B) -> A + B): Likewise. | |
34414 | * fold-const.c (split_tree): Make sure to not negate pointers. | |
34415 | ||
34416 | 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org> | |
34417 | ||
34418 | PR rtl-optimization/60818 | |
34419 | * simplify-rtx.c (simplify_binary_operation_1): Do not replace | |
34420 | a compare of comparisons with the thing compared if this results | |
34421 | in a different machine mode. | |
34422 | ||
34423 | 2017-04-03 Jonathan Wakely <jwakely@redhat.com> | |
34424 | ||
34425 | * alias.c (base_alias_check): Fix typo in comment. | |
34426 | * cgraph.h (class ipa_polymorphic_call_context): Likewise. | |
34427 | * cgraphunit.c (symbol_table::compile): Likewise. | |
34428 | * collect2.c (maybe_run_lto_and_relink): Likewise. | |
34429 | * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise. | |
34430 | * config/avr/avr-arch.h (avr_arch_info_t): Likewise. | |
34431 | * config/avr/avr.c (avr_map_op_t): Likewise. | |
34432 | * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise. | |
34433 | * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise. | |
34434 | * config/epiphany/epiphany.md (movcc): Likewise. | |
34435 | * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise. | |
34436 | * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue): | |
34437 | Likewise. | |
34438 | * config/mips/mips.c (mips_save_restore_reg): Likewise. | |
34439 | * config/rx/rx.c (rx_is_restricted_memory_address): Likewise. | |
34440 | * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise. | |
34441 | * config/sh/sh.c (sh_rtx_costs): Likewise. | |
34442 | * fold-const.c (fold_truth_andor): Likewise. | |
34443 | * genautomata.c (collapse_flag): Likewise. | |
34444 | * gengtype.h (struct type::u::s): Likewise. | |
34445 | * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise. | |
34446 | * input.c (FORMAT_AMOUNT): Likewise. | |
34447 | * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector) | |
34448 | (known_aggs_to_agg_replacement_list): Likewise. | |
34449 | * ipa-inline-analysis.c: Likewise. | |
34450 | * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise. | |
34451 | * ipa-polymorphic-call.c | |
34452 | (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise. | |
34453 | * loop-unroll.c (analyze_insn_to_expand_var): Likewise. | |
34454 | * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos): | |
34455 | Likewise. | |
34456 | * modulo-sched.c (apply_reg_moves): Likewise. | |
34457 | * omp-expand.c (build_omp_regions_1): Likewise. | |
34458 | * trans-mem.c (struct tm_wrapper_hasher): Likewise. | |
34459 | * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise. | |
34460 | * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise. | |
34461 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. | |
34462 | * value-prof.c: Likewise. | |
34463 | * var-tracking.c (val_reset): Likewise. | |
34464 | ||
34465 | 2017-04-03 Richard Biener <rguenther@suse.de> | |
34466 | ||
34467 | PR tree-optimization/80275 | |
34468 | * fold-const.c (split_address_to_core_and_offset): Handle | |
34469 | POINTER_PLUS_EXPR. | |
34470 | ||
34471 | 2017-04-03 Eric Botcazou <ebotcazou@adacore.com> | |
34472 | ||
34473 | * tree-nested.c (get_descriptor_type): Make sure that the alignment of | |
34474 | descriptors is at least equal to that of functions. | |
34475 | ||
34476 | 2017-04-02 Uros Bizjak <ubizjak@gmail.com> | |
34477 | ||
34478 | * config/i386/sse.md (movdi_to_sse): Add missing DONE. | |
34479 | ||
34480 | 2017-04-02 Uros Bizjak <ubizjak@gmail.com> | |
34481 | ||
34482 | PR target/80250 | |
34483 | * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern. | |
34484 | (mov<IMOD4:mode>): New expander. | |
34485 | (*mov<IMOD4:mode>_internal): New insn and split pattern. | |
34486 | ||
34487 | 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org> | |
34488 | ||
34489 | PR rtl-optimization/79405 | |
34490 | * fwprop.c (propagations_left): New variable. | |
34491 | (forward_propagate_into): Decrement it. | |
34492 | (fwprop_init): Initialize it. | |
34493 | (fw_prop): If the variable has reached zero, stop propagating. | |
34494 | (fwprop_addr): Ditto. | |
34495 | ||
34496 | 2017-03-31 Jakub Jelinek <jakub@redhat.com> | |
34497 | ||
34498 | PR debug/79255 | |
34499 | * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is | |
34500 | a FUNCTION_DECL, pass it as decl instead of origin to | |
34501 | process_scope_var. | |
34502 | ||
34503 | 2017-03-31 Alexander Monakov <amonakov@ispras.ru> | |
34504 | ||
34505 | * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format | |
34506 | string. | |
34507 | ||
34508 | 2017-03-31 Pat Haugen <pthaugen@us.ibm.com> | |
34509 | ||
34510 | PR target/80107 | |
34511 | * config/rs6000/rs6000.md (extendhi<mode>2): Add test for | |
34512 | TARGET_VSX_SMALL_INTEGER. | |
34513 | ||
34514 | 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
34515 | ||
34516 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add | |
34517 | reference to the OpenPOWER 64-Bit ELF V2 ABI Specification. | |
34518 | ||
34519 | 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com> | |
34520 | ||
34521 | * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update | |
34522 | extraction from odd-numbered MSA register. | |
34523 | ||
34524 | 2017-03-31 Jakub Jelinek <jakub@redhat.com> | |
34525 | ||
34526 | PR middle-end/80173 | |
34527 | * expmed.c (store_bit_field_1): Don't attempt to create | |
34528 | a word subreg out of hard registers wider than word if they | |
34529 | have HARD_REGNO_NREGS of 1 for their mode. | |
34530 | ||
34531 | PR middle-end/80163 | |
34532 | * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending | |
34533 | conversions to integer types wider than word and pointer. | |
34534 | ||
34535 | PR debug/80025 | |
34536 | * cselib.h (rtx_equal_for_cselib_1): Add depth argument. | |
34537 | (rtx_equal_for_cselib_p): Pass 0 to it. | |
34538 | * cselib.c (cselib_hasher::equal): Likewise. | |
34539 | (rtx_equal_for_cselib_1): Add depth argument. If depth | |
34540 | is 128, don't look up VALUE locs and punt. Increment | |
34541 | depth in recursive calls when walking VALUE locs. | |
34542 | ||
34543 | 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
34544 | ||
34545 | * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes. | |
34546 | (make_gcov_file_name): Use the canonical path name for generating | |
34547 | the MD5 value. | |
34548 | (read_line): Fix handling of files with ascii null bytes. | |
34549 | ||
34550 | 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com> | |
34551 | ||
34552 | * config/mips/mips.c (mips_expand_vector_init): Create a const_vector | |
34553 | to initialise a vector register instead | |
34554 | of using a const_int. | |
34555 | ||
34556 | 2017-03-30 Jakub Jelinek <jakub@redhat.com> | |
34557 | ||
34558 | PR translation/80189 | |
34559 | * gimplify.c (omp_default_clause): Use %qs instead of %s in | |
34560 | diagnostic messages. | |
34561 | ||
34562 | 2017-03-30 Peter Bergner <bergner@vnet.ibm.com> | |
34563 | ||
34564 | PR target/80246 | |
34565 | * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0. | |
34566 | (dfp_diex_<mode>): Update mode of operand 1. | |
34567 | * doc/extend.texi (dxex, dxexq): Document change to return type. | |
34568 | (diex, diexq): Document change to argument type. | |
34569 | ||
34570 | 2017-03-30 Martin Jambor <mjambor@suse.cz> | |
34571 | ||
34572 | PR ipa/77333 | |
34573 | * cgraph.h (cgraph_build_function_type_skip_args): Declare. | |
34574 | * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that | |
34575 | it reflects the signature changes performed at the callee side. | |
34576 | * cgraphclones.c (build_function_type_skip_args): Make public, renamed | |
34577 | to cgraph_build_function_type_skip_args. | |
34578 | (build_function_decl_skip_args): Adjust call to the above function. | |
34579 | ||
34580 | 2017-03-30 Jakub Jelinek <jakub@redhat.com> | |
34581 | ||
34582 | PR target/80206 | |
34583 | * config/i386/sse.md | |
34584 | (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use | |
34585 | register as dest whenever it is a MEM not rtx_equal_p to the | |
34586 | corresponding dup operand, and when forcing into reg move the | |
34587 | reg into the memory afterwards. | |
34588 | (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask): | |
34589 | Likewise. Use <ssehalfvecmode> instead of <ssequartermode> | |
34590 | for the force_reg mode. | |
34591 | (avx512vl_vextractf128<mode>): Use register as dest either | |
34592 | always when a MEM, or when it is a MEM not rtx_equal_p to the | |
34593 | corresponding dup operand, or even not when it is a CONST_VECTOR | |
34594 | depending on the mode and lo vs. hi. | |
34595 | (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous | |
34596 | parens. | |
34597 | (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise. | |
34598 | (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): | |
34599 | Likewise. Require that operands[2] is even. | |
34600 | (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): | |
34601 | Remove extraneous parens. Require that operands[2] is a multiple | |
34602 | of 4. | |
34603 | (vec_extract_lo_<mode><mask_name>): Don't bother testing if | |
34604 | operands[0] is a MEM if <mask_applied>, the predicates/constraints | |
34605 | disallow memory then. | |
34606 | ||
34607 | 2017-03-30 Richard Biener <rguenther@suse.de> | |
34608 | ||
34609 | PR tree-optimization/77498 | |
34610 | * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications | |
34611 | to non-constants over backedges. | |
34612 | ||
34613 | 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org> | |
34614 | ||
34615 | PR rtl-optimization/80233 | |
34616 | * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns | |
34617 | as last_combined_insn. Do not test for BARRIER_P separately. | |
34618 | ||
34619 | 2017-03-29 Andreas Schwab <schwab@suse.de> | |
34620 | ||
34621 | PR ada/80146 | |
34622 | * calls.c (prepare_call_address): Convert funexp to Pmode before | |
34623 | copying to temp reg. | |
34624 | ||
34625 | 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
34626 | ||
34627 | PR tree-optimization/80158 | |
34628 | * gimple-ssa-strength-reduction.c (replace_mult_candidate): | |
34629 | Handle possible future case of more than one alternate | |
34630 | interpretation. | |
34631 | (replace_rhs_if_not_dup): Likewise. | |
34632 | (replace_one_candidate): Likewise. | |
34633 | ||
34634 | 2017-03-28 Vladimir Makarov <vmakarov@redhat.com> | |
34635 | ||
34636 | PR rtl-optimization/80193 | |
34637 | * ira.c (ira): Do not check allocation for LRA. | |
34638 | ||
34639 | 2017-03-28 Alexander Monakov <amonakov@ispras.ru> | |
34640 | ||
34641 | * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare. | |
34642 | (nvptx_output_simt_exit): Declare. | |
34643 | * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use | |
34644 | cfun->machine->unisimt_location. Handle NULL unisimt_predicate. | |
34645 | (init_softstack_frame): Move initialization of crtl->is_leaf to... | |
34646 | (nvptx_declare_function_name): ...here. Emit declaration of local | |
34647 | memory space buffer for omp_simt_enter insn. | |
34648 | (nvptx_output_unisimt_switch): New. | |
34649 | (nvptx_output_softstack_switch): New. | |
34650 | (nvptx_output_simt_enter): New. | |
34651 | (nvptx_output_simt_exit): New. | |
34652 | * config/nvptx/nvptx.h (struct machine_function): New fields | |
34653 | has_simtreg, unisimt_location, simt_stack_size, simt_stack_align. | |
34654 | * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec. | |
34655 | (UNSPECV_SIMT_EXIT): Ditto. | |
34656 | (omp_simt_enter_insn): New insn. | |
34657 | (omp_simt_enter): New expansion. | |
34658 | (omp_simt_exit): New insn. | |
34659 | * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option. | |
34660 | ||
34661 | * internal-fn.c (expand_GOMP_SIMT_ENTER): New. | |
34662 | (expand_GOMP_SIMT_ENTER_ALLOC): New. | |
34663 | (expand_GOMP_SIMT_EXIT): New. | |
34664 | * internal-fn.def (GOMP_SIMT_ENTER): New internal function. | |
34665 | (GOMP_SIMT_ENTER_ALLOC): Ditto. | |
34666 | (GOMP_SIMT_EXIT): Ditto. | |
34667 | * target-insns.def (omp_simt_enter): New insn. | |
34668 | (omp_simt_exit): Ditto. | |
34669 | * omp-low.c (struct omplow_simd_context): New fields simt_eargs, | |
34670 | simt_dlist. | |
34671 | (lower_rec_simd_input_clauses): Implement SIMT privatization. | |
34672 | (lower_rec_input_clauses): Likewise. | |
34673 | (lower_lastprivate_clauses): Handle SIMT privatization. | |
34674 | ||
34675 | * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h. | |
34676 | (ompdevlow_adjust_simt_enter): New. | |
34677 | (find_simtpriv_var_op): New. | |
34678 | (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER, | |
34679 | IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT. | |
34680 | ||
34681 | * tree-inline.h (struct copy_body_data): New field dst_simt_vars. | |
34682 | * tree-inline.c (expand_call_inline): Handle SIMT privatization. | |
34683 | (copy_decl_for_dup_finish): Ditto. | |
34684 | ||
34685 | * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER. | |
34686 | ||
34687 | 2017-03-28 Uros Bizjak <ubizjak@gmail.com> | |
34688 | ||
34689 | PR target/53383 | |
34690 | * config/i386/i386.c (ix86_option_override_internal): Always | |
34691 | allow -mpreferred-stack-boundary=3 for 64-bit targets. | |
34692 | ||
34693 | 2017-03-28 Bin Cheng <bin.cheng@arm.com> | |
34694 | ||
34695 | * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop. | |
34696 | ||
34697 | 2017-03-28 Bin Cheng <bin.cheng@arm.com> | |
34698 | ||
34699 | * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and | |
34700 | mark new edge's irreducible flag accordign to it. | |
34701 | (vect_do_peeling): Check loop preheader edge's irreducible flag | |
34702 | and pass it to function slpeel_add_loop_guard. | |
34703 | ||
34704 | 2017-03-28 Richard Sandiford <richard.sandiford@arm.com> | |
34705 | ||
34706 | PR tree-optimization/80218 | |
34707 | * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): | |
34708 | Update block frequencies and counts. | |
34709 | ||
34710 | 2017-03-28 Richard Biener <rguenther@suse.de> | |
34711 | ||
34712 | PR tree-optimization/78644 | |
34713 | * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value | |
34714 | of a simplification result we may not use it at all. | |
34715 | ||
34716 | 2017-03-28 Richard Biener <rguenther@suse.de> | |
34717 | ||
34718 | PR ipa/80205 | |
34719 | * tree-inline.c (copy_phis_for_bb): Do not create PHI node | |
34720 | without arguments, generate default definition of a SSA name. | |
34721 | ||
34722 | 2017-03-28 Richard Biener <rguenther@suse.de> | |
34723 | ||
34724 | PR middle-end/80222 | |
34725 | * gimple-fold.c (gimple_fold_indirect_ref): Do not touch | |
34726 | TYPE_REF_CAN_ALIAS_ALL references. | |
34727 | * fold-const.c (fold_indirect_ref_1): Likewise. | |
34728 | ||
34729 | 2017-03-28 Martin Liska <mliska@suse.cz> | |
34730 | ||
34731 | PR ipa/80104 | |
34732 | * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a | |
34733 | thunk call as DECL_GIMPLE_REG_P when vector or complex type. | |
34734 | ||
34735 | 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com> | |
34736 | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | |
34737 | ||
34738 | * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec. | |
34739 | (EXTRA_SPECS): Define. | |
34740 | (SUBTARGET_EXTRA_SPECS): Likewise. | |
34741 | (SUBTARGET_CPP_SPEC): Likewise. | |
34742 | * config/arc/elf.h (EXTRA_SPECS): Renamed to | |
34743 | SUBTARGET_EXTRA_SPECS. | |
34744 | * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define. | |
34745 | ||
34746 | 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com> | |
34747 | ||
34748 | * config/arc/simdext.md (vst64_insn): Update pattern. | |
34749 | (vld32wh_insn): Likewise. | |
34750 | (vld32wl_insn): Likewise. | |
34751 | (vld64_insn): Likewise. | |
34752 | (vld32_insn): Likewise. | |
34753 | ||
34754 | 2017-03-28 Marek Polacek <polacek@redhat.com> | |
34755 | ||
34756 | PR sanitizer/80067 | |
34757 | * fold-const.c (fold_comparison): Use protected_set_expr_location | |
34758 | instead of SET_EXPR_LOCATION. | |
34759 | ||
34760 | 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de> | |
34761 | ||
34762 | * tree.c (add_expr): Avoid name lookup warning. | |
34763 | ||
34764 | 2017-03-27 Jeff Law <law@redhat.com> | |
34765 | ||
34766 | PR tree-optimization/80216 | |
34767 | * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in | |
34768 | function name. Limit recursion depth. | |
34769 | (record_temporary_equivalences): Corresponding changes. | |
34770 | ||
34771 | 2017-03-27 Jonathan Wakely <jwakely@redhat.com> | |
34772 | ||
34773 | * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is | |
34774 | covered first. | |
34775 | ||
34776 | 2017-03-27 Jakub Jelinek <jakub@redhat.com> | |
34777 | ||
34778 | PR target/80102 | |
34779 | * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related | |
34780 | notes. | |
34781 | * cfgcleanup.c (reg_note_cfa_p): New array. | |
34782 | (insns_have_identical_cfa_notes): New function. | |
34783 | (old_insns_match_p): Don't cross-jump in between /f | |
34784 | and non-/f instructions. If both i1 and i2 are frame related, | |
34785 | verify all CFA notes, their order and content. | |
34786 | ||
34787 | 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> | |
34788 | ||
34789 | PR target/78543 | |
34790 | * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap | |
34791 | HImode and SImode with zero extend to DImode to one insn. | |
34792 | (bswap<mode>2_extenddi): Likewise. | |
34793 | (bswapsi2_extenddi): Likewise. | |
34794 | (bswaphi2_extendsi): Likewise. | |
34795 | (bswaphi2): Combine bswap HImode and SImode into one insn. | |
34796 | Separate memory insns from swapping register. | |
34797 | (bswapsi2): Likewise. | |
34798 | (bswap<mode>2): Likewise. | |
34799 | (bswaphi2_internal): Delete, no longer used. | |
34800 | (bswapsi2_internal): Likewise. | |
34801 | (bswap<mode>2_load): Split bswap HImode/SImode into separate load, | |
34802 | store, and gpr<-gpr swap insns. | |
34803 | (bswap<mode>2_store): Likewise. | |
34804 | (bswaphi2_reg): Register only splitter, combine with the splitter. | |
34805 | (bswaphi2 splitter): Likewise. | |
34806 | (bswapsi2_reg): Likewise. | |
34807 | (bswapsi2 splitter): Likewise. | |
34808 | (bswapdi2): If we have the LDBRX and STDBRX instructions, split | |
34809 | the insns into load, store, and register/register insns. | |
34810 | (bswapdi2_ldbrx): Likewise. | |
34811 | (bswapdi2_load): Likewise. | |
34812 | (bswapdi2_store): Likewise. | |
34813 | (bswapdi2_reg): Likewise. | |
34814 | ||
34815 | 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net> | |
34816 | ||
34817 | * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case. | |
34818 | (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise. | |
34819 | ||
34820 | 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
34821 | ||
34822 | PR target/80103 | |
34823 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and | |
34824 | add comments. | |
34825 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Add | |
34826 | special handling for target option conflicts between dform | |
34827 | options (-mpower9-dform, -mpower9-dform-vector, | |
34828 | -mpower9-dform-scalar) and -mno-direct-move. | |
34829 | ||
34830 | 2017-03-27 Richard Biener <rguenther@suse.de> | |
34831 | ||
34832 | PR tree-optimization/80181 | |
34833 | * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED. | |
34834 | ||
34835 | 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> | |
34836 | ||
34837 | * config/arc/predicates.md (move_double_src_operand): Replace the | |
34838 | call to move_double_src_operand with a call to address_operand. | |
34839 | ||
34840 | 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> | |
34841 | ||
34842 | * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define. | |
34843 | * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise. | |
34844 | * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT. | |
34845 | ||
34846 | 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> | |
34847 | ||
34848 | * config/arc/predicates.md (long_immediate_loadstore_operand): | |
34849 | Consider scaled addresses cases. | |
34850 | ||
34851 | 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com> | |
34852 | ||
34853 | * config/arc/arc.c (arc_epilogue_uses): BLINK should be also | |
34854 | restored when in interrupt. | |
34855 | * config/arc/arc.md (simple_return): ARCv2 rtie instruction | |
34856 | doesn't have delay slot. | |
34857 | ||
34858 | 2017-03-27 Richard Biener <rguenther@suse.de> | |
34859 | ||
34860 | PR ipa/79776 | |
34861 | * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip | |
34862 | inlined thunk clones. | |
34863 | ||
34864 | 2017-03-27 Jakub Jelinek <jakub@redhat.com> | |
34865 | ||
34866 | PR sanitizer/80168 | |
34867 | * asan.c (instrument_derefs): Copy over last operand from | |
34868 | original COMPONENT_REF to the new COMPONENT_REF with | |
34869 | DECL_BIT_FIELD_REPRESENTATIVE. | |
34870 | * ubsan.c (instrument_object_size): Likewise. | |
34871 | ||
34872 | 2017-03-27 Richard Biener <rguenther@suse.de> | |
34873 | ||
34874 | PR tree-optimization/80170 | |
34875 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make | |
34876 | sure DR/SCEV didnt fold in constants we do not see when looking | |
34877 | at the reference base alignment. | |
34878 | ||
34879 | 2017-03-27 Richard Biener <rguenther@suse.de> | |
34880 | ||
34881 | PR middle-end/80171 | |
34882 | * gimple-fold.c (fold_ctor_reference): Properly guard against | |
34883 | NULL return value from canonicalize_constructor_val. | |
34884 | ||
34885 | 2017-03-25 Uros Bizjak <ubizjak@gmail.com> | |
34886 | ||
34887 | PR target/80180 | |
34888 | * config/i386/i386.c (ix86_expand_builtin) | |
34889 | <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between | |
34890 | flags reg setting and flags reg using instructions. | |
34891 | <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg | |
34892 | clobbering instructions to zero extend op2. | |
34893 | ||
34894 | 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com> | |
34895 | ||
34896 | * doc/install.texi (Configuration) <--with-aix-soname>: | |
34897 | Update link to AIX ld. | |
34898 | ||
34899 | 2017-03-25 Bernd Schmidt <bschmidt@redhat.com> | |
34900 | ||
34901 | PR rtl-optimization/80160 | |
34902 | PR rtl-optimization/80159 | |
34903 | * lra-assigns.c (must_not_spill_p): Tighten new test to also take | |
34904 | reg_alternate_class into account. | |
34905 | ||
34906 | 2017-03-24 Vladimir Makarov <vmakarov@redhat.com> | |
34907 | ||
34908 | PR target/80148 | |
34909 | * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos | |
34910 | to consider in curr_insn_transform. | |
34911 | ||
34912 | 2017-03-24 Jakub Jelinek <jakub@redhat.com> | |
34913 | ||
34914 | * genrecog.c (validate_pattern): Add VEC_SELECT validation. | |
34915 | * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits | |
34916 | and emit_mode_inner. | |
34917 | ||
34918 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
34919 | ||
34920 | * config/s390/s390-builtins.def: Add VXE builtins. Add a flags | |
34921 | argument to the overloaded builtin variants. Use the new flag to | |
34922 | deprecate certain builtin variants. | |
34923 | * config/s390/s390-builtin-types.def: Add new builtin types. | |
34924 | * config/s390/s390-builtins.h: Support new flags field for | |
34925 | overloaded builtins. | |
34926 | * config/s390/s390-c.c (OB_DEF_VAR): New flags field. | |
34927 | (s390_macro_to_expand): Enable vector float data type. | |
34928 | (s390_cpu_cpp_builtins_internal): Indicate support of the new | |
34929 | builtins by incrementing the __VEC__ version number. | |
34930 | (s390_expand_overloaded_builtin): Support expansion of vec_xl and | |
34931 | vec_xst. | |
34932 | (s390_resolve_overloaded_builtin): Emit error messages depending | |
34933 | on the builtin flags. | |
34934 | * config/s390/s390.c (s390_expand_builtin): Support additional | |
34935 | flags argument. Change error message to match the messages | |
34936 | emitted in s390-c.c. | |
34937 | * config/s390/s390.md: New UNSPEC_* constants. | |
34938 | (op_type): Add new instruction types. | |
34939 | * config/s390/vecintrin.h: Add new builtins and test data class | |
34940 | constants. | |
34941 | * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF. | |
34942 | (V_HW_4, VEC_HW, VECF_HW): New mode iterators. | |
34943 | (VEC_INEXACT, VEC_NOINEXACT): New constants. | |
34944 | ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>") | |
34945 | ("vec_insert_and_zero<mode>", "vec_mergeh<mode>") | |
34946 | ("vec_mergel<mode>"): V_HW -> VEC_HW. | |
34947 | ||
34948 | ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di") | |
34949 | ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly") | |
34950 | ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64") | |
34951 | ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition. | |
34952 | ||
34953 | ("and_av2df3", "and_cv2df3", "vec_andc_av2df3") | |
34954 | ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3") | |
34955 | ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs") | |
34956 | ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition. | |
34957 | ||
34958 | ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df") | |
34959 | ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df") | |
34960 | ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64") | |
34961 | ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly") | |
34962 | ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc") | |
34963 | ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc") | |
34964 | ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ... | |
34965 | ||
34966 | ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>") | |
34967 | ("vec_scatter_element<V_HW_4:mode>_DI") | |
34968 | ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb") | |
34969 | ("vec_fpint<mode>", "vflls") | |
34970 | ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc") | |
34971 | ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc") | |
34972 | ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc") | |
34973 | ("*vec_cmphe<mode>_cc"): ... these. | |
34974 | ||
34975 | ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding | |
34976 | mode constant instead of magic value. | |
34977 | ||
34978 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
34979 | ||
34980 | * config/s390/s390.c (s390_expand_vec_compare): Support other | |
34981 | vector floating point modes than just V2DF. | |
34982 | (s390_expand_vcond): Likewise. | |
34983 | (s390_hard_regno_mode_ok): Allow SFmode values in VRs. | |
34984 | (s390_cannot_change_mode_class): Prevent mode changes between TF | |
34985 | and V1TF in vector registers. | |
34986 | * config/s390/s390.md (DF, SF): New mode attributes. | |
34987 | ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3") | |
34988 | ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add | |
34989 | SFmode support for VRs. | |
34990 | * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new | |
34991 | vector fp modes. | |
34992 | (VFT, VF_HW): New mode iterators. | |
34993 | (vw, sdx): New mode attributes. | |
34994 | ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2") | |
34995 | ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2") | |
34996 | ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc") | |
34997 | ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df") | |
34998 | ("vec_unorderedv2df"): Adjust the v2df only patterns to support | |
34999 | also the new vector floating point modes. Renaming to ... | |
35000 | ||
35001 | ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3") | |
35002 | ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2") | |
35003 | ("abs<mode>2", "negabs<mode>2", "smax<mode>3") | |
35004 | ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc") | |
35005 | ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>") | |
35006 | ("vec_unordered<mode>"): ... these. | |
35007 | ||
35008 | ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe") | |
35009 | ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf") | |
35010 | ("*vec_extendv2df"): New insn definitions. | |
35011 | ||
35012 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35013 | ||
35014 | * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3") | |
35015 | ("mulditi3_2", "*muldi3_sign"): New patterns. | |
35016 | ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and | |
35017 | rename the pattern definition. | |
35018 | ||
35019 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35020 | ||
35021 | * config/s390/s390.md ("indirect_jump"): Turn insn definition into | |
35022 | expander. | |
35023 | ("*indirect_jump", "*indirect2_jump"): New pattern definitions. | |
35024 | ||
35025 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35026 | ||
35027 | * config/s390/s390.c (s390_expand_vec_init): Use vllezl | |
35028 | instruction if possible. | |
35029 | * config/s390/vector.md (vec_halfnumelts): New mode | |
35030 | attribute. | |
35031 | ("*vec_vllezlf<mode>"): New pattern. | |
35032 | ||
35033 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35034 | ||
35035 | * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2") | |
35036 | ("popcountv4si2", "popcountv2di2"): Rename to ... | |
35037 | ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx") | |
35038 | ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the | |
35039 | condition. | |
35040 | ("popcount<mode>2_vxe"): New pattern. | |
35041 | ||
35042 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35043 | ||
35044 | * common/config/s390/s390-common.c (processor_flags_table): Add | |
35045 | arch12. | |
35046 | * config.gcc: Add arch12. | |
35047 | * config/s390/driver-native.c (s390_host_detect_local_cpu): | |
35048 | Default to arch12 for unknown CPU model numbers. | |
35049 | * config/s390/s390-builtins.def: Add B_VXE builtin flag. | |
35050 | * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust | |
35051 | PROCESSOR_max sanity check. | |
35052 | * config/s390/s390-opts.h (enum processor_type): Add | |
35053 | PROCESSOR_ARCH12. | |
35054 | * config/s390/s390.c (processor_table): Add arch12. | |
35055 | (s390_expand_builtin): Add check for B_VXE flag. | |
35056 | (s390_issue_rate): Add PROCESSOR_ARCH12. | |
35057 | (s390_get_sched_attrmask): Likewise. | |
35058 | (s390_get_unit_mask): Likewise. | |
35059 | (s390_sched_score): Enable z13 scheduling for arch12. | |
35060 | (s390_sched_reorder): Likewise. | |
35061 | (s390_sched_variable_issue): Likewise. | |
35062 | * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and | |
35063 | PF_VXE. | |
35064 | (s390_tune_attr): Use z13 scheduling also for arch12. | |
35065 | (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE) | |
35066 | (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE) | |
35067 | (TARGET_VXE_P): New macros. | |
35068 | * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12 | |
35069 | and vxe to cpu_facility. Add arch12 and vxe to enabled attribute. | |
35070 | * config/s390/s390.opt: Add arch12 as processor_type. | |
35071 | ||
35072 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35073 | ||
35074 | * config/s390/s390.md | |
35075 | ("fixuns_truncdddi2", "fixuns_trunctddi2") | |
35076 | ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ... | |
35077 | ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander. | |
35078 | ||
35079 | ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"): | |
35080 | Rename expanders to ... | |
35081 | ||
35082 | ("fixuns_trunc<BFP:mode><GPR:mode>2_emu") | |
35083 | ("fixuns_truncdddi2_emu"): ... these. | |
35084 | ||
35085 | ("fixuns_trunc<mode>si2_emu"): New expander. | |
35086 | ||
35087 | ("*fixuns_truncdfdi2_z13"): Rename to ... | |
35088 | ("*fixuns_truncdfdi2_vx"): ... this. | |
35089 | ||
35090 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35091 | ||
35092 | * config/s390/2964.md: Remove the single element vector compare | |
35093 | instructions which are no longer used. | |
35094 | * config/s390/s390.c (s390_select_ccmode): Remove handling of | |
35095 | vector CCmodes. | |
35096 | (s390_canonicalize_comparison): Remove handling of DFmode | |
35097 | compares. | |
35098 | (s390_expand_vec_compare_scalar): Remove function. | |
35099 | (s390_emit_compare): Don't call s390_expand_vec_compare_scalar. | |
35100 | * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove | |
35101 | pattern. | |
35102 | ("*cmp<mode>_ccs"): Add wfcdb instruction. | |
35103 | ||
35104 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35105 | ||
35106 | * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a | |
35107 | FP zero. | |
35108 | ("*mov<mode>_64" DD_DF): Remove the vector instructions. These | |
35109 | will anyway by matched by mov<mode>_64dfp. | |
35110 | ||
35111 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35112 | ||
35113 | * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to | |
35114 | vlef/vstef. Add missing operand to vleif. | |
35115 | ||
35116 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35117 | ||
35118 | * config/s390/s390.c (s390_expand_vec_init): Enable vector load | |
35119 | pair for all vector types with 64 bit elements. | |
35120 | * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ... | |
35121 | * config/s390/vector.md (V_HW_64): ... here. | |
35122 | (V_128_NOSINGLE): New mode iterator. | |
35123 | ("vec_init<V_HW:mode>"): Use V_128 as mode iterator. | |
35124 | ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator. | |
35125 | ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions. | |
35126 | ("*vec_load_pairv2di"): Change to ... | |
35127 | ("*vec_load_pair<mode>"): ... this one. | |
35128 | ||
35129 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35130 | ||
35131 | * config/s390/constraints.md: Add comments. | |
35132 | (jKK): Reject element sizes > 8 bytes. | |
35133 | * config/s390/s390.c (s390_split_ok_p): Enable splitting also for | |
35134 | s_operands. | |
35135 | * config/s390/s390.md: Add the s_operand checks formerly in | |
35136 | s390_split_ok_p to various splitters where they are still | |
35137 | required. | |
35138 | * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives | |
35139 | for 128 bit vectors. Plus two splitters. | |
35140 | ||
35141 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35142 | ||
35143 | * config/s390/s390.md: Rename the cpu facilty vec to vx throughout | |
35144 | the file. | |
35145 | ||
35146 | 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35147 | ||
35148 | PR target/79893 | |
35149 | * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an | |
35150 | error if the boundary argument is not constant. | |
35151 | ||
35152 | 2017-03-24 Jakub Jelinek <jakub@redhat.com> | |
35153 | ||
35154 | PR rtl-optimization/80112 | |
35155 | * loop-doloop.c (doloop_condition_get): Don't check condition | |
35156 | if cmp isn't SET with IF_THEN_ELSE src. | |
35157 | ||
35158 | 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
35159 | ||
35160 | PR tree-optimization/80158 | |
35161 | * gimple-ssa-strength-reduction.c (replace_mult_candidate): When | |
35162 | replacing a candidate statement, also replace it for the | |
35163 | candidate's alternate interpretation. | |
35164 | (replace_rhs_if_not_dup): Likewise. | |
35165 | (replace_one_candidate): Likewise. | |
35166 | ||
35167 | 2017-03-24 Richard Biener <rguenther@suse.de> | |
35168 | ||
35169 | PR tree-optimization/80167 | |
35170 | * graphite-isl-ast-to-gimple.c | |
35171 | (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs | |
35172 | properly. | |
35173 | (translate_isl_ast_to_gimple::get_rename): Likewise. | |
35174 | ||
35175 | 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
35176 | ||
35177 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Change | |
35178 | handling of certain combinations of target options, including the | |
35179 | combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs. | |
35180 | -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector. | |
35181 | ||
35182 | 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35183 | ||
35184 | PR target/71436 | |
35185 | * config/arm/arm.md (*load_multiple): Add reload_completed to | |
35186 | matching condition. | |
35187 | ||
35188 | 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
35189 | Richard Biener <rguenth@suse.de> | |
35190 | ||
35191 | PR tree-optimization/79908 | |
35192 | PR tree-optimization/80136 | |
35193 | * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has | |
35194 | been cast away, gimplify_and_add suffices. | |
35195 | ||
35196 | 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de> | |
35197 | ||
35198 | * tree-vrp.c (identify_jump_threads): Delete avail_exprs. | |
35199 | ||
35200 | 2017-03-23 Richard Biener <rguenther@suse.de> | |
35201 | ||
35202 | PR tree-optimization/80032 | |
35203 | * gimplify.c (gimple_push_cleanup): Forced unconditional | |
35204 | cleanups still have to go to the conditional_cleanups | |
35205 | sequence. | |
35206 | ||
35207 | 2017-03-22 Jakub Jelinek <jakub@redhat.com> | |
35208 | ||
35209 | PR tree-optimization/80072 | |
35210 | * tree-ssa-reassoc.c (struct operand_entry): Change id field type | |
35211 | to unsigned int. | |
35212 | (next_operand_entry_id): Change type to unsigned int. | |
35213 | (sort_by_operand_rank): Make sure to return the right return value | |
35214 | even if unsigned fields are bigger than INT_MAX. | |
35215 | (struct oecount): Change cnt and id type to unsigned int. | |
35216 | (oecount_hasher::equal): Formatting fix. | |
35217 | (oecount_cmp): Make sure to return the right return value | |
35218 | even if unsigned fields are bigger than INT_MAX. | |
35219 | (undistribute_ops_list): Change next_oecount_id type to unsigned int. | |
35220 | ||
35221 | PR c++/80129 | |
35222 | * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear | |
35223 | TREE_READONLY on result if writing it more than once. | |
35224 | ||
35225 | PR sanitizer/80110 | |
35226 | * doc/invoke.texi (-fsanitize=thread): Document that with | |
35227 | -fnon-call-exceptions atomics are not able to throw | |
35228 | exceptions. | |
35229 | ||
35230 | PR sanitizer/80110 | |
35231 | * tsan.c: Include tree-eh.h. | |
35232 | (instrument_builtin_call): Call maybe_clean_eh_stmt or | |
35233 | maybe_clean_or_replace_eh_stmt where needed. | |
35234 | (instrument_memory_accesses): Add cfg_changed argument. | |
35235 | Call gimple_purge_dead_eh_edges on each block and set *cfg_changed | |
35236 | if it returned true. | |
35237 | (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed. | |
35238 | ||
35239 | PR rtl-optimization/63191 | |
35240 | * config/i386/i386.c (ix86_delegitimize_address): Turn into small | |
35241 | wrapper function, moved the whole old content into ... | |
35242 | (ix86_delegitimize_address_1): ... this. New inline function. | |
35243 | (ix86_find_base_term): Use ix86_delegitimize_address_1 with | |
35244 | true as last argument instead of ix86_delegitimize_address. | |
35245 | ||
35246 | 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com> | |
35247 | ||
35248 | * config/aarch64/aarch64.c (generic_branch_cost): Copy | |
35249 | cortexa57_branch_cost. | |
35250 | ||
35251 | 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com> | |
35252 | ||
35253 | * config/aarch64/aarch64.c (generic_tunings): Add AES fusion. | |
35254 | ||
35255 | 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
35256 | ||
35257 | PR target/80123 | |
35258 | * doc/md.texi (Constraints): Document wA constraint. | |
35259 | * config/rs6000/constraints.md (wA): New. | |
35260 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class. | |
35261 | (rs6000_init_hard_regno_mode_ok): Init wA constraint. | |
35262 | * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New. | |
35263 | * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint. | |
35264 | ||
35265 | 2017-03-22 Cesar Philippidis <cesar@codesourcery.com> | |
35266 | ||
35267 | PR c++/80029 | |
35268 | * gimplify.c (is_oacc_declared): New function. | |
35269 | (oacc_default_clause): Use it to set default flags for acc declared | |
35270 | variables inside parallel regions. | |
35271 | (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc | |
35272 | declared variables. | |
35273 | (gimplify_oacc_declare): Gimplify the declare clauses. Add the | |
35274 | declare attribute to any decl as necessary. | |
35275 | ||
35276 | 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
35277 | ||
35278 | PR target/80082 | |
35279 | * config/arm/arm-isa.h (isa_bit_lpae): New feature bit. | |
35280 | (ISA_ARMv7ve): Add isa_bit_lpae to the definition. | |
35281 | * config/arm/arm-protos.h (arm_arch7ve): Rename into ... | |
35282 | (arm_arch_lpae): This. | |
35283 | * config/arm/arm.c (arm_arch7ve): Rename into ... | |
35284 | (arm_arch_lpae): This. Define it in term of isa_bit_lpae. | |
35285 | * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of | |
35286 | arm_arch_lpae. | |
35287 | ||
35288 | 2017-03-22 Martin Liska <mliska@suse.cz> | |
35289 | ||
35290 | PR target/79906 | |
35291 | * config/rs6000/rs6000.c (rs6000_inner_target_options): Show | |
35292 | error message instead of an ICE. | |
35293 | ||
35294 | 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
35295 | ||
35296 | * doc/extend.texi (6.11 Additional Floating Types): Revise. | |
35297 | ||
35298 | 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
35299 | ||
35300 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add | |
35301 | comments. | |
35302 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Add | |
35303 | comments. | |
35304 | ||
35305 | 2017-03-21 Martin Sebor <msebor@redhat.com> | |
35306 | ||
35307 | * doc/extend.texi: Use "cannot" instead of "can't." | |
35308 | * doc/hostconfig.texi: Same. | |
35309 | * doc/install.texi: Same. | |
35310 | * doc/invoke.texi: Same. | |
35311 | * doc/loop.texi: Same. | |
35312 | * doc/md.texi: Same. | |
35313 | * doc/objc.texi: Same. | |
35314 | * doc/rtl.texi: Same. | |
35315 | * doc/tm.texi: Same. | |
35316 | * doc/tm.texi.in: Same. | |
35317 | * doc/trouble.texi: Same. | |
35318 | ||
35319 | 2017-03-21 Alexandre Oliva <aoliva@redhat.com> | |
35320 | ||
35321 | PR debug/63238 | |
35322 | * dwarf2out.c (struct checksum_attributes): Add at_alignment. | |
35323 | (collect_checksum_attributes): Set it. | |
35324 | (die_checksum_ordered): Use it. | |
35325 | ||
35326 | 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
35327 | ||
35328 | PR tree-optimization/79908 | |
35329 | * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following | |
35330 | change: For a VA_ARG whose LHS has been cast away, use | |
35331 | force_gimple_operand to construct the side effects. | |
35332 | ||
35333 | 2017-03-21 David Malcolm <dmalcolm@redhat.com> | |
35334 | ||
35335 | PR translation/80001 | |
35336 | * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics | |
35337 | more amenable to translation. | |
35338 | (oacc_loop_auto_partitions): Likewise. | |
35339 | ||
35340 | 2017-03-21 Marek Polacek <polacek@redhat.com> | |
35341 | Martin Sebor <msebor@redhat.com> | |
35342 | ||
35343 | PR tree-optimization/80109 | |
35344 | * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info | |
35345 | on INTEGRAL_TYPE_P. | |
35346 | ||
35347 | 2017-03-21 Jakub Jelinek <jakub@redhat.com> | |
35348 | Segher Boessenkool <segher@kernel.crashing.org> | |
35349 | ||
35350 | PR target/80125 | |
35351 | * combine.c (can_combine_p): Revert the 2017-03-20 change, only | |
35352 | check reg_used_between_p between insn and one of succ or succ2 | |
35353 | depending on if succ is artificial insn not inserted into insn | |
35354 | stream. | |
35355 | ||
35356 | 2017-03-21 Martin Liska <mliska@suse.cz> | |
35357 | ||
35358 | PR gcov-profile/80081 | |
35359 | * Makefile.in: Add gcov-dump and fix installation of gcov-tool. | |
35360 | * doc/gcc.texi: Include gcov-dump stuff. | |
35361 | * doc/gcov-dump.texi: New file. | |
35362 | ||
35363 | 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com> | |
35364 | ||
35365 | PR rtl-optimization/79150 | |
35366 | * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the | |
35367 | conditional jump, if the jump is the last insn of the loop. | |
35368 | ||
35369 | 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
35370 | Richard Biener <rguenth@suse.de> | |
35371 | ||
35372 | PR tree-optimization/79908 | |
35373 | * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has | |
35374 | been cast away, use force_gimple_operand to construct the side | |
35375 | effects. | |
35376 | ||
35377 | 2017-03-21 Martin Liska <mliska@suse.cz> | |
35378 | ||
35379 | PR libfortran/79956 | |
35380 | * simplify-rtx.c (simplify_immed_subreg): Initialize a variable | |
35381 | to NULL. | |
35382 | ||
35383 | 2017-03-21 Brad Spengler <spender@grsecurity.net> | |
35384 | ||
35385 | PR plugins/80094 | |
35386 | * plugin.c (htab_hash_plugin): New function. | |
35387 | (add_new_plugin): Use it and adjust. | |
35388 | (parse_plugin_arg_opt): Adjust. | |
35389 | (init_one_plugin): Likewise. | |
35390 | ||
35391 | 2017-03-21 Richard Biener <rguenther@suse.de> | |
35392 | ||
35393 | PR tree-optimization/80032 | |
35394 | * gimplify.c (gimple_push_cleanup): Add force_uncond parameter, | |
35395 | if set force the cleanup to happen unconditionally. | |
35396 | (gimplify_target_expr): Push inserted clobbers with force_uncond | |
35397 | to avoid them being removed by control-dependent DCE. | |
35398 | ||
35399 | 2017-03-21 Richard Biener <rguenther@suse.de> | |
35400 | ||
35401 | PR tree-optimization/80122 | |
35402 | * tree-inline.c (copy_bb): Do not expans va-arg packs or | |
35403 | va_arg_pack_len when the inlined call stmt requires pack | |
35404 | expansion itself. | |
35405 | * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *. | |
35406 | ||
35407 | 2017-03-21 Jakub Jelinek <jakub@redhat.com> | |
35408 | ||
35409 | PR sanitizer/78158 | |
35410 | * tsan.c (instrument_builtin_call): If the memory model argument | |
35411 | is not a constant, assume it is valid. | |
35412 | ||
35413 | PR c/67338 | |
35414 | * fold-const.c (round_up_loc): Negate divisor in unsigned type to | |
35415 | avoid UB. | |
35416 | ||
35417 | 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org> | |
35418 | ||
35419 | PR rtl-optimization/79910 | |
35420 | * combine.c (can_combine_p): Do not allow combining an I0 or I1 | |
35421 | if its dest is used by an insn before I2 (other than the combined | |
35422 | insns themselves, which are properly handled already). | |
35423 | ||
35424 | 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org> | |
35425 | ||
35426 | Revert: | |
35427 | 2017-03-17 Bernd Schmidt <bschmidt@redhat.com> | |
35428 | ||
35429 | * combine.c (record_used_regs): New static function. | |
35430 | (try_combine): Handle situations where there is an additional | |
35431 | instruction between I2 and I3 which needs to have a LOG_LINK | |
35432 | updated. | |
35433 | ||
35434 | Revert: | |
35435 | 2017-03-17 Jim Wilson <jim.wilson@linaro.org> | |
35436 | ||
35437 | * combine.c (try_combine): Delete redundant i1 test. Call | |
35438 | prev_nonnote_nondebug_insn instead of prev_nonnote_insn. | |
35439 | ||
35440 | 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
35441 | ||
35442 | PR target/80083 | |
35443 | * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for | |
35444 | alternatives 13/14. | |
35445 | ||
35446 | 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
35447 | ||
35448 | PR tree-optimization/80054 | |
35449 | * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail | |
35450 | the optimization if a PHI or any of its arguments is not dominated | |
35451 | by the candidate's basis. Use gphi* rather than gimple* as | |
35452 | appropriate. | |
35453 | (replace_profitable_candidates): Clean up a gimple* variable that | |
35454 | should be a gphi* variable. | |
35455 | ||
35456 | 2017-03-20 Martin Sebor <msebor@redhat.com> | |
35457 | ||
35458 | PR c++/52477 | |
35459 | * doc/extend.texi (attribute constructor): Document present limitation. | |
35460 | ||
35461 | 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
35462 | ||
35463 | PR target/79963 | |
35464 | * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and | |
35465 | __POWER9_VECTOR__ #ifdef control, change template definition to | |
35466 | use Power9-specific built-in function. | |
35467 | (vec_any_eq): Likewise. | |
35468 | * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used | |
35469 | to control outcomes from this test. | |
35470 | (vector_ae_<mode>p): For VEC_F modes, likewise. | |
35471 | ||
35472 | 2017-03-20 Ian Lance Taylor <iant@google.com> | |
35473 | ||
35474 | * config/i386/i386.c (ix86_function_regparm): Save an extra | |
35475 | register for -fsplit-stack with DECL_STATIC_CHAIN. | |
35476 | ||
35477 | 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com> | |
35478 | ||
35479 | PR target/79912 | |
35480 | * config/riscv/riscv.c (riscv_preferred_reload_class): Remove. | |
35481 | (TARGET_PREFERRED_RELOAD_CLASS): Likewise. | |
35482 | ||
35483 | 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com> | |
35484 | ||
35485 | * config/riscv/riscv.c (riscv_print_operand): Use "fence | |
35486 | iorw,ow". | |
35487 | * config/riscv/sync.mc (mem_thread_fence_1): Use "fence | |
35488 | iorw,iorw". | |
35489 | ||
35490 | 2017-03-20 Marek Polacek <polacek@redhat.com> | |
35491 | ||
35492 | PR sanitizer/80063 | |
35493 | * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0). | |
35494 | ||
35495 | 2017-03-20 Richard Biener <rguenther@suse.de> | |
35496 | ||
35497 | PR tree-optimization/80113 | |
35498 | * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not | |
35499 | allocate extra SSA name for PHI def. | |
35500 | (add_close_phis_to_outer_loops): Likewise. | |
35501 | (add_close_phis_to_merge_points): Likewise. | |
35502 | (copy_loop_close_phi_args): Likewise. | |
35503 | (copy_cond_phi_nodes): Likewise. | |
35504 | ||
35505 | 2017-03-20 Martin Liska <mliska@suse.cz> | |
35506 | ||
35507 | PR middle-end/79753 | |
35508 | * tree-chkp.c (chkp_build_returned_bound): Do not build | |
35509 | returned bounds for a LHS that's not a BOUNDED_P type. | |
35510 | ||
35511 | 2017-03-20 Martin Liska <mliska@suse.cz> | |
35512 | ||
35513 | PR target/79769 | |
35514 | PR target/79770 | |
35515 | * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST, | |
35516 | COMPLEX_CST and VECTOR_CST. | |
35517 | ||
35518 | 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
35519 | ||
35520 | PR target/78857 | |
35521 | * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the | |
35522 | target operand. A new splitter adds the clobber statement in case | |
35523 | the target operand is dead anyway. | |
35524 | ||
35525 | 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com> | |
35526 | ||
35527 | * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer | |
35528 | to age-old versions of binutils and glibc. | |
35529 | ||
35530 | 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org> | |
35531 | ||
35532 | * doc/contrib.texi (Contributors): Remove duplicate entry for myself. | |
35533 | ||
35534 | 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com> | |
35535 | ||
35536 | * doc/contrib.texi (Contributors): Add Segher Boessenkool. | |
35537 | ||
35538 | 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com> | |
35539 | ||
35540 | * doc/install.texi (Specific) <arm-*-eabi>: Remove old | |
35541 | requirement for binutils 2.13. | |
35542 | ||
35543 | 2017-03-17 Jim Wilson <jim.wilson@linaro.org> | |
35544 | ||
35545 | * combine.c (try_combine): Delete redundant i1 test. Call | |
35546 | prev_nonnote_nondebug_insn instead of prev_nonnote_insn. | |
35547 | ||
35548 | 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com | |
35549 | ||
35550 | * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf, | |
35551 | riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of | |
35552 | contents. | |
35553 | <riscv64-*-elf>: Re-arrange section | |
35554 | <riscv32-*-elf>: Add a note about requiring binutils 2.28. | |
35555 | <riscv32-*-linux>: Likewise. | |
35556 | <riscv64-*-elf>: Likewise | |
35557 | <riscv64-*-linux>: Likewise. | |
35558 | ||
35559 | 2017-03-17 Richard Earnshaw <rearnsha@arm.com> | |
35560 | ||
35561 | PR target/80052 | |
35562 | * aarch64.opt(verbose-cost-dump): Fix typo. | |
35563 | ||
35564 | 2017-03-17 Pat Haugen <pthaugen@us.ibm.com> | |
35565 | ||
35566 | PR target/79951 | |
35567 | * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test | |
35568 | for VECTOR_UNIT_VSX_P (<MODE>mode) too. | |
35569 | ||
35570 | 2017-03-17 Bernd Schmidt <bschmidt@redhat.com> | |
35571 | ||
35572 | * reload.c (find_reloads): When reloading a nonoffsettable address, | |
35573 | use RELOAD_OTHER for it and its address reloads. | |
35574 | ||
35575 | PR rtl-optimization/79910 | |
35576 | * combine.c (record_used_regs): New static function. | |
35577 | (try_combine): Handle situations where there is an additional | |
35578 | instruction between I2 and I3 which needs to have a LOG_LINK | |
35579 | updated. | |
35580 | ||
35581 | 2017-03-17 Jeff Law <law@redhat.com> | |
35582 | ||
35583 | PR tree-optimization/71437 | |
35584 | * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the | |
35585 | conditional in the hash table first. | |
35586 | (vrp_dom_walker::before_dom_children): Extract condition from | |
35587 | ASSERT_EXPR. Record condition, its inverion and any implied | |
35588 | conditions as well. | |
35589 | ||
35590 | 2017-03-17 Marek Polacek <polacek@redhat.com> | |
35591 | Markus Trippelsdorf <markus@trippelsdorf.de> | |
35592 | ||
35593 | PR tree-optimization/80079 | |
35594 | * gimple-ssa-store-merging.c (class pass_store_merging): Initialize | |
35595 | m_stores_head. | |
35596 | ||
35597 | 2017-03-17 Richard Biener <rguenther@suse.de> | |
35598 | ||
35599 | PR middle-end/80075 | |
35600 | * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns. | |
35601 | Properly verify the LHS before the RHS possibly claims to be | |
35602 | handled. | |
35603 | (stmt_could_throw_p): Hande gimple conds fully here. Clobbers | |
35604 | do not throw. | |
35605 | ||
35606 | 2017-03-17 Martin Jambor <mjambor@suse.cz> | |
35607 | ||
35608 | * doc/invoke.texi (Option Options): Include -fipa-vrp in the list. | |
35609 | (List of -O2 options): Likewise. | |
35610 | (-fipa-bit-cp): Replace "ipa" with "interprocedural." | |
35611 | (-fipa-vrp) New. | |
35612 | ||
35613 | 2017-03-17 Tom de Vries <tom@codesourcery.com> | |
35614 | ||
35615 | * gcov-dump.c (print_usage): Print bug_report_url. | |
35616 | ||
35617 | 2017-03-17 Richard Biener <rguenther@suse.de> | |
35618 | ||
35619 | PR middle-end/80050 | |
35620 | * genmatch.c (parser::next): Remove pointless check for CPP_EOF. | |
35621 | (parser::peek): Likewise. | |
35622 | ||
35623 | 2017-03-17 Richard Biener <rguenther@suse.de> | |
35624 | ||
35625 | PR tree-optimization/80048 | |
35626 | * sese.c (free_sese_info): Properly release rename_map and | |
35627 | copied_bb_map elements. | |
35628 | ||
35629 | 2017-03-16 Alexandre Oliva <aoliva@redhat.com> | |
35630 | ||
35631 | * gimple-ssa-store-merging.c (struct imm_store_chain_info): | |
35632 | Add linked-list forward and backlinks. Insert on | |
35633 | construction, remove on destruction. | |
35634 | (class pass_store_merging): Add m_stores_head field. | |
35635 | (pass_store_merging::terminate_and_process_all_chains): | |
35636 | Iterate over m_stores_head list. | |
35637 | (pass_store_merging::terminate_all_aliasing_chains): | |
35638 | Likewise. | |
35639 | (pass_store_merging::execute): Check for debug stmts first. | |
35640 | Push new chains onto the m_stores_head stack. | |
35641 | ||
35642 | 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com> | |
35643 | ||
35644 | PR target/71294 | |
35645 | * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a | |
35646 | SPLAT operation on ISA 2.07 64-bit systems that have direct move, | |
35647 | but no MTVSRDD support, by doing MTVSRD and XXPERMDI. | |
35648 | ||
35649 | 2017-03-16 Jeff Law <law@redhat.com> | |
35650 | ||
35651 | PR tree-optimization/71437 | |
35652 | * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge | |
35653 | member function. Implementation moved into after_dom_children | |
35654 | member function and into the threader's thread_outgoing_edges | |
35655 | function. | |
35656 | (dom_opt_dom_walker::after_dom_children): Simplify by moving | |
35657 | some code into new thread_outgoing_edges. | |
35658 | * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify | |
35659 | definition. Simplify marker handling (do it here). Assume we always | |
35660 | have the available expression and the const/copies tables. | |
35661 | (thread_outgoing_edges): New function extracted from tree-ssa-dom.c | |
35662 | and tree-vrp.c | |
35663 | * tree-ssa-threadedge.h (thread_outgoing_edges): Declare. | |
35664 | * tree-vrp.c (equiv_stack): No longer file scoped. | |
35665 | (vrp_dom_walker): New class. | |
35666 | (vrp_dom_walker::before_dom_children): New member function. | |
35667 | (vrp_dom_walker::after_dom_children): Likewise. | |
35668 | (identify_jump_threads): Setup domwalker. Use it rather than | |
35669 | walking edges in a random order by hand. Simplify setup/finalization. | |
35670 | (finalize_jump_threads): Remove. | |
35671 | (vrp_finalize): Do not call identify_jump_threads here. | |
35672 | (execute_vrp): Do it here instead and call thread_through_all_blocks | |
35673 | here too. | |
35674 | ||
35675 | PR tree-optimization/71437 | |
35676 | * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All | |
35677 | callers changed. | |
35678 | (simplify_stmt_for_jump_threading): Add basic_block argument. All | |
35679 | callers changed. | |
35680 | (lhs_of_dominating_assert): Moved from here into tree-vrp.c. | |
35681 | (dom_opt_dom_walker::thread_across_edge): Remove | |
35682 | handle_dominating_asserts argument. All callers changed. | |
35683 | (record_temporary_equivalences_from_stmts_at_dest): Corresponding | |
35684 | changes. Remove calls to lhs_of_dominating_assert. Other | |
35685 | uses of handle_dominating_asserts turn into unconditional code | |
35686 | (simplify_control_stmt_condition_1): Likewise. | |
35687 | (simplify_control_stmt_condition): Likewise. | |
35688 | (thread_through_normal_block, thread_across_edge): Likewise. | |
35689 | * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes. | |
35690 | * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original | |
35691 | object if it is not an SSA_NAME. | |
35692 | (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert | |
35693 | before calling into the VRP specific simplifiers. | |
35694 | (identify_jump_threads): Remove handle_dominating_asserts | |
35695 | argument. | |
35696 | ||
35697 | 2017-03-16 Jakub Jelinek <jakub@redhat.com> | |
35698 | ||
35699 | PR fortran/79886 | |
35700 | * tree-diagnostic.c (default_tree_printer): No longer static. | |
35701 | * tree-diagnostic.h (default_tree_printer): New prototype. | |
35702 | ||
35703 | 2017-03-16 Tamar Christina <tamar.christina@arm.com> | |
35704 | ||
35705 | * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>) | |
35706 | Change ins into fmov. | |
35707 | ||
35708 | 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35709 | ||
35710 | * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF. | |
35711 | * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>): | |
35712 | Use h_con constraint for operand 1. | |
35713 | (*aarch64_fnma4_elt_from_dup<mode>): Likewise. | |
35714 | (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2. | |
35715 | ||
35716 | 2017-03-15 Jeff Law <law@redhat.com> | |
35717 | ||
35718 | PR tree-optimization/71437 | |
35719 | * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function. | |
35720 | (record_temporary_equivalences): Use it. | |
35721 | ||
35722 | PR tree-optimization/71437 | |
35723 | * tree-ssa-dom.c (struct cond_equivalence): Moved from here into | |
35724 | tree-ssa-scopedtables. | |
35725 | (lookup_avail_expr, build_and_record_new_cond): Likewise. | |
35726 | (record_conditions, record_cond, vuse_eq): Likewise. | |
35727 | (record_edge_info): Adjust to API tweak of record_conditions. | |
35728 | (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr. | |
35729 | (record_temporary_equivalences, optimize_stmt): Likewise. | |
35730 | (eliminate_redundant_computations): Likewise. | |
35731 | (record_equivalences_from_stmt): Likewise. | |
35732 | * tree-ssa-scopedtables.c: Include options.h and params.h. | |
35733 | (vuse_eq): New function, moved from tree-ssa-dom.c | |
35734 | (build_and_record_new_cond): Likewise. | |
35735 | (record_conditions): Likewise. Accept vector of conditions rather | |
35736 | than edge_equivalence structure for first argument. | |
35737 | for the first argument. | |
35738 | (avail_exprs_stack::lookup_avail_expr): New member function, moved | |
35739 | from tree-ssa-dom.c. | |
35740 | (avail_exprs_stack::record_cond): Likewise. | |
35741 | * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here | |
35742 | from tree-ssa-dom.c. | |
35743 | (avail_exprs_stack): Add new member functions lookup_avail_expr | |
35744 | and record_cond. | |
35745 | (record_conditions): Declare. | |
35746 | ||
35747 | 2017-03-15 Vladimir Makarov <vmakarov@redhat.com> | |
35748 | ||
35749 | PR target/80017 | |
35750 | * lra-constraints.c (process_alt_operands): Increase reject for | |
35751 | reloading an input/output operand. | |
35752 | ||
35753 | 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com> | |
35754 | ||
35755 | PR target/79038 | |
35756 | * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define | |
35757 | insns to convert from signed/unsigned char/short to IEEE 128-bit | |
35758 | floating point. | |
35759 | (floatuns<QHI:mode><IEEE128:mode>2): Likewise. | |
35760 | ||
35761 | 2017-03-15 Uros Bizjak <ubizjak@gmail.com> | |
35762 | ||
35763 | PR target/80019 | |
35764 | * config/i386/i386.c (ix86_vector_duplicate_value): Create | |
35765 | subreg of inner mode for values already in registers. | |
35766 | ||
35767 | 2017-03-15 Bernd Schmidt <bschmidt@redhat.com> | |
35768 | ||
35769 | * config/c6x/c6x.c (hwloop_optimize): Handle case where the old | |
35770 | iteration reg is used after the loop. | |
35771 | ||
35772 | 2017-03-14 Martin Sebor <msebor@redhat.com> | |
35773 | ||
35774 | PR tree-optimization/79800 | |
35775 | * gimple-ssa-sprintf.c (format_floating: Add argument. Handle | |
35776 | precision in negative-positive range. | |
35777 | (format_floating): Call non-const overload with adjusted precision. | |
35778 | ||
35779 | 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com> | |
35780 | ||
35781 | PR target/79947 | |
35782 | * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for | |
35783 | -mpowerpc-gfxopt. | |
35784 | ||
35785 | 2017-03-14 Martin Sebor <msebor@redhat.com> | |
35786 | ||
35787 | PR middle-end/80020 | |
35788 | * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro. | |
35789 | * builtins.def (aligned_alloc): Use it. | |
35790 | ||
35791 | PR c/79936 | |
35792 | * Makefile.in (GTFILES): Add calls.c. | |
35793 | * calls.c: Include "gt-calls.h". | |
35794 | ||
35795 | 2017-03-14 Bernd Schmidt <bschmidt@redhat.com> | |
35796 | ||
35797 | PR rtl-optimization/79728 | |
35798 | * regs.h (struct target_regs): New field | |
35799 | x_contains_allocatable_regs_of_mode. | |
35800 | (contains_allocatable_regs_of_mode): New macro. | |
35801 | * reginfo.c (init_reg_sets_1): Initialize it, and change | |
35802 | contains_reg_of_mode so it includes global regs as well. | |
35803 | * reload.c (push_reload): Use contains_allocatable_regs_of_mode | |
35804 | rather than contains_regs_of_mode. | |
35805 | ||
35806 | 2017-03-14 Martin Liska <mliska@suse.cz> | |
35807 | ||
35808 | * doc/invoke.texi: Document options that can't be combined with | |
35809 | -fcheck-pointer-bounds. | |
35810 | ||
35811 | 2017-03-14 Martin Liska <mliska@suse.cz> | |
35812 | ||
35813 | PR middle-end/79831 | |
35814 | * doc/invoke.texi (-Wchkp): Document the option. | |
35815 | ||
35816 | 2017-03-14 Martin Liska <mliska@suse.cz> | |
35817 | ||
35818 | * Makefile.in: Install gcov-dump. | |
35819 | ||
35820 | 2017-03-14 Martin Liska <mliska@suse.cz> | |
35821 | ||
35822 | * multiple_target.c (expand_target_clones): Bail out for | |
35823 | an invalid attribute. | |
35824 | ||
35825 | 2017-03-14 Richard Biener <rguenther@suse.de> | |
35826 | ||
35827 | * alias.c (struct alias_set_entry): Pack properly. | |
35828 | * cfgloop.h (struct loop): Likewise. | |
35829 | * cse.c (struct set): Likewise. | |
35830 | * ipa-utils.c (struct searchc_env): Likewise. | |
35831 | * loop-invariant.c (struct invariant): Likewise. | |
35832 | * lra-remat.c (struct cand): Likewise. | |
35833 | * recog.c (struct change_t): Likewise. | |
35834 | * rtl.h (struct address_info): Likewise. | |
35835 | * symbol-summary.h (function_summary): Likewise. | |
35836 | * tree-loop-distribution.c (struct partition): Likewise. | |
35837 | * tree-object-size.c (struct object_size_info): Likewise. | |
35838 | * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise. | |
35839 | * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise. | |
35840 | * tree-vect-data-refs.c (struct _vect_peel_info): Likewise. | |
35841 | * tree-vect-slp.c (struct _slp_oprnd_info): Likewise. | |
35842 | * tree-vect-stmts.c (struct simd_call_arg_info): Likewise. | |
35843 | * tree-vectorizer.h (struct _loop_vec_info): Likewise. | |
35844 | (struct _stmt_vec_info): Likewise. | |
35845 | ||
35846 | 2017-03-14 Martin Liska <mliska@suse.cz> | |
35847 | ||
35848 | PR target/79892 | |
35849 | * multiple_target.c (create_dispatcher_calls): Check that | |
35850 | a target can create a function dispatcher. | |
35851 | ||
35852 | 2017-03-14 Martin Liska <mliska@suse.cz> | |
35853 | ||
35854 | PR lto/66295 | |
35855 | * multiple_target.c (expand_target_clones): Drop local.local | |
35856 | flag for default implementation. | |
35857 | ||
35858 | 2017-03-14 Richard Biener <rguenther@suse.de> | |
35859 | ||
35860 | PR tree-optimization/80030 | |
35861 | * tree-vect-stmts.c (vectorizable_store): Plug memleak. | |
35862 | ||
35863 | 2017-03-13 Kito Cheng <kito.cheng@gmail.com> | |
35864 | ||
35865 | * config/riscv/riscv.c (riscv_emit_float_compare>: Use | |
35866 | gcc_fallthrough() instead of __attribute__((fallthrough)); | |
35867 | ||
35868 | 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com> | |
35869 | ||
35870 | * doc/gcc.texi: Remove "up" link to (DIR). | |
35871 | * doc/gccint.texi: Ditto. | |
35872 | ||
35873 | 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com> | |
35874 | ||
35875 | * doc/install.texi (Specific) <avr>: Remove reference to | |
35876 | binutils 2.13. | |
35877 | ||
35878 | 2017-03-13 Jeff Law <law@redhat.com> | |
35879 | ||
35880 | * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru | |
35881 | attribute rather than comments. | |
35882 | ||
35883 | * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to | |
35884 | match_scratch operand is highest. | |
35885 | ||
35886 | 2017-03-13 Martin Liska <mliska@suse.cz> | |
35887 | ||
35888 | PR middle-end/78339 | |
35889 | * ipa-pure-const.c (warn_function_noreturn): If the declarations | |
35890 | is a CHKP clone, use original declaration. | |
35891 | ||
35892 | 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> | |
35893 | ||
35894 | * config/arc/arc.c (arc_init): Use multiplier whenever we have it. | |
35895 | (arc_conditional_register_usage): Use a different allocation order | |
35896 | when optimizing for size. | |
35897 | * common/config/arc/arc-common.c (arc_option_optimization_table): | |
35898 | Section anchors default on when optimizing for size. | |
35899 | ||
35900 | 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> | |
35901 | ||
35902 | * config/arc/arc.md (*tst_bitfield_tst): Fix pattern. | |
35903 | ||
35904 | 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> | |
35905 | ||
35906 | * config/arc/arc.c (arc_output_addsi): Emit code density adds. | |
35907 | * config/arc/arc.md (cpu_facility): Add cd variant. | |
35908 | (*movqi_insn): Add code density variant. | |
35909 | (*movhi_insn): Likewise. | |
35910 | (*movqi_insn): Likewise. | |
35911 | (*addsi3_mixed): Likewise. | |
35912 | (subsi3_insn): Likewise. | |
35913 | ||
35914 | 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> | |
35915 | ||
35916 | * config/arc/arc.md (movsi_cond_exec): Update constraint. | |
35917 | ||
35918 | 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com> | |
35919 | ||
35920 | * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC | |
35921 | expressions with MINUS and UNARY ops. | |
35922 | ||
35923 | 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35924 | ||
35925 | PR target/79911 | |
35926 | * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): | |
35927 | Rename to... | |
35928 | (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch | |
35929 | between vec_select and vector argument. | |
35930 | (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to... | |
35931 | (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise. | |
35932 | (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to... | |
35933 | (vec_sel_widen_usum_lo<mode><V_half>3): ... This. | |
35934 | (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to... | |
35935 | (vec_sel_widen_usum_hi<mode><V_half>3): ... This. | |
35936 | ||
35937 | 2017-03-13 Richard Biener <rguenther@suse.de> | |
35938 | ||
35939 | PR other/79991 | |
35940 | * params.def (vect-max-peeling-for-alignment): Fix typo. | |
35941 | ||
35942 | 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com> | |
35943 | ||
35944 | * doc/install.texi (Specific) <mips-*-*>: Remove description of | |
35945 | issue that only occurred with binutils below 2.18. | |
35946 | ||
35947 | 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com> | |
35948 | ||
35949 | * doc/install.texi (Specific) <cris-axis-elf>: No longer | |
35950 | refer to binutils 2.11/2.12 minimum. | |
35951 | ||
35952 | 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com> | |
35953 | ||
35954 | * doc/install.texi (Specific) <powerpc-*-*>: Remove link to | |
35955 | ftp.kernel.org and simplify binutils requirement. | |
35956 | ||
35957 | 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com> | |
35958 | ||
35959 | * doc/invoke.texi (Warning Options): Fix spelling of link-time | |
35960 | optimization. | |
35961 | (Optimize Options): Ditto. Also remove redundancy. | |
35962 | ||
35963 | 2017-03-10 David Malcolm <dmalcolm@redhat.com> | |
35964 | ||
35965 | PR translation/79848 | |
35966 | * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to | |
35967 | "%qs". | |
35968 | * ipa-pure-const.c (suggest_attribute): Likewise. Convert _ | |
35969 | to G_ to avoid double translation. | |
35970 | ||
35971 | 2017-03-10 David Malcolm <dmalcolm@redhat.com> | |
35972 | ||
35973 | PR translation/79923 | |
35974 | * auto-profile.c (get_combined_location): Convert leading | |
35975 | character of diagnostics to lower case and remove trailing period. | |
35976 | (read_profile): Likewise for various diagnostics. | |
35977 | * config/arm/arm.c (arm_option_override): Remove trailing period | |
35978 | from various diagnostics. | |
35979 | * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise. | |
35980 | (msp430_expand_delay_cycles): Likewise. | |
35981 | ||
35982 | 2017-03-10 David Malcolm <dmalcolm@redhat.com> | |
35983 | ||
35984 | PR target/79925 | |
35985 | * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the | |
35986 | full command-line argument, rather than just "str". | |
35987 | (aarch64_validate_march): Likewise. | |
35988 | (aarch64_validate_mtune): Likewise. | |
35989 | ||
35990 | 2017-03-10 Bernd Schmidt <bschmidt@redhat.com> | |
35991 | ||
35992 | PR rtl-optimization/78911 | |
35993 | * lra-assigns.c (must_not_spill_p): New function. | |
35994 | (spill_for): Use it. | |
35995 | ||
35996 | 2017-03-10 Jakub Jelinek <jakub@redhat.com> | |
35997 | ||
35998 | PR tree-optimization/79981 | |
35999 | * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of | |
36000 | ATOMIC_COMPARE_EXCHANGE ifn result. | |
36001 | (stmt_interesting_for_vrp, vrp_visit_stmt): Handle | |
36002 | IFN_ATOMIC_COMPARE_EXCHANGE. | |
36003 | ||
36004 | 2017-03-10 David Malcolm <dmalcolm@redhat.com> | |
36005 | ||
36006 | PR driver/79875 | |
36007 | * opts.c (parse_sanitizer_options): Add missing question mark to | |
36008 | "did you mean" message. | |
36009 | ||
36010 | 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
36011 | ||
36012 | * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned | |
36013 | built-in. | |
36014 | (VMULEUH_UNS): Likewise. | |
36015 | (VMULOUB_UNS): Likewise. | |
36016 | (VMULOUH_UNS): Likewise. | |
36017 | * config/rs6000/rs6000.c (builtin_function_type): Remove | |
36018 | references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS. | |
36019 | ||
36020 | 2017-03-10 David Malcolm <dmalcolm@redhat.com> | |
36021 | ||
36022 | PR bootstrap/79952 | |
36023 | * read-rtl-function.c (function_reader::read_rtx_operand): Update | |
36024 | x with result of extra_parsing_for_operand_code_0. | |
36025 | (function_reader::extra_parsing_for_operand_code_0): Convert | |
36026 | return type from void to rtx, returning x. When reading | |
36027 | SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the | |
36028 | larger size containing struct block_symbol. | |
36029 | ||
36030 | 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org> | |
36031 | ||
36032 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow | |
36033 | -mfloat128-hardware without -m64. | |
36034 | ||
36035 | 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com> | |
36036 | ||
36037 | PR target/79941 | |
36038 | * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB] | |
36039 | entries to the case statement that marks unsigned arguments to | |
36040 | overloaded functions. | |
36041 | ||
36042 | 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
36043 | ||
36044 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix | |
36045 | two typographic errors in the handling of TARGET_UPPER_REGS_DI. | |
36046 | ||
36047 | 2017-03-10 Pat Haugen <pthaugen@us.ibm.com> | |
36048 | ||
36049 | PR target/79907 | |
36050 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test | |
36051 | TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass. | |
36052 | ||
36053 | 2017-03-10 Martin Liska <mliska@suse.cz> | |
36054 | ||
36055 | PR target/65705 | |
36056 | PR target/69804 | |
36057 | * toplev.c (process_options): Enable MPX with LSAN and UBSAN. | |
36058 | * tree-chkp.c (chkp_walk_pointer_assignments): Verify that | |
36059 | FIELD != NULL. | |
36060 | ||
36061 | 2017-03-10 Olivier Hainque <hainque@adacore.com> | |
36062 | ||
36063 | * tree-switch-conversion (array_value_type): Start by resetting | |
36064 | candidate type to it's main variant. | |
36065 | ||
36066 | 2017-03-10 Jakub Jelinek <jakub@redhat.com> | |
36067 | ||
36068 | PR rtl-optimization/79909 | |
36069 | * combine.c (try_combine): Use simplify_replace_rtx on individual | |
36070 | CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx | |
36071 | of the whole CALL_INSN_FUNCTION_USAGE. | |
36072 | ||
36073 | PR tree-optimization/79972 | |
36074 | * gimple-ssa-warn-alloca.c (alloca_call_type): Only call | |
36075 | get_range_info on SSA_NAMEs. Formatting fixes. | |
36076 | ||
36077 | 2017-03-10 Richard Biener <rguenther@suse.de> | |
36078 | Jakub Jelinek <jakub@redhat.com> | |
36079 | ||
36080 | PR tree-optimization/77975 | |
36081 | * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch | |
36082 | edge to be constant. | |
36083 | (get_val_for): For constant x return it. Formatting fix. | |
36084 | (loop_niter_by_eval): Avoid pointless looping if the next iteration | |
36085 | would use the same bases as the current one. | |
36086 | ||
36087 | 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
36088 | ||
36089 | * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate | |
36090 | instead of vec_select for V1TImode. | |
36091 | * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no | |
36092 | longer needed. | |
36093 | (VSX_LE_128): Add V1TI to this mode iterator. | |
36094 | (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator. | |
36095 | (*vsx_le_perm_store_<mode>): Likewise. | |
36096 | (pre-reload splitter for VSX stores): Likewise. | |
36097 | (post-reload splitter for VSX stores): Likewise. | |
36098 | (*vsx_xxpermdi2_le_<mode>): Likewise. | |
36099 | (*vsx_lxvd2x2_le_<mode>): Likewise. | |
36100 | (*vsx_stxvd2x2_le_<mode>): Likewise. | |
36101 | ||
36102 | 2017-03-09 Michael Eager <eager@eagercon.com> | |
36103 | ||
36104 | Correct failures with --enable-checking=yes,rtl. | |
36105 | ||
36106 | * config/microblaze/microblaze.c (microblaze_expand_shift): | |
36107 | Replace GET_CODE test with CONST_INT_P and INTVAL test with | |
36108 | test for const0_rtx. | |
36109 | * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone, | |
36110 | lshrsi3_byone): Replace INTVAL with test for const1_rtx. | |
36111 | ||
36112 | 2017-03-09 Richard Biener <rguenther@suse.de> | |
36113 | ||
36114 | PR tree-optimization/79977 | |
36115 | * graphite-scop-detection.c (scop_detection::merge_sese): | |
36116 | Handle the case of extra exits to blocks dominating the entry. | |
36117 | ||
36118 | 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com> | |
36119 | ||
36120 | * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): | |
36121 | Document rdynamic. | |
36122 | ||
36123 | 2017-03-09 Vladimir Makarov <vmakarov@redhat.com> | |
36124 | ||
36125 | PR rtl-optimization/79949 | |
36126 | * lra-constraints.c (process_alt_operands): Check memory when | |
36127 | trying to predict a cycle. Print about the overall increase. | |
36128 | ||
36129 | 2017-03-09 Richard Biener <rguenther@suse.de> | |
36130 | ||
36131 | PR middle-end/79971 | |
36132 | * gimple-expr.c (useless_type_conversion_p): Preserve | |
36133 | TYPE_SATURATING for fixed-point types. | |
36134 | ||
36135 | 2017-03-09 Richard Biener <rguenther@suse.de> | |
36136 | ||
36137 | PR ipa/79970 | |
36138 | * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing | |
36139 | alignment of BLKmode params. | |
36140 | ||
36141 | 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
36142 | ||
36143 | PR target/79913 | |
36144 | * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator. | |
36145 | (VALL_NO_V2Q): Likewise. | |
36146 | (VDQF_DF): Delete. | |
36147 | * config/aarch64/aarch64-simd.md | |
36148 | (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q | |
36149 | iterator. | |
36150 | (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use | |
36151 | VALL_NO_V2Q mode iterator. | |
36152 | (*aarch64_vgetfmulx<mode>): Use VDQF iterator. | |
36153 | ||
36154 | 2017-03-09 Martin Liska <mliska@suse.cz> | |
36155 | ||
36156 | PR tree-optimization/79631 | |
36157 | * tree-chkp-opt.c (chkp_is_constant_addr): Call | |
36158 | tree_int_cst_sign_bit just for INTEGER constants. | |
36159 | ||
36160 | 2017-03-09 Martin Liska <mliska@suse.cz> | |
36161 | ||
36162 | PR target/65705 | |
36163 | PR target/69804 | |
36164 | * toplev.c (process_options): Disable -fcheck-pointer-bounds with | |
36165 | sanitizers. | |
36166 | ||
36167 | 2017-03-09 Marek Polacek <polacek@redhat.com> | |
36168 | ||
36169 | PR c++/79672 | |
36170 | * tree.c (inchash::add_expr): Handle TREE_VEC. | |
36171 | ||
36172 | 2017-03-09 Martin Liska <mliska@suse.cz> | |
36173 | ||
36174 | PR ipa/79764 | |
36175 | (chkp_narrow_size_and_offset): New function. | |
36176 | (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF. | |
36177 | (void chkp_parse_bit_field_ref): New function. | |
36178 | (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF. | |
36179 | (chkp_process_stmt): Use chkp_parse_bit_field_ref. | |
36180 | ||
36181 | 2017-03-09 Martin Liska <mliska@suse.cz> | |
36182 | ||
36183 | PR ipa/79761 | |
36184 | * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param. | |
36185 | (chkp_find_bounds_1): Remove gcc_unreachable. | |
36186 | ||
36187 | 2017-03-09 Jakub Jelinek <jakub@redhat.com> | |
36188 | ||
36189 | PR sanitizer/79944 | |
36190 | * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and | |
36191 | BUILT_IN_SYNC*, determine the access type from the size suffix and | |
36192 | always build a MEM_REF with that type. Handle forgotten | |
36193 | BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16. | |
36194 | ||
36195 | PR target/79932 | |
36196 | * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask, | |
36197 | _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask, | |
36198 | _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask, | |
36199 | _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask, | |
36200 | _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask, | |
36201 | _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask, | |
36202 | _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask, | |
36203 | _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask, | |
36204 | _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask, | |
36205 | _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask, | |
36206 | _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask, | |
36207 | _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask, | |
36208 | _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask, | |
36209 | _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask, | |
36210 | _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask, | |
36211 | _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask, | |
36212 | _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask, | |
36213 | _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask, | |
36214 | _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask, | |
36215 | _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask, | |
36216 | _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask, | |
36217 | _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask, | |
36218 | _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask, | |
36219 | _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask, | |
36220 | _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask, | |
36221 | _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask, | |
36222 | _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask, | |
36223 | _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask, | |
36224 | _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask, | |
36225 | _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move | |
36226 | definitions outside of __OPTIMIZE__ guarded section. | |
36227 | ||
36228 | PR target/79932 | |
36229 | * config/i386/avx512bwintrin.h (_mm512_packs_epi32, | |
36230 | _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32, | |
36231 | _mm512_packus_epi32, _mm512_maskz_packus_epi32, | |
36232 | _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__ | |
36233 | guarded section. | |
36234 | ||
36235 | 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
36236 | ||
36237 | * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>") | |
36238 | ("vfenez<mode>"): Add missing constraints. | |
36239 | ||
36240 | 2017-03-08 Martin Sebor <msebor@redhat.com> | |
36241 | ||
36242 | PR target/79928 | |
36243 | * config/nds32/nds32.c (nds32_option_override): | |
36244 | Fix misspelled diagnostic. | |
36245 | ||
36246 | 2017-03-08 Jakub Jelinek <jakub@redhat.com> | |
36247 | ||
36248 | PR c/79940 | |
36249 | * gimplify.c (gimplify_omp_for): Replace index var in outer | |
36250 | taskloop statement with an artificial variable and add | |
36251 | OMP_CLAUSE_PRIVATE clause for it. | |
36252 | ||
36253 | 2017-03-08 Richard Biener <rguenther@suse.de> | |
36254 | ||
36255 | PR tree-optimization/79955 | |
36256 | * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn | |
36257 | for accesses that are completely outside of the variable. | |
36258 | ||
36259 | 2017-03-08 Andrew Haley <aph@redhat.com> | |
36260 | ||
36261 | PR tree-optimization/79943 | |
36262 | * tree-ssa-loop-split.c (compute_new_first_bound): When | |
36263 | calculating the new upper bound, (END-BEG) should be added, not | |
36264 | subtracted. | |
36265 | ||
36266 | 2017-03-08 Jakub Jelinek <jakub@redhat.com> | |
36267 | ||
36268 | * config/avr/avr.md (setmemhi): Make sure match_dup | |
36269 | operand number comes before match_scratch. | |
36270 | ||
36271 | 2017-03-08 Richard Biener <rguenther@suse.de> | |
36272 | ||
36273 | PR tree-optimization/79920 | |
36274 | * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline | |
36275 | with ncopies == 1 to ... | |
36276 | (vect_transform_slp_perm_load): ... here. Properly compute | |
36277 | all element loads by iterating VF times over the group. Do | |
36278 | not handle ncopies (computed in a broken way) in | |
36279 | vect_create_mask_and_perm. | |
36280 | ||
36281 | 2017-03-08 Jakub Jelinek <jakub@redhat.com> | |
36282 | ||
36283 | PR sanitizer/79904 | |
36284 | * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1 | |
36285 | is a uniform vector, use uniform_vector_p return value instead of | |
36286 | building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type. | |
36287 | ||
36288 | 2017-03-07 Marek Polacek <polacek@redhat.com> | |
36289 | ||
36290 | PR middle-end/79809 | |
36291 | * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT. | |
36292 | (alloca_call_type): Likewise. | |
36293 | ||
36294 | 2017-03-07 Martin Liska <mliska@suse.cz> | |
36295 | ||
36296 | * gcov.c (process_args): Put comment to correct location. | |
36297 | ||
36298 | 2017-03-07 Martin Liska <mliska@suse.cz> | |
36299 | ||
36300 | PR middle-end/68270 | |
36301 | * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref. | |
36302 | Use array_at_struct_end_p instead of DECL_CHAIN (field). | |
36303 | (chkp_narrow_bounds_for_field): Likewise. | |
36304 | (chkp_parse_array_and_component_ref): Pass one more argument to | |
36305 | call. | |
36306 | ||
36307 | 2017-03-07 Richard Biener <rguenther@suse.de> | |
36308 | ||
36309 | * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve | |
36310 | preheaders. | |
36311 | ||
36312 | 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org> | |
36313 | ||
36314 | * config/i386/i386.c (ix86_local_alignment): Align most aggregates | |
36315 | of 16 bytes and more to 16 bytes, not those of 16 bits and more. | |
36316 | ||
36317 | 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
36318 | ||
36319 | PR c/79855 | |
36320 | * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop | |
36321 | to end of description. | |
36322 | (PARAM_MAX_STORES_TO_MERGE): Likewise. | |
36323 | ||
36324 | 2017-03-07 Jakub Jelinek <jakub@redhat.com> | |
36325 | ||
36326 | PR rtl-optimization/79901 | |
36327 | * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to | |
36328 | ... | |
36329 | (*avx512f_<code><mode>3<mask_name>): ... this. | |
36330 | (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F | |
36331 | iterator instead of VI8_AVX2_AVX512BW. | |
36332 | ||
36333 | PR rtl-optimization/79901 | |
36334 | * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no | |
36335 | min/max expander, expand it using expand_vec_cond_expr. | |
36336 | ||
36337 | PR sanitizer/79897 | |
36338 | * ubsan.c (ubsan_encode_value): Call mark_addressable on the | |
36339 | temporary. | |
36340 | ||
36341 | 2017-03-06 Jakub Jelinek <jakub@redhat.com> | |
36342 | ||
36343 | PR c++/79821 | |
36344 | * dwarf2out.h (dw_vec_const): Change array type from unsigned char * | |
36345 | to void * for PCH reasons. | |
36346 | * dwarf2out.c (output_loc_operands, output_die): Cast | |
36347 | v.val_vec.array to unsigned char *. | |
36348 | ||
36349 | 2017-03-06 John David Anglin <danglin@gcc.gnu.org> | |
36350 | ||
36351 | PR target/77850 | |
36352 | * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and | |
36353 | vector types. | |
36354 | ||
36355 | 2017-03-06 Vladimir Makarov <vmakarov@redhat.com> | |
36356 | ||
36357 | PR rtl-optimization/79571 | |
36358 | * lra-constraints.c (process_alt_operands): Calculate static | |
36359 | reject and subtract it from overall when only addresses will be | |
36360 | reloaded. | |
36361 | ||
36362 | 2017-03-06 Julia Koval <julia.koval@intel.com> | |
36363 | ||
36364 | PR target/79793 | |
36365 | * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set | |
36366 | incoming stack boundary to 128 for 64-bit targets. | |
36367 | ||
36368 | 2017-03-06 Richard Biener <rguenther@suse.de> | |
36369 | ||
36370 | PR tree-optimization/79894 | |
36371 | * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call | |
36372 | to NULL after folding it. | |
36373 | ||
36374 | 2017-03-06 Richard Biener <rguenther@suse.de> | |
36375 | ||
36376 | PR tree-optimization/79824 | |
36377 | * tree-vect-stmts.c (get_group_load_store_type): Fix alignment | |
36378 | check disabling peeling for gaps. | |
36379 | ||
36380 | 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com> | |
36381 | ||
36382 | * doc/sourcebuild.texi (Effective-Target Keywords, Environment | |
36383 | attributes): Document gettimeofday. | |
36384 | ||
36385 | 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
36386 | ||
36387 | * config/s390/s390.c (s390_option_override_internal): Set | |
36388 | PARAM_MIN_VECT_LOOP_BOUND | |
36389 | ||
36390 | 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
36391 | ||
36392 | * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0. | |
36393 | * config/s390/s390.md: Likewise. | |
36394 | ||
36395 | 2017-03-06 Jakub Jelinek <jakub@redhat.com> | |
36396 | ||
36397 | PR target/79812 | |
36398 | * config/i386/sse.md (VI8F_256_512): Remove mode iterator. | |
36399 | (<avx2_avx512>_perm<mode>): Rename to ... | |
36400 | (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead | |
36401 | of VI8F_256_512. | |
36402 | (<avx512>_perm<mode>_mask): Rename to ... | |
36403 | (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead | |
36404 | of VI8F_256_512. | |
36405 | (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ... | |
36406 | (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator | |
36407 | instead of VI8F_256_512. | |
36408 | (avx512f_perm<mode>): New define_expand. | |
36409 | (avx512f_perm<mode>_mask): Likewise. | |
36410 | (avx512f_perm<mode>_1<mask_name>): New define_insn. | |
36411 | (<avx512>_vec_dup<mode>_1): Fix up vec_select mode. | |
36412 | ||
36413 | 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com> | |
36414 | ||
36415 | * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>, | |
36416 | msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for | |
36417 | if_then_else. | |
36418 | (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'. | |
36419 | ||
36420 | 2017-03-06 Martin Liska <mliska@suse.cz> | |
36421 | ||
36422 | PR sanitize/79783 | |
36423 | * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON | |
36424 | when having a SSA NAME w/o VAR_DECL assigned to it. | |
36425 | ||
36426 | 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com> | |
36427 | ||
36428 | * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d, | |
36429 | msa_dpsub_<su>_d): Fix MODE for vec_select. | |
36430 | ||
36431 | 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com> | |
36432 | ||
36433 | * config/mips/mips.c (mips_gen_const_int_vector): Change type of last | |
36434 | argument. | |
36435 | * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise. | |
36436 | ||
36437 | 2017-03-06 Richard Biener <rguenther@suse.de> | |
36438 | ||
36439 | * lto-streamer.c (lto_check_version): Use %qs in diagnostics. | |
36440 | * plugin.c (register_plugin_info): Likewise. | |
36441 | * tree-chkp.c (chkp_make_static_const_bounds): Likewise. | |
36442 | ||
36443 | 2017-03-05 Jakub Jelinek <jakub@redhat.com> | |
36444 | ||
36445 | * config/i386/sse.md (sse_storehps, sse_storelps, | |
36446 | avx_<castmode><avxsizesuffix>_<castmode>, | |
36447 | avx512f_<castmode><avxsizesuffix>_<castmode>, | |
36448 | avx512f_<castmode><avxsizesuffix>_256<castmode>): Require | |
36449 | in condition that at least one operand is not a MEM. | |
36450 | ||
36451 | 2017-03-03 Jakub Jelinek <jakub@redhat.com> | |
36452 | ||
36453 | PR middle-end/79805 | |
36454 | * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET, | |
36455 | ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove | |
36456 | ECF_NOTHROW. | |
36457 | * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set | |
36458 | gimple_call_nothrow_p flag based on whether original builtin can throw. | |
36459 | If it can, emit following stmts on the fallthrough edge. | |
36460 | * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except | |
36461 | don't create new bb if inserting just debug stmts on the edge, try to | |
36462 | insert them on the fallthru bb or just reset debug stmts. | |
36463 | ||
36464 | 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org> | |
36465 | ||
36466 | PR target/43763 | |
36467 | * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and | |
36468 | restore recog_data (including the operand rtxes inside it) around | |
36469 | the call to get_insn_template. | |
36470 | ||
36471 | 2017-03-03 Martin Sebor <msebor@redhat.com> | |
36472 | ||
36473 | PR tree-optimization/79699 | |
36474 | * context.c (context::~context): Free MPFR caches to avoid | |
36475 | a memory leak on program exit. | |
36476 | ||
36477 | 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
36478 | ||
36479 | * config/aarch64/aarch64.c (aarch64_float_const_representable_p): | |
36480 | Use wide_int::ulow () instead of .elt (0). | |
36481 | ||
36482 | 2017-03-03 Uros Bizjak <ubizjak@gmail.com> | |
36483 | ||
36484 | * config/i386/i386.md (*pushtf): Change *roF constraint to *roC. | |
36485 | (*pushxf): Limit oF constraint to 32bit targets and add oC | |
36486 | constraint for 64bit targets. | |
36487 | (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment. | |
36488 | (*pushdf): Change rmF constraint to rmC. | |
36489 | ||
36490 | 2017-03-03 Martin Liska <mliska@suse.cz> | |
36491 | ||
36492 | * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute): | |
36493 | Remove unused variable. | |
36494 | ||
36495 | 2017-03-03 Jakub Jelinek <jakub@redhat.com> | |
36496 | ||
36497 | PR target/79807 | |
36498 | * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target | |
36499 | is a memory operand, increase num_memory. | |
36500 | (ix86_expand_args_builtin): Likewise. | |
36501 | ||
36502 | 2017-03-03 Jan Hubicka <jh@suse.cz> | |
36503 | ||
36504 | PR lto/79760 | |
36505 | * ipa-devirt.c (maybe_record_node): Properly handle | |
36506 | __cxa_pure_virtual visibility. | |
36507 | ||
36508 | 2017-03-03 Martin Liska <mliska@suse.cz> | |
36509 | ||
36510 | PR tree-optimization/79803 | |
36511 | * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove | |
36512 | assert. | |
36513 | (pass_loop_prefetch::execute): Disabled optimization if an | |
36514 | assumption about L1 cache size is not met. | |
36515 | ||
36516 | 2017-03-03 Martin Liska <mliska@suse.cz> | |
36517 | ||
36518 | PR rtl-optimization/79574 | |
36519 | * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int. | |
36520 | (hash_scan_set): Likewise. | |
36521 | (dump_hash_table): Likewise. | |
36522 | (hoist_code): Likewise. | |
36523 | ||
36524 | 2017-03-03 Richard Biener <rguenther@suse.de> | |
36525 | ||
36526 | * fixed-value.c (fixed_from_string): Restore use of elt (1) | |
36527 | in place of uhigh (). | |
36528 | (fixed_convert_from_real): Likewise. | |
36529 | ||
36530 | 2017-03-03 Uros Bizjak <ubizjak@gmail.com> | |
36531 | ||
36532 | PR target/79514 | |
36533 | * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode. | |
36534 | ||
36535 | 2017-03-03 Richard Biener <rguenther@suse.de> | |
36536 | ||
36537 | PR middle-end/79818 | |
36538 | * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing | |
36539 | TYPE_OVERFLOW_UNDEFINED check. | |
36540 | ||
36541 | 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
36542 | ||
36543 | * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand | |
36544 | numbers. | |
36545 | (vector_ae_<mode>_p): Likewise. | |
36546 | (vector_nez_<mode>_p): Likewise. | |
36547 | (vector_ne_v2di_p): Likewise. | |
36548 | (vector_ae_v2di_p): Likewise. | |
36549 | (vector_ne_<mode>_p): Likewise. | |
36550 | * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand | |
36551 | numbers. | |
36552 | (vsx_tsqrt<mode>2_fe): Likewise. | |
36553 | ||
36554 | 2017-03-02 Uros Bizjak <ubizjak@gmail.com> | |
36555 | ||
36556 | PR target/79514 | |
36557 | * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern. | |
36558 | ||
36559 | 2017-03-02 Jakub Jelinek <jakub@redhat.com> | |
36560 | ||
36561 | PR rtl-optimization/79780 | |
36562 | * cprop.c (one_cprop_pass): When second and further conditional trap | |
36563 | in a single basic block is turned into an unconditional trap, turn it | |
36564 | into a deleted note to avoid RTL verification failures. | |
36565 | ||
36566 | 2017-03-02 Richard Biener <rguenther@suse.de> | |
36567 | ||
36568 | * fold-const.c (const_binop): Use ulow () instead of elt (0). | |
36569 | ||
36570 | 2017-03-02 Richard Biener <rguenther@suse.de> | |
36571 | ||
36572 | PR tree-optimization/79345 | |
36573 | PR c++/42000 | |
36574 | * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit | |
36575 | param and abort the walk, returning -1 if it is hit. | |
36576 | (walk_aliased_vdefs): Take a limit param and pass it on. | |
36577 | * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param, | |
36578 | defaulting to 0 and return a signed int. | |
36579 | * tree-ssa-uninit.c (struct check_defs_data): New struct. | |
36580 | (check_defs): New helper. | |
36581 | (warn_uninitialized_vars): Use walk_aliased_vdefs to warn | |
36582 | about uninitialized memory. | |
36583 | * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid | |
36584 | bogus uninitialized warning. | |
36585 | (fixed_convert_from_real): Likewise. | |
36586 | ||
36587 | 2017-03-02 Bin Cheng <bin.cheng@arm.com> | |
36588 | ||
36589 | PR tree-optimization/66768 | |
36590 | * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr | |
36591 | iv_use if base object can't be determined. | |
36592 | ||
36593 | 2017-03-02 Jakub Jelinek <jakub@redhat.com> | |
36594 | ||
36595 | PR tree-optimization/79345 | |
36596 | * gensupport.h (struct pattern_stats): Add min_scratch_opno field. | |
36597 | * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it. | |
36598 | (get_pattern_stats): Initialize it. | |
36599 | * genemit.c (gen_expand): Verify match_scratch numbers come after | |
36600 | match_operand/match_dup numbers. | |
36601 | * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and | |
36602 | match_scratch numbers. | |
36603 | * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>): | |
36604 | Likewise. | |
36605 | * config/s390/s390.md (trunctdsd2): Likewise. | |
36606 | ||
36607 | 2017-03-02 Richard Biener <rguenther@suse.de> | |
36608 | ||
36609 | * wide-int.h (wide_int_storage::operator=): Implement in terms | |
36610 | of wi::copy. | |
36611 | ||
36612 | 2017-03-02 Richard Biener <rguenther@suse.de> | |
36613 | ||
36614 | PR tree-optimization/79777 | |
36615 | * tree-ssa-pre.c (eliminate_insert): Give up if we simplify | |
36616 | the to insert expression to sth existing. | |
36617 | ||
36618 | 2017-03-01 Martin Sebor <msebor@redhat.com> | |
36619 | ||
36620 | PR middle-end/79692 | |
36621 | * gimple-ssa-sprintf.c | |
36622 | (directive::known_width_and_precision): New function. | |
36623 | (format_integer): Use it. | |
36624 | (get_mpfr_format_length): Consider the full range of precision | |
36625 | when computing %g output with the # flag. Set the likely byte | |
36626 | count to 3 rather than 1 when precision is indeterminate. | |
36627 | (format_floating): Correct the lower bound of precision. | |
36628 | ||
36629 | 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
36630 | ||
36631 | * doc/invoke.texi: Document default code model for 64-bit Linux. | |
36632 | ||
36633 | 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
36634 | ||
36635 | PR target/79752 | |
36636 | * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit | |
36637 | udiv rather than div since input pattern is unsigned. | |
36638 | ||
36639 | 2017-03-01 Uros Bizjak <ubizjak@gmail.com> | |
36640 | ||
36641 | * config/i386/i386.c (print_reg): Warn for values of | |
36642 | unsupported size in integer register. | |
36643 | ||
36644 | 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com> | |
36645 | ||
36646 | PR target/79439 | |
36647 | * config/rs6000/predicates.md (current_file_function_operand): Do | |
36648 | not allow self calls to be local if the function is replaceable. | |
36649 | ||
36650 | 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
36651 | ||
36652 | PR target/79395 | |
36653 | * config/rs6000/altivec.h (vec_ctz and others): Change the | |
36654 | preprocessor macro that controls conditional compilation from | |
36655 | _ARCH_PWR9 to __POWER9_VECTOR__. | |
36656 | (vec_all_ne): Change parameterization of __altivec_scalar_pred | |
36657 | macro expansion under preprocessor #ifdef __POWER9_VECTOR__ | |
36658 | control (instead of _ARCH_PWR9 control) so that template | |
36659 | definition uses power9-specific function. | |
36660 | (vec_any_eq): Likewise. | |
36661 | (vec_all_ne): Change macro definition to use a power9-specific | |
36662 | expansion under #ifdef __POWER9_VECTOR__ control (instead of | |
36663 | _ARCH_PWR9 control). | |
36664 | (vec_any_eq) Likewise. | |
36665 | * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2 | |
36666 | expansion for CMPNEF to remove support for xvcmpnesp instruction. | |
36667 | (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove | |
36668 | support for xvcmpnedp instruction. | |
36669 | (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2 | |
36670 | macro expansion so that Power9 implementation of vec_all_ne does | |
36671 | not use the AltiVec predicate framework. | |
36672 | (VCMPNEH_P): Likewise. | |
36673 | (VCMPNEW_P): Likewise. | |
36674 | (VCMPNED_P): Likewise. | |
36675 | (VCMPNEFP_P): Likewise. | |
36676 | (VCMPNEDP_P): Likewise. | |
36677 | (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change | |
36678 | implementation of vec_any_eq to not use AltiVec predicate | |
36679 | framework. | |
36680 | (VCMPAEH_P): Likewise. | |
36681 | (VCMPAEW_P): Likewise. | |
36682 | (VCMPAED_P): Likewise. | |
36683 | (VCMPAEFP_P): Likewise. | |
36684 | (VCMPAEDP_P): Likewise. | |
36685 | (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with | |
36686 | BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does | |
36687 | not use the AltiVec predicate framework. | |
36688 | (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation | |
36689 | of vec_any_eq to not use AltiVec predicate framework. | |
36690 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add | |
36691 | support for predefined __POWER9_VECTOR__ macro to indicate that | |
36692 | Power9 instruction selection is enabled. | |
36693 | (altivec_overloaded_builtins): Remove extraneous | |
36694 | ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded | |
36695 | function argument types RS6000_BTI_bool_V16QI and | |
36696 | RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE | |
36697 | entry for overloaded function argument types RS6000_BTI_bool_V4SI | |
36698 | andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove | |
36699 | two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to | |
36700 | P9V_BUILTIN_CMPNEF to force use of instructions not specific to | |
36701 | Power9 for implementations of vec_cmpne. Change the signature for | |
36702 | all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function | |
36703 | (representing vec_all_ne) to remove the previously described first | |
36704 | argument of type RS6000_BTI_INTSI, as this was an artifact of | |
36705 | reliance on the AltiVec predicate framework, which is no longer | |
36706 | used in the implementation of these functions. Add | |
36707 | P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq | |
36708 | function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries | |
36709 | since, unlike the AltiVec predicate framework implementation, we | |
36710 | do not share function descriptors between vec_alle and vec_anyeq. | |
36711 | (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the | |
36712 | set of modes that receive special treatment even when | |
36713 | TARGET_P9_VECTOR is true. The special treatment emits code that | |
36714 | does not depend on Power9 instructions. | |
36715 | * config/rs6000/vector.md (vector_ne_<mode>_p): Change this | |
36716 | define_expand to not rely on AltiVec predicate framework. | |
36717 | (vector_ae_<mode>p): New define_expand to represent vec_any_eq | |
36718 | function. | |
36719 | (vector_ne_v2di_p): Change this define_expand to not rely on | |
36720 | AltiVec predicate framework. | |
36721 | (vector_ae_v2di_p): New define_expand to represent vec_any_eq | |
36722 | function. | |
36723 | (vector_ne_<mode>_p): Change this define_expand to not rely on | |
36724 | AltiVec predicate framework. | |
36725 | (vector_ae_<mode>p): New define_expand to represent vec_any_eq | |
36726 | function. | |
36727 | * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I | |
36728 | (V16QI, V8HI, V4SI), correct a typo in the code emitted for this | |
36729 | define_insn pattern. | |
36730 | (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this | |
36731 | define_insn pattern because the xvcmpne<VSs>. instruction is not | |
36732 | supported. | |
36733 | (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs> | |
36734 | instruction is not supported. | |
36735 | ||
36736 | 2017-03-01 Jakub Jelinek <jakub@redhat.com> | |
36737 | ||
36738 | * config/nvptx/nvptx.c: Include intl.h. | |
36739 | ||
36740 | 2017-03-01 Martin Jambor <mjambor@suse.cz> | |
36741 | ||
36742 | PR lto/78140 | |
36743 | * ipa-prop.h (ipa_bits): Removed field known. | |
36744 | (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr | |
36745 | to pointers. Adjusted their comments to warn about their sharing. | |
36746 | (ipcp_transformation_summary): Change bits to a vector of pointers. | |
36747 | (ipa_check_create_edge_args): Moved to ipa-prop.c, declare. | |
36748 | (ipa_get_ipa_bits_for_value): Declare. | |
36749 | * tree-vrp.h (value_range): Mark as GTY((for_user)). | |
36750 | * ipa-prop.c (ipa_bit_ggc_hash_traits): New. | |
36751 | (ipa_bits_hash_table): Likewise. | |
36752 | (ipa_vr_ggc_hash_traits): Likewise. | |
36753 | (ipa_vr_hash_table): Likewise. | |
36754 | (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr | |
36755 | being pointers and vr_known being removed. | |
36756 | (ipa_set_jf_unknown): Likewise. | |
36757 | (ipa_get_ipa_bits_for_value): New function. | |
36758 | (ipa_set_jfunc_bits): Likewise. | |
36759 | (ipa_get_value_range): New overloaded functions. | |
36760 | (ipa_set_jfunc_vr): Likewise. | |
36761 | (ipa_compute_jump_functions_for_edge): Use the above functions to | |
36762 | construct bits and vr parts of jump functions. | |
36763 | (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate | |
36764 | ipa_bits_hash_table and ipa_vr_hash_table if they do not already | |
36765 | exist. | |
36766 | (ipcp_grow_transformations_if_necessary): Also allocate | |
36767 | ipa_bits_hash_table and ipa_vr_hash_table if they do not already | |
36768 | exist. | |
36769 | (ipa_node_params_t::duplicate): Do not copy bits, just pointers to | |
36770 | them. Fix too long lines. | |
36771 | (ipa_write_jump_function): Adjust for bits and m_vr being pointers and | |
36772 | vr_known being removed. | |
36773 | (ipa_read_jump_function): Use new setter functions to construct bits | |
36774 | and vr parts of jump functions or set them to NULL. | |
36775 | (write_ipcp_transformation_info): Adjust for bits being pointers. | |
36776 | (read_ipcp_transformation_info): Likewise. | |
36777 | (ipcp_update_bits): Likewise. Fix excessively long lines a trailing | |
36778 | space. | |
36779 | Include gt-ipa-prop.h. | |
36780 | * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits | |
36781 | being pointers. | |
36782 | (ipcp_store_bits_results): Likewise. | |
36783 | (propagate_vr_across_jump_function): Adjust for m_vr being a pointer. | |
36784 | Do not write to existing jump functions but use a temporary instead. | |
36785 | ||
36786 | 2017-03-01 Jakub Jelinek <jakub@redhat.com> | |
36787 | ||
36788 | PR c++/79681 | |
36789 | * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF, | |
36790 | attempt to use its first operand as BIT_FIELD_REF base. | |
36791 | ||
36792 | 2017-03-01 Richard Biener <rguenther@suse.de> | |
36793 | ||
36794 | PR middle-end/79721 | |
36795 | * tree-chrec.c (chrec_evaluate): Perform computation of Newtons | |
36796 | interpolating formula in wrapping arithmetic. | |
36797 | (chrec_apply): Convert chrec_evaluate return value to wanted type. | |
36798 | ||
36799 | 2017-03-01 Jakub Jelinek <jakub@redhat.com> | |
36800 | ||
36801 | PR tree-optimization/79734 | |
36802 | * tree-vect-generic.c (expand_vector_condition): Optimize | |
36803 | AVX512 vector boolean VEC_COND_EXPRs into bitwise operations. | |
36804 | Handle VEC_COND_EXPR where comparison has different inner width from | |
36805 | type's inner width. | |
36806 | ||
36807 | 2017-02-28 Sandra Loosemore <sandra@codesourcery.com> | |
36808 | ||
36809 | * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation, | |
36810 | markup, and similar issues. Remove @opindex entries for things | |
36811 | that aren't options. Add missing -mmpy-option entries. | |
36812 | ||
36813 | 2017-02-28 Jakub Jelinek <jakub@redhat.com> | |
36814 | ||
36815 | PR tree-optimization/79737 | |
36816 | * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is | |
36817 | a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear | |
36818 | tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1 | |
36819 | instead of byte_size. Formatting fix. | |
36820 | (shift_bytes_in_array_right): Formatting fix. | |
36821 | ||
36822 | 2017-02-28 Eric Botcazou <ebotcazou@adacore.com> | |
36823 | ||
36824 | PR target/79749 | |
36825 | * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing | |
36826 | condition on optimize for the leaf function test. | |
36827 | ||
36828 | 2017-02-28 Martin Liska <mliska@suse.cz> | |
36829 | ||
36830 | PR lto/79625 | |
36831 | * read-rtl-function.c (function_reader::handle_unknown_directive): | |
36832 | Bail out when one uses -flto. | |
36833 | ||
36834 | 2017-02-28 Martin Liska <mliska@suse.cz> | |
36835 | ||
36836 | * common.opt: Replace space with tabular for options of <number> | |
36837 | type. | |
36838 | * config/i386/i386.opt: Show <number> value for | |
36839 | -mlarge-data-threshold. | |
36840 | * opts.c (print_filtered_help): Do not display number in hexadecimal | |
36841 | format. | |
36842 | ||
36843 | 2017-02-28 Martin Liska <mliska@suse.cz> | |
36844 | ||
36845 | * common.opt: Fix --help=option -Q for options which are of | |
36846 | an enum type. | |
36847 | ||
36848 | 2017-02-28 Uros Bizjak <ubizjak@gmail.com> | |
36849 | ||
36850 | * config/i386/i386.c (print_reg): Error out for values | |
36851 | of 8-bit size in invalid integer register. | |
36852 | ||
36853 | 2017-02-28 Martin Sebor <msebor@redhat.com> | |
36854 | ||
36855 | PR tree-optimization/79691 | |
36856 | * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length. | |
36857 | ||
36858 | 2017-02-28 Jakub Jelinek <jakub@redhat.com> | |
36859 | ||
36860 | PR target/79729 | |
36861 | * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace | |
36862 | gcc_unreachable with output_operand_lossage. | |
36863 | ||
36864 | 2017-02-28 Richard Biener <rguenther@suse.de> | |
36865 | ||
36866 | PR tree-optimization/79740 | |
36867 | * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant | |
36868 | inserts. | |
36869 | (visit_nary_op): Insert the nary into the hashtable if we | |
36870 | pattern-matched sth. | |
36871 | * tree-ssa-pre.c (eliminate_insert): Robustify. | |
36872 | ||
36873 | 2017-02-28 Richard Biener <rguenther@suse.de> | |
36874 | ||
36875 | PR middle-end/79731 | |
36876 | * fold-const.c (decode_field_reference): Reject out-of-bound | |
36877 | accesses. | |
36878 | ||
36879 | 2017-02-28 Jakub Jelinek <jakub@redhat.com> | |
36880 | ||
36881 | * config/i386/i386.c: Include intl.h. | |
36882 | (ix86_option_override_internal): Use cond ? G_("...") : G_("...") | |
36883 | instead of just cond ? "..." : "...". | |
36884 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise. | |
36885 | * coverage.c (read_counts_file): Likewise. | |
36886 | * omp-offload.c: Include intl.h. | |
36887 | (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead | |
36888 | of just cond ? "..." : "...". | |
36889 | * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead | |
36890 | of just cond ? "..." : "...". | |
36891 | ||
36892 | 2017-02-28 Richard Earnshaw <rearnsha@arm.com> | |
36893 | ||
36894 | PR target/79742 | |
36895 | * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for' | |
36896 | entry, if present. | |
36897 | * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct | |
36898 | 'tune for' CPU name. | |
36899 | * config/arm/arm-cpu-data.h: Regenerated. | |
36900 | ||
36901 | 2017-02-28 Richard Biener <rguenther@suse.de> | |
36902 | ||
36903 | PR tree-optimization/79732 | |
36904 | * tree-inline.c (expand_call_inline): Do not shadow var. | |
36905 | ||
36906 | 2017-02-28 Richard Biener <rguenther@suse.de> | |
36907 | ||
36908 | PR tree-optimization/79723 | |
36909 | * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve | |
36910 | address-space properly. | |
36911 | ||
36912 | 2017-02-28 Thomas Schwinge <thomas@codesourcery.com> | |
36913 | ||
36914 | * doc/optinfo.texi (Optimization groups): Fix option used for | |
36915 | OPTGROUP_ALL. | |
36916 | * doc/invoke.texi (-fopt-info): Document "omp". | |
36917 | * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC. | |
36918 | (OPTGROUP_ALL): Add OPTGROUP_OMP. | |
36919 | * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP. | |
36920 | * ipa-hsa.c (pass_data_ipa_hsa): Likewise. | |
36921 | * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise. | |
36922 | ||
36923 | * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust | |
36924 | all users. | |
36925 | * dumpfile.c (optgroup_options): Instead of "openmp", associate | |
36926 | OPTGROUP_OMP with "omp". | |
36927 | ||
36928 | 2017-02-27 Pat Haugen <pthaugen@us.ibm.com> | |
36929 | ||
36930 | PR target/79544 | |
36931 | * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD | |
36932 | for arithmetic shift of unsigned V2DI. | |
36933 | ||
36934 | 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com> | |
36935 | ||
36936 | * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and | |
36937 | arc/linux.h headers. | |
36938 | * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove. | |
36939 | (LINK_SPEC): Likewise. | |
36940 | (ARC_TLS_EXTRA_START_SPEC): Likewise. | |
36941 | (EXTRA_SPECS): Likewise. | |
36942 | (STARTFILE_SPEC): Likewise. | |
36943 | (ENDFILE_SPEC): Likewise. | |
36944 | (LIB_SPEC): Likewise. | |
36945 | (TARGET_SDATA_DEFAULT): Likewise. | |
36946 | (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise. | |
36947 | (MULTILIB_DEFAULTS): Likewise. | |
36948 | (DWARF2_UNWIND_INFO): Likewise. | |
36949 | * config/arc/big.h: New file. | |
36950 | * config/arc/elf.h: Likewise. | |
36951 | * config/arc/linux.h: Likewise. | |
36952 | * config/arc/t-uClibc: Remove. | |
36953 | ||
36954 | 2017-02-27 Bin Cheng <bin.cheng@arm.com> | |
36955 | ||
36956 | PR tree-optimization/77536 | |
36957 | * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function. | |
36958 | (tree_transform_and_unroll_loop): Use above function to compute the | |
36959 | estimated niter of unrolled loop and use it when scaling profile. | |
36960 | Also use count info rather than frequency if it's non-zero. | |
36961 | * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration. | |
36962 | * tree-vect-loop.c (scale_profile_for_vect_loop): New function. | |
36963 | (vect_transform_loop): Call above function. | |
36964 | ||
36965 | 2017-02-27 Richard Biener <rguenther@suse.de> | |
36966 | ||
36967 | PR tree-optimization/45397 | |
36968 | * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR. | |
36969 | * tree-ssa-sccvn.c (valueized_wider_op): New helper. | |
36970 | (visit_nary_op): Add pattern matching for CSEing sign-changed | |
36971 | or truncated operations with wider ones. | |
36972 | ||
36973 | 2017-02-27 Richard Biener <rguenther@suse.de> | |
36974 | ||
36975 | PR tree-optimization/79690 | |
36976 | * tree-vect-stmts.c (vectorizable_store): Use vector type | |
36977 | built from the DR with address-space. | |
36978 | ||
36979 | 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com> | |
36980 | ||
36981 | * doc/invoke.texi (Optimize Options): Refine the description | |
36982 | of asan-use-after-return. | |
36983 | ||
36984 | 2017-02-25 Alan Modra <amodra@gmail.com> | |
36985 | ||
36986 | PR rtl-optimization/79584 | |
36987 | * lra-constraints.c (base_to_reg): Reload ad->base, the entire | |
36988 | base, not ad->base_term, the reg within base. Remove assertion | |
36989 | that ad->base == ad->base_term. Replace gen_int_mode using | |
36990 | bogus mode with const0_rtx. | |
36991 | ||
36992 | 2017-02-25 Jakub Jelinek <jakub@redhat.com> | |
36993 | ||
36994 | PR middle-end/79396 | |
36995 | * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle | |
36996 | FMA_EXPR like tcc_binary or tcc_unary. | |
36997 | ||
36998 | * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning. | |
36999 | ||
37000 | PR debug/77589 | |
37001 | * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value | |
37002 | bitfield. | |
37003 | (size_of_loc_descr): Handle DW_OP_GNU_variable_value. | |
37004 | (output_loc_operands): Handle DW_OP_call_ref and | |
37005 | DW_OP_GNU_variable_value. | |
37006 | (struct variable_value_struct): New type. | |
37007 | (struct variable_value_hasher): Likewise. | |
37008 | (variable_value_hash): New variable. | |
37009 | (string_types): Remove. | |
37010 | (copy_loc_descr): New function. | |
37011 | (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr. | |
37012 | (prepend_loc_descr_to_each): New function. | |
37013 | (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each | |
37014 | instead of add_loc_descr_to_each if the first argument is single | |
37015 | location list and the second has multiple. | |
37016 | (resolve_args_picking_1): Handle DW_OP_GNU_variable_value. | |
37017 | (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value | |
37018 | when looking for variable value which doesn't have other location info. | |
37019 | (loc_list_from_tree): Formatting fix. | |
37020 | (gen_array_type_die): Simplify DW_AT_string_length handling. | |
37021 | (adjust_string_types): Remove. | |
37022 | (gen_subprogram_die): Don't call adjust_string_types nor test/set | |
37023 | string_types. Call resolve_variable_values. | |
37024 | (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value. | |
37025 | (resolve_addr_in_expr): Likewise. Add A argument. | |
37026 | (copy_deref_exprloc): Remove deref argument. Adjust for the | |
37027 | original expression being DW_OP_GNU_variable_value with optionally | |
37028 | DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref | |
37029 | optionally after it. | |
37030 | (optimize_string_length): Rework for DW_OP_GNU_variable_value. | |
37031 | (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr | |
37032 | callers. Set remove_AT_byte_size if removing DW_AT_string_length. | |
37033 | (variable_value_hasher::hash, variable_value_hasher::equal): New | |
37034 | methods. | |
37035 | (resolve_variable_value_in_expr, resolve_variable_value, | |
37036 | resolve_variable_values, note_variable_value_in_expr, | |
37037 | note_variable_value): New functions. | |
37038 | (dwarf2out_early_finish): Call note_variable_value on all toplevel | |
37039 | DIEs. | |
37040 | ||
37041 | 2017-02-24 Jakub Jelinek <jakub@redhat.com> | |
37042 | ||
37043 | PR c/79677 | |
37044 | * opts.h (handle_generated_option): Add GENERATED_P argument. | |
37045 | * opts-common.c (handle_option): Adjust function comment. | |
37046 | (handle_generated_option): Add GENERATED_P argument, pass it to | |
37047 | handle_option. | |
37048 | (control_warning_option): Pass false to handle_generated_option | |
37049 | GENERATED_P. | |
37050 | * opts.c (maybe_default_option): Pass true to handle_generated_option | |
37051 | GENERATED_P. | |
37052 | * optc-gen.awk: Likewise. | |
37053 | ||
37054 | 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> | |
37055 | ||
37056 | * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of | |
37057 | a REG, look at the REG it is a SUBREG of. | |
37058 | (splitter for cmpeqsi_t): Ditto. | |
37059 | ||
37060 | 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> | |
37061 | ||
37062 | * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make | |
37063 | the special USEs with the pattern of the insn, not the insn itself. | |
37064 | ||
37065 | 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com> | |
37066 | ||
37067 | PR target/79473 | |
37068 | * doc/invoke.texi: Document -mload-store-pairs. | |
37069 | ||
37070 | 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> | |
37071 | Sandra Loosemore <sandra@codesourcery.com> | |
37072 | ||
37073 | * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the | |
37074 | argument isn't a CONST_INT. | |
37075 | (nios2_alternate_compare_const): Assert op is a CONST_INT. | |
37076 | (nios2_valid_compare_const_p): Assert op is a CONST_INT. | |
37077 | (nios2_validate_compare): Bypass alternate compare logic if *op2 | |
37078 | is not a CONST_INT. | |
37079 | (ldstwm_operation_p): Return false if first_base is not a REG or | |
37080 | if first_offset is not a CONST_INT. | |
37081 | ||
37082 | 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> | |
37083 | ||
37084 | * config/cris/cris.md: Use correct operand in a define_peephole2. | |
37085 | ||
37086 | 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> | |
37087 | ||
37088 | * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL. | |
37089 | ||
37090 | 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org> | |
37091 | ||
37092 | * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of | |
37093 | this_insn if it is an INSN or JUMP_INSN. | |
37094 | (force_offsettable): Look at base, not at addr. | |
37095 | * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL | |
37096 | on things that aren't necessarily CONST_INTs. | |
37097 | ||
37098 | 2017-02-24 Uros Bizjak <ubizjak@gmail.com> | |
37099 | ||
37100 | * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that | |
37101 | -mfpmath=sse is the default also for x86-32 targets with SSE2 | |
37102 | instruction set when @option{-ffast-math} is enabled | |
37103 | ||
37104 | 2017-02-24 Jeff Law <law@redhat.com> | |
37105 | ||
37106 | PR rtl-optimizatoin/79286 | |
37107 | * ira.c (update_equiv_regs): Drop may_trap_p exception to | |
37108 | dominance test. | |
37109 | ||
37110 | 2017-02-24 Richard Biener <rguenther@suse.de> | |
37111 | ||
37112 | PR tree-optimization/79389 | |
37113 | * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip | |
37114 | debug insns. | |
37115 | ||
37116 | 2017-02-24 Aldy Hernandez <aldyh@redhat.com> | |
37117 | ||
37118 | * tree-ssa-loop-niter.c (number_of_iterations_exit): Update | |
37119 | function comment to reflect reality. | |
37120 | (loop_exits_before_overflow): Fix typo in function description. | |
37121 | ||
37122 | 2017-02-24 Richard Biener <rguenther@suse.de> | |
37123 | ||
37124 | PR tree-optimization/79389 | |
37125 | * gimple-ssa-split-paths.c (is_feasible_trace): Verify more | |
37126 | properly that a threading opportunity exists. Detect conditional | |
37127 | copy/constant propagation opportunities. | |
37128 | ||
37129 | 2017-02-23 Eric Botcazou <ebotcazou@adacore.com> | |
37130 | ||
37131 | * config/visium/visium.md (type): Add trap. | |
37132 | (b): New mode attribute. | |
37133 | (*btst): Rename into... | |
37134 | (*btst<mode>): ...this and adjust. | |
37135 | (*cbranchsi4_btst_insn): Rename into... | |
37136 | (*cbranch<mode>4_btst_insn): ...this and adjust. | |
37137 | (trap): New define_insn. | |
37138 | ||
37139 | 2017-02-23 Jakub Jelinek <jakub@redhat.com> | |
37140 | ||
37141 | PR tree-optimization/79389 | |
37142 | * ifcvt.c (struct noce_if_info): Add rev_cond field. | |
37143 | (noce_reversed_cond_code): New function. | |
37144 | (noce_emit_store_flag): Use rev_cond if non-NULL instead of | |
37145 | reversed_comparison_code. Formatting fix. | |
37146 | (noce_try_store_flag): Test rev_cond != NULL in addition to | |
37147 | reversed_comparison_code. | |
37148 | (noce_try_store_flag_constants): Likewise. | |
37149 | (noce_try_store_flag_mask): Likewise. | |
37150 | (noce_try_addcc): Use rev_cond if non-NULL instead of | |
37151 | reversed_comparison_code. | |
37152 | (noce_try_cmove_arith): Likewise. Formatting fixes. | |
37153 | (noce_try_minmax, noce_try_abs): Clear rev_cond. | |
37154 | (noce_find_if_block): Initialize rev_cond. | |
37155 | (find_cond_trap): Call noce_get_condition with then_bb == trap_bb | |
37156 | instead of false as last argument never attempt to reverse it | |
37157 | afterwards. | |
37158 | ||
37159 | 2017-02-23 Bin Cheng <bin.cheng@arm.com> | |
37160 | ||
37161 | PR tree-optimization/79663 | |
37162 | * tree-predcom.c (combine_chains): Process refs in reverse order | |
37163 | only for ZERO length chains, and add explaining comment. | |
37164 | ||
37165 | 2017-02-23 Jeff Law <law@redhat.com> | |
37166 | ||
37167 | PR tree-optimization/79578 | |
37168 | * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF | |
37169 | in call to operand_equal_p. | |
37170 | ||
37171 | 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr> | |
37172 | ||
37173 | PR target/71017 | |
37174 | * config/i386/cpuid.h: Fix another undefined behavior. | |
37175 | ||
37176 | 2017-02-23 Richard Biener <rguenther@suse.de> | |
37177 | ||
37178 | PR tree-optimization/79683 | |
37179 | * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite | |
37180 | vector types for data-refs. | |
37181 | ||
37182 | 2017-02-23 Martin Liska <mliska@suse.cz> | |
37183 | ||
37184 | * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0. | |
37185 | ||
37186 | 2017-02-23 Jakub Jelinek <jakub@redhat.com> | |
37187 | ||
37188 | PR middle-end/79665 | |
37189 | * internal-fn.c (get_range_pos_neg): Moved to ... | |
37190 | * tree.c (get_range_pos_neg): ... here. No longer static. | |
37191 | * tree.h (get_range_pos_neg): New prototype. | |
37192 | * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments | |
37193 | are known to be in between 0 and signed maximum inclusive, try to | |
37194 | expand both unsigned and signed divmod and use the cheaper one from | |
37195 | those. | |
37196 | ||
37197 | 2017-02-22 Jeff Law <law@redhat.com> | |
37198 | ||
37199 | PR tree-optimization/79578 | |
37200 | * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p | |
37201 | to compare base operands. | |
37202 | ||
37203 | 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org> | |
37204 | ||
37205 | PR target/79211 | |
37206 | * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use | |
37207 | gpc_reg_operand instead of fpr_reg_operand. | |
37208 | ||
37209 | 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com> | |
37210 | ||
37211 | * config/mips/mips.c (mips_return_in_memory): Force FP | |
37212 | vector types to be returned in memory for o32 ABI. | |
37213 | ||
37214 | 2017-02-22 Jakub Jelinek <jakub@redhat.com> | |
37215 | ||
37216 | * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable | |
37217 | instead of DW_TAG_member for static data member declarations and don't | |
37218 | set no_linkage_name for static inline data members. | |
37219 | (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable | |
37220 | to DW_TAG_member. | |
37221 | ||
37222 | 2017-02-22 Martin Liska <mliska@suse.cz> | |
37223 | ||
37224 | * doc/invoke.texi: Replace inequality signs with square brackets | |
37225 | for -Wnormalized. | |
37226 | ||
37227 | 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com> | |
37228 | ||
37229 | PR target/78660 | |
37230 | * lra-constraints.c (simplify_operand_subreg): Handle | |
37231 | WORD_REGISTER_OPERATIONS targets. | |
37232 | ||
37233 | 2017-02-22 Jakub Jelinek <jakub@redhat.com> | |
37234 | ||
37235 | PR target/70465 | |
37236 | * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F)) | |
37237 | and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1) | |
37238 | elimination by swapping fld*. | |
37239 | ||
37240 | 2017-02-22 Richard Biener <rguenther@suse.de> | |
37241 | ||
37242 | PR tree-optimization/79673 | |
37243 | * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to | |
37244 | convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off | |
37245 | irrelevant address-space qualifiers and avoiding a | |
37246 | ADDR_SPACE_CONVERT_EXPR from fold_convert. | |
37247 | ||
37248 | 2017-02-22 Richard Biener <rguenther@suse.de> | |
37249 | ||
37250 | PR tree-optimization/79666 | |
37251 | * tree-vrp.c (extract_range_from_binary_expr_1): Make sure | |
37252 | to not symbolically negate if that may introduce undefined | |
37253 | overflow. | |
37254 | ||
37255 | 2017-02-22 Martin Liska <mliska@suse.cz> | |
37256 | ||
37257 | PR lto/79587 | |
37258 | * data-streamer-in.c (streamer_read_gcov_count): Remove assert. | |
37259 | * data-streamer-out.c (streamer_write_gcov_count_stream): | |
37260 | Likewise. | |
37261 | * value-prof.c (stream_out_histogram_value): Make assert more | |
37262 | precise based on type of counter. | |
37263 | ||
37264 | 2017-02-21 Uros Bizjak <ubizjak@gmail.com> | |
37265 | ||
37266 | PR target/79593 | |
37267 | * config/i386/i386.md (standard_x87sse_constant_load splitter): | |
37268 | Use nonimmediate_operand instead of memory_operand for operand 1. | |
37269 | (float-extend standard_x87sse_constant_load splitter): Ditto. | |
37270 | ||
37271 | 2017-02-21 Jeff Law <law@redhat.com> | |
37272 | ||
37273 | PR tree-optimization/79621 | |
37274 | * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore | |
37275 | blocks with edges to themselves. | |
37276 | ||
37277 | 2017-02-21 Jakub Jelinek <jakub@redhat.com> | |
37278 | ||
37279 | PR target/79633 | |
37280 | * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use | |
37281 | is_gimple_call instead of comparing gimple_code with GIMPLE_CALL. | |
37282 | Use gimple_call_builtin_p. | |
37283 | ||
37284 | PR target/79570 | |
37285 | * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head | |
37286 | on temporarily removed DEBUG_INSNs. | |
37287 | ||
37288 | PR tree-optimization/79649 | |
37289 | * tree-loop-distribution.c (classify_partition): Give up on | |
37290 | non-generic address space loads/stores. | |
37291 | ||
37292 | 2017-02-21 Aldy Hernandez <aldyh@redhat.com> | |
37293 | ||
37294 | * doc/loop.texi (Loop manipulation): Remove nonexistent | |
37295 | tree_ssa_loop_version from the documentation. | |
37296 | * cfgloopmanip.c (loop_version): Document CONDITION_BB argument. | |
37297 | ||
37298 | 2017-02-21 Jakub Jelinek <jakub@redhat.com> | |
37299 | ||
37300 | PR target/79494 | |
37301 | * config/i386/i386.c (ix86_expand_split_stack_prologue): Call | |
37302 | make_reg_eh_region_note_nothrow_nononlocal on call_insn. | |
37303 | * config/rs6000/rs6000.c: Include except.h. | |
37304 | (rs6000_expand_split_stack_prologue): Call | |
37305 | make_reg_eh_region_note_nothrow_nononlocal on the call insn. | |
37306 | ||
37307 | 2017-02-21 Martin Jambor <mjambor@suse.cz> | |
37308 | ||
37309 | PR lto/79579 | |
37310 | * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges | |
37311 | have been analyzed. | |
37312 | ||
37313 | 2017-02-21 Martin Jambor <mjambor@suse.cz> | |
37314 | ||
37315 | * common.opt (-fipa-cp-alignment): Mark as ignored and preserved | |
37316 | for backward compatibility only. | |
37317 | * doc/invoke.texi (Option Summary): Remove all references to | |
37318 | -fipa-cp-alignment. | |
37319 | ||
37320 | 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com> | |
37321 | ||
37322 | PR target/78660 | |
37323 | Revert: | |
37324 | 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> | |
37325 | ||
37326 | * lra-constraints.c (curr_insn_transform): Handle | |
37327 | WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs. | |
37328 | ||
37329 | 2017-02-21 Martin Liska <mliska@suse.cz> | |
37330 | ||
37331 | * config/i386/i386.opt: Replace -masm-dialect with -masm. | |
37332 | ||
37333 | 2017-02-21 Thomas Schwinge <thomas@codesourcery.com> | |
37334 | ||
37335 | PR translation/79638 | |
37336 | * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y". | |
37337 | ||
37338 | 2017-02-21 Eric Botcazou <ebotcazou@adacore.com> | |
37339 | ||
37340 | PR ada/67205 | |
37341 | * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define. | |
37342 | (arm_function_ok_for_sibcall): Return false for an indirect call by | |
37343 | descriptor if all the argument registers are used. | |
37344 | (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the | |
37345 | alignment of the function. | |
37346 | ||
37347 | 2017-02-21 Jakub Jelinek <jakub@redhat.com> | |
37348 | ||
37349 | PR tree-optimization/61441 | |
37350 | * simplify-rtx.c (simplify_const_unary_operation): For | |
37351 | -fsignaling-nans and sNaN operand, return NULL_RTX rather than | |
37352 | the sNaN unmodified. | |
37353 | ||
37354 | 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
37355 | ||
37356 | * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe. | |
37357 | (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR | |
37358 | instead of SYSTEM_HEADER_DIR. | |
37359 | ||
37360 | 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com> | |
37361 | Martin Liška <mliska@suse.cz> | |
37362 | ||
37363 | * doc/invoke.texi (use-after-scope-direct-emission-threshold): | |
37364 | Fix typos and grammar, use active voice, and clarify. | |
37365 | ||
37366 | 2017-02-20 Marek Polacek <polacek@redhat.com> | |
37367 | ||
37368 | PR middle-end/79537 | |
37369 | * gimplify.c (gimplify_expr): Handle unused *&&L;. | |
37370 | ||
37371 | PR sanitizer/79558 | |
37372 | * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null. | |
37373 | ||
37374 | 2017-02-20 Jakub Jelinek <jakub@redhat.com> | |
37375 | ||
37376 | PR target/79568 | |
37377 | * config/i386/i386.c (ix86_expand_builtin): Handle | |
37378 | OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in | |
37379 | ix86_builtins_isa[fcode].isa as a requirement of those | |
37380 | flags and any other flag in the bitmask. | |
37381 | (ix86_init_mmx_sse_builtins): Use 0 instead of | |
37382 | ~OPTION_MASK_ISA_64BIT as mask. | |
37383 | * config/i386/i386-builtin.def (__builtin_ia32_rdtsc, | |
37384 | __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi, | |
37385 | __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi, | |
37386 | __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise. | |
37387 | ||
37388 | 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> | |
37389 | ||
37390 | PR target/78012 | |
37391 | * lra-constraints.c (split_reg): Check requested split mode | |
37392 | is supported by the register. | |
37393 | ||
37394 | 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> | |
37395 | ||
37396 | * lra-constraints.c (simplify_operand_subreg): Remove early | |
37397 | return false. | |
37398 | ||
37399 | 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> | |
37400 | ||
37401 | PR target/78660 | |
37402 | * lra-constraints.c (curr_insn_transform): Tighten condition | |
37403 | for converting SUBREG reloads from OP_OUT to OP_INOUT. | |
37404 | ||
37405 | 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com> | |
37406 | ||
37407 | PR target/78660 | |
37408 | * lra-constraints.c (curr_insn_transform): Handle | |
37409 | WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs. | |
37410 | ||
37411 | 2017-02-19 Uros Bizjak <ubizjak@gmail.com> | |
37412 | ||
37413 | Revert: | |
37414 | 2016-05-30 Uros Bizjak <ubizjak@gmail.com> | |
37415 | ||
37416 | * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)". | |
37417 | ||
37418 | 2017-02-19 Jonathan Wakely <jwakely@redhat.com> | |
37419 | ||
37420 | PR c++/69523 | |
37421 | * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update | |
37422 | description. | |
37423 | ||
37424 | 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
37425 | ||
37426 | * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format | |
37427 | for FMA_EXPR. | |
37428 | ||
37429 | 2017-02-18 Jakub Jelinek <jakub@redhat.com> | |
37430 | ||
37431 | * final.c (last_columnnum, override_columnnum): New variables. | |
37432 | (final_start_function): Set last_columnnum, pass it to begin_prologue | |
37433 | hook and pass 0 to dwarf2out_begin_prologue. | |
37434 | (final_scan_insn): Update override_columnnum. Pass last_columnnum | |
37435 | to source_line debug hook. | |
37436 | (notice_source_line): Compute last_columnnum and for debug_column_info | |
37437 | return true on column changes. | |
37438 | * debug.h (struct gcc_debug_hooks): Add column argument to | |
37439 | source_line and begin_prologue hooks. | |
37440 | (debug_nothing_int_charstar_int_bool): Remove prototype. | |
37441 | (debug_nothing_int_int_charstar, | |
37442 | debug_nothing_int_int_charstar_int_bool): New prototypes. | |
37443 | (dwarf2out_begin_prologue): Add column argument. | |
37444 | * debug.c (do_nothing_debug_hooks): Adjust source_line and | |
37445 | begin_prologue hooks. | |
37446 | (debug_nothing_int_charstar_int_bool): Remove. | |
37447 | (debug_nothing_int_int_charstar, | |
37448 | debug_nothing_int_int_charstar_int_bool): New functions. | |
37449 | * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it | |
37450 | through to dwarf2out_source_line. | |
37451 | (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook. | |
37452 | (dwarf2out_source_line): Add column argument, emit it if requested. | |
37453 | * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column | |
37454 | arguments. | |
37455 | * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise. | |
37456 | * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise. | |
37457 | * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it | |
37458 | through to dwarf2out_begin_prologue. | |
37459 | (vmsdbgout_source_line): Add column argument, pass it through to | |
37460 | dwarf2out_source_line. | |
37461 | * dbxout.c (dbxout_begin_prologue): Add column argument, adjust | |
37462 | dbxout_source_line caller. | |
37463 | (dbxout_source_line): Add column argument. | |
37464 | ||
37465 | * common.opt (gno-column-info, gcolumn-info): New options. | |
37466 | * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix. | |
37467 | (check_die): Also test for multiple DW_AT_decl_column attributes. | |
37468 | (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add | |
37469 | DW_AT_decl_column if requested. | |
37470 | (gen_subprogram_die): Compare and/or add also DW_AT_decl_column | |
37471 | if requested. | |
37472 | (gen_variable_die): Likewise. | |
37473 | (add_call_src_coords_attributes): Add DW_AT_call_column if requested. | |
37474 | * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document. | |
37475 | ||
37476 | PR target/79569 | |
37477 | * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report. | |
37478 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define. | |
37479 | (ix86_handle_option): Handle OPT_m3dnowa. | |
37480 | * doc/invoke.texi (-m3dnowa): Document. | |
37481 | * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use | |
37482 | -m3dnowa instead of -m3dnow -march=athlon. | |
37483 | ||
37484 | PR target/79559 | |
37485 | * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage | |
37486 | instead of gcc_assert for K, r and R code checks. Formatting fixes. | |
37487 | ||
37488 | 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
37489 | ||
37490 | PR target/79261 | |
37491 | * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add | |
37492 | support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be. | |
37493 | * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call | |
37494 | generator for vsx_xxpermdi_<mode>_be. | |
37495 | * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to | |
37496 | force big-endian semantics. | |
37497 | (vsx_xxpermdi_<mode>_be): New define_expand with same | |
37498 | implementation as previous version of vsx_xxpermdi_<mode>. | |
37499 | ||
37500 | 2017-02-17 Jakub Jelinek <jakub@redhat.com> | |
37501 | ||
37502 | PR tree-optimization/79327 | |
37503 | * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust | |
37504 | variable, its initialization and use. | |
37505 | ||
37506 | 2017-02-17 Julia Koval <julia.koval@intel.com> | |
37507 | ||
37508 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New. | |
37509 | (OPTION_MASK_ISA_PKU_UNSET): New. | |
37510 | (ix86_handle_option): Handle -mrdpid. | |
37511 | * config/i386/cpuid.h (bit_RDPID): New. | |
37512 | * config/i386/driver-i386.c (host_detect_local_cpu): | |
37513 | Detect RDPID feature. | |
37514 | * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New. | |
37515 | * config/i386/i386-c.c (ix86_target_macros_internal): | |
37516 | Handle RDPID flag. | |
37517 | * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts. | |
37518 | (ix86_valid_target_attribute_inner_p): Add "rdpid". | |
37519 | (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. | |
37520 | * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New. | |
37521 | * config/i386/i386.md (define_insn "rdpid"): New. | |
37522 | * config/i386/i386.opt Add -mrdpid. | |
37523 | * config/i386/immintrin.h (_rdpid_u32): New. | |
37524 | ||
37525 | 2017-02-17 Vladimir Makarov <vmakarov@redhat.com> | |
37526 | ||
37527 | PR rtl-optimization/79541 | |
37528 | * lra-constraints.c (curr_insn_transform): Remove wrong asm insn | |
37529 | instead of transforming it into USE. | |
37530 | ||
37531 | 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org> | |
37532 | ||
37533 | * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments. | |
37534 | If HONOR_SNANS (SFmode) force the input to a register. | |
37535 | (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition. | |
37536 | (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates | |
37537 | an frsp or similar insn. | |
37538 | ||
37539 | 2017-02-17 Martin Liska <mliska@suse.cz> | |
37540 | ||
37541 | PR rtl-optimization/79577 | |
37542 | * params.def (selsched-max-sched-times): Increase minimum to 1. | |
37543 | ||
37544 | 2017-02-17 Martin Liska <mliska@suse.cz> | |
37545 | ||
37546 | PR rtl-optimization/79574 | |
37547 | * gcse.c (want_to_gcse_p): Prevent integer overflow. | |
37548 | ||
37549 | 2017-02-17 Martin Liska <mliska@suse.cz> | |
37550 | ||
37551 | PR tree-optimization/79529 | |
37552 | * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use | |
37553 | ssa_defined_default_def_p to handle cases which are implicitly | |
37554 | defined. | |
37555 | * tree-ssa.c (ssa_defined_default_def_p): New function. | |
37556 | (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases | |
37557 | which are implicitly defined. | |
37558 | * tree-ssa.h (ssa_defined_default_def_p): Declare. | |
37559 | ||
37560 | 2017-02-17 Richard Biener <rguenther@suse.de> | |
37561 | ||
37562 | PR middle-end/79576 | |
37563 | * params.def (max-ssa-name-query-depth): Limit to 10. | |
37564 | ||
37565 | 2017-02-17 Richard Biener <rguenther@suse.de> | |
37566 | ||
37567 | PR tree-optimization/79552 | |
37568 | * tree-ssa-structalias.c (visit_loadstore): Properly verify | |
37569 | default defs. | |
37570 | ||
37571 | 2017-02-17 Richard Biener <rguenther@suse.de> | |
37572 | ||
37573 | PR bootstrap/79567 | |
37574 | * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2. | |
37575 | ||
37576 | 2017-02-17 Marek Polacek <polacek@redhat.com> | |
37577 | ||
37578 | PR middle-end/79536 | |
37579 | * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr. | |
37580 | (fold_negate_expr): New wrapper. | |
37581 | ||
37582 | 2017-02-16 Sandra Loosemore <sandra@codesourcery.com> | |
37583 | ||
37584 | * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]: | |
37585 | Correct terminology and de-emphasize pre-standard behavior. | |
37586 | ||
37587 | 2017-02-16 Alan Modra <amodra@gmail.com> | |
37588 | ||
37589 | PR rtl-optimization/79286 | |
37590 | * ira.c (def_dominates_uses): New function. | |
37591 | (update_equiv_regs): Don't create an equivalence for insns that | |
37592 | may trap where the register def does not dominate the use. | |
37593 | ||
37594 | 2017-02-16 Vladimir Makarov <vmakarov@redhat.com> | |
37595 | ||
37596 | PR rtl-optimization/78127 | |
37597 | * lra.c (lra): Call lra_eliminate before finish the loop after | |
37598 | lra_constraint. | |
37599 | ||
37600 | 2017-02-16 Richard Biener <rguenther@suse.de> | |
37601 | ||
37602 | * graphite.h: Do not include isl/isl_val_gmp.h, instead include | |
37603 | isl/isl_val.h. | |
37604 | * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove. | |
37605 | (gcc_expression_from_isl_expr_int): Use generic isl_val interface. | |
37606 | * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h. | |
37607 | (isl_val_int_from_wi): New function. | |
37608 | (extract_affine_gmp): Rename to ... | |
37609 | (extract_affine_wi): ... this, take a widest_int. | |
37610 | (extract_affine_int): Just wrap extract_affine_wi. | |
37611 | (add_param_constraints): Use isl_val_int_from_wi. | |
37612 | (add_loop_constraints): Likewise, and extract_affine_wi. | |
37613 | ||
37614 | 2017-02-15 Jeff Law <law@redhat.com> | |
37615 | ||
37616 | PR middle-end/79521 | |
37617 | * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling | |
37618 | ira_init_register_move_cost_if_necessary. | |
37619 | ||
37620 | 2017-02-15 Martin Sebor <msebor@redhat.com> | |
37621 | ||
37622 | PR middle-end/32003 | |
37623 | * doc/invoke.texi (-fdump-final-insns): Replace option accidentally | |
37624 | removed in a prior commit. | |
37625 | ||
37626 | 2017-02-15 Bin Cheng <bin.cheng@arm.com> | |
37627 | ||
37628 | PR tree-optimization/79347 | |
37629 | * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile | |
37630 | counters during peeling. | |
37631 | ||
37632 | 2017-02-15 Thomas Schwinge <thomas@codesourcery.com> | |
37633 | ||
37634 | * Makefile.in (site.exp): Remove "set ISLVER". | |
37635 | ||
37636 | 2017-02-15 Jakub Jelinek <jakub@redhat.com> | |
37637 | ||
37638 | PR target/79487 | |
37639 | * real.c (real_from_integer): Call real_convert even for decimal. | |
37640 | ||
37641 | 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
37642 | ||
37643 | PR target/79421 | |
37644 | * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS. | |
37645 | ||
37646 | 2017-02-14 Andrew Pinski <apinski@cavium.com> | |
37647 | ||
37648 | * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C" | |
37649 | cores and change the partno/implementer to be correct. | |
37650 | (thunderx2t99p1): New core which replaces thunderx2t99 and still has | |
37651 | the 'B" as the implementer. | |
37652 | * config/aarch64/aarch64-tune.md: Regenerate. | |
37653 | ||
37654 | 2017-02-14 Carl Love <cel@us.ibm.com> | |
37655 | ||
37656 | * config/rs6000/rs6000.c: Add case statement entry to make the | |
37657 | xvcvuxdsp built-in argument unsigned. | |
37658 | * config/rs6000/vsx.md: Fix the source and return operand types so they | |
37659 | match the instruction definitions from the ISA document. Fix typo | |
37660 | in the instruction generation for the (define_insn "vsx_xvcvuxdsp" | |
37661 | statement. | |
37662 | ||
37663 | 2017-02-14 Vladimir Makarov <vmakarov@redhat.com> | |
37664 | ||
37665 | PR target/79282 | |
37666 | * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add | |
37667 | member early_clobber_alts. | |
37668 | * lra-lives.c (reg_early_clobber_p): New. | |
37669 | (process_bb_lives): Use it. | |
37670 | * lra.c (new_insn_reg): New arg early_clobber_alts. Use it. | |
37671 | (debug_operand_data): Initialize early_clobber_alts. | |
37672 | (setup_operand_alternative): Set up early_clobber_alts. | |
37673 | (collect_non_operand_hard_regs): Ditto. Pass early clobber | |
37674 | alternatives to new_insn_reg. | |
37675 | (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use | |
37676 | it. | |
37677 | (lra_update_insn_regno_info): Pass the new arg. | |
37678 | ||
37679 | 2017-02-14 Jakub Jelinek <jakub@redhat.com> | |
37680 | ||
37681 | PR middle-end/79505 | |
37682 | * omp-offload.c (free_oacc_loop): Release loop->ifns vector. | |
37683 | (new_oacc_loop_raw): Don't clear already cleared fields. | |
37684 | ||
37685 | PR target/79481 | |
37686 | * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd, | |
37687 | _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd, | |
37688 | _mm512_prefetch_i64gather_ps): New inline functions and macros. | |
37689 | ||
37690 | 2017-02-14 Uros Bizjak <ubizjak@gmail.com> | |
37691 | ||
37692 | PR target/79495 | |
37693 | * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative. | |
37694 | ||
37695 | 2017-02-14 H.J. Lu <hongjiu.lu@intel.com> | |
37696 | ||
37697 | PR target/79498 | |
37698 | * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert | |
37699 | the extra instruction to the right place to store 128-bit constant | |
37700 | when needed. | |
37701 | ||
37702 | 2017-02-14 Martin Sebor <msebor@redhat.com> | |
37703 | ||
37704 | PR middle-end/79448 | |
37705 | * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX | |
37706 | warning for strings of unknown length. | |
37707 | ||
37708 | 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org> | |
37709 | ||
37710 | * config.gcc (supported_defaults) [powerpc*-*-*]: Update. | |
37711 | ||
37712 | 2017-02-14 Jeff Law <law@redhat.com> | |
37713 | ||
37714 | PR target/79404 | |
37715 | * ira-costs.c (scan_one_insn): Initialize register move costs | |
37716 | for pseudos seen in USE/CLOBBER insns. | |
37717 | ||
37718 | PR tree-optimization/79095 | |
37719 | * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR, | |
37720 | if the numerator has the range ~[0,0] make the resultant range ~[0,0]. | |
37721 | (extract_range_from_binary_expr): For MINUS_EXPR with no derived range, | |
37722 | if the operands are known to be not equal, then the resulting range | |
37723 | is ~[0,0]. | |
37724 | (intersect_ranges): If the new range is ~[0,0] and the old range is | |
37725 | wide, then prefer ~[0,0]. | |
37726 | * tree-vrp.c (overflow_comparison_p_1): New function. | |
37727 | (overflow_comparison_p): New function. | |
37728 | * tree-vrp.c (register_edge_assert_for_2): Register additional asserts | |
37729 | if NAME is used in an overflow test. | |
37730 | (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an | |
37731 | overflow check that can be expressed as an equality test, then adjust | |
37732 | ops to be that equality test. | |
37733 | ||
37734 | 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
37735 | ||
37736 | * config/s390/s390-builtin-types.def: Remove flags argument. | |
37737 | * config/s390/s390.c (s390_init_builtins): Likewise. | |
37738 | ||
37739 | 2017-02-14 Martin Liska <mliska@suse.cz> | |
37740 | ||
37741 | * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body | |
37742 | vector. Fix trailing white spaces. | |
37743 | ||
37744 | 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com> | |
37745 | ||
37746 | * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle | |
37747 | HFmode. | |
37748 | ||
37749 | 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
37750 | ||
37751 | PR rtl-optimization/68664 | |
37752 | * config/arm/arm.c (arm_sched_can_speculate_insn): | |
37753 | New function. Declare prototype. | |
37754 | (TARGET_SCHED_CAN_SPECULATE_INSN): Define. | |
37755 | ||
37756 | 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
37757 | ||
37758 | PR rtl-optimization/68664 | |
37759 | * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn): | |
37760 | New function. | |
37761 | (TARGET_SCHED_CAN_SPECULATE_INSN): Define. | |
37762 | ||
37763 | 2017-02-14 Amit Pawar <amit.pawar@amd.com> | |
37764 | ||
37765 | * config/i386/i386.c (znver1_cost): Fix the alignment for function and | |
37766 | max skip bytes for function, loop and jump. | |
37767 | ||
37768 | 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
37769 | ||
37770 | * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for | |
37771 | ABS_EXPR for gimple dump. | |
37772 | ||
37773 | 2017-02-14 Jakub Jelinek <jakub@redhat.com> | |
37774 | ||
37775 | PR target/79462 | |
37776 | * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4]. | |
37777 | ||
37778 | PR tree-optimization/79408 | |
37779 | * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the | |
37780 | case when on TRUNC_MOD_EXPR op0 is INTEGER_CST. | |
37781 | (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges | |
37782 | also if rhs1 is INTEGER_CST. | |
37783 | ||
37784 | 2017-02-14 Richard Biener <rguenther@suse.de> | |
37785 | ||
37786 | PR middle-end/79432 | |
37787 | * tree-into-ssa.c (insert_phi_nodes): When the function can | |
37788 | have abnormal edges rewrite SSA names with broken use-def | |
37789 | dominance out of SSA and register them for PHI insertion. | |
37790 | ||
37791 | 2017-02-13 Martin Sebor <msebor@redhat.com> | |
37792 | ||
37793 | PR middle-end/79496 | |
37794 | * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid | |
37795 | clearing info.nowrite flag when snprintf size argument is a range. | |
37796 | ||
37797 | 2017-02-13 Jakub Jelinek <jakub@redhat.com> | |
37798 | ||
37799 | * cprop.c (cprop_jump): Add missing space in string literal. | |
37800 | * tree-ssa-structalias.c (rewrite_constraints): Likewise. | |
37801 | (get_constraint_for_component_ref): Likewise. | |
37802 | * df-core.c (df_worklist_dataflow_doublequeue): Likewise. | |
37803 | * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise. | |
37804 | * lra-constraints.c (process_alt_operands): Likewise. | |
37805 | * ipa-inline.c (inline_small_functions): Likewise. | |
37806 | * tree-ssa-sccvn.c (visit_reference_op_store): Likewise. | |
37807 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise. | |
37808 | * trans-mem.c (diagnose_tm_1_op): Likewise. | |
37809 | * omp-grid.c (grid_find_single_omp_among_assignments): Likewise. | |
37810 | (grid_parallel_clauses_gridifiable): Likewise. | |
37811 | ||
37812 | * config/nvptx/mkoffload.c (process): Add space in between | |
37813 | , and %d. | |
37814 | ||
37815 | * config/i386/i386.h (REG_CLASS_NAMES): Add , in between | |
37816 | "MOD4_SSE_REGS" and "ALL_REGS". | |
37817 | ||
37818 | * spellcheck.c (test_data): Add , in between "foo" and "food". | |
37819 | ||
37820 | 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
37821 | ||
37822 | PR target/79449 | |
37823 | * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime | |
37824 | boundary crossing check and subsequent code generation agree. | |
37825 | ||
37826 | 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
37827 | ||
37828 | * config/aarch64/aarch64.c (has_memory_op): Delete. | |
37829 | (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of | |
37830 | has_memory_op. | |
37831 | ||
37832 | 2017-02-13 Jakub Jelinek <jakub@redhat.com> | |
37833 | ||
37834 | PR rtl-optimization/79388 | |
37835 | PR rtl-optimization/79450 | |
37836 | * combine.c (distribute_notes): When removing TEM_INSN for which | |
37837 | corresponding dest has last value recorded, invalidate that last | |
37838 | value. | |
37839 | ||
37840 | 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
37841 | ||
37842 | * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead | |
37843 | of explicit '@'. Add missing assembly comment marker on branch costs | |
37844 | printout. | |
37845 | ||
37846 | 2017-02-13 Nathan Sidwell <nathan@acm.org> | |
37847 | ||
37848 | * gengtype-lex.l (<in_struct>): Add '/'. | |
37849 | ||
37850 | 2017-02-13 Martin Liska <mliska@suse.cz> | |
37851 | ||
37852 | PR c/79471 | |
37853 | * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC. | |
37854 | ||
37855 | 2017-02-13 Richard Biener <rguenther@suse.de> | |
37856 | ||
37857 | * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS): | |
37858 | Remove. | |
37859 | * configure: Re-generate. | |
37860 | * config.in: Likewise. | |
37861 | * graphite-dependences.c: Simplify as if | |
37862 | HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined. | |
37863 | * graphite-isl-ast-to-gimple.c: Likewise. | |
37864 | * graphite-optimize-isl.c: Likewise. | |
37865 | * graphite-poly.c: Likewise. | |
37866 | * graphite-sese-to-poly.c: Likewise. | |
37867 | * graphite.h: Likewise. | |
37868 | * toplev.c: Include isl/version.h and use isl_version () for | |
37869 | printing the ISL version. | |
37870 | * doc/install.texi: Update ISL requirement. | |
37871 | ||
37872 | 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com> | |
37873 | ||
37874 | * doc/standards.texi (Standards): Update reference to | |
37875 | Objective-C 2.0. | |
37876 | ||
37877 | 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com> | |
37878 | ||
37879 | * doc/extend.texi (Named Address Spaces): sourceware.org now | |
37880 | defaults to https. | |
37881 | * doc/install.texi (Binaries): Ditto. | |
37882 | (Specific): Ditto. | |
37883 | ||
37884 | 2017-02-11 Sandra Loosemore <sandra@codesourcery.com> | |
37885 | ||
37886 | * doc/cpp.texi: Replace "stringify"/"stringification" with C | |
37887 | standard terminology "stringize"/"stringizing" throughout. | |
37888 | * doc/cppinternals.texi: Likewise. | |
37889 | ||
37890 | 2017-02-11 Sandra Loosemore <sandra@codesourcery.com> | |
37891 | ||
37892 | * doc/extend.texi: Fix some spelling mistakes and typos. | |
37893 | * doc/invoke.texi: Likewise. | |
37894 | ||
37895 | 2017-02-11 Jan Hubicka <hubicka@ucw.cz> | |
37896 | ||
37897 | PR ipa/79224 | |
37898 | * params.def (inline-min-speedup) Change from 10 to 8. | |
37899 | ||
37900 | 2017-02-11 Jakub Jelinek <jakub@redhat.com> | |
37901 | ||
37902 | * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to | |
37903 | 4.5. | |
37904 | ||
37905 | 2017-02-11 Jan Hubicka <hubicka@ucw.cz> | |
37906 | ||
37907 | PR ipa/79224 | |
37908 | * ipa-inline-analysis.c (get_minimal_bb): New function. | |
37909 | (record_modified): Use it. | |
37910 | (remap_edge_change_prob): Handle also ancestor functions. | |
37911 | ||
37912 | 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com> | |
37913 | ||
37914 | * doc/contrib.texi (Contributors): Remove broken link into | |
37915 | the Mauve CVS repository. | |
37916 | ||
37917 | 2017-02-11 Jakub Jelinek <jakub@redhat.com> | |
37918 | ||
37919 | PR middle-end/79454 | |
37920 | * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise | |
37921 | result computation whenever lhs doesn't have vector mode, not | |
37922 | just when it has BLKmode. | |
37923 | ||
37924 | 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com> | |
37925 | ||
37926 | * doc/makefile.texi (profiledbootstrap): Refer to the | |
37927 | installation instructions only in textual form. | |
37928 | ||
37929 | 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
37930 | ||
37931 | PR target/79295 | |
37932 | * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints. | |
37933 | ||
37934 | 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com> | |
37935 | ||
37936 | * doc/install.texi (Specific): Use https for blackfin.uclinux.org. | |
37937 | (Specific): Update mingw-w64 reference. | |
37938 | (Binaries): Ditto. | |
37939 | (Specific): Remove broken link to Renesas RX processor. | |
37940 | ||
37941 | 2017-02-10 Richard Biener <rguenther@suse.de> | |
37942 | ||
37943 | * toplev.c (process_options): Do not mention obsolete graphite | |
37944 | options when printing sorry message about missing graphite support. | |
37945 | Mention -floop-nest-optimize. | |
37946 | ||
37947 | 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org> | |
37948 | ||
37949 | * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm. | |
37950 | (vtst_p16): Likewise. | |
37951 | (vtstq_p8): Likewise. | |
37952 | (vtstq_p16): Likewise. | |
37953 | (vtst_p64): New. | |
37954 | (vtstq_p64): Likewise. | |
37955 | * config/arm/arm_neon.h (vgetq_lane_p64): New. | |
37956 | (vset_lane_p64): New. | |
37957 | (vsetq_lane_p64): New. | |
37958 | ||
37959 | 2017-02-10 Jakub Jelinek <jakub@redhat.com> | |
37960 | ||
37961 | PR tree-optimization/79411 | |
37962 | * tree-ssa-reassoc.c (is_reassociable_op): Return false if | |
37963 | stmt operands are SSA_NAMEs used in abnormal phis. | |
37964 | (can_reassociate_p): Return false if op is SSA_NAME used in abnormal | |
37965 | phis. | |
37966 | ||
37967 | 2017-02-09 Jan Hubicka <hubicka@ucw.cz> | |
37968 | ||
37969 | PR ipa/70795 | |
37970 | * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible | |
37971 | flag if needed. | |
37972 | ||
37973 | 2017-02-09 Jan Hubicka <hubicka@ucw.cz> | |
37974 | ||
37975 | * tree-ssa-loop-unswitch.c (hoist_guard): Update profile. | |
37976 | ||
37977 | 2017-02-09 Jakub Jelinek <jakub@redhat.com> | |
37978 | ||
37979 | * omp-offload.c (oacc_loop_auto_partitions): Use || instead of | | |
37980 | to avoid warning. | |
37981 | ||
37982 | PR c/79413 | |
37983 | * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants, | |
37984 | not arbitrary TREE_CONSTANT. | |
37985 | ||
37986 | PR c/79431 | |
37987 | * gimplify.c (gimplify_adjust_omp_clauses): Ignore | |
37988 | "omp declare target link" attribute unless is_global_var. | |
37989 | * omp-offload.c (find_link_var_op): Likewise. | |
37990 | ||
37991 | 2017-02-09 Nathan Sidwell <nathan@codesourcery.com> | |
37992 | Chung-Lin Tang <cltang@codesourcery.com> | |
37993 | ||
37994 | * gimplify.c (gimplify_scan_omp_clauses): No special handling for | |
37995 | OMP_CLAUSE_TILE. | |
37996 | (gimplify_adjust_omp_clauses): Don't delete TILE. | |
37997 | (gimplify_omp_for): Deal with TILE. | |
37998 | * internal-fn.c (expand_GOACC_TILE): New function. | |
37999 | * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative. | |
38000 | (GOACC_TILE): New. | |
38001 | * omp-expand.c (struct oacc_collapse): Add tile and outer fields. | |
38002 | (expand_oacc_collapse_init): Add LOC paramter. Initialize tile | |
38003 | element fields. | |
38004 | (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling, | |
38005 | avoid DIV for outermost collapse var. | |
38006 | (expand_oacc_for): Insert tile element loop as needed. Adjust. | |
38007 | Remove out of date comments, fix whitespace. | |
38008 | * omp-general.c (omp_extract_for_data): Deal with tiling. | |
38009 | * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag, | |
38010 | adjust OLF_DIM_BASE value. | |
38011 | (struct omp_for_data): Add tiling field. | |
38012 | * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE. | |
38013 | (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels | |
38014 | for auto loops. Remove default auto determining, moved to | |
38015 | oacc_loop_fixed_partitions. | |
38016 | * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call | |
38017 | stmts, add e_mask field. | |
38018 | (oacc_dim_call): New function, abstracted out from oacc_thread_numbers. | |
38019 | (oacc_thread_numbers): Use oacc_dim_call. | |
38020 | (oacc_xform_tile): New. | |
38021 | (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector. | |
38022 | (finish_oacc_loop): Adjust for ifns vector. | |
38023 | (oacc_loop_discover_walk): Append loop abstraction sites to list, | |
38024 | add case for GOACC_TILE fns. | |
38025 | (oacc_loop_xform_loop): Delete. | |
38026 | (oacc_loop_process): Iterate over call list directly, and add | |
38027 | handling for GOACC_TILE fns. | |
38028 | (oacc_loop_fixed_partitions): Determine default auto, deal with TILE, | |
38029 | dump partitioning. | |
38030 | (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but | |
38031 | vector partitioning to outer loops. Assign 2 partitions to loops | |
38032 | when available. Add TILE handling. | |
38033 | (oacc_loop_partition): Adjust oacc_loop_auto_partitions call. | |
38034 | (execite_oacc_device_lower): Process GOACC_TILE fns, | |
38035 | ignore unknown specs. | |
38036 | * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE. | |
38037 | * tree.c (omp_clause_num_ops): Adjust TILE ops. | |
38038 | * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New. | |
38039 | ||
38040 | 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com> | |
38041 | ||
38042 | * configure.ac (ACX_BUGURL): Update. | |
38043 | * configure: Regenerate. | |
38044 | ||
38045 | 2017-02-09 Richard Biener <rguenther@suse.de> | |
38046 | ||
38047 | PR tree-optimization/69823 | |
38048 | * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): | |
38049 | Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap. | |
38050 | ||
38051 | 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com> | |
38052 | ||
38053 | * config/arc/arc-c.def: Add __NPS400__ definition. | |
38054 | * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here. | |
38055 | (TARGET_NPS400): Define. | |
38056 | ||
38057 | 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com> | |
38058 | ||
38059 | * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in | |
38060 | file. | |
38061 | (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t | |
38062 | pointer, arch_info. | |
38063 | (arc_cpu_types): Fill the arch_info field with a pointer into the | |
38064 | arc_arch_types table. | |
38065 | (arc_selected_cpu): Declare. | |
38066 | * config/arc/arc.c (arc_selected_cpu): Make global. | |
38067 | (arc_selected_arch): Delete. | |
38068 | (arc_base_cpu): Delete. | |
38069 | (arc_override_options): Remove references to deleted variables, | |
38070 | update access to arch information. | |
38071 | (ARC_OPT): Update access to arch information. | |
38072 | (ARC_OPTX): Likewise. | |
38073 | * config/arc/arc.h (arc_base_cpu): Remove declaration. | |
38074 | (TARGET_ARC600): Update access to arch information. | |
38075 | (TARGET_ARC601): Likewise. | |
38076 | (TARGET_ARC700): Likewise. | |
38077 | (TARGET_EM): Likewise. | |
38078 | (TARGET_HS): Likewise. | |
38079 | * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch | |
38080 | information. | |
38081 | ||
38082 | 2017-02-08 Pat Haugen <pthaugen@us.ibm.com> | |
38083 | ||
38084 | PR target/78604 | |
38085 | * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert | |
38086 | condition/operands for integer GE/LE/GEU/LEU operations. | |
38087 | ||
38088 | 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org> | |
38089 | ||
38090 | PR translation/79397 | |
38091 | * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling | |
38092 | of AltiVec. | |
38093 | ||
38094 | 2017-02-08 Martin Jambor <mjambor@suse.cz> | |
38095 | ||
38096 | PR ipa/79375 | |
38097 | * ipa-prop.c (ipa_alloc_node_params): Make static, return bool | |
38098 | whether allocation happened. | |
38099 | (ipa_initialize_node_params): Do not call ipa_alloc_node_params if | |
38100 | nothing was allocated. | |
38101 | ||
38102 | 2017-02-08 Jakub Jelinek <jakub@redhat.com> | |
38103 | ||
38104 | PR tree-optimization/79408 | |
38105 | * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not | |
38106 | constant, but SSA_NAME with a known integer range, use the minimum | |
38107 | of that range instead of op1 to determine if modulo can be replaced | |
38108 | with its first operand. | |
38109 | ||
38110 | 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
38111 | ||
38112 | * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX. | |
38113 | ||
38114 | 2017-02-08 Richard Biener <rguenther@suse.de> | |
38115 | ||
38116 | PR tree-optimization/71824 | |
38117 | * graphite-scop-detection.c (scop_detection::build_scop_breadth): | |
38118 | Check all loops contained in the merged region. | |
38119 | ||
38120 | 2017-02-07 Andrew Pinski <apinski@cavium.com> | |
38121 | ||
38122 | * config/aarch64/aarch64.md (popcount<mode>2): New pattern. | |
38123 | ||
38124 | 2017-02-07 Andrew Pinski <apinski@cavium.com> | |
38125 | ||
38126 | * config/aarch64/aarch64-cores.def (thunderx): Disable LSE. | |
38127 | (thunderxt88): Likewise. | |
38128 | (thunderxt81): Disable LSE and change v8.1 to v8. | |
38129 | (thunderxt83): Likewise. | |
38130 | ||
38131 | 2017-02-07 Jakub Jelinek <jakub@redhat.com> | |
38132 | Richard Biener <rguenther@suse.de> | |
38133 | ||
38134 | PR middle-end/79399 | |
38135 | * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size | |
38136 | type from int to size_t. | |
38137 | * ira-costs.c (struct_costs_size): Change type from int to size_t. | |
38138 | ||
38139 | 2017-02-07 Jakub Jelinek <jakub@redhat.com> | |
38140 | ||
38141 | PR rtl-optimization/79386 | |
38142 | * cprop.c (bypass_conditional_jumps): Initialize | |
38143 | bypass_last_basic_block already before splitting bbs after | |
38144 | unconditional traps... | |
38145 | (bypass_conditional_jumps): ... rather than here. | |
38146 | ||
38147 | PR target/79299 | |
38148 | * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs. | |
38149 | (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2, | |
38150 | *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them, | |
38151 | fix -masm=intel patterns. | |
38152 | ||
38153 | 2017-02-07 Richard Biener <rguenther@suse.de> | |
38154 | ||
38155 | PR tree-optimization/79256 | |
38156 | PR middle-end/79278 | |
38157 | * builtins.c (get_object_alignment_2): Use min_align_of_type | |
38158 | to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT | |
38159 | and ADJUST_FIELD_ALIGN. | |
38160 | ||
38161 | * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional | |
38162 | type parameter. | |
38163 | * doc/tm.texi: Regenerate. | |
38164 | * stor-layout.c (layout_decl): Adjust. | |
38165 | (update_alignment_for_field): Likewise. | |
38166 | (place_field): Likewise. | |
38167 | (min_align_of_type): Likewise. | |
38168 | * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust. | |
38169 | * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise. | |
38170 | * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise. | |
38171 | * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise. | |
38172 | * config/frv/frv.c (frv_adjust_field_align): Likewise. | |
38173 | * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise. | |
38174 | * config/i386/i386.c (x86_field_alignment): Likewise. | |
38175 | * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise. | |
38176 | * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise. | |
38177 | * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise. | |
38178 | * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise. | |
38179 | * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise. | |
38180 | * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): | |
38181 | Likewise. | |
38182 | ||
38183 | Revert | |
38184 | 2017-01-30 Richard Biener <rguenther@suse.de> | |
38185 | ||
38186 | PR tree-optimization/79256 | |
38187 | * targhooks.c (default_builtin_vector_alignment_reachable): Honor | |
38188 | BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus | |
38189 | alignment on TYPE. | |
38190 | ||
38191 | 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com> | |
38192 | ||
38193 | * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode | |
38194 | argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw | |
38195 | builtins to SImode and emit a zero-extend, if necessary. | |
38196 | ||
38197 | 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com> | |
38198 | ||
38199 | * docs/invoke.texi (RISC-V Options): Alphabetize. | |
38200 | ||
38201 | 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com> | |
38202 | ||
38203 | * doc/invoke.texi (RISC-V Options): Use two spaces to separate | |
38204 | options. | |
38205 | ||
38206 | 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com> | |
38207 | ||
38208 | * config/riscv/riscv.c: New file. | |
38209 | * common/config/riscv/riscv-common.c: Likewise. | |
38210 | * config.gcc: Likewise. | |
38211 | * config/riscv/constraints.md: Likewise. | |
38212 | * config/riscv/elf.h: Likewise. | |
38213 | * config/riscv/generic.md: Likewise. | |
38214 | * config/riscv/linux.h: Likewise. | |
38215 | * config/riscv/multilib-generator: Likewise. | |
38216 | * config/riscv/peephole.md: Likewise. | |
38217 | * config/riscv/pic.md: Likewise. | |
38218 | * config/riscv/predicates.md: Likewise. | |
38219 | * config/riscv/riscv-builtins.c: Likewise. | |
38220 | * config/riscv/riscv-c.c: Likewise. | |
38221 | * config/riscv/riscv-ftypes.def: Likewise. | |
38222 | * config/riscv/riscv-modes.def: Likewise. | |
38223 | * config/riscv/riscv-opts.h: Likewise. | |
38224 | * config/riscv/riscv-protos.h: Likewise. | |
38225 | * config/riscv/riscv.h: Likewise. | |
38226 | * config/riscv/riscv.md: Likewise. | |
38227 | * config/riscv/riscv.opt: Likewise. | |
38228 | * config/riscv/sync.md: Likewise. | |
38229 | * config/riscv/t-elf-multilib: Likewise. | |
38230 | * config/riscv/t-linux: Likewise. | |
38231 | * config/riscv/t-linux-multilib: Likewise. | |
38232 | * config/riscv/t-riscv: Likewise. | |
38233 | * configure.ac: Likewise. | |
38234 | * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew | |
38235 | Waterman as RISC-V maintainers. | |
38236 | * doc/install.texi: Add RISC-V entries. | |
38237 | * doc/invoke.texi: Add RISC-V options section. | |
38238 | * doc/md.texi: Add RISC-V constraints section. | |
38239 | * configure: Regenerated. | |
38240 | ||
38241 | 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com> | |
38242 | ||
38243 | PR target/66144 | |
38244 | * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and | |
38245 | false values to be constant vectors with all 0 or all 1 bits set. | |
38246 | (vcondu<mode><mode>): Likewise. | |
38247 | * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New | |
38248 | predicate. | |
38249 | (fpmask_comparison_operator): Update comment. | |
38250 | (vecint_comparison_operator): New predicate. | |
38251 | * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize | |
38252 | vector conditionals when the true and false values are constant | |
38253 | vectors with all 0 bits or all 1 bits set. | |
38254 | ||
38255 | 2017-02-06 Martin Sebor <msebor@redhat.com> | |
38256 | ||
38257 | PR tree-optimization/79376 | |
38258 | * gimple-fold.c (get_range_strlen): Set the minimum length to zero. | |
38259 | ||
38260 | 2017-02-06 Uros Bizjak <ubizjak@gmail.com> | |
38261 | ||
38262 | * config/i386/sse.md (vector modes -> vec_extract* splitter): Use | |
38263 | explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate | |
38264 | to simplify split condition. | |
38265 | ||
38266 | 2017-02-06 Jakub Jelinek <jakub@redhat.com> | |
38267 | ||
38268 | * omp-expand.c (oxpand_omp_atomic_fetch_op, | |
38269 | expand_omp_atomic_pipeline): Return false if can_atomic_load_p is | |
38270 | false. | |
38271 | ||
38272 | 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org> | |
38273 | ||
38274 | PR rtl-optimization/68664 | |
38275 | * target.def (can_speculate_insn): New hook. | |
38276 | * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook. | |
38277 | * doc/tm.texi: Regenerate. | |
38278 | * sched-rgn.c (can_schedule_ready_p): Use the new hook. | |
38279 | * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro. | |
38280 | (rs6000_sched_can_speculate_insn): New function. | |
38281 | ||
38282 | 2017-02-06 Jakub Jelinek <jakub@redhat.com> | |
38283 | ||
38284 | PR tree-optimization/79284 | |
38285 | * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define. | |
38286 | * tree-vect-stmts.c (vect_get_vec_def_for_operand, | |
38287 | vectorizable_mask_load_store, vectorizable_operation, | |
38288 | vect_is_simple_cond, get_same_sized_vectype): Use it instead | |
38289 | of comparing TREE_CODE of a type against BOOLEAN_TYPE. | |
38290 | * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1, | |
38291 | vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise. | |
38292 | * tree-vect-slp.c (vect_get_constant_vectors): Likewise. | |
38293 | * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. | |
38294 | Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after | |
38295 | is_gimple_assign (stmt). Replace another such test with | |
38296 | is_gimple_assign (stmt). | |
38297 | ||
38298 | 2017-02-06 Georg-Johann Lay <avr@gjlay.de> | |
38299 | ||
38300 | PR target/78883 | |
38301 | * config/avr/avr.c (rtl-iter.h): Include it. | |
38302 | (TARGET_LEGITIMATE_COMBINED_INSN): New hook define... | |
38303 | (avr_legitimate_combined_insn): ...and implementation. | |
38304 | ||
38305 | 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
38306 | ||
38307 | * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h. | |
38308 | * config/s390/s390.c (s390_const_operand_ok) | |
38309 | (s390_canonicalize_comparison, s390_extract_part) | |
38310 | (s390_single_part, s390_contiguous_bitmask_nowrap_p) | |
38311 | (s390_contiguous_bitmask_p, s390_rtx_costs) | |
38312 | (legitimize_pic_address): Likewise. | |
38313 | * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise. | |
38314 | * config/s390/vx-builtins.md ("vec_genbytemaskv16qi") | |
38315 | ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>") | |
38316 | ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT. | |
38317 | * config/s390/vector.md ("vec_vfenes<mode>"): Likewise. | |
38318 | ||
38319 | 2017-02-06 Georg-Johann Lay <avr@gjlay.de> | |
38320 | ||
38321 | * config/avr/avr.md (*addhi3_zero_extend): Add alternative where | |
38322 | REGNO($0) == REGNO($1). | |
38323 | ||
38324 | 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
38325 | ||
38326 | * config/s390/linux.h(SIZE_TYPE): Add comment. | |
38327 | ||
38328 | 2017-02-06 Julian Brown <julian@codesourcery.com> | |
38329 | Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
38330 | Virendra Pathak <virendra.pathak@broadcom.com> | |
38331 | ||
38332 | * config/aarch64/aarch64-cores.def: Change the scheduler | |
38333 | to Thunderx2t99. | |
38334 | * config/aarch64/aarch64.md: Include thunderx2t99.md. | |
38335 | * config/aarch64/thunderx2t99.md: New file. | |
38336 | ||
38337 | 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com> | |
38338 | ||
38339 | * doc/standards.texi (Go Language): Update link to language | |
38340 | standard. | |
38341 | ||
38342 | 2017-02-05 Jan Hubicka <hubicka@ucw.cz> | |
38343 | ||
38344 | * tree-eh.c (lower_resx): Sanitize profile. | |
38345 | (cleanup_empty_eh_move_lp): Likewise. | |
38346 | ||
38347 | 2017-02-05 Jan Hubicka <hubicka@ucw.cz> | |
38348 | ||
38349 | PR tree-ssa/79347 | |
38350 | * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add | |
38351 | ELSE_PROB. | |
38352 | * cfgloopmanip.h (loop_version): Update prototype. | |
38353 | * modulo-sched.c (sms_schedule): Update call of loop_version. | |
38354 | * tree-if-conv.c(version_loop_for_if_conversion): Likewise. | |
38355 | * tree-parloops.c (gen_parallel_loop): Likewise. | |
38356 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise. | |
38357 | * tree-ssa-loop-split.c (split_loop): Likewise. | |
38358 | * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise. | |
38359 | * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. | |
38360 | ||
38361 | 2017-02-05 Martin Liska <mliska@suse.cz> | |
38362 | ||
38363 | PR bootstrap/78985 | |
38364 | * config/s390/s390.c (s390_gimplify_va_arg): Initialize local | |
38365 | variable to NULL. | |
38366 | (print_operand_address): Initialize a struct to zero. | |
38367 | ||
38368 | 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com> | |
38369 | ||
38370 | * doc/contrib.texi (Contributors): Refer to Hans Boehm's | |
38371 | garbage collector only in textual form. | |
38372 | ||
38373 | 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com> | |
38374 | ||
38375 | * doc/extend.texi (x86 specific memory model extensions for | |
38376 | transactional memory): Simplify a phrase. | |
38377 | ||
38378 | 2017-02-05 Eric Botcazou <ebotcazou@adacore.com> | |
38379 | ||
38380 | PR target/79353 | |
38381 | * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with | |
38382 | 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32. | |
38383 | (atomic_storedi_1): Likewise. | |
38384 | ||
38385 | 2017-02-04 Jakub Jelinek <jakub@redhat.com> | |
38386 | ||
38387 | PR tree-optimization/79338 | |
38388 | * tree-parloops.c (gather_scalar_reductions): Don't call | |
38389 | vect_analyze_loop_form for loop->inner before destroying loop's | |
38390 | loop_vinfo. | |
38391 | ||
38392 | 2017-02-03 Martin Sebor <msebor@redhat.com> | |
38393 | ||
38394 | PR tree-optimization/79327 | |
38395 | * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix | |
38396 | when precision has resulted in leading zeros. | |
38397 | (format_integer): Adjust the likely counter to assume an unknown | |
38398 | argument that may be zero is non-zero. | |
38399 | ||
38400 | 2017-02-03 Jason Merrill <jason@redhat.com> | |
38401 | ||
38402 | PR c++/78689 | |
38403 | * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to | |
38404 | avoid copying non-taken branch. | |
38405 | ||
38406 | 2017-02-03 Jakub Jelinek <jakub@redhat.com> | |
38407 | ||
38408 | PR tree-optimization/79340 | |
38409 | * tree-vect-loop.c (vectorizable_reduction): Release | |
38410 | vec_defs elements after safe_splicing them into other vectors. | |
38411 | Formatting fixes. | |
38412 | ||
38413 | PR tree-optimization/79327 | |
38414 | * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning | |
38415 | true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of | |
38416 | dirtype. | |
38417 | (format_integer): Use wide_int_to_tree instead of build_int_cst | |
38418 | + to_?hwi. If argmin is NULL, just set argmin and argmax to | |
38419 | TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation | |
38420 | of shortest and longest sequence. | |
38421 | ||
38422 | 2017-02-03 Uros Bizjak <ubizjak@gmail.com> | |
38423 | ||
38424 | * config/i386/i386.c (dimode_scalar_chain::convert_reg): | |
38425 | Use pextrd for TARGET_SSE4_1 when creating scalar copy. | |
38426 | ||
38427 | 2017-02-03 Walter Lee <walt@tilera.com> | |
38428 | ||
38429 | PR target/78862 | |
38430 | * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage | |
38431 | after initial stackframe link reg save. | |
38432 | * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise. | |
38433 | ||
38434 | 2017-02-03 Jakub Jelinek <jakub@redhat.com> | |
38435 | ||
38436 | PR target/79354 | |
38437 | * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of | |
38438 | wu for stxssp alternative. | |
38439 | ||
38440 | 2017-02-03 Martin Sebor <msebor@redhat.com> | |
38441 | ||
38442 | PR tree-optimization/79352 | |
38443 | * gimple-fold.c (get_range_strlen): Add argument. | |
38444 | (get_range_strlen): Change return type to bool. | |
38445 | (get_maxval_strlen): Pass in a dummy argument. | |
38446 | * gimple-fold.h (get_range_strlen): Change return type to bool. | |
38447 | * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter. | |
38448 | * tree.h (array_at_struct_end_p): Add argument. | |
38449 | * tree.c (array_at_struct_end_p): Handle it. | |
38450 | ||
38451 | 2017-02-03 Martin Liska <mliska@suse.cz> | |
38452 | ||
38453 | PR lto/66295 | |
38454 | * multiple_target.c (create_dispatcher_calls): Redirect edge | |
38455 | from a caller of a dispatcher. | |
38456 | (expand_target_clones): Make the clones local. | |
38457 | (ipa_target_clone): Do both target clones and resolvers. | |
38458 | (ipa_dispatcher_calls): Remove the pass. | |
38459 | (pass_dispatcher_calls::gate): Likewise. | |
38460 | (make_pass_dispatcher_calls): Likewise. | |
38461 | * passes.def (pass_target_clone): Put as very first IPA early | |
38462 | pass. | |
38463 | ||
38464 | 2017-02-03 Martin Liska <mliska@suse.cz> | |
38465 | ||
38466 | * symtab.c (symtab_node::binds_to_current_def_p): Bail out | |
38467 | in case of a function with ifunc attribute. | |
38468 | ||
38469 | 2017-02-03 Martin Liska <mliska@suse.cz> | |
38470 | ||
38471 | * cgraph.c (cgraph_node::dump): Dump function version info. | |
38472 | * symtab.c (symtab_node::dump_base): Add missing new line. | |
38473 | ||
38474 | 2017-02-02 Jan Hubicka <hubicka@ucw.cz> | |
38475 | ||
38476 | * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function. | |
38477 | (ifcombine_ifandif): Use it. | |
38478 | ||
38479 | 2017-02-03 Martin Liska <mliska@suse.cz> | |
38480 | ||
38481 | * doc/invoke.texi: Document default value for | |
38482 | use-after-scope-direct-emission-threshold. | |
38483 | ||
38484 | 2017-02-03 Martin Liska <mliska@suse.cz> | |
38485 | ||
38486 | PR tree-optimization/79339 | |
38487 | * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear. | |
38488 | (format_floating): Likewise. | |
38489 | ||
38490 | 2017-02-03 Martin Liska <mliska@suse.cz> | |
38491 | ||
38492 | PR ipa/79337 | |
38493 | * ipa-prop.c (ipa_node_params_t::insert): Remove current | |
38494 | implementation. | |
38495 | (ipa_node_params_t::remove): Likewise. | |
38496 | * ipa-prop.h (ipa_node_params::ipa_node_params): Make default | |
38497 | initialization from removed ipa_node_params_t::insert. | |
38498 | (ipa_node_params::~ipa_node_params): Move from removed | |
38499 | ipa_node_params_t::release. | |
38500 | * symbol-summary.h (symbol_summary::m_released): New member. | |
38501 | Do not release a summary twice. Do not allow to call finalizer | |
38502 | for types of a summary that live in GGC memory. | |
38503 | ||
38504 | 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com> | |
38505 | ||
38506 | * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and | |
38507 | cmp_branch fusion. | |
38508 | ||
38509 | 2017-02-02 Martin Sebor <msebor@redhat.com> | |
38510 | ||
38511 | PR middle-end/79275 | |
38512 | * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero. | |
38513 | (format_string): Tighten up the range of output for non-constant | |
38514 | strings and correct the expected range for wide non-constant strings. | |
38515 | ||
38516 | 2017-02-02 Martin Sebor <msebor@redhat.com> | |
38517 | ||
38518 | * doc/invoke.texi (-maccumulate-args): Fix bad grammar. | |
38519 | ||
38520 | PR middle-end/32003 | |
38521 | * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from | |
38522 | index. | |
38523 | (-fdump-tree-@var): Add to index and document how to come up | |
38524 | with pass-specific option and dump file names. | |
38525 | (-fdump-passes): Clarify where to look for output. | |
38526 | ||
38527 | 2017-02-02 Jan Hubicka <hubicka@ucw.cz> | |
38528 | ||
38529 | PR middle-end/77445 | |
38530 | * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump | |
38531 | statistics of the analyzed path; allow threading for speed when | |
38532 | any of BBs along the path are optimized for speed. | |
38533 | ||
38534 | 2017-02-02 Eric Botcazou <ebotcazou@adacore.com> | |
38535 | ||
38536 | PR middle-end/78468 | |
38537 | * emit-rtl.c (init_emit): Add ??? comment for problematic alignment | |
38538 | settings of the virtual registers. | |
38539 | ||
38540 | Revert again | |
38541 | 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
38542 | ||
38543 | * explow.c (get_dynamic_stack_size): Take known alignment of stack | |
38544 | pointer + STACK_DYNAMIC_OFFSET into account when calculating the size | |
38545 | needed. | |
38546 | ||
38547 | 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
38548 | ||
38549 | * config/s390/vx-builtins.md ("vec_ceil", "vec_floor") | |
38550 | ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders. | |
38551 | ||
38552 | 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
38553 | ||
38554 | * config/s390/s390.md: Add missing comments with the expanded | |
38555 | mnemonics. | |
38556 | * config/s390/vector.md: Likewise. | |
38557 | * config/s390/vx-builtins.md: Likewise. | |
38558 | ||
38559 | 2017-02-02 Jakub Jelinek <jakub@redhat.com> | |
38560 | ||
38561 | PR target/79197 | |
38562 | * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ... | |
38563 | (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all | |
38564 | conditions on a single line. | |
38565 | ||
38566 | 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
38567 | ||
38568 | * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename | |
38569 | __S390_VX__ to __VX__. | |
38570 | ||
38571 | 2017-02-01 Andrew Pinski <apinski@cavium.com> | |
38572 | ||
38573 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass | |
38574 | stmt_info to record_stmt_cost. | |
38575 | (vect_get_known_peeling_cost): Pass stmt_info if known to | |
38576 | record_stmt_cost. | |
38577 | * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split | |
38578 | cpu_vector_cost field into | |
38579 | scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost | |
38580 | field into vec_int_stmt_cost and vec_fp_stmt_cost. | |
38581 | * config/aarch64/aarch64.c (generic_vector_cost): Update for the | |
38582 | splitting of scalar_stmt_cost and vec_stmt_cost. | |
38583 | (thunderx_vector_cost): Likewise. | |
38584 | (cortexa57_vector_cost): LIkewise. | |
38585 | (exynosm1_vector_cost): Likewise. | |
38586 | (xgene1_vector_cost): Likewise. | |
38587 | (thunderx2t99_vector_cost): Improve after the splitting of the two | |
38588 | fields. | |
38589 | (aarch64_builtin_vectorization_cost): Update for the splitting of | |
38590 | scalar_stmt_cost and vec_stmt_cost. | |
38591 | ||
38592 | 2017-02-01 Torvald Riegel <triegel@redhat.com> | |
38593 | Richard Henderson <rth@redhat.com> | |
38594 | ||
38595 | * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free" | |
38596 | conditional on existance of a fast atomic load. | |
38597 | * optabs-query.c (can_atomic_load_p): New function. | |
38598 | * optabs-query.h (can_atomic_load_p): Declare it. | |
38599 | * optabs.c (expand_atomic_exchange): Always delegate to libatomic if | |
38600 | no fast atomic load is available for the particular size of access. | |
38601 | (expand_atomic_compare_and_swap): Likewise. | |
38602 | (expand_atomic_load): Likewise. | |
38603 | (expand_atomic_store): Likewise. | |
38604 | (expand_atomic_fetch_op): Likewise. | |
38605 | * testsuite/lib/target-supports.exp | |
38606 | (check_effective_target_sync_int_128): Remove x86 because it provides | |
38607 | no fast atomic load. | |
38608 | (check_effective_target_sync_int_128_runtime): Likewise. | |
38609 | ||
38610 | 2017-02-01 Richard Biener <rguenther@suse.de> | |
38611 | ||
38612 | * graphite.c: Include tree-vectorizer.h for find_loop_location. | |
38613 | (graphite_transform_loops): Provide opt-info for optimized nests. | |
38614 | * tree-parloop.c (parallelize_loops): Provide opt-info for | |
38615 | parallelized loops. | |
38616 | ||
38617 | 2017-02-01 Richard Biener <rguenther@suse.de> | |
38618 | ||
38619 | PR middle-end/79315 | |
38620 | * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it | |
38621 | was not set before. | |
38622 | ||
38623 | 2017-02-01 Richard Biener <rguenther@suse.de> | |
38624 | ||
38625 | PR tree-optimization/71824 | |
38626 | * graphite-scop-detection.c (scop_detection::build_scop_breadth): | |
38627 | Verify the loops are valid in the merged SESE region. | |
38628 | (scop_detection::can_represent_loop_1): Check analyzing the | |
38629 | evolution of the number of iterations in the region succeeds. | |
38630 | ||
38631 | 2017-01-31 Ian Lance Taylor <iant@golang.org> | |
38632 | ||
38633 | * config/i386/i386.c (ix86_expand_split_stack_prologue): Add | |
38634 | REG_ARGS_SIZE note to 32-bit push insns and call insn. | |
38635 | ||
38636 | 2017-01-31 David Malcolm <dmalcolm@redhat.com> | |
38637 | ||
38638 | PR preprocessor/79210 | |
38639 | * input.c (get_substring_ranges_for_loc): Replace line_width | |
38640 | assertion with error-handling. | |
38641 | ||
38642 | 2017-01-31 Richard Biener <rguenther@suse.de> | |
38643 | ||
38644 | PR tree-optimization/77318 | |
38645 | * graphite-sese-to-poly.c (extract_affine): Fix assert. | |
38646 | (create_pw_aff_from_tree): Take loop parameter. | |
38647 | (add_condition_to_pbb): Pass loop of the condition to | |
38648 | create_pw_aff_from_tree. | |
38649 | ||
38650 | 2017-01-31 Jakub Jelinek <jakub@redhat.com> | |
38651 | ||
38652 | * config/s390/s390.c (s390_asan_shadow_offset): New function. | |
38653 | (TARGET_ASAN_SHADOW_OFFSET): Redefine. | |
38654 | ||
38655 | 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com> | |
38656 | ||
38657 | PR target/78597 | |
38658 | PR target/79038 | |
38659 | * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete, | |
38660 | no longer used. | |
38661 | (convert_int_to_float128): Likewise. | |
38662 | * config/rs6000/rs6000.c (convert_float128_to_int): Likewise. | |
38663 | (convert_int_to_float128): Likewise. | |
38664 | * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise. | |
38665 | (UNSPEC_IEEE128_CONVERT): Likewise. | |
38666 | (floatsi<mode>2, FLOAT128 iterator): Bypass calling | |
38667 | rs6000_expand_float128_convert if we have IEEE 128-bit hardware. | |
38668 | Use local variables for IBM extended format. | |
38669 | (fix_trunc<mode>si2, FLOAT128 iterator): Likewise. | |
38670 | (fix_trunc<mode>si2_fprs): Likewise. | |
38671 | (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise. | |
38672 | (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise. | |
38673 | (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support | |
38674 | to know that we can now have integers of all sizes in vector | |
38675 | registers. | |
38676 | (fix<uns>_<mode>di2_hw): Likewise. | |
38677 | (float<uns>_<mode>si2_hw): Likewise. | |
38678 | (fix_<mode>si2_hw): Likewise. | |
38679 | (fixuns_<mode>si2_hw): Likewise. | |
38680 | (float<uns>_<mode>di2_hw): Likewise. | |
38681 | (float_<mode>di2_hw): Likewise. | |
38682 | (float_<mode>si2_hw): Likewise. | |
38683 | (floatuns_<mode>di2_hw): Likewise. | |
38684 | (floatuns_<mode>si2_hw): Likewise. | |
38685 | (xscvqp<su>wz_<mode>): Delete, no longer used. | |
38686 | (xscvqp<su>dz_<mode>): Likewise. | |
38687 | (xscv<su>dqp_<mode>): Likewise. | |
38688 | (ieee128_mfvsrd_64bit): Likewise. | |
38689 | (ieee128_mfvsrd_32bit): Likewise. | |
38690 | (ieee128_mfvsrwz): Likewise. | |
38691 | (ieee128_mtvsrw): Likewise. | |
38692 | (ieee128_mtvsrd_64bit): Likewise. | |
38693 | (ieee128_mtvsrd_32bit): Likewise. | |
38694 | ||
38695 | 2017-01-31 Martin Liska <mliska@suse.cz> | |
38696 | ||
38697 | PR ipa/79285 | |
38698 | * ipa-prop.c (ipa_free_all_node_params): Call release method | |
38699 | instead of ~sumbol_summary to not to trigger double times | |
38700 | dtor of hash_map. | |
38701 | ||
38702 | 2017-01-31 Aldy Hernandez <aldyh@redhat.com> | |
38703 | ||
38704 | PR tree-optimization/71691 | |
38705 | * bitmap.h (class auto_bitmap): New. | |
38706 | * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call | |
38707 | is_maybe_undefined instead of ssa_undefined_value_p. | |
38708 | ||
38709 | 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
38710 | ||
38711 | * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename | |
38712 | __S390_ARCH_LEVEL__ to __ARCH__. | |
38713 | ||
38714 | 2017-01-31 Jakub Jelinek <jakub@redhat.com> | |
38715 | ||
38716 | PR tree-optimization/79267 | |
38717 | * value-prof.c (gimple_ic): Only drop lhs for noreturn calls | |
38718 | if should_remove_lhs_p is true. | |
38719 | ||
38720 | 2017-01-30 Alexandre Oliva <aoliva@redhat.com> | |
38721 | ||
38722 | PR debug/63238 | |
38723 | * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment. | |
38724 | (add_alignment_attribute): New. | |
38725 | (base_type_die): Add alignment attribute. | |
38726 | (subrange_type_die): Likewise. | |
38727 | (modified_type_die): Likewise. | |
38728 | (gen_array_type_die): Likewise. | |
38729 | (gen_descr_array_type_die: Likewise. | |
38730 | (gen_enumeration_type_die): Likewise. | |
38731 | (gen_subprogram_die): Likewise. | |
38732 | (gen_variable_die): Likewise. | |
38733 | (gen_field_die): Likewise. | |
38734 | (gen_ptr_to_mbr_type_die): Likewise. | |
38735 | (gen_struct_or_union_type_die): Likewise. | |
38736 | (gen_subroutine_type_die): Likewise. | |
38737 | (gen_typedef_die): Likewise. | |
38738 | (base_type_cmp): Compare alignment attribute. | |
38739 | ||
38740 | 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
38741 | ||
38742 | PR target/79170 | |
38743 | * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed. | |
38744 | (setb_unsigned) New pattern for setb with CCUNS. | |
38745 | * config/rs6000/rs6000.c (expand_block_compare): Use a different | |
38746 | subfc./subfe sequence to avoid overflow problems. Generate a | |
38747 | shorter sequence with cmpld/setb for power9. | |
38748 | * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern | |
38749 | for generating subfc. instruction. | |
38750 | (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence | |
38751 | now uses this instruction. | |
38752 | ||
38753 | 2017-01-30 Ian Lance Taylor <iant@google.com> | |
38754 | ||
38755 | PR debug/79289 | |
38756 | * dwarf2out.c (gen_type_die_with_usage): When picking a variant | |
38757 | for FUNCTION_TYPE/METHOD_TYPE, use the first matching one. | |
38758 | ||
38759 | 2017-01-30 Martin Sebor <msebor@redhat.com> | |
38760 | ||
38761 | * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision): | |
38762 | Move constant to the right of a relational operator. | |
38763 | (get_mpfr_format_length, format_character, format_string): Ditto. | |
38764 | (should_warn_p, maybe_warn): Same. | |
38765 | ||
38766 | * doc/invoke.texi (-Wformat-truncation=1): Fix typo. | |
38767 | ||
38768 | 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com> | |
38769 | ||
38770 | PR lto/79061 | |
38771 | * asan.c (get_translation_unit_decl): Remove function. | |
38772 | (asan_add_global): Force has_dynamic_init to zero in LTO mode. | |
38773 | ||
38774 | 2017-01-30 Martin Liska <mliska@suse.cz> | |
38775 | ||
38776 | PR gcov-profile/79259 | |
38777 | * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/ | |
38778 | -fprofile-generate. | |
38779 | ||
38780 | 2017-01-30 Martin Liska <mliska@suse.cz> | |
38781 | ||
38782 | PR bootstrap/78985 | |
38783 | * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze): | |
38784 | Initialize variables with NULL value. | |
38785 | ||
38786 | 2017-01-30 Richard Earnshaw <rearnsh@arm.com> | |
38787 | ||
38788 | PR target/79260 | |
38789 | * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to | |
38790 | tm_p_file. | |
38791 | * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h. | |
38792 | ||
38793 | 2017-01-30 Richard Biener <rguenther@suse.de> | |
38794 | ||
38795 | PR tree-optimization/79276 | |
38796 | * tree-vrp.c (process_assert_insertions): Properly adjust common | |
38797 | when removing a duplicate. | |
38798 | ||
38799 | 2017-01-30 Richard Biener <rguenther@suse.de> | |
38800 | ||
38801 | PR tree-optimization/79256 | |
38802 | * targhooks.c (default_builtin_vector_alignment_reachable): Honor | |
38803 | BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus | |
38804 | alignment on TYPE. | |
38805 | * tree.c (build_aligned_type): Set TYPE_USER_ALIGN. | |
38806 | ||
38807 | 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
38808 | ||
38809 | PR target/79240 | |
38810 | * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask") | |
38811 | ("*r<noxa>sbg_<mode>_sll_bitmask") | |
38812 | ("*extzv_<mode>_srl<clobbercc_or_nocc>") | |
38813 | ("*extzv_<mode>_sll<clobbercc_or_nocc>"): | |
38814 | Use contiguous_bitmask_nowrap_operand. | |
38815 | ||
38816 | 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
38817 | ||
38818 | PR target/79268 | |
38819 | * config/rs6000/altivec.h (vec_xl): Revise #define. | |
38820 | (vec_xst): Likewise. | |
38821 | ||
38822 | 2017-01-27 Uros Bizjak <ubizjak@gmail.com> | |
38823 | ||
38824 | * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum. | |
38825 | ||
38826 | 2017-01-27 Bernd Schmidt <bschmidt@redhat.com> | |
38827 | ||
38828 | PR rtl-optimization/79194 | |
38829 | * cprop.c (one_cprop_pass): Move deletion of code after unconditional | |
38830 | traps before call to bypass_conditional_jumps. | |
38831 | ||
38832 | 2017-01-27 Vladimir Makarov <vmakarov@redhat.com> | |
38833 | ||
38834 | PR tree-optimization/71374 | |
38835 | * lra-constraints.c (check_conflict_input_operands): New. | |
38836 | (match_reload): Use it. | |
38837 | ||
38838 | 2017-01-27 Vladimir Makarov <vmakarov@redhat.com> | |
38839 | ||
38840 | PR target/79131 | |
38841 | * lra-assigns.c (find_hard_regno_for_1): Take endianess for into | |
38842 | account to calculate conflict_set. | |
38843 | ||
38844 | 2017-01-27 Bin Cheng <bin.cheng@arm.com> | |
38845 | ||
38846 | PR rtl-optimization/78559 | |
38847 | * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for | |
38848 | other_insn in combine. | |
38849 | ||
38850 | 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> | |
38851 | ||
38852 | * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use | |
38853 | uint16_type_node for BT_UINT16. | |
38854 | ||
38855 | 2017-01-27 David Malcolm <dmalcolm@redhat.com> | |
38856 | ||
38857 | * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and | |
38858 | "RTL Tests" to menu. | |
38859 | (GIMPLE Tests): New node. | |
38860 | (RTL Tests): New node. | |
38861 | ||
38862 | 2017-01-27 Richard Biener <rguenther@suse.de> | |
38863 | ||
38864 | PR tree-optimization/79245 | |
38865 | * tree-loop-distribution.c (distribute_loop): Apply cost | |
38866 | modeling also to detected patterns. | |
38867 | ||
38868 | 2017-01-27 Richard Biener <rguenther@suse.de> | |
38869 | ||
38870 | PR tree-optimization/71433 | |
38871 | * tree-vrp.c (register_new_assert_for): Revert earlier changes. | |
38872 | (compare_assert_loc): New function. | |
38873 | (process_assert_insertions): Sort and optimize assert locations | |
38874 | to remove duplicates and push down identical assertions on | |
38875 | edges to their destination block. | |
38876 | ||
38877 | 2017-01-27 Richard Biener <rguenther@suse.de> | |
38878 | ||
38879 | PR tree-optimization/79244 | |
38880 | * tree-vrp.c (remove_range_assertions): Forcefully propagate | |
38881 | out SSA names even if abnormal. | |
38882 | ||
38883 | 2017-01-27 Jakub Jelinek <jakub@redhat.com> | |
38884 | ||
38885 | * realmpfr.h: Poison MPFR_RND{N,Z,U,D}. | |
38886 | * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN | |
38887 | instead of MPFR_RNDN. | |
38888 | ||
38889 | 2017-01-27 Richard Earnshaw <rearnsha@arm.com> | |
38890 | ||
38891 | PR target/79239 | |
38892 | * arm.c (arm_option_override): Don't call build_target_option_node | |
38893 | until after doing all option overrides. | |
38894 | (arm_valid_target_attribute_tree): Likewise. | |
38895 | ||
38896 | 2017-01-27 Martin Liska <mliska@suse.cz> | |
38897 | ||
38898 | * doc/invoke.texi (-fprofile-arcs): Document profiling support | |
38899 | for {cd}tors and C++ {cd}tors. | |
38900 | ||
38901 | 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com> | |
38902 | ||
38903 | * config/s390/s390.md ("*setmem_long_and") | |
38904 | ("*setmem_long_and_31z"): Use zero_extend instead of and. | |
38905 | ||
38906 | 2017-01-26 Martin Sebor <msebor@redhat.com> | |
38907 | ||
38908 | * gimple-ssa-sprintf.c (format_floating): Simplify the computation | |
38909 | of precision. | |
38910 | ||
38911 | 2017-01-26 Martin Sebor <msebor@redhat.com> | |
38912 | ||
38913 | * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and | |
38914 | HAVE_DFmode before using XFmode or DFmode. | |
38915 | (parse_directive): Avoid using the z length modifier to avoid | |
38916 | the ISO C++98 does not support the ‘z’ gnu_printf length modifier. | |
38917 | ||
38918 | PR middle-end/78703 | |
38919 | * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change | |
38920 | to accept adjustment as an array. | |
38921 | (get_int_range): New function. | |
38922 | (struct directive): Make width and prec arrays. | |
38923 | (directive::set_width, directive::set_precision): Call get_int_range. | |
38924 | (format_integer, format_floating): Handle width and precision ranges. | |
38925 | (format_string, parse_directive): Same. | |
38926 | ||
38927 | 2017-01-26 Jakub Jelinek <jakub@redhat.com> | |
38928 | ||
38929 | PR debug/79129 | |
38930 | * dwarf2out.c (generate_skeleton_bottom_up): For children with | |
38931 | comdat_type_p set, just clone them, but keep the children in the | |
38932 | original DIE. | |
38933 | ||
38934 | PR debug/78835 | |
38935 | * dwarf2out.c (prune_unused_types): Mark all functions with DIEs | |
38936 | which have direct callers with -fvar-tracking-assignments enabled | |
38937 | in the current TU. | |
38938 | (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin | |
38939 | inside of type units. | |
38940 | ||
38941 | 2017-01-26 Martin Sebor <msebor@redhat.com> | |
38942 | ||
38943 | PR middle-end/78703 | |
38944 | * gimple-ssa-sprintf.c (struct result_range): Add likely and | |
38945 | unlikely counters. | |
38946 | (struct format_result): Replace number_chars, number_chars_min, | |
38947 | and number_chars_max with a single member of struct result_range. | |
38948 | Remove bounded. | |
38949 | (format_result::operator+=): Adjust. | |
38950 | (struct fmtresult): Remove bounded. Handle likely and unlikely | |
38951 | counters. | |
38952 | (fmtresult::adjust_for_width_or_precision): New function. | |
38953 | (fmtresult:type_max_digits): New function. | |
38954 | (bytes_remaining): Handle likely and unlikely counters. | |
38955 | (min_bytes_remaining): Remove. | |
38956 | (format_percent): Simplify. | |
38957 | (format_integer, format_floating): Set likely and unlikely counters. | |
38958 | (get_string_length, format_character, format_string): Same. | |
38959 | (format_plain, should_warn_p): New function. | |
38960 | (maybe_warn): Call should_warn_p. Update diagnostic messages | |
38961 | and handle those for all directives, including plain strings. | |
38962 | (format_directive): Handle likely and unlikely counters. | |
38963 | Remove unnecessary quoting from diagnostics. Add an informational | |
38964 | note. | |
38965 | (add_bytes): Remove. | |
38966 | (pass_sprintf_length::compute_format_length): Simplify. | |
38967 | (try_substitute_return_value): Handle likely and unlikely counters. | |
38968 | ||
38969 | 2017-01-26 Carl Love <cel@us.ibm.com> | |
38970 | ||
38971 | * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove | |
38972 | bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins | |
38973 | ||
38974 | 2017-01-26 Vladimir Makarov <vmakarov@redhat.com> | |
38975 | ||
38976 | PR target/79131 | |
38977 | * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take | |
38978 | endianess for subregs into account. | |
38979 | * lra-constraints.c (lra_constraints): Do risky transformations | |
38980 | always on the first iteration. | |
38981 | * lra-lives.c (check_pseudos_live_through_calls): Add arg | |
38982 | last_call_used_reg_set. | |
38983 | (process_bb_lives): Define and use last_call_used_reg_set. | |
38984 | * lra.c (lra): Always continue after lra_constraints on the first | |
38985 | iteration. | |
38986 | ||
38987 | 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com> | |
38988 | ||
38989 | * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long | |
38990 | constant. | |
38991 | * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto. | |
38992 | ||
38993 | 2017-01-26 Jakub Jelinek <jakub@redhat.com> | |
38994 | ||
38995 | * config/i386/avx512fintrin.h (_ktest_mask16_u8, | |
38996 | _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ... | |
38997 | * config/i386/avx512dqintrin.h (_ktest_mask16_u8, | |
38998 | _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here. | |
38999 | * config/i386/i386-builtin.def (__builtin_ia32_ktestchi, | |
39000 | __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use | |
39001 | OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F. | |
39002 | * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator. | |
39003 | (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ. | |
39004 | ||
39005 | 2017-01-26 Marek Polacek <polacek@redhat.com> | |
39006 | ||
39007 | PR c/79199 | |
39008 | * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL | |
39009 | for the third operand. | |
39010 | ||
39011 | 2017-01-26 Jakub Jelinek <jakub@redhat.com> | |
39012 | ||
39013 | PR middle-end/79236 | |
39014 | * omp-low.c (struct omp_context): Add simt_stmt field. | |
39015 | (scan_omp_for): Return omp_context *. | |
39016 | (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD | |
39017 | context to the _simt_ SIMD stmt. | |
39018 | (lower_omp_for): For combined SIMD with sibling _simt_ | |
39019 | SIMD, make sure to use the same decls in _looptemp_ | |
39020 | clauses as in the sibling. | |
39021 | ||
39022 | 2017-01-26 David Sherwood <david.sherwood@arm.com> | |
39023 | ||
39024 | PR middle-end/79212 | |
39025 | * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in | |
39026 | all contexts. | |
39027 | ||
39028 | 2017-01-26 Jakub Jelinek <jakub@redhat.com> | |
39029 | ||
39030 | PR target/70465 | |
39031 | * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1); | |
39032 | emit fld b; fld a; if possible. | |
39033 | ||
39034 | * brig-builtins.def: Update copyright years. | |
39035 | * config/arm/arm_acle_builtins.def: Update copyright years. | |
39036 | ||
39037 | 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com> | |
39038 | ||
39039 | PR target/79179 | |
39040 | * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY | |
39041 | constraint instead of o for the stxsd instruction. | |
39042 | ||
39043 | 2017-01-25 Carl Love <cel@us.ibm.com> | |
39044 | ||
39045 | * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order | |
39046 | of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD. | |
39047 | ||
39048 | 2017-01-25 Jonathan Wakely <jwakely@redhat.com> | |
39049 | ||
39050 | * doc/invoke.texi (C++ Dialect Options): Fix typo. | |
39051 | ||
39052 | 2017-01-25 Richard Biener <rguenther@suse.de> | |
39053 | ||
39054 | PR tree-optimization/69264 | |
39055 | * target.def (vector_alignment_reachable): Improve documentation. | |
39056 | * doc/tm.texi: Regenerate. | |
39057 | * targhooks.c (default_builtin_vector_alignment_reachable): Simplify | |
39058 | and add a comment. | |
39059 | * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert | |
39060 | earlier changes with respect to TYPE_USER_ALIGN. | |
39061 | (vector_alignment_reachable_p): Likewise. Improve dumping. | |
39062 | ||
39063 | 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
39064 | ||
39065 | PR target/79145 | |
39066 | * config/arm/arm.md (xordi3): Force constant operand into a register | |
39067 | for TARGET_IWMMXT. | |
39068 | ||
39069 | 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
39070 | ||
39071 | * doc/invoke.texi (-fstore-merging): Correct default optimization | |
39072 | levels at which it is enabled. | |
39073 | (-O): Move -fstore-merging from list to... | |
39074 | (-O2): ... Here. | |
39075 | ||
39076 | 2017-01-25 Richard Biener <rguenther@suse.de> | |
39077 | ||
39078 | PR debug/78363 | |
39079 | * omp-expand.c: Include debug.h. | |
39080 | (expand_omp_taskreg): Make sure to generate early debug before | |
39081 | outlining anything from a function. | |
39082 | (expand_omp_target): Likewise. | |
39083 | (grid_expand_target_grid_body): Likewise. | |
39084 | ||
39085 | 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com> | |
39086 | ||
39087 | PR lto/79061 | |
39088 | * asan.c (get_translation_unit_decl): New function. | |
39089 | (asan_add_global): Extract modules file name from globals | |
39090 | TRANSLATION_UNIT_DECL name. | |
39091 | ||
39092 | 2017-01-24 Eric Botcazou <ebotcazou@adacore.com> | |
39093 | ||
39094 | PR target/77439 | |
39095 | * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction | |
39096 | for long calls with APCS frame and VFP. | |
39097 | ||
39098 | 2017-01-24 David Malcolm <dmalcolm@redhat.com> | |
39099 | ||
39100 | * cfg.c (original_copy_tables_initialized_p): New function. | |
39101 | * cfg.h (original_copy_tables_initialized_p): New decl. | |
39102 | * cfgrtl.c (relink_block_chain): Guard the call to | |
39103 | free_original_copy_tables with a call to | |
39104 | original_copy_tables_initialized_p. | |
39105 | * cgraph.h (symtab_node::native_rtl_p): New decl. | |
39106 | * cgraphunit.c (symtab_node::native_rtl_p): New function. | |
39107 | (symtab_node::needed_p): Don't assert for early assembly output | |
39108 | for __RTL functions. | |
39109 | (cgraph_node::finalize_function): Set "force_output" for __RTL | |
39110 | functions. | |
39111 | (cgraph_node::analyze): Bail out early for __RTL functions. | |
39112 | (analyze_functions): Update assertion to support __RTL functions. | |
39113 | (cgraph_node::expand): Bail out early for __RTL functions. | |
39114 | * final.c (rest_of_clean_state): Don't call delete_tree_ssa for | |
39115 | __RTL functions. | |
39116 | * function.h (struct function): Update comment for field | |
39117 | "pass_startwith". | |
39118 | * gimple-expr.c: Include "tree-pass.h". | |
39119 | (gimple_has_body_p): Return false for __RTL functions. | |
39120 | * Makefile.in (OBJS): Add run-rtl-passes.o. | |
39121 | * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New | |
39122 | accessor. | |
39123 | (gcc::pass_manager::get_clean_slate): New accessor. | |
39124 | * passes.c: Include "insn-addr.h". | |
39125 | (should_skip_pass_p): Add logging. Update logic for running | |
39126 | "expand" to be compatible with both __GIMPLE and __RTL. Guard | |
39127 | property-provider override so it is only done for gimple passes. | |
39128 | Don't skip dfinit. | |
39129 | (skip_pass): New function. | |
39130 | (execute_one_pass): Call skip_pass when skipping passes. | |
39131 | * read-md.c (md_reader::read_char): Support filtering | |
39132 | the input to a subset of line numbers. | |
39133 | (md_reader::md_reader): Initialize fields | |
39134 | m_first_line and m_last_line. | |
39135 | (md_reader::read_file_fragment): New function. | |
39136 | * read-md.h (md_reader::read_file_fragment): New decl. | |
39137 | (md_reader::m_first_line): New field. | |
39138 | (md_reader::m_last_line): New field. | |
39139 | * read-rtl-function.c (function_reader::create_function): Only | |
39140 | create cfun if it doesn't already exist. Set PROP_rtl on cfun's | |
39141 | curr_properties. Set DECL_INITIAL to a dummy block. | |
39142 | (read_rtl_function_body_from_file_range): New function. | |
39143 | * read-rtl-function.h (read_rtl_function_body_from_file_range): | |
39144 | New decl. | |
39145 | * run-rtl-passes.c: New file. | |
39146 | * run-rtl-passes.h: New file. | |
39147 | ||
39148 | 2017-01-24 Jeff Law <law@redhat.com> | |
39149 | ||
39150 | * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase | |
39151 | buffer size. | |
39152 | ||
39153 | 2017-01-24 Bin Cheng <bin.cheng@arm.com> | |
39154 | ||
39155 | PR tree-optimization/79159 | |
39156 | * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function. | |
39157 | (record_nonwrapping_iv): Improve boundary using above function if no | |
39158 | value range information. | |
39159 | ||
39160 | 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com> | |
39161 | Martin Jambor <mjambor@suse.cz> | |
39162 | ||
39163 | * brig-builtins.def: New file. | |
39164 | * builtins.def (DEF_HSAIL_BUILTIN): New macro. | |
39165 | (DEF_HSAIL_ATOMIC_BUILTIN): Likewise. | |
39166 | (DEF_HSAIL_SAT_BUILTIN): Likewise. | |
39167 | (DEF_HSAIL_INTR_BUILTIN): Likewise. | |
39168 | (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise. | |
39169 | * builtin-types.def (BT_INT8): New. | |
39170 | (BT_INT16): Likewise. | |
39171 | (BT_UINT8): Likewise. | |
39172 | (BT_UINT16): Likewise. | |
39173 | (BT_FN_ULONG): Likewise. | |
39174 | (BT_FN_UINT_INT): Likewise. | |
39175 | (BT_FN_UINT_ULONG): Likewise. | |
39176 | (BT_FN_UINT_LONG): Likewise. | |
39177 | (BT_FN_UINT_PTR): Likewise. | |
39178 | (BT_FN_ULONG_PTR): Likewise. | |
39179 | (BT_FN_INT8_FLOAT): Likewise. | |
39180 | (BT_FN_INT16_FLOAT): Likewise. | |
39181 | (BT_FN_UINT32_FLOAT): Likewise. | |
39182 | (BT_FN_UINT16_FLOAT): Likewise. | |
39183 | (BT_FN_UINT8_FLOAT): Likewise. | |
39184 | (BT_FN_UINT64_FLOAT): Likewise. | |
39185 | (BT_FN_UINT16_UINT32): Likewise. | |
39186 | (BT_FN_UINT32_UINT16): Likewise. | |
39187 | (BT_FN_UINT16_UINT16_UINT16): Likewise. | |
39188 | (BT_FN_INT_PTR_INT): Likewise. | |
39189 | (BT_FN_UINT_PTR_UINT): Likewise. | |
39190 | (BT_FN_LONG_PTR_LONG): Likewise. | |
39191 | (BT_FN_ULONG_PTR_ULONG): Likewise. | |
39192 | (BT_FN_VOID_UINT64_UINT64): Likewise. | |
39193 | (BT_FN_UINT8_UINT8_UINT8): Likewise. | |
39194 | (BT_FN_INT8_INT8_INT8): Likewise. | |
39195 | (BT_FN_INT16_INT16_INT16): Likewise. | |
39196 | (BT_FN_INT_INT_INT): Likewise. | |
39197 | (BT_FN_UINT_FLOAT_UINT): Likewise. | |
39198 | (BT_FN_FLOAT_UINT_UINT): Likewise. | |
39199 | (BT_FN_ULONG_UINT_UINT): Likewise. | |
39200 | (BT_FN_ULONG_UINT_PTR): Likewise. | |
39201 | (BT_FN_ULONG_ULONG_ULONG): Likewise. | |
39202 | (BT_FN_UINT_UINT_UINT): Likewise. | |
39203 | (BT_FN_VOID_UINT_PTR): Likewise. | |
39204 | (BT_FN_UINT_UINT_PTR: Likewise. | |
39205 | (BT_FN_UINT32_UINT64_PTR): Likewise. | |
39206 | (BT_FN_INT_INT_UINT_UINT): Likewise. | |
39207 | (BT_FN_UINT_UINT_UINT_UINT): Likewise. | |
39208 | (BT_FN_UINT_UINT_UINT_PTR): Likewise. | |
39209 | (BT_FN_UINT_ULONG_ULONG_UINT): Likewise. | |
39210 | (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise. | |
39211 | (BT_FN_LONG_LONG_UINT_UINT): Likewise. | |
39212 | (BT_FN_ULONG_ULONG_UINT_UINT): Likewise. | |
39213 | (BT_FN_VOID_UINT32_UINT64_PTR): Likewise. | |
39214 | (BT_FN_VOID_UINT32_UINT32_PTR): Likewise. | |
39215 | (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise. | |
39216 | (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise. | |
39217 | (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise. | |
39218 | * doc/frontends.texi: List BRIG FE. | |
39219 | * doc/install.texi (Testing): Add BRIG tesring requirements. | |
39220 | * doc/invoke.texi (Overall Options): Mention BRIG. | |
39221 | * doc/standards.texi (Standards): Doucment BRIG HSA version. | |
39222 | ||
39223 | 2017-01-24 Richard Biener <rguenther@suse.de> | |
39224 | ||
39225 | PR translation/79208 | |
39226 | * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic. | |
39227 | ||
39228 | 2017-01-24 Martin Jambor <mjambor@suse.cz> | |
39229 | ||
39230 | PR bootstrap/79198 | |
39231 | * ipa-prop.c (ipa_free_all_node_params): Call summary destructor. | |
39232 | * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts | |
39233 | and known_contexts. | |
39234 | ||
39235 | 2017-01-24 Aldy Hernandez <aldyh@redhat.com> | |
39236 | ||
39237 | PR middle-end/79123 | |
39238 | * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure | |
39239 | casts from signed to unsigned really don't have a range. | |
39240 | ||
39241 | 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de> | |
39242 | ||
39243 | * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to | |
39244 | GMP_RNDx for compatiblity. | |
39245 | ||
39246 | 2017-01-24 Martin Liska <mliska@suse.cz> | |
39247 | ||
39248 | PR bootstrap/79132 | |
39249 | * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert | |
39250 | that would prevent us to call alloca with -1 as argument. | |
39251 | ||
39252 | 2017-01-24 Jakub Jelinek <jakub@redhat.com> | |
39253 | ||
39254 | * dwarf2out.c (output_compilation_unit_header, output_file_names): | |
39255 | Avoid -Wformat-security warning. | |
39256 | ||
39257 | 2017-01-23 Andrew Pinski <apinski@cavium.com> | |
39258 | ||
39259 | * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve | |
39260 | cost table. | |
39261 | ||
39262 | 2017-01-23 Martin Sebor <msebor@redhat.com> | |
39263 | ||
39264 | PR middle-end/78703 | |
39265 | * gimple-ssa-sprintf.c (warn_level): New global. | |
39266 | (format_integer): Use it here and throughout the rest of the file. | |
39267 | Use the same switch to compute sign as base. | |
39268 | (maybe_warn): New function. | |
39269 | (format_directive): Factor out warnings into maybe_warn. | |
39270 | Add debugging output. Use warn_level. | |
39271 | (add_bytes): Use warn_level. | |
39272 | (pass_sprintf_length::compute_format_length): Add debugging output. | |
39273 | (try_substitute_return_value): Same. | |
39274 | (pass_sprintf_length::handle_gimple_call): Set and use warn_level. | |
39275 | ||
39276 | PR middle-end/78703 | |
39277 | * gimple-ssa-sprintf.c (struct format_result): Remove constant member. | |
39278 | (struct fmtresult, format_integer, format_floating): Adjust. | |
39279 | (fmtresult::fmtresult): Set max correctly in two argument ctor. | |
39280 | (get_string_length, format_string,format_directive): Same. | |
39281 | (pass_sprintf_length::compute_format_length): Same. | |
39282 | (try_substitute_return_value): Simplify slightly. | |
39283 | ||
39284 | PR middle-end/78703 | |
39285 | * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting. | |
39286 | (fmtresult::operator+=): Outlined. | |
39287 | (struct fmtresult): Add ctors. | |
39288 | (struct conversion_spec): Rename... | |
39289 | (struct directive): ...to this. Add and remove data members. | |
39290 | (directive::set_width, directive::set_precision): New functions. | |
39291 | (format_percent): Use fmtresult ctor. | |
39292 | (get_width_and_precision): Remove. | |
39293 | (format_integer): Make naming changes. Avoid computing width and | |
39294 | precision. | |
39295 | (format_floating): Same. Adjust indentation. | |
39296 | (format_character, format_none): New functions. | |
39297 | (format_string): Moved character handling to format_character. | |
39298 | (format_directive): Remove arguments, change return type. | |
39299 | (parse_directive): New function. | |
39300 | (pass_sprintf_length::compute_format_length): Move directive | |
39301 | parsing to parse_directive. | |
39302 | ||
39303 | 2017-01-23 Jakub Jelinek <jakub@redhat.com> | |
39304 | ||
39305 | * tree.h (assign_assembler_name_if_neeeded): Rename to ... | |
39306 | (assign_assembler_name_if_needed): ... this. | |
39307 | * tree.c (assign_assembler_name_if_neeeded): Rename to ... | |
39308 | (assign_assembler_name_if_needed): ... this. | |
39309 | (free_lang_data_in_cgraph): Adjust callers. | |
39310 | * cgraphunit.c (cgraph_node::analyze): Likewise. | |
39311 | * omp-expand.c (expand_omp_taskreg, expand_omp_target): | |
39312 | Likewise. | |
39313 | ||
39314 | 2017-01-23 Richard Biener <rguenther@suse.de> | |
39315 | ||
39316 | PR tree-optimization/79088 | |
39317 | PR tree-optimization/79188 | |
39318 | * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code | |
39319 | resetting loop bounds after last path deletion. Reset loop | |
39320 | bounds of the target loop, make code match the comments. | |
39321 | * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute): | |
39322 | Make sure loops need no fixups. | |
39323 | ||
39324 | 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
39325 | ||
39326 | * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert | |
39327 | exponent support with double type for first argument. | |
39328 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed | |
39329 | type returned by __builtin_vec_extract_sig, | |
39330 | __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp | |
39331 | functions from "vector int" to "vector unsigned int" or from | |
39332 | "vector long long int" to "vector unsigned long long int". | |
39333 | Changed type returned by __builtin_vec_extract_exp, | |
39334 | __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp | |
39335 | functions from "vector int" to "vector unsigned int" or from | |
39336 | "vector long long int" to "vector unsigned long long int". | |
39337 | Changed return type of __builtin_vec_test_data_class, | |
39338 | __builtin_vec_test_data_class_sp, and | |
39339 | __builtin_vec_test_data_class_dp from "vector int" to | |
39340 | "vector bool int" or from "vector long long int" to "vector bool | |
39341 | long long int" and changed second argument type from "unsigned | |
39342 | int" to "int". Added new overloaded function forms "vector float | |
39343 | __builtin_vec_insert_exp (vector float, vector unsigned int)" and | |
39344 | "vector float __builtin_vec_insert_exp_sp (vector float, vector | |
39345 | unsigned int)" and "vector double __builtin_vec_insert_exp (vector | |
39346 | double, vector unsigned long long int)" and "vector double | |
39347 | __builtin_vec_insert_exp_dp (vector double, vector unsigned long | |
39348 | long int)". Changed return type of | |
39349 | __builtin_scalar_test_data_class and | |
39350 | __builtin_scalar_test_data_class_sp and | |
39351 | __builtin_scalar_test_data_class_dp from "unsigned int" to "bool | |
39352 | int" and changed second argument from "unsigned int" to "int". | |
39353 | Changed type returned by __builtin_scalar_test_neg, | |
39354 | __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp | |
39355 | from "int" to "bool int". Added new overloaded function form | |
39356 | "double __builtin_scalar_insert_exp (double, unsigned long long int)". | |
39357 | * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert | |
39358 | exponent double-precision with floating point first argument. | |
39359 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust | |
39360 | documentation of scalar_test_data_class, scalar_test_neg, | |
39361 | scalar_extract_sig, scalar_extract_exp, scalar_insert_exp, | |
39362 | vector_extract_exp, vec_extract_sig, vec_insert_exp, and | |
39363 | vec_test_data_class built-in functions to reflect refinements in | |
39364 | their type signatures. | |
39365 | ||
39366 | 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org> | |
39367 | ||
39368 | * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase | |
39369 | size of buf. | |
39370 | (aarch64_elf_asm_destructor): Likewise. | |
39371 | ||
39372 | 2017-01-23 Bernd Schmidt <bschmidt@redhat.com> | |
39373 | ||
39374 | PR rtl-optimization/78634 | |
39375 | * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function. | |
39376 | (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define. | |
39377 | * ifcvt.c (noce_try_cmove): Add missing cost check. | |
39378 | ||
39379 | PR rtl-optimization/71724 | |
39380 | * combine.c (if_then_else_cond): Look for situations where it is | |
39381 | beneficial to undo the work of one of the recursive calls. | |
39382 | ||
39383 | 2017-01-23 Bin Cheng <bin.cheng@arm.com> | |
39384 | ||
39385 | PR tree-optimization/70754 | |
39386 | * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE. | |
39387 | (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert | |
39388 | combined stmt before it if not NULL. | |
39389 | (combine_chains): Process refs reversely and compute dominance point | |
39390 | for root ref. | |
39391 | ||
39392 | 2017-01-23 Martin Liska <mliska@suse.cz> | |
39393 | ||
39394 | PR tree-optimization/79196 | |
39395 | * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ... | |
39396 | (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp | |
39397 | instead of memcmp. | |
39398 | (strlen_optimize_stmt): Call the renamed function. | |
39399 | ||
39400 | 2017-01-23 Michael Matz <matz@suse.de> | |
39401 | ||
39402 | PR tree-optimization/78384 | |
39403 | * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge. | |
39404 | ||
39405 | 2017-01-23 Richard Biener <rguenther@suse.de> | |
39406 | ||
39407 | PR tree-optimization/79186 | |
39408 | * tree-vrp.c (register_new_assert_for): Make sure we've seen | |
39409 | both incoming edges before moving an assert. | |
39410 | ||
39411 | 2017-01-23 Martin Jambor <mjambor@suse.cz> | |
39412 | ||
39413 | * ipa-prop.c (load_from_param_1): Removed. | |
39414 | (load_from_unmodified_param): Bits from load_from_param_1 put back | |
39415 | here. | |
39416 | (load_from_param): Removed. | |
39417 | (compute_complex_assign_jump_func): Removed stmt2 and just replaced it | |
39418 | with stmt. Reverted back to use of load_from_unmodified_param. | |
39419 | ||
39420 | 2017-01-23 Martin Jambor <mjambor@suse.cz> | |
39421 | ||
39422 | PR ipa/79108 | |
39423 | * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()). | |
39424 | (ipa_node_params): Annotate with GTY((for_user)). Make descriptors | |
39425 | field a pointer to garbage collected vector, mark lattices and | |
39426 | ipcp_orig_node with GTY((skip)). | |
39427 | (ipa_get_param_count): Adjust to descriptors being a pointer. | |
39428 | (ipa_get_param): Likewise. | |
39429 | (ipa_get_type): Likewise. | |
39430 | (ipa_get_param_move_cost): Likewise. | |
39431 | (ipa_set_param_used): Likewise. | |
39432 | (ipa_get_controlled_uses): Likewise. | |
39433 | (ipa_set_controlled_uses): Likewise. | |
39434 | (ipa_is_param_used): Likewise. | |
39435 | (ipa_node_params_t): Move into garbage collector. New methods insert | |
39436 | and remove. | |
39437 | (ipa_node_params_sum): Annotate wth GTY(()). | |
39438 | (ipa_check_create_node_params): Adjust to ipa_node_params_sum being | |
39439 | garbage collected. | |
39440 | (ipa_load_from_parm_agg): Adjust declaration. | |
39441 | * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer. | |
39442 | * ipa-profile.c (ipa_profile): Likewise. | |
39443 | * ipa-prop.c (ipa_get_param_decl_index_1): Likewise. | |
39444 | (ipa_populate_param_decls): Make descriptors parameter garbage | |
39445 | collected. | |
39446 | (ipa_dump_param): Adjust to descriptors being a pointer. | |
39447 | (ipa_alloc_node_params): Likewise. | |
39448 | (ipa_initialize_node_params): Likewise. | |
39449 | (load_from_param_1): Make descriptors parameter garbage collected. | |
39450 | (load_from_unmodified_param): Likewise. | |
39451 | (load_from_param): Likewise. | |
39452 | (ipa_load_from_parm_agg): Likewise. | |
39453 | (ipa_node_params::~ipa_node_params): Removed. | |
39454 | (ipa_free_all_node_params): Remove call to delete operator. | |
39455 | (ipa_node_params_t::insert): New. | |
39456 | (ipa_node_params_t::remove): Likewise. | |
39457 | (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer, | |
39458 | copy known_csts and known_contexts vectors. | |
39459 | (ipa_read_node_info): Adjust to descriptors being a pointer. | |
39460 | (ipcp_modif_dom_walker): Make m_descriptors field garbage | |
39461 | collected. | |
39462 | (ipcp_transform_function): Make descriptors variable garbage | |
39463 | collected. | |
39464 | ||
39465 | 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com> | |
39466 | ||
39467 | * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics. | |
39468 | * config/i386/avx512dqintrin.h: Ditto. | |
39469 | * config/i386/avx512fintrin.h: Ditto. | |
39470 | * config/i386/i386.c: Handle new builtins. | |
39471 | * config/i386/i386-builtin.def: Add new builtins. | |
39472 | * config/i386/sse.md (ktest<mode>, kortest<mode>): New. | |
39473 | (UNSPEC_KORTEST, UNSPEC_KTEST): New. | |
39474 | ||
39475 | 2017-01-23 Jakub Jelinek <jakub@redhat.com> | |
39476 | Martin Liska <mliska@suse.cz> | |
39477 | ||
39478 | * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE. | |
39479 | * asan.c (asan_expand_poison_ifn): Support stores and use | |
39480 | appropriate ASAN report function. | |
39481 | * internal-fn.c (expand_ASAN_POISON_USE): New function. | |
39482 | * internal-fn.def (ASAN_POISON_USE): Declare. | |
39483 | * tree-into-ssa.c (maybe_add_asan_poison_write): New function. | |
39484 | (maybe_register_def): Create ASAN_POISON_USE when sanitizing. | |
39485 | * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove | |
39486 | ASAN_POISON calls w/o LHS. | |
39487 | * tree-ssa.c (execute_update_addresses_taken): Create clobber | |
39488 | for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS | |
39489 | from ASAN_MARK (POISON, &x, ...) coming to a PHI node. | |
39490 | * gimplify.c (asan_poison_variables): Add attribute | |
39491 | use_after_scope_memory to variables that really needs to live | |
39492 | in memory. | |
39493 | * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when | |
39494 | having the attribute. | |
39495 | ||
39496 | 2017-01-23 Martin Liska <mliska@suse.cz> | |
39497 | ||
39498 | * asan.c (create_asan_shadow_var): New function. | |
39499 | (asan_expand_poison_ifn): Likewise. | |
39500 | * asan.h (asan_expand_poison_ifn): New declaration. | |
39501 | * internal-fn.c (expand_ASAN_POISON): Likewise. | |
39502 | * internal-fn.def (ASAN_POISON): New builtin. | |
39503 | * sanopt.c (pass_sanopt::execute): Expand | |
39504 | asan_expand_poison_ifn. | |
39505 | * tree-inline.c (copy_decl_for_dup_finish): Make function | |
39506 | external. | |
39507 | * tree-inline.h (copy_decl_for_dup_finish): Likewise. | |
39508 | * tree-ssa.c (is_asan_mark_p): New function. | |
39509 | (execute_update_addresses_taken): Rewrite local variables | |
39510 | (identified just by use-after-scope as addressable) into SSA. | |
39511 | ||
39512 | 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com> | |
39513 | ||
39514 | * doc/install.texi (Specific): opensource.apple.com uses https | |
39515 | now. Remove trailing slash. | |
39516 | ||
39517 | 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com> | |
39518 | ||
39519 | * README.Portability: Remove note on an Irix compatibility issue. | |
39520 | ||
39521 | 2017-01-22 Dimitry Andric <dim@FreeBSD.org> | |
39522 | ||
39523 | * gcov.c (INCLUDE_ALGORITHM): Define. | |
39524 | (INCLUDE_VECTOR): Define. | |
39525 | No longer include <vector> and <algorithm> directly. | |
39526 | ||
39527 | 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com> | |
39528 | ||
39529 | * doc/extend.texi (Thread-Local): Change www.akkadia.org reference | |
39530 | to https. | |
39531 | * doc/invoke.texi (Code Gen Options): Ditto. | |
39532 | ||
39533 | 2017-01-21 Jan Hubicka <hubicka@ucw.cz> | |
39534 | ||
39535 | PR lto/78407 | |
39536 | * cfg.c (update_bb_profile_for_threading): Fix updating of probablity. | |
39537 | ||
39538 | 2017-01-21 Bernd Schmidt <bschmidt@redhat.com> | |
39539 | ||
39540 | rtl-optimization/79125 | |
39541 | * cprop.c (local_cprop_pass): Handle cases where we make an | |
39542 | unconditional trap. | |
39543 | ||
39544 | 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org> | |
39545 | ||
39546 | PR target/61729 | |
39547 | PR target/77850 | |
39548 | * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to | |
39549 | read from, for big endian. | |
39550 | ||
39551 | 2017-01-20 Jiong Wang <jiong.wang@arm.com> | |
39552 | ||
39553 | * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register | |
39554 | register pauth builtins for LP64 only. | |
39555 | ||
39556 | 2017-01-20 Marek Polacek <polacek@redhat.com> | |
39557 | ||
39558 | PR c/79152 | |
39559 | * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive | |
39560 | non-case labels. | |
39561 | ||
39562 | 2017-01-20 Alexander Monakov <amonakov@ispras.ru> | |
39563 | ||
39564 | * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless | |
39565 | of safelen status. | |
39566 | * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev. | |
39567 | * passes.c (dump_properties): Handle PROP_gimple_lomp_dev. | |
39568 | * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev. | |
39569 | ||
39570 | 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
39571 | ||
39572 | PR target/71270 | |
39573 | * config/arm/arm.c (neon_valid_immediate): Reject vector constants | |
39574 | in big-endian mode when they are not a single duplicated value. | |
39575 | ||
39576 | 2017-01-20 Richard Biener <rguenther@suse.de> | |
39577 | ||
39578 | * BASE-VER: Bump to 7.0.1. | |
39579 | ||
39580 | 2017-01-20 Alexander Monakov <amonakov@ispras.ru> | |
39581 | ||
39582 | * omp-low.c (omplow_simd_context): New struct. Use it... | |
39583 | (lower_rec_simd_input_clauses): ...here and... | |
39584 | (lower_rec_input_clauses): ...here to hold common data. Adjust all | |
39585 | references to idx, lane, max_vf, is_simt. | |
39586 | ||
39587 | 2017-01-20 Graham Markall <graham.markall@embecosm.com> | |
39588 | ||
39589 | * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when | |
39590 | mcpu=nps400. | |
39591 | ||
39592 | 2017-01-20 Martin Jambor <mjambor@suse.cz> | |
39593 | ||
39594 | * hsa.h: Renaed to hsa-common.h. Adjusted a comment. | |
39595 | * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to | |
39596 | gt-hsa-common.h. | |
39597 | * Makefile.in (OBJS): Rename hsa.o to hsa-common.o. | |
39598 | (GTFILES): Rename hsa.c to hsa-common.c. | |
39599 | * hsa-brig.c: Change include of hsa.h to hsa-common.h. | |
39600 | * hsa-dump.c: Likewise. | |
39601 | * hsa-gen.c: Likewise. | |
39602 | * hsa-regalloc.c: Likewise. | |
39603 | * ipa-hsa.c: Likewise. | |
39604 | * omp-expand.c: Likewise. | |
39605 | * omp-low.c: Likewise. | |
39606 | * toplev.c: Likewise. | |
39607 | ||
39608 | 2017-01-20 Marek Polacek <polacek@redhat.com> | |
39609 | ||
39610 | PR c/64279 | |
39611 | * doc/invoke.texi: Document -Wduplicated-branches. | |
39612 | * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR, | |
39613 | COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR, | |
39614 | POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT, | |
39615 | STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions | |
39616 | return 0 only when not OEP_LEXICOGRAPHIC. | |
39617 | (fold_build_cleanup_point_expr): Use the expression | |
39618 | location when building CLEANUP_POINT_EXPR. | |
39619 | * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC. | |
39620 | * tree.c (add_expr): Handle error_mark_node. | |
39621 | ||
39622 | 2017-01-20 Martin Liska <mliska@suse.cz> | |
39623 | ||
39624 | PR lto/69188 | |
39625 | * tree-profile.c (init_ic_make_global_vars): Do not call | |
39626 | finalize_decl. | |
39627 | (gimple_init_gcov_profiler): Likewise. | |
39628 | ||
39629 | 2017-01-20 Martin Liska <mliska@suse.cz> | |
39630 | ||
39631 | PR ipa/71190 | |
39632 | * cgraph.h (maybe_create_reference): Remove argument and | |
39633 | update comment. | |
39634 | * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one | |
39635 | argument. | |
39636 | * ipa-cp.c (create_specialized_node): Likewise. | |
39637 | * symtab.c (symtab_node::maybe_create_reference): Handle | |
39638 | VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type. | |
39639 | ||
39640 | 2017-01-20 Martin Liska <mliska@suse.cz> | |
39641 | ||
39642 | * read-rtl-function.c (function_reader::create_function): Use | |
39643 | build_decl instread of build_decl_stat. | |
39644 | ||
39645 | 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com> | |
39646 | ||
39647 | * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics. | |
39648 | * config/i386/avx512dqintrin.h: Ditto. | |
39649 | * config/i386/avx512fintrin.h: Ditto. | |
39650 | * config/i386/i386-builtin-types.def: Add new types. | |
39651 | * config/i386/i386.c: Handle new types. | |
39652 | * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi) | |
39653 | (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi) | |
39654 | (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi) | |
39655 | (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi) | |
39656 | (__builtin_ia32_kshiftridi): New. | |
39657 | * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>. | |
39658 | ||
39659 | 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org> | |
39660 | ||
39661 | PR target/78875 | |
39662 | PR target/79140 | |
39663 | * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally | |
39664 | define to rs6000_init_stack_protect_guard. | |
39665 | (rs6000_init_stack_protect_guard): New function. | |
39666 | ||
39667 | 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com> | |
39668 | Yunqiang Su <yunqiang.su@imgtec.com> | |
39669 | ||
39670 | * config.gcc (supported_defaults): Add madd4. | |
39671 | (with_madd4): Add validation. | |
39672 | (all_defaults): Add madd4. | |
39673 | * config/mips/mips.opt (mmadd4): New option. | |
39674 | * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for | |
39675 | mmadd4. | |
39676 | (TARGET_CPU_CPP_BUILTINS): Add builtin_define for | |
39677 | __mips_no_madd4. | |
39678 | (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4. | |
39679 | (ISA_HAS_FUSED_MADD4): Likewise. | |
39680 | * doc/invoke.texi (-mmadd4): Document the new option. | |
39681 | * doc/install.texi (--with-madd4): Document the new option. | |
39682 | ||
39683 | 2017-01-19 Jiong Wang <jiong.wang@arm.com> | |
39684 | ||
39685 | * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New | |
39686 | entries for AARCH64_PAUTH_BUILTIN_XPACLRI, | |
39687 | AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716. | |
39688 | (aarch64_init_pauth_hint_builtins): New. | |
39689 | (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins. | |
39690 | (aarch64_expand_builtin): Expand new builtins. | |
39691 | ||
39692 | 2017-01-19 Jiong Wang <jiong.wang@arm.com> | |
39693 | ||
39694 | * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note. | |
39695 | * combine-stack-adj.c (no_unhandled_cfa): Handle | |
39696 | REG_CFA_TOGGLE_RA_MANGLE. | |
39697 | * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE. | |
39698 | * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF | |
39699 | info for return address signing. | |
39700 | (aarch64_expand_epilogue): Likewise. | |
39701 | ||
39702 | 2017-01-19 Jiong Wang <jiong.wang@arm.com> | |
39703 | ||
39704 | * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum. | |
39705 | * config/aarch64/aarch64-protos.h | |
39706 | (aarch64_return_address_signing_enabled): New declaration. | |
39707 | * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled): | |
39708 | New function. | |
39709 | (aarch64_expand_prologue): Sign return address before it's pushed onto | |
39710 | stack. | |
39711 | (aarch64_expand_epilogue): Authenticate return address fetched from | |
39712 | stack. | |
39713 | (aarch64_override_options): Sanity check for ILP32 and ISA level. | |
39714 | (aarch64_attributes): New function attributes for "sign-return-address". | |
39715 | * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP, | |
39716 | UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs. | |
39717 | ("*do_return"): Generate combined instructions according to key index. | |
39718 | ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New. | |
39719 | * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer | |
39720 | iterators. | |
39721 | (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes. | |
39722 | * config/aarch64/aarch64.opt (msign-return-address=): New. | |
39723 | * doc/extend.texi (AArch64 Function Attributes): Documents | |
39724 | "sign-return-address=". | |
39725 | * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=". | |
39726 | ||
39727 | 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com> | |
39728 | ||
39729 | * doc/invoke.texi: Add missing -mlxc1-sxc1 options to | |
39730 | overall option summary. | |
39731 | ||
39732 | 2017-01-19 Jiong Wang <jiong.wang@arm.com> | |
39733 | ||
39734 | * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a". | |
39735 | * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3, | |
39736 | AARCH64_ISA_V8_3, TARGET_ARMV8_3): New. | |
39737 | * doc/invoke.texi (AArch64 Options): Document "armv8.3-a". | |
39738 | ||
39739 | 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com> | |
39740 | ||
39741 | * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable | |
39742 | -mpower9-minmax by default for -mcpu=power9. | |
39743 | (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE | |
39744 | 128-bit floating point. | |
39745 | ||
39746 | 2017-01-20 Alan Modra <amodra@gmail.com> | |
39747 | ||
39748 | * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if | |
39749 | optimizing for size. | |
39750 | ||
39751 | 2017-01-20 Alan Modra <amodra@gmail.com> | |
39752 | ||
39753 | PR target/79144 | |
39754 | * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name | |
39755 | for strcmp and strncmp from corresponding builtin decl. | |
39756 | ||
39757 | 2017-01-19 Uros Bizjak <ubizjak@gmail.com> | |
39758 | ||
39759 | * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h | |
39760 | instead of i386/rtems-64.h. | |
39761 | * config/i386/rtems-64.h: Remove. | |
39762 | ||
39763 | 2017-01-19 Uros Bizjak <ubizjak@gmail.com> | |
39764 | ||
39765 | PR target/78478 | |
39766 | Revert: | |
39767 | 2013-11-05 Uros Bizjak <ubizjak@gmail.com> | |
39768 | ||
39769 | * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define. | |
39770 | ||
39771 | 2017-01-19 Tamar Christina <tamar.christina@arm.com> | |
39772 | ||
39773 | * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup): | |
39774 | Change int to HOST_WIDE_INT. | |
39775 | * config/aarch64/aarch64-protos.h | |
39776 | (aarch64_simd_gen_const_vector_dup): Likewise. | |
39777 | * config/aarch64/aarch64-simd.md: Add copysign<mode>3. | |
39778 | ||
39779 | 2017-01-19 David Malcolm <dmalcolm@redhat.com> | |
39780 | ||
39781 | * langhooks-def.h (lhd_type_for_size): New decl. | |
39782 | (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size. | |
39783 | * langhooks.c (lhd_type_for_size): New function, taken from | |
39784 | lto_type_for_size. | |
39785 | ||
39786 | 2017-01-19 Pat Haugen <pthaugen@us.ibm.com> | |
39787 | ||
39788 | * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add | |
39789 | define_bypass for CR latency. | |
39790 | (power9-cracked-alu): Update bypass latency and remove power9-branch. | |
39791 | (power9-alu2): Add define_bypass for CR latency. | |
39792 | (power9-cmp): New. | |
39793 | (power9-mul): Update insn latency. | |
39794 | (power9-mul-compare): Update insn latency, bypass latency and remove | |
39795 | power9-branch. | |
39796 | ||
39797 | 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
39798 | ||
39799 | * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads): | |
39800 | Delete. | |
39801 | * config/aarch64/aarch64.md | |
39802 | (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to | |
39803 | aarch64_nopcrelative_literal_loads. | |
39804 | (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise. | |
39805 | ||
39806 | 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com> | |
39807 | ||
39808 | * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for | |
39809 | TARGET_LOONGSON_3A. | |
39810 | (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A. | |
39811 | ||
39812 | 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com> | |
39813 | ||
39814 | PR target/78176 | |
39815 | * config.gcc (supported_defaults): Add lxc1-sxc1. | |
39816 | (with_lxc1_sxc1): Add validation. | |
39817 | (all_defaults): Add lxc1-sxc1. | |
39818 | * config/mips/mips.opt (mlxc1-sxc1): New option. | |
39819 | * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for | |
39820 | mlxc1-sxc1. | |
39821 | (TARGET_CPU_CPP_BUILTINS): Add builtin_define for | |
39822 | __mips_no_lxc1_sxc1. | |
39823 | (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1. | |
39824 | * doc/invoke.texi (-mlxc1-sxc1): Document the new option. | |
39825 | * doc/install.texi (--with-lxc1-sxc1): Document the new option. | |
39826 | ||
39827 | 2017-01-19 Richard Biener <rguenther@suse.de> | |
39828 | ||
39829 | PR tree-optimization/72488 | |
39830 | * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make | |
39831 | sure to restore SSA info. | |
39832 | * tree-ssa.c (verify_ssa): Verify SSA info is not shared. | |
39833 | ||
39834 | 2017-01-19 Richard Earnshaw <rearnsha@arm.com> | |
39835 | ||
39836 | PR rtl-optimization/79121 | |
39837 | * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness | |
39838 | of the inner type when shifting an extended value. | |
39839 | ||
39840 | 2017-01-17 Jan Hubicka <hubicka@ucw.cz> | |
39841 | ||
39842 | PR lto/78407 | |
39843 | * symtab.c (symtab_node::equal_address_to): Fix comparing of | |
39844 | interposable aliases. | |
39845 | ||
39846 | 2017-01-18 Peter Bergner <bergner@vnet.ibm.com> | |
39847 | ||
39848 | PR target/78516 | |
39849 | * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints. | |
39850 | Use the evmergelohi instruction. | |
39851 | (mov_si<mode>_e500_subreg4_2_le): Likewise. | |
39852 | (mov_sitf_e500_subreg8_2_be): Likewise. | |
39853 | (mov_sitf_e500_subreg12_2_le): Likewise. | |
39854 | (mov_si<mode>_e500_subreg0_2_le): Fix constraints. | |
39855 | (mov_si<mode>_e500_subreg4_2_be): Likewise. | |
39856 | (mov_sitf_e500_subreg8_2_le): Likewise. | |
39857 | (mov_sitf_e500_subreg12_2_be): Likewise. | |
39858 | ||
39859 | 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
39860 | ||
39861 | * config/rs6000/altivec.md (altivec_vbpermq): Change "type" | |
39862 | attribute from vecsimple to vecperm. | |
39863 | (altivec_vbpermq2): Likewise. | |
39864 | ||
39865 | 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
39866 | ||
39867 | PR target/79040 | |
39868 | * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz. | |
39869 | ||
39870 | 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
39871 | * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg. | |
39872 | * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand | |
39873 | strcmp. Fix bug where comparison didn't stop with zero byte. Fix | |
39874 | case where N arg is SIZE_MAX. | |
39875 | * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare. | |
39876 | (cmpstrsi): Add pattern. | |
39877 | ||
39878 | 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com> | |
39879 | ||
39880 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
39881 | __builtin_vec_revb builtins. | |
39882 | * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add | |
39883 | built-in functions to support generation of the ISA 3.0 XXBR<x> | |
39884 | vector byte reverse instructions. | |
39885 | (P9V_BUILTIN_XXBRQ_V1TI): Likewise. | |
39886 | (P9V_BUILTIN_XXBRD_V2DI): Likewise. | |
39887 | (P9V_BUILTIN_XXBRD_V2DF): Likewise. | |
39888 | (P9V_BUILTIN_XXBGW_V4SI): Likewise. | |
39889 | (P9V_BUILTIN_XXBGW_V4SF): Likewise. | |
39890 | (P9V_BUILTIN_XXBGH_V8HI): Likewise. | |
39891 | (P9V_BUILTIN_VEC_REVB): Likewise. | |
39892 | * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to | |
39893 | generate the ISA 3.0 XXBR<x> vector byte reverse instructions. | |
39894 | (p9_xxbrq_v16qi): Likewise. | |
39895 | (p9_xxbrd_<mode>, VSX_D iterator): Likewise. | |
39896 | (p9_xxbrw_<mode>, VSX_W iterator): Likewise. | |
39897 | (p9_xxbrh_v8hi): Likewise. | |
39898 | * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0. | |
39899 | * doc/extend.texi (RS/6000 Altivec Built-ins): Document the | |
39900 | vec_revb built-in functions. | |
39901 | ||
39902 | 2017-01-18 Uros Bizjak <ubizjak@gmail.com> | |
39903 | ||
39904 | PR rtl-optimization/78952 | |
39905 | * config/i386/i386.md (any_extract): New code iterator. | |
39906 | (*insvqi_2): Use any_extract for source operand. | |
39907 | (*insvqi_3): Use any_shiftrt for source operand. | |
39908 | ||
39909 | 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com> | |
39910 | ||
39911 | * config/aarch64/aarch64.c (aarch64_sched_adjust_priority) | |
39912 | New function. | |
39913 | (TARGET_SCHED_ADJUST_PRIORITY): Define target hook. | |
39914 | ||
39915 | 2017-01-18 Matthias Klose <doko@ubuntu.com> | |
39916 | ||
39917 | * doc/install.texi: Allow default for --with-target-bdw-gc-include. | |
39918 | ||
39919 | 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
39920 | ||
39921 | * config/rs6000/altivec.h (vec_bperm): Change #define. | |
39922 | * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant. | |
39923 | (altivec_vbpermq2): New define_insn. | |
39924 | (altivec_vbpermd): Likewise. | |
39925 | * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic | |
39926 | function interface. | |
39927 | (VBPERMD): Likewise. | |
39928 | (VBPERM): New polymorphic function interface. | |
39929 | * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table): | |
39930 | Add entries for P9V_BUILTIN_VEC_VBPERM. | |
39931 | * doc/extend.texi: Add interfaces for vec_bperm. | |
39932 | ||
39933 | 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
39934 | ||
39935 | * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase | |
39936 | first letter of error messages. | |
39937 | (s390_resolve_overloaded_builtin): Likewise. | |
39938 | * config/s390/s390.c (s390_expand_builtin): Likewise. | |
39939 | (s390_invalid_arg_for_unprototyped_fn): Likewise. | |
39940 | (s390_valid_target_attribute_inner_p): Likewise. | |
39941 | * config/s390/s390.md ("tabort"): Likewise. | |
39942 | ||
39943 | 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com> | |
39944 | ||
39945 | * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro. | |
39946 | (ISA_AVOID_DIV_HILO): New macro. | |
39947 | (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro. | |
39948 | (ISA_HAS_DDIV): Likewise. | |
39949 | ||
39950 | 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> | |
39951 | ||
39952 | * doc/invoke.texi (fabi-version): Correct number of occurrences. | |
39953 | ||
39954 | 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> | |
39955 | ||
39956 | * doc/invoke.texi (fabi-version): Spelling fix. | |
39957 | ||
39958 | 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> | |
39959 | ||
39960 | PR c++/70182 | |
39961 | * doc/invoke.texi (fabi-version): Mention mangling fix for | |
39962 | operator names. | |
39963 | ||
39964 | 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de> | |
39965 | ||
39966 | PR c++/77489 | |
39967 | * doc/invoke.texi (fabi-version): Document discriminator mangling. | |
39968 | ||
39969 | 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org> | |
39970 | ||
39971 | PR target/78875 | |
39972 | * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum. | |
39973 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle | |
39974 | the new options. | |
39975 | * config/rs6000/rs6000.md (stack_protect_set): Handle the new more | |
39976 | flexible settings. | |
39977 | (stack_protect_test): Ditto. | |
39978 | * config/rs6000/rs6000.opt (mstack-protector-guard=, | |
39979 | mstack-protector-guard-reg=, mstack-protector-guard-offset=): New | |
39980 | options. | |
39981 | * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]: | |
39982 | Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and | |
39983 | -mstack-protector-guard-offset=. | |
39984 | (RS/6000 and PowerPC Options): Ditto. | |
39985 | ||
39986 | 2017-01-17 Uros Bizjak <ubizjak@gmail.com> | |
39987 | ||
39988 | * config/i386/i386.h (MASK_CLASS_P): New define. | |
39989 | * config/i386/i386.c (inline_secondary_memory_needed): Ensure that | |
39990 | there are no registers from different register sets also when | |
39991 | mask registers are used. Update function comment. | |
39992 | * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative | |
39993 | to (*k/*r) and (*k/*km) alternatives. | |
39994 | ||
39995 | 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com> | |
39996 | ||
39997 | * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter. | |
39998 | * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove. | |
39999 | (EH_RETURN_HANDLER_RTX): New define. | |
40000 | * config/aarch64/aarch64.c (aarch64_frame_pointer_required): | |
40001 | Force frame pointer in EH return functions. | |
40002 | (aarch64_expand_epilogue): Add barrier for eh_return. | |
40003 | (aarch64_final_eh_return_addr): Remove. | |
40004 | (aarch64_eh_return_handler_rtx): New function. | |
40005 | * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr): | |
40006 | Remove. | |
40007 | (aarch64_eh_return_handler_rtx): New prototype. | |
40008 | ||
40009 | 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
40010 | ||
40011 | * config/rs6000/altivec.h (vec_rlmi): New #define. | |
40012 | (vec_vrlnm): Likewise. | |
40013 | (vec_rlnm): Likewise. | |
40014 | * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value. | |
40015 | (UNSPEC_VRLNM): Likewise. | |
40016 | (VIlong): New mode iterator. | |
40017 | (altivec_vrl<VI_char>mi): New define_insn. | |
40018 | (altivec_vrl<VI_char>nm): Likewise. | |
40019 | * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic | |
40020 | function entry. | |
40021 | (VRLDNM): Likewise. | |
40022 | (RLNM): New polymorphic function entry. | |
40023 | (VRLWMI): New monomorphic function entry. | |
40024 | (VRLDMI): Likewise. | |
40025 | (RLMI): New polymorphic function entry. | |
40026 | * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add | |
40027 | new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM. | |
40028 | * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and | |
40029 | vec_vrlnm. | |
40030 | ||
40031 | 2017-01-17 Jakub Jelinek <jakub@redhat.com> | |
40032 | ||
40033 | PR debug/78839 | |
40034 | * dwarf2out.c (field_byte_offset): Restore the | |
40035 | PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET | |
40036 | and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold. | |
40037 | (analyze_variants_discr, gen_variant_part): Use fold_build2 instead | |
40038 | of build2 + fold. | |
40039 | ||
40040 | 2017-01-17 Eric Botcazou <ebotcazou@adacore.com> | |
40041 | ||
40042 | PR ada/67205 | |
40043 | * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define | |
40044 | ||
40045 | 2017-01-17 Jakub Jelinek <jakub@redhat.com> | |
40046 | ||
40047 | PR debug/71669 | |
40048 | * dwarf2out.c (add_data_member_location_attribute): For constant | |
40049 | offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute | |
40050 | instead of DW_AT_data_member_location, DW_AT_bit_offset and | |
40051 | DW_AT_byte_size attributes. | |
40052 | ||
40053 | 2017-01-17 Eric Botcazou <ebotcazou@adacore.com> | |
40054 | ||
40055 | * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference | |
40056 | after forcing to constant memory when the code model is medium. | |
40057 | ||
40058 | 2017-01-17 Julia Koval <julia.koval@intel.com> | |
40059 | ||
40060 | PR target/76731 | |
40061 | * config/i386/avx512fintrin.h | |
40062 | (_mm512_i32gather_ps): Change __addr type to void const*. | |
40063 | (_mm512_mask_i32gather_ps): Ditto. | |
40064 | (_mm512_i32gather_pd): Ditto. | |
40065 | (_mm512_mask_i32gather_pd): Ditto. | |
40066 | (_mm512_i64gather_ps): Ditto. | |
40067 | (_mm512_mask_i64gather_ps): Ditto. | |
40068 | (_mm512_i64gather_pd): Ditto. | |
40069 | (_mm512_mask_i64gather_pd): Ditto. | |
40070 | (_mm512_i32gather_epi32): Ditto. | |
40071 | (_mm512_mask_i32gather_epi32): Ditto. | |
40072 | (_mm512_i32gather_epi64): Ditto. | |
40073 | (_mm512_mask_i32gather_epi64): Ditto. | |
40074 | (_mm512_i64gather_epi32): Ditto. | |
40075 | (_mm512_mask_i64gather_epi32): Ditto. | |
40076 | (_mm512_i64gather_epi64): Ditto. | |
40077 | (_mm512_mask_i64gather_epi64): Ditto. | |
40078 | (_mm512_i32scatter_ps): Change __addr type to void*. | |
40079 | (_mm512_mask_i32scatter_ps): Ditto. | |
40080 | (_mm512_i32scatter_pd): Ditto. | |
40081 | (_mm512_mask_i32scatter_pd): Ditto. | |
40082 | (_mm512_i64scatter_ps): Ditto. | |
40083 | (_mm512_mask_i64scatter_ps): Ditto. | |
40084 | (_mm512_i64scatter_pd): Ditto. | |
40085 | (_mm512_mask_i64scatter_pd): Ditto. | |
40086 | (_mm512_i32scatter_epi32): Ditto. | |
40087 | (_mm512_mask_i32scatter_epi32): Ditto. | |
40088 | (_mm512_i32scatter_epi64): Ditto. | |
40089 | (_mm512_mask_i32scatter_epi64): Ditto. | |
40090 | (_mm512_i64scatter_epi32): Ditto. | |
40091 | (_mm512_mask_i64scatter_epi32): Ditto. | |
40092 | (_mm512_i64scatter_epi64): Ditto. | |
40093 | (_mm512_mask_i64scatter_epi64): Ditto. | |
40094 | * config/i386/avx512pfintrin.h | |
40095 | (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*. | |
40096 | (_mm512_mask_prefetch_i32gather_ps): Ditto. | |
40097 | (_mm512_mask_prefetch_i64gather_pd): Ditto. | |
40098 | (_mm512_mask_prefetch_i64gather_ps): Ditto. | |
40099 | (_mm512_prefetch_i32scatter_pd): Change __addr type to void*. | |
40100 | (_mm512_prefetch_i32scatter_ps): Ditto. | |
40101 | (_mm512_mask_prefetch_i32scatter_pd): Ditto. | |
40102 | (_mm512_mask_prefetch_i32scatter_ps): Ditto. | |
40103 | (_mm512_prefetch_i64scatter_pd): Ditto. | |
40104 | (_mm512_prefetch_i64scatter_ps): Ditto. | |
40105 | (_mm512_mask_prefetch_i64scatter_pd): Ditto. | |
40106 | (_mm512_mask_prefetch_i64scatter_ps): Ditto. | |
40107 | * config/i386/avx512vlintrin.h | |
40108 | (_mm256_mmask_i32gather_ps): Change __addr type to void const*. | |
40109 | (_mm_mmask_i32gather_ps): Ditto. | |
40110 | (_mm256_mmask_i32gather_pd): Ditto. | |
40111 | (_mm_mmask_i32gather_pd): Ditto. | |
40112 | (_mm256_mmask_i64gather_ps): Ditto. | |
40113 | (_mm_mmask_i64gather_ps): Ditto. | |
40114 | (_mm256_mmask_i64gather_pd): Ditto. | |
40115 | (_mm_mmask_i64gather_pd): Ditto. | |
40116 | (_mm256_mmask_i32gather_epi32): Ditto. | |
40117 | (_mm_mmask_i32gather_epi32): Ditto. | |
40118 | (_mm256_mmask_i32gather_epi64): Ditto. | |
40119 | (_mm_mmask_i32gather_epi64): Ditto. | |
40120 | (_mm256_mmask_i64gather_epi32): Ditto. | |
40121 | (_mm_mmask_i64gather_epi32): Ditto. | |
40122 | (_mm256_mmask_i64gather_epi64): Ditto. | |
40123 | (_mm_mmask_i64gather_epi64): Ditto. | |
40124 | (_mm256_i32scatter_ps): Change __addr type to void*. | |
40125 | (_mm256_mask_i32scatter_ps): Ditto. | |
40126 | (_mm_i32scatter_ps): Ditto. | |
40127 | (_mm_mask_i32scatter_ps): Ditto. | |
40128 | (_mm256_i32scatter_pd): Ditto. | |
40129 | (_mm256_mask_i32scatter_pd): Ditto. | |
40130 | (_mm_i32scatter_pd): Ditto. | |
40131 | (_mm_mask_i32scatter_pd): Ditto. | |
40132 | (_mm256_i64scatter_ps): Ditto. | |
40133 | (_mm256_mask_i64scatter_ps): Ditto. | |
40134 | (_mm_i64scatter_ps): Ditto. | |
40135 | (_mm_mask_i64scatter_ps): Ditto. | |
40136 | (_mm256_i64scatter_pd): Ditto. | |
40137 | (_mm256_mask_i64scatter_pd): Ditto. | |
40138 | (_mm_i64scatter_pd): Ditto. | |
40139 | (_mm_mask_i64scatter_pd): Ditto. | |
40140 | (_mm256_i32scatter_epi32): Ditto. | |
40141 | (_mm256_mask_i32scatter_epi32): Ditto. | |
40142 | (_mm_i32scatter_epi32): Ditto. | |
40143 | (_mm_mask_i32scatter_epi32): Ditto. | |
40144 | (_mm256_i32scatter_epi64): Ditto. | |
40145 | (_mm256_mask_i32scatter_epi64): Ditto. | |
40146 | (_mm_i32scatter_epi64): Ditto. | |
40147 | (_mm_mask_i32scatter_epi64): Ditto. | |
40148 | (_mm256_i64scatter_epi32): Ditto. | |
40149 | (_mm256_mask_i64scatter_epi32): Ditto. | |
40150 | (_mm_i64scatter_epi32): Ditto. | |
40151 | (_mm_mask_i64scatter_epi32): Ditto. | |
40152 | (_mm256_i64scatter_epi64): Ditto. | |
40153 | (_mm256_mask_i64scatter_epi64): Ditto. | |
40154 | (_mm_i64scatter_epi64): Ditto. | |
40155 | (_mm_mask_i64scatter_epi64): Ditto. | |
40156 | * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT) | |
40157 | (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT) | |
40158 | (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT) | |
40159 | (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT) | |
40160 | (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT) | |
40161 | (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT) | |
40162 | (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT) | |
40163 | (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT) | |
40164 | (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT) | |
40165 | (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT) | |
40166 | (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT) | |
40167 | (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT) | |
40168 | (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT) | |
40169 | (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT) | |
40170 | (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT) | |
40171 | (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT) | |
40172 | (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT) | |
40173 | (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT) | |
40174 | (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT) | |
40175 | (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT) | |
40176 | (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT) | |
40177 | (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT) | |
40178 | (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT) | |
40179 | (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT) | |
40180 | (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT) | |
40181 | (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT) | |
40182 | (VOID_QI_V8DI_PCINT_INT_INT): Remove. | |
40183 | (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT) | |
40184 | (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT) | |
40185 | (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT) | |
40186 | (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT) | |
40187 | (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT) | |
40188 | (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT) | |
40189 | (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT) | |
40190 | (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT) | |
40191 | (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT) | |
40192 | (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT | |
40193 | (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT) | |
40194 | (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT) | |
40195 | (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT) | |
40196 | (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT) | |
40197 | (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT) | |
40198 | (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT) | |
40199 | (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT) | |
40200 | (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT) | |
40201 | (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT) | |
40202 | (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT) | |
40203 | (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT) | |
40204 | (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT) | |
40205 | (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT) | |
40206 | (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT) | |
40207 | (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT) | |
40208 | (VOID_QI_V8DI_PCVOID_INT_INT): Add. | |
40209 | * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin | |
40210 | definitions accordingly. | |
40211 | ||
40212 | 2017-01-17 Kito Cheng <kito.cheng@gmail.com> | |
40213 | Kuan-Lin Chen <kuanlinchentw@gmail.com> | |
40214 | ||
40215 | PR target/79079 | |
40216 | * internal-fn.c (expand_mul_overflow): Use convert_modes instead of | |
40217 | gen_lowpart. | |
40218 | ||
40219 | 2017-01-17 Vladimir Makarov <vmakarov@redhat.com> | |
40220 | ||
40221 | PR target/79058 | |
40222 | * ira-conflicts.c (ira_build_conflicts): Update total conflict | |
40223 | hard regs for inner regno. | |
40224 | ||
40225 | 2017-01-17 Martin Liska <mliska@suse.cz> | |
40226 | ||
40227 | PR ipa/71207 | |
40228 | * ipa-polymorphic-call.c (contains_type_p): Fix wrong | |
40229 | assumption and add comment. | |
40230 | ||
40231 | 2017-01-17 Nathan Sidwell <nathan@acm.org> | |
40232 | ||
40233 | * ipa-visibility.c (localize_node): New function, broken out of ... | |
40234 | (function_and_variable_visibility): ... here. Call it. | |
40235 | ||
40236 | 2017-01-17 Jan Hubicka <hubicka@ucw.cz> | |
40237 | ||
40238 | PR middle-end/77445 | |
40239 | * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): | |
40240 | correctly set frequency of oudgoing edge. | |
40241 | (duplicate_thread_path): Fix profile updating. | |
40242 | ||
40243 | 2017-01-17 Jakub Jelinek <jakub@redhat.com> | |
40244 | ||
40245 | PR other/79046 | |
40246 | * configure.ac: Add GCC_BASE_VER. | |
40247 | * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get | |
40248 | version from BASE-VER file. | |
40249 | (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s). | |
40250 | (gcc.o): Depend on $(BASEVER). | |
40251 | * common.opt (dumpfullversion): New option. | |
40252 | * gcc.c (driver_handle_option): Handle OPT_dumpfullversion. | |
40253 | * doc/invoke.texi: Document -dumpfullversion. | |
40254 | * doc/install.texi: Document --with-gcc-major-version-only. | |
40255 | * configure: Regenerated. | |
40256 | ||
40257 | 2017-01-17 Richard Biener <rguenther@suse.de> | |
40258 | ||
40259 | PR tree-optimization/71433 | |
40260 | * tree-vrp.c (register_new_assert_for): Merge same asserts | |
40261 | on all incoming edges. | |
40262 | (process_assert_insertions_for): Handle insertions at the | |
40263 | beginning of BBs. | |
40264 | ||
40265 | 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com> | |
40266 | ||
40267 | * config/i386/cygwin.h (LIBGCJ_SONAME): Remove. | |
40268 | * config/i386/mingw32.h (LIBGCJ_SONAME): Remove. | |
40269 | ||
40270 | 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org> | |
40271 | ||
40272 | PR target/78633 | |
40273 | * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid | |
40274 | RTL sharing. | |
40275 | ||
40276 | 2017-01-17 Alan Modra <amodra@gmail.com> | |
40277 | ||
40278 | PR target/79066 | |
40279 | * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic. | |
40280 | * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow | |
40281 | symbolic stack limit when pic. | |
40282 | ||
40283 | 2017-01-16 Martin Sebor <msebor@redhat.com> | |
40284 | ||
40285 | PR tree-optimization/78608 | |
40286 | * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN. | |
40287 | ||
40288 | 2017-01-16 Jeff Law <law@redhat.com> | |
40289 | ||
40290 | Revert: | |
40291 | 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com> | |
40292 | * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection | |
40293 | for several include directories that may be relative to sysroot. | |
40294 | * config/i386/x-mingw32 (gplus_includedir): Define. | |
40295 | (gplus_tool_includedir, gplus_backward_include_dir): Likewise. | |
40296 | (native_system_includedir): Likewise. | |
40297 | * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not | |
40298 | override if TARGET_SYSTEM_ROOT is defined. | |
40299 | (NATIVE_SYSTEM_HEADER_DIR): Likewise. | |
40300 | ||
40301 | PR tree-optimization/79090 | |
40302 | PR tree-optimization/33562 | |
40303 | PR tree-optimization/61912 | |
40304 | PR tree-optimization/77485 | |
40305 | * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT | |
40306 | and computed trims into the dump file. | |
40307 | ||
40308 | 2017-01-17 Uros Bizjak <ubizjak@gmail.com> | |
40309 | ||
40310 | * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove. | |
40311 | ||
40312 | 2017-01-16 Jakub Jelinek <jakub@redhat.com> | |
40313 | ||
40314 | PR c/79089 | |
40315 | * gimplify.c (gimplify_init_constructor): If want_value and | |
40316 | object == lhs, unshare lhs to avoid invalid tree sharing. Formatting | |
40317 | fix. | |
40318 | ||
40319 | PR target/79080 | |
40320 | * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on | |
40321 | sequence. Formatting fixes. | |
40322 | (doloop_optimize): Formatting fixes. | |
40323 | ||
40324 | PR driver/49726 | |
40325 | * gcc.c (debug_level_greater_than_spec_func): New function. | |
40326 | (static_spec_functions): Add debug-level-gt spec function. | |
40327 | (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of | |
40328 | !g0. | |
40329 | * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise. | |
40330 | * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise. | |
40331 | * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames, | |
40332 | gpubnames, ggnu-pubnames, gno-record-gcc-switches, | |
40333 | grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs, | |
40334 | gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag. | |
40335 | ||
40336 | 2017-01-16 Uros Bizjak <ubizjak@gmail.com> | |
40337 | ||
40338 | * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and | |
40339 | QImode fixups to general and mask registers only. | |
40340 | ||
40341 | 2017-01-16 Carl Love <cel@us.ibm.com> | |
40342 | ||
40343 | * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support | |
40344 | for built-in functions | |
40345 | vector signed char vec_nabs (vector signed char) | |
40346 | vector signed short vec_nabs (vector signed short) | |
40347 | vector signed int vec_nabs (vector signed int) | |
40348 | vector signed long long vec_nabs (vector signed long long) | |
40349 | vector float vec_nabs (vector float) | |
40350 | vector double vec_nabs (vector double) | |
40351 | * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions | |
40352 | and NABS overload. | |
40353 | * config/rs6000/altivec.md: New define_expand nabs<mode>2 types | |
40354 | * config/rs6000/altivec.h: New define for vec_nabs built-in function. | |
40355 | * doc/extend.texi: Update the documentation file for the new built-in | |
40356 | functions. | |
40357 | ||
40358 | 2017-01-16 Martin Sebor <msebor@redhat.com> | |
40359 | ||
40360 | * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning | |
40361 | message. | |
40362 | ||
40363 | 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
40364 | ||
40365 | * config/rs6000/rs6000.c (rtx_is_swappable_p): Change | |
40366 | UNSPEC_VSX__XXSPLTD to require special splat handling. | |
40367 | ||
40368 | 2017-01-16 David Malcolm <dmalcolm@redhat.com> | |
40369 | ||
40370 | PR bootstrap/78616 | |
40371 | * system.h: Poison strndup. | |
40372 | ||
40373 | 2017-01-16 Alan Modra <amodra@gmail.com> | |
40374 | ||
40375 | PR target/79098 | |
40376 | * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't | |
40377 | use a switch. | |
40378 | ||
40379 | 2017-01-16 Georg-Johann Lay <avr@gjlay.de> | |
40380 | ||
40381 | * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4. | |
40382 | ||
40383 | 2017-01-15 Uros Bizjak <ubizjak@gmail.com> | |
40384 | ||
40385 | * config/i386/i386.c (ix86_legitimate_combined_insn): Do not | |
40386 | call recog here. Assert that INSN_CODE (insn) is non-negative. | |
40387 | ||
40388 | 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org> | |
40389 | ||
40390 | PR target/72749 | |
40391 | * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the | |
40392 | fallthrough. | |
40393 | * haifa-sched.c (dump_insn_stream): Don't crash if there is a label | |
40394 | in the currently scheduled RTL fragment. | |
40395 | ||
40396 | 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org> | |
40397 | ||
40398 | PR rtl-optimization/78751 | |
40399 | * ifcvt.c (find_cond_trap): If we generated a non-existing insn, | |
40400 | give up. | |
40401 | ||
40402 | 2017-01-14 Jeff Law <law@redhat.com> | |
40403 | ||
40404 | PR tree-optimization/79090 | |
40405 | * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and | |
40406 | variable length stores. | |
40407 | (compute_trims): Delete dead assignment to *trim_tail. | |
40408 | (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with | |
40409 | zero length. | |
40410 | ||
40411 | 2017-01-14 Bernd Schmidt <bschmidt@redhat.com> | |
40412 | ||
40413 | PR rtl-optimization/78626 | |
40414 | PR rtl-optimization/78727 | |
40415 | * cprop.c (one_cprop_pass): Collect unconditional traps in the middle | |
40416 | of a block, and split such blocks after everything else is finished. | |
40417 | ||
40418 | 2017-01-14 Alan Modra <amodra@gmail.com> | |
40419 | ||
40420 | PR target/72749 | |
40421 | * combine.c (recog_for_combine_1): Set INSN_CODE before calling | |
40422 | target legitimate_combined_insn. | |
40423 | * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define. | |
40424 | (rs6000_legitimate_combined_insn): New function. | |
40425 | * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove | |
40426 | all uses. | |
40427 | (ctr<mode>_internal3): Rename from *ctr<mode>_internal5. | |
40428 | (ctr<mode>_internal4): Rename from *ctr<mode>_internal6. | |
40429 | (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name. | |
40430 | ||
40431 | 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com> | |
40432 | ||
40433 | * doc/frontends.texi (G++ and GCC): Remove references to Java. | |
40434 | ||
40435 | 2017-01-13 Jeff Law <law@redhat.com> | |
40436 | ||
40437 | PR tree-optimization/33562 | |
40438 | PR tree-optimization/61912 | |
40439 | PR tree-optimization/77485 | |
40440 | * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than | |
40441 | a statement. | |
40442 | (delete_dead_assignment): Likewise. | |
40443 | (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than | |
40444 | statement to delete_dead_call and delete_dead_assignment. | |
40445 | ||
40446 | 2017-01-13 David Malcolm <dmalcolm@redhat.com> | |
40447 | ||
40448 | PR c/78304 | |
40449 | * substring-locations.c (format_warning_va): Strengthen case 1 so | |
40450 | that both endpoints of the substring must be within the format | |
40451 | range for just the substring to be printed. | |
40452 | ||
40453 | 2017-01-13 Uros Bizjak <ubizjak@gmail.com> | |
40454 | ||
40455 | * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable. | |
40456 | * config/i386/i386.c (ix86_target_string): Add missing options | |
40457 | to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to | |
40458 | isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to | |
40459 | flags_other and ix86_target_other to flags2_other. Display unknown | |
40460 | isa2 options. | |
40461 | (ix86_valid_target_attribute_inner_p): Add missing options and | |
40462 | reorder options by implied ISAs, as in ix86_target_string. | |
40463 | ||
40464 | 2017-01-13 Richard Sandiford <richard.sandiford@arm.com> | |
40465 | ||
40466 | * hash-table.h (hash_table::too_empty_p): New function. | |
40467 | (hash_table::expand): Use it. | |
40468 | (hash_table::traverse): Likewise. | |
40469 | (hash_table::empty_slot): Use sizeof (value_type) instead of | |
40470 | sizeof (PTR) to convert bytes to elements. Shrink the table | |
40471 | if the current size is excessive for the current number of | |
40472 | elements. | |
40473 | ||
40474 | 2017-01-13 Richard Sandiford <richard.sandiford@arm.com> | |
40475 | ||
40476 | * ira-costs.c (record_reg_classes): Break from the inner loop | |
40477 | early once alt_fail is known to be true. Update outer loop | |
40478 | handling accordingly. | |
40479 | ||
40480 | 2017-01-13 Jeff Law <law@redhat.com> | |
40481 | ||
40482 | * tree-ssa-dse.c (decrement_count): New function. | |
40483 | (increment_start_addr, maybe_trim_memstar_call): Likewise. | |
40484 | (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly | |
40485 | when we know the partially dead statement is a mem* function. | |
40486 | ||
40487 | PR tree-optimization/61912 | |
40488 | PR tree-optimization/77485 | |
40489 | * tree-ssa-dse.c: Include expr.h. | |
40490 | (maybe_trim_constructor_store): New function. | |
40491 | (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store. | |
40492 | ||
40493 | PR tree-optimization/33562 | |
40494 | PR tree-optimization/61912 | |
40495 | PR tree-optimization/77485 | |
40496 | * doc/invoke.texi: Document new dse-max-object-size param. | |
40497 | * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM. | |
40498 | * tree-ssa-dse.c: Include params.h. | |
40499 | (dse_store_status): New enum. | |
40500 | (initialize_ao_ref_for_dse): New, partially extracted from | |
40501 | dse_optimize_stmt. | |
40502 | (valid_ao_ref_for_dse, normalize_ref): New. | |
40503 | (setup_live_bytes_from_ref, compute_trims): Likewise. | |
40504 | (clear_bytes_written_by, maybe_trim_complex_store): Likewise. | |
40505 | (maybe_trim_partially_dead_store): Likewise. | |
40506 | (maybe_trim_complex_store): Likewise. | |
40507 | (dse_classify_store): Renamed from dse_possibly_dead_store_p. | |
40508 | Track what bytes live from the original store. Return tri-state | |
40509 | for dead, partially dead or live. | |
40510 | (dse_dom_walker): Add constructor, destructor and new private members. | |
40511 | (delete_dead_call, delete_dead_assignment): New extracted from | |
40512 | dse_optimize_stmt. | |
40513 | (dse_optimize_stmt): Make a member of dse_dom_walker. | |
40514 | Use initialize_ao_ref_for_dse. | |
40515 | ||
40516 | PR tree-optimization/33562 | |
40517 | PR tree-optimization/61912 | |
40518 | PR tree-optimization/77485 | |
40519 | * sbitmap.h (bitmap_count_bits): Prototype. | |
40520 | (bitmap_clear_range, bitmap_set_range): Likewise. | |
40521 | * sbitmap.c (bitmap_clear_range): New function. | |
40522 | (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise. | |
40523 | ||
40524 | 2017-01-13 Martin Liska <mliska@suse.cz> | |
40525 | ||
40526 | PR ipa/79043 | |
40527 | * function.c (set_cfun): Add new argument force. | |
40528 | * function.h (set_cfun): Likewise. | |
40529 | * ipa-inline-transform.c (inline_call): Use the function when | |
40530 | strict alising from is dropped for function we inline to. | |
40531 | ||
40532 | 2017-01-13 Richard Biener <rguenther@suse.de> | |
40533 | ||
40534 | * tree-pretty-print.c (dump_generic_node): Fix inverted condition | |
40535 | for dumping GIMPLE INTEGER_CSTs. | |
40536 | ||
40537 | 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
40538 | ||
40539 | * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__ | |
40540 | to 201112L since C++17. | |
40541 | ||
40542 | 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com> | |
40543 | ||
40544 | PR sanitizer/78887 | |
40545 | * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators | |
40546 | if -fsanitize=kernel-address is present. | |
40547 | ||
40548 | 2017-01-13 Richard Biener <rguenther@suse.de> | |
40549 | ||
40550 | * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs | |
40551 | as _Literal ( type ) number in case usual suffixes do not | |
40552 | preserve all information. | |
40553 | ||
40554 | 2017-01-13 Richard Biener <rguenther@suse.de> | |
40555 | ||
40556 | PR tree-optimization/77283 | |
40557 | * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h | |
40558 | and ssa-iterators.h. | |
40559 | (is_feasible_trace): Implement a cost model based on joiner | |
40560 | PHI node uses. | |
40561 | ||
40562 | 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
40563 | ||
40564 | PR target/79004 | |
40565 | * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting | |
40566 | char or short to __float128/_Float128 directly. | |
40567 | ||
40568 | 2017-01-12 Martin Sebor <msebor@redhat.com> | |
40569 | ||
40570 | to -Wformat-overflow. | |
40571 | * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust. | |
40572 | (min_bytes_remaining): Same. | |
40573 | (get_string_length): Same. | |
40574 | (format_string): Same. | |
40575 | (format_directive): Same. | |
40576 | (add_bytes): Same. | |
40577 | (pass_sprintf_length::handle_gimple_call): Same. | |
40578 | ||
40579 | 2017-01-12 Jakub Jelinek <jakub@redhat.com> | |
40580 | ||
40581 | * gimple-ssa-sprintf.c (try_substitute_return_value): Remove | |
40582 | info.nowrite calls with no lhs that can't throw. Return bool | |
40583 | whether gsi_remove has been called or not. | |
40584 | (pass_sprintf_length::handle_gimple_call): Return bool whether | |
40585 | try_substitute_return_value called gsi_remove. Formatting fix. | |
40586 | (pass_sprintf_length::execute): Don't use gsi_remove if | |
40587 | handle_gimple_call returned true. | |
40588 | ||
40589 | PR bootstrap/79069 | |
40590 | * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't | |
40591 | be removed due to side-effects, don't remove following barrier nor | |
40592 | turn the successor edge into fallthru edge. | |
40593 | ||
40594 | 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
40595 | ||
40596 | PR target/79044 | |
40597 | * config/rs6000/rs6000.c (insn_is_swappable_p): Mark | |
40598 | element-reversing loads and stores as not swappable. | |
40599 | ||
40600 | 2017-01-12 Nathan Sidwell <nathan@acm.org> | |
40601 | Nicolai Stange <nicstange@gmail.com> | |
40602 | ||
40603 | * combine.c (try_combine): Don't ignore result of overlap checking | |
40604 | loop. Combine overlap & asm check into single loop. | |
40605 | ||
40606 | 2017-01-12 Richard Biener <rguenther@suse.de> | |
40607 | ||
40608 | * tree-pretty-print.c (dump_generic_node): Provide -gimple | |
40609 | variant for MEM_REF. Sanitize INTEGER_CST for -gimple. | |
40610 | ||
40611 | 2017-01-12 Richard Biener <rguenther@suse.de> | |
40612 | ||
40613 | * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION | |
40614 | and TS_TARGET_OPTION directly derive from TS_BASE. | |
40615 | * tree-core.h (tree_optimization_option): Derive from tree_base. | |
40616 | (tree_target_option): Likewise. | |
40617 | ||
40618 | 2017-01-11 Uros Bizjak <ubizjak@gmail.com> | |
40619 | ||
40620 | * config/i386/i386.c (memory_address_length): Increase len | |
40621 | only when rip_relative_addr_p returns false. | |
40622 | ||
40623 | 2017-01-11 Julia Koval <julia.koval@intel.com> | |
40624 | ||
40625 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New. | |
40626 | (OPTION_MASK_ISA_SGX_SET): New. | |
40627 | (ix86_handle_option): Handle OPT_msgx. | |
40628 | * config.gcc: Added sgxintrin.h. | |
40629 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx. | |
40630 | * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__. | |
40631 | * config/i386/i386.c (ix86_target_string): Add -msgx. | |
40632 | (PTA_SGX): New. | |
40633 | (ix86_option_override_internal): Handle new options. | |
40634 | (ix86_valid_target_attribute_inner_p): Add sgx. | |
40635 | * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New. | |
40636 | * config/i386/i386.opt: Add msgx. | |
40637 | * config/i386/sgxintrin.h: New file. | |
40638 | * config/i386/x86intrin.h: Add sgxintrin.h. | |
40639 | ||
40640 | 2017-01-11 Jakub Jelinek <jakub@redhat.com> | |
40641 | ||
40642 | PR c++/71537 | |
40643 | * fold-const.c (maybe_nonzero_address): Return 1 for function | |
40644 | local objects. | |
40645 | (tree_single_nonzero_warnv_p): Don't handle function local objects | |
40646 | here. | |
40647 | ||
40648 | PR c++/72813 | |
40649 | * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps | |
40650 | of c-header. | |
40651 | ||
40652 | 2017-01-11 David Malcolm <dmalcolm@redhat.com> | |
40653 | ||
40654 | PR driver/78877 | |
40655 | * opts.c: Include "spellcheck.h" | |
40656 | (struct string_fragment): New struct. | |
40657 | (struct edit_distance_traits<const string_fragment &>): New | |
40658 | struct. | |
40659 | (get_closest_sanitizer_option): New function. | |
40660 | (parse_sanitizer_options): Offer suggestions for unrecognized arguments. | |
40661 | ||
40662 | 2017-01-11 Jakub Jelinek <jakub@redhat.com> | |
40663 | ||
40664 | * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease | |
40665 | by 12. | |
40666 | (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always | |
40667 | DWARF_COMPILE_UNIT_HEADER_SIZE plus 12. | |
40668 | (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define. | |
40669 | (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE | |
40670 | for initial die_offset if dwarf_split_debug_info. | |
40671 | (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for | |
40672 | initial next_die_offset if dwo_id is non-NULL. Don't emit padding | |
40673 | fields. | |
40674 | (output_skeleton_debug_sections): Formatting fix. Use | |
40675 | DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of | |
40676 | DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding. | |
40677 | ||
40678 | 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com> | |
40679 | ||
40680 | * config/arm/cortex-a53.md: Add bypasses for | |
40681 | cortex_a53_r2f_cvt. | |
40682 | (cortex_a53_r2f): Only use for transfers. | |
40683 | (cortex_a53_f2r): Likewise. | |
40684 | (cortex_a53_r2f_cvt): Add reservation for conversions. | |
40685 | (cortex_a53_f2r_cvt): Likewise. | |
40686 | ||
40687 | 2017-01-11 Tamar Christina <tamar.christina@arm.com> | |
40688 | ||
40689 | * config/arm/arm_neon.h: Add __artificial__ and gnu_inline | |
40690 | to all inlined functions, change static to extern. | |
40691 | ||
40692 | 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org> | |
40693 | ||
40694 | PR target/78253 | |
40695 | * config/arm/arm.c (legitimize_pic_address): Handle reference to | |
40696 | weak symbol. | |
40697 | (arm_assemble_integer): Likewise. | |
40698 | ||
40699 | 2017-01-11 Richard Earnshaw <rearnsha@arm.com> | |
40700 | ||
40701 | * config.gcc: Use new awk script to check CPU, FPU and architecture | |
40702 | parameters for --with-... options. | |
40703 | * config/arm/parsecpu.awk: New file | |
40704 | * config/arm/arm-cpus.in: New file. | |
40705 | * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def | |
40706 | files. | |
40707 | * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def | |
40708 | files. | |
40709 | * config/arm/t-arm: Update dependency rules. | |
40710 | * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead | |
40711 | of processing .def files. | |
40712 | * config/arm/genopt.sh: Deleted. | |
40713 | * config/arm/gentune.sh: Deleted. | |
40714 | * config/arm/arm-cores.def: Deleted. | |
40715 | * config/arm/arm-arches.def: Deleted. | |
40716 | * config/arm/arm-fpus.def: Deleted. | |
40717 | * config/arm/arm-tune.md: Regenerated. | |
40718 | * config/arm/arm-tables.opt: Regenerated. | |
40719 | * config/arm/arm-cpu.h: New generated file. | |
40720 | * config/arm/arm-cpu-data.h: New generated file. | |
40721 | * config/arm/arm-cpu-cdata.h: New generated file. | |
40722 | ||
40723 | 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com> | |
40724 | ||
40725 | PR lto/79042 | |
40726 | * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized | |
40727 | bit. | |
40728 | (input_varpool_node): Unpack dynamically_initialized bit. | |
40729 | ||
40730 | 2017-01-11 Eric Botcazou <ebotcazou@adacore.com> | |
40731 | ||
40732 | PR rtl-optimization/79032 | |
40733 | * lra-constraints.c (simplify_operand_subreg): In the MEM case, test | |
40734 | the alignment of the adjusted memory reference against that of MODE, | |
40735 | instead of the alignment of the original memory reference. | |
40736 | ||
40737 | 2017-01-11 Martin Jambor <mjambor@suse.cz> | |
40738 | ||
40739 | * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL | |
40740 | test. | |
40741 | * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial | |
40742 | decorated functions. | |
40743 | ||
40744 | 2017-01-11 Richard Biener <rguenther@suse.de> | |
40745 | ||
40746 | * tree-vrp.c (evrp_dom_walker::before_dom_children): Also | |
40747 | set range/nonnull info for PHI results. Do not set it on | |
40748 | stmts marked for removal. | |
40749 | ||
40750 | 2017-01-10 Eric Botcazou <ebotcazou@adacore.com> | |
40751 | ||
40752 | * expr.c (store_field): In the bitfield case, fetch the return value | |
40753 | from the registers before applying a single big-endian adjustment. | |
40754 | Always do a final load for a BLKmode value not larger than a word. | |
40755 | ||
40756 | 2017-01-10 David Malcolm <dmalcolm@redhat.com> | |
40757 | ||
40758 | PR c++/77949 | |
40759 | * input.c (selftest::test_accessing_ordinary_linemaps): Verify | |
40760 | that we correctly handle column numbers greater than | |
40761 | LINE_MAP_MAX_COLUMN_NUMBER. | |
40762 | ||
40763 | 2017-01-10 Martin Sebor <msebor@redhat.com> | |
40764 | ||
40765 | PR middle-end/78245 | |
40766 | * gimple-ssa-sprintf.c (get_destination_size): Call | |
40767 | {init,fini}object_sizes. | |
40768 | * tree-object-size.c (addr_object_size): Adjust. | |
40769 | (pass_through_call): Adjust. | |
40770 | (pass_object_sizes::execute): Adjust. | |
40771 | * tree-object-size.h (fini_object_sizes): Declare. | |
40772 | ||
40773 | 2017-01-10 Martin Sebor <msebor@redhat.com> | |
40774 | ||
40775 | PR tree-optimization/78775 | |
40776 | * builtins.c (get_size_range): Move... | |
40777 | * calls.c: ...to here. | |
40778 | (alloc_max_size): Accept zero argument. | |
40779 | (operand_signed_p): Remove. | |
40780 | (maybe_warn_alloc_args_overflow): Call get_size_range. | |
40781 | * calls.h (get_size_range): Declare. | |
40782 | ||
40783 | 2017-01-10 Joe Seymour <joe.s@somniumtech.com> | |
40784 | ||
40785 | * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data | |
40786 | from TI's devices.csv file as of September 2016. | |
40787 | * config/msp430/msp430.c (msp430_mcu_data): Likewise. | |
40788 | ||
40789 | 2017-01-10 Sandra Loosemore <sandra@codesourcery.com> | |
40790 | ||
40791 | * doc/extend.texi: Tweak formatting to fix overfull hbox warnings. | |
40792 | * doc/invoke.texi: Likewise. | |
40793 | * doc/md.texi: Likewise. | |
40794 | * doc/objc.texi: Likewise. | |
40795 | ||
40796 | 2017-01-10 Joshua Conner <joshconner@google.com> | |
40797 | ||
40798 | * config/arm/fuchsia-elf.h: New file. | |
40799 | * config/fuchsia.h: New file. | |
40800 | * config.gcc (*-*-fuchsia*): Set native_system_header_dir. | |
40801 | (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to | |
40802 | targets. | |
40803 | * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts. | |
40804 | ||
40805 | 2016-01-10 Richard Biener <rguenther@suse.de> | |
40806 | ||
40807 | PR tree-optimization/79034 | |
40808 | * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): | |
40809 | Propagate out degenerate PHIs in the joiner. | |
40810 | ||
40811 | 2017-01-10 Martin Liska <mliska@suse.cz> | |
40812 | ||
40813 | * ipa-icf.c (sort_sem_items_by_decl_uid): New function. | |
40814 | (sort_congruence_classes_by_decl_uid): Likewise. | |
40815 | (sort_congruence_class_groups_by_decl_uid): Likewise. | |
40816 | (sem_item_optimizer::merge_classes): Sort class, groups in these | |
40817 | classes and members in the groups by DECL_UID of declarations. | |
40818 | This would make merge operations stable. | |
40819 | ||
40820 | 2017-01-10 Martin Liska <mliska@suse.cz> | |
40821 | ||
40822 | * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove | |
40823 | usage of m_classes_vec. | |
40824 | (sem_item_optimizer::~sem_item_optimizer): Likewise. | |
40825 | (sem_item_optimizer::get_group_by_hash): Likewise. | |
40826 | (sem_item_optimizer::subdivide_classes_by_equality): Likewise. | |
40827 | (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise. | |
40828 | (sem_item_optimizer::verify_classes): Likewise. | |
40829 | (sem_item_optimizer::process_cong_reduction): Likewise. | |
40830 | (sem_item_optimizer::dump_cong_classes): Likewise. | |
40831 | (sem_item_optimizer::merge_classes): Likewise. | |
40832 | * ipa-icf.h (congruence_class_hash): Rename from | |
40833 | congruence_class_group_hash. Remove declaration of m_classes_vec. | |
40834 | ||
40835 | 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com> | |
40836 | ||
40837 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET, | |
40838 | OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New. | |
40839 | * config.gcc: Add avx512vpopcntdqintrin.h. | |
40840 | * config/i386/avx512vpopcntdqintrin.h: New. | |
40841 | * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New. | |
40842 | * config/i386/i386-builtin-types.def: Add new types. | |
40843 | * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si, | |
40844 | __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di, | |
40845 | __builtin_ia32_vpopcountq_v8di_mask): New. | |
40846 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
40847 | __AVX512VPOPCNTDQ__. | |
40848 | * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq. | |
40849 | (PTA_AVX512VPOPCNTDQ): Define. | |
40850 | * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ, | |
40851 | TARGET_AVX512VPOPCNTDQ_P): Define. | |
40852 | * config/i386/i386.opt: Add mavx512vpopcntdq. | |
40853 | * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h. | |
40854 | * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New. | |
40855 | ||
40856 | 2017-01-01 Jan Hubicka <hubicka@ucw.cz> | |
40857 | ||
40858 | PR middle-end/77484 | |
40859 | * predict.def (PRED_CALL): Set to 67. | |
40860 | ||
40861 | 2017-01-09 Eric Botcazou <ebotcazou@adacore.com> | |
40862 | ||
40863 | * expr.c (store_field): In the bitfield case, if the value comes from | |
40864 | a function call and is of an aggregate type returned in registers, do | |
40865 | not modify the field mode; extract the value in all cases if the mode | |
40866 | is BLKmode and the size is not larger than a word. | |
40867 | ||
40868 | 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr> | |
40869 | ||
40870 | PR target/71017 | |
40871 | * config/i386/cpuid.h: Fix undefined behavior. | |
40872 | ||
40873 | 2017-01-04 Jeff Law <law@redhat.com> | |
40874 | ||
40875 | PR tree-optimization/79007 | |
40876 | PR tree-optimization/67955 | |
40877 | * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be | |
40878 | conservative for pt.null when flag_non_call_exceptions is on. | |
40879 | ||
40880 | 2017-01-09 Jakub Jelinek <jakub@redhat.com> | |
40881 | ||
40882 | PR translation/79019 | |
40883 | PR translation/79020 | |
40884 | * params.def (PARAM_INLINE_MIN_SPEEDUP, | |
40885 | PARAM_IPA_CP_SINGLE_CALL_PENALTY, | |
40886 | PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos | |
40887 | in descriptions. | |
40888 | * config/avr/avr.opt (maccumulate-args): Likewise. | |
40889 | * config/msp430/msp430.opt (mwarn-mcu): Likewise. | |
40890 | * common.opt (freport-bug): Likewise. | |
40891 | * cif-code.def (CIF_FINAL_ERROR): Likewise. | |
40892 | * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise. | |
40893 | * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in | |
40894 | translatable string. | |
40895 | * config/i386/i386.c (function_value_32): Likewise. | |
40896 | * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise. | |
40897 | * config/msp430/msp430.c (msp430_option_override, msp430_attr): | |
40898 | Likewise. | |
40899 | * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise. | |
40900 | * common/config/msp430/msp430-common.c (msp430_handle_option): | |
40901 | Likewise. | |
40902 | * symtab.c (symtab_node::verify_base): Likewise. | |
40903 | * opts.c (set_debug_level): Likewise. | |
40904 | * tree.c (verify_type_variant): Likewise. Fix typo in comment. | |
40905 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add | |
40906 | missing whitespace to translatable strings. | |
40907 | * config/avr/avr.md (bswapsi2): Fix typo in comment. | |
40908 | * config/sh/superh.h: Likewise. | |
40909 | * config/i386/xopintrin.h: Likewise. | |
40910 | * config/i386/znver1.md: Likewise. | |
40911 | * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise. | |
40912 | * ipa-inline-analysis.c (compute_inline_parameters): Likewise. | |
40913 | * double-int.h (struct double_int): Likewise. | |
40914 | * double-int.c (div_and_round_double): Likewise. | |
40915 | * wide-int.cc: Likewise. | |
40916 | * tree-ssa.c (non_rewritable_mem_ref_base): Likewise. | |
40917 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise. | |
40918 | * cfgcleanup.c (crossjumps_occured): Renamed to ... | |
40919 | (crossjumps_occurred): ... this. | |
40920 | (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg): | |
40921 | Adjust all uses. | |
40922 | ||
40923 | PR tree-optimization/78899 | |
40924 | * tree-if-conv.c (version_loop_for_if_conversion): Instead of | |
40925 | returning bool return struct loop *, NULL for failure and the new | |
40926 | loop on success. | |
40927 | (versionable_outer_loop_p): Don't version outer loop if it has | |
40928 | dont_vectorized bit set. | |
40929 | (tree_if_conversion): When versioning outer loop, ensure | |
40930 | tree_if_conversion is performed also on the inner loop of the | |
40931 | non-vectorizable outer loop copy. | |
40932 | * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold | |
40933 | LOOP_VECTORIZED in inner loop of the scalar outer loop and | |
40934 | prevent vectorization of it. | |
40935 | (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure | |
40936 | the outer loop vectorization of the non-scalar version is attempted | |
40937 | before vectorization of the inner loop in scalar version. If | |
40938 | outer LOOP_VECTORIZED guarded loop is not vectorized, prevent | |
40939 | vectorization of its inner loop. | |
40940 | * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop | |
40941 | has 2 inner loops, rename also on edges from bb whose single pred | |
40942 | is outer_loop->header. Fix typo in function comment. | |
40943 | ||
40944 | 2017-01-09 Martin Sebor <msebor@redhat.com> | |
40945 | ||
40946 | PR bootstrap/79033 | |
40947 | * asan.c (asan_emit_stack_protection): Increase local buffer size | |
40948 | to avoid snprintf truncation warning. | |
40949 | ||
40950 | 2017-01-09 Andrew Pinski <apinski@cavium.com> | |
40951 | ||
40952 | * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan | |
40953 | to reference thunderx2t99 for the tuning structure | |
40954 | * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs): | |
40955 | Rename to ... | |
40956 | (thunderx2t99_extra_costs): This. | |
40957 | * config/aarch64/aarch64-tune.md: Regenerate. | |
40958 | * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ... | |
40959 | (vulcan_addrcost_table): This. | |
40960 | (vulcan_regmove_cost): Rename to ... | |
40961 | (thunderx2t99_regmove_cost): This. | |
40962 | (vulcan_vector_cost): Rename to ... | |
40963 | (thunderx2t99_vector_cost): this. | |
40964 | (vulcan_branch_cost): Rename to ... | |
40965 | (thunderx2t99_branch_cost): This. | |
40966 | (vulcan_tunings): Rename to ... | |
40967 | (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 . | |
40968 | * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99. | |
40969 | ||
40970 | 2017-01-09 Martin Jambor <mjambor@suse.cz> | |
40971 | ||
40972 | PR ipa/78365 | |
40973 | PR ipa/78599 | |
40974 | * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr. | |
40975 | * ipa-cp.c (ipa_vr_operation_and_type_effects): New function. | |
40976 | (propagate_vr_accross_jump_function): Use the above function for all | |
40977 | value range computations for pass-through jump functions and type | |
40978 | converasion from explicit value range values. | |
40979 | (ipcp_propagate_stage): Do not attempt to deduce types of formal | |
40980 | parameters from TYPE_ARG_TYPES. | |
40981 | * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace. | |
40982 | (ipa_write_node_info): Stream type of the actual argument. | |
40983 | (ipa_read_node_info): Likewise. Also remove trailing whitespace. | |
40984 | ||
40985 | 2017-01-09 Martin Liska <mliska@suse.cz> | |
40986 | ||
40987 | PR pch/78970 | |
40988 | * gcc.c (driver_handle_option): Handle OPT_E and set have_E. | |
40989 | (lookup_compiler): Do not show error message with have_E. | |
40990 | ||
40991 | 2017-01-09 Jakub Jelinek <jakub@redhat.com> | |
40992 | ||
40993 | PR tree-optimization/78938 | |
40994 | * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR | |
40995 | where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use | |
40996 | BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of | |
40997 | {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting | |
40998 | fixes. | |
40999 | ||
41000 | 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
41001 | ||
41002 | * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it | |
41003 | is const0_rtx. | |
41004 | ||
41005 | 2017-01-09 Richard Biener <rguenther@suse.de> | |
41006 | ||
41007 | PR tree-optimization/78997 | |
41008 | * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA | |
41009 | name condition properly. | |
41010 | ||
41011 | 2017-01-09 Richard Biener <rguenther@suse.de> | |
41012 | ||
41013 | PR debug/79000 | |
41014 | * dwarf2out.c (is_cxx): New overload with context. | |
41015 | (is_naming_typedef_decl): Use it. | |
41016 | ||
41017 | 2017-01-08 Sandra Loosemore <sandra@codesourcery.com> | |
41018 | ||
41019 | * invoke.texi (Option Summary): Correct spacing in option lists | |
41020 | and add line breaks to fix over-long lines. | |
41021 | ||
41022 | 2017-01-08 Sandra Loosemore <sandra@codesourcery.com> | |
41023 | ||
41024 | PR middle-end/17660 | |
41025 | ||
41026 | * extend.texi (Common Variable Attributes): Add xref to GCC | |
41027 | Internals manual to explain mode attribute keywords. | |
41028 | ||
41029 | 2017-01-08 Sandra Loosemore <sandra@codesourcery.com> | |
41030 | ||
41031 | PR other/16519 | |
41032 | * doc/invoke.texi (Option Summary): Move -pthread to Linker Options | |
41033 | and Preprocessor Options. | |
41034 | (Options for Linking): Document -pthread here.... | |
41035 | (RS/6000 and PowerPC Options): ...not here. | |
41036 | (Solaris 2 Options): ...or here. | |
41037 | * doc/cppopts.texi: Document -pthread. | |
41038 | ||
41039 | 2017-01-08 Martin Sebor <msebor@redhat.com> | |
41040 | ||
41041 | PR middle-end/77708 | |
41042 | * doc/invoke.texi (Warning Options): Document -Wformat-truncation. | |
41043 | * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt): | |
41044 | New member functions. | |
41045 | (format_directive): Used them. | |
41046 | (add_bytes): Same. | |
41047 | (pass_sprintf_length::handle_gimple_call): Same. | |
41048 | * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size | |
41049 | to avoid truncation for any argument. | |
41050 | (extract_affine_mul): Same. | |
41051 | * tree.c (get_file_function_name): Same. | |
41052 | ||
41053 | 2017-01-01 Jan Hubicka <hubicka@ucw.cz> | |
41054 | ||
41055 | PR middle-end/77484 | |
41056 | * predict.def (PRED_INDIR_CALL): Set to 86. | |
41057 | ||
41058 | 2017-01-07 Sandra Loosemore <sandra@codesourcery.com> | |
41059 | ||
41060 | PR preprocessor/54124 | |
41061 | * doc/cppopts.texi: Reformat -d subtable to list the full name | |
41062 | of the options. Add cross-reference to the docs for the general | |
41063 | compiler -d options. | |
41064 | * doc/invoke.texi (Developer Options): Add cross-reference to the | |
41065 | preprocessor-specific -d option documentation. | |
41066 | ||
41067 | 2017-01-07 Sandra Loosemore <sandra@codesourcery.com> | |
41068 | ||
41069 | PR preprocessor/13498 | |
41070 | * doc/cpp.texi (Search Path): Rewrite to remove obsolete and | |
41071 | redudant material, and reflect new command-line options. | |
41072 | (System Headers): Likewise. | |
41073 | ||
41074 | 2017-01-07 Sandra Loosemore <sandra@codesourcery.com> | |
41075 | ||
41076 | * doc/cppdiropts.texi: Merge documentation of -I, -iquote, | |
41077 | -isystem, and -idirafter. Copy-edit. | |
41078 | * doc/cppopts.texi: Copy-edit. Remove contradiction about | |
41079 | default for -ftrack-macro-expansion. Delete obsolete and | |
41080 | badly-formatted implementation details about -fdebug-cpp output. | |
41081 | * doc/cppwarnopts.texi: Copy-edit. | |
41082 | ||
41083 | 2017-01-07 David Malcolm <dmalcolm@redhat.com> | |
41084 | ||
41085 | PR c++/72803 | |
41086 | * input.c (selftest::test_accessing_ordinary_linemaps): Verify | |
41087 | that the transition from a max line width >= 1<<10 to narrower | |
41088 | lines works correctly. | |
41089 | ||
41090 | 2017-01-07 Alexandre Oliva <aoliva@redhat.com> | |
41091 | ||
41092 | * doc/options.texi (PerFunction): New. | |
41093 | * opt-functions.awk (switch_flags): Map both Optimization and | |
41094 | PerFunction to CL_OPTIMIZATION. | |
41095 | * opth-gen.awk: Test for PerFunction flag along with | |
41096 | Optimization. | |
41097 | * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set | |
41098 | it only when the latter is present. Skip those that don't in | |
41099 | the hash function generator. | |
41100 | * common.opt (fvar-tracking): Mark as PerFunction instead of | |
41101 | Optimization. | |
41102 | (fvar-tracking-assignments): Likewise. | |
41103 | (fvar-tracking-assignments-toggle): Likewise. | |
41104 | (fvar-tracking-uninit): Likewise. | |
41105 | ||
41106 | 2017-01-07 Jakub Jelinek <jakub@redhat.com> | |
41107 | ||
41108 | PR translation/79018 | |
41109 | * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between | |
41110 | the and store. | |
41111 | ||
41112 | 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com> | |
41113 | ||
41114 | PR target/57583 | |
41115 | * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option. | |
41116 | * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle | |
41117 | TARGET_LONG_JUMP_TABLE_OFFSETS. | |
41118 | * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise. | |
41119 | * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise. | |
41120 | * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise. | |
41121 | (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise. | |
41122 | * config/m68k/m68k.md (tablejump expander): Likewise. | |
41123 | (*tablejump_pcrel_hi): Renamed from unnamed insn, reject | |
41124 | TARGET_LONG_JUMP_TABLE_OFFSETS. | |
41125 | (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS. | |
41126 | * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets. | |
41127 | ||
41128 | 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com> | |
41129 | David Holsgrove <david.holsgrove@xilinx.com> | |
41130 | ||
41131 | * common/config/microblaze/microblaze-common.c | |
41132 | (TARGET_EXCEPT_UNWIND_INFO): Remove. | |
41133 | * config/microblaze/microblaze-protos.h (microblaze_eh_return): | |
41134 | New prototype. | |
41135 | * config/microblaze/microblaze.c (microblaze_must_save_register) | |
41136 | (microblaze_expand_epilogue, microblaze_return_addr): Handle | |
41137 | calls_eh_return. | |
41138 | (microblaze_eh_return): New function. | |
41139 | * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET) | |
41140 | (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM) | |
41141 | (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros. | |
41142 | * config/microblaze/microblaze.md (eh_return): New pattern. | |
41143 | ||
41144 | 2017-01-06 Jakub Jelinek <jakub@redhat.com> | |
41145 | ||
41146 | * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP, | |
41147 | GCC_DIAGNOSTIC_STRINGIFY): Define. | |
41148 | ||
41149 | * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning. | |
41150 | ||
41151 | 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
41152 | ||
41153 | * config/arm/arm.md (<mcrr>): New. | |
41154 | (<mrrc>): New. | |
41155 | * config/arm/arm.c (arm_arch5te): New. | |
41156 | (arm_option_override): Set arm_arch5te. | |
41157 | (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc | |
41158 | and mrrc2. | |
41159 | * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to... | |
41160 | (arm_mcrr_qualifiers): ... this. New. | |
41161 | (MRRC_QUALIFIERS): Define to... | |
41162 | (arm_mrrc_qualifiers): ... this. New. | |
41163 | * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc, | |
41164 | __arm_mrrc2): New. | |
41165 | * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New. | |
41166 | * config/arm/iterators.md (MCRRI, mcrr, MCRR): New. | |
41167 | (MRRCI, mrrc, MRRC): New. | |
41168 | * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC, | |
41169 | VUNSPEC_MRRC2): New. | |
41170 | ||
41171 | 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
41172 | ||
41173 | * config/arm/arm.md (<mcr>): New. | |
41174 | (<mrc>): New. | |
41175 | * config/arm/arm.c (arm_coproc_builtin_available): Add | |
41176 | support for mcr, mrc, mcr2 and mrc2. | |
41177 | * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to... | |
41178 | (arm_mcr_qualifiers): ... this. New. | |
41179 | (MRC_QUALIFIERS): Define to ... | |
41180 | (arm_mrc_qualifiers): ... this. New. | |
41181 | (MCR_QUALIFIERS): Define to ... | |
41182 | (arm_mcr_qualifiers): ... this. New. | |
41183 | * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2, | |
41184 | __arm_mrc2): New. | |
41185 | * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New. | |
41186 | * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New. | |
41187 | * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC, | |
41188 | VUNSPEC_MRC2): New. | |
41189 | ||
41190 | 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
41191 | ||
41192 | * config/arm/arm.md (*ldc): New. | |
41193 | (*stc): New. | |
41194 | (<ldc>): New. | |
41195 | (<stc>): New. | |
41196 | * config/arm/arm.c (arm_coproc_builtin_available): Add | |
41197 | support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l. | |
41198 | (arm_coproc_ldc_stc_legitimate_address): New. | |
41199 | * config/arm/arm-builtins.c (arm_type_qualifiers): Add | |
41200 | 'qualifier_const_pointer'. | |
41201 | (LDC_QUALIFIERS): Define to... | |
41202 | (arm_ldc_qualifiers): ... this. New. | |
41203 | (STC_QUALIFIERS): Define to... | |
41204 | (arm_stc_qualifiers): ... this. New. | |
41205 | * config/arm/arm-protos.h | |
41206 | (arm_coproc_ldc_stc_legitimate_address): New. | |
41207 | * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc, | |
41208 | __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New. | |
41209 | * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc, | |
41210 | stc2, stcl, stc2l): New. | |
41211 | * config/arm/constraints.md (Uz): New. | |
41212 | * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New. | |
41213 | * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL, | |
41214 | VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL, | |
41215 | VUNSPEC_STC2L): New. | |
41216 | ||
41217 | 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
41218 | ||
41219 | * config/arm/arm.md (<cdp>): New. | |
41220 | * config/arm/arm.c (neon_const_bounds): Rename this ... | |
41221 | (arm_const_bounds): ... this. | |
41222 | (arm_coproc_builtin_available): New. | |
41223 | * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase. | |
41224 | (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'. | |
41225 | (CDP_QUALIFIERS): Define to... | |
41226 | (arm_cdp_qualifiers): ... this. New. | |
41227 | (void_UP): Define. | |
41228 | (arm_expand_builtin_args): Add case for 6 arguments. | |
41229 | * config/arm/arm-protos.h (neon_const_bounds): Rename this ... | |
41230 | (arm_const_bounds): ... this. | |
41231 | (arm_coproc_builtin_available): New. | |
41232 | * config/arm/arm_acle.h (__arm_cdp): New. | |
41233 | (__arm_cdp2): New. | |
41234 | * config/arm/arm_acle_builtins.def (cdp): New. | |
41235 | (cdp2): New. | |
41236 | * config/arm/iterators.md (CDPI,CDP,cdp): New. | |
41237 | * config/arm/neon.md: Rename all 'neon_const_bounds' to | |
41238 | 'arm_const_bounds'. | |
41239 | * config/arm/types.md (coproc): New. | |
41240 | * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New. | |
41241 | * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics. | |
41242 | * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok, | |
41243 | arm_coproc3_ok, arm_coproc4_ok): Document new effective targets. | |
41244 | ||
41245 | 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
41246 | ||
41247 | * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New. | |
41248 | (UBINOP_QUALIFIERS): New. | |
41249 | (si_UP): Define. | |
41250 | (acle_builtin_data): New. Change comment. | |
41251 | (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H, | |
41252 | ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH, | |
41253 | ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include | |
41254 | arm_acle_builtins.def. | |
41255 | (ARM_BUILTIN_ACLE_PATTERN_START): Define. | |
41256 | (arm_init_acle_builtins): New. | |
41257 | (CRC32_BUILTIN): Remove. | |
41258 | (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w, | |
41259 | crc32cb, crc32ch and crc32cw. | |
41260 | (arm_init_crc32_builtins): Remove. | |
41261 | (arm_init_builtins): Use arm_init_acle_builtins rather | |
41262 | than arm_init_crc32_builtins. | |
41263 | (arm_expand_acle_builtin): New. | |
41264 | (arm_expand_builtin): Use 'arm_expand_acle_builtin'. | |
41265 | * config/arm/arm_acle_builtins.def: New. | |
41266 | ||
41267 | 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
41268 | ||
41269 | * config/arm/arm-builtins.c (neon_builtin_datum): Rename to .. | |
41270 | (arm_builtin_datum): ... this. | |
41271 | (arm_init_neon_builtin): Rename to ... | |
41272 | (arm_init_builtin): ... this. Add a new parameters PREFIX | |
41273 | and USE_SIG_IN_NAME. | |
41274 | (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with | |
41275 | 'arm_init_builtin'. Replace type 'neon_builtin_datum' with | |
41276 | 'arm_builtin_datum'. | |
41277 | (arm_init_vfp_builtins): Likewise. | |
41278 | (builtin_arg): Rename enum's replacing 'NEON_ARG' with | |
41279 | 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY. | |
41280 | (arm_expand_neon_args): Rename to ... | |
41281 | (arm_expand_builtin_args): ... this. Rename builtin_arg | |
41282 | enum values and differentiate between ARG_BUILTIN_MEMORY | |
41283 | and ARG_BUILTIN_NEON_MEMORY. | |
41284 | (arm_expand_neon_builtin_1): Rename to ... | |
41285 | (arm_expand_builtin_1): ... this. Rename builtin_arg enum | |
41286 | values, arm_expand_builtin_args and add bool parameter NEON. | |
41287 | (arm_expand_neon_builtin): Use arm_expand_builtin_1. | |
41288 | (arm_expand_vfp_builtin): Likewise. | |
41289 | (NEON_MAX_BUILTIN_ARGS): Remove, it was unused. | |
41290 | ||
41291 | 2017-01-01 Jan Hubicka <hubicka@ucw.cz> | |
41292 | ||
41293 | PR middle-end/77484 | |
41294 | * predict.def (PRED_POLYMORPHIC_CALL): Set to 59. | |
41295 | * predict.c (tree_estimate_probability_bb): Reverse direction of | |
41296 | polymorphic call predictor. | |
41297 | ||
41298 | 2017-01-06 David Malcolm <dmalcolm@redhat.com> | |
41299 | ||
41300 | * passes.c (execute_one_pass): Split out pass-skipping logic into... | |
41301 | (determine_pass_name_match): ...this new function and... | |
41302 | (should_skip_pass_p): ...this new function. | |
41303 | ||
41304 | 2017-01-06 Nathan Sidwell <nathan@acm.org> | |
41305 | ||
41306 | * ipa-visibility.c (function_and_variable_visibility): Reformat | |
41307 | comments and long lines. Remove extrneous if. | |
41308 | * symtab.c (symtab_node::make_decl_local): Fix code format. | |
41309 | (symtab_node::set_section_for_node): Fix comment typo. | |
41310 | ||
41311 | 2017-01-06 Martin Liska <mliska@suse.cz> | |
41312 | ||
41313 | PR bootstrap/79003 | |
41314 | * lra-constraints.c: Rename invariant to lra_invariant. | |
41315 | * predict.c (set_even_probabilities): Initialize e to NULL. | |
41316 | ||
41317 | 2017-01-05 Martin Sebor <msebor@redhat.com> | |
41318 | ||
41319 | PR tree-optimization/78910 | |
41320 | * gimple-ssa-sprintf.c (tree_digits): Add an argument. | |
41321 | (format_integer): Correct off-by-one error in the handling | |
41322 | of precision with negative numbers in signed conversions.. | |
41323 | ||
41324 | 2017-01-05 Eric Botcazou <ebotcazou@adacore.com> | |
41325 | ||
41326 | * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry. | |
41327 | ||
41328 | 2017-01-05 Jakub Jelinek <jakub@redhat.com> | |
41329 | ||
41330 | PR tree-optimization/71016 | |
41331 | * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to | |
41332 | factor_out_conditional_conversion. Formatting fix. | |
41333 | (factor_out_conditional_conversion): Add cond_stmt argument. | |
41334 | If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of | |
41335 | cond_stmt and if arg0_def_stmt is not the only stmt in its bb. | |
41336 | Formatting fix. | |
41337 | ||
41338 | 2017-01-05 David Malcolm <dmalcolm@redhat.com> | |
41339 | ||
41340 | * Makefile.in (OBJS): Add read-md.o, read-rtl.o, | |
41341 | read-rtl-function.o, and selftest-rtl.o. | |
41342 | * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h. | |
41343 | (selftest::aarch64_test_loading_full_dump): New function. | |
41344 | (selftest::aarch64_run_selftests): New function. | |
41345 | (TARGET_RUN_TARGET_SELFTESTS): Wire it up to | |
41346 | selftest::aarch64_run_selftests. | |
41347 | * config/i386/i386.c | |
41348 | (selftest::ix86_test_loading_dump_fragment_1): New function. | |
41349 | (selftest::ix86_test_loading_call_insn): New function. | |
41350 | (selftest::ix86_test_loading_full_dump): New function. | |
41351 | (selftest::ix86_test_loading_unspec): New function. | |
41352 | (selftest::ix86_run_selftests): Call the new functions. | |
41353 | * emit-rtl.c (maybe_set_max_label_num): New function. | |
41354 | * emit-rtl.h (maybe_set_max_label_num): New decl. | |
41355 | * function.c (instantiate_decls): Guard call to | |
41356 | instantiate_decls_1 with if (DECL_INITIAL (fndecl)). | |
41357 | * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove | |
41358 | "static". | |
41359 | * gensupport.c (gen_reader::gen_reader): Pass "false" | |
41360 | for new "compact" param of rtx_reader. | |
41361 | * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)" | |
41362 | rather than an empty string for NULL strings. | |
41363 | * read-md.c: Potentially include config.h rather than bconfig.h. | |
41364 | Wrap include of errors.h with #ifdef GENERATOR_FILE. | |
41365 | (have_error): New global, copied from errors.c. | |
41366 | (md_reader::read_name): Rename to... | |
41367 | (md_reader::read_name_1): ...this, adding "out_loc" param, | |
41368 | and converting "missing name or number" to returning false, rather | |
41369 | than failing. | |
41370 | (md_reader::read_name): Reimplement in terms of read_name_1. | |
41371 | (md_reader::read_name_or_nil): New function. | |
41372 | (md_reader::read_string): Handle "(nil)" by returning NULL. | |
41373 | (md_reader::md_reader): Add new param "compact". | |
41374 | (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE. | |
41375 | (md_reader::read_file): New method. | |
41376 | * read-md.h (md_reader::md_reader): Add new param "compact". | |
41377 | (md_reader::read_file): New method. | |
41378 | (md_reader::is_compact): New accessor. | |
41379 | (md_reader::read_name): Convert return type from void to file_location. | |
41380 | (md_reader::read_name_or_nil): New decl. | |
41381 | (md_reader::read_name_1): New decl. | |
41382 | (md_reader::m_compact): New field. | |
41383 | (noop_reader::noop_reader): Pass "false" for new "compact" param | |
41384 | of rtx_reader. | |
41385 | (rtx_reader::rtx_reader): Add new "compact" param. | |
41386 | (rtx_reader::read_rtx_operand): Make virtual and convert return | |
41387 | type from void to rtx. | |
41388 | (rtx_reader::read_until): New decl. | |
41389 | (rtx_reader::handle_any_trailing_information): New virtual function. | |
41390 | (rtx_reader::postprocess): New virtual function. | |
41391 | (rtx_reader::finalize_string): New virtual function. | |
41392 | (rtx_reader::m_in_call_function_usage): New field. | |
41393 | (rtx_reader::m_reuse_rtx_by_id): New field. | |
41394 | * read-rtl-function.c: New file. | |
41395 | * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function. | |
41396 | * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro. | |
41397 | (selftest::verify_three_block_rtl_cfg): New decl. | |
41398 | * read-rtl-function.h: New file. | |
41399 | * read-rtl.c: Potentially include config.h rather than bconfig.h. | |
41400 | For host, include function.h, memmodel.h, and emit-rtl.h. | |
41401 | (one_time_initialization): New function. | |
41402 | (struct compact_insn_name): New struct. | |
41403 | (compact_insn_names): New array. | |
41404 | (find_code): Handle insn codes in compact dumps. | |
41405 | (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE. | |
41406 | (bind_subst_iter_and_attr): Likewise. | |
41407 | (add_condition_to_string): Likewise. | |
41408 | (add_condition_to_rtx): Likewise. | |
41409 | (apply_attribute_uses): Likewise. | |
41410 | (add_current_iterators): Likewise. | |
41411 | (apply_iterators): Likewise. | |
41412 | (initialize_iterators): Guard usage of apply_subst_iterator with | |
41413 | #ifdef GENERATOR_FILE. | |
41414 | (read_conditions): Wrap with #ifdef GENERATOR_FILE. | |
41415 | (md_reader::read_mapping): Likewise. | |
41416 | (add_define_attr_for_define_subst): Likewise. | |
41417 | (add_define_subst_attr): Likewise. | |
41418 | (read_subst_mapping): Likewise. | |
41419 | (check_code_iterator): Likewise. | |
41420 | (rtx_reader::read_rtx): Likewise. Move one-time initialization | |
41421 | logic to... | |
41422 | (one_time_initialization): New function. | |
41423 | (rtx_reader::read_until): New method. | |
41424 | (read_flags): New function. | |
41425 | (parse_reg_note_name): New function. | |
41426 | (rtx_reader::read_rtx_code): Initialize "iterator" to NULL. | |
41427 | Handle reuse_rtx ids. | |
41428 | Wrap iterator lookup within #ifdef GENERATOR_FILE. | |
41429 | Add parsing support for RTL dumps, mirroring the special-cases in | |
41430 | print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID | |
41431 | values, and calling handle_any_trailing_information. | |
41432 | (rtx_reader::read_rtx_operand): Convert return type from void | |
41433 | to rtx, returning return_rtx. Handle case 'e'. Call | |
41434 | finalize_string on XSTR and XTMPL fields. | |
41435 | (rtx_reader::read_nested_rtx): Handle dumps in which trailing | |
41436 | "(nil)" values were omitted. Call the postprocess vfunc on the | |
41437 | return_rtx. | |
41438 | (rtx_reader::rtx_reader): Add new "compact" param and pass to base | |
41439 | class ctor. Initialize m_in_call_function_usage. Call | |
41440 | one_time_initialization. | |
41441 | * rtl-tests.c (selftest::test_uncond_jump): Call | |
41442 | set_new_first_and_last_insn. | |
41443 | * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE. | |
41444 | * selftest-rtl.c: New file. | |
41445 | * selftest-rtl.h (class selftest::rtl_dump_test): New class. | |
41446 | (selftest::get_insn_by_uid): New decl. | |
41447 | * selftest-run-tests.c (selftest::run_tests): Call | |
41448 | read_rtl_function_c_tests. | |
41449 | * selftest.h (selftest::read_rtl_function_c_tests): New decl. | |
41450 | * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function | |
41451 | dumps. | |
41452 | ||
41453 | 2017-01-05 Uros Bizjak <ubizjak@gmail.com> | |
41454 | ||
41455 | * config/i386/i386.md (*testqi_ext_3): No need to handle memory | |
41456 | operands in a special way. Assert that pos+len <= mode precision. | |
41457 | ||
41458 | 2017-01-05 Jakub Jelinek <jakub@redhat.com> | |
41459 | ||
41460 | * common.opt (fvect-cost-model): Remove RejectNegative flag, use | |
41461 | 3 argument Alias with unlimited for the negative form. | |
41462 | (fno-vect-cost-model): Removed. | |
41463 | ||
41464 | 2017-01-05 Martin Liska <mliska@suse.cz> | |
41465 | ||
41466 | * hsa-gen.c (gen_hsa_divmod): New function. | |
41467 | (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD. | |
41468 | ||
41469 | 2017-01-05 Martin Liska <mliska@suse.cz> | |
41470 | ||
41471 | PR pch/78970 | |
41472 | * gcc.c (lookup_compiler): Reject '-' filename for a precompiled | |
41473 | header. | |
41474 | ||
41475 | 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
41476 | ||
41477 | * config/s390/s390.c (s390_expand_setmem): Unroll the loop for | |
41478 | small constant length operands. | |
41479 | ||
41480 | 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
41481 | ||
41482 | * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes | |
41483 | between loop iterations. | |
41484 | ||
41485 | 2017-01-05 Martin Liska <mliska@suse.cz> | |
41486 | ||
41487 | PR sanitizer/78815 | |
41488 | * gimplify.c (gimplify_decl_expr): Compare to | |
41489 | asan_poisoned_variables instread of checking flags. | |
41490 | (gimplify_target_expr): Likewise. | |
41491 | (gimplify_expr): Likewise. | |
41492 | (gimplify_function_tree): Conditionally initialize | |
41493 | asan_poisoned_variables. | |
41494 | ||
41495 | 2017-01-04 Jeff Law <law@redhat.com> | |
41496 | ||
41497 | PR tree-optimizatin/78812 | |
41498 | * rtl.h (contains_mem_rtx_p): Prototype. | |
41499 | * ifcvt.c (containts_mem_rtx_p): Move from here to... | |
41500 | * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage. | |
41501 | * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover | |
41502 | and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look | |
41503 | through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs. | |
41504 | ||
41505 | 2017-01-04 Alexandre Oliva <aoliva@redhat.com> | |
41506 | ||
41507 | * input.c (assert_char_at_range): Default-initialize actual_range. | |
41508 | ||
41509 | 2017-01-04 Alexandre Oliva <aoliva@redhat.com> | |
41510 | ||
41511 | * df-scan.c (df_ref_create_structure): Make regno unsigned, | |
41512 | to match the caller. | |
41513 | ||
41514 | 2017-01-04 Alexandre Oliva <aoliva@redhat.com> | |
41515 | ||
41516 | * cfgexpand.c (expand_gimple_basic_block): Disregard debug | |
41517 | insns after final jump in test to emit dummy move. | |
41518 | ||
41519 | 2017-01-04 Alexandre Oliva <aoliva@redhat.com> | |
41520 | ||
41521 | * gimple-iterator.h (gsi_one_nondebug_before_end_p): New. | |
41522 | * tree-eh.c (cleanup_empty_eh): Skip more debug stmts. | |
41523 | ||
41524 | 2017-01-04 Alexandre Oliva <aoliva@redhat.com> | |
41525 | ||
41526 | * multiple_target.c (create_dispatcher_calls): Init e_next. | |
41527 | * tree-ssa-loop-split.c (split_loop): Init border. | |
41528 | * tree-vect-loop.c (vect_determine_vectorization_factor): Init | |
41529 | scalar_type. | |
41530 | ||
41531 | 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com> | |
41532 | ||
41533 | PR target/71977 | |
41534 | PR target/70568 | |
41535 | PR target/78823 | |
41536 | * config/rs6000/predicates.md (sf_subreg_operand): New predicate. | |
41537 | (altivec_register_operand): Do not return true if the operand | |
41538 | contains a SUBREG mixing SImode and SFmode. | |
41539 | (vsx_register_operand): Likewise. | |
41540 | (vsx_reg_sfsubreg_ok): New predicate. | |
41541 | (vfloat_operand): Do not return true if the operand contains a | |
41542 | SUBREG mixing SImode and SFmode. | |
41543 | (vint_operand): Likewise. | |
41544 | (vlogical_operand): Likewise. | |
41545 | (gpc_reg_operand): Likewise. | |
41546 | (int_reg_operand): Likewise. | |
41547 | * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration. | |
41548 | * config/rs6000/rs6000.c (valid_sf_si_move): New function to | |
41549 | determine if a MOVSI or MOVSF operation contains SUBREGs that mix | |
41550 | SImode and SFmode. | |
41551 | (rs6000_emit_move_si_sf_subreg): New helper function. | |
41552 | (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily | |
41553 | fixup SUBREGs involving SImode and SFmode. | |
41554 | * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand | |
41555 | numbers for the new peephole2 optimization. | |
41556 | (peephole2 for SFmode unions): New peephole2 to optimize cases in | |
41557 | the GLIBC math library that do AND/IOR/XOR operations on single | |
41558 | precision floating point. | |
41559 | * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal | |
41560 | target macros to say whether we need to avoid SUBREGs mixing | |
41561 | SImode and SFmode. | |
41562 | (TARGET_ALLOW_SF_SUBREG): Likewise. | |
41563 | * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs. | |
41564 | (UNSPEC_SI_FROM_SF): Likewise. | |
41565 | (iorxor): Change spacing. | |
41566 | (and_ior_xor): New iterator for AND, IOR, and XOR. | |
41567 | (movsi_from_sf): New insns for SImode/SFmode SUBREG support. | |
41568 | (movdi_from_sf_zero_ext): Likewise. | |
41569 | (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand | |
41570 | instead of gpc_reg_operand. Add SImode/SFmode SUBREG support. | |
41571 | (movsf_from_si): New insn for SImode/SFmode SUBREG support. | |
41572 | (fma<mode>4): Use gpc_reg_operand instead of register_operand. | |
41573 | (fms<mode>4): Likewise. | |
41574 | (fnma<mode>4): Likewise. | |
41575 | (fnms<mode>4): Likewise. | |
41576 | (nfma<mode>4): Likewise. | |
41577 | (nfms<mode>4): Likewise. | |
41578 | ||
41579 | 2017-01-04 Marek Polacek <polacek@redhat.com> | |
41580 | ||
41581 | PR c++/64767 | |
41582 | * doc/invoke.texi: Document -Wpointer-compare. | |
41583 | ||
41584 | 2017-01-04 Jakub Jelinek <jakub@redhat.com> | |
41585 | ||
41586 | * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without | |
41587 | RejectNegative. | |
41588 | ||
41589 | * dwarf2out.c (output_loc_list): Don't throw away 64K+ location | |
41590 | descriptions for -gdwarf-5 and emit them as uleb128 instead of | |
41591 | 2-byte data. | |
41592 | ||
41593 | 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
41594 | ||
41595 | PR target/78056 | |
41596 | * doc/sourcebuild.texi (PowerPC-specific attributes): Add | |
41597 | documentation of the powerpc_popcntb_ok attribute. | |
41598 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Add | |
41599 | code to issue warning messages if a requested CPU configuration is | |
41600 | not supported by the binary (assembler and loader) toolchain. | |
41601 | (spe_init_builtins): Add two assertions to prevent ICE if attempt is | |
41602 | made to define a built-in function that has been disabled. | |
41603 | (paired_init_builtins): Add assertion to prevent ICE if attempt is | |
41604 | made to define a built-in function that has been disabled. | |
41605 | (altivec_init_builtins): Add comment explaining why definition | |
41606 | of the DST built-in functions is not preceded by an assertion | |
41607 | check. Add assertions to prevent ICE if attempts are made to | |
41608 | define an altivec predicate or an abs* built-in function that has | |
41609 | been disabled. | |
41610 | (htm_init_builtins): Add comment explaining why definition of the | |
41611 | htm built-in functions is not preceded by an assertion check. | |
41612 | ||
41613 | 2017-01-04 Jeff Law <law@redhat.com> | |
41614 | ||
41615 | PR tree-optimizatin/67955 | |
41616 | * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first. | |
41617 | Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify | |
41618 | the points-to solution does not include pt_null. Use DECL_PT_UID | |
41619 | unconditionally. | |
41620 | ||
41621 | 2017-01-04 Uros Bizjak <ubizjak@gmail.com> | |
41622 | ||
41623 | * config/i386/i386.md (HI/SImode test with imm to QImode splitters): | |
41624 | Use gen_int_mode instead of gen_lopwart for const_int operands. | |
41625 | ||
41626 | 2017-01-04 Jakub Jelinek <jakub@redhat.com> | |
41627 | ||
41628 | PR tree-optimization/71563 | |
41629 | * match.pd: Simplify X << Y into X if Y is known to be 0 or | |
41630 | out of range value - has low bits known to be zero. | |
41631 | ||
41632 | 2017-01-04 Alan Modra <amodra@gmail.com> | |
41633 | ||
41634 | * Makefile.in (aclocal_deps): Update and order as per aclocal.m4. | |
41635 | * configure: Regenerate. | |
41636 | * config.in: Regenerate. | |
41637 | ||
41638 | 2017-01-04 Jakub Jelinek <jakub@redhat.com> | |
41639 | ||
41640 | PR bootstrap/77569 | |
41641 | * input.c (ebcdic_execution_charset::on_error): Don't use strstr for | |
41642 | a substring of the message, but strcmp with the whole message. Ifdef | |
41643 | ENABLE_NLS, translate the message first using dgettext. | |
41644 | ||
41645 | 2017-01-03 Jeff Law <law@redhat.com> | |
41646 | ||
41647 | PR tree-optimizatin/78856 | |
41648 | * tree-ssa-threadupdate.c: Include tree-vectorizer.h. | |
41649 | (mark_threaded_blocks): Remove code to truncate thread paths that | |
41650 | cross multiple loop headers. Instead invalidate the cached loop | |
41651 | iteration information and handle case of a thread path walking | |
41652 | into an irreducible region. | |
41653 | ||
41654 | 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com> | |
41655 | ||
41656 | PR target/78900 | |
41657 | * config/rs6000/rs6000.c (rs6000_split_signbit): Change some | |
41658 | assertions. Add support for doing the signbit if the IEEE 128-bit | |
41659 | floating point value is in a GPR. | |
41660 | * config/rs6000/rs6000.md (Fsignbit): Delete. | |
41661 | (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa". | |
41662 | Update the length attribute if the value is in a GPR. | |
41663 | (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate | |
41664 | the sign or zero extension instruction, since the value is always 0/1. | |
41665 | (signbit<mode>2_dm2): Delete using <Fsignbit>. | |
41666 | ||
41667 | PR target/78953 | |
41668 | * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are | |
41669 | extracting SImode to a GPR register so that we can generate a | |
41670 | store, limit the vector to be in a traditional Altivec register | |
41671 | for the vextuwrx instruction. | |
41672 | ||
41673 | 2017-01-03 Ian Lance Taylor <iant@google.com> | |
41674 | ||
41675 | * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE. | |
41676 | ||
41677 | 2017-01-03 Martin Sebor <msebor@redhat.com> | |
41678 | ||
41679 | PR tree-optimization/78696 | |
41680 | * gimple-ssa-sprintf.c (format_floating): Correct handling of | |
41681 | precision. Use MPFR for %f for greater fidelity. Correct handling | |
41682 | of %g. | |
41683 | (pass_sprintf_length::compute_format_length): Set width and precision | |
41684 | specified by asrerisk to void_node for vararg functions. | |
41685 | (try_substitute_return_value): Adjust dump output. | |
41686 | ||
41687 | 2017-01-03 David Edelsohn <dje.gcc@gmail.com> | |
41688 | ||
41689 | * doc/invoke.texi (RS6000 options): LRA is enabled by default. | |
41690 | ||
41691 | 2017-01-03 Eric Botcazou <ebotcazou@adacore.com> | |
41692 | ||
41693 | * doc/invoke.texi (SPARC options): Document -mlra as the default. | |
41694 | * config/sparc/sparc.c (sparc_option_override): Force LRA unless | |
41695 | -mlra/-mno-lra was passed to the compiler. | |
41696 | ||
41697 | 2017-01-03 James Cowgill <James.Cowgill@imgtec.com> | |
41698 | ||
41699 | PR rtl-optimization/65618 | |
41700 | * emit-rtl.c (try_split): Move initialization of "before" and | |
41701 | "after" to just before the call to emit_insn_after_setloc. | |
41702 | ||
41703 | 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com> | |
41704 | ||
41705 | * doc/md.texi (Standard Names): Remove reference to Java frontend. | |
41706 | ||
41707 | 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com> | |
41708 | ||
41709 | * dwarf2out.c (gen_enumeration_type_die): When | |
41710 | -gno-strict-dwarf, add a DW_AT_encoding attribute. | |
41711 | ||
41712 | 2017-01-03 Jakub Jelinek <jakub@redhat.com> | |
41713 | ||
41714 | PR tree-optimization/78965 | |
41715 | * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length): | |
41716 | Change first argument from const call_info & to call_info &. For %n | |
41717 | set info.nowrite to false. | |
41718 | ||
41719 | PR middle-end/78901 | |
41720 | * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change | |
41721 | possibly throwing calls. | |
41722 | ||
41723 | * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME | |
41724 | and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs | |
41725 | and fns handling, rather than in a separate case SSA_NAME. | |
41726 | ||
41727 | 2017-01-02 Jeff Law <law@redhat.com> | |
41728 | ||
41729 | * config/darwin-driver.c (darwin_driver_init): Const-correctness | |
41730 | fixes for first_period and second_period variables. | |
41731 | ||
41732 | 2017-01-02 Uros Bizjak <ubizjak@gmail.com> | |
41733 | ||
41734 | PR target/78967 | |
41735 | * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec. | |
41736 | (*insvqi_1): New insn pattern. | |
41737 | (*insvqi_1_mem_rex64): Ditto. | |
41738 | (*insvqi_2): Ditto. | |
41739 | (*insvqi_3): Rename from *insvqi. | |
41740 | ||
41741 | (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag. | |
41742 | ||
41743 | 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com> | |
41744 | ||
41745 | * doc/cfg.texi (Edges): Remove reference to Java. | |
41746 | (Maintaining the CFG): Ditto. | |
41747 | ||
41748 | 2017-01-01 Jan Hubicka <hubicka@ucw.cz> | |
41749 | ||
41750 | PR middle-end/77674 | |
41751 | * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of | |
41752 | transparent aliases. | |
41753 | ||
41754 | 2017-01-01 Jan Hubicka <hubicka@ucw.cz> | |
41755 | ||
41756 | PR middle-end/77484 | |
41757 | * predict.def (PRED_CALL): Update hitrate. | |
41758 | (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors. | |
41759 | * predict.c (tree_estimate_probability_bb): Split CALL predictor | |
41760 | into direct/indirect/polymorphic variants. | |
41761 | ||
41762 | 2017-01-01 Jakub Jelinek <jakub@redhat.com> | |
41763 | ||
41764 | Update copyright years. | |
41765 | ||
41766 | * gcc.c (process_command): Update copyright notice dates. | |
41767 | * gcov-dump.c (print_version): Ditto. | |
41768 | * gcov.c (print_version): Ditto. | |
41769 | * gcov-tool.c (print_version): Ditto. | |
41770 | * gengtype.c (create_file): Ditto. | |
41771 | * doc/cpp.texi: Bump @copying's copyright year. | |
41772 | * doc/cppinternals.texi: Ditto. | |
41773 | * doc/gcc.texi: Ditto. | |
41774 | * doc/gccint.texi: Ditto. | |
41775 | * doc/gcov.texi: Ditto. | |
41776 | * doc/install.texi: Ditto. | |
41777 | * doc/invoke.texi: Ditto. | |
41778 | \f | |
41779 | Copyright (C) 2017 Free Software Foundation, Inc. | |
41780 | ||
41781 | Copying and distribution of this file, with or without modification, | |
41782 | are permitted in any medium without royalty provided the copyright | |
41783 | notice and this notice are preserved. |