]>
Commit | Line | Data |
---|---|---|
6e926962 JJ |
1 | 2020-12-31 Richard Sandiford <richard.sandiford@arm.com> |
2 | ||
3 | PR tree-optimization/98302 | |
4 | * tree-vect-patterns.c (vect_determine_precisions_from_users): Make | |
5 | sure that the precision remains greater than the shift count. | |
6 | ||
7 | 2020-12-31 Richard Sandiford <richard.sandiford@arm.com> | |
8 | ||
9 | PR tree-optimization/94994 | |
10 | * tree-vect-data-refs.c (vect_vfa_align): Use dr_alignment. | |
11 | ||
12 | 2020-12-31 Richard Sandiford <richard.sandiford@arm.com> | |
13 | ||
14 | PR rtl-optimization/98214 | |
15 | * genmodes.c (emit_insn_modes_h): Emit a definition of CONST_MODE_MASK. | |
16 | (emit_mode_mask): Treat mode_mask_array as non-constant if adj_nunits. | |
17 | (emit_mode_adjustments): Update GET_MODE_MASK when updating | |
18 | GET_MODE_NUNITS. | |
19 | * machmode.h (mode_mask_array): Use CONST_MODE_MASK. | |
20 | ||
21 | 2020-12-31 Jakub Jelinek <jakub@redhat.com> | |
22 | ||
23 | PR tree-optimization/94802 | |
24 | * match.pd (clz(X) == 0 -> (int)X < 0): New simplification. | |
25 | (clz(X) == (prec-1) -> X == 1): Likewise. | |
26 | ||
27 | 2020-12-31 Jakub Jelinek <jakub@redhat.com> | |
28 | ||
29 | PR tree-optimization/94785 | |
30 | * match.pd ((-(X < 0) | 1) * X -> abs (X)): New simplification. | |
31 | ((-(X < 0) | 1U) * X -> absu (X)): Likewise. | |
32 | ||
33 | 2020-12-31 Jakub Jelinek <jakub@redhat.com> | |
34 | ||
35 | PR tree-optimization/98474 | |
36 | * wide-int.cc (wi::to_mpz): If wide_int has MSB set, but type | |
37 | is unsigned and excess negative, append set bits after len until | |
38 | precision. | |
39 | ||
40 | 2020-12-31 Jakub Jelinek <jakub@redhat.com> | |
41 | ||
42 | PR c++/98206 | |
43 | * fold-const.c: Include asan.h. | |
44 | (fold_unary_loc): Don't optimize (ptr_type) (((ptr_type2) x) p+ y) | |
45 | into ((ptr_type) x) p+ y if sanitizing alignment in GENERIC and | |
46 | ptr_type points to type with higher alignment than ptr_type2. | |
47 | ||
48 | 2020-12-31 Jakub Jelinek <jakub@redhat.com> | |
49 | ||
50 | PR tree-optimization/56719 | |
51 | * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize | |
52 | x < C && y < C && z < C when C is a power of two constant into | |
53 | (x | y | z) < C. | |
54 | ||
55 | 2020-12-30 Uroš Bizjak <ubizjak@gmail.com> | |
56 | ||
57 | * config/i386/i386.md: Remove unnecessary clobbers | |
58 | from combine splitters. | |
59 | ||
60 | 2020-12-30 Jakub Jelinek <jakub@redhat.com> | |
61 | ||
62 | PR target/98461 | |
63 | * config/i386/sse.md (<sse2_avx2>_pmovmskb): Add splitters | |
64 | for pmovmskb of NOT vector. | |
65 | ||
66 | 2020-12-29 Claudiu Zissulescu <claziss@synopsys.com> | |
67 | ||
68 | * config/arc/arc.md (maddsidi4_split): Skip macd gen, use mac insn | |
69 | instead. | |
70 | (macd): Update register letters. | |
71 | (umaddsidi4_split): Skip macdu gen, use macu insn instead. | |
72 | (macdu): Update register letters. | |
73 | ||
74 | 2020-12-29 Claudiu Zissulescu <claziss@synopsys.com> | |
75 | ||
76 | * config/arc/arc.c (arc_secondary_reload): Flip if-condition | |
77 | predicates. | |
78 | ||
79 | 2020-12-29 Claudiu Zissulescu <claziss@synopsys.com> | |
80 | ||
81 | * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Check if defined | |
82 | reg_renumber. | |
83 | ||
84 | 2020-12-29 Claudiu Zissulescu <claziss@synopsys.com> | |
85 | ||
86 | * config/arc/arc.c (prepare_move_operands): Use a temporary | |
87 | registers when we have cached mem-to-uncached mem moves. | |
88 | ||
89 | 2020-12-29 Claudiu Zissulescu <claziss@synopsys.com> | |
90 | ||
91 | * config/arc/arc.md (movdi_insn): Update pattern, no predicated | |
92 | vadd2 usage. | |
93 | (movdf_insn): Likewise. | |
94 | * config/arc/simdext.md (movVEC_insn): Likewise. | |
95 | ||
96 | 2020-12-29 Uroš Bizjak <ubizjak@gmail.com> | |
97 | ||
98 | * config/i386/i386-expand.c (ix86_gen_TWO52): Use REAL_MODE_FORMAT | |
99 | to determine number of mantissa bits. Use real_2expN instead | |
100 | of real_ldexp. | |
101 | (ix86_expand_rint): Use copy_to_reg. | |
102 | (ix86_expand_floorceildf_32): Ditto. | |
103 | (ix86_expand_truncdf_32): Ditto. | |
104 | (ix86_expand_rounddf_32): Ditto. | |
105 | (ix86_expand_floorceil): Use copy_to_reg and int_mode_for_mode. | |
106 | (ix86_expand_trunc): Ditto. | |
107 | (ix86_expand_round): Ditto. | |
108 | ||
109 | 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com> | |
110 | ||
111 | * doc/standards.texi (HSAIL): Remove section. | |
112 | ||
113 | 2020-12-28 Uroš Bizjak <ubizjak@gmail.com> | |
114 | ||
115 | PR target/96793 | |
116 | * config/i386/i386-expand.c (ix86_expand_rint): | |
117 | Remove the sign of the intermediate value for flag_rounding_math. | |
118 | ||
119 | 2020-12-28 Uroš Bizjak <ubizjak@gmail.com> | |
120 | ||
121 | * config/i386/i386-expand.c (ix86_expand_trunc): Use | |
122 | existing temporary register to avoid a call to force_reg. | |
123 | ||
124 | 2020-12-28 Hongyu Wang <hongyu.wang@intel.com> | |
125 | ||
126 | * config/i386/i386.md (optab): New code attr. | |
127 | * config/i386/sse.md (<code>v32qiv32hi2): Rename to ... | |
128 | (<optab>v32qiv32hi2) ... this. | |
129 | (<code>v16qiv16hi2): Likewise. | |
130 | (<code>v8qiv8hi2): Likewise. | |
131 | (<code>v16qiv16si2): Likewise. | |
132 | (<code>v8qiv8si2): Likewise. | |
133 | (<code>v4qiv4si2): Likewise. | |
134 | (<code>v16hiv16si2): Likewise. | |
135 | (<code>v8hiv8si2): Likewise. | |
136 | (<code>v4hiv4si2): Likewise. | |
137 | (<code>v8qiv8di2): Likewise. | |
138 | (<code>v4qiv4di2): Likewise. | |
139 | (<code>v2qiv2di2): Likewise. | |
140 | (<code>v8hiv8di2): Likewise. | |
141 | (<code>v4hiv4di2): Likewise. | |
142 | (<code>v2hiv2di2): Likewise. | |
143 | (<code>v8siv8di2): Likewise. | |
144 | (<code>v4siv4di2): Likewise. | |
145 | (<code>v2siv2di2): Likewise. | |
146 | ||
147 | 2020-12-27 Gerald Pfeifer <gerald@pfeifer.com> | |
148 | ||
149 | * doc/analyzer.texi (Analyzer Internals): Find a new source for | |
150 | the "A Memory Model for Static Analysis of C Programs" paper. | |
151 | ||
152 | 2020-12-25 Gerald Pfeifer <gerald@pfeifer.com> | |
153 | ||
154 | * doc/invoke.texi (C++ Module Mapper): Fix reference to libcody. | |
155 | ||
156 | 2020-12-24 Iain Sandoe <iain@sandoe.co.uk> | |
157 | ||
158 | * configure.ac: Add gxx-libcxx-include-dir handled | |
159 | in the same way as the regular cxx header directory. | |
160 | * Makefile.in: Regenerated. | |
161 | * config.in: Likewise. | |
162 | * configure: Likewise. | |
163 | * cppdefault.c: Pick up libc++ headers if the option | |
164 | is enabled. | |
165 | * cppdefault.h (struct default_include): Amend comments | |
166 | to reflect the extended use of the cplusplus field. | |
167 | * incpath.c (add_standard_paths): Allow for multiple | |
168 | c++ header include path variants. | |
169 | * doc/invoke.texi: Document the -stdlib= option. | |
170 | ||
171 | 2020-12-24 Kito Cheng <kito.cheng@sifive.com> | |
172 | ||
173 | * config/riscv/multilib-generator (arch_canonicalize): Call | |
174 | decode for the subprocess return value. | |
175 | ||
176 | 2020-12-23 Martin Sebor <msebor@redhat.com> | |
177 | ||
178 | PR middle-end/98160 | |
179 | * builtins.c (warn_dealloc_offset): Avoid assuming calls are made | |
180 | through declared functions and not pointers. | |
181 | ||
182 | 2020-12-23 Martin Sebor <msebor@redhat.com> | |
183 | ||
184 | PR c++/98413 | |
185 | * builtins.c (get_offset_range): Avoid non-integers/-pointers. | |
186 | ||
187 | 2020-12-23 Iain Sandoe <iain@sandoe.co.uk> | |
188 | ||
189 | * config/darwin-driver.c (validate_macosx_version_min): Allow | |
190 | MACOSX_DEPLOYMENT_TARGET=11. | |
191 | (darwin_default_min_version): Adjust warning spelling to avoid | |
192 | an apostrophe. | |
193 | ||
194 | 2020-12-23 Uroš Bizjak <ubizjak@gmail.com> | |
195 | ||
196 | PR target/96793 | |
197 | * config/i386/i386-expand.c (ix86_expand_truncdf_32): | |
198 | Remove the sign of the intermediate value for flag_rounding_math. | |
199 | ||
200 | 2020-12-22 Qian Jianhua <qianjh@cn.fujitsu.com> | |
201 | ||
202 | * config/arm/types.md (define_attr "autodetect_type"): New. | |
203 | (define_attr "type"): Subdivide alu_shift_imm. | |
204 | * config/arm/common.md: New file. | |
205 | * config/aarch64/predicates.md:Include common.md. | |
206 | * config/arm/predicates.md:Include common.md. | |
207 | * config/aarch64/aarch64.md (*add_<shift>_<mode>): Set autodetect_type. | |
208 | (*add_<shift>_si_uxtw): Likewise. | |
209 | (*sub_<shift>_<mode>): Likewise. | |
210 | (*sub_<shift>_si_uxtw): Likewise. | |
211 | (*neg_<shift>_<mode>2): Likewise. | |
212 | (*neg_<shift>_si2_uxtw): Likewise. | |
213 | * config/arm/arm.md (*addsi3_carryin_shift): Likewise. | |
214 | (add_not_shift_cin): Likewise. | |
215 | (*subsi3_carryin_shift): Likewise. | |
216 | (*subsi3_carryin_shift_alt): Likewise. | |
217 | (*rsbsi3_carryin_shift): Likewise. | |
218 | (*rsbsi3_carryin_shift_alt): Likewise. | |
219 | (*arm_shiftsi3): Likewise. | |
220 | (*<arith_shift_insn>_multsi): Likewise. | |
221 | (*<arith_shift_insn>_shiftsi): Likewise. | |
222 | (subsi3_carryin): Set new type. | |
223 | (*if_arith_move): Set new type. | |
224 | (*if_move_arith): Set new type. | |
225 | (define_attr "core_cycles"): Use new type. | |
226 | * config/arm/arm-fixed.md (arm_ssatsihi_shift): Set autodetect_type. | |
227 | * config/arm/thumb2.md (*orsi_not_shiftsi_si): Likewise. | |
228 | (*thumb2_shiftsi3_short): Set new type. | |
229 | * config/aarch64/falkor.md (falkor_alu_1_xyz): Use new type. | |
230 | * config/aarch64/saphira.md (saphira_alu_1_xyz): Likewise. | |
231 | * config/aarch64/thunderx.md (thunderx_arith_shift): Likewise. | |
232 | * config/aarch64/thunderx2t99.md (thunderx2t99_alu_shift): Likewise. | |
233 | * config/aarch64/thunderx3t110.md (thunderx3t110_alu_shift): Likewise. | |
234 | (thunderx3t110_alu_shift1): Likewise. | |
235 | * config/aarch64/tsv110.md (tsv110_alu_shift): Likewise. | |
236 | * config/arm/arm1020e.md (1020alu_shift_op): Likewise. | |
237 | * config/arm/arm1026ejs.md (alu_shift_op): Likewise. | |
238 | * config/arm/arm1136jfs.md (11_alu_shift_op): Likewise. | |
239 | * config/arm/arm926ejs.md (9_alu_op): Likewise. | |
240 | * config/arm/cortex-a15.md (cortex_a15_alu_shift): Likewise. | |
241 | * config/arm/cortex-a17.md (cortex_a17_alu_shiftimm): Likewise. | |
242 | * config/arm/cortex-a5.md (cortex_a5_alu_shift): Likewise. | |
243 | * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise. | |
244 | * config/arm/cortex-a57.md (cortex_a57_alu_shift): Likewise. | |
245 | * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise. | |
246 | * config/arm/cortex-a8.md (cortex_a8_alu_shift): Likewise. | |
247 | * config/arm/cortex-a9.md (cortex_a9_dp_shift): Likewise. | |
248 | * config/arm/cortex-m4.md (cortex_m4_alu): Likewise. | |
249 | * config/arm/cortex-m7.md (cortex_m7_alu_shift): Likewise. | |
250 | * config/arm/cortex-r4.md (cortex_r4_alu_shift): Likewise. | |
251 | * config/arm/exynos-m1.md (exynos_m1_alu_shift): Likewise. | |
252 | * config/arm/fa526.md (526_alu_shift_op): Likewise. | |
253 | * config/arm/fa606te.md (606te_alu_op): Likewise. | |
254 | * config/arm/fa626te.md (626te_alu_shift_op): Likewise. | |
255 | * config/arm/fa726te.md (726te_alu_shift_op): Likewise. | |
256 | * config/arm/fmp626.md (mp626_alu_shift_op): Likewise. | |
257 | * config/arm/marvell-pj4.md (pj4_shift): Likewise. | |
258 | (pj4_shift_conds): Likewise. | |
259 | (pj4_alu_shift): Likewise. | |
260 | (pj4_alu_shift_conds): Likewise. | |
261 | * config/arm/xgene1.md (xgene1_alu): Likewise. | |
262 | * config/arm/arm.c (xscale_sched_adjust_cost): Likewise. | |
263 | ||
264 | 2020-12-22 Uroš Bizjak <ubizjak@gmail.com> | |
265 | ||
266 | PR target/96793 | |
267 | * config/i386/i386-expand.c (ix86_expand_floorceil): | |
268 | Remove the sign of the intermediate value for flag_rounding_math. | |
269 | (ix86_expand_floorceildf_32): Ditto. | |
270 | ||
271 | 2020-12-22 liuhongt <hongtao.liu@intel.com> | |
272 | ||
273 | * config/i386/i386.md (*one_cmpl<mode>2_1): Fix typo, change | |
274 | alternative from 2 to 1 in attr isa. | |
275 | ||
276 | 2020-12-22 Ian Lance Taylor <iant@golang.org> | |
277 | ||
278 | * godump.c (go_output_typedef): If DECL_ORIGINAL_TYPE is NULL, use | |
279 | TREE_TYPE. | |
280 | ||
281 | 2020-12-21 Jakub Jelinek <jakub@redhat.com> | |
282 | ||
283 | PR c++/98353 | |
284 | * gimplify.c (gimplify_init_ctor_eval_range): Gimplify value before | |
285 | storing it into cref. | |
286 | ||
287 | 2020-12-21 Iain Sandoe <iain@sandoe.co.uk> | |
288 | ||
289 | * config/darwin-driver.c (darwin_find_version_from_kernel): | |
290 | Compute the minor OS version from the minor kernel version. | |
291 | ||
292 | 2020-12-21 Jakub Jelinek <jakub@redhat.com> | |
293 | ||
294 | PR tree-optimization/98407 | |
295 | * fold-const.c (native_encode_initializer): When handling flexible | |
296 | array members, fix up computation of length for memset. Also remove | |
297 | " - o" as o is always guaranteed to be 0 in this code path. | |
298 | ||
299 | 2020-12-21 Jakub Jelinek <jakub@redhat.com> | |
300 | ||
301 | PR c++/98383 | |
302 | * gimplify.c (struct gimplify_omp_ctx): Add in_for_exprs flag. | |
303 | (gimple_add_tmp_var): For addressable temporaries appearing in | |
304 | simd lb, b or incr expressions, don't add a private clause unless | |
305 | it is seen also outside of those expressions in the simd body. | |
306 | (omp_notice_variable): Likewise. | |
307 | (gimplify_omp_for): Set and reset in_for_exprs around gimplification | |
308 | of lb, b or incr expressions. | |
309 | ||
310 | 2020-12-20 Max Filippov <jcmvbkbc@gmail.com> | |
311 | ||
312 | * config/xtensa/xtensa.md (bswapsi2, bswapdi2): New patterns. | |
313 | ||
314 | 2020-12-20 Jakub Jelinek <jakub@redhat.com> | |
315 | ||
316 | PR other/98400 | |
317 | * doc/invoke.texi (-mbackchain): Fix a typo - -mmo-backchain -> | |
318 | -mno-backchain. | |
319 | ||
320 | 2020-12-19 Jakub Jelinek <jakub@redhat.com> | |
321 | ||
322 | PR middle-end/98366 | |
323 | * fold-const.c (native_encode_initializer): Don't try to | |
324 | memset more than total_bytes with off == -1 even if len is large. | |
325 | Handle flexible array member initializers if off == -1 and mask is | |
326 | NULL. | |
327 | * expr.c (convert_to_bytes): Remove. | |
328 | (constant_byte_string): Use native_encode_initializer instead of | |
329 | convert_to_bytes. Remove extraneous semicolon. Punt on various | |
330 | corner-cases the APIs don't handle, like sizes > INT_MAX, | |
331 | BITS_PER_UNIT != 8, CHAR_BIT != 8. | |
332 | ||
333 | 2020-12-19 Iain Buclaw <ibuclaw@gdcproject.org> | |
334 | ||
335 | PR d/98067 | |
336 | * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Handle | |
337 | CONST_DECL only if is_fortran, is_ada, or is_dlang. | |
338 | ||
339 | 2020-12-19 Jakub Jelinek <jakub@redhat.com> | |
340 | ||
341 | PR tree-optimization/98378 | |
342 | * gimple-ssa-store-merging.c (find_bswap_or_nop): Punt if CONSTRUCTOR | |
343 | has no elements. | |
344 | ||
345 | 2020-12-18 Jakub Jelinek <jakub@redhat.com> | |
346 | ||
347 | * gimplify.c (struct gimplify_omp_ctx): Add has_depend member. | |
348 | (gimplify_scan_omp_clauses): Set it to true if OMP_CLAUSE_DEPEND | |
349 | appears on OMP_TASK. | |
350 | (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Force | |
351 | GOVD_WRITTEN on shared variables if task construct has depend clause. | |
352 | ||
353 | 2020-12-18 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
354 | ||
355 | PR target/98177 | |
356 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Use | |
357 | get_same_sized_vectype to obtain index type. | |
358 | (vectorizable_reduction): Likewise. | |
359 | ||
360 | 2020-12-18 Kwok Cheung Yeung <kcy@codesourcery.com> | |
361 | ||
362 | * langhooks-def.h (lhd_get_decl_init): New. | |
363 | (lhd_finish_decl_inits): New. | |
364 | (LANG_HOOKS_GET_DECL_INIT): New. | |
365 | (LANG_HOOKS_OMP_FINISH_DECL_INITS): New. | |
366 | (LANG_HOOKS_DECLS): Add LANG_HOOKS_GET_DECL_INIT and | |
367 | LANG_HOOKS_OMP_FINISH_DECL_INITS. | |
368 | * langhooks.c (lhd_omp_get_decl_init): New. | |
369 | (lhd_omp_finish_decl_inits): New. | |
370 | * langhooks.h (struct lang_hooks_for_decls): Add omp_get_decl_init | |
371 | and omp_finish_decl_inits. | |
372 | * omp-offload.c (omp_discover_declare_target_var_r): Use | |
373 | get_decl_init langhook in place of DECL_INITIAL. Call | |
374 | omp_finish_decl_inits langhook at end of function. | |
375 | ||
376 | 2020-12-18 Richard Sandiford <richard.sandiford@arm.com> | |
377 | ||
378 | * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Use | |
379 | aarch64_full_sve_mode and aarch64_vq_mode directly, instead of | |
380 | going via aarch64_simd_container_mode. | |
381 | ||
382 | 2020-12-18 Tamar Christina <tamar.christina@arm.com> | |
383 | ||
384 | * config/arm/iterators.md (rot): Add UNSPEC_VCMUL, UNSPEC_VCMUL90, | |
385 | UNSPEC_VCMUL180, UNSPEC_VCMUL270. | |
386 | ||
387 | 2020-12-17 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
388 | ||
389 | * config/arm/arm-cpus.in: Add Cortex-A78C core. | |
390 | * config/arm/arm-tables.opt: Regenerate. | |
391 | * config/arm/arm-tune.md: Regenerate. | |
392 | * doc/invoke.texi: Update docs. | |
393 | ||
394 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
395 | ||
396 | PR rtl-optimization/98347 | |
397 | * rtl-ssa/access-utils.h (full_register): Use regno_reg_rtx | |
398 | instead of reg_raw_mode. | |
399 | ||
400 | 2020-12-17 H.J. Lu <hjl.tools@gmail.com> | |
401 | ||
402 | * targhooks.h (default_estimated_poly_value): Updated. | |
403 | ||
404 | 2020-12-17 Nathan Sidwell <nathan@acm.org> | |
405 | ||
406 | * doc/invoke.texi (C++ Modules): Document lack of std | |
407 | library header units. | |
408 | ||
409 | 2020-12-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
410 | ||
411 | * target.h (enum poly_value_estimate_kind): Define. | |
412 | (estimated_poly_value): Take an estimate kind argument. | |
413 | * target.def (estimated_poly_value): Update definition for the | |
414 | above. | |
415 | * doc/tm.texi: Regenerate. | |
416 | * targhooks.c (estimated_poly_value): Update prototype. | |
417 | * tree-vect-loop.c (vect_better_loop_vinfo_p): Use min, max and | |
418 | likely estimates of VF to pick between vinfos. | |
419 | * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Use | |
420 | estimated_poly_value instead of aarch64_estimated_poly_value. | |
421 | (aarch64_estimated_poly_value): Take a kind argument and handle | |
422 | it. | |
423 | ||
424 | 2020-12-17 Andrea Corallo <andrea.corallo@arm.com> | |
425 | ||
426 | * config/arm/arm_neon.h (vcreate_p64): Remove call to | |
427 | '__builtin_neon_vcreatedi'. | |
428 | ||
429 | 2020-12-17 Andrew MacLeod <amacleod@redhat.com> | |
430 | ||
431 | PR tree-optimization/97750 | |
432 | * range-op.cc (operator_cast::op1_range): Handle pointers better. | |
433 | ||
434 | 2020-12-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
435 | ||
436 | * rtl-ssa.h: Include memmodel.h before tm_p.h. | |
437 | ||
438 | 2020-12-17 Jakub Jelinek <jakub@redhat.com> | |
439 | ||
440 | PR rtl-optimization/98289 | |
441 | * shrink-wrap.c (can_get_prologue): Don't punt on EDGE_CROSSING | |
442 | incoming edges. | |
443 | ||
444 | 2020-12-17 Marius Hillenbrand <mhillen@linux.ibm.com> | |
445 | ||
446 | * configure.ac: Change --enable-s390-excess-float-precision | |
447 | default behavior for cross compiles with target headers. | |
448 | * configure: Regenerate. | |
449 | * doc/install.texi: Adjust documentation. | |
450 | ||
451 | 2020-12-17 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
452 | ||
453 | * config/xtensa/xtensa.md (*ashlsi3_1, *ashlsi3_3x, *ashrsi3_3x) | |
454 | (*lshrsi3_3x): New patterns. | |
455 | ||
456 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
457 | ||
458 | * fwprop.c: Rewrite to use the RTL SSA framework. | |
459 | ||
460 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
461 | ||
462 | * configure.ac: Add rtl-ssa to the list of dependence directories. | |
463 | * configure: Regenerate. | |
464 | * Makefile.in (rtl-ssa-warn): New variable. | |
465 | (OBJS): Add the rtl-ssa object files. | |
466 | * emit-rtl.h (rtl_data::ssa): New field. | |
467 | * rtl-ssa.h: New file. | |
468 | * system.h: Include <functional> when INCLUDE_FUNCTIONAL is defined. | |
469 | * rtl-ssa/access-utils.h: Likewise. | |
470 | * rtl-ssa/accesses.h: New file. | |
471 | * rtl-ssa/accesses.cc: Likewise. | |
472 | * rtl-ssa/blocks.h: New file. | |
473 | * rtl-ssa/blocks.cc: Likewise. | |
474 | * rtl-ssa/change-utils.h: Likewise. | |
475 | * rtl-ssa/changes.h: New file. | |
476 | * rtl-ssa/changes.cc: Likewise. | |
477 | * rtl-ssa/functions.h: New file. | |
478 | * rtl-ssa/functions.cc: Likewise. | |
479 | * rtl-ssa/insn-utils.h: Likewise. | |
480 | * rtl-ssa/insns.h: New file. | |
481 | * rtl-ssa/insns.cc: Likewise. | |
482 | * rtl-ssa/internals.inl: Likewise. | |
483 | * rtl-ssa/is-a.inl: Likewise. | |
484 | * rtl-ssa/member-fns.inl: Likewise. | |
485 | * rtl-ssa/movement.h: Likewise. | |
486 | ||
487 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
488 | ||
489 | * doc/rtl.texi (RTL SSA): New node. | |
490 | ||
491 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
492 | ||
493 | * rtl.h (simple_regno_set): Declare. | |
494 | * rtlanal.c (simple_regno_set): New function. | |
495 | ||
496 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
497 | ||
498 | * rtlanal.h: New file. | |
499 | (MEM_REGNO): New constant. | |
500 | (rtx_obj_flags): New namespace. | |
501 | (rtx_obj_reference, rtx_properties): New classes. | |
502 | (growing_rtx_properties, vec_rtx_properties_base): Likewise. | |
503 | (vec_rtx_properties): New alias. | |
504 | * rtlanal.c: Include it. | |
505 | (rtx_properties::try_to_add_reg): New function. | |
506 | (rtx_properties::try_to_add_dest): Likewise. | |
507 | (rtx_properties::try_to_add_src): Likewise. | |
508 | (rtx_properties::try_to_add_pattern): Likewise. | |
509 | (rtx_properties::try_to_add_insn): Likewise. | |
510 | (vec_rtx_properties_base::grow): Likewise. | |
511 | ||
512 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
513 | ||
514 | * recog.h (insn_change_watermark): New class. | |
515 | ||
516 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
517 | ||
518 | * recog.h (insn_propagation): New class. | |
519 | * recog.c (insn_propagation::apply_to_mem_1): New function. | |
520 | (insn_propagation::apply_to_rvalue_1): Likewise. | |
521 | (insn_propagation::apply_to_lvalue_1): Likewise. | |
522 | (insn_propagation::apply_to_pattern_1): Likewise. | |
523 | (insn_propagation::apply_to_pattern): Likewise. | |
524 | (insn_propagation::apply_to_rvalue): Likewise. | |
525 | ||
526 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
527 | ||
528 | * recog.h (temporarily_undo_changes, redo_changes): Declare. | |
529 | * recog.c (temporarily_undone_changes): New variable. | |
530 | (validate_change_1, confirm_change_group): Check that it's zero. | |
531 | (cancel_changes): Likewise. | |
532 | (swap_change, temporarily_undo_changes): New functions. | |
533 | (redo_changes): Likewise. | |
534 | ||
535 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
536 | ||
537 | * recog.h (validate_change_xveclen): Declare. | |
538 | * recog.c (change_t::old_len): New field. | |
539 | (validate_change_1): Add a new_len parameter. Conditionally | |
540 | replace the XVECLEN of an rtx, avoiding single-element PARALLELs. | |
541 | (validate_change_xveclen): New function. | |
542 | (cancel_changes): Undo changes made by validate_change_xveclen. | |
543 | ||
544 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
545 | ||
546 | * rtl.h (simplify_context): New class. | |
547 | (simplify_unary_operation, simplify_binary_operation): Use it. | |
548 | (simplify_ternary_operation, simplify_relational_operation): Likewise. | |
549 | (simplify_subreg, simplify_gen_unary, simplify_gen_binary): Likewise. | |
550 | (simplify_gen_ternary, simplify_gen_relational): Likewise. | |
551 | (simplify_gen_subreg, lowpart_subreg): Likewise. | |
552 | * simplify-rtx.c (simplify_gen_binary): Turn into a member function | |
553 | of simplify_context. | |
554 | (simplify_gen_unary, simplify_gen_ternary, simplify_gen_relational) | |
555 | (simplify_truncation, simplify_unary_operation): Likewise. | |
556 | (simplify_unary_operation_1, simplify_byte_swapping_operation) | |
557 | (simplify_associative_operation, simplify_logical_relational_operation) | |
558 | (simplify_binary_operation, simplify_binary_operation_series) | |
559 | (simplify_distributive_operation, simplify_plus_minus): Likewise. | |
560 | (simplify_relational_operation, simplify_relational_operation_1) | |
561 | (simplify_cond_clz_ctz, simplify_merge_mask): Likewise. | |
562 | (simplify_ternary_operation, simplify_subreg, simplify_gen_subreg) | |
563 | (lowpart_subreg): Likewise. | |
564 | (simplify_binary_operation_1): Likewise. Test mem_depth when | |
565 | deciding whether the ASHIFT or MULT form is canonical. | |
566 | (simplify_merge_mask): Use simplify_context. | |
567 | ||
568 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
569 | ||
570 | * rtl.h (register_asm_p): Declare. | |
571 | * recog.c (verify_changes): Split out the test for whether | |
572 | a hard register is a register asm to... | |
573 | * rtlanal.c (register_asm_p): ...this new function. | |
574 | ||
575 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
576 | ||
577 | * print-rtl.h (print_insn_with_notes): Declare. | |
578 | * print-rtl.c (print_insn_with_notes): Make non-static | |
579 | ||
580 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
581 | ||
582 | * cfgrtl.h (update_cfg_for_uncondjump): Declare. | |
583 | * combine.c (update_cfg_for_uncondjump): Move to... | |
584 | * cfgrtl.c: ...here. | |
585 | ||
586 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
587 | ||
588 | * vec.h (array_slice): New class. | |
589 | ||
590 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
591 | ||
592 | * Makefile.in (OBJS): Add splay-tree-utils.o. | |
593 | * system.h: Include <array> when INCLUDE_ARRAY is defined. | |
594 | * selftest.h (splay_tree_cc_tests): Declare. | |
595 | * selftest-run-tests.c (selftest::run_tests): Run splay_tree_cc_tests. | |
596 | * splay-tree-utils.h: New file. | |
597 | * splay-tree-utils.tcc: Likewise. | |
598 | * splay-tree-utils.cc: Likewise. | |
599 | ||
600 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
601 | ||
602 | * mux-utils.h: New file. | |
603 | ||
604 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
605 | ||
606 | * obstack-utils.h: New file. | |
607 | ||
608 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
609 | ||
610 | * iterator-utils.h (derived_iterator): New class. | |
611 | (const_derived_container, wrapper_iterator): Likewise. | |
612 | (list_iterator): Likewise. | |
613 | ||
614 | 2020-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
615 | ||
616 | * hard-reg-set.h (global_reg_set): Declare. | |
617 | * reginfo.c (global_reg_set): New variable. | |
618 | (init_reg_sets_1, globalize_reg): Update it when globalizing | |
619 | registers. | |
620 | ||
621 | 2020-12-16 Piotr Kubaj <pkubaj@FreeBSD.org> | |
622 | ||
623 | * config.gcc (powerpc*le-*-freebsd*): Add. | |
624 | * configure.ac (powerpc*le-*-freebsd*): Ditto. | |
625 | * configure: Regenerate. | |
626 | * config/rs6000/freebsd64.h (ASM_SPEC_COMMON): Use ENDIAN_SELECT. | |
627 | (DEFAULT_ASM_ENDIAN): Add little endian support. | |
628 | (LINK_OS_FREEBSD_SPEC64): Ditto. | |
629 | ||
630 | 2020-12-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | |
631 | ||
632 | * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Try to | |
633 | replace 'l32r' with 'movi' + 'slli' when optimizing for size. | |
634 | * config/xtensa/xtensa.md (movdi): Split loading DI mode constant | |
635 | into register pair into two loads of SI mode constants. | |
636 | ||
637 | 2020-12-16 Tamar Christina <tamar.christina@arm.com> | |
638 | ||
639 | * config/arm/arm_mve.h (__arm_vcmulq_rot90_f16): | |
640 | (__arm_vcmulq_rot270_f16, _arm_vcmulq_rot180_f16, __arm_vcmulq_f16, | |
641 | __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32, | |
642 | __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcmlaq_f16, | |
643 | __arm_vcmlaq_rot180_f16, __arm_vcmlaq_rot270_f16, | |
644 | __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32, __arm_vcmlaq_rot180_f32, | |
645 | __arm_vcmlaq_rot270_f32, __arm_vcmlaq_rot90_f32): Update builtin calls. | |
646 | * config/arm/arm_mve_builtins.def (vcmulq_f, vcmulq_rot90_f, | |
647 | vcmulq_rot180_f, vcmulq_rot270_f, vcmlaq_f, vcmlaq_rot90_f, | |
648 | vcmlaq_rot180_f, vcmlaq_rot270_f): Removed. | |
649 | (vcmulq, vcmulq_rot90, vcmulq_rot180, vcmulq_rot270, vcmlaq, | |
650 | vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270): New. | |
651 | * config/arm/iterators.md (mve_rot): Add UNSPEC_VCMLA, UNSPEC_VCMLA90, | |
652 | UNSPEC_VCMLA180, UNSPEC_VCMLA270, UNSPEC_VCMUL, UNSPEC_VCMUL90, | |
653 | UNSPEC_VCMUL180, UNSPEC_VCMUL270. | |
654 | (VCMUL): New. | |
655 | * config/arm/mve.md (mve_vcmulq_f<mode, mve_vcmulq_rot180_f<mode>, | |
656 | mve_vcmulq_rot270_f<mode>, mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, | |
657 | mve_vcmlaq_rot180_f<mode>, mve_vcmlaq_rot270_f<mode>, | |
658 | mve_vcmlaq_rot90_f<mode>): Removed. | |
659 | (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>, | |
660 | mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>): | |
661 | New. | |
662 | * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270, UNSPEC_VCMUL, | |
663 | UNSPEC_VCMUL180): New. | |
664 | (VCMULQ_F, VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, | |
665 | VCMLAQ_F, VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F): Removed. | |
666 | ||
667 | 2020-12-16 Tamar Christina <tamar.christina@arm.com> | |
668 | ||
669 | * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8, | |
670 | __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8, | |
671 | __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, | |
672 | __arm_vcaddq_rot90_s16, __arm_vcaddq_rot270_s16, | |
673 | __arm_vcaddq_rot90_u32, __arm_vcaddq_rot270_u32, | |
674 | __arm_vcaddq_rot90_s32, __arm_vcaddq_rot270_s32, | |
675 | __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16, | |
676 | __arm_vcaddq_rot90_f32, __arm_vcaddq_rot270_f32): Update builtin calls. | |
677 | * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u, | |
678 | vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f): | |
679 | Removed. | |
680 | (vcaddq_rot90, vcaddq_rot270): New. | |
681 | * config/arm/constraints.md (Dz): Include MVE. | |
682 | * config/arm/iterators.md (mve_rot): New. | |
683 | (supf): Remove VCADDQ_ROT270_S, VCADDQ_ROT270_U, VCADDQ_ROT90_S, | |
684 | VCADDQ_ROT90_U. | |
685 | (VCADDQ_ROT270, VCADDQ_ROT90): Removed. | |
686 | * config/arm/mve.md (mve_vcaddq_rot270_<supf><mode, | |
687 | mve_vcaddq_rot90_<supf><mode>, mve_vcaddq_rot270_f<mode>, | |
688 | mve_vcaddq_rot90_f<mode>): Removed. | |
689 | (mve_vcaddq<mve_rot><mode>, mve_vcaddq<mve_rot><mode>): New. | |
690 | * config/arm/unspecs.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, | |
691 | VCADDQ_ROT270_U, VCADDQ_ROT90_U, VCADDQ_ROT270_F, | |
692 | VCADDQ_ROT90_F): Removed. | |
693 | * config/arm/vec-common.md (cadd<rot><mode>3): New. | |
694 | ||
695 | 2020-12-16 Tamar Christina <tamar.christina@arm.com> | |
696 | ||
697 | * config/aarch64/aarch64-simd.md (cadd<rot><mode>3): New. | |
698 | * config/aarch64/iterators.md (SVE2_INT_CADD_OP): New. | |
699 | * config/aarch64/aarch64-sve.md (cadd<rot><mode>3): New. | |
700 | * config/aarch64/aarch64-sve2.md (cadd<rot><mode>3): New. | |
701 | ||
702 | 2020-12-16 Pat Haugen <pthaugen@linux.ibm.com> | |
703 | ||
704 | * config/rs6000/mma.md (*movxo, mma_<vvi4i4i8>, mma_<avvi4i4i8>, | |
705 | mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>, | |
706 | mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>): | |
707 | Remove explicit setting of length attribute. | |
708 | ||
709 | 2020-12-16 Jakub Jelinek <jakub@redhat.com> | |
710 | ||
711 | * varasm.c (default_elf_asm_named_section): Always force | |
712 | section flags even for sections with SECTION_LINK_ORDER flag. | |
713 | ||
714 | 2020-12-16 H.J. Lu <hjl.tools@gmail.com> | |
715 | ||
716 | PR target/98146 | |
717 | * defaults.h (SUPPORTS_SHF_GNU_RETAIN): New. | |
718 | * varasm.c (get_section): Replace HAVE_GAS_SHF_GNU_RETAIN with | |
719 | SUPPORTS_SHF_GNU_RETAIN. | |
720 | (resolve_unique_section): Likewise. | |
721 | (get_variable_section): Likewise. | |
722 | (switch_to_section): Likewise. | |
723 | ||
724 | 2020-12-16 H.J. Lu <hjl.tools@gmail.com> | |
725 | ||
726 | PR target/98146 | |
727 | * varasm.c (switch_to_section): Warn when a symbol without used | |
728 | attribute and a symbol with used attribute are placed in the | |
729 | section with the same name. | |
730 | ||
731 | 2020-12-16 H.J. Lu <hjl.tools@gmail.com> | |
732 | ||
733 | PR target/98146 | |
734 | * output.h (switch_to_section): Add a tree argument, default to | |
735 | nullptr. | |
736 | * varasm.c (get_section): If the SECTION_RETAIN bit doesn't match, | |
737 | return and switch to a new section later. | |
738 | (assemble_start_function): Pass decl to switch_to_section. | |
739 | (assemble_variable): Likewise. | |
740 | (switch_to_section): If the SECTION_RETAIN bit doesn't match, | |
741 | switch to a new section. | |
742 | ||
743 | 2020-12-16 Jakub Jelinek <jakub@redhat.com> | |
744 | ||
745 | PR tree-optimization/96239 | |
746 | * gimple-ssa-store-merging.c (find_bswap_or_nop): Handle a vector | |
747 | CONSTRUCTOR. | |
748 | (bswap_replace): Likewise. | |
749 | ||
750 | 2020-12-16 Martin Liska <mliska@suse.cz> | |
751 | ||
752 | * common.opt: Remove usage of Report. | |
753 | * config/aarch64/aarch64.opt: Ditto. | |
754 | * config/alpha/alpha.opt: Ditto. | |
755 | * config/arc/arc.opt: Ditto. | |
756 | * config/arm/arm.opt: Ditto. | |
757 | * config/avr/avr.opt: Ditto. | |
758 | * config/bfin/bfin.opt: Ditto. | |
759 | * config/bpf/bpf.opt: Ditto. | |
760 | * config/c6x/c6x.opt: Ditto. | |
761 | * config/cr16/cr16.opt: Ditto. | |
762 | * config/cris/cris.opt: Ditto. | |
763 | * config/cris/elf.opt: Ditto. | |
764 | * config/csky/csky.opt: Ditto. | |
765 | * config/darwin.opt: Ditto. | |
766 | * config/fr30/fr30.opt: Ditto. | |
767 | * config/frv/frv.opt: Ditto. | |
768 | * config/ft32/ft32.opt: Ditto. | |
769 | * config/gcn/gcn.opt: Ditto. | |
770 | * config/i386/cygming.opt: Ditto. | |
771 | * config/i386/i386.opt: Ditto. | |
772 | * config/ia64/ia64.opt: Ditto. | |
773 | * config/ia64/ilp32.opt: Ditto. | |
774 | * config/linux-android.opt: Ditto. | |
775 | * config/linux.opt: Ditto. | |
776 | * config/lm32/lm32.opt: Ditto. | |
777 | * config/m32r/m32r.opt: Ditto. | |
778 | * config/m68k/m68k.opt: Ditto. | |
779 | * config/mcore/mcore.opt: Ditto. | |
780 | * config/microblaze/microblaze.opt: Ditto. | |
781 | * config/mips/mips.opt: Ditto. | |
782 | * config/mmix/mmix.opt: Ditto. | |
783 | * config/mn10300/mn10300.opt: Ditto. | |
784 | * config/moxie/moxie.opt: Ditto. | |
785 | * config/msp430/msp430.opt: Ditto. | |
786 | * config/nds32/nds32.opt: Ditto. | |
787 | * config/nios2/elf.opt: Ditto. | |
788 | * config/nios2/nios2.opt: Ditto. | |
789 | * config/nvptx/nvptx.opt: Ditto. | |
790 | * config/pa/pa.opt: Ditto. | |
791 | * config/pdp11/pdp11.opt: Ditto. | |
792 | * config/pru/pru.opt: Ditto. | |
793 | * config/riscv/riscv.opt: Ditto. | |
794 | * config/rl78/rl78.opt: Ditto. | |
795 | * config/rs6000/aix64.opt: Ditto. | |
796 | * config/rs6000/linux64.opt: Ditto. | |
797 | * config/rs6000/rs6000.opt: Ditto. | |
798 | * config/rs6000/sysv4.opt: Ditto. | |
799 | * config/rx/elf.opt: Ditto. | |
800 | * config/rx/rx.opt: Ditto. | |
801 | * config/s390/s390.opt: Ditto. | |
802 | * config/s390/tpf.opt: Ditto. | |
803 | * config/sh/sh.opt: Ditto. | |
804 | * config/sol2.opt: Ditto. | |
805 | * config/sparc/long-double-switch.opt: Ditto. | |
806 | * config/sparc/sparc.opt: Ditto. | |
807 | * config/tilegx/tilegx.opt: Ditto. | |
808 | * config/tilepro/tilepro.opt: Ditto. | |
809 | * config/v850/v850.opt: Ditto. | |
810 | * config/visium/visium.opt: Ditto. | |
811 | * config/vms/vms.opt: Ditto. | |
812 | * config/vxworks.opt: Ditto. | |
813 | * config/xtensa/xtensa.opt: Ditto. | |
814 | ||
815 | 2020-12-16 Martin Liska <mliska@suse.cz> | |
816 | ||
817 | * doc/options.texi: Remove Report keyword. | |
818 | * opt-functions.awk: Print error when Report keyword | |
819 | is used. | |
820 | * optc-gen.awk: Do not handle Report keyword. | |
821 | * opts.h (struct cl_option): Remove cl_report bitfield flag. | |
822 | ||
823 | 2020-12-16 Martin Liska <mliska@suse.cz> | |
824 | ||
825 | PR sanitizer/97868 | |
826 | * common.opt: Add new warning -Wtsan. | |
827 | * doc/invoke.texi: Likewise. | |
828 | * tsan.c (instrument_builtin_call): Warn users about unsupported | |
829 | std::atomic_thread_fence. | |
830 | ||
831 | 2020-12-16 Martin Liska <mliska@suse.cz> | |
832 | ||
833 | PR rtl-optimization/98271 | |
834 | PR rtl-optimization/98276 | |
835 | PR tree-optimization/98279 | |
836 | * opts-common.c (set_option): Do not allow overflow for integer | |
837 | arguments. | |
838 | ||
839 | 2020-12-16 Eric Botcazou <ebotcazou@adacore.com> | |
840 | ||
841 | PR tree-optimization/98272 | |
842 | * tree-switch-conversion.c (bit_test_cluster::emit): When finding | |
843 | out whether the entry test can be merged in the bit test, do the | |
844 | computation using the type of the index expression. | |
845 | ||
846 | 2020-12-16 Kewen Lin <linkw@linux.ibm.com> | |
847 | ||
848 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use | |
849 | paradoxical subreg instead of zero_extend for QI/HI promotion. | |
850 | ||
851 | 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
852 | ||
853 | PR target/66791 | |
854 | * config/arm/arm_neon.h: Replace calls to __builtin_vcgt* by | |
855 | <, > operators in vclt and vcgt intrinsics respectively. | |
856 | * config/arm/arm_neon_builtins.def: Remove entry for | |
857 | vcgt and vcgtu. | |
858 | ||
859 | 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
860 | ||
861 | PR target/66791 | |
862 | * config/arm/arm_neon.h: Replace calls to __builtin_vneg* by - operator | |
863 | in vneg intrinsics. | |
864 | * config/arm/arm_neon_builtins.def: Remove entry for vneg. | |
865 | ||
866 | 2020-12-16 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
867 | ||
868 | PR target/66791 | |
869 | * config/arm/arm_neon.h: Replace calls to __builtin_vcreate* | |
870 | in vcreate intrinsics. | |
871 | * config/arm/arm_neon_builtins.def: Remove entry for vcreate. | |
872 | ||
873 | 2020-12-15 Jakub Jelinek <jakub@redhat.com> | |
874 | ||
875 | PR tree-optimization/96094 | |
876 | * match.pd (X / bool_range_Y -> X): New simplification. | |
877 | ||
878 | 2020-12-15 Nathan Sidwell <nathan@acm.org> | |
879 | ||
880 | * doc/cppopts.texi: Document new cpp opt. | |
881 | * doc/invoke.texi: Add C++20 module option & documentation. | |
882 | ||
883 | 2020-12-15 Nathan Sidwell <nathan@acm.org> | |
884 | ||
885 | * Makefile.in (CODYINC, CODYLIB, CODYLIB_H): New. Use them. | |
886 | ||
887 | 2020-12-15 Jakub Jelinek <jakub@redhat.com> | |
888 | ||
889 | PR target/98274 | |
890 | * config/i386/i386-options.c (ix86_option_override_internal): Set | |
891 | ix86_tune_string to "generic" even when it wasn't specified and | |
892 | ix86_arch_string is "x86-64-v2", "x86-64-v3" or "x86-64-v4". | |
893 | Remove useless {}s around a single statement. | |
894 | ||
895 | 2020-12-15 Martin Liska <mliska@suse.cz> | |
896 | ||
897 | PR lto/98275 | |
898 | * lto-wrapper.c: Do not use -j0 when we are unable to detect | |
899 | number of cores. | |
900 | ||
901 | 2020-12-15 Jakub Jelinek <jakub@redhat.com> | |
902 | ||
903 | * config/i386/i386-options.c (ix86_option_override_internal): Don't | |
904 | error on -march=x86-64-v[234] with -m32 or -mabi=ms. | |
905 | * config.gcc: Don't reject --with-arch=x86-64-v[234] or | |
906 | --with-arch_32=x86-64-v[234]. | |
907 | * doc/invoke.texi (-march=x86-64-v[234]): Document what the option | |
908 | does for other ABIs. | |
909 | ||
910 | 2020-12-15 Martin Liska <mliska@suse.cz> | |
911 | ||
912 | PR gcov-profile/98273 | |
913 | * gcov.c (output_json_intermediate_file): Use stack of nested | |
914 | functions for lines in a source file. Pop when a function ends. | |
915 | ||
916 | 2020-12-15 Gerald Pfeifer <gerald@pfeifer.com> | |
917 | ||
918 | * doc/invoke.texi (Instrumentation Options): Update link to | |
919 | KernelAddressSanitizer. | |
920 | ||
921 | 2020-12-15 Max Filippov <jcmvbkbc@gmail.com> | |
922 | ||
923 | * config/xtensa/predicates.md (addsubx_operand): Change accepted | |
924 | values from 2/4/8 to 1..3. | |
925 | * config/xtensa/xtensa.md (*addx, *subx): Change RTL pattern | |
926 | to use 'ashift' instead of 'mult'. Update operands[3] value. | |
927 | ||
928 | 2020-12-14 Piotr Kubaj <pkubaj@FreeBSD.org> | |
929 | Gerald Pfeifer <gerald@pfeifer.com> | |
930 | ||
931 | * config/rs6000/freebsd64.h (PROCESSOR_DEFAULT): Update | |
932 | to PROCESSOR_PPC7450. | |
933 | (PROCESSOR_DEFAULT64): Update to PROCESSOR_POWER8. | |
934 | ||
935 | 2020-12-14 Martin Sebor <msebor@redhat.com> | |
936 | ||
937 | PR middle-end/98166 | |
938 | PR c++/57111 | |
939 | PR middle-end/98160 | |
940 | * builtins.c (check_access): Call tree_inlined_location | |
941 | fndecl_alloc_p): Handle BUILT_IN_ALIGNED_ALLOC and | |
942 | BUILT_IN_GOMP_ALLOC. | |
943 | call_dealloc_p): Remove unused function. | |
944 | (new_delete_mismatch_p): Call valid_new_delete_pair_p and rework. | |
945 | (matching_alloc_calls_p): Handle built-in deallocation functions. | |
946 | (warn_dealloc_offset): Corrct the handling of user-defined operators | |
947 | delete. | |
948 | (maybe_emit_free_warning): Avoid assuming expression is a decl. | |
949 | Simplify. | |
950 | * doc/extend.texi (attribute malloc): Update. | |
951 | * tree-ssa-dce.c (valid_new_delete_pair_p): Factor code out into | |
952 | valid_new_delete_pair_p in tree.c. | |
953 | * tree.c (tree_inlined_location): Define new function. | |
954 | (valid_new_delete_pair_p): Define. | |
955 | * tree.h (tree_inlined_location): Declare. | |
956 | (valid_new_delete_pair_p): Declare. | |
957 | ||
958 | 2020-12-14 Sebastian Pop <spop@amazon.com> | |
959 | ||
960 | * config.gcc (aarch64*-*-*): Remove --with-{cpu,arch,tune}-32 flags. | |
961 | ||
962 | 2020-12-14 Wilco Dijkstra <wdijkstr@arm.com> | |
963 | ||
964 | * config.gcc (aarch64*-*-*): Add --with-tune. Support --with-cpu=native. | |
965 | * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Add --with-tune. | |
966 | ||
967 | 2020-12-14 Martin Liska <mliska@suse.cz> | |
968 | ||
969 | * gcov.c (output_json_intermediate_file): Update comments. | |
970 | ||
971 | 2020-12-14 Tamar Christina <tamar.christina@arm.com> | |
972 | ||
973 | PR middle-end/98264 | |
974 | * tree-vect-slp-patterns.c (linear_loads_p): Exclude TOP permute. | |
975 | ||
976 | 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org> | |
977 | ||
978 | * config/arm/mve.md (mve_vnegq_f): Use 'neg' instead of unspec. | |
979 | (mve_vnegq_s): Likewise. | |
980 | * config/arm/neon.md (neg<mode>2): Rename into neon_neg<mode>2. | |
981 | (<absneg_str><mode>2): Rename into neon_<absneg_str><mode>2. | |
982 | (neon_v<absneg_str><mode>): Call gen_neon_<absneg_str><mode>2. | |
983 | (vashr<mode>3): Call gen_neon_neg<mode>2. | |
984 | (vlshr<mode>3): Call gen_neon_neg<mode>2. | |
985 | (neon_vneg<mode>): Call gen_neon_neg<mode>2. | |
986 | * config/arm/unspecs.md (VNEGQ_F, VNEGQ_S): Remove. | |
987 | * config/arm/vec-common.md (neg<mode>2): New expander. | |
988 | ||
989 | 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org> | |
990 | ||
991 | * config/arm/iterators.md (VDQNOTM2): New mode iterator. | |
992 | (supf): Remove VMVNQ_S and VMVNQ_U. | |
993 | (VMVNQ): Remove. | |
994 | * config/arm/mve.md (mve_vmvnq_u<mode>): New entry for vmvn | |
995 | instruction using expression not. | |
996 | (mve_vmvnq_s<mode>): New expander. | |
997 | * config/arm/neon.md (one_cmpl<mode>2): Renamed into | |
998 | one_cmpl<mode>2_neon. | |
999 | * config/arm/unspecs.md (VMVNQ_S, VMVNQ_U): Remove. | |
1000 | * config/arm/vec-common.md (one_cmpl<mode>2): New expander. | |
1001 | ||
1002 | 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org> | |
1003 | ||
1004 | * config/arm/iterators.md (supf): Remove VBICQ_S and VBICQ_U. | |
1005 | (VBICQ): Remove. | |
1006 | * config/arm/mve.md (mve_vbicq_u<mode>): New entry for vbic | |
1007 | instruction using expression and not. | |
1008 | (mve_vbicq_s<mode>): New expander. | |
1009 | (mve_vbicq_f<mode>): Replace use of unspec by 'and not'. | |
1010 | * config/arm/unspecs.md (VBICQ_S, VBICQ_U, VBICQ_F): Remove. | |
1011 | ||
1012 | 2020-12-14 Christophe Lyon <christophe.lyon@linaro.org> | |
1013 | ||
1014 | * config/arm/iterators.md (supf): Remove VEORQ_S and VEORQ_U. | |
1015 | (VEORQ): Remove. | |
1016 | * config/arm/mve.md (mve_veorq_u<mode>): New entry for veor | |
1017 | instruction using expression xor. | |
1018 | (mve_veorq_s<mode>): New expander. | |
1019 | (mve_veorq_f<mode>): Use 'xor' code instead of unspec. | |
1020 | * config/arm/neon.md (xor<mode>3): Renamed into xor<mode>3_neon. | |
1021 | * config/arm/unspecs.md (VEORQ_S, VEORQ_U, VEORQ_F): Remove. | |
1022 | * config/arm/vec-common.md (xor<mode>3): New expander. | |
1023 | ||
1024 | 2020-12-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
1025 | ||
1026 | * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Cortex-A78C core. | |
1027 | * config/aarch64/aarch64-tune.md: Regenerate. | |
1028 | * doc/invoke.texi: Update docs. | |
1029 | ||
1030 | 2020-12-14 Nikhil Benesch <nikhil.benesch@gmail.com> | |
1031 | ||
1032 | * godump.c (go_output_typedef): Suppress typedefs whose name | |
1033 | matches the tag of the underlying struct, union, or enum. | |
1034 | Output declarations for enums that do not appear in typedefs. | |
1035 | ||
1036 | 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org> | |
1037 | ||
1038 | * config/vax/vax.c (vax_output_int_move): Unify push operation | |
1039 | selection. | |
1040 | ||
1041 | 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org> | |
1042 | ||
1043 | * config/vax/vax.c (vax_output_int_move): Check the correct | |
1044 | operand for constant 0 push operation. | |
1045 | ||
1046 | 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org> | |
1047 | ||
1048 | * config/vax/vax.c (vax_expand_addsub_di_operands): Handle equal | |
1049 | input operands with subtraction. | |
1050 | ||
1051 | 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org> | |
1052 | ||
1053 | * config/vax/vax.c (vax_expand_addsub_di_operands): Handle the | |
1054 | addition or subtraction of 0. | |
1055 | ||
1056 | 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org> | |
1057 | ||
1058 | * config/vax/vax.c (vax_expand_addsub_di_operands): Remove | |
1059 | unused register allocation. | |
1060 | ||
1061 | 2020-12-13 Maciej W. Rozycki <macro@linux-mips.org> | |
1062 | ||
1063 | * config/vax/vax.md (casesi): Use `gen_int_mode' rather than | |
1064 | `GEN_INT' for the immediate used for lower bound adjustment. | |
1065 | ||
1066 | 2020-12-13 Jakub Jelinek <jakub@redhat.com> | |
1067 | ||
1068 | PR tree-optimization/98256 | |
1069 | * tree-ssa-math-opts.c (match_uaddsub_overflow): For BIT_NOT_EXPR, | |
1070 | only handle a single use, and insert .ADD_OVERFLOW before the | |
1071 | comparison rather than after the BIT_NOT_EXPR. Return true iff | |
1072 | it is BIT_NOT_EXPR and it has been removed. | |
1073 | (math_opts_dom_walker::after_dom_children) <case BIT_NOT_EXPR>: | |
1074 | If match_uaddsub_overflow returned true, continue instead of break. | |
1075 | ||
1076 | 2020-12-13 Tamar Christina <tamar.christina@arm.com> | |
1077 | ||
1078 | Revert: | |
1079 | 2020-12-13 Tamar Christina <tamar.christina@arm.com> | |
1080 | ||
1081 | * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8, | |
1082 | , __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8, | |
1083 | __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, __arm_vcaddq_rot90_s16, | |
1084 | __arm_vcaddq_rot270_s16, __arm_vcaddq_rot90_u32, | |
1085 | __arm_vcaddq_rot270_u32, __arm_vcaddq_rot90_s32, | |
1086 | __arm_vcaddq_rot270_s32, __arm_vcmulq_rot90_f16, | |
1087 | __arm_vcmulq_rot270_f16, __arm_vcmulq_rot180_f16, | |
1088 | __arm_vcmulq_f16, __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16, | |
1089 | __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32, | |
1090 | __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcaddq_rot90_f32, | |
1091 | __arm_vcaddq_rot270_f32, __arm_vcmlaq_f16, __arm_vcmlaq_rot180_f16, | |
1092 | __arm_vcmlaq_rot270_f16, __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32, | |
1093 | __arm_vcmlaq_rot180_f32, __arm_vcmlaq_rot270_f32, | |
1094 | __arm_vcmlaq_rot90_f32): Update builtin calls. | |
1095 | * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u, | |
1096 | vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f, | |
1097 | vcmulq_f, vcmulq_rot90_f, vcmulq_rot180_f, vcmulq_rot270_f, | |
1098 | vcmlaq_f, vcmlaq_rot90_f, vcmlaq_rot180_f, vcmlaq_rot270_f): Removed. | |
1099 | (vcaddq_rot90, vcaddq_rot270, vcmulq, vcmulq_rot90, vcmulq_rot180, | |
1100 | vcmulq_rot270, vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270): | |
1101 | New. | |
1102 | * config/arm/constraints.md (Dz): Include MVE. | |
1103 | * config/arm/iterators.md (mve_rotsplit1, mve_rotsplit2): New. | |
1104 | (rot): Add UNSPEC_VCMLS, UNSPEC_VCMUL and UNSPEC_VCMUL180. | |
1105 | (rot_op, rotsplit1, rotsplit2, fcmac1, VCMLA_OP, VCMUL_OP): New. | |
1106 | * config/arm/mve.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, VCADDQ_ROT270_U, | |
1107 | VCADDQ_ROT90_U, VCADDQ_ROT270_F, VCADDQ_ROT90_F, VCMULQ_F, | |
1108 | VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, VCMLAQ_F, | |
1109 | VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F, VCADDQ_ROT270_S, | |
1110 | VCADDQ_ROT270, VCADDQ_ROT90): Removed. | |
1111 | (mve_rot, VCMUL): New. | |
1112 | (mve_vcaddq_rot270_<supf><mode, mve_vcaddq_rot90_<supf><mode>, | |
1113 | mve_vcaddq_rot270_f<mode>, mve_vcaddq_rot90_f<mode>, mve_vcmulq_f<mode, | |
1114 | mve_vcmulq_rot180_f<mode>, mve_vcmulq_rot270_f<mode>, | |
1115 | mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, mve_vcmlaq_rot180_f<mode>, | |
1116 | mve_vcmlaq_rot270_f<mode>, mve_vcmlaq_rot90_f<mode>): Removed. | |
1117 | (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>, | |
1118 | mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>): | |
1119 | New. | |
1120 | (cmul<rot_op><mode>3): Exclude MVE types. | |
1121 | * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270): New. | |
1122 | * config/arm/vec-common.md (cadd<rot><mode>3, cmul<rot_op><mode>3, | |
1123 | arm_vcmla<rot><mode>, cml<fcmac1><rot_op><mode>4): New. | |
1124 | * config/arm/unspecs.md (UNSPEC_VCMUL, UNSPEC_VCMUL180, UNSPEC_VCMLS, | |
1125 | UNSPEC_VCMLS180): New. | |
1126 | * config/arm/neon.md (cmul<rot_op><mode>3): New. | |
1127 | ||
1128 | 2020-12-13 Jakub Jelinek <jakub@redhat.com> | |
1129 | ||
1130 | PR target/92469 | |
1131 | * varasm.c (eliminable_regno_p): New function. | |
1132 | (make_decl_rtl): Reject asm vars for frame and argp | |
1133 | if they are different from hard frame pointer. | |
1134 | ||
1135 | 2020-12-13 Tamar Christina <tamar.christina@arm.com> | |
1136 | ||
1137 | * config/arm/arm_mve.h (__arm_vcaddq_rot90_u8, __arm_vcaddq_rot270_u8, | |
1138 | , __arm_vcaddq_rot90_s8, __arm_vcaddq_rot270_s8, | |
1139 | __arm_vcaddq_rot90_u16, __arm_vcaddq_rot270_u16, __arm_vcaddq_rot90_s16, | |
1140 | __arm_vcaddq_rot270_s16, __arm_vcaddq_rot90_u32, | |
1141 | __arm_vcaddq_rot270_u32, __arm_vcaddq_rot90_s32, | |
1142 | __arm_vcaddq_rot270_s32, __arm_vcmulq_rot90_f16, | |
1143 | __arm_vcmulq_rot270_f16, __arm_vcmulq_rot180_f16, | |
1144 | __arm_vcmulq_f16, __arm_vcaddq_rot90_f16, __arm_vcaddq_rot270_f16, | |
1145 | __arm_vcmulq_rot90_f32, __arm_vcmulq_rot270_f32, | |
1146 | __arm_vcmulq_rot180_f32, __arm_vcmulq_f32, __arm_vcaddq_rot90_f32, | |
1147 | __arm_vcaddq_rot270_f32, __arm_vcmlaq_f16, __arm_vcmlaq_rot180_f16, | |
1148 | __arm_vcmlaq_rot270_f16, __arm_vcmlaq_rot90_f16, __arm_vcmlaq_f32, | |
1149 | __arm_vcmlaq_rot180_f32, __arm_vcmlaq_rot270_f32, | |
1150 | __arm_vcmlaq_rot90_f32): Update builtin calls. | |
1151 | * config/arm/arm_mve_builtins.def (vcaddq_rot90_u, vcaddq_rot270_u, | |
1152 | vcaddq_rot90_s, vcaddq_rot270_s, vcaddq_rot90_f, vcaddq_rot270_f, | |
1153 | vcmulq_f, vcmulq_rot90_f, vcmulq_rot180_f, vcmulq_rot270_f, | |
1154 | vcmlaq_f, vcmlaq_rot90_f, vcmlaq_rot180_f, vcmlaq_rot270_f): Removed. | |
1155 | (vcaddq_rot90, vcaddq_rot270, vcmulq, vcmulq_rot90, vcmulq_rot180, | |
1156 | vcmulq_rot270, vcmlaq, vcmlaq_rot90, vcmlaq_rot180, vcmlaq_rot270): | |
1157 | New. | |
1158 | * config/arm/constraints.md (Dz): Include MVE. | |
1159 | * config/arm/iterators.md (mve_rotsplit1, mve_rotsplit2): New. | |
1160 | (rot): Add UNSPEC_VCMLS, UNSPEC_VCMUL and UNSPEC_VCMUL180. | |
1161 | (rot_op, rotsplit1, rotsplit2, fcmac1, VCMLA_OP, VCMUL_OP): New. | |
1162 | * config/arm/mve.md (VCADDQ_ROT270_S, VCADDQ_ROT90_S, VCADDQ_ROT270_U, | |
1163 | VCADDQ_ROT90_U, VCADDQ_ROT270_F, VCADDQ_ROT90_F, VCMULQ_F, | |
1164 | VCMULQ_ROT180_F, VCMULQ_ROT270_F, VCMULQ_ROT90_F, VCMLAQ_F, | |
1165 | VCMLAQ_ROT180_F, VCMLAQ_ROT90_F, VCMLAQ_ROT270_F, VCADDQ_ROT270_S, | |
1166 | VCADDQ_ROT270, VCADDQ_ROT90): Removed. | |
1167 | (mve_rot, VCMUL): New. | |
1168 | (mve_vcaddq_rot270_<supf><mode, mve_vcaddq_rot90_<supf><mode>, | |
1169 | mve_vcaddq_rot270_f<mode>, mve_vcaddq_rot90_f<mode>, mve_vcmulq_f<mode, | |
1170 | mve_vcmulq_rot180_f<mode>, mve_vcmulq_rot270_f<mode>, | |
1171 | mve_vcmulq_rot90_f<mode>, mve_vcmlaq_f<mode>, mve_vcmlaq_rot180_f<mode>, | |
1172 | mve_vcmlaq_rot270_f<mode>, mve_vcmlaq_rot90_f<mode>): Removed. | |
1173 | (mve_vcmlaq<mve_rot><mode>, mve_vcmulq<mve_rot><mode>, | |
1174 | mve_vcaddq<mve_rot><mode>, cadd<rot><mode>3, mve_vcaddq<mve_rot><mode>): | |
1175 | New. | |
1176 | (cmul<rot_op><mode>3): Exclude MVE types. | |
1177 | * config/arm/unspecs.md (UNSPEC_VCMUL90, UNSPEC_VCMUL270): New. | |
1178 | * config/arm/vec-common.md (cadd<rot><mode>3, cmul<rot_op><mode>3, | |
1179 | arm_vcmla<rot><mode>, cml<fcmac1><rot_op><mode>4): New. | |
1180 | * config/arm/unspecs.md (UNSPEC_VCMUL, UNSPEC_VCMUL180, UNSPEC_VCMLS, | |
1181 | UNSPEC_VCMLS180): New. | |
1182 | * config/arm/neon.md (cmul<rot_op><mode>3): New. | |
1183 | ||
1184 | 2020-12-13 Tamar Christina <tamar.christina@arm.com> | |
1185 | ||
1186 | * config/arm/arm.c (arm_preferred_simd_mode): Add E_HFmode. | |
1187 | ||
1188 | 2020-12-13 Tamar Christina <tamar.christina@arm.com> | |
1189 | ||
1190 | * tree-vect-slp-patterns.c: New file. | |
1191 | * Makefile.in: Add it. | |
1192 | * doc/passes.texi: Document it. | |
1193 | * internal-fn.def (COMPLEX_ADD_ROT90, COMPLEX_ADD_ROT270): New. | |
1194 | * optabs.def (cadd90_optab, cadd270_optab): New. | |
1195 | * doc/md.texi: Document them. | |
1196 | * tree-vect-loop.c (vect_analyze_loop_2): Add dissolve code. | |
1197 | * tree-vect-slp.c: | |
1198 | (vect_free_slp_instance, vect_create_new_slp_node): Export. | |
1199 | (vect_match_slp_patterns_2, vect_match_slp_patterns): New. | |
1200 | (vect_analyze_slp): Use it. | |
1201 | * tree-vectorizer.h (vect_free_slp_tree): Export. | |
1202 | (enum _complex_operation): Forward declare. | |
1203 | (class vect_pattern): New | |
1204 | ||
1205 | 2020-12-13 Tamar Christina <tamar.christina@arm.com> | |
1206 | ||
1207 | * tree-vect-patterns.c (vect_mark_pattern_stmts): Remove static inline. | |
1208 | * tree-vect-slp.c (vect_create_new_slp_node): Remove static and only | |
1209 | set smts if valid. | |
1210 | * tree-vectorizer.c (vec_info::add_pattern_stmt): New. | |
1211 | (vec_info::set_vinfo_for_stmt): Optionally enforce read-only. | |
1212 | * tree-vectorizer.h (struct _slp_tree): Use new types. | |
1213 | (lane_permutation_t, lane_permutation_t): New. | |
1214 | (vect_create_new_slp_node, vect_mark_pattern_stmts): New. | |
1215 | ||
1216 | 2020-12-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
1217 | ||
1218 | * doc/sourcebuild.texi (Commands for use in dg-final, Scan the | |
1219 | assembly output, scan-assembler-symbol-section): Document. | |
1220 | (scan-symbol-section): Document. | |
1221 | ||
1222 | 2020-12-13 Richard Sandiford <richard.sandiford@arm.com> | |
1223 | ||
1224 | * is-a.h (reinterpret_is_a_helper): New class. | |
1225 | (static_is_a_helper): Likewise. | |
1226 | (is_a_helper): Inherit from reinterpret_is_a_helper. | |
1227 | (is_a_helper<const T *>): New specialization. | |
1228 | ||
1229 | 2020-12-13 Richard Sandiford <richard.sandiford@arm.com> | |
1230 | ||
1231 | * coretypes.h (iterator_range): Move to... | |
1232 | * iterator-utils.h: ...this new file. | |
1233 | ||
1234 | 2020-12-13 Richard Sandiford <richard.sandiford@arm.com> | |
1235 | ||
1236 | * rtlanal.c (noop_move_p): Don't check for REG_EQUAL notes. | |
1237 | ||
1238 | 2020-12-13 Richard Sandiford <richard.sandiford@arm.com> | |
1239 | ||
1240 | * vec.h (vnull::operator vec<T, A, L>): Make const. | |
1241 | ||
1242 | 2020-12-12 Jakub Jelinek <jakub@redhat.com> | |
1243 | ||
1244 | PR tree-optimization/96685 | |
1245 | * match.pd (~(X - Y) -> ~X + Y): New optimization. | |
1246 | (~X + Y -> (Y - X) - 1): Likewise. | |
1247 | ||
1248 | 2020-12-12 Jakub Jelinek <jakub@redhat.com> | |
1249 | ||
1250 | PR tree-optimization/96272 | |
1251 | * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add OTHER argument. | |
1252 | Handle BIT_NOT_EXPR. | |
1253 | (match_uaddsub_overflow): Optimize unsigned a > ~b into | |
1254 | __imag__ .ADD_OVERFLOW (a, b). | |
1255 | (math_opts_dom_walker::after_dom_children): Call match_uaddsub_overflow | |
1256 | even for BIT_NOT_EXPR. | |
1257 | ||
1258 | 2020-12-12 Jakub Jelinek <jakub@redhat.com> | |
1259 | ||
1260 | PR middle-end/98183 | |
1261 | * omp-low.c (lower_omp_target): Don't add OMP_RETURN for | |
1262 | data regions. | |
1263 | * omp-expand.c (expand_omp_target): Don't try to remove | |
1264 | OMP_RETURN for data regions. | |
1265 | (build_omp_regions_1, omp_make_gimple_edges): Don't expect | |
1266 | OMP_RETURN for data regions. | |
1267 | ||
1268 | 2020-12-11 Nathan Sidwell <nathan@acm.org> | |
1269 | ||
1270 | * gcc.c (cpp_unique_options): Add Mmodules, Mno-modules. | |
1271 | * tree-core.h (enum tree_index): Add TI_MODULE_HWM. | |
1272 | ||
1273 | 2020-12-11 Jim Wilson <jimw@sifive.com> | |
1274 | ||
1275 | * varasm.c (get_section): Add DECL_P check before DECL_PRESERVE_P. | |
1276 | ||
1277 | 2020-12-11 Christophe Lyon <christophe.lyon@linaro.org> | |
1278 | ||
1279 | * config/arm/iterators.md (VDQ): Remove TARGET_HAVE_MVE | |
1280 | conditions. | |
1281 | * config/arm/vec-common.md (and<mode>3): Use | |
1282 | ARM_HAVE_<MODE>_ARITH. | |
1283 | (ior<mode>3): Likewise. | |
1284 | ||
1285 | 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com> | |
1286 | ||
1287 | * config/arc/arc.c (arc_active_insn): Ignore all non essential | |
1288 | instructions when getting the next active instruction. | |
1289 | (check_store_cacheline_hazard): Update. | |
1290 | (workaround_arc_anomaly): Remove obsolete cache hazard code. | |
1291 | ||
1292 | 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com> | |
1293 | ||
1294 | * config/arc/arc.c (arc_reorg): Avoid limm in BRcc. | |
1295 | ||
1296 | 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com> | |
1297 | ||
1298 | * config/arc/arc-protos.h (arc_scheduling_not_expected): Remove | |
1299 | it. | |
1300 | (arc_sets_cc_p): Likewise. | |
1301 | (arc_need_delay): Likewise. | |
1302 | * config/arc/arc.c (arc_sets_cc_p): Likewise. | |
1303 | (arc_need_delay): Likewise. | |
1304 | (arc_scheduling_not_expected): Likewise. | |
1305 | * config/arc/arc.md: Convert adc/sbc patterns to simple | |
1306 | instruction definitions. | |
1307 | ||
1308 | 2020-12-11 Christophe Lyon <christophe.lyon@linaro.org> | |
1309 | ||
1310 | * config/arm/iterators.md (supf): Remove VORRQ_S and VORRQ_U. | |
1311 | (VORRQ): Remove. | |
1312 | * config/arm/mve.md (mve_vorrq_s<mode>): New entry for vorr | |
1313 | instruction using expression ior. | |
1314 | (mve_vorrq_u<mode>): New expander. | |
1315 | (mve_vorrq_f<mode>): Use ior code instead of unspec. | |
1316 | * config/arm/neon.md (ior<mode>3): Renamed into ior<mode>3_neon. | |
1317 | * config/arm/predicates.md (imm_for_neon_logic_operand): Enable | |
1318 | for MVE. | |
1319 | * config/arm/unspecs.md (VORRQ_S, VORRQ_U, VORRQ_F): Remove. | |
1320 | * config/arm/vec-common.md (ior<mode>3): New expander. | |
1321 | ||
1322 | 2020-12-11 Claudiu Zissulescu <claziss@synopsys.com> | |
1323 | ||
1324 | * config/arc/arc.md (mpyd<su_optab>_arcv2hs): New template | |
1325 | pattern. | |
1326 | (*pmpyd<su_optab>_arcv2hs): Likewise. | |
1327 | (*pmpyd<su_optab>_imm_arcv2hs): Likewise. | |
1328 | (mpyd_arcv2hs): Moved into above template. | |
1329 | (mpyd_imm_arcv2hs): Moved into above template. | |
1330 | (mpydu_arcv2hs): Likewise. | |
1331 | (mpydu_imm_arcv2hs): Likewise. | |
1332 | (su_optab): New optab prefix for sign/zero-extending operations. | |
1333 | ||
1334 | 2020-12-11 H.J. Lu <hjl.tools@gmail.com> | |
1335 | ||
1336 | PR target/98219 | |
1337 | * config/i386/uintrintrin.h (__uintr_frame): Remove uirrv. | |
1338 | ||
1339 | 2020-12-11 Andrea Corallo <andrea.corallo@arm.com> | |
1340 | ||
1341 | * doc/sourcebuild.texi (arm_softfloat): Improve documentation. | |
1342 | ||
1343 | 2020-12-11 Jakub Jelinek <jakub@redhat.com> | |
1344 | ||
1345 | PR rtl-optimization/98229 | |
1346 | * optabs.c (expand_doubleword_mod): Canonicalize op1 and | |
1347 | 1 - INTVAL (op1) as word_mode constants when used in | |
1348 | word_mode arithmetics. | |
1349 | ||
1350 | 2020-12-11 Richard Biener <rguenther@suse.de> | |
1351 | ||
1352 | PR tree-optimization/98235 | |
1353 | * tree-vect-slp.c (vect_build_slp_tree): Exchange npermutes | |
1354 | for limit. Decrement that for each cache miss and fail | |
1355 | discovery when it reaches zero. | |
1356 | (vect_build_slp_tree_2): Remove npermutes handling and | |
1357 | simply pass down limit. | |
1358 | (vect_build_slp_instance): Use pass down limit. | |
1359 | (vect_analyze_slp_instance): Likewise. | |
1360 | (vect_analyze_slp): Base the SLP discovery limit on | |
1361 | max_tree_size and pass it down. | |
1362 | ||
1363 | 2020-12-11 Jakub Jelinek <jakub@redhat.com> | |
1364 | ||
1365 | PR middle-end/98190 | |
1366 | * expr.c (expand_assignment): If to_rtx is a promoted SUBREG, | |
1367 | ensure sign or zero extension either through use of store_expr | |
1368 | or by extending manually. | |
1369 | ||
1370 | 2020-12-11 Andrea Corallo <andrea.corallo@arm.com> | |
1371 | ||
1372 | PR rtl-optimization/97092 | |
1373 | * ira-color.c (update_costs_from_allocno): Do not carry over mode | |
1374 | between subsequent iterations. | |
1375 | ||
1376 | 2020-12-11 Richard Biener <rguenther@suse.de> | |
1377 | ||
1378 | PR tree-optimization/95582 | |
1379 | * tree-vect-patterns.c (vect_recog_bool_pattern): Check | |
1380 | for VECT_SCALAR_BOOLEAN_TYPE_P, not just precision one. | |
1381 | ||
1382 | 2020-12-11 Hongyu <hongyu.wang@intel.com> | |
1383 | ||
1384 | * common/config/i386/cpuinfo.h (get_available_features): | |
1385 | Move check for HRESET/AVX_VNNI/UINTR out of avx512_usable. | |
1386 | ||
1387 | 2020-12-10 Jakub Jelinek <jakub@redhat.com> | |
1388 | ||
1389 | PR rtl-optimization/98212 | |
1390 | * dojump.c (do_compare_rtx_and_jump): Change computation of | |
1391 | first_prob for and_them. Add comment explaining and_them case. | |
1392 | ||
1393 | 2020-12-10 Andrew MacLeod <amacleod@redhat.com> | |
1394 | ||
1395 | PR tree-optimization/98174 | |
1396 | * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Only push | |
1397 | poor values to be examined if it isn't a pure global. | |
1398 | (ranger_cache::block_range): Don't process pure globals. | |
1399 | (ranger_cache::fill_block_cache): Adjust has_edge_range call. | |
1400 | * gimple-range-gori.cc (gori_map::all_outgoing): New bitmap. | |
1401 | (gori_map::gori_map): Allocate all_outgoing. | |
1402 | (gori_map::is_export_p): No specified BB returns global context. | |
1403 | (gori_map::calculate_gori): Accumulate each block into global. | |
1404 | (gori_compute::gori_compute): Preprocess each block for exports. | |
1405 | (gori_compute::has_edge_range_p): No edge returns global context. | |
1406 | * gimple-range-gori.h (has_edge_range_p): Provide default parameter. | |
1407 | ||
1408 | 2020-12-10 Eric Botcazou <ebotcazou@adacore.com> | |
1409 | ||
1410 | * dwarf2out.c (loc_list_from_tree_1) <PLACEHOLDER_EXPR>: Deal with | |
1411 | a nested context type | |
1412 | ||
1413 | 2020-12-10 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
1414 | ||
1415 | * cfgexpand.c (expand_gimple_basic_block): Remove special handling | |
1416 | of debug_inline_entries without block info. | |
1417 | * tree-inline.c (remap_gimple_stmt): Drop debug_nonbind_markers when | |
1418 | the call statement has no block info. | |
1419 | (copy_debug_stmt): Remove debug_nonbind_markers when inlining | |
1420 | and the block info is mapped to NULL. | |
1421 | * tree-ssa-live.c (clear_unused_block_pointer): Remove | |
1422 | debug_nonbind_markers originating from removed inline functions. | |
1423 | ||
1424 | 2020-12-10 Richard Biener <rguenther@suse.de> | |
1425 | ||
1426 | * tree-vect-stmts.c (vectorizable_assignment): Remove special | |
1427 | allowance of VECTOR_BOOLEAN_TYPE_P conversions. | |
1428 | ||
1429 | 2020-12-10 Christophe Lyon <christophe.lyon@linaro.org> | |
1430 | ||
1431 | * config/arm/iterators.md (supf): Remove VANDQ_S and VANDQ_U. | |
1432 | (VANQ): Remove. | |
1433 | (VDQ): Add TARGET_HAVE_MVE condition where relevant. | |
1434 | * config/arm/mve.md (mve_vandq_u<mode>): New entry for vand | |
1435 | instruction using expression 'and'. | |
1436 | (mve_vandq_s<mode>): New expander. | |
1437 | (mve_vaddq_n_f<mode>): Use 'and' code instead of unspec. | |
1438 | * config/arm/neon.md (and<mode>3): Rename into and<mode>3_neon. | |
1439 | * config/arm/predicates.md (imm_for_neon_inv_logic_operand): | |
1440 | Enable for MVE. | |
1441 | * config/arm/unspecs.md (VANDQ_S, VANDQ_U, VANDQ_F): Remove. | |
1442 | * config/arm/vec-common.md (and<mode>3): New expander. | |
1443 | ||
1444 | 2020-12-10 Richard Sandiford <richard.sandiford@arm.com> | |
1445 | ||
1446 | PR tree-optimization/98069 | |
1447 | * tree-data-ref.c (compute_distributive_range): New function. | |
1448 | (nop_conversion_for_offset_p): Likewise. | |
1449 | (split_constant_offset): In the internal overload, treat integer | |
1450 | expressions as having an implicit cast to sizetype and express | |
1451 | them accordingly. Pass back the range of the original (uncast) | |
1452 | expression in a new range parameter. | |
1453 | (split_constant_offset_1): Likewise. Rework the handling of | |
1454 | conversions to account for the implicit sizetype casts. | |
1455 | ||
1456 | 2020-12-10 Joel Hutton <joel.hutton@arm.com> | |
1457 | ||
1458 | PR tree-optimization/97929 | |
1459 | * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Add | |
1460 | WIDEN_PLUS/WIDEN_MINUS case. | |
1461 | ||
1462 | 2020-12-10 Joel Hutton <joel.hutton@arm.com> | |
1463 | ||
1464 | * tree-pretty-print.c (dump_generic_node): Add case for | |
1465 | VEC_WIDEN_(PLUS/MINUS)_(HI/LO)_EXPR and WIDEN_(PLUS/MINUS)_EXPR. | |
1466 | ||
1467 | 2020-12-10 Richard Biener <rguenther@suse.de> | |
1468 | ||
1469 | PR tree-optimization/98211 | |
1470 | * tree-vect-stmts.c (vectorizable_assignment): Disallow | |
1471 | invalid conversions to bool vector types. | |
1472 | ||
1473 | 2020-12-10 Alexandre Oliva <oliva@adacore.com> | |
1474 | ||
1475 | * tree.c (build_common_builtin_nodes): Drop __builtin_ from | |
1476 | __clear_cache libname. | |
1477 | ||
1478 | 2020-12-10 Jakub Jelinek <jakub@redhat.com> | |
1479 | ||
1480 | PR rtl-optimization/98212 | |
1481 | * dojump.c (do_compare_rtx_and_jump): When splitting NE and backend | |
1482 | can do UNEQ, prefer splitting x != y into x unord y || !(x uneq y) | |
1483 | instead of into x unord y || x ltgt y. | |
1484 | ||
1485 | 2020-12-10 Jakub Jelinek <jakub@redhat.com> | |
1486 | ||
1487 | PR tree-optimization/98169 | |
1488 | * dojump.c (do_compare_rtx_and_jump): Don't split self-EQ/NE | |
1489 | comparisons, just use ORDERED or UNORDERED. | |
1490 | ||
1491 | 2020-12-10 Jakub Jelinek <jakub@redhat.com> | |
1492 | ||
1493 | PR middle-end/98205 | |
1494 | * omp-expand.c (expand_omp_for_generic): Fix up broken_loop handling. | |
1495 | ||
1496 | 2020-12-10 Richard Biener <rguenther@suse.de> | |
1497 | ||
1498 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Do | |
1499 | not mark the defs to occur in a pattern if it is the | |
1500 | pattern root and record the original stmt defs in that | |
1501 | case. | |
1502 | ||
1503 | 2020-12-10 Simon Cook <simon.cook@embecosm.com> | |
1504 | ||
1505 | * config/riscv/multilib-generator (arch_canonicalize): Invoke | |
1506 | python interpreter when calling arch-canonicalize script. | |
1507 | ||
1508 | 2020-12-10 Nikhil Benesch <nikhil.benesch@gmail.com> | |
1509 | ||
1510 | * godump.c (go_format_type): Don't consider whether a type has | |
1511 | been seen when determining whether to output a type by name. | |
1512 | Consider only the use_type_name parameter. | |
1513 | (go_output_typedef): When outputting a typedef, format the | |
1514 | declaration's original type, which contains the name of the | |
1515 | underlying type rather than the name of the typedef. | |
1516 | ||
1517 | 2020-12-09 Jakub Jelinek <jakub@redhat.com> | |
1518 | ||
1519 | PR bootstrap/98188 | |
1520 | * tree-ssa-phiopt.c (two_value_replacement): Don't special case | |
1521 | BOOLEAN_TYPEs for ranges, instead if get_range_info doesn't return | |
1522 | VR_RANGE, set min/max to wi::min/max_value. | |
1523 | ||
1524 | 2020-12-09 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
1525 | ||
1526 | * config/aarch64/aarch64-option-extensions.def | |
1527 | (AARCH64_OPT_EXTENSION): New +pauth option in -march for AArch64. | |
1528 | * config/aarch64/aarch64.h (AARCH64_FL_PAUTH): New pauth extension bitmask. | |
1529 | (AARCH64_ISA_PUATH): New ISA bitmask for PAUTH. | |
1530 | (AARCH64_FL_FOR_ARCH8_3): Add PAUTH to Armv8.3-A. | |
1531 | (TARGET_PAUTH): New target mask to isolate PAUTH instructions. | |
1532 | * config/aarch64/aarch64.md (do_return): Condition set to TARGET_PAUTH. | |
1533 | * doc/invoke.texi: Update docs for +flagm and +pauth. | |
1534 | ||
1535 | 2020-12-09 Uroš Bizjak <ubizjak@gmail.com> | |
1536 | ||
1537 | * config/i386/i386.h (REG_ALLOC_ORDER): Remove | |
1538 | ||
1539 | 2020-12-09 Richard Biener <rguenther@suse.de> | |
1540 | ||
1541 | PR tree-optimization/98213 | |
1542 | * tree-ssa-loop-im.c (sm_seq_valid_bb): Cache successfully | |
1543 | processed PHIs. | |
1544 | (hoist_memory_references): Adjust. | |
1545 | ||
1546 | 2020-12-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1547 | ||
1548 | * config/aarch64/aarch64-protos.h (cpu_vector_cost): Move simd | |
1549 | fields to... | |
1550 | (simd_vec_cost): ... Here. Define. | |
1551 | (advsimd_vec_cost): Define. | |
1552 | (sve_vec_cost): Define. | |
1553 | * config/aarch64/aarch64.c (generic_advsimd_vector_cost): | |
1554 | Define. | |
1555 | (generic_sve_vector_cost): Likewise. | |
1556 | (generic_vector_cost): Update. | |
1557 | (qdf24xx_advsimd_vector_cost): Define. | |
1558 | (qdf24xx_vector_cost): Update. | |
1559 | (thunderx_advsimd_vector_cost): Define. | |
1560 | (thunderx_vector_cost): Update. | |
1561 | (tsv110_advsimd_vector_cost): Define. | |
1562 | (tsv110_vector_cost): Likewise. | |
1563 | (cortexa57_advsimd_vector_cost): Define. | |
1564 | (cortexa57_vector_cost): Update. | |
1565 | (exynosm1_advsimd_vector_cost): Define. | |
1566 | (exynosm1_vector_cost): Update. | |
1567 | (xgene1_advsimd_vector_cost): Define. | |
1568 | (xgene1_vector_cost): Update. | |
1569 | (thunderx2t99_advsimd_vector_cost): Define. | |
1570 | (thunderx2t99_vector_cost): Update. | |
1571 | (thunderx3t110_advsimd_vector_cost): Define. | |
1572 | (thunderx3t110_vector_cost): Update. | |
1573 | (aarch64_builtin_vectorization_cost): Handle sve and advsimd | |
1574 | vector cost fields. | |
1575 | ||
1576 | 2020-12-09 Jakub Jelinek <jakub@redhat.com> | |
1577 | ||
1578 | PR tree-optimization/98199 | |
1579 | * fold-const.c (native_encode_initializer): Fix handling bit-fields | |
1580 | when off > 0. | |
1581 | ||
1582 | 2020-12-09 Jakub Jelinek <jakub@redhat.com> | |
1583 | ||
1584 | PR c++/98193 | |
1585 | * fold-const.c (native_encode_initializer): Set pos to field's | |
1586 | byte position if iterating over a field with missing initializer. | |
1587 | ||
1588 | 2020-12-08 Martin Liska <mliska@suse.cz> | |
1589 | ||
1590 | PR tree-optimization/98182 | |
1591 | * gimple-if-to-switch.cc (pass_if_to_switch::execute): Request | |
1592 | chain linkage through false edges only. | |
1593 | ||
1594 | 2020-12-08 Nathan Sidwell <nathan@acm.org> | |
1595 | ||
1596 | * tree.h (DECL_ALIGN_RAW): New. | |
1597 | (DECL_ALIGN): Use it. | |
1598 | (DECL_WARN_IF_NOT_ALIGN_RAW): New. | |
1599 | (DECL_WARN_IF_NOT_ALIGN): Use it. | |
1600 | (SET_DECL_WARN_IF_NOT_ALIGN): Likewise. | |
1601 | ||
1602 | 2020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
1603 | ||
1604 | PR target/66791 | |
1605 | * config/arm/arm_neon.h: Replace calls to __builtin_vmvn* by ~ | |
1606 | in vmvn intrinsics. | |
1607 | * config/arm/arm_neon_builtins.def: Remove entry for vmvn. | |
1608 | ||
1609 | 2020-12-08 Jakub Jelinek <jakub@redhat.com> | |
1610 | ||
1611 | PR target/94440 | |
1612 | * config/i386/i386.opt (ix86_excess_precision, | |
1613 | ix86_unsafe_math_optimizations): New TargetVariables. | |
1614 | * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): Use | |
1615 | ix86_unsafe_math_optimizations instead of | |
1616 | flag_unsafe_math_optimizations and ix86_excess_precision instead of | |
1617 | flag_excess_precision. | |
1618 | * config/i386/i386.c (ix86_excess_precision): Rename to ... | |
1619 | (ix86_get_excess_precision): ... this. | |
1620 | (TARGET_C_EXCESS_PRECISION): Define to ix86_get_excess_precision. | |
1621 | * config/i386/i386-options.c (ix86_valid_target_attribute_tree, | |
1622 | ix86_option_override_internal): Update ix86_unsafe_math_optimization | |
1623 | from flag_unsafe_math_optimizations and ix86_excess_precision | |
1624 | from flag_excess_precision when constructing target option nodes. | |
1625 | (ix86_set_current_function): If flag_unsafe_math_optimizations | |
1626 | or flag_excess_precision is different from the one recorded | |
1627 | in TARGET_OPTION_NODE, create a new target option node for the | |
1628 | current function and switch to that. | |
1629 | ||
1630 | 2020-12-08 Richard Biener <rguenther@suse.de> | |
1631 | ||
1632 | PR tree-optimization/98192 | |
1633 | * tree-vect-slp.c (vect_build_slp_instance): Get scalar_stmts | |
1634 | by reference. | |
1635 | ||
1636 | 2020-12-08 Richard Biener <rguenther@suse.de> | |
1637 | ||
1638 | PR tree-optimization/98191 | |
1639 | * tree-vect-slp.c (vect_slp_check_for_constructors): Do not | |
1640 | follow a non-SSA def chain. | |
1641 | ||
1642 | 2020-12-08 Richard Biener <rguenther@suse.de> | |
1643 | ||
1644 | PR tree-optimization/97559 | |
1645 | * tree-ssa-sink.c (statement_sink_location): Never ignore | |
1646 | PHIs on sink paths in irreducible regions. | |
1647 | ||
1648 | 2020-12-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
1649 | ||
1650 | PR target/97872 | |
1651 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Try to fold | |
1652 | x CMP y ? -1 : 0 to x CMP y. | |
1653 | ||
1654 | 2020-12-08 Richard Biener <rguenther@suse.de> | |
1655 | ||
1656 | PR tree-optimization/98180 | |
1657 | * tree-vect-slp.c (vect_slp_check_for_constructors): Check the | |
1658 | first inserted value has a def. | |
1659 | ||
1660 | 2020-12-08 Eric Botcazou <ebotcazou@adacore.com> | |
1661 | ||
1662 | PR tree-optimization/96344 | |
1663 | * tree-switch-conversion.c (bit_test_cluster::emit): Compute the | |
1664 | range only if an entry test is necessary. Merge the entry test in | |
1665 | the bit test when possible. Use PREC local variable consistently. | |
1666 | When there is only one test, do a single gimplification at the end. | |
1667 | ||
1668 | 2020-12-08 Kito Cheng <kito.cheng@sifive.com> | |
1669 | ||
1670 | PR target/98152 | |
1671 | * config.gcc (riscv*-*-*): Checking python, python3 or python2 | |
1672 | is available, and skip doing with_arch canonicalize if no python | |
1673 | available. | |
1674 | ||
1675 | 2020-12-07 Jakub Jelinek <jakub@redhat.com> | |
1676 | ||
1677 | PR target/98147 | |
1678 | * builtins.c (default_emit_call_builtin___clear_cache): Call | |
1679 | convert_memory_address to ptr_mode on both begin and end. | |
1680 | ||
1681 | 2020-12-07 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
1682 | ||
1683 | * ipa-param-manipulation.c | |
1684 | (ipa_param_body_adjustments::modify_call_stmt): Set location info. | |
1685 | ||
1686 | 2020-12-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
1687 | ||
1688 | * doc/extend.texi (used function attribute): Document saving | |
1689 | the declaration from linker garbage collection. | |
1690 | (used variable attribute): Likewise. | |
1691 | ||
1692 | 2020-12-07 Richard Biener <rguenther@suse.de> | |
1693 | ||
1694 | PR tree-optimization/98113 | |
1695 | * tree-vectorizer.h (struct slp_root): New. | |
1696 | (_bb_vec_info::roots): New member. | |
1697 | * tree-vect-slp.c (vect_analyze_slp): Also walk BB info | |
1698 | roots. | |
1699 | (_bb_vec_info::_bb_vec_info): Adjust. | |
1700 | (_bb_vec_info::~_bb_vec_info): Likewise. | |
1701 | (vld_cmp): New. | |
1702 | (vect_slp_is_lane_insert): Likewise. | |
1703 | (vect_slp_check_for_constructors): Match a series of | |
1704 | BIT_INSERT_EXPRs as vector constructor. | |
1705 | (vect_slp_analyze_bb_1): Continue if BB info roots is | |
1706 | not empty. | |
1707 | (vect_slp_analyze_bb_1): Mark the whole BIT_INSERT_EXPR root | |
1708 | sequence as pure_slp. | |
1709 | ||
1710 | 2020-12-07 Richard Biener <rguenther@suse.de> | |
1711 | ||
1712 | PR tree-optimization/98117 | |
1713 | * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): | |
1714 | Properly handle degenerate niter when setting the vector | |
1715 | loop IV range. | |
1716 | ||
1717 | 2020-12-07 Andreas Krebbel <krebbel@linux.ibm.com> | |
1718 | ||
1719 | * config/s390/s390.c (s390_emit_stack_probe): Change Pmode to | |
1720 | word_mode. | |
1721 | ||
1722 | 2020-12-07 Martin Jambor <mjambor@suse.cz> | |
1723 | ||
1724 | PR ipa/97816 | |
1725 | * ipa-cp.c (safe_add): Removed. | |
1726 | (good_cloning_opportunity_p): Remove special handling of INT_MAX. | |
1727 | (value_topo_info<valtype>::propagate_effects): Take care not to | |
1728 | propagate from size one value to another through more sources. Scale | |
1729 | propagated times with edge frequencies. Include local time and size | |
1730 | in propagates ones here. Take care not to overflow size. | |
1731 | (decide_about_value): Do not add local and propagated effects when | |
1732 | passing them to good_cloning_opportunity_p. | |
1733 | ||
1734 | 2020-12-07 Matthias Klose <doko@ubuntu.com> | |
1735 | ||
1736 | * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING | |
1737 | and ENABLE_RTL_FLAG_CHECKING. | |
1738 | ||
1739 | 2020-12-07 Richard Biener <rguenther@suse.de> | |
1740 | ||
1741 | PR tree-optimization/98137 | |
1742 | * tree-data-ref.c (split_constant_offset_1): Use | |
1743 | determine_value_range instead of get_range_info to handle | |
1744 | arbitrary expressions. | |
1745 | ||
1746 | 2020-12-06 H.J. Lu <hjl.tools@gmail.com> | |
1747 | ||
1748 | PR target/98162 | |
1749 | * doc/extend.texi: Remove -mcet. | |
1750 | ||
1751 | 2020-12-06 H.J. Lu <hjl.tools@gmail.com> | |
1752 | ||
1753 | PR target/98161 | |
1754 | * config/i386/i386-features.c (pseudo_reg_set): Check mode of | |
1755 | pseudo register push. | |
1756 | ||
1757 | 2020-12-06 Jakub Jelinek <jakub@redhat.com> | |
1758 | ||
1759 | PR tree-optimization/96232 | |
1760 | * tree-ssa-phiopt.c (two_value_replacement): Optimize even boolean lhs | |
1761 | cases as long as arg0 has wider precision and conditional_replacement | |
1762 | doesn't handle that case. | |
1763 | (tree_ssa_phiopt_worker): Don't call two_value_replacement during | |
1764 | early phiopt. | |
1765 | ||
1766 | 2020-12-06 Jakub Jelinek <jakub@redhat.com> | |
1767 | ||
1768 | PR tree-optimization/96232 | |
1769 | * match.pd (-(type)!A -> (type)A - 1): New optimization. | |
1770 | ||
1771 | 2020-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
1772 | David Edelsohn <dje.gcc@gmail.com> | |
1773 | ||
1774 | * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Reference macro arguments. | |
1775 | ||
1776 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1777 | ||
1778 | PR target/95294 | |
1779 | * config/vax/elf.h (REGISTER_NAMES): Append `%psl'. | |
1780 | * config/vax/vax-modes.def (CCN, CCNZ, CCZ): New modes. | |
1781 | * config/vax/vax-protos.h (vax_select_cc_mode): New prototype. | |
1782 | (vax_maybe_split_dimode_move): Likewise. | |
1783 | (vax_notice_update_cc): Remove prototype. | |
1784 | * config/vax/vax.c (TARGET_FLAGS_REGNUM): New macro. | |
1785 | (TARGET_CC_MODES_COMPATIBLE): Likewise. | |
1786 | (TARGET_MD_ASM_ADJUST): Likewise. | |
1787 | (vax_select_cc_mode): New function | |
1788 | (vax_cc_modes_compatible): Likewise. | |
1789 | (vax_md_asm_adjust): Likewise. | |
1790 | (vax_notice_update_cc): Remove function. | |
1791 | (vax_output_int_move): Factor out code checking if a DImode move | |
1792 | may have to be split... | |
1793 | (vax_maybe_split_dimode_move): ... into this new function. | |
1794 | * config/vax/vax.h (FIRST_PSEUDO_REGISTER): Bump up. | |
1795 | (FIXED_REGISTERS): Append an entry for PSL. | |
1796 | (CALL_USED_REGISTERS): Likewise. | |
1797 | (NOTICE_UPDATE_CC, OUTPUT_JUMP): Remove macros. | |
1798 | (SELECT_CC_MODE): New macro. | |
1799 | (REGISTER_NAMES): Append `psl'. | |
1800 | * config/vax/predicates.md (const_zero_operand) | |
1801 | (vax_cc_comparison_operator, vax_ccn_comparison_operator) | |
1802 | (vax_ccnz_comparison_operator, vax_ccz_comparison_operator): | |
1803 | New predicates. | |
1804 | * config/vax/builtins.md: Rewrite for MODE_CC representation. | |
1805 | * config/vax/vax.md: Likewise. | |
1806 | ||
1807 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1808 | ||
1809 | * config/vax/elf.h (VAX_CC1_SPEC, VAX_CC1PLUS_SPEC): New macros. | |
1810 | * config/vax/netbsd-elf.h (CC1_SPEC): Use VAX_CC1_SPEC rather | |
1811 | than VAX_CC1_AND_CC1PLUS_SPEC. | |
1812 | (CC1PLUS_SPEC): Use VAX_CC1PLUS_SPEC rather than | |
1813 | VAX_CC1_AND_CC1PLUS_SPEC. | |
1814 | ||
1815 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1816 | ||
1817 | * config/pdp11/pdp11.md (fcc_cc, fcc_ccnz): Use | |
1818 | `const_double_zero' to express double zero constant. | |
1819 | ||
1820 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1821 | ||
1822 | * read-rtl.c (rtx_reader::read_rtx_code): Handle syntactic | |
1823 | `const_double_zero' rtx. | |
1824 | * doc/rtl.texi (Constant Expression Types): Document it. | |
1825 | ||
1826 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1827 | ||
1828 | * config/vax/vax.md (divmoddisi4, *amulsi4): Make the comment | |
1829 | notation consistent with the rest of the file. | |
1830 | ||
1831 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1832 | ||
1833 | * config/vax/vax.md (movti): Fix output predicate. Emit `movo' | |
1834 | rather than `movh'. | |
1835 | (divmoddisi4): Fix output predicates, correct RTL. | |
1836 | (*amulsi4): Name insn. Fix output predicate. | |
1837 | ||
1838 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1839 | ||
1840 | * config/vax/vax.md (mulsidi3): Fix the multiplicand predicates. | |
1841 | (*maddsidi4, *maddsidi4_const): Likewise. Name insns. | |
1842 | ||
1843 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1844 | ||
1845 | * config/vax/vax.md (*cmpv_2): Name insn. | |
1846 | (*cmpv, *cmpzv, *cmpzv_2): Likewise. Fix location predicate and | |
1847 | constraint. | |
1848 | ||
1849 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1850 | ||
1851 | * config/vax/vax.md (extv): Rename insn to... | |
1852 | (*extv): ... this. | |
1853 | (extv): New expander. | |
1854 | ||
1855 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1856 | ||
1857 | * config/vax/vax.md (*insv_aligned, *extzv_aligned) | |
1858 | (*extv_aligned): Also make sure the memory address of a bit-field | |
1859 | location can be adjusted in the PIC mode. | |
1860 | ||
1861 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1862 | ||
1863 | * config/vax/vax.md (*insv_aligned, *extzv_aligned) | |
1864 | (*extv_aligned): Reject register bit-field locations that are not | |
1865 | aligned to the least significant bit; update output statement | |
1866 | accordingly. | |
1867 | ||
1868 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1869 | ||
1870 | * config/vax/vax.md (*insv_aligned, *extzv_aligned) | |
1871 | (*extv_aligned, *extv_non_const, *extzv_non_const): Name insns. | |
1872 | Fix location predicate. | |
1873 | (*extzv): Name insn. | |
1874 | (*insv): Likewise. Fix location constraint. | |
1875 | (*insv_2): Likewise, and the predicate. | |
1876 | ||
1877 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1878 | ||
1879 | * config/vax/vax.md (cpymemhi1): Rename insn to... | |
1880 | (movmemhi1): ... this. | |
1881 | (cpymemhi): Update accordingly. Remove constraints. | |
1882 | (movmemhi): New expander. | |
1883 | ||
1884 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1885 | ||
1886 | * config/vax/builtins.md: Add a peephole2 for QImode and HImode | |
1887 | `ctz' operations. | |
1888 | (any_extend): New code iterator. | |
1889 | ||
1890 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1891 | ||
1892 | * config/vax/builtins.md (width): New mode attribute. | |
1893 | (ffssi2): Rework expander into... | |
1894 | (ffs<mode>2): ... this. | |
1895 | (ctzsi2): Rework insn into... | |
1896 | (ctz<mode>2): ... this. | |
1897 | ||
1898 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1899 | ||
1900 | * config/vax/builtins.md (ffssi2_internal): Rename insn to... | |
1901 | (ctzsi2): ... this. Update the RTL operation. | |
1902 | (ffssi2): Update accordingly. | |
1903 | * config/vax/vax.c (vax_notice_update_cc): Handle CTZ. | |
1904 | * config/vax/vax.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro. | |
1905 | ||
1906 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1907 | ||
1908 | * config/vax/vax.md: Include `builtins.md'. | |
1909 | ||
1910 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1911 | ||
1912 | * config/vax/predicates.md (volatile_mem_operand) | |
1913 | (any_memory_operand): New predicates. | |
1914 | * config/vax/builtins.md (VUNSPEC_UNLOCK): Remove constant. | |
1915 | (sync_lock_test_and_set<mode>): Remove `set' and `unspec' | |
1916 | operations, match operands only. Reformat. | |
1917 | (sync_lock_release<mode>): Likewise. Remove cruft. | |
1918 | (jbb<ccss>i<mode>): Wrap into `unspec_volatile', use | |
1919 | `any_memory_operand' predicate. | |
1920 | ||
1921 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1922 | ||
1923 | * config/vax/builtins.md (bit): New int iterator. | |
1924 | (ccss): New int attribute. | |
1925 | (jbbssi<mode>, jbbcci<mode>): Fold insns into... | |
1926 | (jbb<ccss>i<mode>): ... this. | |
1927 | ||
1928 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1929 | ||
1930 | * config/vax/builtins.md (bb_mem): New mode attribute. | |
1931 | (jbbssiqi, jbbssihi, jbbssisi): Fold insns into... | |
1932 | (jbbssi<mode>): ... this. | |
1933 | (jbbcciqi, jbbccihi, jbbccisi): Likewise... | |
1934 | (jbbcci<mode>): ... this. | |
1935 | ||
1936 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1937 | ||
1938 | * jump.c (pc_set): Also accept a jump wrapped in UNSPEC or | |
1939 | UNSPEC_VOLATILE. | |
1940 | (any_uncondjump_p, any_condjump_p): Update comment accordingly. | |
1941 | ||
1942 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1943 | ||
1944 | * loop-doloop.c (add_test): Only remove the jump if `onlyjump_p'. | |
1945 | ||
1946 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1947 | ||
1948 | * cfgrtl.c (rtl_block_empty_p): Return false if `!onlyjump_p' | |
1949 | too. | |
1950 | ||
1951 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1952 | ||
1953 | * sel-sched-ir.c (maybe_tidy_empty_bb): Only try to remove a | |
1954 | conditional jump if `onlyjump_p'. | |
1955 | ||
1956 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1957 | ||
1958 | * loop-iv.c (simplify_using_initial_values): Only process jumps | |
1959 | that match `onlyjump_p'. | |
1960 | (check_simple_exit): Likewise. | |
1961 | ||
1962 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1963 | ||
1964 | * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Bail out | |
1965 | if `!onlyjump_p'. | |
1966 | ||
1967 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1968 | ||
1969 | * read-rtl.c: Add a page-feed separator at the start of iterator | |
1970 | code. | |
1971 | (struct iterator_group): Change the return type to HOST_WIDE_INT | |
1972 | for the `find_builtin' member. Likewise the second parameter | |
1973 | type for the `apply_iterator' member. | |
1974 | (atoll) [!HAVE_ATOQ]: Reorder. | |
1975 | (find_mode, find_code): Change the return type to HOST_WIDE_INT. | |
1976 | (apply_mode_iterator, apply_code_iterator) | |
1977 | (apply_subst_iterator): Change the second parameter type to | |
1978 | HOST_WIDE_INT. | |
1979 | (find_int): Handle input suitable for HOST_WIDE_INT output. | |
1980 | (apply_int_iterator): Rewrite in terms of explicit format | |
1981 | interpretation. | |
1982 | (rtx_reader::read_rtx_operand) <'w'>: Fold into... | |
1983 | <'i', 'n', 'p'>: ... this. | |
1984 | * doc/md.texi (Int Iterators): Document 'w' rtx format support. | |
1985 | ||
1986 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1987 | ||
1988 | * config/vax/builtins.md (ffssi2): Make preparation statements | |
1989 | actually buildable. | |
1990 | (ffssi2_internal): Fix input constraints; make the RTL pattern | |
1991 | match reality for `cc0'. | |
1992 | ||
1993 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
1994 | ||
1995 | * config/vax/vax.c (vax_address_cost): Express the cost in terms | |
1996 | of COSTS_N_INSNS. | |
1997 | (vax_rtx_costs): Likewise. | |
1998 | ||
1999 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
2000 | ||
2001 | * config/vax/constraints.md (A): New constraint. | |
2002 | * config/vax/predicates.md (external_symbolic_operand) | |
2003 | (external_const_operand): Remove predicates. | |
2004 | (local_symbolic_operand): Rename to... | |
2005 | (pic_symbolic_operand): ... this, and rework. | |
2006 | (external_memory_operand): Rename to... | |
2007 | (non_pic_external_memory_operand): ... this, and rework. | |
2008 | (illegal_blk_memory_operand, illegal_addsub_di_memory_operand): | |
2009 | Update accordingly. | |
2010 | * config/vax/vax-protos.h (vax_acceptable_pic_operand_p): New | |
2011 | prototype. | |
2012 | * config/vax/vax.c (vax_acceptable_pic_operand_p): New function. | |
2013 | (vax_output_int_add): Update according to predicate rework. | |
2014 | * config/vax/vax.h (LEGITIMATE_PIC_OPERAND_P): New macro. | |
2015 | * config/vax/vax.md (pushlclsymreg, pushextsymreg): Fold | |
2016 | together, and rename to... | |
2017 | (*pushsymreg): ... this. Use the `pic_symbolic_operand' | |
2018 | predicate and the `A' constraint for the displacement operand. | |
2019 | (movlclsymreg, movextsymreg): Fold together, and rename to... | |
2020 | (*movsymreg): ... this. Use the `pic_symbolic_operand' | |
2021 | predicate and the `A' constraint for the displacement operand. | |
2022 | (pushextsym, pushlclsym): Fold together, and rename to... | |
2023 | (*pushsym): ... this. Use the `pic_symbolic_operand' predicate | |
2024 | and the `A' constraint for the displacement operand. | |
2025 | (movextsym, movlclsym): Fold together, and rename to... | |
2026 | (*movsym): ... this. Use the `pic_symbolic_operand' predicate | |
2027 | and the `A' constraint for the displacement operand. | |
2028 | ||
2029 | 2020-12-05 Maciej W. Rozycki <macro@linux-mips.org> | |
2030 | ||
2031 | * config/vax/vax.c (print_operand): Replace `c' and `C' with | |
2032 | `k' and `K' respectively. | |
2033 | * config/vax/vax.md (*branch, *branch_reversed): Update | |
2034 | accordingly. | |
2035 | ||
2036 | 2020-12-05 Matt Thomas <matt@3am-software.com> | |
2037 | Maciej W. Rozycki <macro@linux-mips.org> | |
2038 | ||
2039 | PR target/58901 | |
2040 | * reload.c (push_reload): Also reload the inner expression of a | |
2041 | SUBREG for pseudos associated with a mode-dependent memory | |
2042 | reference. | |
2043 | (find_reloads): Force a reload likewise. | |
2044 | ||
2045 | 2020-12-05 Roman Zhuykov <zhroma@ispras.ru> | |
2046 | ||
2047 | PR rtl-optimization/97421 | |
2048 | * modulo-sched.c (generate_prolog_epilog): Remove forward | |
2049 | declaration, adjust last argument name and type. | |
2050 | (const_iteration_count): Add bool pointer parameter to return | |
2051 | whether count register is read in pre-header after its | |
2052 | initialization. | |
2053 | (sms_schedule): Fix count register initialization adjustment | |
2054 | procedure according to what const_iteration_count said. | |
2055 | ||
2056 | 2020-12-05 Iain Sandoe <iain@sandoe.co.uk> | |
2057 | ||
2058 | PR target/97865 | |
2059 | * configure: Regenerate. | |
2060 | ||
2061 | 2020-12-05 Venkataramanan Kumar <Venkataramanan.Kumar@amd.com> | |
2062 | Sharavan Kumar <Shravan.Kumar@amd.com> | |
2063 | ||
2064 | * common/config/i386/cpuinfo.h (get_amd_cpu) recognize znver3. | |
2065 | * common/config/i386/i386-common.c (processor_names): Add | |
2066 | znver3. | |
2067 | (processor_alias_table): Add znver3 and AMDFAM19H entry. | |
2068 | * common/config/i386/i386-cpuinfo.h (processor_types): Add | |
2069 | AMDFAM19H. | |
2070 | (processor_subtypes): AMDFAM19H_ZNVER3. | |
2071 | * config.gcc (i[34567]86-*-linux* | ...): Likewise. | |
2072 | * config/i386/driver-i386.c: (host_detect_local_cpu): Let | |
2073 | -march=native recognize znver3 processors. | |
2074 | * config/i386/i386-c.c (ix86_target_macros_internal): Add | |
2075 | znver3. | |
2076 | * config/i386/i386-options.c (m_znver3): New definition. | |
2077 | (m_ZNVER): Include m_znver3. | |
2078 | (processor_cost_table): Add znver3. | |
2079 | * config/i386/i386.c (ix86_reassociation_width): Likewise. | |
2080 | * config/i386/i386.h (TARGET_znver3): New definition. | |
2081 | (enum processor_type): Add PROCESSOR_ZNVER3. | |
2082 | * config/i386/i386.md (define_attr "cpu"): Add znver3. | |
2083 | * config/i386/x86-tune-sched.c: (ix86_issue_rate): Likewise. | |
2084 | (ix86_adjust_cost): Likewise. | |
2085 | * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS: | |
2086 | Likewise. | |
2087 | * config/i386/znver1.md: Add new reservations for znver3. | |
2088 | * doc/extend.texi: Add details about znver3. | |
2089 | * doc/invoke.texi: Likewise. | |
2090 | ||
2091 | 2020-12-05 Jakub Jelinek <jakub@redhat.com> | |
2092 | ||
2093 | PR target/96226 | |
2094 | * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask, | |
2095 | splitter after *<rotate_insn><mode>3_mask_1): Drop the masking from | |
2096 | the patterns to split into. | |
2097 | ||
2098 | 2020-12-04 Jason Merrill <jason@redhat.com> | |
2099 | ||
2100 | * vec.h (begin, end): Add overloads for vec*. | |
2101 | * tree.c (build_constructor_from_vec): Remove *. | |
2102 | ||
2103 | 2020-12-04 David Edelsohn <dje.gcc@gmail.com> | |
2104 | ||
2105 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
2106 | Change PTR_SIZE to POINTER_SIZE_UNITS. | |
2107 | ||
2108 | 2020-12-04 Hans-Peter Nilsson <hp@axis.com> | |
2109 | Martin Sebor <msebor@redhat.com> | |
2110 | ||
2111 | PR middle-end/94600 | |
2112 | * doc/implement-c.texi (Qualifiers implementation): Add blurb | |
2113 | about access to the whole of a volatile aggregate object, only for | |
2114 | same-size as a scalar object. | |
2115 | ||
2116 | 2020-12-04 Jakub Jelinek <jakub@redhat.com> | |
2117 | ||
2118 | PR c++/98130 | |
2119 | * gimple.c (gimple_call_fnspec): Only return ".co " for replaceable | |
2120 | operator delete or ".mC" for replaceable operator new called from | |
2121 | new/delete. | |
2122 | ||
2123 | 2020-12-04 Jakub Jelinek <jakub@redhat.com> | |
2124 | ||
2125 | PR target/96226 | |
2126 | * config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask, | |
2127 | splitter after *<rotate_insn><mode>3_mask_1): New combine splitters. | |
2128 | ||
2129 | 2020-12-04 Jakub Jelinek <jakub@redhat.com> | |
2130 | ||
2131 | PR libstdc++/93121 | |
2132 | * fold-const.c (native_encode_initializer): Use build_zero_cst | |
2133 | instead of build_constructor. | |
2134 | ||
2135 | 2020-12-04 Jakub Jelinek <jakub@redhat.com> | |
2136 | ||
2137 | PR target/98100 | |
2138 | * cfgexpand.c (expand_gimple_basic_block): For vars with | |
2139 | vector type, use TYPE_MODE rather than DECL_MODE. | |
2140 | ||
2141 | 2020-12-04 Jakub Jelinek <jakub@redhat.com> | |
2142 | ||
2143 | * common.opt (-gdwarf32, -gdwarf64): New options. | |
2144 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Default | |
2145 | dwarf_offset_size to 8 if not overridden from the command line. | |
2146 | * dwarf2out.c: Change all occurrences of DWARF_OFFSET_SIZE to | |
2147 | dwarf_offset_size. | |
2148 | * doc/invoke.texi (-gdwarf32, -gdwarf64): Document. | |
2149 | ||
2150 | 2020-12-04 Martin Liska <mliska@suse.cz> | |
2151 | ||
2152 | * doc/tm.texi: Change argument of the record_gcc_switches | |
2153 | hook and remove SWITCH_TYPE_* enum values. | |
2154 | * dwarf2out.c (gen_producer_string): Move to opts.c and remove | |
2155 | handling of the dwarf_record_gcc_switches option. | |
2156 | (dwarf2out_early_finish): Use moved gen_producer_string | |
2157 | function. | |
2158 | * opts.c (gen_producer_string): New. | |
2159 | * opts.h (gen_producer_string): New. | |
2160 | * target.def: Change type of record_gcc_switches. | |
2161 | * target.h (enum print_switch_type): Remove. | |
2162 | (elf_record_gcc_switches): Change first argument. | |
2163 | * toplev.c (MAX_LINE): Remove. | |
2164 | (print_to_asm_out_file): Likewise. | |
2165 | (print_to_stderr): Likewise. | |
2166 | (print_single_switch): Likewise. | |
2167 | (print_switch_values): Likewise. | |
2168 | (init_asm_output): Use new gen_producer_string function. | |
2169 | (process_options): Likewise. | |
2170 | * varasm.c (elf_record_gcc_switches): Just save the string argument | |
2171 | to the ELF container. | |
2172 | ||
2173 | 2020-12-04 Eric Botcazou <ebotcazou@adacore.com> | |
2174 | ||
2175 | * ipa-sra.c (verify_access_tree_1): Relax assertion on the size. | |
2176 | ||
2177 | 2020-12-04 Martin Liska <mliska@suse.cz> | |
2178 | ||
2179 | * doc/invoke.texi: Add missing params. | |
2180 | ||
2181 | 2020-12-03 Martin Sebor <msebor@redhat.com> | |
2182 | ||
2183 | PR c++/90629 | |
2184 | PR middle-end/94527 | |
2185 | * builtins.c (access_ref::access_ref): Initialize new member. | |
2186 | (compute_objsize): Use access_ref::deref. Handle simple pointer | |
2187 | assignment. | |
2188 | (expand_builtin): Remove handling of the free built-in. | |
2189 | (call_dealloc_argno): Same. | |
2190 | (find_assignment_location): New function. | |
2191 | (fndecl_alloc_p): Same. | |
2192 | (gimple_call_alloc_p): Same. | |
2193 | (call_dealloc_p): Same. | |
2194 | (matching_alloc_calls_p): Same. | |
2195 | (warn_dealloc_offset): Same. | |
2196 | (maybe_emit_free_warning): Same. | |
2197 | * builtins.h (struct access_ref): Declare new member. | |
2198 | (maybe_emit_free_warning): Make extern. Make use of access_ref. | |
2199 | Handle -Wmismatched-new-delete. | |
2200 | * calls.c (initialize_argument_information): Call | |
2201 | maybe_emit_free_warning. | |
2202 | * doc/extend.texi (attribute malloc): Update. | |
2203 | * doc/invoke.texi (-Wfree-nonheap-object): Expand documentation. | |
2204 | (-Wmismatched-new-delete): Document new option. | |
2205 | (-Wmismatched-dealloc): Document new option. | |
2206 | ||
2207 | 2020-12-03 Alexandre Oliva <oliva@adacore.com> | |
2208 | ||
2209 | * tree.c (build_common_builtin_nodes): Declare | |
2210 | __builtin___clear_cache for all languages. | |
2211 | * builtins.c (maybe_emit_call_builtin___clear_cache): Accept | |
2212 | Pmode arguments. | |
2213 | ||
2214 | 2020-12-03 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
2215 | ||
2216 | * config/arm/t-rtems: Add "-mthumb -mcpu=cortex-r52 | |
2217 | -mfloat-abi=hard" multilib. | |
2218 | ||
2219 | 2020-12-03 Uroš Bizjak <ubizjak@gmail.com> | |
2220 | Jakub Jelinek <jakub@redhat.com> | |
2221 | ||
2222 | PR target/98086 | |
2223 | * config/i386/i386.c (ix86_md_asm_adjustmd): Rewrite | |
2224 | zero-extension part to use convert_to_mode. | |
2225 | ||
2226 | 2020-12-03 Andreas Krebbel <krebbel@linux.ibm.com> | |
2227 | ||
2228 | * config/s390/s390.md ("@probe_stack2<mode>"): Change mode | |
2229 | iterator to W. | |
2230 | ||
2231 | 2020-12-03 Richard Sandiford <richard.sandiford@arm.com> | |
2232 | ||
2233 | * config/aarch64/aarch64-sve-builtins-base.cc (svundef_impl::fold): | |
2234 | Delete. | |
2235 | ||
2236 | 2020-12-03 Eric Botcazou <ebotcazou@adacore.com> | |
2237 | ||
2238 | PR middle-end/98099 | |
2239 | * expmed.c (flip_storage_order): In the case of a non-integer mode, | |
2240 | sorry out if the integer mode to be used instead is not supported. | |
2241 | ||
2242 | 2020-12-03 Eric Botcazou <ebotcazou@adacore.com> | |
2243 | ||
2244 | PR middle-end/98082 | |
2245 | * function.c (use_register_for_decl): Also return true for a result | |
2246 | if cfun->tail_call_marked is true. | |
2247 | ||
2248 | 2020-12-03 Jakub Jelinek <jakub@redhat.com> | |
2249 | ||
2250 | PR libstdc++/93121 | |
2251 | * fold-const.h (native_encode_initializer): Add mask argument | |
2252 | defaulted to nullptr. | |
2253 | (find_bitfield_repr_type): Declare. | |
2254 | (native_interpret_aggregate): Declare. | |
2255 | * fold-const.c (find_bitfield_repr_type): New function. | |
2256 | (native_encode_initializer): Add mask argument and support for | |
2257 | filling it. Handle also some bitfields without integral | |
2258 | DECL_BIT_FIELD_REPRESENTATIVE. | |
2259 | (native_interpret_aggregate): New function. | |
2260 | * gimple-fold.h (clear_type_padding_in_mask): Declare. | |
2261 | * gimple-fold.c (struct clear_padding_struct): Add clear_in_mask | |
2262 | member. | |
2263 | (clear_padding_flush): Handle buf->clear_in_mask. | |
2264 | (clear_padding_union): Copy clear_in_mask. Don't error if | |
2265 | buf->clear_in_mask is set. | |
2266 | (clear_padding_type): Don't error if buf->clear_in_mask is set. | |
2267 | (clear_type_padding_in_mask): New function. | |
2268 | (gimple_fold_builtin_clear_padding): Set buf.clear_in_mask to false. | |
2269 | * doc/extend.texi (__builtin_bit_cast): Document. | |
2270 | ||
2271 | 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com> | |
2272 | ||
2273 | * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): | |
2274 | Do not allow __builtin_constant_p on a threading path. | |
2275 | ||
2276 | 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com> | |
2277 | ||
2278 | * tree-ssa-strlen.c (printf_strlen_execute): Avoid division by | |
2279 | 0. | |
2280 | ||
2281 | 2020-12-03 Kito Cheng <kito.cheng@sifive.com> | |
2282 | ||
2283 | * config/riscv/multilib-generator (arch_canonicalize): Move | |
2284 | code to arch-canonicalize, and call that script to canonicalize arch | |
2285 | string. | |
2286 | (canonical_order): Move code to arch-canonicalize. | |
2287 | (LONG_EXT_PREFIXES): Ditto. | |
2288 | (IMPLIED_EXT): Ditto. | |
2289 | * config/riscv/arch-canonicalize: New. | |
2290 | * config.gcc (riscv*-*-*): Canonicalize --with-arch. | |
2291 | ||
2292 | 2020-12-03 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
2293 | ||
2294 | * config/aarch64/aarch64-option-extensions.def | |
2295 | (AARCH64_OPT_EXTENSION): New +flagm option in -march for AArch64. | |
2296 | * config/aarch64/aarch64.h (AARCH64_FL_FLAGM): Add new flagm extension bit | |
2297 | mask. | |
2298 | (AARCH64_FL_FOR_ARCH8_4): Add flagm to Armv8.4-A. | |
2299 | * doc/invoke.texi: Update docs with +flagm. | |
2300 | ||
2301 | 2020-12-03 liuhongt <hongtao.liu@intel.com> | |
2302 | ||
2303 | PR target/96906 | |
2304 | * config/i386/sse.md | |
2305 | (<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Add a new | |
2306 | define_split after this insn. | |
2307 | ||
2308 | 2020-12-03 liuhongt <hongtao.liu@intel.com> | |
2309 | ||
2310 | PR target/97642 | |
2311 | * config/i386/i386-expand.c | |
2312 | (ix86_expand_special_args_builtin): Don't move all-ones mask | |
2313 | operands into register. | |
2314 | * config/i386/sse.md (UNSPEC_MASKLOAD): New unspec. | |
2315 | (*<avx512>_load<mode>_mask): New define_insns for masked load | |
2316 | instructions. | |
2317 | (<avx512>_load<mode>_mask): Changed to define_expands which | |
2318 | specifically handle memory or all-ones mask operands. | |
2319 | (<avx512>_blendm<mode>): Changed to define_insns which are same | |
2320 | as original <avx512>_load<mode>_mask with adjustment of | |
2321 | operands order. | |
2322 | (*<avx512>_load<mode>): New define_insn_and_split which is | |
2323 | used to optimize for masked load with all one mask. | |
2324 | ||
2325 | 2020-12-03 Hongyu Wang <hongyu.wang@intel.com> | |
2326 | ||
2327 | PR target/97770 | |
2328 | * config/i386/sse.md (popcount<mode>2): New expander | |
2329 | for SI/DI vector modes. | |
2330 | (popcount<mode>2): Likewise for QI/HI vector modes. | |
2331 | ||
2332 | 2020-12-03 Alexandre Oliva <oliva@adacore.com> | |
2333 | ||
2334 | * builtins.c (default_emit_call_builtin___clear_cache): New. | |
2335 | (maybe_emit_call_builtin___clear_cache): New. | |
2336 | (expand_builtin___clear_cache): Split into the above. | |
2337 | (expand_builtin): Do not issue clear_cache call any more. | |
2338 | * builtins.h (maybe_emit_call_builtin___clear_cache): Declare. | |
2339 | * config/aarch64/aarch64.c (aarch64_trampoline_init): Use | |
2340 | maybe_emit_call_builtin___clear_cache. | |
2341 | * config/arc/arc.c (arc_trampoline_init): Likewise. | |
2342 | * config/arm/arm.c (arm_trampoline_init): Likewise. | |
2343 | * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise. | |
2344 | * config/csky/csky.c (csky_trampoline_init): Likewise. | |
2345 | * config/m68k/linux.h (FInALIZE_TRAMPOLINE): Likewise. | |
2346 | * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise. | |
2347 | * config/tilepro/tilepro.c (tilepro_trampoline_init): Ditto. | |
2348 | * config/vxworks.c: Include rtl.h, memmodel.h, and optabs.h. | |
2349 | (vxworks_emit_call_builtin___clear_cache): New. | |
2350 | * config/vxworks.h (CLEAR_INSN_CACHE): Drop. | |
2351 | (TARGET_EMIT_CALL_BUILTIN___CLEAR_CACHE): Define. | |
2352 | * target.def (trampoline_init): In the documentation, refer to | |
2353 | maybe_emit_call_builtin___clear_cache. | |
2354 | (emit_call_builtin___clear_cache): New. | |
2355 | * doc/tm.texi.in: Add new hook point. | |
2356 | (CLEAR_CACHE_INSN): Remove duplicate 'both'. | |
2357 | * doc/tm.texi: Rebuilt. | |
2358 | * targhooks.h (default_meit_call_builtin___clear_cache): | |
2359 | Declare. | |
2360 | * tree.h (BUILTIN_ASM_NAME_PTR): New. | |
2361 | ||
2362 | 2020-12-03 Ilya Leoshkevich <iii@linux.ibm.com> | |
2363 | ||
2364 | * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): | |
2365 | Do not allow __builtin_constant_p on a threading path. | |
2366 | ||
2367 | 2020-12-02 Jakub Jelinek <jakub@redhat.com> | |
2368 | ||
2369 | * dwarf2out.c (add_scalar_info): Only use add_AT_wide for 128-bit | |
2370 | constants and only in dwarf-5 or later, where DW_FORM_data16 is | |
2371 | available. Otherwise use DW_FORM_block*/DW_FORM_exprloc with | |
2372 | DW_OP_implicit_value to describe the constant. | |
2373 | ||
2374 | 2020-12-02 qing zhao <qinzhao@gcc.gnu.org> | |
2375 | ||
2376 | PR rtl-optimization/97777 | |
2377 | * reg-stack.c (rest_of_handle_stack_regs): call | |
2378 | df_insn_rescan_all if reg_to_stack return true. | |
2379 | ||
2380 | 2020-12-02 Ilya Leoshkevich <iii@linux.ibm.com> | |
2381 | ||
2382 | * config/s390/s390-protos.h (s390_const_int_pool_entry_p): New | |
2383 | function. | |
2384 | * config/s390/s390.c (s390_const_int_pool_entry_p): New | |
2385 | function. | |
2386 | * config/s390/s390.md: Add define_peephole2 that produces llihf | |
2387 | and oilf. | |
2388 | ||
2389 | 2020-12-02 Richard Biener <rguenther@suse.de> | |
2390 | ||
2391 | PR tree-optimization/97630 | |
2392 | * tree-vectorizer.h (_slp_tree::next_node, | |
2393 | _slp_tree::prev_node): New. | |
2394 | (vect_slp_init): Declare. | |
2395 | (vect_slp_fini): Likewise. | |
2396 | * tree-vectorizer.c (vectorize_loops): Call vect_slp_init/fini. | |
2397 | (pass_slp_vectorize::execute): Likewise. | |
2398 | * tree-vect-slp.c (vect_slp_init): New. | |
2399 | (vect_slp_fini): Likewise. | |
2400 | (slp_first_node): New global. | |
2401 | (_slp_tree::_slp_tree): Link node into the SLP tree list. | |
2402 | (_slp_tree::~_slp_tree): Delink node from the SLP tree list. | |
2403 | ||
2404 | 2020-12-02 Scott Snyder <sss@li-snyder.org> | |
2405 | ||
2406 | PR plugins/98059 | |
2407 | * vec.h (auto_delete_vec): Use | |
2408 | DISABLE_COPY_AND_ASSIGN(auto_delete_vec) instead of | |
2409 | DISABLE_COPY_AND_ASSIGN(auto_delete_vec<T>) to make it valid C++20 | |
2410 | after DR2237. | |
2411 | ||
2412 | 2020-12-02 Martin Liska <mliska@suse.cz> | |
2413 | ||
2414 | PR ipa/98075 | |
2415 | * cgraph.c (cgraph_node::dump): Dump decl_is_malloc flag. | |
2416 | * ipa-pure-const.c (propagate_malloc): Do not set malloc | |
2417 | attribute for void functions. | |
2418 | ||
2419 | 2020-12-02 H.J. Lu <hjl.tools@gmail.com> | |
2420 | ||
2421 | PR middle-end/93195 | |
2422 | PR middle-end/93197 | |
2423 | * configure.ac (HAVE_GAS_SECTION_LINK_ORDER): New. Define 1 if | |
2424 | the assembler supports the section flag 'o' for specifying | |
2425 | section with link-order. | |
2426 | * output.h (SECTION_LINK_ORDER): New. Defined to 0x8000000. | |
2427 | (SECTION_MACH_DEP): Changed from 0x8000000 to 0x10000000. | |
2428 | * targhooks.c (default_print_patchable_function_entry): Pass | |
2429 | SECTION_LINK_ORDER to switch_to_section if the section flag 'o' | |
2430 | works. Pass current_function_decl to switch_to_section. | |
2431 | * varasm.c (default_elf_asm_named_section): Use 'o' flag for | |
2432 | SECTION_LINK_ORDER if assembler supports it. | |
2433 | * config.in: Regenerated. | |
2434 | * configure: Likewise. | |
2435 | * doc/sourcebuild.texi: Document o_flag_in_section. | |
2436 | ||
2437 | 2020-12-02 H.J. Lu <hjl.tools@gmail.com> | |
2438 | ||
2439 | * config/i386/i386.opt: Add the missing '.' for -mneeded. | |
2440 | ||
2441 | 2020-12-02 Richard Biener <rguenther@suse.de> | |
2442 | ||
2443 | * tree-vect-loop.c (vect_transform_loop_stmt): Return whether | |
2444 | we vectorized a stmt. | |
2445 | (vect_transform_loop): Only call maybe_set_vectorized_backedge_value | |
2446 | when we vectorized the stmt. | |
2447 | ||
2448 | 2020-12-02 Jakub Jelinek <jakub@redhat.com> | |
2449 | ||
2450 | * expmed.h (expand_divmod): Only declare if GCC_OPTABS_H is defined. | |
2451 | Add enum optabs_method argument defaulted to OPTAB_LIB_WIDEN. | |
2452 | * expmed.c: Include expmed.h after optabs.h. | |
2453 | (expand_divmod): Add methods argument, if it is not OPTAB_{,LIB_}WIDEN, | |
2454 | don't choose a wider mode, and pass it to other calls instead of | |
2455 | hardcoded OPTAB_LIB_WIDEN. Avoid emitting libcalls if not | |
2456 | OPTAB_LIB or OPTAB_LIB_WIDEN. | |
2457 | * optabs.c: Include expmed.h after optabs.h. | |
2458 | (expand_doubleword_mod, expand_doubleword_divmod): Pass OPTAB_DIRECT | |
2459 | as last argument to expand_divmod. | |
2460 | (expand_binop): Punt if {s,u}divmod_optab has handler for double-word | |
2461 | int_mode. | |
2462 | * expr.c: Include expmed.h after optabs.h. | |
2463 | * explow.c: Include expmed.h after optabs.h. | |
2464 | ||
2465 | 2020-12-02 Jakub Jelinek <jakub@redhat.com> | |
2466 | ||
2467 | PR rtl-optimization/97459 | |
2468 | * optabs.h (expand_doubleword_divmod): Declare. | |
2469 | * optabs.c (expand_doubleword_divmod): New function. | |
2470 | (expand_binop): Use it. | |
2471 | * internal-fn.c (expand_DIVMOD): Likewise. | |
2472 | ||
2473 | 2020-12-02 Martin Liska <mliska@suse.cz> | |
2474 | ||
2475 | PR c/98087 | |
2476 | * gimple-fold.c (clear_padding_type): Do not divide by zero. | |
2477 | ||
2478 | 2020-12-02 Martin Liska <mliska@suse.cz> | |
2479 | ||
2480 | * gdbinit.in: Write what each command calls | |
2481 | for a debugging function. | |
2482 | ||
2483 | 2020-12-02 Kewen Lin <linkw@linux.ibm.com> | |
2484 | ||
2485 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
2486 | Use OPTION_MASK_DIRECT_MOVE for Power8 target_enable instead | |
2487 | of OPTION_MASK_HTM. | |
2488 | * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): | |
2489 | Remove OPTION_MASK_HTM. | |
2490 | (RS6000_CPU): Add OPTION_MASK_HTM to power8, power9 and | |
2491 | powerpc64le entries. | |
2492 | ||
2493 | 2020-12-02 Uroš Bizjak <ubizjak@gmail.com> | |
2494 | ||
2495 | PR target/98079 | |
2496 | * config/i386/i386.md (abs<mode>2): Enable QImode | |
2497 | only for !TARGET_PARTIAL_REG_STALL. | |
2498 | (*abs<mode>2_1): Ditto. | |
2499 | (<maxmin:code><mode>3): Ditto. | |
2500 | (*<maxmin:code><mode>3_1): Ditto. | |
2501 | ||
2502 | 2020-12-02 Martin Liska <mliska@suse.cz> | |
2503 | ||
2504 | * diagnostic.c (diagnostic_report_diagnostic): ICE causes to | |
2505 | terminate compiler immediately, so I guess it should be printed | |
2506 | always. | |
2507 | ||
2508 | 2020-12-02 Martin Liska <mliska@suse.cz> | |
2509 | ||
2510 | PR tree-optimization/88702 | |
2511 | * gimple-if-to-switch.cc (pass_if_to_switch::execute): | |
2512 | Require at least 2 BBs. | |
2513 | * gimple-if-to-switch.cc (find_conditions): Require | |
2514 | equal precision for low and high of a range. | |
2515 | ||
2516 | 2020-12-02 Martin Liska <mliska@suse.cz> | |
2517 | ||
2518 | PR tree-optimization/98084 | |
2519 | * gimple-if-to-switch.cc (find_conditions): Consider only | |
2520 | integral types. | |
2521 | ||
2522 | 2020-12-02 Jeff Law <law@redhat.com> | |
2523 | ||
2524 | * config/h8300/addsub.md (addqi3_clobber_flags): Rename to | |
2525 | addqi3_flags and annotate with a <cczn> for define_subst. | |
2526 | (addhi3_h8sx_clobber_flags): Likewise. | |
2527 | (subqi3_clobber_flags, sub<mode>3_clobber_flags): Likewise. | |
2528 | (neg<mode2>_clobber_flags): Similarly. | |
2529 | (addsi3_clobber_flags): Similarly. Update last argument to | |
2530 | output_plussi to distinguish when we need flags or do not need | |
2531 | flags. | |
2532 | (addhi3_clobber_flags): Similarly. Twiddle code for cases | |
2533 | +-1, +-2 and +-4. | |
2534 | * config/h8300/h8300.md: Define iterators, mode attributes and | |
2535 | substitutions for use in compare/test elimination. | |
2536 | * config/h8300/jumpcall.md (branch, branch_1): Use H8cc mode | |
2537 | iterator to cover the different modes for the CC register. | |
2538 | (branch_1_false): Likewise. | |
2539 | ||
2540 | 2020-12-02 Maciej W. Rozycki <macro@linux-mips.org> | |
2541 | ||
2542 | * loop-iv.c: Fix a typo, s/bu/by/, in the `iv_analyze_expr' | |
2543 | description in the introduction. | |
2544 | ||
2545 | 2020-12-02 H.J. Lu <hjl.tools@gmail.com> | |
2546 | ||
2547 | * configure.ac (HAVE_GAS_SHF_GNU_RETAIN): New. Define 1 if | |
2548 | the assembler supports marking sections with SHF_GNU_RETAIN flag. | |
2549 | * output.h (SECTION_RETAIN): New. Defined as 0x4000000. | |
2550 | (SECTION_MACH_DEP): Changed from 0x4000000 to 0x8000000. | |
2551 | (default_unique_section): Add a bool argument. | |
2552 | * varasm.c (get_section): Set SECTION_RETAIN for the preserved | |
2553 | symbol with HAVE_GAS_SHF_GNU_RETAIN. | |
2554 | (resolve_unique_section): Used named section for the preserved | |
2555 | symbol if assembler supports SHF_GNU_RETAIN. | |
2556 | (get_variable_section): Handle the preserved common symbol with | |
2557 | HAVE_GAS_SHF_GNU_RETAIN. | |
2558 | (default_elf_asm_named_section): Require the full declaration and | |
2559 | use the 'R' flag for SECTION_RETAIN. | |
2560 | * config.in: Regenerated. | |
2561 | * configure: Likewise. | |
2562 | * doc/sourcebuild.texi: Document R_flag_in_section. | |
2563 | ||
2564 | 2020-12-02 H.J. Lu <hjl.tools@gmail.com> | |
2565 | ||
2566 | * config.gcc: Replace cet.o with gnu-property.o. Replace | |
2567 | i386/t-cet with i386/t-gnu-property. | |
2568 | * config/i386/cet.c: Renamed to ... | |
2569 | * config/i386/gnu-property.c: This. | |
2570 | (emit_gnu_property): New function. | |
2571 | (file_end_indicate_exec_stack_and_cet): Renamed to ... | |
2572 | (file_end_indicate_exec_stack_and_gnu_property): This. Call | |
2573 | emit_gnu_property to generate GNU_PROPERTY_X86_FEATURE_1_AND and | |
2574 | GNU_PROPERTY_X86_ISA_1_NEEDED properties. | |
2575 | * config/i386/i386.opt (mneeded): New. | |
2576 | * config/i386/linux-common.h (file_end_indicate_exec_stack_and_cet): | |
2577 | Renamed to ... | |
2578 | (file_end_indicate_exec_stack_and_gnu_property): This. | |
2579 | (TARGET_ASM_FILE_END): Updated. | |
2580 | * config/i386/t-cet: Renamed to ... | |
2581 | * config/i386/t-gnu-property: This. | |
2582 | (cet.o): Renamed to ... | |
2583 | (gnu-property.o): This. | |
2584 | * doc/invoke.texi: Document -mneeded. | |
2585 | ||
2586 | 2020-12-01 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com> | |
2587 | ||
2588 | PR tree-optimization/96708 | |
2589 | * match.pd: New pattern for comparing X with MAX (X, Y) | |
2590 | or MIN (X, y). | |
2591 | ||
2592 | 2020-12-01 Jeff Law <law@redhat.com> | |
2593 | ||
2594 | * config/mcore/t-mcore (MULTILIB_EXCEPTIONS): Define. | |
2595 | ||
2596 | 2020-12-01 Martin Sebor <msebor@redhat.com> | |
2597 | ||
2598 | PR middle-end/97595 | |
2599 | * tree.c (component_ref_size): Fail when DECL_SIZE != TYPE_SIZE. | |
2600 | * tree.h (DECL_SIZE, TYPE_SIZE): Update comment. | |
2601 | ||
2602 | 2020-12-01 JeanHeyd Meneide <phdofthehouse@gmail.com> | |
2603 | ||
2604 | * doc/cpp.texi: Document new macros. | |
2605 | ||
2606 | 2020-12-01 Martin Sebor <msebor@redhat.com> | |
2607 | ||
2608 | PR middle-end/97373 | |
2609 | * builtins.c (compute_objsize): Rename... | |
2610 | (compute_objsize_r): to this. Change order and types of arguments. | |
2611 | Use new argument. Adjust calls to self. | |
2612 | (access_ref::get_ref): New member function. | |
2613 | (pointer_query::pointer_query): New member function. | |
2614 | (pointer_query::get_ref): Same. | |
2615 | (pointer_query::put_ref): Same. | |
2616 | (handle_min_max_size): Change order and types of arguments. | |
2617 | (maybe_emit_free_warning): Add a test. | |
2618 | * builtins.h (class pointer_query): New class. | |
2619 | (compute_objsize): Declare an overload. | |
2620 | * gimple-ssa-sprintf.c (get_destination_size): Add argument. | |
2621 | (handle_printf_call): Change argument type. | |
2622 | * tree-ssa-strlen.c (adjust_last_stmt): Add an argument and use it. | |
2623 | (maybe_warn_overflow): Same. | |
2624 | (handle_builtin_strcpy): Same. | |
2625 | (maybe_diag_stxncpy_trunc): Same. | |
2626 | (handle_builtin_memcpy): Change argument type. Adjust calls. | |
2627 | (handle_builtin_strcat): Same. | |
2628 | (handle_builtin_memset): Same. | |
2629 | (handle_store): Same. | |
2630 | (strlen_check_and_optimize_call): Same. | |
2631 | (check_and_optimize_stmt): Same. | |
2632 | (strlen_dom_walker): Add new data members. | |
2633 | (strlen_dom_walker::before_dom_children): Use new member. | |
2634 | (printf_strlen_execute): Dump cache performance counters. Remove | |
2635 | objsize pass cleanup. | |
2636 | * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Add argument. | |
2637 | (handle_printf_call): Change argument type. | |
2638 | ||
2639 | 2020-12-01 Eric Botcazou <ebotcazou@adacore.com> | |
2640 | ||
2641 | * function.c (gen_call_used_regs_seq): In a function subject to the | |
2642 | leaf register optimization, skip registers that are not present. | |
2643 | * config/sparc/sparc.c (TARGET_ZERO_CALL_USED_REGS): Define to... | |
2644 | (sparc_zero_call_used_regs): ...this. New function. | |
2645 | ||
2646 | 2020-12-01 Iain Sandoe <iain@sandoe.co.uk> | |
2647 | ||
2648 | * config/darwin.h: Remove unused 'X' specs in the link spec | |
2649 | rather than driver self-specs. | |
2650 | ||
2651 | 2020-12-01 Nathan Sidwell <nathan@acm.org> | |
2652 | ||
2653 | * params.opt (lazy-modules): New. | |
2654 | * timevar.def (TV_MODULE_IMPORT, TV_MODULE_EXPORT) | |
2655 | (TV_MODULE_MAPPER): New. | |
2656 | ||
2657 | 2020-12-01 Jakub Jelinek <jakub@redhat.com> | |
2658 | ||
2659 | PR rtl-optimization/97459 | |
2660 | * optabs.c (expand_doubleword_mod): Punt early for even op1. | |
2661 | (expand_binop): Don't require lshr_optab double-word handler. | |
2662 | ||
2663 | 2020-12-01 Jakub Jelinek <jakub@redhat.com> | |
2664 | ||
2665 | PR rtl-optimization/97954 | |
2666 | * loop-invariant.c (find_invariant_insn): Punt on JUMP_P insns. | |
2667 | ||
2668 | 2020-12-01 Iain Sandoe <iain@sandoe.co.uk> | |
2669 | ||
2670 | * configure.ac (check leb128 support): Check that assemblers both | |
2671 | accept the LEB128 directives and also give the expected output. | |
2672 | Add a test for uleb128 with the MSB set for a 64 bit value. | |
2673 | * configure: Regenerated. | |
2674 | ||
2675 | 2020-12-01 Iain Sandoe <iain@sandoe.co.uk> | |
2676 | ||
2677 | * configure: Regnerated. | |
2678 | ||
2679 | 2020-12-01 Ilya Leoshkevich <iii@linux.ibm.com> | |
2680 | ||
2681 | * optabs-tree.c (vec_cmp_icode_p): New function. | |
2682 | (vec_cmp_eq_icode_p): New function. | |
2683 | (expand_vec_cmp_expr_p): Use vec_cmp_icode_p and | |
2684 | vec_cmp_eq_icode_p. | |
2685 | (vcond_icode_p): Use get_rtx_code_1, just to be uniform with | |
2686 | vec_cmp_icode_p. | |
2687 | * optabs.c (unsigned_optab_p): New function. | |
2688 | (insn_predicate_matches_p): New function. | |
2689 | (can_vec_cmp_compare_p): New function. | |
2690 | (can_vcond_compare_p): Use unsigned_optab_p and | |
2691 | insn_predicate_matches_p. | |
2692 | (get_rtx_code): Use get_rtx_code_1. | |
2693 | (get_rtx_code_1): Version of get_rtx_code that returns UNKNOWN | |
2694 | instead of asserting. | |
2695 | * optabs.h (can_vec_cmp_compare_p): New function. | |
2696 | (get_rtx_code_1): New function. | |
2697 | ||
2698 | 2020-12-01 Martin Liska <mliska@suse.cz> | |
2699 | ||
2700 | PR tree-optimization/14799 | |
2701 | PR ipa/88702 | |
2702 | * Makefile.in: Add gimple-if-to-switch.o. | |
2703 | * dbgcnt.def (DEBUG_COUNTER): Add new debug counter. | |
2704 | * passes.def: Include new pass_if_to_switch pass. | |
2705 | * timevar.def (TV_TREE_IF_TO_SWITCH): New timevar. | |
2706 | * tree-pass.h (make_pass_if_to_switch): New. | |
2707 | * tree-ssa-reassoc.c (struct operand_entry): Move to the header. | |
2708 | (dump_range_entry): Move to header file. | |
2709 | (debug_range_entry): Likewise. | |
2710 | (no_side_effect_bb): Make it global. | |
2711 | * tree-switch-conversion.h (simple_cluster::simple_cluster): | |
2712 | Add inline for couple of functions in order to prevent error | |
2713 | about multiple defined symbols. | |
2714 | * gimple-if-to-switch.cc: New file. | |
2715 | * tree-ssa-reassoc.h: New file. | |
2716 | ||
2717 | 2020-12-01 Marius Hillenbrand <mhillen@linux.ibm.com> | |
2718 | ||
2719 | * configure.ac: Add configure option | |
2720 | --enable-s390-excess-float-precision and check to derive default | |
2721 | from glibc. | |
2722 | * config/s390/s390.c: Guard s390_excess_precision with an ifdef | |
2723 | for ENABLE_S390_EXCESS_FLOAT_PRECISION. | |
2724 | * doc/install.texi: Document --enable-s390-excess-float-precision. | |
2725 | * configure: Regenerate. | |
2726 | * config.in: Regenerate. | |
2727 | ||
2728 | 2020-12-01 Martin Liska <mliska@suse.cz> | |
2729 | ||
2730 | PR ipa/98057 | |
2731 | * symtab.c (symtab_node::set_section_for_node): Drop | |
2732 | implicit_section if x_section is NULL. | |
2733 | ||
2734 | 2020-12-01 Jakub Jelinek <jakub@redhat.com> | |
2735 | ||
2736 | PR target/98063 | |
2737 | * config/i386/i386-expand.c (ix86_expand_call): Handle non-plt | |
2738 | CM_LARGE_PIC calls. | |
2739 | ||
2740 | 2020-12-01 Richard Biener <rguenther@suse.de> | |
2741 | ||
2742 | PR middle-end/98070 | |
2743 | * builtins.c (builtin_fnspec): realloc is ".Cw ". | |
2744 | ||
2745 | 2020-12-01 Jakub Jelinek <jakub@redhat.com> | |
2746 | ||
2747 | * dwarf2out.c (gen_compile_unit_die): Treat GNU C++20 | |
2748 | like C++14 for -gdwarf-5. | |
2749 | ||
2750 | 2020-12-01 Jakub Jelinek <jakub@redhat.com> | |
2751 | ||
2752 | PR debug/97989 | |
2753 | * gcc.c (cpp_unique_options): Add -dD if %:debug-level-gt(2) | |
2754 | rather than g3|ggdb3|gstabs3|gxcoff3|gvms3. | |
2755 | ||
2756 | 2020-12-01 Kito Cheng <kito.cheng@sifive.com> | |
2757 | ||
2758 | * config.gcc (riscv*-*-*): Drop some commited accidentally code. | |
2759 | ||
2760 | 2020-11-30 Jeff Law <law@redhat.com> | |
2761 | ||
2762 | * symtab.c (set_section_for_node): Add function comment. | |
2763 | (set_section_from_node): Likewise. | |
2764 | ||
2765 | 2020-11-30 David Malcolm <dmalcolm@redhat.com> | |
2766 | ||
2767 | * doc/plugins.texi (Plugin callbacks): Add PLUGIN_ANALYZER_INIT. | |
2768 | * plugin.c (register_callback): Likewise. | |
2769 | (invoke_plugin_callbacks_full): Likewise. | |
2770 | * plugin.def (PLUGIN_ANALYZER_INIT): New event. | |
2771 | ||
2772 | 2020-11-30 Jeff Law <law@redhat.com> | |
2773 | ||
2774 | * config/h8300/bitfield.md: Remove "cc" attribute on any | |
2775 | insns where it remained. | |
2776 | * config/h8300/combiner.md: Likewise. | |
2777 | * config/h8300/jumpcall.md: Likewise. | |
2778 | * config/h8300/logical.md: Likewise. | |
2779 | * config/h8300/testcompare.md: Likewise. | |
2780 | * config/h8300/h8300.md (old_cc attr): Renamed from cc attr. | |
2781 | * config/h8300/h8300.c (notice_update_cc): Remove. | |
2782 | (compute_plussi_cc): Change references to CC_* to OLD_CC_. | |
2783 | (compute_logical_op_cc): Likewise. | |
2784 | (shift_one, shift_two): Likewise. | |
2785 | (compute_a_shift_cc): Likewise. | |
2786 | (get_shift_alg): Likewise. | |
2787 | (struct shift_insn): Change type of cc_valid field. | |
2788 | (struct shift_info): Likewise. | |
2789 | * config/h8300/save.md: Remove accidentially created file. | |
2790 | ||
2791 | 2020-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2792 | ||
2793 | PR rtl-optimization/98037 | |
2794 | * dse.c (find_shift_sequence): Iterate over all integers and | |
2795 | skip modes that are too small. | |
2796 | ||
2797 | 2020-11-30 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com> | |
2798 | ||
2799 | PR tree-optimization/96679 | |
2800 | * match.pd (((b | c) & a) | b -> (a & c) | b): New pattern. | |
2801 | ||
2802 | 2020-11-30 Martin Liska <mliska@suse.cz> | |
2803 | ||
2804 | * passes.c (emergency_dump_function): Dump symtab when | |
2805 | we are in an IPA pass. | |
2806 | ||
2807 | 2020-11-30 Richard Biener <rguenther@suse.de> | |
2808 | ||
2809 | PR tree-optimization/98064 | |
2810 | * tree-vect-loop.c (vectorizable_live_operation): Avoid | |
2811 | breaking LC SSA for BB vectorization. | |
2812 | ||
2813 | 2020-11-30 Jonathan Wakely <jwakely@redhat.com> | |
2814 | ||
2815 | * doc/sourcebuild.texi (Directives): Fix description of | |
2816 | dg-require-effective-target to include "target" in selector. | |
2817 | ||
2818 | 2020-11-30 Richard Biener <rguenther@suse.de> | |
2819 | ||
2820 | PR tree-optimization/98048 | |
2821 | * tree-vect-generic.c (expand_vector_operations_1): Use the | |
2822 | correct type for the scalar LHS replacement. | |
2823 | ||
2824 | 2020-11-30 Martin Liska <mliska@suse.cz> | |
2825 | ||
2826 | PR tree-optimization/98066 | |
2827 | * gimple-isel.cc (gimple_expand_vec_exprs): Return when | |
2828 | gimple_expand_vec_exprs replaces last stmt. | |
2829 | ||
2830 | 2020-11-30 Ilya Leoshkevich <iii@linux.ibm.com> | |
2831 | ||
2832 | * cfgrtl.c (rtl_bb_info_initialized_p): New function. | |
2833 | (rtl_dump_bb): Use rtl_bb_info_initialized_p before accessing bb | |
2834 | insns. | |
2835 | ||
2836 | 2020-11-30 Iain Buclaw <ibuclaw@gdcproject.org> | |
2837 | ||
2838 | PR d/87818 | |
2839 | * config.gcc (*-*-freebsd*): Add freebsd-d.o and t-freebsd. | |
2840 | * config/freebsd-d.c: New file. | |
2841 | * config/t-freebsd: New file. | |
2842 | ||
2843 | 2020-11-30 Jakub Jelinek <jakub@redhat.com> | |
2844 | ||
2845 | PR rtl-optimization/97459 | |
2846 | * internal-fn.h (expand_addsub_overflow): Declare. | |
2847 | * internal-fn.c (expand_addsub_overflow): No longer static. | |
2848 | * optabs.c (expand_doubleword_mod): New function. | |
2849 | (expand_binop): Optimize double-word mod with constant divisor. | |
2850 | ||
2851 | 2020-11-30 Kito Cheng <kito.cheng@sifive.com> | |
2852 | ||
2853 | * config.gcc (riscv*-*-*): Add TARGET_RISCV_DEFAULT_ABI and | |
2854 | TARGET_RISCV_DEFAULT_ARCH to tm_defines. | |
2855 | Remove including riscv/withmultilib.h for --with-multilib-list. | |
2856 | * config/riscv/riscv.h (STRINGIZING): New. | |
2857 | (__STRINGIZING): Ditto. | |
2858 | (MULTILIB_DEFAULTS): Ditto. | |
2859 | * config/riscv/withmultilib.h: Remove. | |
2860 | ||
2861 | 2020-11-30 Kito Cheng <kito.cheng@sifive.com> | |
2862 | ||
2863 | * gcc.c (print_multilib_info): Check default arguments not | |
2864 | appeared in multi-lib option list with '!' | |
2865 | ||
2866 | 2020-11-30 Jeff Law <law@redhat.com> | |
2867 | ||
2868 | * config/ft32/ft32.md (umulsidi3): Do not allow constants as | |
2869 | arguments. | |
2870 | ||
2871 | 2020-11-29 Jan Hubicka <jh@suse.cz> | |
2872 | ||
2873 | * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix | |
2874 | handling of ignore_stores. | |
2875 | ||
2876 | 2020-11-29 Jan Hubicka <jh@suse.cz> | |
2877 | ||
2878 | PR jit/97867 | |
2879 | * symtab-thunks.h (thunk_info::release): Use ggc_delete. | |
2880 | ||
2881 | 2020-11-29 Martin Sebor <msebor@redhat.com> | |
2882 | ||
2883 | PR middle-end/92936 | |
2884 | PR middle-end/92940 | |
2885 | PR middle-end/89428 | |
2886 | * builtins.c (access_ref::access_ref): Initialize member. | |
2887 | (access_ref::phi): New function. | |
2888 | (access_ref::get_ref): New function. | |
2889 | (access_ref::add_offset): Remove duplicate assignment. | |
2890 | (maybe_warn_for_bound): Add "maybe" kind of warning messages. | |
2891 | (warn_for_access): Same. | |
2892 | (inform_access): Rename... | |
2893 | (access_ref::inform_access): ...to this. Print PHI arguments. Format | |
2894 | offset the same as size and simplify. Improve printing of allocation | |
2895 | functions and VLAs. | |
2896 | (check_access): Adjust to the above. | |
2897 | (gimple_parm_array_size): Change argument. | |
2898 | (handle_min_max_size): New function. | |
2899 | * builtins.h (class ssa_name_limit_t): Move class here from | |
2900 | tree-ssa-strlen.c. | |
2901 | (struct access_ref): Declare new members. | |
2902 | (gimple_parm_array_size): Change argument. | |
2903 | * tree-ssa-strlen.c (maybe_warn_overflow): Use access_ref and simplify. | |
2904 | (handle_builtin_memcpy): Correct argument passed to maybe_warn_overflow. | |
2905 | (handle_builtin_memset): Same. | |
2906 | (class ssa_name_limit_t): Move class to builtins.{h,c}. | |
2907 | ||
2908 | 2020-11-29 Iain Buclaw <ibuclaw@gdcproject.org> | |
2909 | ||
2910 | * config.gcc (*-*-darwin*): Set d_target_objs and target_has_targetdm. | |
2911 | * config/elfos.h (TARGET_D_MINFO_SECTION): New macro. | |
2912 | (TARGET_D_MINFO_START_NAME): New macro. | |
2913 | (TARGET_D_MINFO_END_NAME): New macro. | |
2914 | * config/t-darwin: Add darwin-d.o. | |
2915 | * doc/tm.texi: Regenerate. | |
2916 | * doc/tm.texi.in (D language and ABI): Add @hook for | |
2917 | TARGET_D_MINFO_SECTION, TARGET_D_MINFO_START_NAME, and | |
2918 | TARGET_D_MINFO_END_NAME. | |
2919 | * config/darwin-d.c: New file. | |
2920 | ||
2921 | 2020-11-29 Jan Hubicka <jh@suse.cz> | |
2922 | ||
2923 | * tree-ssa-structalias.c (handle_pure_call): Skip EAF_UNUSED | |
2924 | parameters. | |
2925 | ||
2926 | 2020-11-29 Jan Hubicka <jh@suse.cz> | |
2927 | ||
2928 | * ipa-modref.c (modref_lattice::merge): Do nothing if F is EAF_UNUSED. | |
2929 | (analyze_parms): Detect unused params. | |
2930 | (modref_merge_call_site_flags): Merge correct EAF_UNUSED. | |
2931 | ||
2932 | 2020-11-28 Eric Botcazou <ebotcazou@adacore.com> | |
2933 | ||
2934 | PR target/97939 | |
2935 | * config/sparc/predicates.md (arith_double_add_operand): Comment. | |
2936 | * config/sparc/sparc.md (uaddvdi4): Use arith_double_operand. | |
2937 | (addvdi4): Use arith_double_add_operand. | |
2938 | (addsi3): Remove useless attributes. | |
2939 | (addvsi4): Use arith_add_operand. | |
2940 | (*cmp_ccv_plus): Likewise and add second alternative accordingly. | |
2941 | (*cmp_ccxv_plus): Likewise. | |
2942 | (*cmp_ccv_plus_set): Likewise. | |
2943 | (*cmp_ccxv_plus_set): Likewise. | |
2944 | (*cmp_ccv_plus_sltu_set): Likewise. | |
2945 | (usubvdi4): Use arith_double_operand. | |
2946 | (subvdi4): Use arith_double_add_operand. | |
2947 | (subsi3): Remove useless attributes. | |
2948 | (subvsi4): Use arith_add_operand. | |
2949 | (*cmp_ccv_minus): Likewise and add second alternative accordingly. | |
2950 | (*cmp_ccxv_minus): Likewise. | |
2951 | (*cmp_ccv_minus_set): Likewise. | |
2952 | (*cmp_ccxv_minus_set): Likewise. | |
2953 | (*cmp_ccv_minus_sltu_set): Likewise. | |
2954 | (negsi2): Use register_operand. | |
2955 | (unegvsi3): Likewise. | |
2956 | (negvsi3) Likewise. | |
2957 | (*cmp_ccnz_neg): Likewise. | |
2958 | (*cmp_ccxnz_neg): Likewise. | |
2959 | (*cmp_ccnz_neg_set): Likewise. | |
2960 | (*cmp_ccxnz_neg_set): Likewise. | |
2961 | (*cmp_ccc_neg_set): Likewise. | |
2962 | (*cmp_ccxc_neg_set): Likewise. | |
2963 | (*cmp_ccc_neg_sltu_set): Likewise. | |
2964 | (*cmp_ccv_neg): Likewise. | |
2965 | (*cmp_ccxv_neg): Likewise. | |
2966 | (*cmp_ccv_neg_set): Likewise. | |
2967 | (*cmp_ccxv_neg_set): Likewise. | |
2968 | (*cmp_ccv_neg_sltu_set): Likewise. | |
2969 | ||
2970 | 2020-11-27 H.J. Lu <hjl.tools@gmail.com> | |
2971 | ||
2972 | PR other/98027 | |
2973 | * doc/install.texi: Default to --enable-cet=auto. | |
2974 | ||
2975 | 2020-11-27 Thomas Schwinge <thomas@codesourcery.com> | |
2976 | ||
2977 | * omp-oacc-kernels-decompose.cc (flatten_binds): Don't choke on | |
2978 | empty GIMPLE sequence, and examine all statements contained in | |
2979 | inner 'GIMPLE_BIND'. | |
2980 | ||
2981 | 2020-11-27 Richard Biener <rguenther@suse.de> | |
2982 | ||
2983 | PR tree-optimization/98024 | |
2984 | * tree-ssa-pre.c (insert): Fix successor RPO order check. | |
2985 | (do_pre_regular_insertion): When inserting an assignment | |
2986 | in place of an all-same-value PHI still record that into | |
2987 | PHI_GEN. | |
2988 | ||
2989 | 2020-11-27 Jakub Jelinek <jakub@redhat.com> | |
2990 | ||
2991 | * tree-ssanames.c (get_range_info): Handle INTEGER_CST by returning | |
2992 | VR_RANGE with both *min and *max set to the wide_int value of the | |
2993 | INTEGER_CST. Return VR_VARYING for non-SSA_NAMEs. | |
2994 | * match.pd ((t * 2) / 2) -> t): Handle also @0 being INTEGER_CST. | |
2995 | Simplify by calling get_range_info on everything. | |
2996 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Simplify by calling | |
2997 | get_range_info on everything. | |
2998 | * tree-scalar-evolution.c (iv_can_overflow_p): Likewise. | |
2999 | ||
3000 | 2020-11-27 Jakub Jelinek <jakub@redhat.com> | |
3001 | ||
3002 | PR libstdc++/88101 | |
3003 | * gimple-fold.c (clear_padding_type): Ignore fields with is_empty_type | |
3004 | types. | |
3005 | ||
3006 | 2020-11-27 Tobias Burnus <tobias@codesourcery.com> | |
3007 | ||
3008 | PR c/97880 | |
3009 | * omp-expand.c (expand_oacc_collapse_init, expand_oacc_collapse_vars): | |
3010 | Use now passed diff_type. | |
3011 | (expand_oacc_for): Take largest type for diff_type, taking tiling | |
3012 | and collapsing into account. | |
3013 | ||
3014 | 2020-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
3015 | ||
3016 | * config/aarch64/aarch64.opt | |
3017 | (-param=aarch64-autovec-preference): Define. | |
3018 | * config/aarch64/aarch64.c (aarch64_override_options_internal): | |
3019 | Set aarch64_sve_compare_costs to 0 when preferring only Advanced | |
3020 | SIMD. | |
3021 | (aarch64_cmp_autovec_modes): Define. | |
3022 | (aarch64_preferred_simd_mode): Adjust to use the above. | |
3023 | (aarch64_autovectorize_vector_modes): Likewise. | |
3024 | * doc/invoke.texi: Document aarch64-autovec-preference param. | |
3025 | ||
3026 | 2020-11-27 Xionghu Luo <luoxhu@linux.ibm.com> | |
3027 | ||
3028 | * config/rs6000/rs6000-call.c (altivec_expand_vec_set_builtin): | |
3029 | Change call param 2 from type int to rtx. | |
3030 | * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set): | |
3031 | Likewise. | |
3032 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): | |
3033 | Change call param 2 from type int to rtx. | |
3034 | (rs6000_expand_vector_set): Likewise. | |
3035 | * config/rs6000/vector.md (vec_set<mode>): Support both constant | |
3036 | and variable index vec_set. | |
3037 | ||
3038 | 2020-11-27 Haochen Gui <guihaoc@gcc.gnu.org> | |
3039 | ||
3040 | * config/rs6000/rs6000-protos.h (rs6000_output_addr_vec_elt): Declare. | |
3041 | * config/rs6000/rs6000.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): | |
3042 | Define. | |
3043 | (rs6000_gen_pic_addr_diff_vec, rs6000_output_addr_vec_elt): Implement. | |
3044 | * config/rs6000/rs6000.h (CASE_VECTOR_PC_RELATIVE, | |
3045 | CASE_VECTOR_MODE, ASM_OUTPUT_ADDR_VEC_ELT): Define. | |
3046 | * config/rs6000/rs6000.md (tablejump<mode>_absolute, | |
3047 | tablejump<mode>_absolute_nospec): New expanders. | |
3048 | * config/rs6000/rs6000.opt (mrelative-jumptables): New. | |
3049 | ||
3050 | 2020-11-26 Eric Botcazou <ebotcazou@adacore.com> | |
3051 | ||
3052 | PR target/96607 | |
3053 | * config/sparc/sparc-protos.h (eligible_for_call_delay): Delete. | |
3054 | * config/sparc/sparc.c (eligible_for_call_delay): Likewise. | |
3055 | * config/sparc/sparc.md (in_call_delay): Likewise. | |
3056 | (tls_delay_slot): New attribute. | |
3057 | (define_delay [call]): Use in_branch_delay. | |
3058 | (tgd_call<P:mode>): Set type to call_no_delay_slot when | |
3059 | tls_delay_slot is false. | |
3060 | (tldm_call<P:mode>): Likewise. | |
3061 | ||
3062 | 2020-11-26 Jakub Jelinek <jakub@redhat.com> | |
3063 | ||
3064 | PR tree-optimization/97997 | |
3065 | * match.pd ((t * 2) / 2) -> t): Optimize even for defined | |
3066 | overflow if ranges prove there is no overflow. | |
3067 | ||
3068 | 2020-11-26 Richard Biener <rguenther@suse.de> | |
3069 | ||
3070 | PR tree-optimization/97953 | |
3071 | * gimple-ssa-evrp-analyze.c | |
3072 | (evrp_range_analyzer::record_ranges_from_incoming_edge): Make | |
3073 | sure the condition post-dominates the SSA definition before | |
3074 | recording into SSA_NAME_RANGE_INFO. | |
3075 | ||
3076 | 2020-11-26 Richard Biener <rguenther@suse.de> | |
3077 | ||
3078 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Only | |
3079 | lower VECTOR_BOOLEAN_TYPE_P VEC_COND_EXPRs. | |
3080 | ||
3081 | 2020-11-26 Andrew Stubbs <ams@codesourcery.com> | |
3082 | ||
3083 | * config/gcn/mkoffload.c (copy_early_debug_info): Don't wipe | |
3084 | relocation symbols. | |
3085 | ||
3086 | 2020-11-26 Uroš Bizjak <ubizjak@gmail.com> | |
3087 | ||
3088 | * config/i386/i386-expand.c (ix86_expand_multi_arg_builtin): | |
3089 | Remove args array of structs, declare rtx xops array instead. | |
3090 | Update all uses. | |
3091 | (ix86_expand_args_builtin): Ditto. | |
3092 | (ix86_expand_round_builtin): Ditto. | |
3093 | (ix86_expand_special_args_builtin): Ditto. | |
3094 | ||
3095 | 2020-11-26 Martin Liska <mliska@suse.cz> | |
3096 | ||
3097 | * dwarf2out.c (gen_compile_unit_die): Fix missing == 0 in a | |
3098 | strcmp. | |
3099 | ||
3100 | 2020-11-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
3101 | ||
3102 | * config/sol2.h (TIME_LIBRARY): Remove. | |
3103 | ||
3104 | 2020-11-26 Kewen Lin <linkw@linux.ibm.com> | |
3105 | ||
3106 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
3107 | Set param_vect_partial_vector_usage as 1 for Power10 and up | |
3108 | by default. | |
3109 | ||
3110 | 2020-11-26 Jakub Jelinek <jakub@redhat.com> | |
3111 | ||
3112 | * gimple-fold.c (clear_padding_union): Ignore DECL_PADDING_P | |
3113 | fields. | |
3114 | (clear_padding_type): Ignore DECL_PADDING_P fields, rather than | |
3115 | DECL_BIT_FIELD with NULL DECL_NAME. | |
3116 | ||
3117 | 2020-11-26 Jakub Jelinek <jakub@redhat.com> | |
3118 | ||
3119 | PR tree-optimization/97979 | |
3120 | * match.pd ((X {&,^,|} C2) << C1 into (X << C1) {&,^,|} (C2 << C1)): | |
3121 | Only optimize if int_const_binop returned non-NULL. | |
3122 | ||
3123 | 2020-11-26 liuhongt <hongtao.liu@intel.com> | |
3124 | ||
3125 | * config/i386/i386-expand.c | |
3126 | (ix86_expand_special_args_builtin): Delete last_arg_constant | |
3127 | and match. | |
3128 | ||
3129 | 2020-11-26 Uroš Bizjak <ubizjak@gmail.com> | |
3130 | ||
3131 | PR target/97873 | |
3132 | * config/i386/i386.md (abs<mode>2): Use SDWIM mode iterator. | |
3133 | (*abs<mode>2_1): Use SWI mode iterator. | |
3134 | (<maxmin:code><mode>3): Use SDWIM mode iterator. | |
3135 | (*<maxmin:code><mode>3_1): Use SWI mode iterator. | |
3136 | ||
3137 | 2020-11-26 Jakub Jelinek <jakub@redhat.com> | |
3138 | ||
3139 | PR target/96906 | |
3140 | * config/i386/sse.md (VI12_AVX2): Remove V64QI/V32HI modes. | |
3141 | (VI12_AVX2_AVX512BW): New mode iterator. | |
3142 | (<sse2_avx2>_<plusminus_insn><mode>3<mask_name>, | |
3143 | uavg<mode>3_ceil, <sse2_avx2>_uavg<mode>3<mask_name>): Use | |
3144 | VI12_AVX2_AVX512BW iterator instead of VI12_AVX2. | |
3145 | (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Likewise. | |
3146 | (*<sse2_avx2>_uavg<mode>3<mask_name>): Likewise. | |
3147 | (*<sse2_avx2>_<plusminus_insn><mode>3<mask_name>): Add a new | |
3148 | define_split after this insn. | |
3149 | ||
3150 | 2020-11-26 Martin Uecker <muecker@gwdg.de> | |
3151 | ||
3152 | PR c/65455 | |
3153 | PR c/92935 | |
3154 | * ginclude/stdatomic.h: Use comma operator to drop qualifiers. | |
3155 | ||
3156 | 2020-11-26 Vladimir Makarov <vmakarov@redhat.com> | |
3157 | ||
3158 | PR bootstrap/97983 | |
3159 | * lra.c (lra_process_new_insns): Use emit_insn_before_noloc or | |
3160 | emit_insn_after_noloc with the destination BB. | |
3161 | ||
3162 | 2020-11-25 Martin Sebor <msebor@redhat.com> | |
3163 | ||
3164 | PR bootstrap/97622 | |
3165 | PR bootstrap/94982 | |
3166 | * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): | |
3167 | Avoid -Wformat-diag. | |
3168 | * digraph.cc (struct test_edge): Same. | |
3169 | * dumpfile.c (dump_loc): Same. | |
3170 | (dump_context::begin_scope): Same. | |
3171 | * edit-context.c (edited_file::print_diff): Same. | |
3172 | (edited_file::print_diff_hunk): Same. | |
3173 | * json.cc (object::print): Same. | |
3174 | * lto-wrapper.c (merge_and_complain): Same. | |
3175 | * reload.c (find_reloads): Same. | |
3176 | * tree-diagnostic-path.cc (print_path_summary_as_text): Same. | |
3177 | * ubsan.c (ubsan_type_descriptor): Same. | |
3178 | ||
3179 | 2020-11-25 Jan Hubicka <jh@suse.cz> | |
3180 | ||
3181 | * gimple.c (gimple_call_arg_flags): Also imply EAF_NODIRECTESCAPE. | |
3182 | * tree-core.h (EAF_NODRECTESCAPE): New flag. | |
3183 | * tree-ssa-structalias.c (make_indirect_escape_constraint): New | |
3184 | function. | |
3185 | (handle_rhs_call): Hanlde EAF_NODIRECTESCAPE. | |
3186 | * ipa-modref.c (dump_eaf_flags): Print EAF_NODIRECTESCAPE. | |
3187 | (deref_flags): Dereference is always EAF_NODIRECTESCAPE. | |
3188 | (modref_lattice::init): Also set EAF_NODIRECTESCAPE. | |
3189 | (analyze_ssa_name_flags): Pure functions do not affect | |
3190 | EAF_NODIRECTESCAPE. | |
3191 | (analyze_params): Likewise. | |
3192 | (ipa_merge_modref_summary_after_inlining): Likewise. | |
3193 | (modref_merge_call_site_flags): Likewise. | |
3194 | ||
3195 | 2020-11-25 Jan Hubicka <jh@suse.cz> | |
3196 | ||
3197 | * ipa-modref.c (modref_summaries::duplicate, | |
3198 | modref_summaries_lto::duplicate): Copy arg_flags. | |
3199 | (remap_arg_flags): Fix remapping of arg_flags. | |
3200 | ||
3201 | 2020-11-25 Martin Sebor <msebor@redhat.com> | |
3202 | ||
3203 | PR middle-end/97956 | |
3204 | * gimple-fold.c (gimple_fold_builtin_memchr): Use sizetype for pointer | |
3205 | offsets. | |
3206 | ||
3207 | 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com> | |
3208 | ||
3209 | * asan.c (asan_instrument_reads): New. | |
3210 | (asan_instrument_writes): New. | |
3211 | (asan_memintrin): New. | |
3212 | (handle_builtin_stack_restore): Account for HWASAN. | |
3213 | (handle_builtin_alloca): Account for HWASAN. | |
3214 | (get_mem_refs_of_builtin_call): Special case strlen for HWASAN. | |
3215 | (hwasan_instrument_reads): New. | |
3216 | (hwasan_instrument_writes): New. | |
3217 | (hwasan_memintrin): New. | |
3218 | (report_error_func): Assert not HWASAN. | |
3219 | (build_check_stmt): Make HWASAN_CHECK instead of ASAN_CHECK. | |
3220 | (instrument_derefs): HWASAN does not tag globals. | |
3221 | (instrument_builtin_call): Use new helper functions. | |
3222 | (maybe_instrument_call): Don't instrument `noreturn` functions. | |
3223 | (initialize_sanitizer_builtins): Add new type. | |
3224 | (asan_expand_mark_ifn): Account for HWASAN. | |
3225 | (asan_expand_check_ifn): Assert never called by HWASAN. | |
3226 | (asan_expand_poison_ifn): Account for HWASAN. | |
3227 | (asan_instrument): Branch based on whether using HWASAN or ASAN. | |
3228 | (pass_asan::gate): Return true if sanitizing HWASAN. | |
3229 | (pass_asan_O0::gate): Return true if sanitizing HWASAN. | |
3230 | (hwasan_check_func): New. | |
3231 | (hwasan_expand_check_ifn): New. | |
3232 | (hwasan_expand_mark_ifn): New. | |
3233 | (gate_hwasan): New. | |
3234 | * asan.h (hwasan_expand_check_ifn): New decl. | |
3235 | (hwasan_expand_mark_ifn): New decl. | |
3236 | (gate_hwasan): New decl. | |
3237 | (asan_intercepted_p): Always false for hwasan. | |
3238 | (asan_sanitize_use_after_scope): Account for HWASAN. | |
3239 | * builtin-types.def (BT_FN_PTR_CONST_PTR_UINT8): New. | |
3240 | * gimple-fold.c (gimple_build): New overload for building function | |
3241 | calls without arguments. | |
3242 | (gimple_build_round_up): New. | |
3243 | * gimple-fold.h (gimple_build): New decl. | |
3244 | (gimple_build): New inline function. | |
3245 | (gimple_build_round_up): New decl. | |
3246 | (gimple_build_round_up): New inline function. | |
3247 | * gimple-pretty-print.c (dump_gimple_call_args): Account for | |
3248 | HWASAN. | |
3249 | * gimplify.c (asan_poison_variable): Account for HWASAN. | |
3250 | (gimplify_function_tree): Remove requirement of | |
3251 | SANITIZE_ADDRESS, requiring asan or hwasan is accounted for in | |
3252 | `asan_sanitize_use_after_scope`. | |
3253 | * internal-fn.c (expand_HWASAN_CHECK): New. | |
3254 | (expand_HWASAN_ALLOCA_UNPOISON): New. | |
3255 | (expand_HWASAN_CHOOSE_TAG): New. | |
3256 | (expand_HWASAN_MARK): New. | |
3257 | (expand_HWASAN_SET_TAG): New. | |
3258 | * internal-fn.def (HWASAN_ALLOCA_UNPOISON): New. | |
3259 | (HWASAN_CHOOSE_TAG): New. | |
3260 | (HWASAN_CHECK): New. | |
3261 | (HWASAN_MARK): New. | |
3262 | (HWASAN_SET_TAG): New. | |
3263 | * sanitizer.def (BUILT_IN_HWASAN_LOAD1): New. | |
3264 | (BUILT_IN_HWASAN_LOAD2): New. | |
3265 | (BUILT_IN_HWASAN_LOAD4): New. | |
3266 | (BUILT_IN_HWASAN_LOAD8): New. | |
3267 | (BUILT_IN_HWASAN_LOAD16): New. | |
3268 | (BUILT_IN_HWASAN_LOADN): New. | |
3269 | (BUILT_IN_HWASAN_STORE1): New. | |
3270 | (BUILT_IN_HWASAN_STORE2): New. | |
3271 | (BUILT_IN_HWASAN_STORE4): New. | |
3272 | (BUILT_IN_HWASAN_STORE8): New. | |
3273 | (BUILT_IN_HWASAN_STORE16): New. | |
3274 | (BUILT_IN_HWASAN_STOREN): New. | |
3275 | (BUILT_IN_HWASAN_LOAD1_NOABORT): New. | |
3276 | (BUILT_IN_HWASAN_LOAD2_NOABORT): New. | |
3277 | (BUILT_IN_HWASAN_LOAD4_NOABORT): New. | |
3278 | (BUILT_IN_HWASAN_LOAD8_NOABORT): New. | |
3279 | (BUILT_IN_HWASAN_LOAD16_NOABORT): New. | |
3280 | (BUILT_IN_HWASAN_LOADN_NOABORT): New. | |
3281 | (BUILT_IN_HWASAN_STORE1_NOABORT): New. | |
3282 | (BUILT_IN_HWASAN_STORE2_NOABORT): New. | |
3283 | (BUILT_IN_HWASAN_STORE4_NOABORT): New. | |
3284 | (BUILT_IN_HWASAN_STORE8_NOABORT): New. | |
3285 | (BUILT_IN_HWASAN_STORE16_NOABORT): New. | |
3286 | (BUILT_IN_HWASAN_STOREN_NOABORT): New. | |
3287 | (BUILT_IN_HWASAN_TAG_MISMATCH4): New. | |
3288 | (BUILT_IN_HWASAN_HANDLE_LONGJMP): New. | |
3289 | (BUILT_IN_HWASAN_TAG_PTR): New. | |
3290 | * sanopt.c (sanopt_optimize_walker): Act for hwasan. | |
3291 | (pass_sanopt::execute): Act for hwasan. | |
3292 | * toplev.c (compile_file): Use `gate_hwasan` function. | |
3293 | ||
3294 | 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com> | |
3295 | ||
3296 | * asan.c (struct hwasan_stack_var): New. | |
3297 | (hwasan_sanitize_p): New. | |
3298 | (hwasan_sanitize_stack_p): New. | |
3299 | (hwasan_sanitize_allocas_p): New. | |
3300 | (initialize_sanitizer_builtins): Define new builtins. | |
3301 | (ATTR_NOTHROW_LIST): New macro. | |
3302 | (hwasan_current_frame_tag): New. | |
3303 | (hwasan_frame_base): New. | |
3304 | (stack_vars_base_reg_p): New. | |
3305 | (hwasan_maybe_init_frame_base_init): New. | |
3306 | (hwasan_record_stack_var): New. | |
3307 | (hwasan_get_frame_extent): New. | |
3308 | (hwasan_increment_frame_tag): New. | |
3309 | (hwasan_record_frame_init): New. | |
3310 | (hwasan_emit_prologue): New. | |
3311 | (hwasan_emit_untag_frame): New. | |
3312 | (hwasan_finish_file): New. | |
3313 | (hwasan_truncate_to_tag_size): New. | |
3314 | * asan.h (hwasan_record_frame_init): New declaration. | |
3315 | (hwasan_record_stack_var): New declaration. | |
3316 | (hwasan_emit_prologue): New declaration. | |
3317 | (hwasan_emit_untag_frame): New declaration. | |
3318 | (hwasan_get_frame_extent): New declaration. | |
3319 | (hwasan_maybe_enit_frame_base_init): New declaration. | |
3320 | (hwasan_frame_base): New declaration. | |
3321 | (stack_vars_base_reg_p): New declaration. | |
3322 | (hwasan_current_frame_tag): New declaration. | |
3323 | (hwasan_increment_frame_tag): New declaration. | |
3324 | (hwasan_truncate_to_tag_size): New declaration. | |
3325 | (hwasan_finish_file): New declaration. | |
3326 | (hwasan_sanitize_p): New declaration. | |
3327 | (hwasan_sanitize_stack_p): New declaration. | |
3328 | (hwasan_sanitize_allocas_p): New declaration. | |
3329 | (HWASAN_TAG_SIZE): New macro. | |
3330 | (HWASAN_TAG_GRANULE_SIZE): New macro. | |
3331 | (HWASAN_STACK_BACKGROUND): New macro. | |
3332 | * builtin-types.def (BT_FN_VOID_PTR_UINT8_PTRMODE): New. | |
3333 | * builtins.def (DEF_SANITIZER_BUILTIN): Enable for HWASAN. | |
3334 | * cfgexpand.c (align_local_variable): When using hwasan ensure | |
3335 | alignment to tag granule. | |
3336 | (align_frame_offset): New. | |
3337 | (expand_one_stack_var_at): For hwasan use tag offset. | |
3338 | (expand_stack_vars): Record stack objects for hwasan. | |
3339 | (expand_one_stack_var_1): Record stack objects for hwasan. | |
3340 | (init_vars_expansion): Initialise hwasan state. | |
3341 | (expand_used_vars): Emit hwasan prologue and generate hwasan epilogue. | |
3342 | (pass_expand::execute): Emit hwasan base initialization if needed. | |
3343 | * doc/tm.texi (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE, | |
3344 | TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG, | |
3345 | TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG, | |
3346 | TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks. | |
3347 | * doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE,TARGET_MEMTAG_GRANULE_SIZE, | |
3348 | TARGET_MEMTAG_INSERT_RANDOM_TAG,TARGET_MEMTAG_ADD_TAG, | |
3349 | TARGET_MEMTAG_SET_TAG,TARGET_MEMTAG_EXTRACT_TAG, | |
3350 | TARGET_MEMTAG_UNTAGGED_POINTER): Document new hooks. | |
3351 | * explow.c (get_dynamic_stack_base): Take new `base` argument. | |
3352 | * explow.h (get_dynamic_stack_base): Take new `base` argument. | |
3353 | * sanitizer.def (BUILT_IN_HWASAN_INIT): New. | |
3354 | (BUILT_IN_HWASAN_TAG_MEM): New. | |
3355 | * target.def (target_memtag_tag_size,target_memtag_granule_size, | |
3356 | target_memtag_insert_random_tag,target_memtag_add_tag, | |
3357 | target_memtag_set_tag,target_memtag_extract_tag, | |
3358 | target_memtag_untagged_pointer): New hooks. | |
3359 | * targhooks.c (HWASAN_SHIFT): New. | |
3360 | (HWASAN_SHIFT_RTX): New. | |
3361 | (default_memtag_tag_size): New default hook. | |
3362 | (default_memtag_granule_size): New default hook. | |
3363 | (default_memtag_insert_random_tag): New default hook. | |
3364 | (default_memtag_add_tag): New default hook. | |
3365 | (default_memtag_set_tag): New default hook. | |
3366 | (default_memtag_extract_tag): New default hook. | |
3367 | (default_memtag_untagged_pointer): New default hook. | |
3368 | * targhooks.h (default_memtag_tag_size): New default hook. | |
3369 | (default_memtag_granule_size): New default hook. | |
3370 | (default_memtag_insert_random_tag): New default hook. | |
3371 | (default_memtag_add_tag): New default hook. | |
3372 | (default_memtag_set_tag): New default hook. | |
3373 | (default_memtag_extract_tag): New default hook. | |
3374 | (default_memtag_untagged_pointer): New default hook. | |
3375 | * toplev.c (compile_file): Call hwasan_finish_file when finished. | |
3376 | ||
3377 | 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com> | |
3378 | ||
3379 | * common.opt (flag_sanitize_recover): Default for kernel | |
3380 | hwaddress. | |
3381 | (static-libhwasan): New cli option. | |
3382 | * config/aarch64/aarch64.c (aarch64_can_tag_addresses): New. | |
3383 | (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New. | |
3384 | * config/gnu-user.h (LIBHWASAN_EARLY_SPEC): hwasan equivalent of | |
3385 | asan command line flags. | |
3386 | * cppbuiltin.c (define_builtin_macros_for_compilation_flags): | |
3387 | Add hwasan equivalent of __SANITIZE_ADDRESS__. | |
3388 | * doc/invoke.texi: Document hwasan command line flags. | |
3389 | * doc/tm.texi: Document new hook. | |
3390 | * doc/tm.texi.in: Document new hook. | |
3391 | * flag-types.h (enum sanitize_code): New sanitizer values. | |
3392 | * gcc.c (STATIC_LIBHWASAN_LIBS): New macro. | |
3393 | (LIBHWASAN_SPEC): New macro. | |
3394 | (LIBHWASAN_EARLY_SPEC): New macro. | |
3395 | (SANITIZER_EARLY_SPEC): Update to include hwasan. | |
3396 | (SANITIZER_SPEC): Update to include hwasan. | |
3397 | (sanitize_spec_function): Use hwasan options. | |
3398 | * opts.c (finish_options): Describe conflicts between address | |
3399 | sanitizers. | |
3400 | (find_sanitizer_argument): New. | |
3401 | (report_conflicting_sanitizer_options): New. | |
3402 | (sanitizer_opts): Introduce new sanitizer flags. | |
3403 | (common_handle_option): Add defaults for kernel sanitizer. | |
3404 | * params.opt (hwasan--instrument-stack): New | |
3405 | (hwasan-random-frame-tag): New | |
3406 | (hwasan-instrument-allocas): New | |
3407 | (hwasan-instrument-reads): New | |
3408 | (hwasan-instrument-writes): New | |
3409 | (hwasan-instrument-mem-intrinsics): New | |
3410 | * target.def (HOOK_PREFIX): Add new hook. | |
3411 | (can_tag_addresses): Add new hook under memtag prefix. | |
3412 | * targhooks.c (default_memtag_can_tag_addresses): New. | |
3413 | * targhooks.h (default_memtag_can_tag_addresses): New decl. | |
3414 | * toplev.c (process_options): Ensure hwasan only on | |
3415 | architectures that advertise the possibility. | |
3416 | ||
3417 | 2020-11-25 Matthew Malcomson <matthew.malcomson@arm.com> | |
3418 | ||
3419 | * doc/install.texi: Document new option. | |
3420 | ||
3421 | 2020-11-25 Richard Sandiford <richard.sandiford@arm.com> | |
3422 | ||
3423 | * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move): | |
3424 | Do not optimize LRA subregs. | |
3425 | * config/aarch64/aarch64-sve.md | |
3426 | (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): Tie the input to the | |
3427 | output. | |
3428 | (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): Likewise. | |
3429 | (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise. | |
3430 | (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise. | |
3431 | (*cnot<mode>): Likewise. | |
3432 | (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): Likewise. | |
3433 | (@aarch64_sve_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>): | |
3434 | Likewise. | |
3435 | (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): | |
3436 | Likewise. | |
3437 | (@aarch64_sve_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>): | |
3438 | Likewise. | |
3439 | (@aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): | |
3440 | Likewise. | |
3441 | (@aarch64_sve_<optab>_trunc<SVE_FULL_SDF:mode><SVE_FULL_HSF:mode>): | |
3442 | Likewise. | |
3443 | (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): | |
3444 | Likewise. | |
3445 | (@aarch64_sve_<optab>_nontrunc<SVE_FULL_HSF:mode><SVE_FULL_SDF:mode>): | |
3446 | Likewise. | |
3447 | * config/aarch64/aarch64-sve2.md | |
3448 | (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise. | |
3449 | (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise. | |
3450 | (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise. | |
3451 | (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise. | |
3452 | ||
3453 | 2020-11-25 Jakub Jelinek <jakub@redhat.com> | |
3454 | ||
3455 | PR rtl-optimization/95862 | |
3456 | * internal-fn.c (get_min_precision): For narrowing conversion, recurse | |
3457 | on the operand and if the operand precision is smaller than the | |
3458 | current one, return that smaller precision. | |
3459 | (expand_mul_overflow): For s1 * u2 -> ur and s1 * s2 -> ur cases | |
3460 | if the sum of minimum precisions of both operands is smaller or equal | |
3461 | to the result precision, just perform normal multiplication and | |
3462 | set overflow to the sign bit of the multiplication result. For | |
3463 | u1 * u2 -> sr if both arguments have the MSB known zero, use | |
3464 | normal s1 * s2 -> sr expansion. | |
3465 | ||
3466 | 2020-11-25 Jan Hubicka <jh@suse.cz> | |
3467 | ||
3468 | * cfg.c (free_block): New function. | |
3469 | (clear_edges): Rename to .... | |
3470 | (free_cfg): ... this one; also free BBs and vectors. | |
3471 | (expunge_block): Update comment. | |
3472 | * cfg.h (clear_edges): Rename to ... | |
3473 | (free_cfg): ... this one. | |
3474 | * cgraph.c (release_function_body): Use free_cfg. | |
3475 | ||
3476 | 2020-11-25 Richard Biener <rguenther@suse.de> | |
3477 | ||
3478 | PR middle-end/97579 | |
3479 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Lower | |
3480 | VECTOR_BOOLEAN_TYPE_P, non-vector mode VEC_COND_EXPRs. | |
3481 | ||
3482 | 2020-11-25 Jakub Jelinek <jakub@redhat.com> | |
3483 | ||
3484 | PR middle-end/97943 | |
3485 | * gimple-fold.c (clear_padding_union, clear_padding_type): Error on and | |
3486 | ignore flexible array member fields. Ignore fields with | |
3487 | error_mark_node type. | |
3488 | ||
3489 | 2020-11-24 Ulrich Weigand <ulrich.weigand@de.ibm.com> | |
3490 | ||
3491 | Revert: | |
3492 | 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com> | |
3493 | ||
3494 | * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans. | |
3495 | Clarify conditions when __FAST_MATH__ preprocessor macro is defined. | |
3496 | * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags | |
3497 | and set_unsafe_math_optimizations_flags. | |
3498 | (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid | |
3499 | setting flags already explicitly set on the command line. In the !set | |
3500 | case, also reset x_flag_cx_limited_range and x_flag_excess_precision. | |
3501 | Never reset x_flag_signaling_nans or x_flag_rounding_math. | |
3502 | (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use | |
3503 | it to avoid setting flags already explicitly set on the command line. | |
3504 | (fast_math_flags_set_p): Also test x_flag_cx_limited_range, | |
3505 | x_flag_associative_math, x_flag_reciprocal_math, and | |
3506 | x_flag_rounding_math. | |
3507 | ||
3508 | 2020-11-24 Vladimir Makarov <vmakarov@redhat.com> | |
3509 | ||
3510 | PR bootstrap/97933 | |
3511 | * lra.c (lra_process_new_insns): Stop on the first real insn after | |
3512 | head of e->dest. | |
3513 | ||
3514 | 2020-11-24 Richard Earnshaw <rearnsha@arm.com> | |
3515 | ||
3516 | PR target/97534 | |
3517 | * config/arm/arm.c (arm_split_atomic_op): Use gen_int_mode when | |
3518 | negating a const_int. | |
3519 | ||
3520 | 2020-11-24 Ilya Leoshkevich <iii@linux.ibm.com> | |
3521 | ||
3522 | * config/s390/vector.md: Use vcond_comparison_operator | |
3523 | predicate. | |
3524 | ||
3525 | 2020-11-24 Ulrich Weigand <uweigand@de.ibm.com> | |
3526 | ||
3527 | * doc/invoke.texi (-ffast-math): Remove mention of -fno-signaling-nans. | |
3528 | Clarify conditions when __FAST_MATH__ preprocessor macro is defined. | |
3529 | * opts.c (common_handle_option): Pass OPTS_SET to set_fast_math_flags | |
3530 | and set_unsafe_math_optimizations_flags. | |
3531 | (set_fast_math_flags): Add OPTS_SET argument, and use it to avoid | |
3532 | setting flags already explicitly set on the command line. In the !set | |
3533 | case, also reset x_flag_cx_limited_range and x_flag_excess_precision. | |
3534 | Never reset x_flag_signaling_nans or x_flag_rounding_math. | |
3535 | (set_unsafe_math_optimizations_flags): Add OPTS_SET argument, and use | |
3536 | it to avoid setting flags already explicitly set on the command line. | |
3537 | (fast_math_flags_set_p): Also test x_flag_cx_limited_range, | |
3538 | x_flag_associative_math, x_flag_reciprocal_math, and | |
3539 | x_flag_rounding_math. | |
3540 | ||
3541 | 2020-11-24 Jakub Jelinek <jakub@redhat.com> | |
3542 | ||
3543 | PR target/97950 | |
3544 | * config/i386/i386.md (*setcc_si_1_and): Macroize into... | |
3545 | (*setcc_<mode>_1_and): New define_insn_and_split with SWI24 iterator. | |
3546 | (*setcc_si_1_movzbl): Macroize into... | |
3547 | (*setcc_<mode>_1_movzbl): New define_insn_and_split with SWI24 | |
3548 | iterator. | |
3549 | ||
3550 | 2020-11-24 Jakub Jelinek <jakub@redhat.com> | |
3551 | ||
3552 | * gimple-fold.c (clear_padding_flush): If a word contains only 0 | |
3553 | or 0xff bytes of padding other than all set, all clear, all set | |
3554 | followed by all clear or all clear followed by all set, don't emit | |
3555 | a RMW operation on the whole word or parts of it, but instead | |
3556 | clear the individual bytes of padding. For paddings of one byte | |
3557 | size, don't use char[1] and {}, but instead just char and 0. | |
3558 | ||
3559 | 2020-11-24 Thomas Schwinge <thomas@codesourcery.com> | |
3560 | ||
3561 | * omp-expand.c (expand_oacc_for): More explicit checking of which | |
3562 | OMP constructs we're expecting. | |
3563 | ||
3564 | 2020-11-24 Thomas Schwinge <thomas@codesourcery.com> | |
3565 | ||
3566 | * doc/install.texi (Prerequisites) <Tcl>: Add comment. | |
3567 | ||
3568 | 2020-11-24 Jakub Jelinek <jakub@redhat.com> | |
3569 | ||
3570 | PR tree-optimization/96929 | |
3571 | * fold-const.c (wide_int_binop) <case LSHIFT_EXPR, case RSHIFT_EXPR>: | |
3572 | Return false on negative second argument rather than trying to handle | |
3573 | it as shift in the other direction. | |
3574 | * tree-ssa-ccp.c (bit_value_binop) <case LSHIFT_EXPR, | |
3575 | case RSHIFT_EXPR>: Punt on negative shift count rather than trying | |
3576 | to handle it as shift in the other direction. | |
3577 | * match.pd (-1 >> x to -1): Remove tree_expr_nonnegative_p check. | |
3578 | ||
3579 | 2020-11-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
3580 | ||
3581 | PR tree-optimization/97849 | |
3582 | * tree-if-conv.c (tree_if_conversion): Move ssa_name | |
3583 | replacement code from ifcvt_local_dce to this function | |
3584 | before calling do_rpo_vn. | |
3585 | ||
3586 | 2020-11-24 Martin Sebor <msebor@redhat.com> | |
3587 | ||
3588 | * tree-cfg.c (dump_function_to_file): Print type attributes | |
3589 | and return type. | |
3590 | ||
3591 | 2020-11-23 Martin Jambor <mjambor@suse.cz> | |
3592 | ||
3593 | * ipa-prop.h (ipa_pass_through_data): Expand comment describing | |
3594 | operation. | |
3595 | * ipa-prop.c (analyze_agg_content_value): Detect new special case and | |
3596 | encode it as ASSERT_EXPR. | |
3597 | * ipa-cp.c (values_equal_for_ipcp_p): Move before | |
3598 | ipa_get_jf_arith_result. | |
3599 | (ipa_get_jf_arith_result): Special case ASSERT_EXPR. | |
3600 | ||
3601 | 2020-11-23 Jeff Law <law@redhat.com> | |
3602 | ||
3603 | * config/h8300/h8300.c (h8300_rtx_costs): Handle the various | |
3604 | comparison rtx codes too. | |
3605 | ||
3606 | 2020-11-23 Jan Hubicka <jh@suse.cz> | |
3607 | ||
3608 | * ipa-prop.c (build_agg_jump_func_from_list, | |
3609 | ipa_read_jump_function): Reserve agg.items precisely. | |
3610 | * ipa-prop.h (ipa_node_params::~ipa_node_params): Release descriptors | |
3611 | (ipa_edge_args::~ipa_edge_args): Release agg.items. | |
3612 | ||
3613 | 2020-11-23 Jan Hubicka <jh@suse.cz> | |
3614 | ||
3615 | * lto-streamer-in.c (input_cfg): Do not init ssa operands. | |
3616 | (input_function): Do not init tree_ssa and set in_ssa_p. | |
3617 | (input_ssa_names): Do it here. | |
3618 | * tree-ssa.c (init_tree_ssa): Add additional SIZE parameter, default | |
3619 | to 0 | |
3620 | * tree-ssanames.c (init_ssanames): Do not round size up to 50, allocate | |
3621 | precisely. | |
3622 | * tree-ssa.h (init_tree_ssa): Update prototype. | |
3623 | ||
3624 | 2020-11-23 Nathan Sidwell <nathan@acm.org> | |
3625 | ||
3626 | * diagnostic.c (diagnostic_report_current_module): Adjust for C++ | |
3627 | module importation. | |
3628 | ||
3629 | 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
3630 | ||
3631 | * config/msp430/msp430.c (msp430_section_attr): Don't warn for "lower" | |
3632 | attribute used with "noinit" or "persistent" attributes. | |
3633 | (msp430_persist_attr): Remove. | |
3634 | (attr_lower_exclusions): Remove ATTR_PERSIST exclusion. | |
3635 | (attr_upper_exclusions): Likewise. | |
3636 | (attr_either_exclusions): Likewise. | |
3637 | (attr_persist_exclusions): Remove. | |
3638 | (msp430_attribute_table): Remove ATTR_PERSIST handling. | |
3639 | (msp430_handle_generic_attribute): Remove ATTR_PERSIST section conflict | |
3640 | handling. | |
3641 | (TARGET_ASM_INIT_SECTIONS): Remove. | |
3642 | (msp430_init_sections): Remove. | |
3643 | (msp430_select_section): Use default_elf_select_section for decls with | |
3644 | the "persistent" attribute. | |
3645 | (msp430_section_type_flags): Remove ".persistent" section handling. | |
3646 | * doc/extend.texi (MSP430 Variable Attributes): Remove "noinit" and | |
3647 | "persistent" documentation. | |
3648 | ||
3649 | 2020-11-23 Richard Biener <rguenther@suse.de> | |
3650 | ||
3651 | * tree-vect-slp.c (maybe_push_to_hybrid_worklist): Skip | |
3652 | debug stmts. | |
3653 | ||
3654 | 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
3655 | ||
3656 | * doc/extend.texi (Common Variable Attributes): Document the | |
3657 | "persistent" variable attribute. | |
3658 | * doc/sourcebuild.texi (Effective-Target Keywords): Document | |
3659 | the "persistent" effective target keyword. | |
3660 | * tree.h (DECL_PERSISTENT_P): Define. | |
3661 | * varasm.c (bss_initializer_p): Return false for a | |
3662 | DECL_PERSISTENT_P decl initialized to zero. | |
3663 | (default_section_type_flags): Handle the ".persistent" section. | |
3664 | (default_elf_select_section): Likewise. | |
3665 | (default_unique_section): Likewise. | |
3666 | ||
3667 | 2020-11-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
3668 | ||
3669 | * tree.h (DECL_NOINIT_P): Define. | |
3670 | * varasm.c (DECL_NOINIT_P): Check DECL_NOINIT_P before using | |
3671 | unnamed bss/lcomm sections for bss_initializer variables. | |
3672 | (default_elf_select_section): Use DECL_NOINIT_P instead of | |
3673 | looking up attribute for .noinit section selection. | |
3674 | (default_unique_section): Check DECL_NOINIT_P for .noinit | |
3675 | section selection. | |
3676 | ||
3677 | 2020-11-23 Matthew Malcomson <matthew.malcomson@arm.com> | |
3678 | ||
3679 | * doc/install.texi: Document bootstrap-asan option. | |
3680 | ||
3681 | 2020-11-22 Uroš Bizjak <ubizjak@gmail.com> | |
3682 | ||
3683 | PR target/97873 | |
3684 | * config/i386/i386.md (abs<mode>2): Use SWI48DWI mode iterator. | |
3685 | (*abs<dwi>2_doubleword): Use DWIH mode iterator. | |
3686 | (<maxmin:code><mode>3): Use SWI48DWI mode iterator. | |
3687 | (*<maxmin:code><dwi>3_doubleword): Use DWIH mode iterator. | |
3688 | ||
3689 | 2020-11-22 Austin Law <austinklaw@gmail.com> | |
3690 | ||
3691 | * config/h8300/addsub.md: Turn existing patterns into | |
3692 | define_insn_and_split style patterns where the splitter | |
3693 | adds a clobber of the condition code register. Drop "cc" | |
3694 | attribute. Add _clobber_flags patterns to match output of | |
3695 | the splitters. | |
3696 | (add<mod>3_incdec): Remove pattern | |
3697 | (adds/subs splitter): Only run before reload. | |
3698 | * config/h8300/bitfield.md: Turn existing patterns into | |
3699 | define_insn_and_split style patterns where the splitter | |
3700 | adds a clobber of the condition code register. Drop "cc" | |
3701 | attribute. Add _clobber_flags patterns to match output | |
3702 | of the splitters. | |
3703 | (cstoreqi4, cstorehi4, cstoresi4): Comment out | |
3704 | (*bstzhireg, *cmpstz, *bstz, *bistz, *cmpcondset): Likewise | |
3705 | (*condbset, *cmpcondbclr, *condbclr): Likewise. | |
3706 | (*cmpcondbsetreg, *condbsetreg, *cmpcondbclrreg): Likewise. | |
3707 | (*condbclrreg): Likewise. | |
3708 | * config/h8300/combiner.md: Turn existing patterns into | |
3709 | define_insn_and_split style patterns where the splitter | |
3710 | adds a clobber of the condition code register. Drop "cc" | |
3711 | attribute. Add _clobber_flags patterns to match output of | |
3712 | the splitters. Add appropriate CC register clobbers to | |
3713 | existing splitters. | |
3714 | (*addsi3_and_r_1): Disable for now. | |
3715 | (*addsi3_and_not_r_1, bit-test branches): Likewise. | |
3716 | * config/h8300/divmod.md: Turn existing patterns into | |
3717 | define_insn_and_split style patterns where the splitter | |
3718 | adds a clobber of the condition code register. Drop "cc" | |
3719 | attribute. Add _clobber_flags patterns to match output of | |
3720 | the splitters. | |
3721 | * config/h8300/extensions.md: Turn existing patterns into | |
3722 | define_insn_and_split style patterns where the splitter | |
3723 | adds a clobber of the condition code register. Drop "cc" | |
3724 | attribute. Add _clobber_flags patterns to match output of | |
3725 | the splitters. | |
3726 | * config/h8300/genmova.sh: Drop "cc" attribute from patterns. | |
3727 | * config/h8300/mova.md: Drop "cc" attribute from patterns. | |
3728 | * config/h8300/h8300-modes.def: Add CCZN and CCZNV modes. | |
3729 | * config/h8300/h8300-protos.h (output_plussi): Update prototype. | |
3730 | (compute_plussi_length): Likewise. | |
3731 | (h8300_select_cc_mode): Add prototype. | |
3732 | (compute_a_shift_cc): Remove prototype | |
3733 | (cmpute_logical_op_cc): Likewise. | |
3734 | * config/h8300/h8300.c (names_big): Add "cc" register. | |
3735 | (names_extended, names_upper_extended): Likewise. | |
3736 | (h8300_emit_stack_adjustment): Be more selective about setting | |
3737 | RTX_FRAME_RELATED_P. | |
3738 | (h8300_print_operand): Handle CCZN mode | |
3739 | (h8300_select_cc_mode): New function. | |
3740 | (notice_update_cc): if-0 out. Only kept for reference purposes. | |
3741 | (h8300_expand_store): Likewise. | |
3742 | (h8300_binary_length): Handle new insn forms. | |
3743 | (output_plussi): Add argument for NEED_FLAGS and handle that case. | |
3744 | (compute_plussi_length): Likewise. | |
3745 | (compute_logical_op_cc): Return integer. | |
3746 | (TARGET_FLAGS_REGNUM): Define. | |
3747 | * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Bump for cc register. | |
3748 | (FIXED_REGISTERS, CALL_USED_REGISTERS): Handle cc register. | |
3749 | (REG_ALLOC_ORDER, REGISTER_NAMES): Likewise. | |
3750 | (SELECT_CC_MODE): Define. | |
3751 | * config/h8300/h8300.md: Add CC_REG. | |
3752 | Do not include peepholes.md for now. | |
3753 | * config/h8300/jumpcall.md (cbranchqi4): Consolidate into | |
3754 | cbranch<mode>4. | |
3755 | (cbranchhi4, cbranchsi4): Likewise. | |
3756 | (cbranch<mode>4): New expander. | |
3757 | (branch): New define_insn_and_split for use before reload. | |
3758 | (branch_1, branch_1_false): New patterns to match splitter output. | |
3759 | Remove code to manage cc_status.flags. | |
3760 | * config/h8300/logical.md: Turn existing patterns into | |
3761 | define_insn_and_split style patterns where the splitter | |
3762 | adds a clobber of the condition code register. Drop "cc" | |
3763 | attribute. Add _clobber_flags patterns to match output of | |
3764 | the splitters. Move various peepholes into this file. | |
3765 | * config/h8300/movepush.md: Turn existing patterns into | |
3766 | define_insn_and_split style patterns where the splitter | |
3767 | adds a clobber of the condition code register. Drop "cc" | |
3768 | attribute. Add _clobber_flags patterns to match output of | |
3769 | the splitters. | |
3770 | * config/h8300/multiply.md: Turn existing patterns into | |
3771 | define_insn_and_split style patterns where the splitter | |
3772 | adds a clobber of the condition code register. Drop "cc" | |
3773 | attribute. Add _clobber_flags patterns to match output of | |
3774 | the splitters. | |
3775 | * config/h8300/other.md: Turn existing patterns into | |
3776 | define_insn_and_split style patterns where the splitter | |
3777 | adds a clobber of the condition code register. Drop "cc" | |
3778 | attribute. Add _clobber_flags patterns to match output of | |
3779 | the splitters. | |
3780 | * config/h8300/peepholes.md: Remove peepholes that were moved | |
3781 | elsewhere. | |
3782 | * config/h8300/predicates.md (simple_memory_operand): New. | |
3783 | * config/h8300/proepi.md: Drop "cc" attribute setting. | |
3784 | * config/h8300/shiftrotate.md: Turn existing patterns into | |
3785 | define_insn_and_split style patterns where the splitter | |
3786 | adds a clobber of the condition code register. Drop "cc" | |
3787 | attribute. Add _clobber_flags patterns to match output of | |
3788 | the splitters. | |
3789 | * config/h8300/testcompare.md: Turn existing patterns into | |
3790 | define_insn_and_split style patterns where the splitter | |
3791 | adds a clobber of the condition code register. Drop "cc" | |
3792 | attribute. Add _clobber_flags patterns to match output of | |
3793 | the splitters. Disable various patterns for now. | |
3794 | Move some peepholes that were previously in peepholes.md here. | |
3795 | * config/h8300/save.md: New file. | |
3796 | ||
3797 | 2020-11-22 Jakub Jelinek <jakub@redhat.com> | |
3798 | ||
3799 | PR tree-optimization/95853 | |
3800 | * tree-ssa-math-opts.c (uaddsub_overflow_check_p): Add maxval | |
3801 | argument, if non-NULL, instead look for r > maxval or r <= maxval | |
3802 | comparisons. | |
3803 | (match_uaddsub_overflow): Pattern recognize even other forms of | |
3804 | __builtin_add_overflow, in particular when addition is performed | |
3805 | in a wider type and result compared to maximum of the narrower | |
3806 | type. | |
3807 | ||
3808 | 2020-11-22 Jeff Law <law@redhat.com> | |
3809 | ||
3810 | * config/h8300/jumpcall.md (branch_true, branch_false): Revert | |
3811 | recent change. Ensure operand[0] is always the target label. | |
3812 | ||
3813 | 2020-11-22 Iain Sandoe <iain@sandoe.co.uk> | |
3814 | ||
3815 | * config/darwin-c.c (struct f_align_stack): Rename | |
3816 | to type from align_stack to f_align_stack. | |
3817 | (push_field_alignment): Likewise. | |
3818 | (pop_field_alignment): Likewise. | |
3819 | ||
3820 | 2020-11-21 Marek Polacek <polacek@redhat.com> | |
3821 | ||
3822 | PR c++/94695 | |
3823 | * doc/invoke.texi: Update the -Wrange-loop-construct description. | |
3824 | ||
3825 | 2020-11-21 Jan Hubicka <jh@suse.cz> | |
3826 | ||
3827 | * tree-ssa-alias.c (ao_compare::compare_ao_refs, | |
3828 | ao_compare::hash_ao_ref): Use OEP_MATCH_SIDE_EFFECTS. | |
3829 | ||
3830 | 2020-11-21 Jan Hubicka <jh@suse.cz> | |
3831 | ||
3832 | * ipa-icf.c (sem_function::equals_wpa): Do not compare ODR type with | |
3833 | -fno-devirtualize. | |
3834 | (sem_item_optimizer::update_hash_by_addr_refs): Hash anonymous ODR | |
3835 | types by TYPE_UID of their main variant. | |
3836 | ||
3837 | 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com> | |
3838 | ||
3839 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
3840 | Enable vector pair memcpy/memmove expansion. | |
3841 | ||
3842 | 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com> | |
3843 | ||
3844 | * config/rs6000/mma.md (unspec): Add assemble/extract UNSPECs. | |
3845 | (movoi): Change to movoo. | |
3846 | (*movpoi): Change to *movoo. | |
3847 | (movxi): Change to movxo. | |
3848 | (*movpxi): Change to *movxo. | |
3849 | (mma_assemble_pair): Change to OO mode. | |
3850 | (*mma_assemble_pair): New define_insn_and_split. | |
3851 | (mma_disassemble_pair): New define_expand. | |
3852 | (*mma_disassemble_pair): New define_insn_and_split. | |
3853 | (mma_assemble_acc): Change to XO mode. | |
3854 | (*mma_assemble_acc): Change to XO mode. | |
3855 | (mma_disassemble_acc): New define_expand. | |
3856 | (*mma_disassemble_acc): New define_insn_and_split. | |
3857 | (mma_<acc>): Change to XO mode. | |
3858 | (mma_<vv>): Change to XO mode. | |
3859 | (mma_<avv>): Change to XO mode. | |
3860 | (mma_<pv>): Change to OO mode. | |
3861 | (mma_<apv>): Change to XO/OO mode. | |
3862 | (mma_<vvi4i4i8>): Change to XO mode. | |
3863 | (mma_<avvi4i4i8>): Change to XO mode. | |
3864 | (mma_<vvi4i4i2>): Change to XO mode. | |
3865 | (mma_<avvi4i4i2>): Change to XO mode. | |
3866 | (mma_<vvi4i4>): Change to XO mode. | |
3867 | (mma_<avvi4i4>): Change to XO mode. | |
3868 | (mma_<pvi4i2>): Change to XO/OO mode. | |
3869 | (mma_<apvi4i2>): Change to XO/OO mode. | |
3870 | (mma_<vvi4i4i4>): Change to XO mode. | |
3871 | (mma_<avvi4i4i4>): Change to XO mode. | |
3872 | * config/rs6000/predicates.md (input_operand): Allow opaque. | |
3873 | (mma_disassemble_output_operand): New predicate. | |
3874 | * config/rs6000/rs6000-builtin.def: | |
3875 | Changes to disassemble builtins. | |
3876 | * config/rs6000/rs6000-call.c (rs6000_return_in_memory): | |
3877 | Disallow __vector_pair/__vector_quad as return types. | |
3878 | (rs6000_promote_function_mode): Remove function return type | |
3879 | check because we can't test it here any more. | |
3880 | (rs6000_function_arg): Do not allow __vector_pair/__vector_quad | |
3881 | as as function arguments. | |
3882 | (rs6000_gimple_fold_mma_builtin): | |
3883 | Handle mma_disassemble_* builtins. | |
3884 | (rs6000_init_builtins): Create types for XO/OO modes. | |
3885 | * config/rs6000/rs6000-modes.def: DElete OI, XI, | |
3886 | POI, and PXI modes, and create XO and OO modes. | |
3887 | * config/rs6000/rs6000-string.c (expand_block_move): | |
3888 | Update to OO mode. | |
3889 | * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_uncached): | |
3890 | Update for XO/OO modes. | |
3891 | (rs6000_rtx_costs): Make UNSPEC_MMA_XXSETACCZ cost 0. | |
3892 | (rs6000_modes_tieable_p): Update for XO/OO modes. | |
3893 | (rs6000_debug_reg_global): Update for XO/OO modes. | |
3894 | (rs6000_setup_reg_addr_masks): Update for XO/OO modes. | |
3895 | (rs6000_init_hard_regno_mode_ok): Update for XO/OO modes. | |
3896 | (reg_offset_addressing_ok_p): Update for XO/OO modes. | |
3897 | (rs6000_emit_move): Update for XO/OO modes. | |
3898 | (rs6000_preferred_reload_class): Update for XO/OO modes. | |
3899 | (rs6000_split_multireg_move): Update for XO/OO modes. | |
3900 | (rs6000_mangle_type): Update for opaque types. | |
3901 | (rs6000_invalid_conversion): Update for XO/OO modes. | |
3902 | * config/rs6000/rs6000.h (VECTOR_ALIGNMENT_P): | |
3903 | Update for XO/OO modes. | |
3904 | * config/rs6000/rs6000.md (RELOAD): Update for XO/OO modes. | |
3905 | ||
3906 | 2020-11-21 Aaron Sawdey <acsawdey@linux.ibm.com> | |
3907 | ||
3908 | * typeclass.h: Add opaque_type_class. | |
3909 | * builtins.c (type_to_class): Identify opaque type class. | |
3910 | * dwarf2out.c (is_base_type): Handle opaque types. | |
3911 | (gen_type_die_with_usage): Handle opaque types. | |
3912 | * expr.c (count_type_elements): Opaque types should | |
3913 | never have initializers. | |
3914 | * ipa-devirt.c (odr_types_equivalent_p): No type-specific handling | |
3915 | for opaque types is needed as it eventually checks the underlying | |
3916 | mode which is what is important. | |
3917 | * tree-streamer.c (record_common_node): Handle opaque types. | |
3918 | * tree.c (type_contains_placeholder_1): Handle opaque types. | |
3919 | (type_cache_hasher::equal): No additional comparison needed for | |
3920 | opaque types. | |
3921 | ||
3922 | 2020-11-20 Michael Meissner <meissner@linux.ibm.com> | |
3923 | ||
3924 | * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Add missing | |
3925 | XSCMP* cases for IEEE 128-bit long double. | |
3926 | ||
3927 | 2020-11-20 Jason Merrill <jason@redhat.com> | |
3928 | ||
3929 | PR c++/97918 | |
3930 | * dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list | |
3931 | after gen_scheduled_generic_parms_dies. | |
3932 | ||
3933 | 2020-11-20 Martin Sebor <msebor@redhat.com> | |
3934 | ||
3935 | PR middle-end/97879 | |
3936 | * tree-core.h (enum attribute_flags): Add ATTR_FLAG_INTERNAL. | |
3937 | ||
3938 | 2020-11-20 Jan Hubicka <jh@suse.cz> | |
3939 | ||
3940 | * ipa-icf-gimple.c (func_checker::hash_operand): Improve hashing of | |
3941 | decls. | |
3942 | ||
3943 | 2020-11-20 Jan Hubicka <jh@suse.cz> | |
3944 | ||
3945 | * ipa-icf-gimple.c (func_checker::compare_decl): Do not compare types | |
3946 | of local variables. | |
3947 | ||
3948 | 2020-11-20 Nathan Sidwell <nathan@acm.org> | |
3949 | ||
3950 | * doc/invoke.texi: Replace a couple of @code with @command | |
3951 | ||
3952 | 2020-11-20 Tamar Christina <tamar.christina@arm.com> | |
3953 | ||
3954 | * tree-vect-slp.c (vectorizable_slp_permutation): Update types on nodes | |
3955 | when needed. | |
3956 | ||
3957 | 2020-11-20 Richard Biener <rguenther@suse.de> | |
3958 | ||
3959 | * tree-vect-slp.c (maybe_push_to_hybrid_worklist): New function. | |
3960 | (vect_detect_hybrid_slp): Use it. Perform a backward walk | |
3961 | over the IL. | |
3962 | ||
3963 | 2020-11-20 Richard Biener <rguenther@suse.de> | |
3964 | ||
3965 | * tree-vect-slp.c (vect_print_slp_tree): Also dump | |
3966 | SLP_TREE_REPRESENTATIVE. | |
3967 | ||
3968 | 2020-11-20 Jakub Jelinek <jakub@redhat.com> | |
3969 | ||
3970 | PR libstdc++/88101 | |
3971 | * builtins.def (BUILT_IN_CLEAR_PADDING): New built-in function. | |
3972 | * gimplify.c (gimplify_call_expr): Rewrite single argument | |
3973 | BUILT_IN_CLEAR_PADDING into two-argument variant. | |
3974 | * gimple-fold.c (clear_padding_unit, clear_padding_buf_size): New | |
3975 | const variables. | |
3976 | (struct clear_padding_struct): New type. | |
3977 | (clear_padding_flush, clear_padding_add_padding, | |
3978 | clear_padding_emit_loop, clear_padding_type, | |
3979 | clear_padding_union, clear_padding_real_needs_padding_p, | |
3980 | clear_padding_type_may_have_padding_p, | |
3981 | gimple_fold_builtin_clear_padding): New functions. | |
3982 | (gimple_fold_builtin): Handle BUILT_IN_CLEAR_PADDING. | |
3983 | * doc/extend.texi (__builtin_clear_padding): Document. | |
3984 | ||
3985 | 2020-11-20 Jakub Jelinek <jakub@redhat.com> | |
3986 | ||
3987 | PR target/97528 | |
3988 | * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY, require | |
3989 | first POST_MODIFY operand is a REG and is equal to the first operand | |
3990 | of PLUS. | |
3991 | ||
3992 | 2020-11-20 Eric Botcazou <ebotcazou@adacore.com> | |
3993 | ||
3994 | * gimple-ssa-store-merging.c (struct merged_store_group): Add | |
3995 | new 'consecutive' field. | |
3996 | (merged_store_group): Set it to true. | |
3997 | (do_merge): Set it to false if the store is not consecutive and | |
3998 | set string_concatenation to false in this case. | |
3999 | (merge_into): Call do_merge on entry. | |
4000 | (merge_overlapping): Likewise. | |
4001 | ||
4002 | 2020-11-20 Jan Hubicka <jh@suse.cz> | |
4003 | ||
4004 | * ipa-icf-gimple.c (func_checker::operand_equal_p): Fix comment. | |
4005 | ||
4006 | 2020-11-20 Jan Hubicka <jh@suse.cz> | |
4007 | ||
4008 | * ipa-icf-gimple.c (func_checker::hash_operand): Hash gimple clobber. | |
4009 | (func_checker::operand_equal_p): Special case gimple clobber. | |
4010 | ||
4011 | 2020-11-20 Uroš Bizjak <ubizjak@gmail.com> | |
4012 | ||
4013 | PR target/97873 | |
4014 | * config/i386/i386.md (*neg<mode>2_2): Rename from | |
4015 | "*neg<mode>2_cmpz". Use CCGOCmode instead of CCZmode. | |
4016 | (*negsi2_zext): Rename from *negsi2_cmpz_zext. | |
4017 | Use CCGOCmode instead of CCZmode. | |
4018 | (*neg<mode>_ccc_1): New insn pattern. | |
4019 | (*neg<dwi>2_doubleword): Use *neg<mode>_ccc_1. | |
4020 | (abs<mode>2): Add FLAGS_REG clobber. | |
4021 | Use TARGET_CMOVE insn predicate. | |
4022 | (*abs<mode>2_1): New insn_and_split pattern. | |
4023 | (*absdi2_doubleword): Ditto. | |
4024 | (<maxmin:code><mode>3): Use SWI48x mode iterator. | |
4025 | (*<maxmin:code><mode>3): Use SWI48 mode iterator. | |
4026 | * config/i386/i386-features.c | |
4027 | (general_scalar_chain::compute_convert_gain): Handle ABS code. | |
4028 | (general_scalar_chain::convert_insn): Ditto. | |
4029 | (general_scalar_to_vector_candidate_p): Ditto. | |
4030 | ||
4031 | 2020-11-20 Jakub Jelinek <jakub@redhat.com> | |
4032 | ||
4033 | PR other/97911 | |
4034 | * configure.ac: In SERIAL_LIST use lang words without .serial | |
4035 | suffix. Change $lang.prev from a target to variable and instead | |
4036 | of depending on *.serial expand to the *.serial variable if | |
4037 | the word is in the SERIAL_LIST at all, otherwise to nothing. | |
4038 | * configure: Regenerated. | |
4039 | ||
4040 | 2020-11-20 Kewen Lin <linkw@linux.ibm.com> | |
4041 | ||
4042 | * config/rs6000/rs6000.md (p8_mtvsrd_df): Fix insn type. | |
4043 | ||
4044 | 2020-11-20 Martin Uecker <muecker@gwdg.de> | |
4045 | ||
4046 | * gimplify.c (gimplify_modify_expr_rhs): Optimizie | |
4047 | NOP_EXPRs that contain compound literals. | |
4048 | ||
4049 | 2020-11-19 Jakub Jelinek <jakub@redhat.com> | |
4050 | ||
4051 | PR tree-optimization/91029 | |
4052 | * range-op.cc (operator_trunc_mod::op1_range): Don't require signed | |
4053 | types, nor require that op2 >= 0. Implement (a % b) >= x && x > 0 | |
4054 | implies a >= x and (a % b) <= x && x < 0 implies a <= x. | |
4055 | (operator_trunc_mod::op2_range): New method. | |
4056 | ||
4057 | 2020-11-19 Andrew MacLeod <amacleod@redhat.com> | |
4058 | ||
4059 | PR tree-optimization/93781 | |
4060 | * range-op.cc (get_shift_range): Rename from | |
4061 | undefined_shift_range_check and now return valid shift ranges. | |
4062 | (operator_lshift::fold_range): Use result from get_shift_range. | |
4063 | (operator_rshift::fold_range): Ditto. | |
4064 | ||
4065 | 2020-11-19 Jan Hubicka <jh@suse.cz> | |
4066 | ||
4067 | * fold-const.c (operand_compare::operand_equal_p): Fix thinko in | |
4068 | COMPONENT_REF handling and guard types_same_for_odr by | |
4069 | virtual_method_call_p. | |
4070 | (operand_compare::hash_operand): Likewise. | |
4071 | ||
4072 | 2020-11-19 Jakub Jelinek <jakub@redhat.com> | |
4073 | ||
4074 | PR c/97860 | |
4075 | * tree.c (array_type_nelts): For complete arrays with zero min | |
4076 | and NULL max and zero size return -1. | |
4077 | ||
4078 | 2020-11-19 Nathan Sidwell <nathan@acm.org> | |
4079 | ||
4080 | * configure.ac: Add tests for fstatat, sighandler_t, O_CLOEXEC, | |
4081 | unix-domain and ipv6 sockets. | |
4082 | * config.in: Rebuilt. | |
4083 | * configure: Rebuilt. | |
4084 | ||
4085 | 2020-11-19 Dimitar Dimitrov <dimitar@dinux.eu> | |
4086 | ||
4087 | * config/pru/alu-zext.md: Add lmbd patterns for zero_extend | |
4088 | variants. | |
4089 | * config/pru/pru.c (enum pru_builtin): Add HALT and LMBD. | |
4090 | (pru_init_builtins): Ditto. | |
4091 | (pru_builtin_decl): Ditto. | |
4092 | (pru_expand_builtin): Ditto. | |
4093 | * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Define PRU | |
4094 | value for CLZ with zero value parameter. | |
4095 | * config/pru/pru.md: Add halt, lmbd and clz patterns. | |
4096 | * doc/extend.texi: Document PRU builtins. | |
4097 | ||
4098 | 2020-11-19 Richard Sandiford <richard.sandiford@arm.com> | |
4099 | ||
4100 | * doc/invoke.texi (-fvect-cost-model): Add a very-cheap model. | |
4101 | * common.opt (fvect-cost-model=): Add very-cheap as a possible option. | |
4102 | (fsimd-cost-model=): Likewise. | |
4103 | (vect_cost_model): Add very-cheap. | |
4104 | * flag-types.h (vect_cost_model): Add VECT_COST_MODEL_VERY_CHEAP. | |
4105 | Put the values in order of increasing aggressiveness. | |
4106 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use | |
4107 | range checks when comparing against VECT_COST_MODEL_CHEAP. | |
4108 | (vect_prune_runtime_alias_test_list): Do not allow any alias | |
4109 | checks for the very-cheap cost model. | |
4110 | * tree-vect-loop.c (vect_analyze_loop_costing): Do not allow | |
4111 | any peeling for the very-cheap cost model. Also require one | |
4112 | iteration of the vector loop to pay for itself. | |
4113 | ||
4114 | 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com> | |
4115 | ||
4116 | * config/aarch64/aarch64.c (neoversen1_tunings): Use new | |
4117 | cortexa76_extra_costs. | |
4118 | (neoversev1_tunings): Likewise. | |
4119 | (neoversen2_tunines): Likewise. | |
4120 | * config/arm/aarch-cost-tables.h (cortexa76_extra_costs): | |
4121 | add new costs. | |
4122 | ||
4123 | 2020-11-19 Wilco Dijkstra <wdijkstr@arm.com> | |
4124 | ||
4125 | * config/aarch64/aarch64.c (aarch64_expand_cpymem): Cleanup code and | |
4126 | comments, tweak expansion decisions and improve tail expansion. | |
4127 | ||
4128 | 2020-11-19 Richard Biener <rguenther@suse.de> | |
4129 | ||
4130 | * fold-const.c (operand_compare::hash_operand): Fix typo. | |
4131 | ||
4132 | 2020-11-19 Richard Biener <rguenther@suse.de> | |
4133 | ||
4134 | * tree-ssa-reassoc.c (get_rank): Refactor to consistently | |
4135 | use the cache and dump ranks assigned. | |
4136 | ||
4137 | 2020-11-19 Jan Hubicka <jh@suse.cz> | |
4138 | ||
4139 | * fold-const.c (operand_compare::operand_equal_p): More OBJ_TYPE_REF | |
4140 | matching to correct place; drop OEP_ADDRESS_OF for TOKEN, OBJECT and | |
4141 | class. | |
4142 | (operand_compare::hash_operand): Hash ODR type for OBJ_TYPE_REF. | |
4143 | ||
4144 | 2020-11-19 Joel Hutton <joel.hutton@arm.com> | |
4145 | ||
4146 | * config/aarch64/aarch64-simd.md: Add vec_widen_lshift_hi/lo<mode> | |
4147 | patterns. | |
4148 | * tree-vect-stmts.c (vectorizable_conversion): Fix for widen_lshift | |
4149 | case. | |
4150 | ||
4151 | 2020-11-19 Joel Hutton <joel.hutton@arm.com> | |
4152 | ||
4153 | * doc/generic.texi: Document new widen_plus/minus_lo/hi tree codes. | |
4154 | * doc/md.texi: Document new widenening add/subtract hi/lo optabs. | |
4155 | * expr.c (expand_expr_real_2): Add widen_add, widen_subtract cases. | |
4156 | * optabs-tree.c (optab_for_tree_code): Add case for widening optabs. | |
4157 | * optabs.def (OPTAB_D): Define vectorized widen add, subtracts. | |
4158 | * tree-cfg.c (verify_gimple_assign_binary): Add case for widening adds, | |
4159 | subtracts. | |
4160 | * tree-inline.c (estimate_operator_cost): Add case for widening adds, | |
4161 | subtracts. | |
4162 | * tree-vect-generic.c (expand_vector_operations_1): Add case for | |
4163 | widening adds, subtracts | |
4164 | * tree-vect-patterns.c (vect_recog_widen_add_pattern): New recog | |
4165 | pattern. | |
4166 | (vect_recog_widen_sub_pattern): New recog pattern. | |
4167 | (vect_recog_average_pattern): Update widened add code. | |
4168 | (vect_recog_average_pattern): Update widened add code. | |
4169 | * tree-vect-stmts.c (vectorizable_conversion): Add case for widened add, | |
4170 | subtract. | |
4171 | (supportable_widening_operation): Add case for widened add, subtract. | |
4172 | * tree.def | |
4173 | (WIDEN_PLUS_EXPR): New tree code. | |
4174 | (WIDEN_MINUS_EXPR): New tree code. | |
4175 | (VEC_WIDEN_ADD_HI_EXPR): New tree code. | |
4176 | (VEC_WIDEN_PLUS_LO_EXPR): New tree code. | |
4177 | (VEC_WIDEN_MINUS_HI_EXPR): New tree code. | |
4178 | (VEC_WIDEN_MINUS_LO_EXPR): New tree code. | |
4179 | ||
4180 | 2020-11-19 Joel Hutton <joel.hutton@arm.com> | |
4181 | ||
4182 | * config/aarch64/aarch64-simd.md: New patterns | |
4183 | vec_widen_saddl_lo/hi_<mode>. | |
4184 | ||
4185 | 2020-11-19 Richard Biener <rguenther@suse.de> | |
4186 | ||
4187 | PR tree-optimization/97901 | |
4188 | * tree-ssa-propagate.c (clean_up_loop_closed_phi): Compute | |
4189 | dominators and use replace_uses_by. | |
4190 | ||
4191 | 2020-11-19 Eric Botcazou <ebotcazou@adacore.com> | |
4192 | ||
4193 | * dwarf2out.h (struct fixed_point_type_info) <scale_factor>: Turn | |
4194 | numerator and denominator into a tree. | |
4195 | * dwarf2out.c (base_type_die): In the case of a fixed-point type | |
4196 | with arbitrary scale factor, call add_scalar_info on numerator and | |
4197 | denominator to emit the appropriate attributes. | |
4198 | ||
4199 | 2020-11-19 Richard Biener <rguenther@suse.de> | |
4200 | ||
4201 | PR tree-optimization/97897 | |
4202 | * tree-complex.c (complex_propagate::visit_stmt): Make sure | |
4203 | abnormally used SSA names are VARYING. | |
4204 | (complex_propagate::visit_phi): Likewise. | |
4205 | * tree-ssa.c (verify_phi_args): Verify PHI arguments on abnormal | |
4206 | edges are SSA names. | |
4207 | ||
4208 | 2020-11-19 Uroš Bizjak <ubizjak@gmail.com> | |
4209 | ||
4210 | * config/i386/i386.md (*<absneg:code><mode>2_i387_1): | |
4211 | Disable for TARGET_SSE_MATH modes. | |
4212 | ||
4213 | 2020-11-19 Jeff Law <law@redhat.com> | |
4214 | ||
4215 | * config/h8300/constraints.md (R constraint): Add argument to call | |
4216 | to h8300_shift_needs_scratch_p. | |
4217 | (S and T constraints): Similary. | |
4218 | * config/h8300/h8300-protos.h: Update h8300_shift_needs_scratch_p | |
4219 | prototype. | |
4220 | * config/h8300/h8300.c (expand_a_shift): Emit a different pattern | |
4221 | if the shift does not require a scratch register. | |
4222 | (h8300_shift_needs_scratch_p): Refine to be more accurate. | |
4223 | * config/h8300/shiftrotate.md (shiftqi_noscratch): New pattern. | |
4224 | (shifthi_noscratch, shiftsi_noscratch): Similarly. | |
4225 | ||
4226 | 2020-11-18 Roger Sayle <roger@nextmovesoftware.com> | |
4227 | ||
4228 | PR middle-end/85811 | |
4229 | * fold-const.c (tree_expr_finite_p): New function to test whether | |
4230 | a tree expression must be finite, i.e. not a FP NaN or infinity. | |
4231 | (tree_expr_infinite_p): New function to test whether a tree | |
4232 | expression must be infinite, i.e. a FP infinity. | |
4233 | (tree_expr_maybe_infinite_p): New function to test whether a tree | |
4234 | expression may be infinite, i.e. a FP infinity. | |
4235 | (tree_expr_signaling_nan_p): New function to test whether a tree | |
4236 | expression must evaluate to a signaling NaN (sNaN). | |
4237 | (tree_expr_maybe_signaling_nan_p): New function to test whether a | |
4238 | tree expression may be a signaling NaN (sNaN). | |
4239 | (tree_expr_nan_p): New function to test whether a tree expression | |
4240 | must evaluate to a (quiet or signaling) NaN. | |
4241 | (tree_expr_maybe_nan_p): New function to test whether a tree | |
4242 | expression me be a (quiet or signaling) NaN. | |
4243 | (tree_binary_nonnegative_warnv_p) [MAX_EXPR]: In the presence | |
4244 | of NaNs, MAX_EXPR is only guaranteed to be non-negative, if both | |
4245 | operands are non-negative. | |
4246 | (tree_call_nonnegative_warnv_p) [CASE_CFN_FMAX,CASE_CFN_FMAX_FN]: | |
4247 | In the presence of signaling NaNs, fmax is only guaranteed to be | |
4248 | non-negative if both operands are negative. In the presence of | |
4249 | quiet NaNs, fmax is non-negative if either operand is non-negative | |
4250 | and not a qNaN, or both operands are non-negative. | |
4251 | * fold-const.h (tree_expr_finite_p, tree_expr_infinite_p, | |
4252 | tree_expr_maybe_infinite_p, tree_expr_signaling_nan_p, | |
4253 | tree_expr_maybe_signaling_nan_p, tree_expr_nan_p, | |
4254 | tree_expr_maybe_nan_p): Prototype new functions here. | |
4255 | * builtins.c (fold_builtin_classify) [BUILT_IN_ISINF]: Fold to | |
4256 | a constant if argument is known to be (or not to be) an Infinity. | |
4257 | [BUILT_IN_ISFINITE]: Fold to a constant if argument is known to | |
4258 | be (or not to be) finite. | |
4259 | [BUILT_IN_ISNAN]: Fold to a constant if argument is known to be | |
4260 | (or not to be) a NaN. | |
4261 | (fold_builtin_fpclassify): Check tree_expr_maybe_infinite_p and | |
4262 | tree_expr_maybe_nan_p instead of HONOR_INFINITIES and HONOR_NANS | |
4263 | respectively. | |
4264 | (fold_builtin_unordered_cmp): Fold UNORDERED_EXPR to a constant | |
4265 | when its arguments are known to be (or not be) NaNs. Check | |
4266 | tree_expr_maybe_nan_p instead of HONOR_NANS when choosing between | |
4267 | unordered and regular forms of comparison operators. | |
4268 | * match.pd (ordered(x,y)->true/false): Constant fold ORDERED_EXPR | |
4269 | if its operands are known to be (or not to be) NaNs. | |
4270 | (unordered(x,y)->true/false): Constant fold UNORDERED_EXPR if its | |
4271 | operands are known to be (or not to be) NaNs. | |
4272 | (sqrt(x)*sqrt(x)->x): Check tree_expr_maybe_signaling_nan_p instead | |
4273 | of HONOR_SNANS. | |
4274 | ||
4275 | 2020-11-18 Jakub Jelinek <jakub@redhat.com> | |
4276 | ||
4277 | PR tree-optimization/91029 | |
4278 | PR tree-optimization/97888 | |
4279 | * range-op.cc (operator_trunc_mod::op1_range): Only set op1 | |
4280 | range to >= 0 if lhs is > 0, rather than >= 0. Fix up comments. | |
4281 | ||
4282 | 2020-11-18 Jakub Jelinek <jakub@redhat.com> | |
4283 | ||
4284 | * opts.h (struct cl_var): New type. | |
4285 | (cl_vars): Declare. | |
4286 | * optc-gen.awk: Generate cl_vars array. | |
4287 | ||
4288 | 2020-11-18 Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com> | |
4289 | ||
4290 | PR tree-optimization/96671 | |
4291 | * match.pd (three xor patterns): New patterns. | |
4292 | ||
4293 | 2020-11-18 Jakub Jelinek <jakub@redhat.com> | |
4294 | ||
4295 | * optc-save-gen.awk: Initialize var_opt_init. In | |
4296 | cl_optimization_stream_out for params with default values larger than | |
4297 | 10, xor the default value with the actual parameter value. In | |
4298 | cl_optimization_stream_in repeat the above xor. | |
4299 | ||
4300 | 2020-11-18 Jakub Jelinek <jakub@redhat.com> | |
4301 | ||
4302 | * configure.ac: Add $lang.prev rules, INDEX.$lang and SERIAL_LIST and | |
4303 | SERIAL_COUNT variables to Make-hooks. | |
4304 | (--enable-link-serialization): New configure option. | |
4305 | * Makefile.in (DO_LINK_SERIALIZATION, LINK_PROGRESS): New variables. | |
4306 | * doc/install.texi (--enable-link-serialization): Document. | |
4307 | * configure: Regenerated. | |
4308 | ||
4309 | 2020-11-18 Vladimir Makarov <vmakarov@redhat.com> | |
4310 | ||
4311 | PR target/97870 | |
4312 | * lra-constraints.c (curr_insn_transform): Do not delete asm goto | |
4313 | with wrong constraints. Nullify it saving CFG. | |
4314 | ||
4315 | 2020-11-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
4316 | ||
4317 | * config/msp430/msp430.md (mulhi3): New. | |
4318 | (mulsi3): New. | |
4319 | (mulsidi3): Rename to *mulsidi3_inline. | |
4320 | (umulsidi3): Rename to *umulsidi3_inline. | |
4321 | (mulsidi3): New define_expand. | |
4322 | (umulsidi3): New define_expand. | |
4323 | ||
4324 | 2020-11-18 Richard Biener <rguenther@suse.de> | |
4325 | ||
4326 | PR tree-optimization/97886 | |
4327 | * tree-vect-loop.c (vectorizable_lc_phi): Properly assign | |
4328 | vector types to invariants for SLP. | |
4329 | ||
4330 | 2020-11-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
4331 | ||
4332 | * config.gcc (*-*-dragonfly*): Add dragonfly-d.o and t-dragonfly. | |
4333 | * config/dragonfly-d.c: New file. | |
4334 | * config/t-dragonfly: New file. | |
4335 | ||
4336 | 2020-11-18 Jakub Jelinek <jakub@redhat.com> | |
4337 | ||
4338 | PR middle-end/97862 | |
4339 | * omp-expand.c (expand_omp_for_init_vars): Don't use the sqrt path | |
4340 | if number of iterations is constant 0. | |
4341 | ||
4342 | 2020-11-18 Kito Cheng <kito.cheng@sifive.com> | |
4343 | ||
4344 | * common/config/riscv/riscv-common.c (riscv_ext_version): New. | |
4345 | (riscv_ext_version_table): Ditto. | |
4346 | (get_default_version): Ditto. | |
4347 | (riscv_subset_t::implied_p): New field. | |
4348 | (riscv_subset_t::riscv_subset_t): Init implied_p. | |
4349 | (riscv_subset_list::add): New. | |
4350 | (riscv_subset_list::handle_implied_ext): Pass riscv_subset_t | |
4351 | instead of separated argument. | |
4352 | (riscv_subset_list::to_string): Handle zifencei and zicsr, and | |
4353 | omit version if version is unknown. | |
4354 | (riscv_subset_list::parsing_subset_version): New argument `ext`, | |
4355 | remove default_major_version and default_minor_version, get | |
4356 | default version info via get_default_version. | |
4357 | (riscv_subset_list::parse_std_ext): Update argument for | |
4358 | parsing_subset_version calls. | |
4359 | Handle 2.2 ISA spec, always enable zicsr and zifencei, they are | |
4360 | included in baseline ISA in that time. | |
4361 | (riscv_subset_list::parse_multiletter_ext): Update argument for | |
4362 | `parsing_subset_version` and `add` calls. | |
4363 | (riscv_subset_list::parse): Adjust argument for | |
4364 | riscv_subset_list::handle_implied_ext call. | |
4365 | * config.gcc (riscv*-*-*): Handle --with-isa-spec=. | |
4366 | * config.in (HAVE_AS_MISA_SPEC): New. | |
4367 | (HAVE_AS_MARCH_ZIFENCEI): Ditto. | |
4368 | * config/riscv/riscv-opts.h (riscv_isa_spec_class): New. | |
4369 | (riscv_isa_spec): Ditto. | |
4370 | * config/riscv/riscv.h (HAVE_AS_MISA_SPEC): New. | |
4371 | (ASM_SPEC): Pass -misa-spec if gas supported. | |
4372 | * config/riscv/riscv.opt (riscv_isa_spec_class) New. | |
4373 | * configure.ac (HAVE_AS_MARCH_ZIFENCEI): New test. | |
4374 | (HAVE_AS_MISA_SPEC): Ditto. | |
4375 | * configure: Regen. | |
4376 | ||
4377 | 2020-11-18 Kito Cheng <kito.cheng@sifive.com> | |
4378 | ||
4379 | * common/config/riscv/riscv-common.c (riscv_implied_info): | |
4380 | d and f implied zicsr. | |
4381 | (riscv_ext_flag_table): Handle zicsr and zifencei. | |
4382 | * config/riscv/riscv-opts.h (MASK_ZICSR): New. | |
4383 | (MASK_ZIFENCEI): Ditto. | |
4384 | (TARGET_ZICSR): Ditto. | |
4385 | (TARGET_ZIFENCEI): Ditto. | |
4386 | * config/riscv/riscv.md (clear_cache): Check TARGET_ZIFENCEI. | |
4387 | (fence_i): Ditto. | |
4388 | * config/riscv/riscv.opt (riscv_zi_subext): New. | |
4389 | ||
4390 | 2020-11-18 Kito Cheng <kito.cheng@sifive.com> | |
4391 | ||
4392 | * common/config/riscv/riscv-common.c (single_letter_subset_rank): New. | |
4393 | (multi_letter_subset_rank): Ditto. | |
4394 | (subset_cmp): Ditto. | |
4395 | (riscv_subset_list::add): Insert subext in canonical ordering. | |
4396 | (riscv_subset_list::parse_std_ext): Move handle_implied_ext to ... | |
4397 | (riscv_subset_list::parse): ... here. | |
4398 | ||
4399 | 2020-11-18 Jiufu Guo <guojiufu@linux.ibm.com> | |
4400 | ||
4401 | * cfgloop.h (loop_optimizer_finalize): Add flag argument. | |
4402 | * loop-init.c (loop_optimizer_finalize): Call clean_up_loop_closed_phi. | |
4403 | * tree-cfgcleanup.h (clean_up_loop_closed_phi): New declare. | |
4404 | * tree-ssa-loop.c (tree_ssa_loop_done): Call loop_optimizer_finalize | |
4405 | with flag argument. | |
4406 | * tree-ssa-propagate.c (clean_up_loop_closed_phi): New function. | |
4407 | ||
4408 | 2020-11-17 Sebastian Pop <spop@amazon.com> | |
4409 | ||
4410 | * config.gcc: add configure flags --with-{cpu,arch,tune}-{32,64} | |
4411 | as alias flags for --with-{cpu,arch,tune} on AArch64. | |
4412 | * doc/install.texi: Document new flags for aarch64. | |
4413 | ||
4414 | 2020-11-17 Sebastian Pop <spop@amazon.com> | |
4415 | ||
4416 | * config.gcc: Add --with-tune to AArch64 configure flags. | |
4417 | ||
4418 | 2020-11-17 Andrew MacLeod <amacleod@redhat.com> | |
4419 | ||
4420 | PR tree-optimization/91029 | |
4421 | * range-op.cc (operator_trunc_mod::op1_range): New. | |
4422 | ||
4423 | 2020-11-17 Jan Hubicka <jh@suse.cz> | |
4424 | ||
4425 | * ipa-icf.c (sem_function::hash_stmt): Fix conditional on | |
4426 | variably_modified_type_p. | |
4427 | ||
4428 | 2020-11-17 Nathan Sidwell <nathan@acm.org> | |
4429 | ||
4430 | * tree.h (cache_integer_cst): Add defaulted might_duplicate parm. | |
4431 | * tree.c (cache_integer_cst): Return the integer cst, add | |
4432 | might_duplicate parm to permit finding a small duplicate. | |
4433 | ||
4434 | 2020-11-17 Andrew MacLeod <amacleod@redhat.com> | |
4435 | ||
4436 | PR tree-optimization/83072 | |
4437 | * range-op.cc (wi_optimize_and_or): Remove zero from IOR range when | |
4438 | mask is non-zero. | |
4439 | ||
4440 | 2020-11-17 Joseph Myers <joseph@codesourcery.com> | |
4441 | ||
4442 | * ginclude/float.h (CR_DECIMAL_DIG): Also define for | |
4443 | [__STDC_WANT_IEC_60559_EXT__]. | |
4444 | ||
4445 | 2020-11-17 Joseph Myers <joseph@codesourcery.com> | |
4446 | ||
4447 | * ginclude/float.h [__STDC_VERSION__ > 201710L] (FLT_IS_IEC_60559, | |
4448 | DBL_IS_IEC_60559, LDBL_IS_IEC_60559): New macros. | |
4449 | ||
4450 | 2020-11-17 Aaron Sawdey <acsawdey@linux.ibm.com> | |
4451 | ||
4452 | PR target/96791 | |
4453 | * mode-classes.def: Add MODE_OPAQUE. | |
4454 | * machmode.def: Add OPAQUE_MODE. | |
4455 | * tree.def: Add OPAQUE_TYPE for types that will use | |
4456 | MODE_OPAQUE. | |
4457 | * doc/generic.texi: Document OPAQUE_TYPE. | |
4458 | * doc/rtl.texi: Document MODE_OPAQUE. | |
4459 | * machmode.h: Add OPAQUE_MODE_P(). | |
4460 | * genmodes.c (complete_mode): Add MODE_OPAQUE. | |
4461 | (opaque_mode): New function. | |
4462 | * tree.c (tree_code_size): Add OPAQUE_TYPE. | |
4463 | * tree.h: Add OPAQUE_TYPE_P(). | |
4464 | * stor-layout.c (int_mode_for_mode): Treat MODE_OPAQUE modes | |
4465 | like BLKmode. | |
4466 | * ira.c (find_moveable_pseudos): Treat MODE_OPAQUE modes more | |
4467 | like integer/float modes here. | |
4468 | * dbxout.c (dbxout_type): Treat OPAQUE_TYPE like VOID_TYPE. | |
4469 | * tree-pretty-print.c (dump_generic_node): Treat OPAQUE_TYPE | |
4470 | like like other types. | |
4471 | ||
4472 | 2020-11-17 Jan Hubicka <hubicka@ucw.cz> | |
4473 | Martin Liska <mliska@suse.cz> | |
4474 | ||
4475 | * ipa-icf.c: Include data-streamer.h and alias.h. | |
4476 | (sem_function::sem_function): Initialize memory_access_types | |
4477 | and m_alias_sets_hash. | |
4478 | (sem_function::hash_stmt): For memory accesses and when going to | |
4479 | do lto streaming add base and ref types into memory_access_types. | |
4480 | (sem_item_optimizer::write_summary): Stream memory access types. | |
4481 | (sem_item_optimizer::read_section): Likewise and also iniitalize | |
4482 | m_alias_sets_hash. | |
4483 | (sem_item_optimizer::execute): Call | |
4484 | sem_item_optimizer::update_hash_by_memory_access_type. | |
4485 | (sem_item_optimizer::update_hash_by_memory_access_type): Updat. | |
4486 | * ipa-icf.h (sem_function): Add memory_access_types and | |
4487 | m_alias_sets_hash. | |
4488 | ||
4489 | 2020-11-17 Jan Hubicka <jh@suse.cz> | |
4490 | ||
4491 | PR bootstrap/97857 | |
4492 | * ipa-devirt.c (odr_based_tbaa_p): Do not ICE when | |
4493 | odr_hash is not initialized | |
4494 | * ipa-utils.h (type_with_linkage_p): Do not sanity check | |
4495 | CXX_ODR_P. | |
4496 | * tree-streamer-out.c (pack_ts_type_common_value_fields): Set | |
4497 | CXX_ODR_P according to the canonical type. | |
4498 | ||
4499 | 2020-11-17 Nathan Sidwell <nathan@acm.org> | |
4500 | ||
4501 | * langhooks-def.h (LANG_HOOKS_PREPROCESS_MAIN_FILE) | |
4502 | (LANG_HOOKS_PREPROCESS_OPTIONS, LANG_HOOKS_PREPROCESS_UNDEF) | |
4503 | (LANG_HOOKS_PREPROCESS_TOKEN): New. | |
4504 | (LANG_HOOKS_INITIALIZER): Add them. | |
4505 | * langhooks.h (struct lang_hooks): Add preprocess_main_file, | |
4506 | preprocess_options, preprocess_undef, preprocess_token hooks. Add | |
4507 | enum PT_flags. | |
4508 | ||
4509 | 2020-11-17 Richard Sandiford <richard.sandiford@arm.com> | |
4510 | ||
4511 | PR tree-optimization/97693 | |
4512 | * tree-vect-stmts.c (vectorizable_call): Pass the required vectype | |
4513 | to vect_get_vec_defs_for_operand. | |
4514 | ||
4515 | 2020-11-17 Liu Hao <lh_mouse@126.com> | |
4516 | ||
4517 | * config/i386/msformat-c.c: Add more length modifiers. | |
4518 | ||
4519 | 2020-11-17 Tamar Christina <tamar.christina@arm.com> | |
4520 | ||
4521 | PR driver/97574 | |
4522 | * gcc.c (convert_filename): Don't add suffix to things that are | |
4523 | not files. | |
4524 | (not_actual_file_p): Use supplied argument. | |
4525 | ||
4526 | 2020-11-17 Haochen Gui <guihaoc@gcc.gnu.org> | |
4527 | ||
4528 | * final.c (final_scan_insn_1): Set jump table relocatable as the | |
4529 | second argument of targetm.asm_out.function_rodata_section. | |
4530 | * output.h (default_function_rodata_section, | |
4531 | default_no_function_rodata_section): Add the second argument to the | |
4532 | declarations. | |
4533 | * target.def (function_rodata_section): Change the doc and add | |
4534 | the second argument. | |
4535 | * doc/tm.texi: Regenerate. | |
4536 | * varasm.c (jumptable_relocatable): Implement. | |
4537 | (default_function_rodata_section): Add the second argument | |
4538 | and the support for relocatable read only sections. | |
4539 | (default_no_function_rodata_section): Add the second argument. | |
4540 | (function_mergeable_rodata_prefix): Set the second argument to false. | |
4541 | * config/mips/mips.c (mips_function_rodata_section): Add the second | |
4542 | arugment and set it to false. | |
4543 | * config/s390/s390.c (targetm.asm_out.function_rodata_section): Set | |
4544 | the second argument to false. | |
4545 | * config/s390/s390.md: Likewise. | |
4546 | ||
4547 | 2020-11-17 liuhongt <hongtao.liu@intel.com> | |
4548 | ||
4549 | PR target/97194 | |
4550 | * config/i386/i386-expand.c (ix86_expand_vector_set_var): New function. | |
4551 | * config/i386/i386-protos.h (ix86_expand_vector_set_var): New Decl. | |
4552 | * config/i386/predicates.md (vec_setm_operand): New predicate, | |
4553 | true for const_int_operand or register_operand under TARGET_AVX2. | |
4554 | * config/i386/sse.md (vec_set<mode>): Support both constant | |
4555 | and variable index vec_set. | |
4556 | ||
4557 | 2020-11-17 Martin Sebor <msebor@redhat.com> | |
4558 | ||
4559 | * tree-ssa-uninit.c (maybe_warn_operand): Call is_empty_type. | |
4560 | * tree.c (default_is_empty_type): Rename... | |
4561 | (is_empty_type): ...to this. | |
4562 | * tree.h (is_empty_type): Declare. | |
4563 | ||
4564 | 2020-11-17 Martin Sebor <msebor@redhat.com> | |
4565 | ||
4566 | PR middle-end/95673 | |
4567 | * tree-ssa-strlen.c (used_only_for_zero_equality): Rename... | |
4568 | (use_in_zero_equality): ...to this. Add a default argument. | |
4569 | (handle_builtin_memcmp): Adjust to the name change above. | |
4570 | (handle_builtin_string_cmp): Same. | |
4571 | (maybe_warn_pointless_strcmp): Same. Pass in an explicit argument. | |
4572 | ||
4573 | 2020-11-17 Joseph Myers <joseph@codesourcery.com> | |
4574 | ||
4575 | * ginclude/float.h (DEC32_SNAN, DEC64_SNAN, DEC128_SNAN): New C2x | |
4576 | macros. | |
4577 | ||
4578 | 2020-11-17 Joseph Myers <joseph@codesourcery.com> | |
4579 | ||
4580 | * ginclude/float.h (INFINITY, NAN, FLT_SNAN, DBL_SNAN, LDBL_SNAN) | |
4581 | (FLT16_SNAN, FLT32_SNAN, FLT64_SNAN, FLT128_SNAN, FLT32X_SNAN) | |
4582 | (FLT64X_SNAN, FLT128X_SNAN, DEC_INFINITY, DEC_NAN): New C2x | |
4583 | macros. | |
4584 | * doc/sourcebuild.texi (Effective-Target Keywords): Document inff. | |
4585 | ||
4586 | 2020-11-17 Armin Brauns via Gcc-patches <gcc-patches@gcc.gnu.org> | |
4587 | ||
4588 | * gcc.c: Document %T spec file directive. | |
4589 | * doc/invoke.texi: Remove %p, %P spec file directives. | |
4590 | Add %M, %R, %V, %nSTR, %>S, %<S*, %{%:function(args):X}, %@{...} spec | |
4591 | file directives add sanitize, version-compare, include, gt and | |
4592 | debug-level-gt spec functions. | |
4593 | ||
4594 | 2020-11-16 Roger Sayle <roger@nextmovesoftware.com> | |
4595 | ||
4596 | PR rtl-optimization/92180 | |
4597 | * config/i386/i386.c (ix86_hardreg_mov_ok): New function to | |
4598 | determine whether (set DST SRC) should be allowed at this point. | |
4599 | * config/i386/i386-protos.h (ix86_hardreg_mov_ok): Prototype here. | |
4600 | * config/i386/i386-expand.c (ix86_expand_move): Check whether | |
4601 | this is a complex set of a likely spilled hard register, and if | |
4602 | so place the value in a pseudo, and load the hard reg from it. | |
4603 | * config/i386/i386.md (*movdi_internal, *movsi_internal) | |
4604 | (*movhi_internal, *movqi_internal): Make these instructions | |
4605 | conditional on ix86_hardreg_mov_ok. | |
4606 | (*lea<mode>): Make this define_insn_and_split conditional on | |
4607 | ix86_hardreg_mov_ok. | |
4608 | ||
4609 | 2020-11-16 Martin Liska <mliska@suse.cz> | |
4610 | ||
4611 | * params.opt: Add missing dot. | |
4612 | ||
4613 | 2020-11-16 Jan Hubicka <jh@suse.cz> | |
4614 | ||
4615 | * ipa-modref.c (escape_point): New type. | |
4616 | (modref_lattice): New type. | |
4617 | (escape_entry): New type. | |
4618 | (escape_summary): New type. | |
4619 | (escape_summaries_t): New type. | |
4620 | (escape_summaries): New static variable. | |
4621 | (eaf_flags_useful_p): New function. | |
4622 | (modref_summary::useful_p): Add new check_flags | |
4623 | attribute; check eaf_flags for usefulness. | |
4624 | (modref_summary_lto): Add arg_flags. | |
4625 | (modref_summary_lto::useful_p): Add new check_flags | |
4626 | attribute; check eaf_flags for usefulness. | |
4627 | (dump_modref_edge_summaries): New function. | |
4628 | (remove_modref_edge_summaries): New function. | |
4629 | (ignore_retval_p): New predicate. | |
4630 | (ignore_stores_p): Also ignore for const. | |
4631 | (remove_summary): Call remove_modref_edge_summaries. | |
4632 | (modref_lattice::init): New member function. | |
4633 | (modref_lattice::release): New member unction. | |
4634 | (modref_lattice::dump): New member function. | |
4635 | (modref_lattice::add_escape_point): New member function. | |
4636 | (modref_lattice::merge): Two new member functions. | |
4637 | (modref_lattice::merge_deref): New member functions. | |
4638 | (modref_lattice::merge_direct_load): New member function. | |
4639 | (modref_lattice::merge_direct_store): New member function. | |
4640 | (call_lhs_flags): Rename to ... | |
4641 | (merge_call_lhs_flags): ... this one; reimplement using | |
4642 | modreflattice. | |
4643 | (analyze_ssa_name_flags): Replace KNOWN_FLAGS param by LATTICE; | |
4644 | add IPA parametr; use modref_lattice. | |
4645 | (analyze_parms): New parameter IPA and SUMMARY_LTO; update for | |
4646 | modref_lattice; initialize escape_summary. | |
4647 | (analyze_function): Allocate escape_summaries; update uses of useful_p. | |
4648 | (modref_write_escape_summary): New function. | |
4649 | (modref_read_escape_summary): New function. | |
4650 | (modref_write): Write escape summary. | |
4651 | (read_section): Read escape summary. | |
4652 | (modref_read): Initialie escape_summaries. | |
4653 | (remap_arg_flags): New function. | |
4654 | (update_signature): Use it. | |
4655 | (escape_map): New structure. | |
4656 | (update_escape_summary_1, update_escape_summary): New functions. | |
4657 | (ipa_merge_modref_summary_after_inlining): Merge escape summaries. | |
4658 | (propagate_unknown_call): Do not remove useless summaries. | |
4659 | (remove_useless_summaries): Remove them here. | |
4660 | (modref_propagate_in_scc): Update; do not dump scc. | |
4661 | (modref_propagate_dump_scc): New function. | |
4662 | (modref_merge_call_site_flags): New function. | |
4663 | (modref_propagate_flags_in_scc): New function. | |
4664 | (pass_ipa_modref::execute): Use modref_propagate_flags_in_scc | |
4665 | and modref_propagate_dump_scc; delete escape_summaries. | |
4666 | (ipa_modref_c_finalize): Remove escape_summaries. | |
4667 | * ipa-modref.h (modref_summary): Update prototype of useful_p. | |
4668 | * params.opt (param=modref-max-escape-points): New param. | |
4669 | * doc/invoke.texi (modref-max-escape-points): Document. | |
4670 | ||
4671 | 2020-11-16 Jan Hubicka <jh@suse.cz> | |
4672 | ||
4673 | PR middle-end/97840 | |
4674 | * ipa-modref.c (analyze_ssa_name_flags): Skip clobbers if inlining | |
4675 | is done. | |
4676 | * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Make stmt gcall; | |
4677 | skip const calls and unused arguments. | |
4678 | (warn_uninitialized_vars): Update prototype. | |
4679 | ||
4680 | 2020-11-16 Richard Biener <rguenther@suse.de> | |
4681 | ||
4682 | * tree-vectorizer.h (vect_gather_slp_loads): Declare. | |
4683 | * tree-vect-loop.c (vect_analyze_loop_2): Call | |
4684 | vect_gather_slp_loads. | |
4685 | * tree-vect-slp.c (vect_build_slp_instance): Do not gather | |
4686 | SLP loads here. | |
4687 | (vect_gather_slp_loads): Remove wrapper, new function. | |
4688 | (vect_slp_analyze_bb_1): Call it. | |
4689 | ||
4690 | 2020-11-16 Richard Biener <rguenther@suse.de> | |
4691 | ||
4692 | * tree-ssa-loop-im.c (analyze_memory_references): Add | |
4693 | store_motion parameter and elide unnecessary work. | |
4694 | (tree_ssa_lim_initialize): Likewise. | |
4695 | (loop_invariant_motion_in_fun): Pass down store_motion. | |
4696 | ||
4697 | 2020-11-16 Martin Liska <mliska@suse.cz> | |
4698 | ||
4699 | * params.opt: All modref parameters miss Optimization and Param | |
4700 | keyword as seen in testsuite failure. | |
4701 | ||
4702 | 2020-11-16 Jan Hubicka <jh@suse.cz> | |
4703 | ||
4704 | * params.opt (-param=modref-max-depth=): Add missing full stop. | |
4705 | ||
4706 | 2020-11-16 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
4707 | ||
4708 | * common.opt (fprofile-info-section): New. | |
4709 | * coverage.c (build_gcov_info_var_registration): New. | |
4710 | (coverage_obj_init): Evaluate profile_info_section and use | |
4711 | build_gcov_info_var_registration(). | |
4712 | * doc/invoke.texi (fprofile-info-section): Document. | |
4713 | * opts.c (common_handle_option): Process fprofile-info-section | |
4714 | option. | |
4715 | ||
4716 | 2020-11-16 Richard Biener <rguenther@suse.de> | |
4717 | ||
4718 | PR tree-optimization/97838 | |
4719 | * tree-vect-slp.c (vect_slp_build_vertices): Properly handle | |
4720 | not backwards reachable cycles. | |
4721 | (vect_optimize_slp): Check a node is leaf before marking it | |
4722 | visited. | |
4723 | ||
4724 | 2020-11-16 Martin Liska <mliska@suse.cz> | |
4725 | ||
4726 | PR tree-optimization/97736 | |
4727 | * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): | |
4728 | Prefer bit tests. | |
4729 | ||
4730 | 2020-11-16 Richard Biener <rguenther@suse.de> | |
4731 | ||
4732 | PR tree-optimization/97835 | |
4733 | * tree-vect-loop.c (vectorizable_induction): Convert step | |
4734 | scalars rather than step vector. | |
4735 | ||
4736 | 2020-11-16 Richard Biener <rguenther@suse.de> | |
4737 | ||
4738 | PR tree-optimization/97830 | |
4739 | * tree-ssa-sccvn.c (vn_reference_eq): Check for incomplete | |
4740 | types before comparing TYPE_SIZE. | |
4741 | ||
4742 | 2020-11-16 Cui,Lili <lili.cui@intel.com> | |
4743 | ||
4744 | * config/i386/i386.h: Add PREFETCHW to march=broadwell. | |
4745 | * doc/invoke.texi: Put PREFETCHW back to relation arch. | |
4746 | ||
4747 | 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
4748 | ||
4749 | * config/msp430/msp430.c (msp430_output_labelref): Don't process mspabi | |
4750 | hwmult library function names into GCC-style names. | |
4751 | ||
4752 | 2020-11-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
4753 | ||
4754 | * config/msp430/msp430.c (msp430_use_16bit_hwmult): New. | |
4755 | (use_32bit_hwmult): Rename to.. | |
4756 | (msp430_use_32bit_hwmult): ..this. | |
4757 | (msp430_muldiv_costs): Use msp430_use_16bit_hwmult and | |
4758 | msp430_use_32bit_hwmult. | |
4759 | (msp430_expand_helper): Use msp430_use_16bit_hwmult and | |
4760 | msp430_use_32bit_hwmult. | |
4761 | (msp430_output_labelref): Use msp430_use_32bit_hwmult. | |
4762 | ||
4763 | 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org> | |
4764 | ||
4765 | * config/vax/vax.c (vax_rtx_costs): Use `rtx_code' rather than | |
4766 | `int' for `code'. | |
4767 | ||
4768 | 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org> | |
4769 | ||
4770 | * config/vax/vax.c (vax_output_int_add) <E_DImode>: Fix a typo | |
4771 | in NO_EXTERNAL_INDIRECT_ADDRESS. | |
4772 | ||
4773 | 2020-11-15 Maciej W. Rozycki <macro@linux-mips.org> | |
4774 | ||
4775 | * config/vax/vax.c (vax_output_int_add) <E_SImode>: Also check | |
4776 | `operands[2]' for being symbolic with PIC rather than checking | |
4777 | `operands[1]' twice. | |
4778 | ||
4779 | 2020-11-15 Aldy Hernandez <aldyh@redhat.com> | |
4780 | ||
4781 | * vr-values.c (vr_values::extract_range_builtin): Rename to... | |
4782 | (vr_values::extract_range_from_ubsan_builtin): ...this. | |
4783 | Remove everything but UBSAN code. | |
4784 | (vr_values::extract_range_basic): Call ranger version for | |
4785 | everything except UBSAN built-ins. | |
4786 | * vr-values.h (class vr_values): Rename extract_range_builtin to | |
4787 | extract_range_from_ubsan_builtin. | |
4788 | ||
4789 | 2020-11-15 Vladimir N. Makarov <vmakarov@redhat.com> | |
4790 | ||
4791 | * lra.c (lra_process_new_insns): Don't put reload insns in the | |
4792 | last empty BB. | |
4793 | ||
4794 | 2020-11-15 Jan Hubicka <jh@suse.cz> | |
4795 | ||
4796 | * ipa-modref.c (analyze_ssa_name_flags): Make return to clear | |
4797 | EAF_UNUSED flag. | |
4798 | ||
4799 | 2020-11-14 Jan Hubicka <jh@suse.cz> | |
4800 | ||
4801 | * gimple.c: Include ipa-modref-tree.h and ipa-modref.h. | |
4802 | (gimple_call_arg_flags): Use modref to determine flags. | |
4803 | * ipa-modref.c: Include gimple-ssa.h, tree-phinodes.h, | |
4804 | tree-ssa-operands.h, stringpool.h and tree-ssanames.h. | |
4805 | (analyze_ssa_name_flags): Declare. | |
4806 | (modref_summary::useful_p): Summary is also useful if arg flags are | |
4807 | known. | |
4808 | (dump_eaf_flags): New function. | |
4809 | (modref_summary::dump): Use it. | |
4810 | (get_modref_function_summary): Be read for current_function_decl | |
4811 | being NULL. | |
4812 | (memory_access_to): New function. | |
4813 | (deref_flags): New function. | |
4814 | (call_lhs_flags): New function. | |
4815 | (analyze_parms): New function. | |
4816 | (analyze_function): Use it. | |
4817 | * ipa-modref.h (struct modref_summary): Add arg_flags. | |
4818 | * doc/invoke.texi (ipa-modref-max-depth): Document. | |
4819 | * params.opt (ipa-modref-max-depth): New param. | |
4820 | ||
4821 | 2020-11-14 Jakub Jelinek <jakub@redhat.com> | |
4822 | ||
4823 | PR debug/97599 | |
4824 | * dwarf2out.c (gen_subprogram_die): Call | |
4825 | gen_unspecified_parameters_die even if not early dwarf, but only | |
4826 | if subr_die is a newly created DIE. | |
4827 | ||
4828 | 2020-11-14 Monk Chiang <monk.chiang@sifive.com> | |
4829 | ||
4830 | PR target/97682 | |
4831 | * config/riscv/riscv.h (RISCV_PROLOGUE_TEMP_REGNUM): Change register | |
4832 | to t0. | |
4833 | (RISCV_CALL_ADDRESS_TEMP_REGNUM): New Marco, define t1 register. | |
4834 | (RISCV_CALL_ADDRESS_TEMP): Use it for call instructions. | |
4835 | * config/riscv/riscv.c (riscv_legitimize_call_address): Use | |
4836 | RISCV_CALL_ADDRESS_TEMP. | |
4837 | (riscv_compute_frame_info): Change temporary register to t0 form t1. | |
4838 | (riscv_trampoline_init): Adjust comment. | |
4839 | ||
4840 | 2020-11-14 Jim Wilson <jimw@sifive.com> | |
4841 | cooper.joshua <cooper.joshua@linux.alibaba.com> | |
4842 | ||
4843 | * config/riscv/riscv.c (riscv_asan_shadow_offset): New. | |
4844 | (TARGET_ASAN_SHADOW_OFFSET): New. | |
4845 | * doc/tm.texi: Regenerated. | |
4846 | * target.def (asan_shadow_offset); Mention that it can return zero. | |
4847 | * toplev.c (process_options): Check for and handle zero return from | |
4848 | targetm.asan_shadow_offset call. | |
4849 | ||
4850 | 2020-11-14 Jakub Jelinek <jakub@redhat.com> | |
4851 | ||
4852 | * gimplify.c (gimplify_omp_for): Add OMP_CLAUSE_ALLOCATE_ALLOCATOR | |
4853 | decls as firstprivate on task clauses even when allocate clause | |
4854 | decl is not lastprivate. | |
4855 | * omp-low.c (install_var_field): Don't dereference omp_is_reference | |
4856 | types if mask is 33 rather than 1. | |
4857 | (scan_sharing_clauses): Populate allocate_map even for task | |
4858 | constructs. For now remove it back for variables mentioned in | |
4859 | reduction and in_reduction clauses on task/taskloop constructs | |
4860 | or on VLA task firstprivates. For firstprivate on task construct, | |
4861 | install the var field into field_map with by_ref and 33 instead | |
4862 | of false and 1 if mentioned in allocate clause. | |
4863 | (lower_private_allocate): Set TREE_THIS_NOTRAP on the created | |
4864 | MEM_REF. | |
4865 | (lower_rec_input_clauses): Handle allocate for task firstprivatized | |
4866 | non-VLA variables. | |
4867 | (create_task_copyfn): Likewise. | |
4868 | ||
4869 | 2020-11-13 Jan Hubicka <jh@suse.cz> | |
4870 | ||
4871 | * tree-ssa-alias.c (ao_ref_base_alias_ptr_type): Remove accidental | |
4872 | commit. | |
4873 | (ao_ref_alias_ptr_type): Remove accidental commit. | |
4874 | ||
4875 | 2020-11-13 Kwok Cheung Yeung <kcy@codesourcery.com> | |
4876 | ||
4877 | * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region): | |
4878 | Use langhook instead of accessing language-specific decl | |
4879 | information. | |
4880 | ||
4881 | 2020-11-13 Gergö Barany <gergo@codesourcery.com> | |
4882 | Thomas Schwinge <thomas@codesourcery.com> | |
4883 | ||
4884 | * omp-oacc-kernels-decompose.cc: New. | |
4885 | * Makefile.in (OBJS): Add it. | |
4886 | * passes.def: Instantiate it. | |
4887 | * tree-pass.h (make_pass_omp_oacc_kernels_decompose): Declare. | |
4888 | * flag-types.h (enum openacc_kernels): Add. | |
4889 | * doc/invoke.texi (-fopenacc-kernels): Document. | |
4890 | * gimple.h (enum gf_mask): Add | |
4891 | 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_PARALLELIZED', | |
4892 | 'GF_OMP_TARGET_KIND_OACC_PARALLEL_KERNELS_GANG_SINGLE', | |
4893 | 'GF_OMP_TARGET_KIND_OACC_DATA_KERNELS'. | |
4894 | (is_gimple_omp_oacc, is_gimple_omp_offloaded): Handle these. | |
4895 | * gimple-pretty-print.c (dump_gimple_omp_target): Likewise. | |
4896 | * omp-expand.c (expand_omp_target, build_omp_regions_1) | |
4897 | (omp_make_gimple_edges): Likewise. | |
4898 | * omp-low.c (scan_sharing_clauses, scan_omp_for) | |
4899 | (check_omp_nesting_restrictions, lower_oacc_reductions) | |
4900 | (lower_oacc_head_mark, lower_omp_target): Likewise. | |
4901 | * omp-offload.c (execute_oacc_device_lower): Likewise. | |
4902 | ||
4903 | 2020-11-13 Thomas Schwinge <thomas@codesourcery.com> | |
4904 | ||
4905 | * omp-low.c (scan_sharing_clauses, scan_omp_for) | |
4906 | (lower_oacc_reductions, lower_omp_target): More explicit checking | |
4907 | of which OMP constructs we're expecting. | |
4908 | ||
4909 | 2020-11-13 Thomas Schwinge <thomas@codesourcery.com> | |
4910 | ||
4911 | * omp-expand.c (expand_omp_target): Attach an attribute to all | |
4912 | outlined OpenACC compute regions. | |
4913 | * omp-offload.c (execute_oacc_device_lower): Adjust. | |
4914 | ||
4915 | 2020-11-13 Jan Hubicka <jh@suse.cz> | |
4916 | ||
4917 | * ipa-modref.c (modref_summaries::insert, | |
4918 | modref_summaries_lto::insert): Remove summary if ipa-modref is disabled. | |
4919 | ||
4920 | 2020-11-13 Jan Hubicka <jh@suse.cz> | |
4921 | ||
4922 | * attr-fnspec.h (attr_fnspec::arg_readonly_p): Accept '1'...'9'. | |
4923 | ||
4924 | 2020-11-13 Peter Jones <pjones@redhat.com> | |
4925 | ||
4926 | * doc/extend.texi: Clarify the documentation for the ms_abi | |
4927 | function attribute. | |
4928 | ||
4929 | 2020-11-13 Andrew MacLeod <amacleod@redhat.com> | |
4930 | ||
4931 | * gimple-range.h (gimple_range_handler): Cast to gimple stmt | |
4932 | kinds before asking for code and type. | |
4933 | * gimple.h (gimple_expr_code): Call gassign and gcond routines | |
4934 | to get their expr_code. | |
4935 | ||
4936 | 2020-11-13 Jason Merrill <jason@redhat.com> | |
4937 | ||
4938 | * dwarf2out.c (gen_enumeration_type_die): Call | |
4939 | equate_decl_number_to_die for enumerators. | |
4940 | (gen_member_die): Don't move enumerators to their | |
4941 | enclosing class. | |
4942 | (dwarf2out_imported_module_or_decl_1): Allow importing | |
4943 | individual enumerators. | |
4944 | (force_decl_die): Handle CONST_DECL. | |
4945 | ||
4946 | 2020-11-13 Vladimir N. Makarov <vmakarov@redhat.com> | |
4947 | ||
4948 | * cfgexpand.c (expand_asm_stmt): Output asm goto with outputs too. | |
4949 | Place insns after asm goto on edges. | |
4950 | * doc/extend.texi: Reflect the changes in asm goto documentation. | |
4951 | * gimple.c (gimple_build_asm_1): Remove an assert checking output | |
4952 | absence for asm goto. | |
4953 | * gimple.h (gimple_asm_label_op, gimple_asm_set_label_op): Take | |
4954 | possible asm goto outputs into account. | |
4955 | * ira.c (ira): Remove critical edges for potential asm goto output | |
4956 | reloads. | |
4957 | (ira_nullify_asm_goto): New function. | |
4958 | * ira.h (ira_nullify_asm_goto): New prototype. | |
4959 | * lra-assigns.c (lra_split_hard_reg_for): Use ira_nullify_asm_goto. | |
4960 | Check that splitting is done inside a basic block. | |
4961 | * lra-constraints.c (curr_insn_transform): Permit output reloads | |
4962 | for any jump insn. | |
4963 | * lra-spills.c (lra_final_code_change): Remove USEs added in ira | |
4964 | for asm gotos. | |
4965 | * lra.c (lra_process_new_insns): Place output reload insns after | |
4966 | jumps in the beginning of destination BBs. | |
4967 | * reload.c (find_reloads): Report error for asm gotos with | |
4968 | outputs. Modify them to keep CFG consistency to avoid crashes. | |
4969 | * tree-into-ssa.c (rewrite_stmt): Don't put debug stmt after asm | |
4970 | goto. | |
4971 | ||
4972 | 2020-11-13 Jakub Jelinek <jakub@redhat.com> | |
4973 | ||
4974 | * omp-low.c (scan_sharing_clauses): For now remove for reduction | |
4975 | clauses with inscan or task modifiers decl from allocate_map. | |
4976 | (lower_private_allocate): Handle TYPE_P (new_var). | |
4977 | (lower_rec_input_clauses): Handle allocate clause for C/C++ array | |
4978 | reductions. | |
4979 | ||
4980 | 2020-11-13 Martin Jambor <mjambor@suse.cz> | |
4981 | ||
4982 | PR ipa/97816 | |
4983 | * ipa-cp.c (value_topo_info<valtype>::propagate_effects): Use | |
4984 | safe_add instead of a simple addition. | |
4985 | ||
4986 | 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
4987 | ||
4988 | * config/msp430/msp430.c (TARGET_INSN_COST): Define. | |
4989 | (msp430_insn_cost): New function. | |
4990 | * config/msp430/msp430.h (BRANCH_COST): Define. | |
4991 | (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. | |
4992 | ||
4993 | 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
4994 | ||
4995 | * config/msp430/msp430-protos.h (msp430x_extendhisi): Return int | |
4996 | instead of char *. | |
4997 | (msp430_output_asm_shift_insns): Likewise. | |
4998 | Add new return_length argument. | |
4999 | (msp430x_insn_required): Add prototype. | |
5000 | * config/msp430/msp430.c (msp430_output_asm_shift_insns): Return the | |
5001 | total length, in bytes, of the emitted instructions. | |
5002 | (msp430x_insn_required): New function. | |
5003 | (msp430x_extendhisi): Return the total length, in bytes, of the | |
5004 | emitted instructions. | |
5005 | * config/msp430/msp430.h (ADJUST_INSN_LENGTH): Define. | |
5006 | * config/msp430/msp430.md: New define_attr "type". | |
5007 | New define_attr "extension". | |
5008 | New define_attr "length_multiplier". | |
5009 | New define_attr "extra_length". | |
5010 | Rewrite define_attr "length". | |
5011 | Set type, extension, length, length_multiplier or extra_length insn | |
5012 | attributes on all insns, as appropriate. | |
5013 | (andneghi3): Rewrite using constraints instead of C code to decide | |
5014 | output insns. | |
5015 | * config/msp430/predicates.md (msp430_cheap_operand): New predicate. | |
5016 | (msp430_high_memory_operand): New predicate. | |
5017 | ||
5018 | 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
5019 | ||
5020 | * config/msp430/msp430.c (use_helper_for_const_shift): Add forward | |
5021 | declaration. | |
5022 | Remove unused argument. | |
5023 | (struct msp430_multlib_costs): New struct. | |
5024 | (msp430_is_mem_indirect): New function. | |
5025 | (msp430_costs): Likewise. | |
5026 | (msp430_shift_costs): Likewise. | |
5027 | (msp430_muldiv_costs): Likewise. | |
5028 | (msp430_get_inner_dest_code): Likewise. | |
5029 | (msp430_single_op_cost): Likewise. | |
5030 | (msp430_rtx_costs): Rewrite from scratch. | |
5031 | (msp430_expand_shift): Adjust use_helper_for_const_shift call. | |
5032 | ||
5033 | 2020-11-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
5034 | ||
5035 | * config/msp430/msp430.c (struct single_op_cost): New struct. | |
5036 | (struct double_op_cost): Likewise. | |
5037 | (TARGET_REGISTER_MOVE_COST): Don't define but add comment. | |
5038 | (TARGET_MEMORY_MOVE_COST): Define to... | |
5039 | (msp430_memory_move_cost): New function. | |
5040 | (BRANCH_COST): Don't define but add comment. | |
5041 | ||
5042 | 2020-11-13 Jan Hubicka <jh@suse.cz> | |
5043 | ||
5044 | * ipa-icf-gimple.c: Include tree-ssa-alias-compare.h. | |
5045 | (find_checker::func_checker): Initialize m_tbaa. | |
5046 | (func_checker::hash_operand): Use hash_ao_ref for memory accesses. | |
5047 | (func_checker::compare_operand): Use compare_ao_refs for memory | |
5048 | accesses. | |
5049 | (func_checker::cmopare_gimple_assign): Do not check LHS types | |
5050 | of memory stores. | |
5051 | * ipa-icf-gimple.h (func_checker): Derive from ao_compare; | |
5052 | add m_tbaa. | |
5053 | * ipa-icf.c: Include tree-ssa-alias-compare.h. | |
5054 | (sem_function::equals_private): Update call of | |
5055 | func_checker::func_checker. | |
5056 | * ipa-utils.h (lto_streaming_expected_p): New inline | |
5057 | predicate. | |
5058 | * tree-ssa-alias-compare.h: New file. | |
5059 | * tree-ssa-alias.c: Include tree-ssa-alias-compare.h | |
5060 | and bultins.h | |
5061 | (view_converted_memref_p): New function. | |
5062 | (types_equal_for_same_type_for_tbaa_p): New function. | |
5063 | (ao_ref_alias_ptr_type, ao_ref_base_alias_ptr_type): New functions. | |
5064 | (ao_compare::compare_ao_refs): New member function. | |
5065 | (ao_compare::hash_ao_ref): New function | |
5066 | * tree-ssa-alias.h (ao_ref_base_alias_ptr_type, | |
5067 | ao_ref_alias_ptr_type): Declare. | |
5068 | ||
5069 | 2020-11-13 Jan Hubicka <jh@suse.cz> | |
5070 | ||
5071 | * ipa-icf-gimple.c: Include gimple-walk.h. | |
5072 | (func_checker::compare_ssa_name): Update call of compare_operand. | |
5073 | (func_checker::hash_operand): Fix comment and add variant taking | |
5074 | operand_access_type parameter. | |
5075 | (func_checker::compare_operand): Add operand_access_type parameter. | |
5076 | (func_checker::compare_asm_inputs_outputs): Add | |
5077 | operand_access_type_map parameter; update use of | |
5078 | func_checker::compare_operand. | |
5079 | (func_checker::compare_gimple_call): Update use of | |
5080 | func_checker::compare_operand. | |
5081 | (func_checker::compare_gimple_assign): Likewise. | |
5082 | (func_checker::compare_gimple_cond): Likewise. | |
5083 | (func_checker::compare_gimple_switch): Likewise. | |
5084 | (func_checker::compare_gimple_return): Likewise. | |
5085 | (func_checker::compare_gimple_goto): Likewise. | |
5086 | (func_checker::compare_gimple_asm): Likewise. | |
5087 | (visit_load_store): New static functio. | |
5088 | (func_checker::classify_operands): New member function. | |
5089 | (func_checker::get_operand_access_type): New member function. | |
5090 | * ipa-icf-gimple.h (func_checker::operand_access_type): New enum | |
5091 | (func_checker::operand_access_type_map): New typedef. | |
5092 | (func_checker::compare_operand): Update prototype. | |
5093 | (func_checker::compare_asm_inputs_outputs): Likewise. | |
5094 | (func_checker::cleassify_operands): Declare. | |
5095 | (func_checker::get_operand_access_type): Declare. | |
5096 | (func_checker::hash_operand): New variant with operand_access_type. | |
5097 | * ipa-icf.c (sem_function::hash_stmt): Update uses of hash_operand. | |
5098 | (sem_function::compare_phi_node): Update use of compare_operand. | |
5099 | ||
5100 | 2020-11-13 Andrea Corallo <andrea.corallo@arm.com> | |
5101 | ||
5102 | * config/arm/aarch-common.c (aarch_accumulator_forwarding): Use | |
5103 | RTL predicates where possible. | |
5104 | * config/arm/arm.c (legitimate_pic_operand_p) | |
5105 | (legitimize_pic_address, arm_is_segment_info_known) | |
5106 | (can_avoid_literal_pool_for_label_p) | |
5107 | (thumb1_legitimate_address_p, arm_legitimize_address) | |
5108 | (arm_tls_referenced_p, thumb_legitimate_constant_p) | |
5109 | (REG_OR_SUBREG_REG, thumb1_rtx_costs, thumb1_size_rtx_costs) | |
5110 | (arm_adjust_cost, arm_coproc_mem_operand_wb) | |
5111 | (neon_vector_mem_operand, neon_struct_mem_operand) | |
5112 | (symbol_mentioned_p, label_mentioned_p, ) | |
5113 | (load_multiple_sequence, store_multiple_sequence) | |
5114 | (arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi) | |
5115 | (mem_ok_for_ldrd_strd, arm_emit_call_insn, output_move_neon) | |
5116 | (arm_attr_length_move_neon, arm_assemble_integer) | |
5117 | (arm_emit_coreregs_64bit_shift, arm_valid_symbolic_address_p) | |
5118 | (extract_base_offset_in_addr, fusion_load_store): Likewise. | |
5119 | ||
5120 | 2020-11-13 Andrew MacLeod <amacleod@redhat.com> | |
5121 | ||
5122 | * gimple-range.cc: (gimple_ranger::range_of_range_op): Check for | |
5123 | ADDR_EXPR and call range_of_address. | |
5124 | (gimple_ranger::range_of_address): Rename from | |
5125 | range_of_non_trivial_assignment and match vrp_stmt_computes_nonzero. | |
5126 | * gimple-range.h: (range_of_address): Renamed. | |
5127 | * range-op.cc: (pointer_table): Add INTEGER_CST handler. | |
5128 | ||
5129 | 2020-11-13 Martin Jambor <mjambor@suse.cz> | |
5130 | ||
5131 | PR tree-optimization/94406 | |
5132 | * tree-ssa-loop-im.c (tree_ssa_lim): Renamed to | |
5133 | loop_invariant_motion_in_fun, added a parameter to control store | |
5134 | motion. | |
5135 | (pass_lim::execute): Adjust call to tree_ssa_lim, now | |
5136 | loop_invariant_motion_in_fun. | |
5137 | * tree-ssa-loop-manip.h (loop_invariant_motion_in_fun): Declare. | |
5138 | * gimple-loop-interchange.cc (pass_linterchange::execute): Call | |
5139 | loop_invariant_motion_in_fun if any interchange has been done. | |
5140 | ||
5141 | 2020-11-13 Richard Biener <rguenther@suse.de> | |
5142 | ||
5143 | * tree-ssa-sccvn.c (vn_phi_compute_hash): Always hash the | |
5144 | number of predecessors. Hash the block number also for | |
5145 | loop header PHIs. | |
5146 | (expressions_equal_p): Short-cut SSA name compares, remove | |
5147 | test for NULL operands. | |
5148 | (vn_phi_eq): Cache number of predecessors, change inlined | |
5149 | test from expressions_equal_p. | |
5150 | ||
5151 | 2020-11-13 Iain Sandoe <iain@sandoe.co.uk> | |
5152 | ||
5153 | * doc/extend.texi: Don't try to line-wrap an @r command. | |
5154 | ||
5155 | 2020-11-13 Richard Biener <rguenther@suse.de> | |
5156 | ||
5157 | PR tree-optimization/97812 | |
5158 | * tree-vrp.c (register_edge_assert_for_2): Extend the range | |
5159 | according to its sign before seeing whether it fits. | |
5160 | ||
5161 | 2020-11-13 Andrea Corallo <andrea.corallo@arm.com> | |
5162 | ||
5163 | * config/aarch64/aarch64.c (tls_symbolic_operand_type) | |
5164 | (aarch64_load_symref_appropriately, aarch64_mov128_immediate) | |
5165 | (aarch64_expand_mov_immediate) | |
5166 | (aarch64_maybe_expand_sve_subreg_move) | |
5167 | (aarch64_tls_referenced_p, aarch64_cannot_force_const_mem) | |
5168 | (aarch64_base_register_rtx_p, aarch64_classify_index) | |
5169 | (aarch64_classify_address, aarch64_symbolic_address_p) | |
5170 | (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p) | |
5171 | (aarch64_can_const_movi_rtx_p, aarch64_select_cc_mode) | |
5172 | (aarch64_print_operand, aarch64_label_mentioned_p) | |
5173 | (aarch64_secondary_reload, aarch64_preferred_reload_class) | |
5174 | (aarch64_address_cost, aarch64_tls_symbol_p) | |
5175 | (aarch64_classify_symbol, aarch64_legitimate_pic_operand_p) | |
5176 | (aarch64_legitimate_constant_p) | |
5177 | (aarch64_sve_float_arith_immediate_p) | |
5178 | (aarch64_sve_float_mul_immediate_p, aarch64_mov_operand_p) | |
5179 | (fusion_load_store): Use RTL operands where possible. | |
5180 | ||
5181 | 2020-11-13 Sudakshina Das <sudi.das@arm.com> | |
5182 | ||
5183 | * config/aarch64/aarch64-protos.h (aarch64_expand_setmem): New | |
5184 | declaration. | |
5185 | * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case for | |
5186 | E_V16QImode. | |
5187 | (aarch64_set_one_block_and_progress_pointer): New helper for | |
5188 | aarch64_expand_setmem. | |
5189 | (aarch64_expand_setmem): Define the expansion for memset. | |
5190 | * config/aarch64/aarch64.h (CLEAR_RATIO): Tweak to favor | |
5191 | aarch64_expand_setmem when allowed and profitable. | |
5192 | (SET_RATIO): Likewise. | |
5193 | * config/aarch64/aarch64.md: Define pattern for setmemdi. | |
5194 | ||
5195 | 2020-11-13 Iain Sandoe <iain@sandoe.co.uk> | |
5196 | ||
5197 | PR objc/90707 | |
5198 | * doc/extend.texi: Document the objc_nullability attribute. | |
5199 | ||
5200 | 2020-11-13 Iain Sandoe <iain@sandoe.co.uk> | |
5201 | ||
5202 | PR objc/77404 | |
5203 | * doc/extend.texi: Document the objc_root_class attribute. | |
5204 | * doc/invoke.texi: Document -Wobjc-root-class. | |
5205 | ||
5206 | 2020-11-13 Richard Biener <rguenther@suse.de> | |
5207 | ||
5208 | * cfgexpand.c (gimple_assign_rhs_to_tree): Use | |
5209 | gimple_assign_rhs_class. | |
5210 | (expand_gimple_stmt_1): Likewise. | |
5211 | * gimplify-me.c (gimple_regimplify_operands): Use | |
5212 | gimple_assign_single_p. | |
5213 | * ipa-icf-gimple.c (func_checker::compare_gimple_assign): | |
5214 | Remove redundant compare. | |
5215 | (func_checker::compare_gimple_cond): Use gimple_cond_code. | |
5216 | * tree-ssa-tail-merge.c (gimple_equal_p): Likewise. | |
5217 | * predict.c (predict_loops): Use gimple_assign_rhs_code. | |
5218 | ||
5219 | 2020-11-13 Aldy Hernandez <aldyh@redhat.com> | |
5220 | ||
5221 | * tree-vrp.c (class vrp_folder): Make visit_stmt, visit_phi, | |
5222 | and m_vr_values private. | |
5223 | (vrp_folder::vrp_evaluate_conditional): Remove. | |
5224 | (vrp_folder::vrp_simplify_stmt_using_ranges): Remove. | |
5225 | (vrp_folder::fold_predicate_in): Inline | |
5226 | vrp_evaluate_conditional and vrp_simplify_stmt_using_ranges. | |
5227 | (vrp_folder::fold_stmt): Same. | |
5228 | ||
5229 | 2020-11-13 Aldy Hernandez <aldyh@redhat.com> | |
5230 | ||
5231 | * tree-vrp.c (class vrp_prop): Rename vr_values to m_vr_values. | |
5232 | (vrp_prop::vrp_prop): New. | |
5233 | (vrp_prop::initialize): Rename vr_values to m_vr_values. | |
5234 | (vrp_prop::visit_stmt): Same. | |
5235 | (vrp_prop::visit_phi): Same. | |
5236 | (vrp_prop::finalize): Same. | |
5237 | (execute_vrp): Instantiate vrp_vr_values and pass it to folder | |
5238 | and propagator. | |
5239 | ||
5240 | 2020-11-13 Aldy Hernandez <aldyh@redhat.com> | |
5241 | ||
5242 | * tree-vrp.c (class vrp_prop): Move entire class... | |
5243 | (class vrp_folder): ...before here. | |
5244 | ||
5245 | 2020-11-13 Aldy Hernandez <aldyh@redhat.com> | |
5246 | ||
5247 | * tree-vrp.c (identify_jump_threads): Refactor to.. | |
5248 | (vrp_jump_threader::vrp_jump_threader): ...here | |
5249 | (vrp_jump_threader::~vrp_jump_threader): ...and here. | |
5250 | (vrp_jump_threader::after_dom_children): Rename vr_values to | |
5251 | m_vr_values. | |
5252 | (execute_vrp): Use vrp_jump_threader. | |
5253 | ||
5254 | 2020-11-13 Aldy Hernandez <aldyh@redhat.com> | |
5255 | ||
5256 | * tree-vrp.c (struct assert_locus): Move. | |
5257 | (class vrp_insert): Rename to vrp_asserts. | |
5258 | (vrp_insert::build_assert_expr_for): Move to vrp_asserts. | |
5259 | (fp_predicate): Same. | |
5260 | (vrp_insert::dump): Same. | |
5261 | (vrp_insert::register_new_assert_for): Same. | |
5262 | (extract_code_and_val_from_cond_with_ops): Move. | |
5263 | (vrp_insert::finish_register_edge_assert_for): Move to vrp_asserts. | |
5264 | (maybe_set_nonzero_bits): Move. | |
5265 | (vrp_insert::find_conditional_asserts): Move to vrp_asserts. | |
5266 | (stmt_interesting_for_vrp): Move. | |
5267 | (struct case_info): Move. | |
5268 | (compare_case_labels): Move. | |
5269 | (lhs_of_dominating_assert): Move. | |
5270 | (find_case_label_index): Move. | |
5271 | (find_case_label_range): Move. | |
5272 | (class vrp_asserts): New. | |
5273 | (vrp_asserts::build_assert_expr_for): Rename from vrp_insert. | |
5274 | (vrp_asserts::dump): Same. | |
5275 | (vrp_asserts::register_new_assert_for): Same. | |
5276 | (vrp_asserts::finish_register_edge_assert_for): Same. | |
5277 | (vrp_asserts::find_conditional_asserts): Same. | |
5278 | (vrp_asserts::compare_case_labels): Same. | |
5279 | (vrp_asserts::find_switch_asserts): Same. | |
5280 | (vrp_asserts::find_assert_locations_in_bb): Same. | |
5281 | (vrp_asserts::find_assert_locations): Same. | |
5282 | (vrp_asserts::process_assert_insertions_for): Same. | |
5283 | (vrp_asserts::compare_assert_loc): Same. | |
5284 | (vrp_asserts::process_assert_insertions): Same. | |
5285 | (vrp_asserts::insert_range_assertions): Same. | |
5286 | (vrp_asserts::all_imm_uses_in_stmt_or_feed_cond): Same. | |
5287 | (vrp_asserts::remove_range_assertions): Same. | |
5288 | (class vrp_prop): Move. | |
5289 | (all_imm_uses_in_stmt_or_feed_cond): Move. | |
5290 | (vrp_prop::vrp_initialize): Move. | |
5291 | (class vrp_folder): Move. | |
5292 | (vrp_folder::fold_predicate_in): Move. | |
5293 | (vrp_folder::fold_stmt): Move. | |
5294 | (vrp_prop::initialize): Move. | |
5295 | (vrp_prop::visit_stmt): Move. | |
5296 | (enum ssa_prop_result): Move. | |
5297 | (vrp_prop::visit_phi): Move. | |
5298 | (vrp_prop::finalize): Move. | |
5299 | (class vrp_dom_walker): Rename to... | |
5300 | (class vrp_jump_threader): ...this. | |
5301 | (vrp_jump_threader::before_dom_children): Rename from | |
5302 | vrp_dom_walker. | |
5303 | (simplify_stmt_for_jump_threading): Rename to... | |
5304 | (vrp_jump_threader::simplify_stmt): ...here. | |
5305 | (vrp_jump_threader::after_dom_children): Same. | |
5306 | (identify_jump_threads): Move. | |
5307 | (vrp_prop::vrp_finalize): Move array bounds setup code to... | |
5308 | (execute_vrp): ...here. | |
5309 | ||
5310 | 2020-11-13 Andrew MacLeod <amacleod@redhat.com> | |
5311 | ||
5312 | * gimple-range.h (gimple_range_handler): Use gimple_assign and | |
5313 | gimple_cond routines to get type and code. | |
5314 | * range-op.cc (range_op_handler): Check for integral types. | |
5315 | ||
5316 | 2020-11-12 Nelson Chu <nelson.chu@sifive.com> | |
5317 | ||
5318 | * configure: Regenerated. | |
5319 | * configure.ac: If ifunc was supported in the binutils for | |
5320 | linux toolchain, then set enable_gnu_indirect_function to yes. | |
5321 | ||
5322 | 2020-11-12 Joseph Myers <joseph@codesourcery.com> | |
5323 | ||
5324 | * doc/cpp.texi (__has_attribute): Document when scopes are allowed | |
5325 | for C. | |
5326 | (__has_c_attribute): New. | |
5327 | ||
5328 | 2020-11-12 Jakub Jelinek <jakub@redhat.com> | |
5329 | ||
5330 | * builtin-types.def (BT_FN_PTR_SIZE_SIZE_PTRMODE): New function type. | |
5331 | * omp-builtins.def (BUILT_IN_GOACC_DECLARE): Move earlier. | |
5332 | (BUILT_IN_GOMP_ALLOC, BUILT_IN_GOMP_FREE): New builtins. | |
5333 | * gimplify.c (gimplify_scan_omp_clauses): Force allocator into a | |
5334 | decl if it is not NULL, INTEGER_CST or decl. | |
5335 | (gimplify_adjust_omp_clauses): Clear GOVD_EXPLICIT on explicit clauses | |
5336 | which are being removed. Remove allocate clauses for variables not seen | |
5337 | if they are private, firstprivate or linear too. Call | |
5338 | omp_notice_variable on the allocator otherwise. | |
5339 | (gimplify_omp_for): Handle iterator vars mentioned in allocate clauses | |
5340 | similarly to non-is_gimple_reg iterators. | |
5341 | * omp-low.c (struct omp_context): Add allocate_map field. | |
5342 | (delete_omp_context): Delete it. | |
5343 | (scan_sharing_clauses): Fill it from allocate clauses. Remove it | |
5344 | if mentioned also in shared clause. | |
5345 | (lower_private_allocate): New function. | |
5346 | (lower_rec_input_clauses): Handle allocate clause for privatized | |
5347 | variables, except for task/taskloop, C/C++ array reductions for now | |
5348 | and task/inscan variables. | |
5349 | (lower_send_shared_vars): Don't consider variables in allocate_map | |
5350 | as shared. | |
5351 | * omp-expand.c (expand_omp_for_generic, expand_omp_for_static_nochunk, | |
5352 | expand_omp_for_static_chunk): Use expand_omp_build_assign instead of | |
5353 | gimple_build_assign + gsi_insert_after. | |
5354 | * builtins.c (builtin_fnspec): Handle BUILTIN_GOMP_ALLOC and | |
5355 | BUILTIN_GOMP_FREE. | |
5356 | * tree-ssa-ccp.c (evaluate_stmt): Handle BUILTIN_GOMP_ALLOC. | |
5357 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle | |
5358 | BUILTIN_GOMP_ALLOC. | |
5359 | (mark_all_reaching_defs_necessary_1): Handle BUILTIN_GOMP_ALLOC | |
5360 | and BUILTIN_GOMP_FREE. | |
5361 | (propagate_necessity): Likewise. | |
5362 | ||
5363 | 2020-11-12 Martin Jambor <mjambor@suse.cz> | |
5364 | ||
5365 | * cgraphclones.c (cgraph_node::materialize_clone): Check that clone | |
5366 | info is not NULL before attempting to dump it. | |
5367 | ||
5368 | 2020-11-12 Martin Jambor <mjambor@suse.cz> | |
5369 | ||
5370 | * ipa-cp.c (class ipcp_value_base): Change the type of | |
5371 | local_time_benefit and prop_time_benefit to sreal. Adjust the | |
5372 | constructor initializer. | |
5373 | (ipcp_lattice::print): Dump sreals. | |
5374 | (struct caller_statistics): Change the type of freq_sum to sreal. | |
5375 | (gather_caller_stats): Work with sreal freq_sum. | |
5376 | (incorporate_penalties): Work with sreal evaluation. | |
5377 | (good_cloning_opportunity_p): Adjusted for sreal sreal time_benefit | |
5378 | and freq_sum. Bail out if size_cost is INT_MAX. | |
5379 | (perform_estimation_of_a_value): Work with sreal time_benefit. Avoid | |
5380 | unnecessary capping. | |
5381 | (estimate_local_effects): Pass sreal time benefit to | |
5382 | good_cloning_opportunity_p without capping it. Adjust dumping. | |
5383 | (safe_add): If there can be overflow, return INT_MAX. | |
5384 | (propagate_effects): Work with sreal times. | |
5385 | (get_info_about_necessary_edges): Work with sreal frequencies. | |
5386 | (decide_about_value): Likewise and with sreal time benefits. | |
5387 | ||
5388 | 2020-11-12 Marek Polacek <polacek@redhat.com> | |
5389 | ||
5390 | * system.h (WARN_UNUSED_RESULT): Define for GCC >= 3.4. | |
5391 | * tree.h (maybe_wrap_with_location): Add WARN_UNUSED_RESULT. | |
5392 | ||
5393 | 2020-11-12 Jan Hubicka <jh@suse.cz> | |
5394 | ||
5395 | * fold-const.c (operand_compare::operand_equal_p): Compare field | |
5396 | offsets in operand_equal_p and OEP_ADDRESS_OF. | |
5397 | (operand_compare::hash_operand): Update. | |
5398 | ||
5399 | 2020-11-12 Richard Biener <rguenther@suse.de> | |
5400 | ||
5401 | * bitmap.c (bitmap_list_view): Restore head->current. | |
5402 | * tree-ssa-pre.c (pre_expr_DFS): Elide expr_visited bitmap. | |
5403 | Special-case value expression bitmaps with one element. | |
5404 | (bitmap_find_leader): Likewise. | |
5405 | (sorted_array_from_bitmap_set): Elide expr_visited bitmap. | |
5406 | ||
5407 | 2020-11-12 Jan Hubicka <jh@suse.cz> | |
5408 | ||
5409 | * attr-fnspec.h: Update topleve comment. | |
5410 | (attr_fnspec::arg_direct_p): Accept 1...9. | |
5411 | (attr_fnspec::arg_maybe_written_p): Reject 1...9. | |
5412 | (attr_fnspec::arg_copied_to_arg_p): New member function. | |
5413 | * builtins.c (builtin_fnspec): Update fnspec of block copy. | |
5414 | * tree-ssa-alias.c (attr_fnspec::verify): Update. | |
5415 | ||
5416 | 2020-11-12 Richard Biener <rguenther@suse.de> | |
5417 | ||
5418 | * tree-ssa-pre.c (bitmap_value_replace_in_set): Return | |
5419 | whether we have changed anything. | |
5420 | (do_pre_regular_insertion): Get topologically sorted array | |
5421 | of expressions from caller. | |
5422 | (do_pre_partial_partial_insertion): Likewise. | |
5423 | (insert): Compute topologically sorted arrays of expressions | |
5424 | here and locally iterate actual insertion. Iterate only | |
5425 | when AVAIL_OUT of an already visited block source changed. | |
5426 | ||
5427 | 2020-11-12 Alex Coplan <alex.coplan@arm.com> | |
5428 | ||
5429 | PR target/97730 | |
5430 | * config/aarch64/aarch64-sve2.md (@aarch64_sve2_bcax<mode>): | |
5431 | Change to define_expand, add missing (trivially-predicated) not | |
5432 | rtx to fix wrong code bug. | |
5433 | (*aarch64_sve2_bcax<mode>): New. | |
5434 | ||
5435 | 2020-11-12 Richard Biener <rguenther@suse.de> | |
5436 | ||
5437 | PR tree-optimization/97806 | |
5438 | * tree-ssa-pre.c (pre_expr_DFS): New overload for visiting | |
5439 | values, visiting all leaders for a value. Use a bitmap | |
5440 | for visited values. | |
5441 | (sorted_array_from_bitmap_set): Walk over values and adjust. | |
5442 | ||
5443 | 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com> | |
5444 | ||
5445 | PR target/97326 | |
5446 | * config/s390/vector.md: Support vector floating point modes in | |
5447 | vec_cmp. | |
5448 | ||
5449 | 2020-11-12 Andreas Krebbel <krebbel@linux.ibm.com> | |
5450 | ||
5451 | * config/s390/vector.md: Rename tointvec to TOINTVEC. | |
5452 | * config/s390/vx-builtins.md: Likewise. | |
5453 | ||
5454 | 2020-11-12 Jason Merrill <jason@redhat.com> | |
5455 | ||
5456 | PR debug/97060 | |
5457 | * dwarf2out.c (gen_subprogram_die): It's a declaration | |
5458 | if DECL_INITIAL isn't set. | |
5459 | ||
5460 | 2020-11-12 David Malcolm <dmalcolm@redhat.com> | |
5461 | ||
5462 | PR tree-optimization/97424 | |
5463 | * doc/invoke.texi (Static Analyzer Options): Add | |
5464 | -Wno-analyzer-shift-count-negative and | |
5465 | -Wno-analyzer-shift-count-overflow. | |
5466 | (-Wno-analyzer-shift-count-negative): New. | |
5467 | (-Wno-analyzer-shift-count-overflow): New. | |
5468 | ||
5469 | 2020-11-11 Iain Sandoe <iain@sandoe.co.uk> | |
5470 | ||
5471 | * config/darwin-protos.h (darwin_make_eh_symbol_indirect): New. | |
5472 | * config/darwin.c (darwin_make_eh_symbol_indirect): New. Use | |
5473 | Mach-O semantics for personality and ldsa indirections. | |
5474 | * config/darwin.h (TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT): New. | |
5475 | * doc/tm.texi: Regenerate. | |
5476 | * doc/tm.texi.in: Add TARGET_ASM_MAKE_EH_SYMBOL_INDIRECT hook. | |
5477 | * dwarf2out.c (dwarf2out_do_cfi_startproc): If the target defines | |
5478 | a hook for indirecting personality and ldsa references, use that | |
5479 | otherwise default to ELF semantics. | |
5480 | * target.def (make_eh_symbol_indirect): New target hook. | |
5481 | ||
5482 | 2020-11-11 Patrick Palka <ppalka@redhat.com> | |
5483 | ||
5484 | PR c++/88115 | |
5485 | * common.opt (-fabi-version): Document =15. | |
5486 | * doc/invoke.texi (C++ Dialect Options): Likewise. | |
5487 | ||
5488 | 2020-11-11 Marek Polacek <polacek@redhat.com> | |
5489 | ||
5490 | PR c++/97518 | |
5491 | * tree.c (maybe_wrap_with_location): Don't add a location | |
5492 | wrapper around an artificial and ignored decl. | |
5493 | ||
5494 | 2020-11-11 Richard Biener <rguenther@suse.de> | |
5495 | ||
5496 | PR tree-optimization/97623 | |
5497 | * tree-ssa-pre.c (create_expression_by_pieces): Guard | |
5498 | NEW_SETS access. | |
5499 | (insert_into_preds_of_block): Likewise. | |
5500 | ||
5501 | 2020-11-11 Richard Biener <rguenther@suse.de> | |
5502 | ||
5503 | * tree-ssa-pre.c (pre_expr_DFS): New function. | |
5504 | (sorted_array_from_bitmap_set): Use it to properly | |
5505 | topologically sort the expression set. | |
5506 | (clean): Verify we've cleaned everything we should. | |
5507 | ||
5508 | 2020-11-11 Richard Biener <rguenther@suse.de> | |
5509 | ||
5510 | PR tree-optimization/97623 | |
5511 | * params.opt (-param=max-pre-hoist-insert-iterations): Remove | |
5512 | again. | |
5513 | * doc/invoke.texi (max-pre-hoist-insert-iterations): Likewise. | |
5514 | * tree-ssa-pre.c (insert): Move hoist insertion after PRE | |
5515 | insertion iteration and do not iterate it. | |
5516 | ||
5517 | 2020-11-11 Richard Sandiford <richard.sandiford@arm.com> | |
5518 | ||
5519 | * config/aarch64/aarch64-sve.md (@vcond_mask_<mode><vpred>): Extend | |
5520 | from SVE_FULL to SVE_ALL. | |
5521 | (*vcond_mask_<mode><vpred>): Likewise. | |
5522 | (@aarch64_sel_dup<mode>): Likewise. | |
5523 | (vcond<SVE_FULL:mode><v_int_equiv>): Extend to... | |
5524 | (vcond<SVE_ALL:mode><SVE_I:mode>): ...this, but requiring the | |
5525 | sizes of the container modes to match. | |
5526 | (vcondu<SVE_FULL:mode><v_int_equiv>): Extend to... | |
5527 | (vcondu<SVE_ALL:mode><SVE_I:mode>): ...this. | |
5528 | (vec_cmp<SVE_FULL_I:mode><vpred>): Extend to... | |
5529 | (vec_cmp<SVE_I:mode><vpred>): ...this. | |
5530 | (vec_cmpu<SVE_FULL_I:mode><vpred>): Extend to... | |
5531 | (vec_cmpu<SVE_I:mode><vpred>): ...this. | |
5532 | (@aarch64_pred_cmp<cmp_op><SVE_FULL_I:mode>): Extend to... | |
5533 | (@aarch64_pred_cmp<cmp_op><SVE_I:mode>): ...this. | |
5534 | (*cmp<cmp_op><SVE_FULL_I:mode>_cc): Extend to... | |
5535 | (*cmp<cmp_op><SVE_I:mode>_cc): ...this. | |
5536 | (*cmp<cmp_op><SVE_FULL_I:mode>_ptest): Extend to... | |
5537 | (*cmp<cmp_op><SVE_I:mode>_ptest): ...this. | |
5538 | (*cmp<cmp_op><SVE_FULL_I:mode>_and): Extend to... | |
5539 | (*cmp<cmp_op><SVE_I:mode>_and): ...this. | |
5540 | ||
5541 | 2020-11-11 Richard Sandiford <richard.sandiford@arm.com> | |
5542 | ||
5543 | * optabs-tree.c (expand_vec_cond_expr_p): Allow the compared values | |
5544 | and the selected values to have different mode sizes. | |
5545 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Likewise. | |
5546 | ||
5547 | 2020-11-11 Hongtao Liu <hongtao.liu@intel.com> | |
5548 | Hongyu Wang <hongyu.wang@intel.com> | |
5549 | ||
5550 | * common/config/i386/cpuinfo.h (get_available_features): | |
5551 | Detect AVXVNNI. | |
5552 | * common/config/i386/i386-common.c | |
5553 | (OPTION_MASK_ISA2_AVXVNNI_SET, | |
5554 | OPTION_MASK_ISA2_AVXVNNI_UNSET): New. | |
5555 | (OPTION_MASK_ISA2_AVX2_UNSET): Add AVXVNNI. | |
5556 | (ix86_hanlde_option): Handle -mavxvnni, unset avxvnni when | |
5557 | avx2 is disabled. | |
5558 | * common/config/i386/i386-cpuinfo.h (enum processor_features): | |
5559 | Add FEATURE_AVXVNNI. | |
5560 | * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY | |
5561 | for avxvnni. | |
5562 | * config.gcc: Add avxvnniintrin.h. | |
5563 | * config/i386/avx512vnnivlintrin.h: Reimplement 128/256 bit non-mask | |
5564 | intrinsics with macros to support unified interface. | |
5565 | * config/i386/avxvnniintrin.h: New header file. | |
5566 | * config/i386/cpuid.h (bit_AVXVNNI): New. | |
5567 | * config/i386/i386-builtins.c (def_builtin): Handle AVXVNNI mask | |
5568 | for unified builtin. | |
5569 | * config/i386/i386-builtin.def (BDESC): Adjust AVX512VNNI | |
5570 | builtins for AVXVNNI. | |
5571 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
5572 | __AVXVNNI__. | |
5573 | * config/i386/i386-expand.c (ix86_expand_builtin): Handle bisa | |
5574 | for AVXVNNI to support unified intrinsic name, since there is no | |
5575 | dependency between AVX512VNNI and AVXVNNI. | |
5576 | * config/i386/i386-options.c (isa2_opts): Add -mavxvnni. | |
5577 | (ix86_valid_target_attribute_inner_p): Handle avxnnni. | |
5578 | (ix86_option_override_internal): Ditto. | |
5579 | * config/i386/i386.h (TARGET_AVXVNNI, TARGET_AVXVNNI_P, | |
5580 | TARGET_AVXVNNI_P, PTA_AVXVNNI): New. | |
5581 | (PTA_SAPPHIRERAPIDS): Add AVX_VNNI. | |
5582 | (PTA_ALDERLAKE): Likewise. | |
5583 | * config/i386/i386.md ("isa"): Add avxvnni, avx512vnnivl. | |
5584 | ("enabled"): Adjust for avxvnni and avx512vnnivl. | |
5585 | * config/i386/i386.opt: Add option -mavxvnni. | |
5586 | * config/i386/immintrin.h: Include avxvnniintrin.h. | |
5587 | * config/i386/sse.md (vpdpbusd_<mode>): Adjust for AVXVNNI. | |
5588 | (vpdpbusds_<mode>): Likewise. | |
5589 | (vpdpwssd_<mode>): Likewise. | |
5590 | (vpdpwssds_<mode>): Likewise. | |
5591 | (vpdpbusd_v16si): New. | |
5592 | (vpdpbusds_v16si): Likewise. | |
5593 | (vpdpwssd_v16si): Likewise. | |
5594 | (vpdpwssds_v16si): Likewise. | |
5595 | * doc/invoke.texi: Document -mavxvnni. | |
5596 | * doc/extend.texi: Document avxvnni. | |
5597 | * doc/sourcebuild.texi: Document target avxvnni. | |
5598 | ||
5599 | 2020-11-11 Martin Liska <mliska@suse.cz> | |
5600 | ||
5601 | * tree.c (copy_node): Fix spelling. | |
5602 | ||
5603 | 2020-11-11 Richard Biener <rguenther@suse.de> | |
5604 | ||
5605 | * tree-ssa-pre.c (phi_translate_set): Do not sort the | |
5606 | expression set topologically. | |
5607 | ||
5608 | 2020-11-11 Aldy Hernandez <aldyh@redhat.com> | |
5609 | ||
5610 | * value-range.cc (irange::set): Early exit on VR_VARYING. | |
5611 | ||
5612 | 2020-11-11 Zhiheng Xie <xiezhiheng@huawei.com> | |
5613 | Nannan Zheng <zhengnannan@huawei.com> | |
5614 | ||
5615 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
5616 | for arithmetic operation intrinsics. | |
5617 | ||
5618 | 2020-11-11 Strager Neds <strager.nds@gmail.com> | |
5619 | ||
5620 | * cgraph.h (symtab_node::set_section_for_node): Declare new | |
5621 | overload. | |
5622 | (symtab_node::set_section_from_string): Rename from set_section. | |
5623 | (symtab_node::set_section_from_node): Declare. | |
5624 | * symtab.c (symtab_node::set_section_for_node): Define new | |
5625 | overload. | |
5626 | (symtab_node::set_section_from_string): Rename from set_section. | |
5627 | (symtab_node::set_section_from_node): Define. | |
5628 | (symtab_node::set_section): Call renamed set_section_from_string. | |
5629 | (symtab_node::set_section): Call new set_section_from_node. | |
5630 | ||
5631 | 2020-11-11 Strager Neds <strager.nds@gmail.com> | |
5632 | ||
5633 | * symtab.c (symtab_node::set_section_for_node): Extract reference | |
5634 | counting logic into ... | |
5635 | (retain_section_hash_entry): ... here (new function) and ... | |
5636 | (release_section_hash_entry): ... here (new function). | |
5637 | ||
5638 | 2020-11-11 liuhongt <hongtao.liu@intel.com> | |
5639 | ||
5640 | * config/i386/i386.h (PTA_MOVDIRI, PTA_MOVDIR64B, | |
5641 | PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16, PTA_HRESET): | |
5642 | Formatting. | |
5643 | ||
5644 | 2020-11-11 Ilya Leoshkevich <iii@linux.ibm.com> | |
5645 | ||
5646 | * config/s390/s390.h (HAVE_TF): Use opaque value when | |
5647 | GENERATOR_FILE is defined. | |
5648 | ||
5649 | 2020-11-10 Strager Neds <strager.nds@gmail.com> | |
5650 | ||
5651 | * cgraph.h (symtab_node::get_section): Constify. | |
5652 | (symtab_node::set_section): Declare new overload. | |
5653 | * symtab.c (symtab_node::set_section): Define new overload. | |
5654 | (symtab_node::copy_visibility_from): Use new overload of | |
5655 | symtab_node::set_section. | |
5656 | (symtab_node::resolve_alias): Same. | |
5657 | * tree.h (set_decl_section_name): Declare new overload. | |
5658 | * tree.c (set_decl_section_name): Define new overload. | |
5659 | * tree-emutls.c (get_emutls_init_templ_addr): Same. | |
5660 | * cgraphclones.c (cgraph_node::create_virtual_clone): Use new | |
5661 | overload of symtab_node::set_section. | |
5662 | (cgraph_node::create_version_clone_with_body): Same. | |
5663 | * trans-mem.c (ipa_tm_create_version): Same. | |
5664 | ||
5665 | 2020-11-10 Aldy Hernandez <aldyh@redhat.com> | |
5666 | ||
5667 | * value-range.cc (irange::set): Early exit for poly ints. | |
5668 | ||
5669 | 2020-11-10 Tobias Burnus <tobias@codesourcery.com> | |
5670 | ||
5671 | * gimplify.c (gimplify_scan_omp_clauses, gimplify_omp_loop): Use 'do' | |
5672 | instead of 'for' in error messages for Fortran. | |
5673 | * omp-low.c (check_omp_nesting_restrictions): Likewise | |
5674 | ||
5675 | 2020-11-10 Matthew Malcomson <matthew.malcomson@arm.com> | |
5676 | ||
5677 | * opts.c (control_options_for_live_patching): Reform 'is incompatible | |
5678 | with' error messages to use a standard message with differing format | |
5679 | arguments. | |
5680 | (finish_options): Likewise. | |
5681 | ||
5682 | 2020-11-10 Richard Biener <rguenther@suse.de> | |
5683 | ||
5684 | PR tree-optimization/97769 | |
5685 | * tree-vect-data-refs.c (vect_update_misalignment_for_peel): | |
5686 | Remove assert. | |
5687 | ||
5688 | 2020-11-10 Richard Biener <rguenther@suse.de> | |
5689 | ||
5690 | PR tree-optimization/97780 | |
5691 | * tree-ssa-pre.c (fini_pre): Deal with added basic blocks | |
5692 | when freeing PHI_TRANS_TABLE. | |
5693 | ||
5694 | 2020-11-10 Zhiheng Xie <xiezhiheng@huawei.com> | |
5695 | Nannan Zheng <zhengnannan@huawei.com> | |
5696 | ||
5697 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
5698 | for tbl/tbx intrinsics. | |
5699 | ||
5700 | 2020-11-10 Chung-Lin Tang <cltang@codesourcery.com> | |
5701 | ||
5702 | * gimplify.c (is_or_contains_p): New static helper function. | |
5703 | (omp_target_reorder_clauses): New function. | |
5704 | (gimplify_scan_omp_clauses): Add use of omp_target_reorder_clauses to | |
5705 | reorder clause list according to OpenMP 5.0 rules. Add handling of | |
5706 | GOMP_MAP_ATTACH_DETACH for OpenMP cases. | |
5707 | * omp-low.c (is_omp_target): New static helper function. | |
5708 | (scan_sharing_clauses): Add scan phase handling of GOMP_MAP_ATTACH/DETACH | |
5709 | for OpenMP cases. | |
5710 | (lower_omp_target): Add lowering handling of GOMP_MAP_ATTACH/DETACH for | |
5711 | OpenMP cases. | |
5712 | ||
5713 | 2020-11-10 Ilya Leoshkevich <iii@linux.ibm.com> | |
5714 | ||
5715 | * config/s390/s390-modes.def (FPRX2): New mode. | |
5716 | * config/s390/s390-protos.h (s390_fma_allowed_p): New function. | |
5717 | * config/s390/s390.c (s390_fma_allowed_p): Likewise. | |
5718 | (s390_build_signbit_mask): Support 128-bit masks. | |
5719 | (print_operand): Support printing the second word of a TFmode | |
5720 | operand as vector register. | |
5721 | (constant_modes): Add FPRX2mode. | |
5722 | (s390_class_max_nregs): Return 1 for TFmode on z14+. | |
5723 | (s390_is_fpr128): New function. | |
5724 | (s390_is_vr128): Likewise. | |
5725 | (s390_can_change_mode_class): Use s390_is_fpr128 and | |
5726 | s390_is_vr128 in order to determine whether mode refers to a FPR | |
5727 | pair or to a VR. | |
5728 | (s390_emit_compare): Force TFmode operands into registers on | |
5729 | z14+. | |
5730 | * config/s390/s390.h (HAVE_TF): New macro. | |
5731 | (EXPAND_MOVTF): New macro. | |
5732 | (EXPAND_TF): Likewise. | |
5733 | * config/s390/s390.md (PFPO_OP_TYPE_FPRX2): PFPO_OP_TYPE_TF | |
5734 | alias. | |
5735 | (ALL): Add FPRX2. | |
5736 | (FP_ALL): Add FPRX2 for z14+, restrict TFmode to z13-. | |
5737 | (FP): Likewise. | |
5738 | (FP_ANYTF): New mode iterator. | |
5739 | (BFP): Add FPRX2 for z14+, restrict TFmode to z13-. | |
5740 | (TD_TF): Likewise. | |
5741 | (xde): Add FPRX2. | |
5742 | (nBFP): Likewise. | |
5743 | (nDFP): Likewise. | |
5744 | (DSF): Likewise. | |
5745 | (DFDI): Likewise. | |
5746 | (SFSI): Likewise. | |
5747 | (DF): Likewise. | |
5748 | (SF): Likewise. | |
5749 | (fT0): Likewise. | |
5750 | (bt): Likewise. | |
5751 | (_d): Likewise. | |
5752 | (HALF_TMODE): Likewise. | |
5753 | (tf_fpr): New mode_attr. | |
5754 | (type): New mode_attr. | |
5755 | (*cmp<mode>_ccz_0): Use type instead of mode with fsimp. | |
5756 | (*cmp<mode>_ccs_0_fastmath): Likewise. | |
5757 | (*cmptf_ccs): New pattern for wfcxb. | |
5758 | (*cmptf_ccsfps): New pattern for wfkxb. | |
5759 | (mov<mode>): Rename to mov<mode><tf_fpr>. | |
5760 | (signbit<mode>2): Rename to signbit<mode>2<tf_fpr>. | |
5761 | (isinf<mode>2): Renamed to isinf<mode>2<tf_fpr>. | |
5762 | (*TDC_insn_<mode>): Use type instead of mode with fsimp. | |
5763 | (fixuns_trunc<FP:mode><GPR:mode>2): Rename to | |
5764 | fixuns_trunc<FP:mode><GPR:mode>2<FP:tf_fpr>. | |
5765 | (fix_trunctf<mode>2): Rename to fix_trunctf<mode>2_fpr. | |
5766 | (floatdi<mode>2): Rename to floatdi<mode>2<tf_fpr>, use type | |
5767 | instead of mode with itof. | |
5768 | (floatsi<mode>2): Rename to floatsi<mode>2<tf_fpr>, use type | |
5769 | instead of mode with itof. | |
5770 | (*floatuns<GPR:mode><FP:mode>2): Use type instead of mode for | |
5771 | itof. | |
5772 | (floatuns<GPR:mode><FP:mode>2): Rename to | |
5773 | floatuns<GPR:mode><FP:mode>2<tf_fpr>. | |
5774 | (trunctf<mode>2): Rename to trunctf<mode>2_fpr, use type instead | |
5775 | of mode with fsimp. | |
5776 | (extend<DSF:mode><BFP:mode>2): Rename to | |
5777 | extend<DSF:mode><BFP:mode>2<BFP:tf_fpr>. | |
5778 | (<FPINT:fpint_name><BFP:mode>2): Rename to | |
5779 | <FPINT:fpint_name><BFP:mode>2<BFP:tf_fpr>, use type instead of | |
5780 | mode with fsimp. | |
5781 | (rint<BFP:mode>2): Rename to rint<BFP:mode>2<BFP:tf_fpr>, use | |
5782 | type instead of mode with fsimp. | |
5783 | (<FPINT:fpint_name><DFP:mode>2): Use type instead of mode for | |
5784 | fsimp. | |
5785 | (rint<DFP:mode>2): Likewise. | |
5786 | (trunc<BFP:mode><DFP_ALL:mode>2): Rename to | |
5787 | trunc<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>. | |
5788 | (trunc<DFP_ALL:mode><BFP:mode>2): Rename to | |
5789 | trunc<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>. | |
5790 | (extend<BFP:mode><DFP_ALL:mode>2): Rename to | |
5791 | extend<BFP:mode><DFP_ALL:mode>2<BFP:tf_fpr>. | |
5792 | (extend<DFP_ALL:mode><BFP:mode>2): Rename to | |
5793 | extend<DFP_ALL:mode><BFP:mode>2<BFP:tf_fpr>. | |
5794 | (add<mode>3): Rename to add<mode>3<tf_fpr>, use type instead of | |
5795 | mode with fsimp. | |
5796 | (*add<mode>3_cc): Use type instead of mode with fsimp. | |
5797 | (*add<mode>3_cconly): Likewise. | |
5798 | (sub<mode>3): Rename to sub<mode>3<tf_fpr>, use type instead of | |
5799 | mode with fsimp. | |
5800 | (*sub<mode>3_cc): Use type instead of mode with fsimp. | |
5801 | (*sub<mode>3_cconly): Likewise. | |
5802 | (mul<mode>3): Rename to mul<mode>3<tf_fpr>, use type instead of | |
5803 | mode with fsimp. | |
5804 | (fma<mode>4): Restrict using s390_fma_allowed_p. | |
5805 | (fms<mode>4): Restrict using s390_fma_allowed_p. | |
5806 | (div<mode>3): Rename to div<mode>3<tf_fpr>, use type instead of | |
5807 | mode with fdiv. | |
5808 | (neg<mode>2): Rename to neg<mode>2<tf_fpr>. | |
5809 | (*neg<mode>2_cc): Use type instead of mode with fsimp. | |
5810 | (*neg<mode>2_cconly): Likewise. | |
5811 | (*neg<mode>2_nocc): Likewise. | |
5812 | (*neg<mode>2): Likeiwse. | |
5813 | (abs<mode>2): Rename to abs<mode>2<tf_fpr>, use type instead of | |
5814 | mode with fdiv. | |
5815 | (*abs<mode>2_cc): Use type instead of mode with fsimp. | |
5816 | (*abs<mode>2_cconly): Likewise. | |
5817 | (*abs<mode>2_nocc): Likewise. | |
5818 | (*abs<mode>2): Likewise. | |
5819 | (*negabs<mode>2_cc): Likewise. | |
5820 | (*negabs<mode>2_cconly): Likewise. | |
5821 | (*negabs<mode>2_nocc): Likewise. | |
5822 | (*negabs<mode>2): Likewise. | |
5823 | (sqrt<mode>2): Rename to sqrt<mode>2<tf_fpr>, use type instead | |
5824 | of mode with fsqrt. | |
5825 | (cbranch<mode>4): Use FP_ANYTF instead of FP. | |
5826 | (copysign<mode>3): Rename to copysign<mode>3<tf_fpr>, use type | |
5827 | instead of mode with fsimp. | |
5828 | * config/s390/s390.opt (flag_vx_long_double_fma): New | |
5829 | undocumented option. | |
5830 | * config/s390/vector.md (V_HW): Add TF for z14+. | |
5831 | (V_HW2): Likewise. | |
5832 | (VFT): Likewise. | |
5833 | (VF_HW): Likewise. | |
5834 | (V_128): Likewise. | |
5835 | (tf_vr): New mode_attr. | |
5836 | (tointvec): Add TF. | |
5837 | (mov<mode>): Rename to mov<mode><tf_vr>. | |
5838 | (movetf): New dispatcher. | |
5839 | (*vec_tf_to_v1tf): Rename to *vec_tf_to_v1tf_fpr, restrict to | |
5840 | z13-. | |
5841 | (*vec_tf_to_v1tf_vr): New pattern for z14+. | |
5842 | (*fprx2_to_tf): Likewise. | |
5843 | (*mov_tf_to_fprx2_0): Likewise. | |
5844 | (*mov_tf_to_fprx2_1): Likewise. | |
5845 | (add<mode>3): Rename to add<mode>3<tf_vr>. | |
5846 | (addtf3): New dispatcher. | |
5847 | (sub<mode>3): Rename to sub<mode>3<tf_vr>. | |
5848 | (subtf3): New dispatcher. | |
5849 | (mul<mode>3): Rename to mul<mode>3<tf_vr>. | |
5850 | (multf3): New dispatcher. | |
5851 | (div<mode>3): Rename to div<mode>3<tf_vr>. | |
5852 | (divtf3): New dispatcher. | |
5853 | (sqrt<mode>2): Rename to sqrt<mode>2<tf_vr>. | |
5854 | (sqrttf2): New dispatcher. | |
5855 | (fma<mode>4): Restrict using s390_fma_allowed_p. | |
5856 | (fms<mode>4): Likewise. | |
5857 | (neg_fma<mode>4): Likewise. | |
5858 | (neg_fms<mode>4): Likewise. | |
5859 | (neg<mode>2): Rename to neg<mode>2<tf_vr>. | |
5860 | (negtf2): New dispatcher. | |
5861 | (abs<mode>2): Rename to abs<mode>2<tf_vr>. | |
5862 | (abstf2): New dispatcher. | |
5863 | (float<mode>tf2_vr): New forwarder. | |
5864 | (float<mode>tf2): New dispatcher. | |
5865 | (floatuns<mode>tf2_vr): New forwarder. | |
5866 | (floatuns<mode>tf2): New dispatcher. | |
5867 | (fix_trunctf<mode>2_vr): New forwarder. | |
5868 | (fix_trunctf<mode>2): New dispatcher. | |
5869 | (fixuns_trunctf<mode>2_vr): New forwarder. | |
5870 | (fixuns_trunctf<mode>2): New dispatcher. | |
5871 | (<FPINT:fpint_name><VF_HW:mode>2<VF_HW:tf_vr>): New pattern. | |
5872 | (<FPINT:fpint_name>tf2): New forwarder. | |
5873 | (rint<mode>2<tf_vr>): New pattern. | |
5874 | (rinttf2): New forwarder. | |
5875 | (*trunctfdf2_vr): New pattern. | |
5876 | (trunctfdf2_vr): New forwarder. | |
5877 | (trunctfdf2): New dispatcher. | |
5878 | (trunctfsf2_vr): New forwarder. | |
5879 | (trunctfsf2): New dispatcher. | |
5880 | (extenddftf2_vr): New pattern. | |
5881 | (extenddftf2): New dispatcher. | |
5882 | (extendsftf2_vr): New forwarder. | |
5883 | (extendsftf2): New dispatcher. | |
5884 | (signbittf2_vr): New forwarder. | |
5885 | (signbittf2): New dispatchers. | |
5886 | (isinftf2_vr): New forwarder. | |
5887 | (isinftf2): New dispatcher. | |
5888 | * config/s390/vx-builtins.md (*vftci<mode>_cconly): Use VF_HW | |
5889 | instead of VECF_HW, add missing constraint, add vw support. | |
5890 | (vftci<mode>_intcconly): Use VF_HW instead of VECF_HW. | |
5891 | (*vftci<mode>): Rename to vftci<mode>, use VF_HW instead of | |
5892 | VECF_HW, and vw support. | |
5893 | (vftci<mode>_intcc): Use VF_HW instead of VECF_HW. | |
5894 | ||
5895 | 2020-11-10 Eric Botcazou <ebotcazou@adacore.com> | |
5896 | ||
5897 | * range-op.cc (operator_logical_not::fold_range): Tidy up. | |
5898 | (operator_logical_not::op1_range): Call above method. | |
5899 | (operator_bitwise_not::fold_range): If the type is compatible | |
5900 | with boolean, call op_logical_not.fold_range. | |
5901 | (operator_bitwise_not::op1_range): If the type is compatible | |
5902 | with boolean, call op_logical_not.op1_range. | |
5903 | ||
5904 | 2020-11-10 Richard Biener <rguenther@suse.de> | |
5905 | ||
5906 | * tree-ssa-pre.c (pre_expr_d::value_id): Add. | |
5907 | (constant_value_expressions): Turn into an array of pre_expr. | |
5908 | (get_or_alloc_expr_for_nary): New function. | |
5909 | (get_or_alloc_expr_for_reference): Likewise. | |
5910 | (add_to_value): For constant values only ever add a single | |
5911 | CONSTANT. | |
5912 | (get_expr_value_id): Return the new value_id member. | |
5913 | (vn_valnum_from_value_id): Split out and simplify constant | |
5914 | value id handling. | |
5915 | (get_or_alloc_expr_for_constant): Set the value_id member. | |
5916 | (phi_translate_1): Use get_or_alloc_expr_for_*. | |
5917 | (compute_avail): Likewise. | |
5918 | (bitmap_find_leader): Simplify constant value id handling. | |
5919 | ||
5920 | 2020-11-10 Alex Coplan <alex.coplan@arm.com> | |
5921 | ||
5922 | * doc/md.texi (Modifiers): Fix grammar in description of | |
5923 | earlyclobber constraint modifier. | |
5924 | ||
5925 | 2020-11-10 Jakub Jelinek <jakub@redhat.com> | |
5926 | ||
5927 | PR tree-optimization/97764 | |
5928 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): For | |
5929 | little-endian stores with negative pd.offset, subtract | |
5930 | BITS_PER_UNIT - amnt from size if amnt is non-zero. | |
5931 | ||
5932 | 2020-11-10 Richard Biener <rguenther@suse.de> | |
5933 | ||
5934 | PR tree-optimization/97760 | |
5935 | * tree-vect-loop.c (check_reduction_path): Reject | |
5936 | reduction paths we do not handle in epilogue generation. | |
5937 | ||
5938 | 2020-11-10 Aldy Hernandez <aldyh@redhat.com> | |
5939 | ||
5940 | PR tree-optimization/97767 | |
5941 | * value-range.cc (dump_bound_with_infinite_markers): Use | |
5942 | wi::min_value and wi::max_value. | |
5943 | (range_tests_strict_enum): New. | |
5944 | (range_tests): Call range_tests_strict_enum. | |
5945 | * value-range.h (irange::varying_p): Use wi::min_value | |
5946 | and wi::max_value. | |
5947 | (irange::set_varying): Same. | |
5948 | (irange::normalize_min_max): Remove comment. | |
5949 | ||
5950 | 2020-11-10 Andrew MacLeod <amacleod@redhat.com> | |
5951 | ||
5952 | PR tree-optimization/97567 | |
5953 | * gimple-range-gori.cc: (gori_compute::logical_combine): False | |
5954 | OR operations should intersect the 2 results. | |
5955 | (gori_compute::compute_logical_operands_in_chain): If def chains | |
5956 | are outside the current basic block, don't follow them. | |
5957 | ||
5958 | 2020-11-09 Claudiu Zissulescu <claziss@synopsys.com> | |
5959 | ||
5960 | * config/arc/arc.c (arc_split_move): Recognize vadd2 instructions. | |
5961 | * config/arc/arc.md (movdi_insn): Update pattern to use vadd2 | |
5962 | instructions. | |
5963 | (movdf_insn): Likewise. | |
5964 | (maddhisi4): New pattern. | |
5965 | (umaddhisi4): Likewise. | |
5966 | * config/arc/simdext.md (mov<mode>_int): Update pattern to use | |
5967 | vadd2. | |
5968 | (sdot_prodv4hi): New pattern. | |
5969 | (udot_prodv4hi): Likewise. | |
5970 | (arc_vec_<V_US>mac_hi_v4hi): Update/renamed to | |
5971 | arc_vec_<V_US>mac_v2hiv2si. | |
5972 | (arc_vec_<V_US>mac_v2hiv2si_zero): New pattern. | |
5973 | * config/arc/constraints.md (Ral): Accumulator register | |
5974 | constraint. | |
5975 | ||
5976 | 2020-11-09 Aldy Hernandez <aldyh@redhat.com> | |
5977 | ||
5978 | * function-tests.c (test_ranges): Call range_op_tests. | |
5979 | * range-op.cc (build_range3): Move to value-range.cc. | |
5980 | (range3_tests): Same. | |
5981 | (int_range_max_tests): Same. | |
5982 | (multi_precision_range_tests): Same. | |
5983 | (range_tests): Same. | |
5984 | (operator_tests): Split up... | |
5985 | (range_op_tests): Split up... | |
5986 | (range_op_cast_tests): ...here. | |
5987 | (range_op_lshift_tests): ...here. | |
5988 | (range_op_rshift_tests): ...here. | |
5989 | (range_op_bitwise_and_tests): ...here. | |
5990 | * selftest.h (range_op_tests): New. | |
5991 | * value-range.cc (build_range3): New. | |
5992 | (range_tests_irange3): New. | |
5993 | (range_tests_int_range_max): New. | |
5994 | (range_tests_legacy): New. | |
5995 | (range_tests_misc): New. | |
5996 | (range_tests): New. | |
5997 | ||
5998 | 2020-11-09 Richard Biener <rguenther@suse.de> | |
5999 | ||
6000 | PR tree-optimization/97761 | |
6001 | * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Remove | |
6002 | premature end of DFS walk. | |
6003 | ||
6004 | 2020-11-09 Aldy Hernandez <aldyh@redhat.com> | |
6005 | ||
6006 | * value-range.cc (irange::swap_out_of_order_endpoints): Rewrite | |
6007 | into static function. | |
6008 | (irange::set): Cleanup redundant manipulations. | |
6009 | * value-range.h (irange::normalize_min_max): Modify object | |
6010 | in-place instead of modifying arguments. | |
6011 | ||
6012 | 2020-11-09 Andrea Corallo <andrea.corallo@arm.com> | |
6013 | ||
6014 | * config/aarch64/aarch64-builtins.c | |
6015 | (aarch64_expand_fcmla_builtin): Do not alter force_reg returned | |
6016 | register. | |
6017 | ||
6018 | 2020-11-09 Richard Biener <rguenther@suse.de> | |
6019 | ||
6020 | PR tree-optimization/97753 | |
6021 | * tree-vect-loop.c (vectorizable_induction): Fill vec_steps | |
6022 | when CSEing inside the group. | |
6023 | ||
6024 | 2020-11-09 Richard Biener <rguenther@suse.de> | |
6025 | ||
6026 | PR tree-optimization/97746 | |
6027 | * tree-vect-patterns.c (vect_determine_precisions): First walk PHIs. | |
6028 | ||
6029 | 2020-11-09 Richard Biener <rguenther@suse.de> | |
6030 | ||
6031 | * tree-ssa-pre.c (get_representative_for): CSE VN_INFO calls. | |
6032 | (create_expression_by_pieces): Likewise. | |
6033 | (insert_into_preds_of_block): Likewsie. | |
6034 | (do_pre_regular_insertion): Likewsie. | |
6035 | * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_insert): | |
6036 | Likewise. | |
6037 | (eliminate_dom_walker::eliminate_stmt): Likewise. | |
6038 | ||
6039 | 2020-11-09 Richard Biener <rguenther@suse.de> | |
6040 | ||
6041 | PR tree-optimization/97765 | |
6042 | * tree-ssa-pre.c (bb_bitmap_sets::phi_translate_table): Add. | |
6043 | (PHI_TRANS_TABLE): New macro. | |
6044 | (phi_translate_table): Remove. | |
6045 | (expr_pred_trans_d::pred): Remove. | |
6046 | (expr_pred_trans_d::hash): Simplify. | |
6047 | (expr_pred_trans_d::equal): Likewise. | |
6048 | (phi_trans_add): Adjust. | |
6049 | (phi_translate): Likewise. Remove hash-table expansion | |
6050 | detection and optimization. | |
6051 | (phi_translate_set): Allocate PHI_TRANS_TABLE here. | |
6052 | (init_pre): Adjsust. | |
6053 | (fini_pre): Free PHI_TRANS_TABLE. | |
6054 | ||
6055 | 2020-11-09 Lili Cui <lili.cui@intel.com> | |
6056 | ||
6057 | PR target/97685 | |
6058 | * config/i386/i386.h: | |
6059 | (PTA_BROADWELL): Delete PTA_PRFCHW. | |
6060 | (PTA_SILVERMONT): Add PTA_PRFCHW. | |
6061 | (PTA_KNL): Add PTA_PREFETCHWT1. | |
6062 | (PTA_TREMONT): Add PTA_MOVDIRI, PTA_MOVDIR64B, PTA_CLDEMOTE and PTA_WAITPKG. | |
6063 | * doc/invoke.texi: Delete PREFETCHW for broadwell, skylake, knl, knm, | |
6064 | skylake-avx512, cannonlake, icelake-client, icelake-server, cascadelake, | |
6065 | cooperlake, tigerlake and sapphirerapids. | |
6066 | Add PREFETCHW for silvermont, goldmont, goldmont-plus and tremont. | |
6067 | Add XSAVEC and XSAVES for goldmont, goldmont-plus and tremont. | |
6068 | Add MOVDIRI, MOVDIR64B, CLDEMOTE and WAITPKG for tremont. | |
6069 | Add KEYLOCKER and HREST for alderlake. | |
6070 | Add AMX-BF16, AMX-TILE, AMX-INT8 and UINTR for sapphirerapids. | |
6071 | Add KEYLOCKER for tigerlake. | |
6072 | ||
6073 | 2020-11-09 Kewen Lin <linkw@linux.ibm.com> | |
6074 | ||
6075 | PR rtl-optimization/97705 | |
6076 | * ira.c (ira): Refactor some regstat free/init/compute invocation | |
6077 | into lambda function regstat_recompute_for_max_regno, and call it | |
6078 | when max_regno increases as remove_scratches succeeds. | |
6079 | ||
6080 | 2020-11-08 David Edelsohn <dje.gcc@gmail.com> | |
6081 | ||
6082 | * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Change | |
6083 | DECL_IS_BUILTIN -> DECL_IS_UNDECLARED_BUILTIN. | |
6084 | ||
6085 | 2020-11-07 Martin Uecker <muecker@gwdg.de> | |
6086 | ||
6087 | * doc/extend.texi: Document mixing labels and code. | |
6088 | * doc/invoke.texi: Likewise. | |
6089 | ||
6090 | 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org> | |
6091 | ||
6092 | * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't abuse | |
6093 | operands[]. | |
6094 | (@tablejump<mode>_nospec): Ditto. | |
6095 | ||
6096 | 2020-11-06 Peter Bergner <bergner@linux.ibm.com> | |
6097 | ||
6098 | * config/rs6000/rs6000.h (BIGGEST_ALIGNMENT): Revert previous commit | |
6099 | so as not to break the ABI. | |
6100 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Set the ABI | |
6101 | mandated alignment for __vector_pair and __vector_quad types. | |
6102 | ||
6103 | 2020-11-06 Jeff Law <law@torsion.usersys.redhat.com> | |
6104 | ||
6105 | PR target/91489 | |
6106 | * config/i386/i386.md (simple_return): Also check | |
6107 | for ms_hook_prologue function attribute. | |
6108 | * config/i386/i386.c (ix86_can_use_return_insn_p): | |
6109 | Also check for ms_hook_prologue function attribute. | |
6110 | * config/i386/i386-protos.h (ix86_function_ms_hook_prologue): Declare. | |
6111 | ||
6112 | 2020-11-06 Segher Boessenkool <segher@kernel.crashing.org> | |
6113 | ||
6114 | PR target/96933 | |
6115 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use | |
6116 | TARGET_POWERPC64 instead of TARGET_64BIT. | |
6117 | ||
6118 | 2020-11-06 Joseph Myers <joseph@codesourcery.com> | |
6119 | ||
6120 | * builtins.def (BUILT_IN_NANSD32, BUILT_IN_NANSD64) | |
6121 | (BUILT_IN_NANSD128): New built-in functions. | |
6122 | * fold-const-call.c (fold_const_call): Handle the new built-in | |
6123 | functions. | |
6124 | * doc/extend.texi (__builtin_nansd32, __builtin_nansd64) | |
6125 | (__builtin_nansd128): Document. | |
6126 | * doc/sourcebuild.texi (Effective-Target Keywords): Document | |
6127 | fenv_exceptions_dfp. | |
6128 | ||
6129 | 2020-11-06 Bin Cheng <bin.cheng@linux.alibaba.com> | |
6130 | ||
6131 | * tree-ssa-uninit.c (find_var_cmp_const): New function. | |
6132 | (use_pred_not_overlap_with_undef_path_pred): Call above. | |
6133 | ||
6134 | 2020-11-06 Iain Sandoe <iain@sandoe.co.uk> | |
6135 | ||
6136 | * config/darwin-c.c: Allow for Darwin20 to correspond to macOS 11. | |
6137 | * config/darwin-driver.c: Likewise. | |
6138 | ||
6139 | 2020-11-06 Richard Biener <rguenther@suse.de> | |
6140 | ||
6141 | * tree-ssa-pre.c (expr_pred_trans_d): Modify so elements | |
6142 | are embedded rather than allocated. Remove hashval member, | |
6143 | make all members integers. | |
6144 | (phi_trans_add): Adjust accordingly. | |
6145 | (phi_translate): Likewise. Deal with re-allocation | |
6146 | of the table. | |
6147 | ||
6148 | 2020-11-06 Andrew MacLeod <amacleod@redhat.com> | |
6149 | ||
6150 | PR tree-optimization/97737 | |
6151 | PR tree-optimization/97741 | |
6152 | * gimple-range.cc: (gimple_ranger::range_of_stmt): Intersect newly | |
6153 | calculated ranges with the existing known global range. | |
6154 | ||
6155 | 2020-11-06 Darius Galis <darius.galis@cyberthorstudios.com> | |
6156 | ||
6157 | * config/rx/rx.md (CTRLREG_PC): Add. | |
6158 | * config/rx/rx.c (CTRLREG_PC): Add | |
6159 | (rx_expand_builtin_mvtc): Add warning: PC register cannot | |
6160 | be used as dest. | |
6161 | ||
6162 | 2020-11-06 Nathan Sidwell <nathan@acm.org> | |
6163 | ||
6164 | * tree.h (DECL_IS_BUILTIN): Rename to ... | |
6165 | (DECL_IS_UNDECLARED_BUILTIN): ... here. No need to use SOURCE_LOCUS. | |
6166 | * calls.c (maybe_warn_alloc_args_overflow): Adjust for rename. | |
6167 | * cfgexpand.c (pass_expand::execute): Likewise. | |
6168 | * dwarf2out.c (base_type_die, is_naming_typedef_decl): Likewise. | |
6169 | * godump.c (go_decl, go_type_decl): Likewise. | |
6170 | * print-tree.c (print_decl_identifier): Likewise. | |
6171 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
6172 | * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise. | |
6173 | * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise. | |
6174 | ||
6175 | 2020-11-06 David Candler <david.candler@arm.com> | |
6176 | ||
6177 | * config/aarch64/aarch64-builtins.c | |
6178 | (TYPES_SHIFT2IMM): Add define. | |
6179 | (TYPES_SHIFT2IMM_UUSS): Add define. | |
6180 | (TYPES_USHIFT2IMM): Add define. | |
6181 | * config/aarch64/aarch64-simd.md | |
6182 | (aarch64_<sur>q<r>shr<u>n2_n<mode>): Add new insn for upper saturating shift right. | |
6183 | * config/aarch64/aarch64-simd-builtins.def: Add intrinsics. | |
6184 | * config/aarch64/arm_neon.h: | |
6185 | (vqrshrn_high_n_s16): Expand using intrinsic rather than inline asm. | |
6186 | (vqrshrn_high_n_s32): Likewise. | |
6187 | (vqrshrn_high_n_s64): Likewise. | |
6188 | (vqrshrn_high_n_u16): Likewise. | |
6189 | (vqrshrn_high_n_u32): Likewise. | |
6190 | (vqrshrn_high_n_u64): Likewise. | |
6191 | (vqrshrun_high_n_s16): Likewise. | |
6192 | (vqrshrun_high_n_s32): Likewise. | |
6193 | (vqrshrun_high_n_s64): Likewise. | |
6194 | (vqshrn_high_n_s16): Likewise. | |
6195 | (vqshrn_high_n_s32): Likewise. | |
6196 | (vqshrn_high_n_s64): Likewise. | |
6197 | (vqshrn_high_n_u16): Likewise. | |
6198 | (vqshrn_high_n_u32): Likewise. | |
6199 | (vqshrn_high_n_u64): Likewise. | |
6200 | (vqshrun_high_n_s16): Likewise. | |
6201 | (vqshrun_high_n_s32): Likewise. | |
6202 | (vqshrun_high_n_s64): Likewise. | |
6203 | ||
6204 | 2020-11-06 Richard Sandiford <richard.sandiford@arm.com> | |
6205 | ||
6206 | * config/aarch64/aarch64-modes.def (VNx2BF, VNx4BF): Adjust nunits | |
6207 | and alignment based on the current VG. | |
6208 | * config/aarch64/iterators.md (SVE_ALL, SVE_24, SVE_2, SVE_4): Add | |
6209 | partial SVE BF modes. | |
6210 | (UNSPEC_REVBHW): New unspec. | |
6211 | (Vetype, Vesize, Vctype, VEL, Vel, vwcore, V_INT_CONTAINER) | |
6212 | (v_int_container, VPRED, vpred): Handle partial SVE BF modes. | |
6213 | (container_bits, Vcwtype): New mode attributes. | |
6214 | * config/aarch64/aarch64-sve.md | |
6215 | (@aarch64_sve_revbhw_<SVE_ALL:mode><PRED_HSD:mode>): New pattern. | |
6216 | (@aarch64_sve_dup_lane<mode>): Extended from SVE_FULL to SVE_ALL. | |
6217 | (@aarch64_sve_rev<mode>, @aarch64_sve_<perm_insn><mode>): Likewise. | |
6218 | (@aarch64_sve_ext<mode>): Likewise. | |
6219 | * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle | |
6220 | E_VNx2BFmode and E_VNx4BFmode. | |
6221 | (aarch64_evpc_rev_local): Base the analysis on the container size | |
6222 | instead of the element size. Use the new aarch64_sve_revbhw | |
6223 | patterns for SVE. | |
6224 | (aarch64_evpc_dup): Handle partial SVE data modes. Use the | |
6225 | container size instead of the element size when applying the | |
6226 | SVE immediate limit. Fix a previously incorrect bounds check. | |
6227 | (aarch64_expand_vec_perm_const_1): Handle partial SVE data modes. | |
6228 | ||
6229 | 2020-11-06 Martin Liska <mliska@suse.cz> | |
6230 | ||
6231 | * common.opt: Add new -fbit-tests option. | |
6232 | * doc/invoke.texi: Document the option. | |
6233 | * tree-switch-conversion.c (bit_test_cluster::find_bit_tests): | |
6234 | Use the option. | |
6235 | * tree-switch-conversion.h (is_enabled): New function. | |
6236 | ||
6237 | 2020-11-06 Richard Biener <rguenther@suse.de> | |
6238 | ||
6239 | * tree-ssa-sccvn.h (get_max_constant_value_id): Declare. | |
6240 | (get_next_constant_value_id): Likewise. | |
6241 | (value_id_constant_p): Inline and simplify. | |
6242 | * tree-ssa-sccvn.c (constant_value_ids): Remove. | |
6243 | (next_constant_value_id): Add. | |
6244 | (get_or_alloc_constant_value_id): Adjust. | |
6245 | (value_id_constant_p): Remove definition. | |
6246 | (get_max_constant_value_id): Define. | |
6247 | (get_next_value_id): Add assert for overflow. | |
6248 | (get_next_constant_value_id): Define. | |
6249 | (run_rpo_vn): Adjust. | |
6250 | (free_rpo_vn): Likewise. | |
6251 | (do_rpo_vn): Initialize next_constant_value_id. | |
6252 | * tree-ssa-pre.c (constant_value_expressions): New. | |
6253 | (add_to_value): Split into constant/non-constant value | |
6254 | handling. Avoid exact re-allocation. | |
6255 | (vn_valnum_from_value_id): Adjust. | |
6256 | (phi_translate_1): Remove spurious exact re-allocation. | |
6257 | (bitmap_find_leader): Adjust. Make sure we return | |
6258 | a CONSTANT value for a constant value id. | |
6259 | (do_pre_regular_insertion): Use 2 auto-elements for avail. | |
6260 | (do_pre_partial_partial_insertion): Likewise. | |
6261 | (init_pre): Allocate constant_value_expressions. | |
6262 | (fini_pre): Release constant_value_expressions. | |
6263 | ||
6264 | 2020-11-06 Richard Biener <rguenther@suse.de> | |
6265 | ||
6266 | PR tree-optimization/97706 | |
6267 | * tree-vect-patterns.c (possible_vector_mask_operation_p): | |
6268 | PHIs are possible mask operations. | |
6269 | (vect_determine_mask_precision): Handle PHIs. | |
6270 | (vect_determine_precisions): Walk PHIs in BB analysis. | |
6271 | ||
6272 | 2020-11-06 Richard Biener <rguenther@suse.de> | |
6273 | ||
6274 | * tree-vect-slp.c (vect_analyze_slp): Pass down the | |
6275 | SLP graph entry kind. | |
6276 | (vect_analyze_slp_instance): Simplify. | |
6277 | (vect_build_slp_instance): Adjust. | |
6278 | (vect_slp_check_for_constructors): Perform more | |
6279 | eligibility checks here. | |
6280 | ||
6281 | 2020-11-06 Jan Hubicka <jh@suse.cz> | |
6282 | ||
6283 | * ipa-ref.h (enum ipa_ref_use): Remove GTY marker. | |
6284 | (struct ipa_ref): Remove GTY marker; reorder for better packing. | |
6285 | (struct ipa_ref_list): Remove GTY marker; turn references | |
6286 | nad referring to va_heap, vl_ptr vectors; update accesors. | |
6287 | * cgraph.h (symtab_node::iterate_reference): Update. | |
6288 | * ipa-ref.c (ipa_ref::remove_reference): Update. | |
6289 | * symtab.c (symtab_node::create_reference): Update. | |
6290 | (symtab_node::remove_all_references): Update. | |
6291 | (symtab_node::resolve_alias): Update. | |
6292 | ||
6293 | 2020-11-06 Jakub Jelinek <jakub@redhat.com> | |
6294 | ||
6295 | * ipa-modref-tree.h: Fix comment typos. | |
6296 | * ipa-modref.c: Likewise. | |
6297 | ||
6298 | 2020-11-06 Andreas Krebbel <krebbel@linux.ibm.com> | |
6299 | ||
6300 | * config/s390/s390.c (s390_option_override_internal): Remove | |
6301 | override of inline params. | |
6302 | ||
6303 | 2020-11-06 Richard Biener <rguenther@suse.de> | |
6304 | ||
6305 | PR tree-optimization/97706 | |
6306 | * tree-vect-patterns.c (vect_determine_mask_precision): | |
6307 | Remove worklist operation. | |
6308 | (vect_determine_stmt_precisions): Do not call | |
6309 | vect_determine_mask_precision here. | |
6310 | (vect_determine_precisions): Compute mask precision | |
6311 | in a forward walk. | |
6312 | ||
6313 | 2020-11-06 Richard Biener <rguenther@suse.de> | |
6314 | ||
6315 | PR tree-optimization/97732 | |
6316 | * tree-vect-loop.c (vectorizable_induction): Convert the | |
6317 | init elements to the vector component type. | |
6318 | * gimple-fold.c (gimple_build_vector): Use CONSTANT_CLASS_P | |
6319 | rather than TREE_CONSTANT to determine if elements are | |
6320 | eligible for VECTOR_CSTs. | |
6321 | ||
6322 | 2020-11-06 Jan Hubicka <jh@suse.cz> | |
6323 | ||
6324 | * attr-fnspec.h (attr_fnspec::get_str): New accessor | |
6325 | * ipa-fnsummary.c (read_ipa_call_summary): Store also parm info | |
6326 | for builtins. | |
6327 | * ipa-modref.c (class fnspec_summary): New type. | |
6328 | (class fnspec_summaries_t): New type. | |
6329 | (modref_summary::modref_summary): Initialize writes_errno. | |
6330 | (struct modref_summary_lto): Add writes_errno. | |
6331 | (modref_summary_lto::modref_summary_lto): Initialize writes_errno. | |
6332 | (modref_summary::dump): Check for NULL pointers. | |
6333 | (modref_summary_lto::dump): Dump writes_errno. | |
6334 | (collapse_loads): Move up in source file. | |
6335 | (collapse_stores): New function. | |
6336 | (process_fnspec): Handle also internal calls. | |
6337 | (analyze_call): Likewise. | |
6338 | (analyze_stmt): Store fnspec string if needed. | |
6339 | (analyze_function): Initialize fnspec_sumarries. | |
6340 | (modref_summaries_lto::duplicate): Copy writes_errno. | |
6341 | (modref_write): Store writes_errno and fnspec summaries. | |
6342 | (read_section): Read writes_errno and fnspec summaries. | |
6343 | (modref_read): Initialize fnspec summaries. | |
6344 | (update_signature): Fix formating. | |
6345 | (compute_parm_map): Return true if sucessful. | |
6346 | (get_parm_type): New function. | |
6347 | (get_access_for_fnspec): New function. | |
6348 | (propagate_unknown_call): New function. | |
6349 | (modref_propagate_in_scc): Use it. | |
6350 | (pass_ipa_modref::execute): Delete fnspec_summaries. | |
6351 | (ipa_modref_c_finalize): Delete fnspec_summaries. | |
6352 | * ipa-prop.c: Include attr-fnspec.h. | |
6353 | (ipa_compute_jump_functions_for_bb): Also compute jump functions | |
6354 | for functions with fnspecs. | |
6355 | (ipa_read_edge_info): Read jump functions for builtins. | |
6356 | ||
6357 | 2020-11-06 Jan Hubicka <jh@suse.cz> | |
6358 | ||
6359 | * ipa-fnsummary.h (class size_time_entry): Do not GTY annotate. | |
6360 | (class ipa_fnsummary): Turn size_time_table to auto_vec and | |
6361 | call_size_time_table to effecient vec; update constructors. | |
6362 | * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Update. | |
6363 | (ipa_fn_summary::~ipa_fn_summary): Update. | |
6364 | (ipa_fn_summary_t::duplicate): Update. | |
6365 | (ipa_dump_fn_summary): Update. | |
6366 | (set_switch_stmt_execution_predicate): Update. | |
6367 | (analyze_function_body): Update. | |
6368 | (estimate_calls_size_and_time): Update. | |
6369 | (ipa_call_context::estimate_size_and_time): Update. | |
6370 | (ipa_merge_fn_summary_after_inlining): Update. | |
6371 | (ipa_update_overall_fn_summary): Update. | |
6372 | (inline_read_section): Update. | |
6373 | (ipa_fn_summary_write): Update. | |
6374 | ||
6375 | 2020-11-06 Richard Biener <rguenther@suse.de> | |
6376 | ||
6377 | PR tree-optimization/97733 | |
6378 | * tree-vect-slp.c (vect_analyze_slp_instance): If less | |
6379 | than two reductions were relevant or live do nothing. | |
6380 | ||
6381 | 2020-11-06 Jeff Law <law@redhat.com> | |
6382 | ||
6383 | PR tree-optimization/97223 | |
6384 | * match.pd (overflow detection and optimization): Handle conversions. | |
6385 | ||
6386 | 2020-11-06 Eugene Rozenfeld <erozen@microsoft.com> | |
6387 | ||
6388 | * match.pd (x >> x): New pattern. | |
6389 | ||
6390 | 2020-11-06 Kito Cheng <kito.cheng@sifive.com> | |
6391 | ||
6392 | * common/config/riscv/riscv-common.c (riscv_implied_info): | |
6393 | Add static and const. | |
6394 | (riscv_subset_list::handle_implied_ext): Add const due to | |
6395 | riscv_implied_info changed to const. | |
6396 | ||
6397 | 2020-11-06 Kito Cheng <kito.cheng@sifive.com> | |
6398 | ||
6399 | PR target/96307 | |
6400 | * toplev.c (process_options): Remove param_asan_stack checking for kasan | |
6401 | option checking. | |
6402 | ||
6403 | 2020-11-05 Marek Polacek <polacek@redhat.com> | |
6404 | ||
6405 | PR c++/97675 | |
6406 | * doc/invoke.texi: Document -Wexceptions. | |
6407 | ||
6408 | 2020-11-05 Marek Polacek <polacek@redhat.com> | |
6409 | ||
6410 | PR c++/25814 | |
6411 | * doc/invoke.texi: Document -Wvexing-parse. | |
6412 | ||
6413 | 2020-11-05 Andrew MacLeod <amacleod@redhat.com> | |
6414 | ||
6415 | PR tree-optimization/97725 | |
6416 | * range-op.cc (operator_equal::fold_range): Use new tmp value. | |
6417 | (operator_not_equal::fold_range): Ditto. | |
6418 | * value-query.cc (range_query::value_of_expr): Use int_range_max | |
6419 | not a value_range. | |
6420 | (range_query::value_on_edge): Ditto. | |
6421 | (range_query::value_of_stmt): Ditto. | |
6422 | ||
6423 | 2020-11-05 Olivier Hainque <hainque@adacore.com> | |
6424 | ||
6425 | * config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18): | |
6426 | Remove definition. | |
6427 | (STATIC_CHAIN_REGNUM): Redefine to 9. | |
6428 | ||
6429 | 2020-11-05 Olivier Hainque <hainque@adacore.com> | |
6430 | ||
6431 | * config/aarch64/aarch64.md: Define PROBE_STACK_FIRST_REGNUM | |
6432 | and PROBE_STACK_SECOND_REGNUM constants, designating r10/r11. | |
6433 | Replacements for the PROBE_STACK_FIRST/SECOND_REG constants in | |
6434 | aarch64.c. | |
6435 | * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG): Remove. | |
6436 | (PROBE_STACK_SECOND_REG): Remove. | |
6437 | (aarch64_emit_probe_stack_range): Adjust to the _REG -> _REGNUM | |
6438 | suffix update for PROBE_STACK register numbers. | |
6439 | ||
6440 | 2020-11-05 Jan Hubicka <jh@suse.cz> | |
6441 | ||
6442 | * gimple.c (gimple_call_fnspec): Handle C++ new and delete. | |
6443 | * gimple.h (gimple_call_from_new_or_delete): Constify parameter. | |
6444 | ||
6445 | 2020-11-05 Aldy Hernandez <aldyh@redhat.com> | |
6446 | ||
6447 | PR tree-optimization/97721 | |
6448 | * gimple-range.cc (get_tree_range): Drop overflow from constants. | |
6449 | ||
6450 | 2020-11-05 David Malcolm <dmalcolm@redhat.com> | |
6451 | ||
6452 | * tree-diagnostic-path.cc (struct path_summary::event_range): Move | |
6453 | out of path_summary to... | |
6454 | (struct event_range): ...here. | |
6455 | (class path_summary): Convert to... | |
6456 | (struct path_summary): ...this. | |
6457 | (path_summary::m_ranges): Drop "private". | |
6458 | (path_summary::print): Convert to... | |
6459 | (print_path_summary_as_text): ...this, passing in the path_summary | |
6460 | explicitly. | |
6461 | (default_tree_diagnostic_path_printer): Update for above change. | |
6462 | (selftest::test_empty_path): Likewise. | |
6463 | (selftest::test_intraprocedural_path): Likewise. | |
6464 | (selftest::test_interprocedural_path_1): Likewise. | |
6465 | (selftest::test_interprocedural_path_2): Likewise. | |
6466 | (selftest::test_recursion): Likewise. | |
6467 | ||
6468 | 2020-11-05 qing zhao <qinzhao@gcc.gnu.org> | |
6469 | ||
6470 | PR target/97715 | |
6471 | * config/i386/i386.c (zero_all_st_registers): Return | |
6472 | earlier when the FPU is disabled. | |
6473 | ||
6474 | 2020-11-05 Jan Hubicka <jh@suse.cz> | |
6475 | ||
6476 | * ipa-modref.c (parm_map_for_arg): Initialize parm_offset and | |
6477 | parm_offset_knonw. | |
6478 | (read_section): Set writes_errno to false. | |
6479 | ||
6480 | 2020-11-05 Richard Biener <rguenther@suse.de> | |
6481 | ||
6482 | * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): | |
6483 | Use the original stmts. | |
6484 | (vect_slp_analyze_node_alignment): Use the pattern stmt. | |
6485 | * tree-vect-slp.c (vect_fixup_store_groups_with_patterns): | |
6486 | New function. | |
6487 | (vect_slp_analyze_bb_1): Call it. | |
6488 | ||
6489 | 2020-11-05 Tamar Christina <tamar.christina@arm.com> | |
6490 | ||
6491 | * tree-vect-slp.c (vect_slp_tree_permute_noop_p): New. | |
6492 | (vect_optimize_slp): Optimize permutes. | |
6493 | (vectorizable_slp_permutation): Fix typo. | |
6494 | ||
6495 | 2020-11-05 Richard Biener <rguenther@suse.de> | |
6496 | ||
6497 | PR debug/97718 | |
6498 | * dwarf2out.c (add_abstract_origin_attribute): Make sure to | |
6499 | point to the abstract instance. | |
6500 | ||
6501 | 2020-11-05 Tamar Christina <tamar.christina@arm.com> | |
6502 | ||
6503 | * tree-vect-loop.c (vect_analyze_loop_2): Check kind. | |
6504 | * tree-vect-slp.c (vect_build_slp_instance): New. | |
6505 | (enum slp_instance_kind): Move to... | |
6506 | * tree-vectorizer.h (enum slp_instance_kind): .. Here | |
6507 | (SLP_INSTANCE_KIND): New. | |
6508 | ||
6509 | 2020-11-05 Kewen Lin <linkw@linux.ibm.com> | |
6510 | ||
6511 | PR target/96933 | |
6512 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use direct move | |
6513 | instructions for vector construction with char/short types. | |
6514 | * config/rs6000/rs6000.md (p8_mtvsrwz_v16qisi2): New define_insn. | |
6515 | (p8_mtvsrd_v16qidi2): Likewise. | |
6516 | ||
6517 | 2020-11-04 Tamar Christina <tamar.christina@arm.com> | |
6518 | ||
6519 | * tree-vect-slp.c (vect_analyze_slp_instance): Moved load/store lanes | |
6520 | check to ... | |
6521 | * tree-vect-loop.c (vect_analyze_loop_2): ..Here | |
6522 | ||
6523 | 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com> | |
6524 | ||
6525 | * config/s390/s390.c (NR_C_MODES): Unhardcode. | |
6526 | (s390_alloc_pool): Use size_t for iterating from 0 to | |
6527 | NR_C_MODES. | |
6528 | (s390_add_constant): Likewise. | |
6529 | (s390_find_constant): Likewise. | |
6530 | (s390_dump_pool): Likewise. | |
6531 | (s390_free_pool): Likewise. | |
6532 | ||
6533 | 2020-11-04 Ilya Leoshkevich <iii@linux.ibm.com> | |
6534 | ||
6535 | * config/s390/s390.md (RRe): Remove. | |
6536 | (RXe): Remove. | |
6537 | ||
6538 | 2020-11-04 Andrew MacLeod <amacleod@redhat.com> | |
6539 | ||
6540 | PR tree-optimization/97515 | |
6541 | * gimple-range-cache.h (class ranger_cache): New prototypes plus | |
6542 | temporal cache pointer. | |
6543 | * gimple-range-cache.cc (struct range_timestamp): New. | |
6544 | (class temporal_cache): New. | |
6545 | (temporal_cache::temporal_cache): New. | |
6546 | (temporal_cache::~temporal_cache): New. | |
6547 | (temporal_cache::get_timestamp): New. | |
6548 | (temporal_cache::set_dependency): New. | |
6549 | (temporal_cache::temporal_value): New. | |
6550 | (temporal_cache::current_p): New. | |
6551 | (temporal_cache::set_timestamp): New. | |
6552 | (temporal_cache::set_always_current): New. | |
6553 | (ranger_cache::ranger_cache): Allocate the temporal cache. | |
6554 | (ranger_cache::~ranger_cache): Free temporal cache. | |
6555 | (ranger_cache::get_non_stale_global_range): New. | |
6556 | (ranger_cache::set_global_range): Add a timestamp. | |
6557 | (ranger_cache::register_dependency): New. Add timestamp dependency. | |
6558 | * gimple-range.cc (gimple_ranger::range_of_range_op): Add operand | |
6559 | dependencies. | |
6560 | (gimple_ranger::range_of_phi): Ditto. | |
6561 | (gimple_ranger::range_of_stmt): Check if global range is stale, and | |
6562 | recalculate if so. | |
6563 | ||
6564 | 2020-11-04 Tobias Burnus <tobias@codesourcery.com> | |
6565 | ||
6566 | * targhooks.c (default_zero_call_used_regs): Fix flag-name typo | |
6567 | in sorry. | |
6568 | ||
6569 | 2020-11-04 Richard Biener <rguenther@suse.de> | |
6570 | ||
6571 | * tree-vectorizer.h (vectorizable_phi): Adjust prototype. | |
6572 | * tree-vect-stmts.c (vect_transform_stmt): Adjust. | |
6573 | (vect_analyze_stmt): Pass cost_vec to vectorizable_phi. | |
6574 | * tree-vect-loop.c (vectorizable_phi): Do costing. | |
6575 | ||
6576 | 2020-11-04 Richard Biener <rguenther@suse.de> | |
6577 | ||
6578 | PR tree-optimization/97709 | |
6579 | * tree-vect-loop.c (vectorizable_live_operation): Set | |
6580 | SSA_NAME_OCCURS_IN_ABNORMAL_PHI when necessary. | |
6581 | ||
6582 | 2020-11-04 Jakub Jelinek <jakub@redhat.com> | |
6583 | ||
6584 | PR tree-optimization/97690 | |
6585 | * tree-ssa-phiopt.c (conditional_replacement): Also optimize | |
6586 | cond ? pow2p_cst : 0 as ((type) cond) << cst. | |
6587 | ||
6588 | 2020-11-04 Richard Biener <rguenther@suse.de> | |
6589 | ||
6590 | * tree-vect-loop.c (vectorizable_induction): Re-instantiate | |
6591 | previously removed CSE of SLP IVs. | |
6592 | ||
6593 | 2020-11-04 Uroš Bizjak <ubizjak@gmail.com> | |
6594 | ||
6595 | * config/i386/i386-options.c (ix86_recompute_optlev_based_flags): | |
6596 | Fix Intel MCU psABI comment w.r.t DEFAULT_PCC_STRUCT_RETURN. | |
6597 | ||
6598 | 2020-11-04 Richard Biener <rguenther@suse.de> | |
6599 | ||
6600 | PR bootstrap/97666 | |
6601 | * tree-vect-slp.c (vect_build_slp_tree_2): Revert previous | |
6602 | fix and instead adjust the memset. | |
6603 | ||
6604 | 2020-11-04 Pat Bernardi <bernardi@adacore.com> | |
6605 | ||
6606 | * config/i386/i386elf.h (SUBTARGET_RETURN_IN_MEMORY): Remove. | |
6607 | (ASM_OUTPUT_ASCII): Likewise. | |
6608 | (DEFAULT_PCC_STRUCT_RETURN): Define. | |
6609 | * config/i386/i386.c (ix86_return_in_memory): Remove | |
6610 | SUBTARGET_RETURN_IN_MEMORY. | |
6611 | ||
6612 | 2020-11-04 liuhongt <hongtao.liu@intel.com> | |
6613 | ||
6614 | PR target/97540 | |
6615 | * ira.c: (ira_setup_alts): Extract memory from operand only | |
6616 | for special memory constraint. | |
6617 | * recog.c (asm_operand_ok): Ditto. | |
6618 | * lra-constraints.c (process_alt_operands): MEM_P is | |
6619 | required for normal memory constraint. | |
6620 | ||
6621 | 2020-11-04 liuhongt <hongtao.liu@intel.com> | |
6622 | ||
6623 | PR target/97532 | |
6624 | * lra-constraints.c (valid_address_p): Handle operand of | |
6625 | special memory constraint. | |
6626 | (process_address_1): Ditto. | |
6627 | ||
6628 | 2020-11-03 Jan Hubicka <hubicka@ucw.cz> | |
6629 | ||
6630 | PR ipa/97695 | |
6631 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Fix ICE with | |
6632 | in dumping code. | |
6633 | (cgraph_node::remove): Save clone info before releasing it and pass it | |
6634 | to unregister. | |
6635 | * cgraph.h (symtab_node::unregister): Add clone_info parameter. | |
6636 | (cgraph_clone::unregister): Likewise. | |
6637 | * cgraphclones.c (cgraph_node::find_replacement): Copy clone info | |
6638 | * symtab-clones.cc (clone_infos_t::duplicate): Remove. | |
6639 | (clone_info::get_create): Simplify. | |
6640 | * symtab.c (symtab_node::unregister): Pass around clone info. | |
6641 | * varpool.c (varpool_node::remove): Update. | |
6642 | ||
6643 | 2020-11-03 Thomas Schwinge <thomas@codesourcery.com> | |
6644 | ||
6645 | * omp-low.c (scan_omp_for) <OpenACC>: Use proper location to | |
6646 | 'inform' of enclosing parent compute construct. | |
6647 | ||
6648 | 2020-11-03 Jan Hubicka <hubicka@ucw.cz> | |
6649 | ||
6650 | PR ipa/97698 | |
6651 | * cgraphclones.c (duplicate_thunk_for_node): Check that info is | |
6652 | non-NULL. | |
6653 | ||
6654 | 2020-11-03 Uroš Bizjak <ubizjak@gmail.com> | |
6655 | ||
6656 | * config/i386/i386.c (ix86_function_arg_regno_p): Use up to | |
6657 | SSE_REGPARM_MAX registers to pass function parameters | |
6658 | for 32bit Mach-O targets. | |
6659 | * config/i386/i386.h (X86_32_MMX_REGPARM_MAX): New macro. | |
6660 | (MMX_REGPARM_MAX): Use it. | |
6661 | ||
6662 | 2020-11-03 Dennis Zhang <dennis.zhang@arm.com> | |
6663 | ||
6664 | * config/aarch64/aarch64-simd-builtins.def (vget_lo_half): New entry. | |
6665 | (vget_hi_half): Likewise. | |
6666 | * config/aarch64/aarch64-simd.md (aarch64_vget_lo_halfv8bf): New entry. | |
6667 | (aarch64_vget_hi_halfv8bf): Likewise. | |
6668 | * config/aarch64/arm_neon.h (vget_low_bf16): New intrinsic. | |
6669 | (vget_high_bf16): Likewise. | |
6670 | ||
6671 | 2020-11-03 Yang Yang <yangyang305@huawei.com> | |
6672 | ||
6673 | * cgraph.h (struct cgraph_simd_clone): Change field "simdlen" of | |
6674 | struct cgraph_simd_clone from unsigned int to poly_uint64. | |
6675 | * config/aarch64/aarch64.c | |
6676 | (aarch64_simd_clone_compute_vecsize_and_simdlen): adaptation of | |
6677 | operations on "simdlen". | |
6678 | * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): | |
6679 | Printf formats update. | |
6680 | * gengtype.c (main): Handle poly_uint64. | |
6681 | * omp-simd-clone.c (simd_clone_mangle): Likewise.Re | |
6682 | (simd_clone_adjust_return_type): Likewise. | |
6683 | (create_tmp_simd_array): Likewise. | |
6684 | (simd_clone_adjust_argument_types): Likewise. | |
6685 | (simd_clone_init_simd_arrays): Likewise. | |
6686 | (ipa_simd_modify_function_body): Likewise. | |
6687 | (simd_clone_adjust): Likewise. | |
6688 | (expand_simd_clones): Likewise. | |
6689 | * poly-int-types.h (vector_unroll_factor): New macro. | |
6690 | * poly-int.h (constant_multiple_p): Add two-argument versions. | |
6691 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. | |
6692 | ||
6693 | 2020-11-03 Richard Biener <rguenther@suse.de> | |
6694 | ||
6695 | PR tree-optimization/97623 | |
6696 | * params.opt (-param=max-pre-hoist-insert-iterations): New. | |
6697 | * doc/invoke.texi (max-pre-hoist-insert-iterations): Document. | |
6698 | * tree-ssa-pre.c (insert): Do at most max-pre-hoist-insert-iterations | |
6699 | hoist insert iterations. | |
6700 | ||
6701 | 2020-11-03 Richard Biener <rguenther@suse.de> | |
6702 | ||
6703 | PR middle-end/97579 | |
6704 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Use | |
6705 | the correct types for the vcond_mask/vec_cmp optab queries. | |
6706 | ||
6707 | 2020-11-03 Andrew MacLeod <amacleod@redhat.com> | |
6708 | ||
6709 | * gimple-range-cache.cc (ssa_global_cache::get_global_range): Return | |
6710 | true if there was a previous range set. | |
6711 | (ranger_cache::ranger_cache): Take a gimple_ranger parameter. | |
6712 | (ranger_cache::set_global_range): Propagate the value if updating. | |
6713 | (ranger_cache::propagate_cache): Renamed from iterative_cache_update. | |
6714 | (ranger_cache::propagate_updated_value): New. Split from: | |
6715 | (ranger_cache::fill_block_cache): Split out value propagator. | |
6716 | * gimple-range-cache.h (ssa_global_cache): Update prototypes. | |
6717 | (ranger_cache): Update prototypes. | |
6718 | ||
6719 | 2020-11-03 Andrew MacLeod <amacleod@redhat.com> | |
6720 | ||
6721 | * gimple-range-cache.h (block_range_cache): Add new entry point. | |
6722 | (ranger_cache): Privatize global abnd block cache members. | |
6723 | * gimple-range-cache.cc (ssa_block_ranges::set_bb_range): Add bounds | |
6724 | check. | |
6725 | (ssa_block_ranges::set_bb_varying): Ditto. | |
6726 | (ssa_block_ranges::get_bb_range): Ditto. | |
6727 | (ssa_block_ranges::bb_range_p): Ditto. | |
6728 | (block_range_cache::get_block_ranges): Fix formatting. | |
6729 | (block_range_cache::query_block_ranges): New. | |
6730 | (block_range_cache::get_bb_range): Use Query_block_ranges. | |
6731 | (block_range_cache::bb_range_p): Ditto. | |
6732 | (ranger_cache::dump): New. | |
6733 | (ranger_cache::get_global_range): New. | |
6734 | (ranger_cache::set_global_range): New. | |
6735 | * gimple-range.cc (gimple_ranger::range_of_expr): Use new API. | |
6736 | (gimple_ranger::range_of_stmt): Ditto. | |
6737 | (gimple_ranger::export_global_ranges): Ditto. | |
6738 | (gimple_ranger::dump): Ditto. | |
6739 | ||
6740 | 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
6741 | ||
6742 | * fold-const.c (getbyterep): Remove duplicated statement. | |
6743 | ||
6744 | 2020-11-03 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
6745 | ||
6746 | PR target/97205 | |
6747 | * cfgexpand.c (align_local_variable): Make SSA_NAMEs | |
6748 | at least MODE_ALIGNED. | |
6749 | (expand_one_stack_var_at): Increase MEM_ALIGN for SSA_NAMEs. | |
6750 | ||
6751 | 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com> | |
6752 | Nannan Zheng <zhengnannan@huawei.com> | |
6753 | ||
6754 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
6755 | for AES/SHA/SM3/SM4 intrinsics. | |
6756 | ||
6757 | 2020-11-03 Zhiheng Xie <xiezhiheng@huawei.com> | |
6758 | Nannan Zheng <zhengnannan@huawei.com> | |
6759 | ||
6760 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
6761 | for compare intrinsics. | |
6762 | ||
6763 | 2020-11-03 Richard Biener <rguenther@suse.de> | |
6764 | ||
6765 | * dwarf2out.c (maybe_create_die_with_external_ref): Remove | |
6766 | hashtable entry. | |
6767 | ||
6768 | 2020-11-03 Andrea Corallo <andrea.corallo@arm.com> | |
6769 | ||
6770 | * config/arm/arm_neon.h (vst2_lane_bf16, vst2q_lane_bf16) | |
6771 | (vst3_lane_bf16, vst3q_lane_bf16, vst4_lane_bf16) | |
6772 | (vst4q_lane_bf16): New intrinsics. | |
6773 | * config/arm/arm_neon_builtins.def: Touch it for: | |
6774 | __builtin_neon_vst2_lanev4bf, __builtin_neon_vst2_lanev8bf, | |
6775 | __builtin_neon_vst3_lanev4bf, __builtin_neon_vst3_lanev8bf, | |
6776 | __builtin_neon_vst4_lanev4bf,__builtin_neon_vst4_lanev8bf. | |
6777 | ||
6778 | 2020-11-03 Andrea Corallo <andrea.corallo@arm.com> | |
6779 | ||
6780 | * config/arm/arm_neon.h (vld2_lane_bf16, vld2q_lane_bf16) | |
6781 | (vld3_lane_bf16, vld3q_lane_bf16, vld4_lane_bf16) | |
6782 | (vld4q_lane_bf16): Add intrinsics. | |
6783 | * config/arm/arm_neon_builtins.def: Touch for: | |
6784 | __builtin_neon_vld2_lanev4bf, __builtin_neon_vld2_lanev8bf, | |
6785 | __builtin_neon_vld3_lanev4bf, __builtin_neon_vld3_lanev8bf, | |
6786 | __builtin_neon_vld4_lanev4bf, __builtin_neon_vld4_lanev8bf. | |
6787 | * config/arm/iterators.md (VQ_HS): Add V8BF to the iterator. | |
6788 | ||
6789 | 2020-11-03 Andrea Corallo <andrea.corallo@arm.com> | |
6790 | ||
6791 | * config/arm/arm_neon.h (vst1_bf16, vst1q_bf16): Add intrinsics. | |
6792 | * config/arm/arm_neon_builtins.def : Touch for: | |
6793 | __builtin_neon_vst1v4bf, __builtin_neon_vst1v8bf. | |
6794 | ||
6795 | 2020-11-03 Andrea Corallo <andrea.corallo@arm.com> | |
6796 | ||
6797 | * config/arm/arm-builtins.c (VAR14): Define macro. | |
6798 | * config/arm/arm_neon_builtins.def: Touch for: | |
6799 | __builtin_neon_vld1v4bf, __builtin_neon_vld1v8bf. | |
6800 | * config/arm/arm_neon.h (vld1_bf16, vld1q_bf16): Add intrinsics. | |
6801 | ||
6802 | 2020-11-03 Andrea Corallo <andrea.corallo@arm.com> | |
6803 | ||
6804 | * config/arm/arm_neon.h (vst1_lane_bf16, vst1q_lane_bf16): Add | |
6805 | intrinsics. | |
6806 | * config/arm/arm_neon_builtins.def (STORE1LANE): Add v4bf, v8bf. | |
6807 | ||
6808 | 2020-11-03 Andrea Corallo <andrea.corallo@arm.com> | |
6809 | ||
6810 | * config/arm/arm_neon_builtins.def: Add to LOAD1LANE v4bf, v8bf. | |
6811 | * config/arm/arm_neon.h (vld1_lane_bf16, vld1q_lane_bf16): Add | |
6812 | intrinsics. | |
6813 | ||
6814 | 2020-11-03 Richard Biener <rguenther@suse.de> | |
6815 | ||
6816 | PR bootstrap/97666 | |
6817 | * tree-vect-slp.c (vect_build_slp_tree_2): Scale | |
6818 | allocation of skip_args by sizeof (bool). | |
6819 | ||
6820 | 2020-11-03 Richard Biener <rguenther@suse.de> | |
6821 | ||
6822 | PR tree-optimization/80928 | |
6823 | * tree-vect-loop.c (vectorizable_induction): SLP vectorize | |
6824 | nested inductions. | |
6825 | ||
6826 | 2020-11-03 Jan Hubicka <hubicka@ucw.cz> | |
6827 | ||
6828 | PR ipa/97578 | |
6829 | * ipa-inline-transform.c (maybe_materialize_called_clones): New | |
6830 | function. | |
6831 | (inline_transform): Use it. | |
6832 | ||
6833 | 2020-11-03 Richard Biener <rguenther@suse.de> | |
6834 | ||
6835 | PR tree-optimization/97678 | |
6836 | * tree-vect-slp.c (vect_build_slp_tree_2): Do not track | |
6837 | the initial values of inductions when not nested. | |
6838 | * tree-vect-loop.c (vectorizable_induction): Look at | |
6839 | PHI node initial values again for SLP and not nested | |
6840 | inductions. Handle LOOP_VINFO_MASK_SKIP_NITERS and cost | |
6841 | invariants. | |
6842 | ||
6843 | 2020-11-03 Uroš Bizjak <ubizjak@gmail.com> | |
6844 | ||
6845 | * config/i386/sse.md (aes<aeswideklvariant>u8): | |
6846 | Do not use xmm_regs array. Fix whitespace. | |
6847 | ||
6848 | 2020-11-03 Uroš Bizjak <ubizjak@gmail.com> | |
6849 | ||
6850 | * config/i386/i386-expand.c (ix86_expand_builtin): Fix comment. | |
6851 | ||
6852 | 2020-11-03 Thomas Schwinge <thomas@codesourcery.com> | |
6853 | ||
6854 | * omp-low.c (scan_omp_for) <OpenACC>: Move earlier inconsistent | |
6855 | nested 'reduction' clauses checking. | |
6856 | ||
6857 | 2020-11-03 Thomas Schwinge <thomas@codesourcery.com> | |
6858 | ||
6859 | * omp-low.c (scan_omp_for) <OpenACC>: More precise diagnostics for | |
6860 | 'gang', 'worker', 'vector' clauses with arguments only allowed in | |
6861 | 'kernels' regions. | |
6862 | ||
6863 | 2020-11-03 Kewen Lin <linkw@gcc.gnu.org> | |
6864 | ||
6865 | PR tree-optimization/96789 | |
6866 | * function.h (struct function): New member unsigned pending_TODOs. | |
6867 | * passes.c (class pass_pre_slp_scalar_cleanup): New class. | |
6868 | (make_pass_pre_slp_scalar_cleanup): New function. | |
6869 | (pass_data_pre_slp_scalar_cleanup): New pass data. | |
6870 | * passes.def: (pass_pre_slp_scalar_cleanup): New pass, add | |
6871 | pass_fre and pass_dse as its children. | |
6872 | * timevar.def (TV_SCALAR_CLEANUP): New timevar. | |
6873 | * tree-pass.h (PENDING_TODO_force_next_scalar_cleanup): New | |
6874 | pending TODO flag. | |
6875 | (make_pass_pre_slp_scalar_cleanup): New declare. | |
6876 | * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): | |
6877 | Once any outermost loop gets unrolled, flag cfun pending_TODOs | |
6878 | PENDING_TODO_force_next_scalar_cleanup on. | |
6879 | ||
6880 | 2020-11-02 Alan Modra <amodra@gmail.com> | |
6881 | ||
6882 | PR middle-end/97267 | |
6883 | * calls.h (maybe_complain_about_tail_call): Declare. | |
6884 | * calls.c (maybe_complain_about_tail_call): Make global. | |
6885 | (can_implement_as_sibling_call_p): Delete reg_parm_stack_space | |
6886 | param. Adjust caller. Move REG_PARM_STACK_SPACE check to.. | |
6887 | * config/i386/i386.c (ix86_function_ok_for_sibcall): ..here. | |
6888 | ||
6889 | 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com> | |
6890 | ||
6891 | * ira.c (ira_remove_scratches): Rename to remove_scratches. Make | |
6892 | it static and returning flag of any change. | |
6893 | (ira.c): Call ira_expand_reg_equiv in case of removing scratches. | |
6894 | ||
6895 | 2020-11-02 H.J. Lu <hjl.tools@gmail.com> | |
6896 | ||
6897 | PR target/97140 | |
6898 | * config/i386/i386-expand.c (ix86_expand_builtin): Require MMX | |
6899 | for __builtin_ia32_maskmovq. | |
6900 | ||
6901 | 2020-11-02 Martin Sebor <msebor@redhat.com> | |
6902 | ||
6903 | * doc/invoke.texi (-Wstringop-overflow): Correct default setting. | |
6904 | (-Wstringop-overread): Move past -Wstringop-overflow. | |
6905 | ||
6906 | 2020-11-02 François-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
6907 | ||
6908 | PR bootstrap/57076 | |
6909 | * Makefile.in (gcc-vers.texi): Quote @, { and }. | |
6910 | ||
6911 | 2020-11-02 Carl Love <cel@us.ibm.com> | |
6912 | ||
6913 | PR target/93449 | |
6914 | * config/rs6000/altivec.h (__builtin_bcdadd, __builtin_bcdadd_lt, | |
6915 | __builtin_bcdadd_eq, __builtin_bcdadd_gt, __builtin_bcdadd_ofl, | |
6916 | __builtin_bcdadd_ov, __builtin_bcdsub, __builtin_bcdsub_lt, | |
6917 | __builtin_bcdsub_eq, __builtin_bcdsub_gt, __builtin_bcdsub_ofl, | |
6918 | __builtin_bcdsub_ov, __builtin_bcdinvalid, __builtin_bcdmul10, | |
6919 | __builtin_bcddiv10, __builtin_bcd2dfp, __builtin_bcdcmpeq, | |
6920 | __builtin_bcdcmpgt, __builtin_bcdcmplt, __builtin_bcdcmpge, | |
6921 | __builtin_bcdcmple): Add defines. | |
6922 | * config/rs6000/altivec.md: Add UNSPEC_BCDSHIFT. | |
6923 | (BCD_TEST): Add le, ge to code iterator. | |
6924 | Add VBCD mode iterator. | |
6925 | (bcd<bcd_add_sub>_test, *bcd<bcd_add_sub>_test2, | |
6926 | bcd<bcd_add_sub>_<code>, bcd<bcd_add_sub>_<code>): Add mode to name. | |
6927 | Change iterator from V1TI to VBCD. | |
6928 | (*bcdinvalid_<mode>, bcdshift_v16qi): New define_insn. | |
6929 | (bcdinvalid_<mode>, bcdmul10_v16qi, bcddiv10_v16qi): New define. | |
6930 | * config/rs6000/dfp.md (dfp_denbcd_v16qi_inst): New define_insn. | |
6931 | (dfp_denbcd_v16qi): New define_expand. | |
6932 | * config/rs6000/rs6000-builtin.def (BU_P8V_MISC_1): New define. | |
6933 | (BCDADD): Replaced with BCDADD_V1TI and BCDADD_V16QI. | |
6934 | (BCDADD_LT): Replaced with BCDADD_LT_V1TI and BCDADD_LT_V16QI. | |
6935 | (BCDADD_EQ): Replaced with BCDADD_EQ_V1TI and BCDADD_EQ_V16QI. | |
6936 | (BCDADD_GT): Replaced with BCDADD_GT_V1TI and BCDADD_GT_V16QI. | |
6937 | (BCDADD_OV): Replaced with BCDADD_OV_V1TI and BCDADD_OV_V16QI. | |
6938 | (BCDSUB_V1TI, BCDSUB_V16QI, BCDSUB_LT_V1TI, BCDSUB_LT_V16QI, | |
6939 | BCDSUB_LE_V1TI, BCDSUB_LE_V16QI, BCDSUB_EQ_V1TI, BCDSUB_EQ_V16QI, | |
6940 | BCDSUB_GT_V1TI, BCDSUB_GT_V16QI, BCDSUB_GE_V1TI, BCDSUB_GE_V16QI, | |
6941 | BCDSUB_OV_V1TI, BCDSUB_OV_V16QI, BCDINVALID_V1TI, BCDINVALID_V16QI, | |
6942 | BCDMUL10_V16QI, BCDDIV10_V16QI, DENBCD_V16QI): New builtin definitions. | |
6943 | (BCDADD, BCDADD_LT, BCDADD_EQ, BCDADD_GT, BCDADD_OV, BCDSUB, BCDSUB_LT, | |
6944 | BCDSUB_LE, BCDSUB_EQ, BCDSUB_GT, BCDSUB_GE, BCDSUB_OV, BCDINVALID, | |
6945 | BCDMUL10, BCDDIV10, DENBCD): New overload definitions. | |
6946 | * config/rs6000/rs6000-call.c (P8V_BUILTIN_VEC_BCDADD, P8V_BUILTIN_VEC_BCDADD_LT, | |
6947 | P8V_BUILTIN_VEC_BCDADD_EQ, P8V_BUILTIN_VEC_BCDADD_GT, P8V_BUILTIN_VEC_BCDADD_OV, | |
6948 | P8V_BUILTIN_VEC_BCDINVALID, P9V_BUILTIN_VEC_BCDMUL10, P8V_BUILTIN_VEC_DENBCD. | |
6949 | P8V_BUILTIN_VEC_BCDSUB, P8V_BUILTIN_VEC_BCDSUB_LT, P8V_BUILTIN_VEC_BCDSUB_LE, | |
6950 | P8V_BUILTIN_VEC_BCDSUB_EQ, P8V_BUILTIN_VEC_BCDSUB_GT, P8V_BUILTIN_VEC_BCDSUB_GE, | |
6951 | P8V_BUILTIN_VEC_BCDSUB_OV): New overloaded specifications. | |
6952 | (CODE_FOR_bcdadd): Replaced with CODE_FOR_bcdadd_v16qi and CODE_FOR_bcdadd_v1ti. | |
6953 | (CODE_FOR_bcdadd_lt): Replaced with CODE_FOR_bcdadd_lt_v16qi and CODE_FOR_bcdadd_lt_v1ti. | |
6954 | (CODE_FOR_bcdadd_eq): Replaced with CODE_FOR_bcdadd_eq_v16qi and CODE_FOR_bcdadd_eq_v1ti. | |
6955 | (CODE_FOR_bcdadd_gt): Replaced with CODE_FOR_bcdadd_gt_v16qi and CODE_FOR_bcdadd_gt_v1ti. | |
6956 | (CODE_FOR_bcdsub): Replaced with CODE_FOR_bcdsub_v16qi and CODE_FOR_bcdsub_v1ti. | |
6957 | (CODE_FOR_bcdsub_lt): Replaced with CODE_FOR_bcdsub_lt_v16qi and CODE_FOR_bcdsub_lt_v1ti. | |
6958 | (CODE_FOR_bcdsub_eq): Replaced with CODE_FOR_bcdsub_eq_v16qi and CODE_FOR_bcdsub_eq_v1ti. | |
6959 | (CODE_FOR_bcdsub_gt): Replaced with CODE_FOR_bcdsub_gt_v16qi and CODE_FOR_bcdsub_gt_v1ti. | |
6960 | (rs6000_expand_ternop_builtin): Add CODE_FOR_dfp_denbcd_v16qi to else if. | |
6961 | * doc/extend.texi: Add documentation for new builtins. | |
6962 | ||
6963 | 2020-11-02 Nathan Sidwell <nathan@acm.org> | |
6964 | ||
6965 | * tree.c (cache_integer_cst): Fixup pointer caching to match | |
6966 | wide_int_to_type_1's expectations. Add comment. | |
6967 | ||
6968 | 2020-11-02 Nathan Sidwell <nathan@acm.org> | |
6969 | ||
6970 | * tree.h (id_equal): Call the symetric predicate with swapped | |
6971 | arguments. | |
6972 | ||
6973 | 2020-11-02 Nathan Sidwell <nathan@acm.org> | |
6974 | ||
6975 | * print-tree.c (print_node): Display all the operands of a call | |
6976 | expr. | |
6977 | ||
6978 | 2020-11-02 Vladimir N. Makarov <vmakarov@redhat.com> | |
6979 | ||
6980 | * config/rs6000/vsx.md (*vsx_extract_<mode>_store_p9): Add hint * | |
6981 | to 2nd alternative of the 1st scratch. | |
6982 | ||
6983 | 2020-11-02 Sudakshina Das <sudi.das@arm.com> | |
6984 | ||
6985 | PR target/97638 | |
6986 | * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Update | |
6987 | return value on INSN_P check. | |
6988 | ||
6989 | 2020-11-02 Richard Biener <rguenther@suse.de> | |
6990 | ||
6991 | * tree.h (build_real_from_wide): Declare. | |
6992 | * tree.c (build_real_from_wide): New function. | |
6993 | * tree-vect-slp.c (vect_build_slp_tree_2): Remove | |
6994 | restriction on induction vectorization, represent | |
6995 | the initial value. | |
6996 | * tree-vect-loop.c (vect_model_induction_cost): Inline ... | |
6997 | (vectorizable_induction): ... here. Rewrite SLP | |
6998 | code generation. | |
6999 | ||
7000 | 2020-11-02 Martin Jambor <mjambor@suse.cz> | |
7001 | ||
7002 | * dbgcnt.def (ipa_cp_values): New counter. | |
7003 | (ipa_cp_vr): Likewise. | |
7004 | * ipa-cp.c (decide_about_value): Check and bump ipa_cp_values debug | |
7005 | counter. | |
7006 | (decide_whether_version_node): Likewise. | |
7007 | (ipcp_store_vr_results):Check and bump ipa_cp_vr debug counter. | |
7008 | ||
7009 | 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org> | |
7010 | ||
7011 | * config/arm/arm.c (arm_thumb1_mi_thunk): Build mi_delta in r3 and | |
7012 | do not emit function address and delta when -mpure-code is used. | |
7013 | ||
7014 | 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org> | |
7015 | ||
7016 | * config/arm/thumb1.md (thumb1_movsi_insn): Call | |
7017 | thumb1_gen_const_int_print. | |
7018 | * config/arm/arm-protos.h (thumb1_gen_const_int_print): Add | |
7019 | prototype. | |
7020 | * config/arm/arm.c (thumb1_gen_const_int_print): New. | |
7021 | ||
7022 | 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org> | |
7023 | ||
7024 | * config/arm/arm.c (thumb1_const_rtl, thumb1_const_print): New | |
7025 | classes. | |
7026 | (thumb1_gen_const_int): Rename to ... | |
7027 | (thumb1_gen_const_int_1): ... New helper function. Add capability | |
7028 | to emit either RTL or asm, improve generated code. | |
7029 | (thumb1_gen_const_int_rtl): New function. | |
7030 | * config/arm/arm-protos.h (thumb1_gen_const_int): Rename to | |
7031 | thumb1_gen_const_int_rtl. | |
7032 | * config/arm/thumb1.md: Call thumb1_gen_const_int_rtl instead | |
7033 | of thumb1_gen_const_int. | |
7034 | ||
7035 | 2020-11-02 Richard Biener <rguenther@suse.de> | |
7036 | ||
7037 | PR tree-optimization/97558 | |
7038 | * tree-vect-loop.c (vectorizable_reduction): For nested SLP | |
7039 | cycles compute invariant operands vector type. | |
7040 | ||
7041 | 2020-11-02 Richard Biener <rguenther@suse.de> | |
7042 | ||
7043 | PR tree-optimization/97558 | |
7044 | * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): | |
7045 | Check for any mismatch in pattern vs. non-pattern and dissolve | |
7046 | the group if there is one. | |
7047 | * tree-vect-slp.c (vect_analyze_slp_instance): Avoid | |
7048 | analyzing not relevant reductions. | |
7049 | (vect_analyze_slp): Avoid analyzing not relevant reduction | |
7050 | groups. | |
7051 | ||
7052 | 2020-11-02 Richard Biener <rguenther@suse.de> | |
7053 | ||
7054 | PR tree-optimization/97650 | |
7055 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Check | |
7056 | for SSA_NAME before checking SSA_NAME_IS_DEFAULT_DEF. | |
7057 | ||
7058 | 2020-11-02 Kito Cheng <kito.cheng@sifive.com> | |
7059 | ||
7060 | * common/config/riscv/riscv-common.c | |
7061 | (riscv_subset_list::parse_multiletter_ext): Checking multiletter | |
7062 | extension has more than 1 letter. | |
7063 | ||
7064 | 2020-11-02 Kito Cheng <kito.cheng@sifive.com> | |
7065 | ||
7066 | * config.gcc (riscv*-*-*): Handle --with-multilib-generator. | |
7067 | * configure: Regen. | |
7068 | * configure.ac: Add --with-multilib-generator. | |
7069 | * config/riscv/multilib-generator: Exit when parsing arch string error. | |
7070 | * config/riscv/t-withmultilib-generator: New. | |
7071 | * doc/install.texi: Document --with-multilib-generator. | |
7072 | ||
7073 | 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org> | |
7074 | ||
7075 | PR target/96770 | |
7076 | * config/arm/arm.c (thumb_legitimate_constant_p): Accept | |
7077 | (symbol_ref + addend) when literal pool is disabled. | |
7078 | (arm_valid_symbolic_address_p): Add support for thumb-1 without | |
7079 | MOVT/MOVW. | |
7080 | * config/arm/thumb1.md (*thumb1_movsi_insn): Accept (symbol_ref + | |
7081 | addend) in the pure-code alternative. | |
7082 | ||
7083 | 2020-11-02 Christophe Lyon <christophe.lyon@linaro.org> | |
7084 | ||
7085 | PR target/96967 | |
7086 | * config/arm/arm.c (thumb_legitimate_constant_p): Add support for | |
7087 | disabled literal pool in thumb-1. | |
7088 | * config/arm/thumb1.md (thumb1_movsi_symbol_ref): Remove. | |
7089 | (*thumb1_movsi_insn): Add support for SYMBOL_REF with -mpure-code. | |
7090 | ||
7091 | 2020-11-01 Iain Sandoe <iain@sandoe.co.uk> | |
7092 | ||
7093 | * config/host-darwin.c: Align pch_address_space to 16384. | |
7094 | ||
7095 | 2020-11-01 Pat Bernardi <bernardi@adacore.com> | |
7096 | ||
7097 | * config/i386/i386.c (ix86_expand_prologue): Set the stack usage to 0 | |
7098 | for naked functions. | |
7099 | ||
7100 | 2020-11-01 Iain Buclaw <ibuclaw@gdcproject.org> | |
7101 | ||
7102 | PR ipa/97660 | |
7103 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't call | |
7104 | clone_info::get when cgraph_node::get returns NULL. | |
7105 | ||
7106 | 2020-10-31 Jan Hubicka <jh@suse.cz> | |
7107 | ||
7108 | * Makefile.in: (OBJS): Add symtab-clones.o | |
7109 | (GTFILES): Add symtab-clones.h | |
7110 | * cgraph.c: Include symtab-clones.h. | |
7111 | (cgraph_edge::resolve_speculation): Fix formating | |
7112 | (cgraph_edge::redirect_call_stmt_to_callee): Update. | |
7113 | (cgraph_update_edges_for_call_stmt): Update | |
7114 | (release_function_body): Fix formating. | |
7115 | (cgraph_node::remove): Fix formating. | |
7116 | (cgraph_node::dump): Fix formating. | |
7117 | (cgraph_node::get_availability): Fix formating. | |
7118 | (cgraph_node::call_for_symbol_thunks_and_aliases): Fix formating. | |
7119 | (set_const_flag_1): Fix formating. | |
7120 | (set_pure_flag_1): Fix formating. | |
7121 | (cgraph_node::can_remove_if_no_direct_calls_p): Fix formating. | |
7122 | (collect_callers_of_node_1): Fix formating. | |
7123 | (clone_of_p): Update. | |
7124 | (cgraph_node::verify_node): Update. | |
7125 | (cgraph_c_finalize): Call clone_info::release (). | |
7126 | * cgraph.h (struct cgraph_clone_info): Move to symtab-clones.h. | |
7127 | (cgraph_node): Remove clone_info. | |
7128 | (symbol_table): Add m_clones. | |
7129 | * cgraphclones.c: Include symtab-clone.h. | |
7130 | (duplicate_thunk_for_node): Update. | |
7131 | (cgraph_node::create_clone): Update. | |
7132 | (cgraph_node::create_virtual_clone): Update. | |
7133 | (cgraph_node::find_replacement): Update. | |
7134 | (cgraph_node::materialize_clone): Update. | |
7135 | * gengtype.c (open_base_files): Include symtab-clones.h. | |
7136 | * ipa-cp.c: Include symtab-clones.h. | |
7137 | (initialize_node_lattices): Update. | |
7138 | (want_remove_some_param_p): Update. | |
7139 | (create_specialized_node): Update. | |
7140 | * ipa-fnsummary.c: Include symtab-clones.h. | |
7141 | (ipa_fn_summary_t::duplicate): Update. | |
7142 | * ipa-modref.c: Include symtab-clones.h. | |
7143 | (update_signature): Update. | |
7144 | * ipa-param-manipulation.c: Include symtab-clones.h. | |
7145 | (ipa_param_body_adjustments::common_initialization): Update. | |
7146 | * ipa-prop.c: Include symtab-clones.h. | |
7147 | (adjust_agg_replacement_values): Update. | |
7148 | (ipcp_get_parm_bits): Update. | |
7149 | (ipcp_update_bits): Update. | |
7150 | (ipcp_update_vr): Update. | |
7151 | * ipa-sra.c: Include symtab-clones.h. | |
7152 | (process_isra_node_results): Update. | |
7153 | (disable_unavailable_parameters): Update. | |
7154 | * lto-cgraph.c: Include symtab-clone.h. | |
7155 | (output_cgraph_opt_summary_p): Update. | |
7156 | (output_node_opt_summary): Update. | |
7157 | (input_node_opt_summary): Update. | |
7158 | * symtab-clones.cc: New file. | |
7159 | * symtab-clones.h: New file. | |
7160 | * tree-inline.c (expand_call_inline): Update. | |
7161 | (update_clone_info): Update. | |
7162 | (tree_function_versioning): Update. | |
7163 | ||
7164 | 2020-10-31 Jan Hubicka <jh@suse.cz> | |
7165 | ||
7166 | * ipa-modref.c (modref_summary::dump): Dump writes_errno. | |
7167 | (parm_map_for_arg): Break out from ... | |
7168 | (merge_call_side_effects): ... here. | |
7169 | (get_access_for_fnspec): New function. | |
7170 | (process_fnspec): New function. | |
7171 | (analyze_call): Use it. | |
7172 | (analyze_stmt): Update. | |
7173 | (analyze_function): Initialize writes_errno. | |
7174 | (modref_summaries::duplicate): Duplicate writes_errno. | |
7175 | * ipa-modref.h (struct modref_summary): Add writes_errno. | |
7176 | * tree-ssa-alias.c (call_may_clobber_ref_p_1): Check errno. | |
7177 | ||
7178 | 2020-10-30 Michael Meissner <meissner@linux.ibm.com> | |
7179 | ||
7180 | * config/rs6000/rs6000.c (glibc_supports_ieee_128bit): New helper | |
7181 | function. | |
7182 | (rs6000_option_override_internal): Call it. | |
7183 | ||
7184 | 2020-10-30 Qing Zhao <qing.zhao@oracle.com> | |
7185 | H.J.Lu <hjl.tools@gmail.com> | |
7186 | ||
7187 | * common.opt: Add new option -fzero-call-used-regs | |
7188 | * config/i386/i386.c (zero_call_used_regno_p): New function. | |
7189 | (zero_call_used_regno_mode): Likewise. | |
7190 | (zero_all_vector_registers): Likewise. | |
7191 | (zero_all_st_registers): Likewise. | |
7192 | (zero_all_mm_registers): Likewise. | |
7193 | (ix86_zero_call_used_regs): Likewise. | |
7194 | (TARGET_ZERO_CALL_USED_REGS): Define. | |
7195 | * df-scan.c (df_epilogue_uses_p): New function. | |
7196 | (df_get_exit_block_use_set): Replace EPILOGUE_USES with | |
7197 | df_epilogue_uses_p. | |
7198 | * df.h (df_epilogue_uses_p): Declare. | |
7199 | * doc/extend.texi: Document the new zero_call_used_regs attribute. | |
7200 | * doc/invoke.texi: Document the new -fzero-call-used-regs option. | |
7201 | * doc/tm.texi: Regenerate. | |
7202 | * doc/tm.texi.in (TARGET_ZERO_CALL_USED_REGS): New hook. | |
7203 | * emit-rtl.h (struct rtl_data): New field must_be_zero_on_return. | |
7204 | * flag-types.h (namespace zero_regs_flags): New namespace. | |
7205 | * function.c (gen_call_used_regs_seq): New function. | |
7206 | (class pass_zero_call_used_regs): New class. | |
7207 | (pass_zero_call_used_regs::execute): New function. | |
7208 | (make_pass_zero_call_used_regs): New function. | |
7209 | * optabs.c (expand_asm_reg_clobber_mem_blockage): New function. | |
7210 | * optabs.h (expand_asm_reg_clobber_mem_blockage): Declare. | |
7211 | * opts.c (zero_call_used_regs_opts): New structure array | |
7212 | initialization. | |
7213 | (parse_zero_call_used_regs_options): New function. | |
7214 | (common_handle_option): Handle -fzero-call-used-regs. | |
7215 | * opts.h (zero_call_used_regs_opts): New structure array. | |
7216 | * passes.def: Add new pass pass_zero_call_used_regs. | |
7217 | * recog.c (valid_insn_p): New function. | |
7218 | * recog.h (valid_insn_p): Declare. | |
7219 | * resource.c (init_resource_info): Replace EPILOGUE_USES with | |
7220 | df_epilogue_uses_p. | |
7221 | * target.def (zero_call_used_regs): New hook. | |
7222 | * targhooks.c (default_zero_call_used_regs): New function. | |
7223 | * targhooks.h (default_zero_call_used_regs): Declare. | |
7224 | * tree-pass.h (make_pass_zero_call_used_regs): Declare. | |
7225 | ||
7226 | 2020-10-30 Vladimir N. Makarov <vmakarov@redhat.com> | |
7227 | ||
7228 | * lra.c (get_scratch_reg): New function. | |
7229 | (remove_scratches_1): Rename remove_insn_scratches. Use | |
7230 | ira_remove_insn_scratches and get_scratch_reg. | |
7231 | (remove_scratches): Do not | |
7232 | initialize scratches, scratch_bitmap, and scratch_operand_bitmap. | |
7233 | (lra): Call ira_restore_scratches instead of restore_scratches. | |
7234 | (struct sloc, sloc_t, scratches, scratch_bitmap) | |
7235 | (scratch_operand_bitmap, lra_former_scratch_p) | |
7236 | (lra_former_scratch_operand_p, lra_register_new_scratch_op) | |
7237 | (restore_scratches): Move them to ... | |
7238 | * ira.c: ... here. | |
7239 | (former_scratch_p, former_scratch_operand_p): Rename to | |
7240 | ira_former_scratch_p and ira_former_scratch_operand_p. | |
7241 | (contains_X_constraint_p): New function. | |
7242 | (register_new_scratch_op): Rename to ira_register_new_scratch_op. | |
7243 | Change it to work for IRA and LRA. | |
7244 | (restore_scratches): Rename to ira_restore_scratches. | |
7245 | (get_scratch_reg, ira_remove_insn_scratches): New functions. | |
7246 | (ira): Call ira_remove_scratches if we use LRA. | |
7247 | * ira.h (ira_former_scratch_p, ira_former_scratch_operand_p): New | |
7248 | prototypes. | |
7249 | (ira_register_new_scratch_op, ira_restore_scratches): New prototypes. | |
7250 | (ira_remove_insn_scratches): New prototype. | |
7251 | * lra-int.h (lra_former_scratch_p, lra_former_scratch_operand_p): | |
7252 | Remove prototypes. | |
7253 | (lra_register_new_scratch_op): Ditto. | |
7254 | * lra-constraints.c: Rename lra_former_scratch_p and | |
7255 | lra_former_scratch_p to ira_former_scratch_p and to | |
7256 | ira_former_scratch_p. | |
7257 | * lra-remat.c: Ditto. | |
7258 | * lra-spills.c: Rename lra_former_scratch_p to ira_former_scratch_p. | |
7259 | ||
7260 | 2020-10-30 Martin Sebor <msebor@redhat.com> | |
7261 | ||
7262 | PR middle-end/97556 | |
7263 | * builtins.c (access_ref::add_offset): Cap offset lower bound | |
7264 | to at most the the upper bound. | |
7265 | ||
7266 | 2020-10-30 Jan Hubicka <jh@suse.cz> | |
7267 | ||
7268 | PR pch/97593 | |
7269 | * cgraph.c (cgraph_node::create_thunk): Register thunk as early during | |
7270 | parsing. | |
7271 | * cgraphunit.c (analyze_functions): Call | |
7272 | thunk_info::process_early_thunks. | |
7273 | * symtab-thunks.cc (struct unprocessed_thunk): New struct. | |
7274 | (thunks): New static variable. | |
7275 | (thunk_info::register_early): New member function. | |
7276 | (thunk_info::process_early_thunks): New member function. | |
7277 | * symtab-thunks.h (thunk_info::register_early): Declare. | |
7278 | (thunk_info::process_early_thunks): Declare. | |
7279 | ||
7280 | 2020-10-30 Richard Biener <rguenther@suse.de> | |
7281 | ||
7282 | PR tree-optimization/97623 | |
7283 | * tree-ssa-pre.c (insert): First do hoist insertion in | |
7284 | a backward walk. | |
7285 | ||
7286 | 2020-10-30 Richard Biener <rguenther@suse.de> | |
7287 | ||
7288 | PR tree-optimization/97626 | |
7289 | * tree-vect-slp.c (vect_slp_analyze_node_operations): | |
7290 | Exchange the lvisited hash-set for a vector, roll back | |
7291 | recursive adds to visited when analysis failed. | |
7292 | (vect_slp_analyze_operations): Likewise. | |
7293 | ||
7294 | 2020-10-30 Zhiheng Xie <xiezhiheng@huawei.com> | |
7295 | Nannan Zheng <zhengnannan@huawei.com> | |
7296 | ||
7297 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
7298 | for conversion intrinsics. | |
7299 | ||
7300 | 2020-10-30 Richard Biener <rguenther@suse.de> | |
7301 | ||
7302 | PR tree-optimization/97633 | |
7303 | * tree-vect-slp.c (): Update backedges in single-node cycles. | |
7304 | Optimize processing of externals. | |
7305 | ||
7306 | 2020-10-30 Alex Coplan <alex.coplan@arm.com> | |
7307 | ||
7308 | PR target/96998 | |
7309 | * combine.c (make_extraction): Also handle shifts written as | |
7310 | (mult x 2^n), avoid creating an extract rtx for these. | |
7311 | * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Delete. | |
7312 | (aarch64_classify_index): Remove extract-based address handling. | |
7313 | (aarch64_strip_extend): Likewise. | |
7314 | (aarch64_rtx_arith_op_extract_p): Likewise, remove now-unused parameter. | |
7315 | Update callers... | |
7316 | (aarch64_rtx_costs): ... here. | |
7317 | ||
7318 | 2020-10-30 Olivier Hainque <hainque@adacore.com> | |
7319 | ||
7320 | * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Also | |
7321 | builtin_define __ppc and __ppc__ for VxWorks 7. | |
7322 | ||
7323 | 2020-10-30 Olivier Hainque <hainque@adacore.com> | |
7324 | Douglas Rupp <rupp@adacore.com> | |
7325 | Pat Bernardi <bernardi@adacore.com> | |
7326 | ||
7327 | * config.gcc: Adjust the ix86/x86_64-wrs-vxworks filters | |
7328 | to apply to VxWorks 7 as well. | |
7329 | * config/i386/t-vxworks (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): | |
7330 | Remove the fPIC multilib and add one for the large code model | |
7331 | on x86_64. | |
7332 | * config/i386/vxworks.h: Separate sections for TARGET_VXWORKS7, | |
7333 | other variants and common bits. | |
7334 | (TARGET_OS_CPP_BUILTINS): Augment to support a range of CPU | |
7335 | families. Leverage VX_CPU_PREFIX. | |
7336 | (CC1_SPEC): Add definition. | |
7337 | (STACK_CHECK_PROTECT): Use conditional expression instead of | |
7338 | heavier to read conditioned macro definitions. | |
7339 | ||
7340 | 2020-10-30 Jakub Jelinek <jakub@redhat.com> | |
7341 | ||
7342 | * gimplify.c (gimplify_scan_omp_clauses): Force | |
7343 | OMP_CLAUSE_ALLOCATE_ALLOCATOR into a temporary if it is non-NULL and | |
7344 | non-constant. | |
7345 | (gimplify_omp_for): Only put allocate on inner taskloop if lastprivate | |
7346 | for the same variable is going to be put there, and in that case | |
7347 | if the OMP_CLAUSE_ALLOCATE_ALLOCATOR is non-NULL non-constant, make | |
7348 | the allocator firstprivate on task. | |
7349 | ||
7350 | 2020-10-30 Michael Meissner <meissner@linux.ibm.com> | |
7351 | ||
7352 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Allow | |
7353 | long double type to be changed for C/C++ if glibc 2.32 or newer. | |
7354 | (rs6000_invalid_binary_op): Update error messages about mixing IBM | |
7355 | long double and IEEE 128-bit. | |
7356 | ||
7357 | 2020-10-29 Richard Biener <rguenther@suse.de> | |
7358 | ||
7359 | * tree-ssa-pre.c (compute_avail): Free operands consistently. | |
7360 | * tree-vect-loop.c (vectorizable_phi): Make sure all operand | |
7361 | defs vectors are released. | |
7362 | ||
7363 | 2020-10-29 Jan Hubicka <jh@suse.cz> | |
7364 | ||
7365 | * vec.h (vec<T, va_heap, vl_ptr>::copy): Pass mem stat info. | |
7366 | ||
7367 | 2020-10-29 Jan Hubicka <jh@suse.cz> | |
7368 | ||
7369 | * wide-int.h (trailing_wide_ints <N>): Turn len to array of structures | |
7370 | so it does not imply typeless storage. | |
7371 | (trailing_wide_ints <N>::operator): update | |
7372 | (trailing_wide_ints <N>::operator []): Update. | |
7373 | ||
7374 | 2020-10-29 Joseph Myers <joseph@codesourcery.com> | |
7375 | ||
7376 | * ginclude/stdbool.h [__STDC_VERSION__ > 201710L] (true, false): | |
7377 | Define with type _Bool. | |
7378 | ||
7379 | 2020-10-29 Aldy Hernandez <aldyh@redhat.com> | |
7380 | ||
7381 | PR tree-optimization/97505 | |
7382 | * vr-values.c (vr_values::extract_range_basic): Enable | |
7383 | trap again for everything except UBSAN builtins. | |
7384 | ||
7385 | 2020-10-29 Richard Sandiford <richard.sandiford@arm.com> | |
7386 | ||
7387 | * tree-vectorizer.h (vect_transform_slp_perm_load): Take an | |
7388 | optional extra parameter. | |
7389 | * tree-vect-slp.c (vect_transform_slp_perm_load): Calculate | |
7390 | the number of loads as well as the number of permutes, taking | |
7391 | the counting loop from... | |
7392 | * tree-vect-stmts.c (vect_model_load_cost): ...here. Use the | |
7393 | value computed by vect_transform_slp_perm_load for ncopies. | |
7394 | ||
7395 | 2020-10-29 Martin Liska <mliska@suse.cz> | |
7396 | ||
7397 | PR lto/97508 | |
7398 | * langhooks.c (lhd_begin_section): Call get_section with | |
7399 | not_existing = true. | |
7400 | * output.h (get_section): Add new argument. | |
7401 | * varasm.c (get_section): Fail when NOT_EXISTING is true | |
7402 | and a section already exists. | |
7403 | * ipa-cp.c (ipcp_write_summary): Remove. | |
7404 | (ipcp_read_summary): Likewise. | |
7405 | * ipa-fnsummary.c (ipa_fn_summary_read): Always read jump | |
7406 | functions summary. | |
7407 | (ipa_fn_summary_write): Always stream it. | |
7408 | ||
7409 | 2020-10-29 Richard Biener <rguenther@suse.de> | |
7410 | ||
7411 | * tree-vect-slp.c (vect_bb_slp_scalar_cost): Pass | |
7412 | SLP_TREE_VECTYPE to record_stmt_cost. | |
7413 | ||
7414 | 2020-10-29 Martin Liska <mliska@suse.cz> | |
7415 | ||
7416 | * optc-gen.awk: Check that params start with -param=. | |
7417 | * params.opt: Fix ipa-jump-function-lookups. | |
7418 | ||
7419 | 2020-10-29 Alexandre Oliva <oliva@adacore.com> | |
7420 | ||
7421 | * tree-ssa-math-opts.c (sincos_stats): Add conv_removed. | |
7422 | (execute_cse_conv_1): New. | |
7423 | (execute_cse_sincos_1): Call it. Fix return within | |
7424 | FOR_EACH_IMM_USE_STMT. | |
7425 | (pass_cse_sincos::execute): Report conv_inserted. | |
7426 | ||
7427 | 2020-10-29 Xuepeng Guo <xuepeng.guo@intel.com> | |
7428 | Hongyu Wang <hongyu.wang@intel.com> | |
7429 | Hongtao Liu <hongtao.liu@intel.com> | |
7430 | ||
7431 | * common/config/i386/cpuinfo.h (get_available_features): | |
7432 | Detect KL, AESKLE and WIDEKL features. | |
7433 | * common/config/i386/i386-common.c | |
7434 | (OPTION_MASK_ISA_KL_SET): New. | |
7435 | (OPTION_MASK_ISA_WIDEKL_SET): Likewise. | |
7436 | (OPTION_MASK_ISA_KL_UNSET): Likewise. | |
7437 | (OPTION_MASK_ISA_WIDEKL_UNSET): Likewise. | |
7438 | (OPTION_MASK_ISA2_AVX2_UNSET): Likewise. | |
7439 | (OPTION_MASK_ISA2_AVX_UNSET): Likewise. | |
7440 | (OPTION_MASK_ISA2_SSE4_2_UNSET): Likewise. | |
7441 | (OPTION_MASK_ISA2_SSE4_1_UNSET): Likewise. | |
7442 | (OPTION_MASK_ISA2_SSE4_UNSET): Likewise. | |
7443 | (OPTION_MASK_ISA2_SSSE3_UNSET): Likewise. | |
7444 | (OPTION_MASK_ISA2_SSE3_UNSET): Likewise. | |
7445 | (OPTION_MASK_ISA2_SSE2_UNSET): Likewise. | |
7446 | (OPTION_MASK_ISA2_SSE_UNSET): Likewise. | |
7447 | (ix86_handle_option): Handle kl and widekl, add dependency chain | |
7448 | for KL and SSE2. | |
7449 | * common/config/i386/i386-cpuinfo.h (enum processor_features): | |
7450 | (FEATURE_KL, FEATURE_AESKLE, FEATURE_WIDEKL): New. | |
7451 | * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY | |
7452 | for KL, AESKLE and WIDEKL. | |
7453 | * config.gcc: Add keylockerintrin.h. | |
7454 | * doc/invoke.texi: Document new option -mkl and -mwidekl. | |
7455 | * doc/extend.texi: Document kl and widekl. | |
7456 | * config/i386/cpuid.h (bit_KL, bit_AESKLE, bit_WIDEKL): New. | |
7457 | * config/i386/i386-builtin-types.def ((UINT, UINT, V2DI, V2DI, PVOID), | |
7458 | (UINT, UINT, V2DI, PVOID), (VOID, V2DI, V2DI, V2DI, UINT), | |
7459 | (UINT8, PV2DI, V2DI, PCVOID), (UINT8, PV2DI, PCV2DI, PCVOID)): New | |
7460 | function types. | |
7461 | * config/i386/i386-builtin.def: Add | |
7462 | __builtin_ia32_loadiwkey, | |
7463 | __builtin_ia32_aesdec128kl_u8, | |
7464 | __builtin_ia32_aesdec256kl_u8, | |
7465 | __builtin_ia32_aesenc128kl_u8, | |
7466 | __builtin_ia32_aesenc256kl_u8, | |
7467 | __builtin_ia32_aesdecwide128kl_u8, | |
7468 | __builtin_ia32_aesdecwide256kl_u8, | |
7469 | __builtin_ia32_aesencwide128kl_u8, | |
7470 | __builtin_ia32_aesencwide256kl_u8, | |
7471 | __builtin_ia32_encodekey128_u32, | |
7472 | __builtin_ia32_encodekey256_u32. | |
7473 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
7474 | kl and widekl. | |
7475 | * config/i386/i386-options.c (isa2_opts): Add -mkl and -mwidekl. | |
7476 | (ix86_option_override_internal): Handle KL and WIDEKL. | |
7477 | (ix86_valid_target_attribute_inner_p): Add attribute for kl and widekl. | |
7478 | * config/i386/i386-expand.c | |
7479 | (ix86_expand_builtin): Expand Keylocker Builtins. | |
7480 | * config/i386/i386.h (TARGET_KL): New. | |
7481 | (TARGET_KL_P): Likewise. | |
7482 | (TARGET_WIDEKL): Likewise. | |
7483 | (TARGET_WIDEKL_P): Likewise. | |
7484 | (PTA_KL): Likewise. | |
7485 | (PTA_WIDEKL): Likewise. | |
7486 | (PTA_TIGERLAKE): Add PTA_KL, PTA_WIDEKL. | |
7487 | (PTA_ALDERLAKE): Likewise. | |
7488 | * config/i386/i386.opt: Add new option mkl and mwidekl. | |
7489 | * config/i386/keylockerintrin.h: New header file for Keylocker. | |
7490 | * config/i386/immintrin.h: Include keylockerintrin.h. | |
7491 | * config/i386/predicates.md (encodekey128_operation): New | |
7492 | predicate. | |
7493 | (encodekey256_operation): Likewise. | |
7494 | (aeswidekl_operation): Likewise. | |
7495 | * config/i386/sse.md (UNSPECV_LOADIWKEY): New. | |
7496 | (UNSPECV_AESDEC128KLU8): Likewise. | |
7497 | (UNSPECV_AESENC128KLU8): Likewise. | |
7498 | (UNSPECV_AESDEC256KLU8): Likewise. | |
7499 | (UNSPECV_AESENC256KLU8): Likewise. | |
7500 | (UNSPECV_AESDECWIDE128KLU8): Likewise. | |
7501 | (UNSPECV_AESENCWIDE128KLU8): Likewise. | |
7502 | (UNSPECV_AESDECWIDE256KLU8): Likewise. | |
7503 | (UNSPECV_AESENCWIDE256KLU8): Likewise. | |
7504 | (UNSPECV_ENCODEKEY128U32): Likewise. | |
7505 | (UNSPECV_ENCODEKEY256U32): Likewise. | |
7506 | (encodekey128u32): New expander. | |
7507 | (encodekey256u32): Likewise. | |
7508 | (aes<aeswideklvariant>u8): Likewise. | |
7509 | (loadiwkey): New insn pattern. | |
7510 | (*encodekey128u32): Likewise. | |
7511 | (*encodekey256u32): Likewise. | |
7512 | (aes<aesklvariant>u8): Likewise. | |
7513 | (*aes<aeswideklvariant>u8): Likewise. | |
7514 | ||
7515 | 2020-10-29 Richard Biener <rguenther@suse.de> | |
7516 | ||
7517 | * tree-vect-slp.c (vect_build_slp_tree_2): Allow splatting | |
7518 | not vectorizable loads. | |
7519 | (vect_build_slp_instance): Amend dumping with address. | |
7520 | (vect_slp_convert_to_external): Likewise. | |
7521 | ||
7522 | 2020-10-29 Andrew MacLeod <amacleod@redhat.com> | |
7523 | ||
7524 | PR tree-optimization/97609 | |
7525 | * gimple-range-cache.cc (non_null_ref::process_name): Call | |
7526 | infer_nonnull_range directly instead of infer_value_range. | |
7527 | ||
7528 | 2020-10-29 David Malcolm <dmalcolm@redhat.com> | |
7529 | ||
7530 | * Makefile.in (ANALYZER_OBJS): Add analyzer/complexity.o. | |
7531 | ||
7532 | 2020-10-28 Marek Polacek <polacek@redhat.com> | |
7533 | ||
7534 | PR c++/97573 | |
7535 | * doc/invoke.texi: Document -Wdeprecated-enum-enum-conversion | |
7536 | and -Wdeprecated-enum-float-conversion. -Wenum-conversion is | |
7537 | no longer C/ObjC only. | |
7538 | ||
7539 | 2020-10-28 Richard Sandiford <richard.sandiford@arm.com> | |
7540 | ||
7541 | PR tree-optimization/97457 | |
7542 | * value-range.cc (irange::set): Don't decay POLY_INT_CST ranges | |
7543 | to integer ranges. | |
7544 | ||
7545 | 2020-10-28 Carl Love <cel@us.ibm.com> | |
7546 | ||
7547 | * config/rs6000/vsx.md(xxgenpcvm_<mode>_internal): Remove TARGET_64BIT. | |
7548 | ||
7549 | 2020-10-28 Richard Biener <rguenther@suse.de> | |
7550 | ||
7551 | * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Dump | |
7552 | when shared vectype update fails. | |
7553 | ||
7554 | 2020-10-28 Richard Biener <rguenther@suse.de> | |
7555 | ||
7556 | * tree-vect-slp.c (vect_get_and_check_slp_defs): For skipped | |
7557 | args just push NULLs and vect_uninitialized_def. | |
7558 | (vect_build_slp_tree_2): Allocate skip_args for all ops | |
7559 | and pass it down to vect_get_and_check_slp_defs. | |
7560 | ||
7561 | 2020-10-28 Richard Biener <rguenther@suse.de> | |
7562 | ||
7563 | PR tree-optimization/97615 | |
7564 | * tree-vect-slp.c (vect_build_slp_tree_2): Do not build | |
7565 | an external from pattern defs. | |
7566 | ||
7567 | 2020-10-28 Richard Biener <rguenther@suse.de> | |
7568 | ||
7569 | * tree-vect-slp.c (vect_optimize_slp): Fix iteration over | |
7570 | all loads. | |
7571 | ||
7572 | 2020-10-28 Richard Biener <rguenther@suse.de> | |
7573 | ||
7574 | * tree-vect-slp.c (vect_build_slp_instance): Split the store | |
7575 | group at the failure boundary and also re-analyze a large enough | |
7576 | matching rest. | |
7577 | ||
7578 | 2020-10-28 Richard Biener <rguenther@suse.de> | |
7579 | ||
7580 | * tree-vect-data-refs.c (vect_slp_analyze_node_alignment): | |
7581 | Dump when vect_update_shared_vectype fails. | |
7582 | ||
7583 | 2020-10-28 Andrea Corallo <andrea.corallo@arm.com> | |
7584 | ||
7585 | * config/aarch64/arm_neon.h (__ST2_LANE_FUNC, __ST3_LANE_FUNC) | |
7586 | (__ST4_LANE_FUNC): Rename the macro generating the 'q' variants | |
7587 | into __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC, __ST2Q_LANE_FUNC so they | |
7588 | all can be undefed at the and of the file. | |
7589 | (vst2_lane_bf16, vst2q_lane_bf16, vst3_lane_bf16, vst3q_lane_bf16) | |
7590 | (vst4_lane_bf16, vst4q_lane_bf16): Add new intrinsics. | |
7591 | ||
7592 | 2020-10-28 Andrea Corallo <andrea.corallo@arm.com> | |
7593 | ||
7594 | * config/aarch64/arm_neon.h (__LD2_LANE_FUNC, __LD3_LANE_FUNC) | |
7595 | (__LD4_LANE_FUNC): Rename the macro generating the 'q' variants | |
7596 | into __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC, __LD2Q_LANE_FUNC so they | |
7597 | all can be undefed at the and of the file. | |
7598 | (vld2_lane_bf16, vld2q_lane_bf16, vld3_lane_bf16, vld3q_lane_bf16) | |
7599 | (vld4_lane_bf16, vld4q_lane_bf16): Add new intrinsics. | |
7600 | ||
7601 | 2020-10-28 Jakub Jelinek <jakub@redhat.com> | |
7602 | ||
7603 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ALLOCATE. | |
7604 | * tree.h (OMP_CLAUSE_ALLOCATE_ALLOCATOR, | |
7605 | OMP_CLAUSE_ALLOCATE_COMBINED): Define. | |
7606 | * tree.c (omp_clause_num_ops, omp_clause_code_name): Add allocate | |
7607 | clause. | |
7608 | (walk_tree_1): Handle OMP_CLAUSE_ALLOCATE. | |
7609 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
7610 | * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses, | |
7611 | gimplify_omp_for): Likewise. | |
7612 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
7613 | convert_local_omp_clauses): Likewise. | |
7614 | * omp-low.c (scan_sharing_clauses): Likewise. | |
7615 | ||
7616 | 2020-10-28 Jakub Jelinek <jakub@redhat.com> | |
7617 | ||
7618 | * omp-offload.c (omp_declare_target_tgt_fn_r): Handle direct calls to | |
7619 | declare variant base functions. | |
7620 | ||
7621 | 2020-10-28 Jakub Jelinek <jakub@redhat.com> | |
7622 | ||
7623 | PR lto/96680 | |
7624 | * lto-streamer.h (omp_lto_output_declare_variant_alt, | |
7625 | omp_lto_input_declare_variant_alt): Declare variant. | |
7626 | * symtab.c (symtab_node::get_partitioning_class): Return | |
7627 | SYMBOL_DUPLICATE for declare_variant_alt nodes. | |
7628 | * passes.c (ipa_write_summaries): Add declare_variant_alt to | |
7629 | partition. | |
7630 | * lto-cgraph.c (output_refs): Call omp_lto_output_declare_variant_alt | |
7631 | on declare_variant_alt nodes. | |
7632 | (input_refs): Call omp_lto_input_declare_variant_alt on | |
7633 | declare_variant_alt nodes. | |
7634 | * lto-streamer-out.c (output_function): Don't call | |
7635 | collect_block_tree_leafs if DECL_INITIAL is error_mark_node. | |
7636 | (lto_output): Call output_function even for declare_variant_alt | |
7637 | nodes. | |
7638 | * omp-general.c (omp_lto_output_declare_variant_alt, | |
7639 | omp_lto_input_declare_variant_alt): New functions. | |
7640 | ||
7641 | 2020-10-28 Jakub Jelinek <jakub@redhat.com> | |
7642 | ||
7643 | * wide-int.cc (wi::set_bit_large): Call canonize unless setting | |
7644 | msb bit and clearing bits above it. | |
7645 | ||
7646 | 2020-10-28 Andrew MacLeod <amacleod@redhat.com> | |
7647 | ||
7648 | * gimple-range-gori.cc (gori_compute_cache::cache_stmt): Accumulate | |
7649 | return values and only set cache when everything returned true. | |
7650 | * gimple-range.cc (get_tree_range): Set the return range to UNDEFINED | |
7651 | when the range isn't supported. | |
7652 | (gimple_ranger::calc_stmt): Return varying if the type is supported, | |
7653 | even if the stmt processing failed. False otherwise. | |
7654 | (range_of_builtin_ubsan_call): Don't use gcc_assert. | |
7655 | (range_of_builtin_call): Ditto. | |
7656 | (gimple_ranger::range_of_cond_expr): Ditto. | |
7657 | (gimple_ranger::range_of_expr): Ditto | |
7658 | (gimple_ranger::range_on_entry): Ditto. | |
7659 | (gimple_ranger::range_on_exit): Ditto. | |
7660 | (gimple_ranger::range_on_edge): DItto. | |
7661 | (gimple_ranger::range_of_stmt): Don't use gcc_assert, and initialize | |
7662 | return value to UNDEFINED. | |
7663 | ||
7664 | 2020-10-27 Andreas Krebbel <krebbel@linux.ibm.com> | |
7665 | ||
7666 | PR rtl-optimization/97497 | |
7667 | * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Do not | |
7668 | return true for r12 when -fpic is used. | |
7669 | ||
7670 | 2020-10-27 Tamar Christina <tamar.christina@arm.com> | |
7671 | ||
7672 | PR target/97535 | |
7673 | * config/aarch64/aarch64.c (aarch64_expand_cpymem): Use unsigned | |
7674 | arithmetic in check. | |
7675 | ||
7676 | 2020-10-27 Andrea Corallo <andrea.corallo@arm.com> | |
7677 | ||
7678 | * config/aarch64/arm_neon.h (vcopy_lane_bf16, vcopyq_lane_bf16) | |
7679 | (vcopyq_laneq_bf16, vcopy_laneq_bf16): New intrinsics. | |
7680 | ||
7681 | 2020-10-27 Olivier Hainque <hainque@adacore.com> | |
7682 | ||
7683 | * config/vxworks.h (VX_CPU_PREFIX): #define here. | |
7684 | * config/rs6000/vxworks.h: Remove #definition. | |
7685 | ||
7686 | 2020-10-27 Olivier Hainque <hainque@adacore.com> | |
7687 | ||
7688 | * config/rs6000/vxworks.h (CPP_SPEC): Fix macro definition | |
7689 | for -mcpu=e6500. | |
7690 | ||
7691 | 2020-10-27 Richard Biener <rguenther@suse.de> | |
7692 | ||
7693 | * tree-vect-slp.c (vect_build_slp_instance): Use ceil_log2 | |
7694 | to compute maximum group-size. | |
7695 | ||
7696 | 2020-10-27 Jan Hubicka <jh@suse.cz> | |
7697 | ||
7698 | PR ipa/97586 | |
7699 | * ipa-modref-tree.h (modref_tree::remap_params): New member function. | |
7700 | * ipa-modref.c (modref_summaries_lto::duplicate): Check that | |
7701 | optimization summaries are not duplicated. | |
7702 | (remap_arguments): Remove. | |
7703 | (modref_transform): Rename to ... | |
7704 | (update_signature): ... this one; handle also lto summary. | |
7705 | (pass_ipa_modref::execute): Update signatures here rather | |
7706 | than in transform hook. | |
7707 | ||
7708 | 2020-10-27 Richard Biener <rguenther@suse.de> | |
7709 | ||
7710 | * tree-vect-slp.c (vect_slp_bbs): Remove no-op | |
7711 | slp-max-insns-in-bb check. | |
7712 | (vect_slp_function): Dump when splitting the function. | |
7713 | Adjust the split condition for control altering stmts. | |
7714 | * params.opt (-param=slp-max-insns-in-bb): Remove. | |
7715 | * doc/invoke.texi (-param=slp-max-insns-in-bb): Likewise. | |
7716 | ||
7717 | 2020-10-27 Richard Biener <rguenther@suse.de> | |
7718 | ||
7719 | * gimple.h (gimple_expr_type): For PHIs return the type | |
7720 | of the result. | |
7721 | * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): | |
7722 | Make sure edge order into copied loop headers line up with the | |
7723 | originals. | |
7724 | * tree-vect-loop.c (vect_transform_cycle_phi): Handle nested | |
7725 | loops with SLP. | |
7726 | (vectorizable_phi): New function. | |
7727 | (vectorizable_live_operation): For BB vectorization compute insert | |
7728 | location here. | |
7729 | * tree-vect-slp.c (vect_free_slp_tree): Deal with NULL | |
7730 | SLP_TREE_CHILDREN entries. | |
7731 | (vect_create_new_slp_node): Add overloads with pre-existing node | |
7732 | argument. | |
7733 | (vect_print_slp_graph): Likewise. | |
7734 | (vect_mark_slp_stmts): Likewise. | |
7735 | (vect_mark_slp_stmts_relevant): Likewise. | |
7736 | (vect_gather_slp_loads): Likewise. | |
7737 | (vect_optimize_slp): Likewise. | |
7738 | (vect_slp_analyze_node_operations): Likewise. | |
7739 | (vect_bb_slp_scalar_cost): Likewise. | |
7740 | (vect_remove_slp_scalar_calls): Likewise. | |
7741 | (vect_get_and_check_slp_defs): Handle PHIs. | |
7742 | (vect_build_slp_tree_1): Handle PHIs. | |
7743 | (vect_build_slp_tree_2): Continue SLP build, following PHI | |
7744 | arguments. Fix memory leak. | |
7745 | (vect_build_slp_tree): Put stub node into the hash-map so | |
7746 | we can discover cycles directly. | |
7747 | (vect_build_slp_instance): Set the backedge SLP def for | |
7748 | reduction chains. | |
7749 | (vect_analyze_slp_backedges): Remove. | |
7750 | (vect_analyze_slp): Do not call it. | |
7751 | (vect_slp_convert_to_external): Release SLP_TREE_LOAD_PERMUTATION. | |
7752 | (vect_slp_analyze_node_operations): Handle stray failed | |
7753 | backedge defs by failing. | |
7754 | (vect_slp_build_vertices): Adjust leaf condition. | |
7755 | (vect_bb_slp_mark_live_stmts): Handle PHIs, use visited | |
7756 | hash-set to handle cycles. | |
7757 | (vect_slp_analyze_operations): Adjust. | |
7758 | (vect_bb_partition_graph_r): Likewise. | |
7759 | (vect_slp_function): Adjust split condition to allow CFG | |
7760 | merges. | |
7761 | (vect_schedule_slp_instance): Rename to ... | |
7762 | (vect_schedule_slp_node): ... this. Move DFS walk to ... | |
7763 | (vect_schedule_scc): ... this new function. | |
7764 | (vect_schedule_slp): Call it. Remove ad-hoc vectorized | |
7765 | backedge fill code. | |
7766 | * tree-vect-stmts.c (vect_analyze_stmt): Call | |
7767 | vectorizable_phi. | |
7768 | (vect_transform_stmt): Likewise. | |
7769 | (vect_is_simple_use): Handle vect_backedge_def. | |
7770 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Only | |
7771 | set loop header PHIs to vect_unknown_def_type for loop | |
7772 | vectorization. | |
7773 | * tree-vectorizer.h (enum vect_def_type): Add vect_backedge_def. | |
7774 | (enum stmt_vec_info_type): Add phi_info_type. | |
7775 | (vectorizable_phi): Declare. | |
7776 | ||
7777 | 2020-10-27 Richard Biener <rguenther@suse.de> | |
7778 | ||
7779 | * tree-vect-slp.c (vect_build_slp_tree_2): When vectorizing | |
7780 | BBs splat uniform operands and stop SLP discovery. | |
7781 | ||
7782 | 2020-10-27 Iain Buclaw <ibuclaw@gdcproject.org> | |
7783 | ||
7784 | * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE): | |
7785 | Remove. | |
7786 | * config/glibc-d.c (glibc_d_critsec_size): Likewise. | |
7787 | (TARGET_D_CRITSEC_SIZE): Likewise. | |
7788 | * config/i386/linux-common.h (GNU_USER_TARGET_D_CRITSEC_SIZE): | |
7789 | Likewise. | |
7790 | * config/sol2-d.c (solaris_d_critsec_size): Likewise. | |
7791 | (TARGET_D_CRITSEC_SIZE): Likewise. | |
7792 | * doc/tm.texi.in (TARGET_D_CRITSEC_SIZE): Likewise. | |
7793 | * doc/tm.texi: Regenerate. | |
7794 | ||
7795 | 2020-10-27 Martin Liska <mliska@suse.cz> | |
7796 | ||
7797 | PR gcov-profile/97461 | |
7798 | * gcov-io.h (GCOV_PREALLOCATED_KVP): Pre-allocate 64 | |
7799 | static counters. | |
7800 | ||
7801 | 2020-10-27 Jan Hubicka <jh@suse.cz> | |
7802 | ||
7803 | * tree-ssa-alias.c (attr_fnspec::verify): Re-enabl checking. | |
7804 | ||
7805 | 2020-10-27 Jan Hubicka <jh@suse.cz> | |
7806 | ||
7807 | * builtin-attrs.def (STRERRNOC): New macro. | |
7808 | (STRERRNOP): New macro. | |
7809 | (ATTR_ERRNOCONST_NOTHROW_LEAF_LIST): New attr list. | |
7810 | (ATTR_ERRNOPURE_NOTHROW_LEAF_LIST): New attr list. | |
7811 | * builtins.def (ATTR_MATHFN_ERRNO): Use | |
7812 | ATTR_ERRNOCONST_NOTHROW_LEAF_LIST. | |
7813 | (ATTR_MATHFN_FPROUNDING_ERRNO): Use ATTR_ERRNOCONST_NOTHROW_LEAF_LIST | |
7814 | or ATTR_ERRNOPURE_NOTHROW_LEAF_LIST. | |
7815 | ||
7816 | 2020-10-27 Kito Cheng <kito.cheng@sifive.com> | |
7817 | ||
7818 | * common/config/riscv/riscv-common.c (opt_var_ref_t): New. | |
7819 | (riscv_ext_flag_table_t): New. | |
7820 | (riscv_ext_flag_table): New. | |
7821 | (riscv_parse_arch_string): Pass gcc_options* instead of | |
7822 | &opts->x_target_flags only, and using riscv_arch_option_table to | |
7823 | setup flags. | |
7824 | (riscv_handle_option): Update argument for riscv_parse_arch_string. | |
7825 | (riscv_expand_arch): Ditto. | |
7826 | (riscv_expand_arch_from_cpu): Ditto. | |
7827 | ||
7828 | 2020-10-27 Jan Hubicka <jh@suse.cz> | |
7829 | ||
7830 | * tree-ssa-ccp.c (evaluate_stmt): Use EAF_RETURN_ARG; do not handle | |
7831 | string buitings specially. | |
7832 | ||
7833 | 2020-10-27 Jan Hubicka <jh@suse.cz> | |
7834 | ||
7835 | * tree.c (set_call_expr_flags): Fix string for ECF_RET1. | |
7836 | (build_common_builtin_nodes): Do not set ECF_RET1 for memcpy, memmove, | |
7837 | and memset. They are handled by builtin_fnspec. | |
7838 | ||
7839 | 2020-10-27 Jan Hubicka <jh@suse.cz> | |
7840 | ||
7841 | * builtins.c (builtin_fnspec): Add bzero, memcmp, memcmp_eq, bcmp, | |
7842 | strncmp, strncmp_eq, strncasecmp, rindex, strlen, strlnen, strcasecmp, | |
7843 | strcspn, strspn, strcmp, strcmp_eq. | |
7844 | ||
7845 | 2020-10-27 Richard Biener <rguenther@suse.de> | |
7846 | ||
7847 | * tree-vectorizer.h (slp_tree_pool): Declare. | |
7848 | (_slp_tree::operator new): Likewise. | |
7849 | (_slp_tree::operator delete): Likewise. | |
7850 | * tree-vectorizer.c (vectorize_loops): Allocate and free the | |
7851 | slp_tree_pool. | |
7852 | (pass_slp_vectorize::execute): Likewise. | |
7853 | * tree-vect-slp.c (slp_tree_pool): Define. | |
7854 | (_slp_tree::operator new): Likewise. | |
7855 | (_slp_tree::operator delete): Likewise. | |
7856 | ||
7857 | 2020-10-27 Martin Liska <mliska@suse.cz> | |
7858 | ||
7859 | * lto-wrapper.c (run_gcc): Do not use sub-make when jobserver is | |
7860 | not detected properly. | |
7861 | ||
7862 | 2020-10-27 Martin Liska <mliska@suse.cz> | |
7863 | ||
7864 | * symbol-summary.h (call_summary_base): Pass symtab hooks to | |
7865 | base and register (or unregister) hooks directly. | |
7866 | ||
7867 | 2020-10-27 Martin Liska <mliska@suse.cz> | |
7868 | ||
7869 | * symbol-summary.h (function_summary_base::unregister_hooks): | |
7870 | Call disable_insertion_hook and disable_duplication_hook. | |
7871 | (function_summary_base::symtab_insertion): New field. | |
7872 | (function_summary_base::symtab_removal): Likewise. | |
7873 | (function_summary_base::symtab_duplication): Likewise. | |
7874 | Register hooks in function_summary_base and directly register | |
7875 | (or unregister) hooks. | |
7876 | ||
7877 | 2020-10-26 Andrew MacLeod <amacleod@redhat.com> | |
7878 | ||
7879 | PR tree-optimization/97567 | |
7880 | * gimple-range-gori.cc (gori_compute::logical_combine): Union the | |
7881 | ranges of operand1 and operand2, not intersect. | |
7882 | ||
7883 | 2020-10-26 Jan Hubicka <jh@suse.cz> | |
7884 | ||
7885 | * attr-fnspec.h: Update toplevel comment. | |
7886 | (attr_fnspec::attr_fnspec): New constructor. | |
7887 | (attr_fnspec::arg_read_p, | |
7888 | attr_fnspec::arg_written_p, | |
7889 | attr_fnspec::arg_access_size_given_by_arg_p, | |
7890 | attr_fnspec::arg_single_access_p | |
7891 | attr_fnspec::loads_known_p | |
7892 | attr_fnspec::stores_known_p, | |
7893 | attr_fnspec::clobbers_errno_p): New member functions. | |
7894 | (gimple_call_fnspec): Declare. | |
7895 | (builtin_fnspec): Declare. | |
7896 | * builtins.c: Include attr-fnspec.h | |
7897 | (builtin_fnspec): New function. | |
7898 | * builtins.def (BUILT_IN_MEMCPY): Do not specify RET1 fnspec. | |
7899 | (BUILT_IN_MEMMOVE): Do not specify RET1 fnspec. | |
7900 | (BUILT_IN_MEMSET): Do not specify RET1 fnspec. | |
7901 | (BUILT_IN_STRCAT): Do not specify RET1 fnspec. | |
7902 | (BUILT_IN_STRCPY): Do not specify RET1 fnspec. | |
7903 | (BUILT_IN_STRNCAT): Do not specify RET1 fnspec. | |
7904 | (BUILT_IN_STRNCPY): Do not specify RET1 fnspec. | |
7905 | (BUILT_IN_MEMCPY_CHK): Do not specify RET1 fnspec. | |
7906 | (BUILT_IN_MEMMOVE_CHK): Do not specify RET1 fnspec. | |
7907 | (BUILT_IN_MEMSET_CHK): Do not specify RET1 fnspec. | |
7908 | (BUILT_IN_STRCAT_CHK): Do not specify RET1 fnspec. | |
7909 | (BUILT_IN_STRCPY_CHK): Do not specify RET1 fnspec. | |
7910 | (BUILT_IN_STRNCAT_CHK): Do not specify RET1 fnspec. | |
7911 | (BUILT_IN_STRNCPY_CHK): Do not specify RET1 fnspec. | |
7912 | * gimple.c (gimple_call_fnspec): Return attr_fnspec. | |
7913 | (gimple_call_arg_flags): Update. | |
7914 | (gimple_call_return_flags): Update. | |
7915 | * tree-ssa-alias.c (check_fnspec): New function. | |
7916 | (ref_maybe_used_by_call_p_1): Use fnspec for builtin handling. | |
7917 | (call_may_clobber_ref_p_1): Likewise. | |
7918 | (attr_fnspec::verify): Update verifier. | |
7919 | * calls.c (decl_fnspec): New function. | |
7920 | (decl_return_flags): Use it. | |
7921 | ||
7922 | 2020-10-26 Aldy Hernandez <aldyh@redhat.com> | |
7923 | ||
7924 | PR tree-optimization/97555 | |
7925 | * range-op.cc (range_tests): Test 1-bit signed invert. | |
7926 | * value-range.cc (subtract_one): Adjust comment. | |
7927 | (add_one): New. | |
7928 | (irange::invert): Call add_one. | |
7929 | ||
7930 | 2020-10-26 Jan Hubicka <jh@suse.cz> | |
7931 | ||
7932 | * cgraph.h (cgraph_node::optimize_for_size_p): Return | |
7933 | optimize_size_level. | |
7934 | (cgraph_node::optimize_for_size_p): Update. | |
7935 | * coretypes.h (enum optimize_size_level): New enum. | |
7936 | * predict.c (unlikely_executed_edge_p): Microoptimize. | |
7937 | (optimize_function_for_size_p): Return optimize_size_level. | |
7938 | (optimize_bb_for_size_p): Likewise. | |
7939 | (optimize_edge_for_size_p): Likewise. | |
7940 | (optimize_insn_for_size_p): Likewise. | |
7941 | (optimize_loop_nest_for_size_p): Likewise. | |
7942 | * predict.h (optimize_function_for_size_p): Update declaration. | |
7943 | (optimize_bb_for_size_p): Update declaration. | |
7944 | (optimize_edge_for_size_p): Update declaration. | |
7945 | (optimize_insn_for_size_p): Update declaration. | |
7946 | (optimize_loop_for_size_p): Update declaration. | |
7947 | (optimize_loop_nest_for_size_p): Update declaration. | |
7948 | ||
7949 | 2020-10-26 Richard Biener <rguenther@suse.de> | |
7950 | ||
7951 | * tree-vect-slp.c (enum slp_instance_kind): New. | |
7952 | (vect_build_slp_instance): Split out from... | |
7953 | (vect_analyze_slp_instance): ... this. | |
7954 | ||
7955 | 2020-10-26 Andrew MacLeod <amacleod@redhat.com> | |
7956 | ||
7957 | * gimple-range.cc (range_of_builtin_call): Initialize zerov to 0. | |
7958 | ||
7959 | 2020-10-26 Jan Hubicka <jh@suse.cz> | |
7960 | ||
7961 | PR ipa/97576 | |
7962 | * cgraphclones.c (cgraph_node::materialize_clone): Clear stmt | |
7963 | references. | |
7964 | * cgraphunit.c (mark_functions_to_output): Do not clear them here. | |
7965 | * ipa-inline-transform.c (inline_transform): Clear stmt references. | |
7966 | * symtab.c (symtab_node::clear_stmts_in_references): Make recursive | |
7967 | for clones. | |
7968 | * tree-ssa-structalias.c (ipa_pta_execute): Do not clear references. | |
7969 | ||
7970 | 2020-10-26 Zhiheng Xie <xiezhiheng@huawei.com> | |
7971 | Nannan Zheng <zhengnannan@huawei.com> | |
7972 | ||
7973 | * config/aarch64/aarch64-builtins.c: Add FLAG STORE. | |
7974 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
7975 | for store intrinsics. | |
7976 | ||
7977 | 2020-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
7978 | ||
7979 | PR tree-optimization/97546 | |
7980 | * gimple-ssa-store-merging.c (find_bswap_or_nop): Return NULL if | |
7981 | type is not INTEGER_CST. | |
7982 | ||
7983 | 2020-10-26 Richard Biener <rguenther@suse.de> | |
7984 | ||
7985 | PR middle-end/97521 | |
7986 | * expr.c (const_scalar_mask_from_tree): Remove. | |
7987 | (expand_expr_real_1): Always VIEW_CONVERT integer mode | |
7988 | vector constants to an integer type. | |
7989 | * tree.c (build_truth_vector_type_for_mode): Use a single-bit | |
7990 | boolean component type for non-vector-mode mask_mode. | |
7991 | ||
7992 | 2020-10-26 H.J. Lu <hjl.tools@gmail.com> | |
7993 | ||
7994 | PR target/95458 | |
7995 | * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem): | |
7996 | Return false for -mno-inline-all-stringops. | |
7997 | ||
7998 | 2020-10-26 H.J. Lu <hjl.tools@gmail.com> | |
7999 | ||
8000 | PR target/95151 | |
8001 | * config/i386/i386-expand.c (ix86_expand_cmpstrn_or_cmpmem): New | |
8002 | function. | |
8003 | * config/i386/i386-protos.h (ix86_expand_cmpstrn_or_cmpmem): New | |
8004 | prototype. | |
8005 | * config/i386/i386.md (cmpmemsi): New pattern. | |
8006 | ||
8007 | 2020-10-26 Andreas Krebbel <krebbel@linux.ibm.com> | |
8008 | ||
8009 | * config/s390/vector.md ("vcond_mask_<mode><mode>"): New expander. | |
8010 | ||
8011 | 2020-10-26 Richard Biener <rguenther@suse.de> | |
8012 | ||
8013 | * sbitmap.c (sbitmap_vector_alloc): Use size_t for byte | |
8014 | quantities to avoid overflow. | |
8015 | ||
8016 | 2020-10-26 Richard Biener <rguenther@suse.de> | |
8017 | ||
8018 | PR tree-optimization/97539 | |
8019 | * tree-vect-loop-manip.c (vect_do_peeling): Reset out-of-loop | |
8020 | debug uses before peeling. | |
8021 | ||
8022 | 2020-10-26 Jan Hubicka <hubicka@ucw.cz> | |
8023 | ||
8024 | * cgraph.h (struct cgraph_node): Make ipa_transforms_to_apply vl_ptr. | |
8025 | * ipa-inline-analysis.c (initialize_growth_caches): Disable insertion | |
8026 | and duplication hooks. | |
8027 | * ipa-inline-transform.c (clone_inlined_nodes): Clear | |
8028 | ipa_transforms_to_apply. | |
8029 | (save_inline_function_body): Disable insertion hoook for | |
8030 | ipa_saved_clone_sources. | |
8031 | * ipa-prop.c (ipcp_transformation_initialize): Disable insertion hook. | |
8032 | * ipa-prop.h (ipa_node_params_t): Disable insertion hook. | |
8033 | * ipa-reference.c (propagate): Disable insertion hoook. | |
8034 | * ipa-sra.c (ipa_sra_summarize_function): Move out of anonymous | |
8035 | namespace. | |
8036 | (ipa_sra_function_summaries::insert): New virtual function. | |
8037 | * passes.c (execute_one_pass): Do not add transforms to inline clones. | |
8038 | * symbol-summary.h (function_summary_base): Make insert and duplicate | |
8039 | hooks fail instead of silently producing empty summaries; add way to | |
8040 | disable duplication hooks | |
8041 | (call_summary_base): Likewise. | |
8042 | * tree-nested.c (nested_function_info::get_create): Disable insertion | |
8043 | hooks | |
8044 | (maybe_record_nested_function): Likewise. | |
8045 | ||
8046 | 2020-10-26 Xionghu Luo <luoxhu@linux.ibm.com> | |
8047 | ||
8048 | * cfg.c (debug_bb): New overloaded function. | |
8049 | (debug_bb_n): New overloaded function. | |
8050 | * cfg.h (debug_bb): New declaration. | |
8051 | (debug_bb_n): New declaration. | |
8052 | * print-rtl.c (debug_bb_slim): Call debug_bb with flags. | |
8053 | ||
8054 | 2020-10-24 H.J. Lu <hjl.tools@gmail.com> | |
8055 | ||
8056 | PR bootstrap/97451 | |
8057 | * configure.ac (HAVE_AS_WORKING_DWARF_4_FLAG): Renamed to ... | |
8058 | (HAVE_AS_WORKING_DWARF_N_FLAG): This. Don't define if there is | |
8059 | an extra assembly input file in debug info. Replace success | |
8060 | with dwarf4_success in the 32-bit --gdwarf-4 check. | |
8061 | * dwarf2out.c (asm_outputs_debug_line_str): Check | |
8062 | HAVE_AS_WORKING_DWARF_N_FLAG instead of | |
8063 | HAVE_AS_WORKING_DWARF_4_FLAG. | |
8064 | * gcc.c (ASM_DEBUG_SPEC): Likewise. | |
8065 | (ASM_DEBUG_OPTION_SPEC): Likewise. | |
8066 | * config.in: Regenerated. | |
8067 | * configure: Likewise. | |
8068 | ||
8069 | 2020-10-24 Aldy Hernandez <aldyh@redhat.com> | |
8070 | ||
8071 | PR tree-optimization/97538 | |
8072 | * calls.c (get_size_range): Handle undefined ranges. | |
8073 | ||
8074 | 2020-10-24 Martin Liska <mliska@suse.cz> | |
8075 | ||
8076 | * cgraph.c (cgraph_node::former_thunk_p): Move out of CHECKING_P | |
8077 | macro. | |
8078 | ||
8079 | 2020-10-24 Alan Modra <amodra@gmail.com> | |
8080 | ||
8081 | * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Limit | |
8082 | AND addressing to just lvx/stvx style addresses. | |
8083 | ||
8084 | 2020-10-24 Alan Modra <amodra@gmail.com> | |
8085 | ||
8086 | * config/rs6000/rs6000.md (cstore<mode>4): Don't call | |
8087 | rs6000_emit_int_cmove for power10 when -mno-isel. | |
8088 | ||
8089 | 2020-10-23 Jan Hubicka <hubicka@ucw.cz> | |
8090 | ||
8091 | * Makefile.in: Add symtab-thunks.o | |
8092 | (GTFILES): Add symtab-thunks.h and symtab-thunks.cc; remove cgraphunit.c | |
8093 | * cgraph.c: Include symtab-thunks.h. | |
8094 | (cgraph_node::create_thunk): Update | |
8095 | (symbol_table::create_edge): Update | |
8096 | (cgraph_node::dump): Update | |
8097 | (cgraph_node::call_for_symbol_thunks_and_aliases): Update | |
8098 | (set_nothrow_flag_1): Update | |
8099 | (set_malloc_flag_1): Update | |
8100 | (set_const_flag_1): Update | |
8101 | (collect_callers_of_node_1): Update | |
8102 | (clone_of_p): Update | |
8103 | (cgraph_node::verify_node): Update | |
8104 | (cgraph_node::function_symbol): Update | |
8105 | (cgraph_c_finalize): Call thunk_info::release. | |
8106 | (cgraph_node::has_thunk_p): Update | |
8107 | (cgraph_node::former_thunk_p): Move here from cgraph.h; reimplement. | |
8108 | * cgraph.h (struct cgraph_thunk_info): Rename to symtab-thunks.h. | |
8109 | (cgraph_node): Remove thunk field; add thunk bitfield. | |
8110 | (cgraph_node::expand_thunk): Move to symtab-thunks.h | |
8111 | (symtab_thunks_cc_finalize): Declare. | |
8112 | (cgraph_node::has_gimple_body_p): Update. | |
8113 | (cgraph_node::former_thunk_p): Update. | |
8114 | * cgraphclones.c: Include symtab-thunks.h. | |
8115 | (duplicate_thunk_for_node): Update. | |
8116 | (cgraph_edge::redirect_callee_duplicating_thunks): Update. | |
8117 | (cgraph_node::expand_all_artificial_thunks): Update. | |
8118 | (cgraph_node::create_edge_including_clones): Update. | |
8119 | * cgraphunit.c: Include symtab-thunks.h. | |
8120 | (vtable_entry_type): Move to symtab-thunks.c. | |
8121 | (cgraph_node::analyze): Update. | |
8122 | (analyze_functions): Update. | |
8123 | (mark_functions_to_output): Update. | |
8124 | (thunk_adjust): Move to symtab-thunks.c | |
8125 | (cgraph_node::expand_thunk): Move to symtab-thunks.c | |
8126 | (cgraph_node::assemble_thunks_and_aliases): Update. | |
8127 | (output_in_order): Update. | |
8128 | (cgraphunit_c_finalize): Do not clear vtable_entry_type. | |
8129 | (cgraph_node::create_wrapper): Update. | |
8130 | * gengtype.c (open_base_files): Add symtab-thunks.h | |
8131 | * ipa-comdats.c (propagate_comdat_group): UPdate. | |
8132 | (ipa_comdats): Update. | |
8133 | * ipa-cp.c (determine_versionability): UPdate. | |
8134 | (gather_caller_stats): Update. | |
8135 | (count_callers): Update | |
8136 | (set_single_call_flag): Update | |
8137 | (initialize_node_lattices): Update | |
8138 | (call_passes_through_thunk_p): Update | |
8139 | (call_passes_through_thunk): Update | |
8140 | (propagate_constants_across_call): Update | |
8141 | (find_more_scalar_values_for_callers_subset): Update | |
8142 | (has_undead_caller_from_outside_scc_p): Update | |
8143 | * ipa-fnsummary.c (evaluate_properties_for_edge): Update. | |
8144 | (compute_fn_summary): Update. | |
8145 | (inline_analyze_function): Update. | |
8146 | * ipa-icf.c: Include symtab-thunks.h. | |
8147 | (sem_function::equals_wpa): Update. | |
8148 | (redirect_all_callers): Update. | |
8149 | (sem_function::init): Update. | |
8150 | (sem_function::parse): Update. | |
8151 | * ipa-inline-transform.c: Include symtab-thunks.h. | |
8152 | (inline_call): Update. | |
8153 | (save_inline_function_body): Update. | |
8154 | (preserve_function_body_p): Update. | |
8155 | * ipa-inline.c (inline_small_functions): Update. | |
8156 | * ipa-polymorphic-call.c: Include alloc-pool.h, symbol-summary.h, | |
8157 | symtab-thunks.h | |
8158 | (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Update. | |
8159 | * ipa-pure-const.c: Include symtab-thunks.h. | |
8160 | (analyze_function): Update. | |
8161 | * ipa-sra.c (check_for_caller_issues): Update. | |
8162 | * ipa-utils.c (ipa_reverse_postorder): Update. | |
8163 | (ipa_merge_profiles): Update. | |
8164 | * ipa-visibility.c (non_local_p): Update. | |
8165 | (cgraph_node::local_p): Update. | |
8166 | (function_and_variable_visibility): Update. | |
8167 | * ipa.c (symbol_table::remove_unreachable_nodes): Update. | |
8168 | * lto-cgraph.c: Include alloc-pool.h, symbol-summary.h and | |
8169 | symtab-thunks.h | |
8170 | (lto_output_edge): Update. | |
8171 | (lto_output_node): Update. | |
8172 | (compute_ltrans_boundary): Update. | |
8173 | (output_symtab): Update. | |
8174 | (verify_node_partition): Update. | |
8175 | (input_overwrite_node): Update. | |
8176 | (input_node): Update. | |
8177 | * lto-streamer-in.c (fixup_call_stmt_edges): Update. | |
8178 | * symtab-thunks.cc: New file. | |
8179 | * symtab-thunks.h: New file. | |
8180 | * toplev.c (toplev::finalize): Call symtab_thunks_cc_finalize. | |
8181 | * trans-mem.c (ipa_tm_mayenterirr_function): Update. | |
8182 | (ipa_tm_execute): Update. | |
8183 | * tree-inline.c (expand_call_inline): Update. | |
8184 | * tree-nested.c (create_nesting_tree): Update. | |
8185 | (convert_all_function_calls): Update. | |
8186 | (gimplify_all_functions): Update. | |
8187 | * tree-profile.c (tree_profiling): Update. | |
8188 | * tree-ssa-structalias.c (associate_varinfo_to_alias): Update. | |
8189 | * tree.c (free_lang_data_in_decl): Update. | |
8190 | * value-prof.c (init_node_map): Update. | |
8191 | ||
8192 | 2020-10-23 Marek Polacek <polacek@redhat.com> | |
8193 | ||
8194 | PR c++/91741 | |
8195 | * doc/invoke.texi: Document -Wsizeof-array-div. | |
8196 | ||
8197 | 2020-10-23 Martin Sebor <msebor@redhat.com> | |
8198 | ||
8199 | PR middle-end/97552 | |
8200 | * attribs.c (init_attr_rdwr_indices): Handle static VLA parameters. | |
8201 | ||
8202 | 2020-10-23 Douglas Rupp <rupp@adacore.com> | |
8203 | ||
8204 | * config/vxworks.h (VXWORKS_NET_LIBS_RTP): Use -lrtnet if | |
8205 | rtnetStackLib.h is available,fallback to -lnet otherwise. | |
8206 | ||
8207 | 2020-10-23 Douglas Rupp <rupp@adacore.com> | |
8208 | ||
8209 | * gcc.c (if-exists-then-else): New built-in spec function. | |
8210 | * doc/invoke.texi: Document it. | |
8211 | ||
8212 | 2020-10-23 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> | |
8213 | ||
8214 | * doc/extend.texi (PowerPC Built-in Functions): Replace | |
8215 | extraneous characters with whitespace. | |
8216 | ||
8217 | 2020-10-23 Martin Liska <mliska@suse.cz> | |
8218 | ||
8219 | * gcov.c (read_count_file): Never call gcov_sync with a negative | |
8220 | value. | |
8221 | ||
8222 | 2020-10-23 Jakub Jelinek <jakub@redhat.com> | |
8223 | ||
8224 | * Makefile.in (PLUGIN_HEADERS): Add gomp-constants.h and $(EXPR_H). | |
8225 | (s-header-vars): Accept not just spaces but also tabs between *_H name | |
8226 | and =. Handle common/config/ headers similarly to config. Don't | |
8227 | throw away everything from first ... to last / on the remaining | |
8228 | string, instead skip just ... to corresponding last / without | |
8229 | intervening spaces and tabs. | |
8230 | (install-plugin): Treat common/config headers like config headers. | |
8231 | * config/i386/t-i386 (TM_H): Add | |
8232 | $(srcdir)/common/config/i386/i386-cpuinfo.h. | |
8233 | ||
8234 | 2020-10-23 Jakub Jelinek <jakub@redhat.com> | |
8235 | ||
8236 | PR tree-optimization/97164 | |
8237 | * stor-layout.c (layout_type): Also reject arrays where element size | |
8238 | is constant, but not a multiple of element alignment. | |
8239 | ||
8240 | 2020-10-23 Eric Botcazou <ebotcazou@adacore.com> | |
8241 | ||
8242 | * tree-ssa-loop-ivopts.c (analyze_and_mark_doloop_use): Bail out if | |
8243 | the loop is subject to a pragma Unroll with no specific count. | |
8244 | ||
8245 | 2020-10-23 Dennis Zhang <dennis.zhang@arm.com> | |
8246 | ||
8247 | * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction | |
8248 | using expression 'minus'. | |
8249 | (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec. | |
8250 | * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed. | |
8251 | (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16. | |
8252 | * config/arm/vec-common.md (sub<mode>3): Use the new mode macros | |
8253 | ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL. | |
8254 | ||
8255 | 2020-10-23 Martin Liska <mliska@suse.cz> | |
8256 | ||
8257 | PR lto/97524 | |
8258 | * lto-wrapper.c (make_exists): New function. | |
8259 | (run_gcc): Use it to check that make is present and working | |
8260 | for parallel execution. | |
8261 | ||
8262 | 2020-10-23 Richard Biener <rguenther@suse.de> | |
8263 | ||
8264 | Revert: | |
8265 | 2020-10-22 Richard Biener <rguenther@suse.de> | |
8266 | ||
8267 | PR middle-end/97521 | |
8268 | * expr.c (expand_expr_real_1): Be more careful when | |
8269 | expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs. | |
8270 | ||
8271 | 2020-10-23 Kewen Lin <linkw@linux.ibm.com> | |
8272 | ||
8273 | * tree-vect-loop.c (vect_transform_loop): Remove the redundant | |
8274 | LOOP_VINFO_FULLY_MASKED_P check. | |
8275 | ||
8276 | 2020-10-23 Dennis Zhang <dennis.zhang@arm.com> | |
8277 | ||
8278 | * config/arm/mve.md (mve_vsubq<mode>): New entry for vsub instruction | |
8279 | using expression 'minus'. | |
8280 | (mve_vsubq_f<mode>): Use minus instead of VSUBQ_F unspec. | |
8281 | * config/arm/neon.md (sub<mode>3, sub<mode>3_fp16): Removed. | |
8282 | (neon_vsub<mode>): Use gen_sub<mode>3 instead of gen_sub<mode>3_fp16. | |
8283 | * config/arm/vec-common.md (sub<mode>3): Use the new mode macros | |
8284 | ARM_HAVE_<MODE>_ARITH. Use iterator VDQ instead of VALL. | |
8285 | ||
8286 | 2020-10-22 Alan Modra <amodra@gmail.com> | |
8287 | ||
8288 | * config/rs6000/rs6000.c (rs6000_emit_xxspltidp_v2df): Delete | |
8289 | debug printf. Remove trailing ".\n" from inform message. | |
8290 | Break long line. | |
8291 | ||
8292 | 2020-10-22 Andrew MacLeod <amacleod@redhat.com> | |
8293 | ||
8294 | * gimple-range-gori.cc (is_gimple_logical_p): Use types_compatible_p | |
8295 | for logical compatibility. | |
8296 | (logical_stmt_cache::cacheable_p): Ditto. | |
8297 | ||
8298 | 2020-10-22 Jan Hubicka <hubicka@ucw.cz> | |
8299 | ||
8300 | * cgraph.c (cgraph_node::get_untransformed_body): Perform lazy | |
8301 | clone materialization. | |
8302 | * cgraph.h (cgraph_node::materialize_clone): Declare. | |
8303 | (symbol_table::materialize_all_clones): Remove. | |
8304 | * cgraphclones.c (cgraph_materialize_clone): Turn to ... | |
8305 | (cgraph_node::materialize_clone): .. this one; move here | |
8306 | dumping from symbol_table::materialize_all_clones. | |
8307 | (symbol_table::materialize_all_clones): Remove. | |
8308 | * cgraphunit.c (mark_functions_to_output): Clear stmt references. | |
8309 | (cgraph_node::expand): Initialize bitmaps early; | |
8310 | do not call execute_all_ipa_transforms if there are no transforms. | |
8311 | * ipa-inline-transform.c (save_inline_function_body): Fix formating. | |
8312 | (inline_transform): Materialize all clones before function is modified. | |
8313 | * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): | |
8314 | Materialize clone if needed. | |
8315 | * ipa.c (class pass_materialize_all_clones): Remove. | |
8316 | (make_pass_materialize_all_clones): Remove. | |
8317 | * passes.c (execute_all_ipa_transforms): Materialize all clones. | |
8318 | * passes.def: Remove pass_materialize_all_clones. | |
8319 | * tree-pass.h (make_pass_materialize_all_clones): Remove. | |
8320 | * tree-ssa-structalias.c (ipa_pta_execute): Clear refs. | |
8321 | ||
8322 | 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com> | |
8323 | ||
8324 | * config/rs6000/altivec.h (vec_xl_zext, vec_xl_sext, vec_xst_trunc): | |
8325 | New defines. | |
8326 | * config/rs6000/rs6000-builtin.def (BU_P10V_OVERLOAD_X): New builtin | |
8327 | macro. | |
8328 | (BU_P10V_AV_X): New builtin macro. | |
8329 | (se_lxvrhbx, se_lxrbhx, se_lxvrwx, se_lxvrdx): Define internal names | |
8330 | for load and sign extend vector element. | |
8331 | (ze_lxvrbx, ze_lxvrhx, ze_lxvrwx, ze_lxvrdx): Define internal names | |
8332 | for load and zero extend vector element. | |
8333 | (tr_stxvrbx, tr_stxvrhx, tr_stxvrwx, tr_stxvrdx): Define internal names | |
8334 | for truncate and store vector element. | |
8335 | (se_lxvrx, ze_lxvrx, tr_stxvrx): Define internal names for overloaded | |
8336 | load/store rightmost element. | |
8337 | * config/rs6000/rs6000-call.c (altivec_builtin_types): Define the | |
8338 | internal monomorphs P10_BUILTIN_SE_LXVRBX, P10_BUILTIN_SE_LXVRHX, | |
8339 | P10_BUILTIN_SE_LXVRWX, P10_BUILTIN_SE_LXVRDX, | |
8340 | P10_BUILTIN_ZE_LXVRBX, P10_BUILTIN_ZE_LXVRHX, P10_BUILTIN_ZE_LXVRWX, | |
8341 | P10_BUILTIN_ZE_LXVRDX, | |
8342 | P10_BUILTIN_TR_STXVRBX, P10_BUILTIN_TR_STXVRHX, P10_BUILTIN_TR_STXVRWX, | |
8343 | P10_BUILTIN_TR_STXVRDX, | |
8344 | (altivec_expand_lxvr_builtin): New expansion for load element builtins. | |
8345 | (altivec_expand_stv_builtin): Update to for truncate and store builtins. | |
8346 | (altivec_expand_builtin): Add clases for load/store rightmost builtins. | |
8347 | (altivec_init_builtins): Add def_builtin entries for | |
8348 | __builtin_altivec_se_lxvrbx, __builtin_altivec_se_lxvrhx, | |
8349 | __builtin_altivec_se_lxvrwx, __builtin_altivec_se_lxvrdx, | |
8350 | __builtin_altivec_ze_lxvrbx, __builtin_altivec_ze_lxvrhx, | |
8351 | __builtin_altivec_ze_lxvrwx, __builtin_altivec_ze_lxvrdx, | |
8352 | __builtin_altivec_tr_stxvrbx, __builtin_altivec_tr_stxvrhx, | |
8353 | __builtin_altivec_tr_stxvrwx, __builtin_altivec_tr_stxvrdx, | |
8354 | __builtin_vec_se_lxvrx, __builtin_vec_ze_lxvrx, __builtin_vec_tr_stxvrx. | |
8355 | * config/rs6000/vsx.md (vsx_lxvr<wd>x, vsx_stxvr<wd>x, vsx_stxvr<wd>x): | |
8356 | New define_insn entries. | |
8357 | * doc/extend.texi: Add documentation for vsx_xl_sext, vsx_xl_zext, | |
8358 | and vec_xst_trunc. | |
8359 | ||
8360 | 2020-10-22 Will Schmidt <will_schmidt@vnet.ibm.com> | |
8361 | ||
8362 | * config/rs6000/vsx.md (enum unspec): Add | |
8363 | UNSPEC_EXTENDDITI2 and UNSPEC_MTVSRD_DITI_W1 entries. | |
8364 | (mtvsrdd_diti_w1, extendditi2_vector): New define_insns. | |
8365 | (extendditi2): New define_expand. | |
8366 | ||
8367 | 2020-10-22 Alexandre Oliva <oliva@adacore.com> | |
8368 | ||
8369 | * config/i386/mingw-w64.h (TARGET_LIBC_HAS_FUNCTION): Enable | |
8370 | sincos optimization. | |
8371 | ||
8372 | 2020-10-22 Alan Modra <amodra@gmail.com> | |
8373 | ||
8374 | * config/rs6000/vsx.md (vec_cntmb_<mode>, vec_extract_<mode>), | |
8375 | (vec_expand_<mode>): Replace <VSX_MM_SUFFIX> with <wd>. | |
8376 | ||
8377 | 2020-10-22 Richard Biener <rguenther@suse.de> | |
8378 | ||
8379 | * tree-vect-slp.c (vect_analyze_slp_instance): Refactor so | |
8380 | computing a vector type early is not needed, for store group | |
8381 | splitting compute a new vector type based on the desired | |
8382 | group size. | |
8383 | ||
8384 | 2020-10-22 Richard Biener <rguenther@suse.de> | |
8385 | ||
8386 | PR middle-end/97521 | |
8387 | * expr.c (expand_expr_real_1): Be more careful when | |
8388 | expanding a VECTOR_BOOLEAN_TYPE_P VECTOR_CSTs. | |
8389 | ||
8390 | 2020-10-22 David Malcolm <dmalcolm@redhat.com> | |
8391 | ||
8392 | * ipa-modref-tree.c (selftest::test_insert_search_collapse): Fix | |
8393 | leak. | |
8394 | (selftest::test_merge): Fix leaks. | |
8395 | ||
8396 | 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com> | |
8397 | ||
8398 | PR target/97502 | |
8399 | * config/s390/vector.md ("vec_cmp<VI_HW:mode><VI_HW:mode>") | |
8400 | ("vec_cmpu<VI_HW:mode><VI_HW:mode>"): New expanders. | |
8401 | ||
8402 | 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com> | |
8403 | ||
8404 | PR rtl-optimization/97439 | |
8405 | * dfp.c (decimal_real_maxval): Set the sign flag in the | |
8406 | generated number. | |
8407 | ||
8408 | 2020-10-22 Martin Liska <mliska@suse.cz> | |
8409 | ||
8410 | PR c/94722 | |
8411 | * cfgexpand.c (stack_protect_decl_phase): | |
8412 | Guard with lookup_attribute("no_stack_protector") at | |
8413 | various places. | |
8414 | (expand_used_vars): Likewise here. | |
8415 | * doc/extend.texi: Document no_stack_protector attribute. | |
8416 | ||
8417 | 2020-10-22 Martin Liska <mliska@suse.cz> | |
8418 | ||
8419 | * cfgexpand.c: Move the enum to ... | |
8420 | * coretypes.h (enum stack_protector): ... here. | |
8421 | * function.c (assign_parm_adjust_stack_rtl): Use the stack_protector | |
8422 | enum. | |
8423 | ||
8424 | 2020-10-22 Kito Cheng <kito.cheng@sifive.com> | |
8425 | ||
8426 | * config/riscv/multilib-generator: Add TODO, import itertools | |
8427 | and functools.reduce. | |
8428 | Handle expantion operator. | |
8429 | (LONG_EXT_PREFIXES): New. | |
8430 | (arch_canonicalize): Update comment and improve python3 | |
8431 | debuggability/compatibility. | |
8432 | (add_underline_prefix): New. | |
8433 | (_expand_combination): Ditto. | |
8434 | (unique): Ditto. | |
8435 | (expand_combination): Ditto. | |
8436 | ||
8437 | 2020-10-22 Jakub Jelinek <jakub@redhat.com> | |
8438 | ||
8439 | * tree-ssa-phiopt.c (cond_removal_in_popcount_clz_ctz_pattern): | |
8440 | For CLZ and CTZ tests, use type temporary instead of mode. | |
8441 | ||
8442 | 2020-10-22 Jakub Jelinek <jakub@redhat.com> | |
8443 | ||
8444 | * config.gcc (x86_archs): Add samuel-2, nehemiah, c7 and esther. | |
8445 | (x86_64_archs): Add eden-x2, nano, nano-1000, nano-2000, nano-3000, | |
8446 | nano-x2, eden-x4, nano-x4, x86-64-v2, x86-64-v3 and x86-64-v4. | |
8447 | (i[34567]86-*-* | x86_64-*-*): Only allow x86-64-v* as argument | |
8448 | to --with-arch_64=. | |
8449 | ||
8450 | 2020-10-22 Jan Hubicka <jh@suse.cz> | |
8451 | ||
8452 | * ipa-pure-const.c (funct_state_summary_t::insert): Free stale | |
8453 | summaries. | |
8454 | ||
8455 | 2020-10-22 Jan Hubicka <hubicka@ucw.cz> | |
8456 | ||
8457 | * cgraph.c: Include tree-nested.h | |
8458 | (cgraph_node::create): Call maybe_record_nested_function. | |
8459 | (cgraph_node::remove): Do not remove function from nested function | |
8460 | infos. | |
8461 | (cgraph_node::dump): Update. | |
8462 | (cgraph_node::unnest): Move to tree-nested.c | |
8463 | (cgraph_node::verify_node): Update. | |
8464 | (cgraph_c_finalize): Call nested_function_info::release. | |
8465 | * cgraph.h (struct symtab_node): Remove nested function info. | |
8466 | * cgraphclones.c (cgraph_node::create_clone): Do not clone nested | |
8467 | function info. | |
8468 | * cgraphunit.c (cgraph_node::analyze): Update. | |
8469 | (cgraph_node::expand): Do not worry about nested functions; they are | |
8470 | lowered. | |
8471 | (symbol_table::finalize_compilation_unit): Call | |
8472 | nested_function_info::release. | |
8473 | * gimplify.c: Include tree-nested.h | |
8474 | (unshare_body): Update. | |
8475 | (unvisit_body): Update. | |
8476 | * omp-offload.c (omp_discover_implicit_declare_target): Update. | |
8477 | * tree-nested.c: Include alloc-pool.h, tree-nested.h, symbol-summary.h | |
8478 | (nested_function_sum): New static variable. | |
8479 | (nested_function_info::get): New member function. | |
8480 | (nested_function_info::get_create): New member function. | |
8481 | (unnest_function): New function. | |
8482 | (nested_function_info::~nested_function_info): New member function. | |
8483 | (nested_function_info::release): New function. | |
8484 | (maybe_record_nested_function): New function. | |
8485 | (lookup_element_for_decl): Update. | |
8486 | (check_for_nested_with_variably_modified): Update. | |
8487 | (create_nesting_tree): Update. | |
8488 | (unnest_nesting_tree_1): Update. | |
8489 | (gimplify_all_functions): Update. | |
8490 | (lower_nested_functions): Update. | |
8491 | * tree-nested.h (class nested_function_info): New class. | |
8492 | (maybe_record_nested_function): Declare. | |
8493 | (unnest_function): Declare. | |
8494 | (first_nested_function): New inline function. | |
8495 | (next_nested_function): New inline function. | |
8496 | (nested_function_origin): New inline function. | |
8497 | ||
8498 | 2020-10-22 liuhongt <hongtao.liu@intel.com> | |
8499 | ||
8500 | PR rtl-optimization/97249 | |
8501 | * simplify-rtx.c (simplify_binary_operation_1): Simplify | |
8502 | vec_select of a subreg of X to a vec_select of X. | |
8503 | ||
8504 | 2020-10-22 liuhongt <hongtao.liu@intel.com> | |
8505 | ||
8506 | PR target/87767 | |
8507 | * config/i386/constraints.md ("Br"): New special memory | |
8508 | constraint. | |
8509 | * config/i386/i386-expand.c (ix86_binary_operator_ok): Both | |
8510 | source operand cannot be in memory or bcst_memory_operand. | |
8511 | * config/i386/i386.c (ix86_print_operand): Print bcst_mem_operand. | |
8512 | * config/i386/i386.h (VALID_BCST_MODE_P): New. | |
8513 | * config/i386/predicates.md (bcst_mem_operand): New predicate | |
8514 | for AVX512 embedding broadcast memory operand. | |
8515 | (bcst_vector_operand): New predicate, vector_operand or | |
8516 | bcst_mem_operand. | |
8517 | * config/i386/sse.md | |
8518 | (*<plusminus_insn><mode>3<mask_name><round_name>): Extend | |
8519 | predicate and constraints to handle bcst_mem_operand. | |
8520 | (*mul<mode>3<mask_name><round_name>): Ditto. | |
8521 | (<sse>_div<mode>3<mask_name><round_name>): Ditto. | |
8522 | (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>): | |
8523 | Ditto. | |
8524 | (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): | |
8525 | Ditto. | |
8526 | (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): | |
8527 | Ditto. | |
8528 | (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): | |
8529 | Ditto. | |
8530 | (*<plusminus_insn><mode>3): Ditto. | |
8531 | (avx512dq_mul<mode>3<mask_name>): Ditto. | |
8532 | (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto. | |
8533 | (*andnot<mode>3): Ditto. | |
8534 | (<mask_codefor><code><mode>3<mask_name>): Ditto. | |
8535 | (*sub<mode>3<mask_name>_bcst): Removed. | |
8536 | (*add<mode>3<mask_name>_bcst): Ditto. | |
8537 | (*mul<mode>3<mask_name>_bcst): Ditto. | |
8538 | (*<avx512>_div<mode>3<mask_name>_bcst): Ditto. | |
8539 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): | |
8540 | Ditto. | |
8541 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): | |
8542 | Ditto. | |
8543 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): | |
8544 | Ditto. | |
8545 | (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1): | |
8546 | Ditto. | |
8547 | (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2): | |
8548 | Ditto. | |
8549 | (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3): | |
8550 | Ditto. | |
8551 | (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1): | |
8552 | Ditto. | |
8553 | (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2): | |
8554 | Ditto. | |
8555 | (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3): | |
8556 | Ditto. | |
8557 | (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): | |
8558 | Ditto. | |
8559 | (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2): | |
8560 | Ditto. | |
8561 | (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3): | |
8562 | Ditto. | |
8563 | (*sub<mode>3_bcst): Ditto. | |
8564 | (*add<mode>3_bcst): Ditto. | |
8565 | (*avx512dq_mul<mode>3<mask_name>_bcst): Ditto. | |
8566 | (*avx512f_mul<mode>3<mask_name>_bcst): Ditto. | |
8567 | (*andnot<mode>3_bcst): Ditto. | |
8568 | (*<code><mode>3_bcst): Ditto. | |
8569 | * config/i386/subst.md (bcst_round_constraint): New subst | |
8570 | attribute. | |
8571 | (bcst_round_nimm_predicate): Ditto. | |
8572 | (bcst_mask_prefix3): Ditto. | |
8573 | (bcst_mask_prefix4): Ditto. | |
8574 | ||
8575 | 2020-10-22 liuhongt <hongtao.liu@intel.com> | |
8576 | ||
8577 | PR target/87767 | |
8578 | * ira-costs.c (record_operand_costs): Extract memory operand | |
8579 | from recog_data.operand[i] for record_address_regs. | |
8580 | (record_reg_classes): Extract memory operand from OP for | |
8581 | conditional judgement MEM_P. | |
8582 | * ira.c (ira_setup_alts): Ditto. | |
8583 | * lra-constraints.c (extract_mem_from_operand): New function. | |
8584 | (satisfies_memory_constraint_p): Extract memory operand from | |
8585 | OP for decompose_mem_address, return false when there's no | |
8586 | memory operand inside OP. | |
8587 | (process_alt_operands): Remove MEM_P (op) since it would be | |
8588 | judged in satisfies_memory_constraint_p. | |
8589 | * recog.c (asm_operand_ok): Extract memory operand from OP for | |
8590 | judgement of memory_operand (OP, VOIDmode). | |
8591 | (constrain_operands): Don't unwrapper unary operator when | |
8592 | there's memory operand inside. | |
8593 | * rtl.h (extract_mem_from_operand): New decl. | |
8594 | ||
8595 | 2020-10-22 Dennis Zhang <dennis.zhang@arm.com> | |
8596 | ||
8597 | * config/arm/mve.md (mve_vmaxq_<supf><mode>): Replace with ... | |
8598 | (mve_vmaxq_s<mode>, mve_vmaxq_u<mode>): ... these new insns to | |
8599 | use smax/umax instead of VMAXQ. | |
8600 | (mve_vminq_<supf><mode>): Replace with ... | |
8601 | (mve_vminq_s<mode>, mve_vminq_u<mode>): ... these new insns to | |
8602 | use smin/umin instead of VMINQ. | |
8603 | (mve_vmaxnmq_f<mode>): Use smax instead of VMAXNMQ_F. | |
8604 | (mve_vminnmq_f<mode>): Use smin instead of VMINNMQ_F. | |
8605 | * config/arm/vec-common.md (smin<mode>3): Use the new mode macros | |
8606 | ARM_HAVE_<MODE>_ARITH. | |
8607 | (umin<mode>3, smax<mode>3, umax<mode>3): Likewise. | |
8608 | ||
8609 | 2020-10-22 Andrew MacLeod <amacleod@redhat.com> | |
8610 | ||
8611 | PR tree-optimization/97520 | |
8612 | * gimple-range.cc (range_of_non_trivial_assignment): Handle x = &a | |
8613 | by returning a non-zero range. | |
8614 | ||
8615 | 2020-10-22 Dennis Zhang <dennis.zhang@arm.com> | |
8616 | ||
8617 | * config/arm/mve.md (mve_vmulq<mode>): New entry for vmul instruction | |
8618 | using expression 'mult'. | |
8619 | (mve_vmulq_f<mode>): Use mult instead of VMULQ_F. | |
8620 | * config/arm/neon.md (mul<mode>3): Removed. | |
8621 | * config/arm/vec-common.md (mul<mode>3): Use the new mode macros | |
8622 | ARM_HAVE_<MODE>_ARITH. Use mode iterator VDQWH instead of VALLW. | |
8623 | ||
8624 | 2020-10-22 Andrew MacLeod <amacleod@redhat.com> | |
8625 | ||
8626 | PR tree-optimization/97515 | |
8627 | * value-query.cc (range_query::value_of_expr): If the result is | |
8628 | UNDEFINED, check to see if the global value is a constant. | |
8629 | (range_query::value_on_edge): Ditto. | |
8630 | ||
8631 | 2020-10-21 Jan Hubicka <hubicka@ucw.cz> | |
8632 | ||
8633 | PR ipa/97445 | |
8634 | * ipa-inline.c (inline_insns_single): Add hint2 parameter. | |
8635 | (inline_insns_auto): Add hint2 parameter. | |
8636 | (can_inline_edge_by_limits_p): Update. | |
8637 | (want_inline_small_function_p): Update. | |
8638 | (wrapper_heuristics_may_apply): Update. | |
8639 | ||
8640 | 2020-10-21 Richard Biener <rguenther@suse.de> | |
8641 | Andrew MacLeod <amacleod@redhat.com> | |
8642 | Martin Liska <mliska@suse.cz> | |
8643 | ||
8644 | PR target/97360 | |
8645 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove call to | |
8646 | build_distinct_type_copy(). | |
8647 | ||
8648 | 2020-10-21 Jan Hubicka <jh@suse.cz> | |
8649 | ||
8650 | PR ipa/97445 | |
8651 | * ipa-fnsummary.c (ipa_dump_hints): Add INLINE_HINT_builtin_constant_p. | |
8652 | (ipa_fn_summary::~ipa_fn_summary): Free builtin_constant_p_parms. | |
8653 | (ipa_fn_summary_t::duplicate): Duplicate builtin_constant_p_parms. | |
8654 | (ipa_dump_fn_summary): Dump builtin_constant_p_parms. | |
8655 | (add_builtin_constant_p_parm): New function | |
8656 | (set_cond_stmt_execution_predicate): Update builtin_constant_p_parms. | |
8657 | (ipa_call_context::estimate_size_and_time): Set | |
8658 | INLINE_HINT_builtin_constant_p.. | |
8659 | (ipa_merge_fn_summary_after_inlining): Merge builtin_constant_p_parms. | |
8660 | (inline_read_section): Read builtin_constant_p_parms. | |
8661 | (ipa_fn_summary_write): Write builtin_constant_p_parms. | |
8662 | * ipa-fnsummary.h (enum ipa_hints_vals): Add | |
8663 | INLINE_HINT_builtin_constant_p. | |
8664 | * ipa-inline.c (want_inline_small_function_p): Use | |
8665 | INLINE_HINT_builtin_constant_p. | |
8666 | (edge_badness): Use INLINE_HINT_builtin_constant_p. | |
8667 | ||
8668 | 2020-10-21 Douglas Rupp <rupp@adacore.com> | |
8669 | ||
8670 | * config/vx-common.h (LINK_SPEC, LIB_SPEC): Remove #undef. | |
8671 | ||
8672 | 2020-10-21 Douglas Rupp <rupp@adacore.com> | |
8673 | Olivier Hainque <hainque@adacore.com> | |
8674 | ||
8675 | * config.gcc (powerpc*-wrs-vxworks7r*): New case. | |
8676 | * config/rs6000/vxworks.h: Rework to handle VxWorks7. | |
8677 | Refactor as common bits + vx6 vs vx7 ones. For the | |
8678 | latter, rely essentially on the Linux configuration | |
8679 | and adjust CPU to _VX_CPU in CPP_SPEC. Add a case | |
8680 | for e6500. Use SUB3TARGET_OVERRIDE_OPTIONS for specifics | |
8681 | to preserve the Linux SUBSUBTARGET_OVERRIDE_OPTIONS | |
8682 | for vx7. | |
8683 | ||
8684 | 2020-10-21 Richard Biener <rguenther@suse.de> | |
8685 | ||
8686 | PR tree-optimization/97500 | |
8687 | * tree-vect-slp.c (vect_analyze_slp_backedges): Do not | |
8688 | fill backedges for inductions. | |
8689 | ||
8690 | 2020-10-21 liuhongt <hongtao.liu@intel.com> | |
8691 | ||
8692 | PR target/97506 | |
8693 | * config/i386/i386-expand.c (ix86_expand_sse_movcc): Move | |
8694 | op_true to dest directly when op_true equals op_false. | |
8695 | ||
8696 | 2020-10-21 Jakub Jelinek <jakub@redhat.com> | |
8697 | ||
8698 | PR tree-optimization/97503 | |
8699 | * tree-ssa-phiopt.c: Include internal-fn.h. | |
8700 | (cond_removal_in_popcount_pattern): Rename to ... | |
8701 | (cond_removal_in_popcount_clz_ctz_pattern): ... this. Handle not just | |
8702 | popcount, but also clz and ctz if it has C?Z_DEFINED_VALUE_AT_ZERO 2. | |
8703 | ||
8704 | 2020-10-21 Richard Biener <rguenther@suse.de> | |
8705 | ||
8706 | * cfg.c (htab_bb_copy_original_entry): Remove. | |
8707 | (bb_copy_hasher): Likewise. | |
8708 | (bb_original, bb_copy, loop_copy): Use | |
8709 | hash_map<int_hash<int, -1, -2>, int>. | |
8710 | (original_copy_bb_pool): Remove. | |
8711 | (initialize_original_copy_tables): Adjust. | |
8712 | (reset_original_copy_tables): Likewise. | |
8713 | (free_original_copy_tables): Likewise. | |
8714 | (original_copy_tables_initialized_p): Likewise. | |
8715 | (copy_original_table_clear): Simplify. | |
8716 | (copy_original_table_set): Likewise. | |
8717 | (get_bb_original): Likewise. | |
8718 | (get_bb_copy): Likewise. | |
8719 | (get_loop_copy): Likewise. | |
8720 | ||
8721 | 2020-10-21 Richard Biener <rguenther@suse.de> | |
8722 | ||
8723 | * cfghooks.c (copy_bbs): Split out loop computing new_edges. | |
8724 | ||
8725 | 2020-10-21 Aldy Hernandez <aldyh@redhat.com> | |
8726 | ||
8727 | * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info): | |
8728 | Remove TREE_OVERFLOW special case. | |
8729 | * vr-values.c (bounds_of_var_in_loop): Adjust overflow for | |
8730 | invariants. | |
8731 | ||
8732 | 2020-10-21 Aldy Hernandez <aldyh@redhat.com> | |
8733 | ||
8734 | * vr-values.h: Remove simplify_cond_using_ranges_2. | |
8735 | (range_fits_type_p): New. | |
8736 | * vr-values.c (range_fits_type_p): Remove static qualifier. | |
8737 | (vrp_simplify_cond_using_ranges): Move... | |
8738 | * tree-vrp.c (vrp_simplify_cond_using_ranges): ...to here. | |
8739 | ||
8740 | 2020-10-20 Andrew MacLeod <amacleod@redhat.com> | |
8741 | ||
8742 | PR tree-optimization/97505 | |
8743 | * vr-values.c (vr_values::extract_range_basic): Trap if | |
8744 | vr_values version disagrees with range_of_builtin_call. | |
8745 | ||
8746 | 2020-10-20 David Edelsohn <dje.gcc@gmail.com> | |
8747 | ||
8748 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
8749 | Don't implcitly enable Altivec ABI if set on the command line. | |
8750 | ||
8751 | 2020-10-20 Aldy Hernandez <aldyh@redhat.com> | |
8752 | ||
8753 | * calls.c (get_size_range): Adjust to work with ranger. | |
8754 | * calls.h (get_size_range): Add ranger argument to prototype. | |
8755 | * gimple-ssa-warn-restrict.c (class wrestrict_dom_walker): Remove. | |
8756 | (check_call): Pull out of wrestrict_dom_walker into a | |
8757 | static function. | |
8758 | (wrestrict_dom_walker::before_dom_children): Rename to... | |
8759 | (wrestrict_walk): ...this. | |
8760 | (pass_wrestrict::execute): Instantiate ranger. | |
8761 | (class builtin_memref): Add stmt and query fields. | |
8762 | (builtin_access::builtin_access): Add range_query field. | |
8763 | (builtin_memref::builtin_memref): Same. | |
8764 | (builtin_memref::extend_offset_range): Same. | |
8765 | (builtin_access::builtin_access): Make work with ranger. | |
8766 | (wrestrict_dom_walker::check_call): Pull out into... | |
8767 | (check_call): ...here. | |
8768 | (check_bounds_or_overlap): Add range_query argument. | |
8769 | * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): | |
8770 | Add range_query and gimple stmt arguments. | |
8771 | ||
8772 | 2020-10-20 Aldy Hernandez <aldyh@redhat.com> | |
8773 | ||
8774 | * gimple-ssa-warn-alloca.c (enum alloca_type): Remove | |
8775 | ALLOCA_BOUND_UNKNOWN and ALLOCA_CAST_FROM_SIGNED. | |
8776 | (warn_limit_specified_p): New. | |
8777 | (alloca_call_type_by_arg): Remove. | |
8778 | (cast_from_signed_p): Remove. | |
8779 | (is_max): Remove. | |
8780 | (alloca_call_type): Remove heuristics and replace with call into | |
8781 | ranger. | |
8782 | (pass_walloca::execute): Instantiate ranger. | |
8783 | ||
8784 | 2020-10-20 Tobias Burnus <tobias@codesourcery.com> | |
8785 | ||
8786 | * lto-wrapper.c (run_gcc): Use proper variable for | |
8787 | %u.ltrans_args dump suffix. | |
8788 | ||
8789 | 2020-10-20 Zhiheng Xie <xiezhiheng@huawei.com> | |
8790 | Nannan Zheng <zhengnannan@huawei.com> | |
8791 | ||
8792 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
8793 | for get/set reg intrinsics. | |
8794 | ||
8795 | 2020-10-20 Aldy Hernandez <aldyh@redhat.com> | |
8796 | ||
8797 | * gimple-range.cc (gimple_ranger::range_of_builtin_ubsan_call): | |
8798 | Make externally visble... | |
8799 | (range_of_builtin_ubsan_call): ...here. Add range_query argument. | |
8800 | (gimple_ranger::range_of_builtin_call): Make externally visible... | |
8801 | (range_of_builtin_call): ...here. Add range_query argument. | |
8802 | * gimple-range.h (range_of_builtin_call): Move out from class and | |
8803 | make externally visible. | |
8804 | * vr-values.c (vr_values::extract_range_basic): Abstract out | |
8805 | builtin handling to... | |
8806 | (vr_values::range_of_expr): Handle non SSAs. | |
8807 | (vr_values::extract_range_builtin): ...here. | |
8808 | * vr-values.h (class vr_values): Add extract_range_builtin. | |
8809 | (range_of_expr): Rename NAME to EXPR. | |
8810 | ||
8811 | 2020-10-20 Aldy Hernandez <aldyh@redhat.com> | |
8812 | ||
8813 | PR tree-optimization/97501 | |
8814 | * gimple-range.cc (gimple_ranger::range_of_ssa_name_with_loop_info): | |
8815 | Saturate overflows returned from SCEV. | |
8816 | ||
8817 | 2020-10-20 Aldy Hernandez <aldyh@redhat.com> | |
8818 | ||
8819 | * value-range.cc (irange::operator=): Split up call to | |
8820 | copy_legacy_range into... | |
8821 | (irange::copy_to_legacy): ...this. | |
8822 | (irange::copy_legacy_to_multi_range): ...and this. | |
8823 | (irange::copy_legacy_range): Remove. | |
8824 | * value-range.h: Remove copoy_legacy_range. | |
8825 | Add copy_legacy_to_multi_range and copy_to_legacy. | |
8826 | ||
8827 | 2020-10-20 Tobias Burnus <tobias@codesourcery.com> | |
8828 | ||
8829 | * doc/invoke.texi (NVPTX options): Use @item not @itemx. | |
8830 | ||
8831 | 2020-10-20 Richard Biener <rguenther@suse.de> | |
8832 | ||
8833 | * tree-cfg.c (reinstall_phi_args): Remove. | |
8834 | (gimple_split_edge): Remove PHIs around the edge redirection | |
8835 | to avoid touching them at all. | |
8836 | ||
8837 | 2020-10-20 Richard Biener <rguenther@suse.de> | |
8838 | ||
8839 | * tree-vect-loop.c (vectorizable_reduction): Use the correct | |
8840 | loops latch edge for the PHI arg lookup. | |
8841 | ||
8842 | 2020-10-20 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
8843 | ||
8844 | * config/msp430/msp430.md (andneghi3): Allow general operand for | |
8845 | op1 and update output assembler template. | |
8846 | ||
8847 | 2020-10-20 Tobias Burnus <tobias@codesourcery.com> | |
8848 | ||
8849 | * collect-utils.c (collect_execute, fork_execute): Add at-file suffix | |
8850 | argument. | |
8851 | * collect-utils.h (collect_execute, fork_execute): Update prototype. | |
8852 | * collect2.c (maybe_run_lto_and_relink, do_link, main, do_dsymutil): | |
8853 | Update calls by passing NULL. | |
8854 | * config/i386/intelmic-mkoffload.c (compile_for_target, | |
8855 | generate_host_descr_file, prepare_target_image, main): Likewise. | |
8856 | * config/gcn/mkoffload.c (compile_native, main): Pass at-file suffix. | |
8857 | * config/nvptx/mkoffload.c (compile_native, main): Likewise. | |
8858 | * lto-wrapper.c (compile_offload_image): Likewise. | |
8859 | ||
8860 | 2020-10-20 Aldy Hernandez <aldyh@redhat.com> | |
8861 | ||
8862 | * range-op.cc (operator_rshift::op1_range): Special case | |
8863 | shifting by zero. | |
8864 | ||
8865 | 2020-10-20 Richard Biener <rguenther@suse.de> | |
8866 | ||
8867 | PR tree-optimization/97496 | |
8868 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Guard extern | |
8869 | promotion with not in pattern. | |
8870 | ||
8871 | 2020-10-20 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
8872 | ||
8873 | * config/s390/s390.c (s390_expand_vec_strlen): Add alignment | |
8874 | for memory access inside loop. | |
8875 | ||
8876 | 2020-10-19 Andrew MacLeod <amacleod@redhat.com> | |
8877 | ||
8878 | PR tree-optimization/97360 | |
8879 | * gimple-range.h (range_compatible_p): New. | |
8880 | * gimple-range-gori.cc (is_gimple_logical_p): Use range_compatible_p. | |
8881 | (range_is_either_true_or_false): Ditto. | |
8882 | (gori_compute::outgoing_edge_range_p): Cast result to the correct | |
8883 | type if necessary. | |
8884 | (logical_stmt_cache::cacheable_p): Use range_compatible_p. | |
8885 | * gimple-range.cc (gimple_ranger::calc_stmt): Check range_compatible_p | |
8886 | before casting the range. | |
8887 | (gimple_ranger::range_on_exit): Use range_compatible_p. | |
8888 | (gimple_ranger::range_on_edge): Ditto. | |
8889 | ||
8890 | 2020-10-19 Martin Jambor <mjambor@suse.cz> | |
8891 | ||
8892 | PR tree-optimization/97456 | |
8893 | * tree-complex.c (set_component_ssa_name): Do not replace ignored decl | |
8894 | default definitions with new component vars. Reorder if conditions. | |
8895 | ||
8896 | 2020-10-19 David Edelsohn <dje.gcc@gmail.com> | |
8897 | ||
8898 | * config/rs6000/vsx.md (vextract_fp_from_shorth): Fix vals_be. | |
8899 | (vextract_fp_from_shortl) Same. | |
8900 | ||
8901 | 2020-10-19 Aldy Hernandez <aldyh@redhat.com> | |
8902 | ||
8903 | PR tree-optimization/97488 | |
8904 | * range-op.cc (operator_lshift::op1_range): Handle large right shifts. | |
8905 | ||
8906 | 2020-10-19 Martin Liska <mliska@suse.cz> | |
8907 | ||
8908 | * ipa-modref.c (compute_parm_map): Clear vector. | |
8909 | ||
8910 | 2020-10-19 Richard Biener <rguenther@suse.de> | |
8911 | ||
8912 | PR tree-optimization/97486 | |
8913 | * tree-vect-slp.c (vect_slp_function): Split after stmts | |
8914 | ending a BB. | |
8915 | ||
8916 | 2020-10-19 Jonathan Wakely <jwakely@redhat.com> | |
8917 | ||
8918 | * doc/invoke.texi (OPptimize Options): Add missing closing | |
8919 | parenthesis. | |
8920 | ||
8921 | 2020-10-19 Aldy Hernandez <aldyh@redhat.com> | |
8922 | ||
8923 | PR tree-optimization/97467 | |
8924 | * range-op.cc (operator_lshift::op1_range): Handle shifts by 0. | |
8925 | ||
8926 | 2020-10-19 Richard Biener <rguenther@suse.de> | |
8927 | ||
8928 | PR tree-optimization/97466 | |
8929 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove | |
8930 | spurious assert, re-indent. | |
8931 | ||
8932 | 2020-10-19 Li Jia He <helijia@gcc.gnu.org> | |
8933 | ||
8934 | PR tree-optimization/66552 | |
8935 | * match.pd (x << (n % C) -> x << (n & C-1)): New simplification. | |
8936 | ||
8937 | 2020-10-19 Richard Biener <rguenther@suse.de> | |
8938 | ||
8939 | * tree-cfg.c (verify_gimple_comparison): Drop special-case | |
8940 | for pointer comparison. | |
8941 | ||
8942 | 2020-10-16 Andrew MacLeod <amacleod@redhat.com> | |
8943 | ||
8944 | * vr-values.c (dump_all_value_ranges): Only dump names which are | |
8945 | still active. | |
8946 | ||
8947 | 2020-10-16 Andrew MacLeod <amacleod@redhat.com> | |
8948 | ||
8949 | * range-op.cc (pointer_plus_operator::wi_fold): Make pointer_plus | |
8950 | [0, 0] + const return a [const, const] range. | |
8951 | ||
8952 | 2020-10-16 Andrew MacLeod <amacleod@redhat.com> | |
8953 | ||
8954 | * gimple-ssa-evrp.c (hybrid_folder::value_on_edge): Call | |
8955 | evrp_folder::value_of_expr directly. | |
8956 | (hybrid_folder::value_of_stmt): Ditto. | |
8957 | ||
8958 | 2020-10-16 Andrew MacLeod <amacleod@redhat.com> | |
8959 | ||
8960 | PR tree-optimization/97462 | |
8961 | * range-op.cc (operator_lshift::op1_range): Don't trap on negative | |
8962 | shifts. | |
8963 | ||
8964 | 2020-10-16 Olivier Hainque <hainque@adacore.com> | |
8965 | ||
8966 | * config/vxworks.h (VX_CRTBEGIN_SPEC): Likewise. | |
8967 | ||
8968 | 2020-10-16 Olivier Hainque <hainque@adacore.com> | |
8969 | ||
8970 | * config/vxworks/_vxworks-versions.h: Only include | |
8971 | version.h if _WRS_VXWORKS_MAJOR is not defined. | |
8972 | Provide a default _WRS_VXWORKS_MINOR (0). | |
8973 | ||
8974 | 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
8975 | ||
8976 | PR target/97327 | |
8977 | * config/arm/arm.c (fp_bitlist): Add isa_bit_mve_float to FP bits array. | |
8978 | ||
8979 | 2020-10-16 Richard Biener <rguenther@suse.de> | |
8980 | ||
8981 | * tree-vect-slp.c (vect_get_and_check_slp_defs): For BB | |
8982 | vectorization swap operands only if it helps, demote mismatches to | |
8983 | external. | |
8984 | ||
8985 | 2020-10-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
8986 | ||
8987 | PR target/97291 | |
8988 | * config/arm/arm-builtins.c (arm_strsbwbs_qualifiers): Modify array. | |
8989 | (arm_strsbwbu_qualifiers): Likewise. | |
8990 | (arm_strsbwbs_p_qualifiers): Likewise. | |
8991 | (arm_strsbwbu_p_qualifiers): Likewise. | |
8992 | * config/arm/arm_mve.h (__arm_vstrdq_scatter_base_wb_s64): Modify | |
8993 | function definition. | |
8994 | (__arm_vstrdq_scatter_base_wb_u64): Likewise. | |
8995 | (__arm_vstrdq_scatter_base_wb_p_s64): Likewise. | |
8996 | (__arm_vstrdq_scatter_base_wb_p_u64): Likewise. | |
8997 | (__arm_vstrwq_scatter_base_wb_p_s32): Likewise. | |
8998 | (__arm_vstrwq_scatter_base_wb_p_u32): Likewise. | |
8999 | (__arm_vstrwq_scatter_base_wb_s32): Likewise. | |
9000 | (__arm_vstrwq_scatter_base_wb_u32): Likewise. | |
9001 | (__arm_vstrwq_scatter_base_wb_f32): Likewise. | |
9002 | (__arm_vstrwq_scatter_base_wb_p_f32): Likewise. | |
9003 | * config/arm/arm_mve_builtins.def (vstrwq_scatter_base_wb_add_u): Remove | |
9004 | expansion for the builtin. | |
9005 | (vstrwq_scatter_base_wb_add_s): Likewise. | |
9006 | (vstrwq_scatter_base_wb_add_f): Likewise. | |
9007 | (vstrdq_scatter_base_wb_add_u): Likewise. | |
9008 | (vstrdq_scatter_base_wb_add_s): Likewise. | |
9009 | (vstrwq_scatter_base_wb_p_add_u): Likewise. | |
9010 | (vstrwq_scatter_base_wb_p_add_s): Likewise. | |
9011 | (vstrwq_scatter_base_wb_p_add_f): Likewise. | |
9012 | (vstrdq_scatter_base_wb_p_add_u): Likewise. | |
9013 | (vstrdq_scatter_base_wb_p_add_s): Likewise. | |
9014 | * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Remove | |
9015 | expand. | |
9016 | (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise. | |
9017 | (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Rename pattern to ... | |
9018 | (mve_vstrwq_scatter_base_wb_<supf>v4si): This. | |
9019 | (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Remove expand. | |
9020 | (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise. | |
9021 | (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Rename pattern to ... | |
9022 | (mve_vstrwq_scatter_base_wb_p_<supf>v4si): This. | |
9023 | (mve_vstrwq_scatter_base_wb_fv4sf): Remove expand. | |
9024 | (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise. | |
9025 | (mve_vstrwq_scatter_base_wb_fv4sf_insn): Rename pattern to ... | |
9026 | (mve_vstrwq_scatter_base_wb_fv4sf): This. | |
9027 | (mve_vstrwq_scatter_base_wb_p_fv4sf): Remove expand. | |
9028 | (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise. | |
9029 | (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Rename pattern to ... | |
9030 | (mve_vstrwq_scatter_base_wb_p_fv4sf): This. | |
9031 | (mve_vstrdq_scatter_base_wb_<supf>v2di): Remove expand. | |
9032 | (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise. | |
9033 | (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Rename pattern to ... | |
9034 | (mve_vstrdq_scatter_base_wb_<supf>v2di): This. | |
9035 | (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Remove expand. | |
9036 | (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise. | |
9037 | (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Rename pattern to ... | |
9038 | (mve_vstrdq_scatter_base_wb_p_<supf>v2di): This. | |
9039 | ||
9040 | 2020-10-16 Kito Cheng <kito.cheng@sifive.com> | |
9041 | ||
9042 | * config/riscv/multilib-generator (IMPLIED_EXT): New. | |
9043 | (arch_canonicalize): Update comment and handle implied extensions. | |
9044 | ||
9045 | 2020-10-16 Richard Biener <rguenther@suse.de> | |
9046 | ||
9047 | * tree-vect-slp.c (vect_get_and_check_slp_defs): First analyze | |
9048 | all operands and fill in the def_stmts and ops entries. | |
9049 | (vect_def_types_match): New helper. | |
9050 | ||
9051 | 2020-10-16 Martin Liska <mliska@suse.cz> | |
9052 | ||
9053 | PR ipa/97404 | |
9054 | * ipa-prop.c (struct ipa_vr_ggc_hash_traits): | |
9055 | Compare types of VRP as we can merge ranges of different types. | |
9056 | ||
9057 | 2020-10-16 Richard Biener <rguenther@suse.de> | |
9058 | ||
9059 | PR tree-optimization/97428 | |
9060 | * tree-vect-slp.c (vect_analyze_slp_instance): Split store | |
9061 | groups also for loop vectorization. | |
9062 | ||
9063 | 2020-10-15 Tom de Vries <tdevries@suse.de> | |
9064 | ||
9065 | PR target/97436 | |
9066 | * config/nvptx/nvptx.opt (m32): Comment out. | |
9067 | * doc/invoke.texi (NVPTX options): Remove -m32. | |
9068 | ||
9069 | 2020-10-15 Jan Hubicka <hubicka@ucw.cz> | |
9070 | Richard Biener <rguenther@suse.de> | |
9071 | ||
9072 | * attr-fnspec.h: Fix toplevel comment. | |
9073 | ||
9074 | 2020-10-15 Richard Biener <rguenther@suse.de> | |
9075 | ||
9076 | * tree-pretty-print.c (dump_mem_ref): Print constant offset | |
9077 | also for TARGET_MEM_REF. | |
9078 | ||
9079 | 2020-10-15 Jan Hubicka <jh@suse.cz> | |
9080 | ||
9081 | * symtab.c (symtab_node::binds_to_current_def_p): Also accept symbols | |
9082 | defined in other partition. | |
9083 | ||
9084 | 2020-10-15 Richard Biener <rguenther@suse.de> | |
9085 | ||
9086 | * tree-vect-loop.c (vectorizable_live_operation): Adjust | |
9087 | dominance query. | |
9088 | ||
9089 | 2020-10-15 Richard Biener <rguenther@suse.de> | |
9090 | ||
9091 | PR tree-optimization/97482 | |
9092 | * tree-data-ref.c (split_constant_offset_1): Handle | |
9093 | trivial conversions better. | |
9094 | * fold-const.c (convert_to_ptrofftype_loc): Elide conversion | |
9095 | if the offset is already ptrofftype_p. | |
9096 | ||
9097 | 2020-10-15 Martin Liska <mliska@suse.cz> | |
9098 | ||
9099 | PR ipa/97295 | |
9100 | * profile-count.c (profile_count::to_frequency): Move part of | |
9101 | gcc_assert to STATIC_ASSERT. | |
9102 | * regs.h (REG_FREQ_FROM_BB): Do not use count.to_frequency for | |
9103 | a function that does not have count_max initialized. | |
9104 | ||
9105 | 2020-10-15 Jakub Jelinek <jakub@redhat.com> | |
9106 | ||
9107 | * params.opt (-param-ipa-jump-function-lookups=): Add full stop at | |
9108 | the end of the parameter description. | |
9109 | ||
9110 | 2020-10-15 Kito Cheng <kito.cheng@sifive.com> | |
9111 | ||
9112 | * common/config/riscv/riscv-common.c (riscv_cpu_tables): New. | |
9113 | (riscv_arch_str): Return empty string if current_subset_list | |
9114 | is NULL. | |
9115 | (riscv_find_cpu): New. | |
9116 | (riscv_handle_option): Verify option value of -mcpu. | |
9117 | (riscv_expand_arch): Using std::string. | |
9118 | (riscv_default_mtune): New. | |
9119 | (riscv_expand_arch_from_cpu): Ditto. | |
9120 | * config/riscv/riscv-cores.def: New. | |
9121 | * config/riscv/riscv-protos.h (riscv_find_cpu): New. | |
9122 | (riscv_cpu_info): New. | |
9123 | * config/riscv/riscv.c (riscv_tune_info): Rename ... | |
9124 | (riscv_tune_param): ... to this. | |
9125 | (riscv_cpu_info): Rename ... | |
9126 | (riscv_tune_info): ... to this. | |
9127 | (tune_info): Rename ... | |
9128 | (tune_param): ... to this. | |
9129 | (rocket_tune_info): Update data type name. | |
9130 | (sifive_7_tune_info): Ditto. | |
9131 | (optimize_size_tune_info): Ditto. | |
9132 | (riscv_cpu_info_table): Rename ... | |
9133 | (riscv_tune_info_table): ... to this. | |
9134 | (riscv_parse_cpu): Rename ... | |
9135 | (riscv_parse_tune): ... to this, and translate valid -mcpu option to | |
9136 | -mtune option. | |
9137 | (riscv_rtx_costs): Rename tune_info to tune_param. | |
9138 | (riscv_class_max_nregs): Ditto. | |
9139 | (riscv_memory_move_cost): Ditto. | |
9140 | (riscv_init_machine_status): Use value of -mcpu if -mtune is not | |
9141 | given, and rename tune_info to tune_param. | |
9142 | * config/riscv/riscv.h (riscv_expand_arch_from_cpu): New. | |
9143 | (riscv_default_mtune): Ditto. | |
9144 | (EXTRA_SPEC_FUNCTIONS): Add riscv_expand_arch_from_cpu and | |
9145 | riscv_default_mtune. | |
9146 | (OPTION_DEFAULT_SPECS): Handle default value of -march/-mabi. | |
9147 | (DRIVER_SELF_SPECS): Expand -march from -mcpu if -march is not | |
9148 | given. | |
9149 | * config/riscv/riscv.opt (-mcpu): New option. | |
9150 | * config/riscv/t-riscv ($(common_out_file)): Add | |
9151 | riscv-cores.def to dependency. | |
9152 | * doc/invoke.texi (RISC-V Option): Add -mcpu, and update the | |
9153 | description of default value for -mtune and -march. | |
9154 | ||
9155 | 2020-10-15 Hongyu Wang <hongyu.wang@intel.com> | |
9156 | ||
9157 | * common/config/i386/cpuinfo.h (get_available_features): | |
9158 | Detect HRESET. | |
9159 | * common/config/i386/i386-common.c (OPTION_MASK_ISA2_HRESET_SET, | |
9160 | OPTION_MASK_ISA2_HRESET_UNSET): New macros. | |
9161 | (ix86_handle_option): Handle -mhreset. | |
9162 | * common/config/i386/i386-cpuinfo.h (enum processor_features): | |
9163 | Add FEATURE_HRESET. | |
9164 | * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY | |
9165 | for hreset. | |
9166 | * config.gcc: Add hresetintrin.h | |
9167 | * config/i386/hresetintrin.h: New header file. | |
9168 | * config/i386/x86gprintrin.h: Include hresetintrin.h. | |
9169 | * config/i386/cpuid.h (bit_HRESET): New. | |
9170 | * config/i386/i386-builtin.def: Add new builtin. | |
9171 | * config/i386/i386-expand.c (ix86_expand_builtin): | |
9172 | Handle new builtin. | |
9173 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
9174 | __HRESET__. | |
9175 | * config/i386/i386-options.c (isa2_opts): Add -mhreset. | |
9176 | (ix86_valid_target_attribute_inner_p): Handle hreset. | |
9177 | * config/i386/i386.h (TARGET_HRESET, TARGET_HRESET_P, | |
9178 | PTA_HRESET): New. | |
9179 | (PTA_ALDERLAKE): Add PTA_HRESET. | |
9180 | * config/i386/i386.opt: Add option -mhreset. | |
9181 | * config/i386/i386.md (UNSPECV_HRESET): New unspec. | |
9182 | (hreset): New define_insn. | |
9183 | * doc/invoke.texi: Document -mhreset. | |
9184 | * doc/extend.texi: Document hreset. | |
9185 | ||
9186 | 2020-10-15 Hongtao Liu <hongtao.liu@intel.com> | |
9187 | ||
9188 | * common/config/i386/cpuinfo.h (get_available_features): | |
9189 | Detect UINTR. | |
9190 | * common/config/i386/i386-common.c (OPTION_MASK_ISA2_UINTR_SET | |
9191 | OPTION_MASK_ISA2_UINTR_UNSET): New. | |
9192 | (ix86_handle_option): Handle -muintr. | |
9193 | * common/config/i386/i386-cpuinfo.h (enum processor_features): | |
9194 | Add FEATURE_UINTR. | |
9195 | * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY | |
9196 | for uintr. | |
9197 | * config.gcc: Add uintrintrin.h to extra_headers. | |
9198 | * config/i386/uintrintrin.h: New. | |
9199 | * config/i386/cpuid.h (bit_UINTR): New. | |
9200 | * config/i386/i386-builtin-types.def: Add new types. | |
9201 | * config/i386/i386-builtin.def: Add new builtins. | |
9202 | * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): Add | |
9203 | __builtin_ia32_testui. | |
9204 | * config/i386/i386-builtins.h (ix86_builtins): Add | |
9205 | IX86_BUILTIN_TESTUI. | |
9206 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
9207 | __UINTR__. | |
9208 | * config/i386/i386-expand.c (ix86_expand_special_args_builtin): | |
9209 | Handle UINT8_FTYPE_VOID. | |
9210 | (ix86_expand_builtin): Handle IX86_BUILTIN_TESTUI. | |
9211 | * config/i386/i386-options.c (isa2_opts): Add -muintr. | |
9212 | (ix86_valid_target_attribute_inner_p): Handle UINTR. | |
9213 | (ix86_option_override_internal): Add TARGET_64BIT check for UINTR. | |
9214 | * config/i386/i386.h (TARGET_UINTR, TARGET_UINTR_P, PTA_UINTR): New. | |
9215 | (PTA_SAPPHIRRAPIDS): Add PTA_UINTR. | |
9216 | * config/i386/i386.opt: Add -muintr. | |
9217 | * config/i386/i386.md | |
9218 | (define_int_iterator UINTR_UNSPECV): New. | |
9219 | (define_int_attr uintr_unspecv): New. | |
9220 | (uintr_<uintr_unspecv>, uintr_senduipi, testui): | |
9221 | New define_insn patterns. | |
9222 | * config/i386/x86gprintrin.h: Include uintrintrin.h | |
9223 | * doc/invoke.texi: Document -muintr. | |
9224 | * doc/extend.texi: Document uintr. | |
9225 | ||
9226 | 2020-10-14 Martin Sebor <msebor@redhat.com> | |
9227 | ||
9228 | PR middle-end/97391 | |
9229 | * builtins.c (gimple_parm_array_size): Peel off one less layer | |
9230 | of array types. | |
9231 | ||
9232 | 2020-10-14 Martin Sebor <msebor@redhat.com> | |
9233 | ||
9234 | PR c/97413 | |
9235 | * attribs.c (init_attr_rdwr_indices): Unwrap extra list layer. | |
9236 | ||
9237 | 2020-10-14 Sunil K Pandey <skpgkp2@gmail.com> | |
9238 | ||
9239 | PR target/95483 | |
9240 | * config/i386/avx2intrin.h (_mm_broadcastsi128_si256): New intrinsics. | |
9241 | (_mm_broadcastsd_pd): Ditto. | |
9242 | * config/i386/avx512bwintrin.h (_mm512_loadu_epi16): New intrinsics. | |
9243 | (_mm512_storeu_epi16): Ditto. | |
9244 | (_mm512_loadu_epi8): Ditto. | |
9245 | (_mm512_storeu_epi8): Ditto. | |
9246 | * config/i386/avx512dqintrin.h (_mm_reduce_round_sd): New intrinsics. | |
9247 | (_mm_mask_reduce_round_sd): Ditto. | |
9248 | (_mm_maskz_reduce_round_sd): Ditto. | |
9249 | (_mm_reduce_round_ss): Ditto. | |
9250 | (_mm_mask_reduce_round_ss): Ditto. | |
9251 | (_mm_maskz_reduce_round_ss): Ditto. | |
9252 | (_mm512_reduce_round_pd): Ditto. | |
9253 | (_mm512_mask_reduce_round_pd): Ditto. | |
9254 | (_mm512_maskz_reduce_round_pd): Ditto. | |
9255 | (_mm512_reduce_round_ps): Ditto. | |
9256 | (_mm512_mask_reduce_round_ps): Ditto. | |
9257 | (_mm512_maskz_reduce_round_ps): Ditto. | |
9258 | * config/i386/avx512erintrin.h | |
9259 | (_mm_mask_rcp28_round_sd): New intrinsics. | |
9260 | (_mm_maskz_rcp28_round_sd): Ditto. | |
9261 | (_mm_mask_rcp28_round_ss): Ditto. | |
9262 | (_mm_maskz_rcp28_round_ss): Ditto. | |
9263 | (_mm_mask_rsqrt28_round_sd): Ditto. | |
9264 | (_mm_maskz_rsqrt28_round_sd): Ditto. | |
9265 | (_mm_mask_rsqrt28_round_ss): Ditto. | |
9266 | (_mm_maskz_rsqrt28_round_ss): Ditto. | |
9267 | (_mm_mask_rcp28_sd): Ditto. | |
9268 | (_mm_maskz_rcp28_sd): Ditto. | |
9269 | (_mm_mask_rcp28_ss): Ditto. | |
9270 | (_mm_maskz_rcp28_ss): Ditto. | |
9271 | (_mm_mask_rsqrt28_sd): Ditto. | |
9272 | (_mm_maskz_rsqrt28_sd): Ditto. | |
9273 | (_mm_mask_rsqrt28_ss): Ditto. | |
9274 | (_mm_maskz_rsqrt28_ss): Ditto. | |
9275 | * config/i386/avx512fintrin.h (_mm_mask_sqrt_sd): New intrinsics. | |
9276 | (_mm_maskz_sqrt_sd): Ditto. | |
9277 | (_mm_mask_sqrt_ss): Ditto. | |
9278 | (_mm_maskz_sqrt_ss): Ditto. | |
9279 | (_mm_mask_scalef_sd): Ditto. | |
9280 | (_mm_maskz_scalef_sd): Ditto. | |
9281 | (_mm_mask_scalef_ss): Ditto. | |
9282 | (_mm_maskz_scalef_ss): Ditto. | |
9283 | (_mm_mask_cvt_roundsd_ss): Ditto. | |
9284 | (_mm_maskz_cvt_roundsd_ss): Ditto. | |
9285 | (_mm_mask_cvt_roundss_sd): Ditto. | |
9286 | (_mm_maskz_cvt_roundss_sd): Ditto. | |
9287 | (_mm_mask_cvtss_sd): Ditto. | |
9288 | (_mm_maskz_cvtss_sd): Ditto. | |
9289 | (_mm_mask_cvtsd_ss): Ditto. | |
9290 | (_mm_maskz_cvtsd_ss): Ditto. | |
9291 | (_mm512_cvtsi512_si32): Ditto. | |
9292 | (_mm_cvtsd_i32): Ditto. | |
9293 | (_mm_cvtss_i32): Ditto. | |
9294 | (_mm_cvti32_sd): Ditto. | |
9295 | (_mm_cvti32_ss): Ditto. | |
9296 | (_mm_cvtsd_i64): Ditto. | |
9297 | (_mm_cvtss_i64): Ditto. | |
9298 | (_mm_cvti64_sd): Ditto. | |
9299 | (_mm_cvti64_ss): Ditto. | |
9300 | * config/i386/avx512vlbwintrin.h (_mm256_storeu_epi8): New intrinsics. | |
9301 | (_mm_storeu_epi8): Ditto. | |
9302 | (_mm256_loadu_epi16): Ditto. | |
9303 | (_mm_loadu_epi16): Ditto. | |
9304 | (_mm256_loadu_epi8): Ditto. | |
9305 | (_mm_loadu_epi8): Ditto. | |
9306 | (_mm256_storeu_epi16): Ditto. | |
9307 | (_mm_storeu_epi16): Ditto. | |
9308 | * config/i386/avx512vlintrin.h (_mm256_load_epi64): New intrinsics. | |
9309 | (_mm_load_epi64): Ditto. | |
9310 | (_mm256_load_epi32): Ditto. | |
9311 | (_mm_load_epi32): Ditto. | |
9312 | (_mm256_store_epi32): Ditto. | |
9313 | (_mm_store_epi32): Ditto. | |
9314 | (_mm256_loadu_epi64): Ditto. | |
9315 | (_mm_loadu_epi64): Ditto. | |
9316 | (_mm256_loadu_epi32): Ditto. | |
9317 | (_mm_loadu_epi32): Ditto. | |
9318 | (_mm256_mask_cvt_roundps_ph): Ditto. | |
9319 | (_mm256_maskz_cvt_roundps_ph): Ditto. | |
9320 | (_mm_mask_cvt_roundps_ph): Ditto. | |
9321 | (_mm_maskz_cvt_roundps_ph): Ditto. | |
9322 | * config/i386/avxintrin.h (_mm256_cvtsi256_si32): New intrinsics. | |
9323 | * config/i386/emmintrin.h (_mm_loadu_si32): New intrinsics. | |
9324 | (_mm_loadu_si16): Ditto. | |
9325 | (_mm_storeu_si32): Ditto. | |
9326 | (_mm_storeu_si16): Ditto. | |
9327 | * config/i386/i386-builtin-types.def | |
9328 | (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT): Add new type. | |
9329 | (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT): Ditto. | |
9330 | (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT): Ditto. | |
9331 | (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT): Ditto. | |
9332 | * config/i386/i386-builtin.def | |
9333 | (__builtin_ia32_cvtsd2ss_mask_round): New builtin. | |
9334 | (__builtin_ia32_cvtss2sd_mask_round): Ditto. | |
9335 | (__builtin_ia32_rcp28sd_mask_round): Ditto. | |
9336 | (__builtin_ia32_rcp28ss_mask_round): Ditto. | |
9337 | (__builtin_ia32_rsqrt28sd_mask_round): Ditto. | |
9338 | (__builtin_ia32_rsqrt28ss_mask_round): Ditto. | |
9339 | (__builtin_ia32_reducepd512_mask_round): Ditto. | |
9340 | (__builtin_ia32_reduceps512_mask_round): Ditto. | |
9341 | (__builtin_ia32_reducesd_mask_round): Ditto. | |
9342 | (__builtin_ia32_reducess_mask_round): Ditto. | |
9343 | * config/i386/i386-expand.c | |
9344 | (ix86_expand_round_builtin): Expand round builtin for new type. | |
9345 | (V8DF_FTYPE_V8DF_INT_V8DF_UQI_INT) | |
9346 | (V16SF_FTYPE_V16SF_INT_V16SF_UHI_INT) | |
9347 | (V4SF_FTYPE_V4SF_V2DF_V4SF_UQI_INT) | |
9348 | (V2DF_FTYPE_V2DF_V4SF_V2DF_UQI_INT) | |
9349 | * config/i386/mmintrin.h () | |
9350 | Define datatype __m32 and __m16. | |
9351 | Define datatype __m32_u and __m16_u. | |
9352 | * config/i386/sse.md: Adjust pattern. | |
9353 | (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): Adjust. | |
9354 | (reduces<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto. | |
9355 | (sse2_cvtsd2ss<mask_name><round_name>): Ditto. | |
9356 | (sse2_cvtss2sd<mask_name><round_saeonly_name>): Ditto. | |
9357 | (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto. | |
9358 | (avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): Ditto. | |
9359 | ||
9360 | 2020-10-14 Olivier Hainque <hainque@adacore.com> | |
9361 | ||
9362 | * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Fix | |
9363 | the VX_CPU selection for -mcpu=xscale on arm-vxworks. | |
9364 | ||
9365 | 2020-10-14 Olivier Hainque <hainque@adacore.com> | |
9366 | ||
9367 | * config/rs6000/vxworks.h (TARGET_OS_CPP_BUILTINS): Accommodate | |
9368 | expectations from different versions of VxWorks, for 32 or 64bit | |
9369 | configurations. | |
9370 | ||
9371 | 2020-10-14 Olivier Hainque <hainque@adacore.com> | |
9372 | ||
9373 | * config/vxworks.h: #undef CPLUSPLUS_CPP_SPEC. | |
9374 | ||
9375 | 2020-10-14 Olivier Hainque <hainque@adacore.com> | |
9376 | ||
9377 | * config/t-vxworks: Adjust the VxWorks alternative LIMITS_H guard | |
9378 | for glimits.h, make it both closer to the previous one and easier to | |
9379 | search for. | |
9380 | ||
9381 | 2020-10-14 Jakub Jelinek <jakub@redhat.com> | |
9382 | ||
9383 | PR target/97387 | |
9384 | * config/i386/i386.md (CC_CCC): New mode iterator. | |
9385 | (*setcc_qi_addqi3_cconly_overflow_1_<mode>): New | |
9386 | define_insn_and_split. | |
9387 | * config/i386/i386.c (ix86_cc_mode): Return CCCmode | |
9388 | for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern operands. | |
9389 | (ix86_rtx_costs): Return true and *total = 0; | |
9390 | for *setcc_qi_addqi3_cconly_overflow_1_<mode> pattern. Use op0 and | |
9391 | op1 temporaries to simplify COMPARE checks. | |
9392 | ||
9393 | 2020-10-14 Aldy Hernandez <aldyh@redhat.com> | |
9394 | ||
9395 | PR tree-optimization/97396 | |
9396 | * gimple-range.cc (gimple_ranger::range_of_phi): Do not call | |
9397 | range_of_ssa_name_with_loop_info with the loop tree root. | |
9398 | ||
9399 | 2020-10-14 Richard Biener <rguenther@suse.de> | |
9400 | ||
9401 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Split out | |
9402 | test for compatible operand types. | |
9403 | ||
9404 | 2020-10-14 Olivier Hainque <hainque@adacore.com> | |
9405 | ||
9406 | * config/vxworks.c (vxworks_override_options): Guard pic checks with | |
9407 | flag_pic > 0 instead of just flag_pic. | |
9408 | ||
9409 | 2020-10-14 Jan Hubicka <hubicka@ucw.cz> | |
9410 | ||
9411 | * ipa-fnsummary.c (remap_edge_summaries): Make offset_map HOST_WIDE_INT. | |
9412 | (remap_freqcounting_predicate): Likewise. | |
9413 | (ipa_merge_fn_summary_after_inlining): Likewise. | |
9414 | * ipa-predicate.c (predicate::remap_after_inlining): Likewise | |
9415 | * ipa-predicate.h (remap_after_inlining): Update. | |
9416 | ||
9417 | 2020-10-14 Jan Hubicka <jh@suse.cz> | |
9418 | ||
9419 | * ipa-modref.c (compute_parm_map): Handle POINTER_PLUS_EXPR in | |
9420 | PASSTHROUGH. | |
9421 | ||
9422 | 2020-10-14 Richard Biener <rguenther@suse.de> | |
9423 | ||
9424 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Move | |
9425 | check for duplicate/interleave of variable size constants | |
9426 | to a place done once and early. | |
9427 | (vect_build_slp_tree_2): Adjust heuristics when to build | |
9428 | a BB SLP node from scalars. | |
9429 | ||
9430 | 2020-10-14 Tom de Vries <tdevries@suse.de> | |
9431 | ||
9432 | * tracer.c (cached_can_duplicate_bb_p, analyze_bb): Use | |
9433 | can_duplicate_block_p. | |
9434 | (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p) | |
9435 | (can_duplicate_bb_p): Move and merge ... | |
9436 | * tree-cfg.c (gimple_can_duplicate_bb_p): ... here. | |
9437 | ||
9438 | 2020-10-14 Jan Hubicka <hubicka@ucw.cz> | |
9439 | ||
9440 | * doc/invoke.texi: (ipa-jump-function-lookups): Document param. | |
9441 | * ipa-modref.c (merge_call_side_effects): Use | |
9442 | unadjusted_ptr_and_unit_offset. | |
9443 | * ipa-prop.c (unadjusted_ptr_and_unit_offset): New function. | |
9444 | * ipa-prop.h (unadjusted_ptr_and_unit_offset): Declare. | |
9445 | * params.opt: (-param-ipa-jump-function-lookups): New. | |
9446 | ||
9447 | 2020-10-14 Jan Hubicka <jh@suse.cz> | |
9448 | ||
9449 | PR bootstrap/97350 | |
9450 | * ipa-modref.c (ignore_edge): Do not ignore inlined edes. | |
9451 | (ipa_merge_modref_summary_after_inlining): Improve debug output and | |
9452 | fix parameter of ignore_stores_p. | |
9453 | ||
9454 | 2020-10-14 Kito Cheng <kito.cheng@sifive.com> | |
9455 | ||
9456 | PR target/96759 | |
9457 | * expr.c (expand_assignment): Handle misaligned stores with PARALLEL | |
9458 | value. | |
9459 | ||
9460 | 2020-10-13 Jakub Jelinek <jakub@redhat.com> | |
9461 | ||
9462 | PR rtl-optimization/97386 | |
9463 | * combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if | |
9464 | they have different modes. | |
9465 | ||
9466 | 2020-10-13 Aldy Hernandez <aldyh@redhat.com> | |
9467 | ||
9468 | PR tree-optimization/97379 | |
9469 | * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Do | |
9470 | not save hash slot across calls to hash_table<>::get_or_insert. | |
9471 | ||
9472 | 2020-10-13 Tobias Burnus <tobias@codesourcery.com> | |
9473 | ||
9474 | * lto-wrapper.c (find_crtoffloadtable): Fix last commit | |
9475 | by adding NULL as last argument to concat. | |
9476 | ||
9477 | 2020-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
9478 | ||
9479 | * config/aarch64/aarch64.c (neoversen2_tunings): Define. | |
9480 | * config/aarch64/aarch64-cores.def (neoverse-n2): Use it. | |
9481 | ||
9482 | 2020-10-13 Tobias Burnus <tobias@codesourcery.com> | |
9483 | ||
9484 | * lto-wrapper.c (find_crtoffloadtable): With -save-temps, | |
9485 | use non-temp file name utilizing the dump prefix. | |
9486 | (run_gcc): Update call. | |
9487 | ||
9488 | 2020-10-13 Richard Biener <rguenther@suse.de> | |
9489 | ||
9490 | PR tree-optimization/97382 | |
9491 | * tree-vectorizer.h (_stmt_vec_info::same_align_refs): Remove. | |
9492 | (STMT_VINFO_SAME_ALIGN_REFS): Likewise. | |
9493 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not | |
9494 | allocate STMT_VINFO_SAME_ALIGN_REFS. | |
9495 | (vec_info::free_stmt_vec_info): Do not release | |
9496 | STMT_VINFO_SAME_ALIGN_REFS. | |
9497 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): | |
9498 | Do not compute self and read-read dependences. | |
9499 | (vect_dr_aligned_if_related_peeled_dr_is): New helper. | |
9500 | (vect_dr_aligned_if_peeled_dr_is): Likewise. | |
9501 | (vect_update_misalignment_for_peel): Use it instead of | |
9502 | iterating over STMT_VINFO_SAME_ALIGN_REFS. | |
9503 | (dr_align_group_sort_cmp): New function. | |
9504 | (vect_enhance_data_refs_alignment): Count the number of | |
9505 | same aligned refs here and elide uses of STMT_VINFO_SAME_ALIGN_REFS. | |
9506 | (vect_find_same_alignment_drs): Remove. | |
9507 | (vect_analyze_data_refs_alignment): Do not call it. | |
9508 | * vec.h (auto_vec<T, 0>::auto_vec): Adjust CTOR to take | |
9509 | a vec<>&&, assert it isn't using auto storage. | |
9510 | (auto_vec& operator=): Apply a similar change. | |
9511 | ||
9512 | 2020-10-13 Tobias Burnus <tobias@codesourcery.com> | |
9513 | ||
9514 | * config/nvptx/mkoffload.c (main): Add missing fclose (in). | |
9515 | ||
9516 | 2020-10-13 Zhiheng Xie <xiezhiheng@huawei.com> | |
9517 | Nannan Zheng <zhengnannan@huawei.com> | |
9518 | ||
9519 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
9520 | for mul/mla/mls intrinsics. | |
9521 | ||
9522 | 2020-10-13 Jakub Jelinek <jakub@redhat.com> | |
9523 | ||
9524 | * omp-low.c (add_taskreg_looptemp_clauses): For triangular loops | |
9525 | with non-constant number of iterations add another 4 _looptemp_ | |
9526 | clauses before the (optional) one for lastprivate. | |
9527 | (lower_omp_for_lastprivate): Skip those clauses when looking for | |
9528 | the lastprivate clause. | |
9529 | (lower_omp_for): For triangular loops with non-constant number of | |
9530 | iterations add another 4 _looptemp_ clauses. | |
9531 | * omp-expand.c (expand_omp_for_init_counts): For triangular loops | |
9532 | with non-constant number of iterations set counts[0], | |
9533 | fd->first_inner_iterations, fd->factor and fd->adjn1 from the newly | |
9534 | added _looptemp_ clauses. | |
9535 | (expand_omp_for_init_vars): Initialize the newly added _looptemp_ | |
9536 | clauses. | |
9537 | (find_lastprivate_looptemp): New function. | |
9538 | (expand_omp_for_static_nochunk, expand_omp_for_static_chunk, | |
9539 | expand_omp_taskloop_for_outer): Use it instead of manually skipping | |
9540 | _looptemp_ clauses. | |
9541 | ||
9542 | 2020-10-13 Jan Hubicka <hubicka@ucw.cz> | |
9543 | ||
9544 | PR ipa/97389 | |
9545 | * ipa-modref.c (dump_lto_records): Fix formating of dump file. | |
9546 | (modref_summary::dump): Do not check loads to be non-null. | |
9547 | (modref_summary_lto::dump): Do not check loads to be non-null. | |
9548 | (merge_call_side_effects): Improve debug output. | |
9549 | (analyze_call): Crash when cur_summary->loads is NULL. | |
9550 | (analyze_function): Update. | |
9551 | (modref_summaries::insert): Insert only into summaries, not | |
9552 | optimization_summaries. | |
9553 | (modref_summaries::duplicate): Likewise; crash when load or sotres | |
9554 | are NULL. | |
9555 | (modref_summaries_lto::duplicate): Crash when loads or stores are NULL. | |
9556 | (write_modref_records): param_index is signed. | |
9557 | (read_modref_records): param_index is signed. | |
9558 | (modref_write): Crash when loads or stores are NULL. | |
9559 | (read_section): Compensate previous change. | |
9560 | (pass_modref::execute): Do not check optimization_summaries t be | |
9561 | non-NULL. | |
9562 | (ignore_edge): Fix. | |
9563 | (compute_parm_map): Fix formating. | |
9564 | (modref_propagate_in_scc): Do not expect loads/stores to be NULL. | |
9565 | ||
9566 | 2020-10-12 Alexandre Oliva <oliva@adacore.com> | |
9567 | ||
9568 | * builtins.c (mathfn_built_in_type): Use CFN_ enumerators. | |
9569 | ||
9570 | 2020-10-12 Andrew MacLeod <amacleod@redhat.com> | |
9571 | ||
9572 | PR tree-optimization/97381 | |
9573 | * gimple-range-gori.cc (gori_compute::compute_operand2_range): If a range cannot be | |
9574 | calculated through operand 2, return false. | |
9575 | ||
9576 | 2020-10-12 Aldy Hernandez <aldyh@redhat.com> | |
9577 | ||
9578 | PR tree-optimization/97378 | |
9579 | * range-op.cc (operator_trunc_mod::wi_fold): Return VARYING for mod by zero. | |
9580 | ||
9581 | 2020-10-12 David Malcolm <dmalcolm@redhat.com> | |
9582 | ||
9583 | * doc/invoke.texi: Document -Wanalyzer-write-to-const and | |
9584 | -Wanalyzer-write-to-string-literal. | |
9585 | ||
9586 | 2020-10-12 Martin Sebor <msebor@redhat.com> | |
9587 | ||
9588 | PR middle-end/97342 | |
9589 | PR middle-end/97023 | |
9590 | PR middle-end/96384 | |
9591 | * builtins.c (access_ref::access_ref): Initialize new member. Use | |
9592 | new enum. | |
9593 | (access_ref::size_remaining): Define new member function. | |
9594 | (inform_access): Handle expressions referencing objects. | |
9595 | (gimple_call_alloc_size): Call get_size_range instead of get_range. | |
9596 | (gimple_call_return_array): New function. | |
9597 | (get_range): Rename... | |
9598 | (get_offset_range): ...to this. Improve detection of ranges from | |
9599 | types of expressions. | |
9600 | (gimple_call_return_array): Adjust calls to get_range per above. | |
9601 | (compute_objsize): Same. Set maximum size or offset instead of | |
9602 | failing for unknown objects and handle more kinds of expressions. | |
9603 | (compute_objsize): Call access_ref::size_remaining. | |
9604 | (compute_objsize): Have transitional wrapper fail for pointers | |
9605 | into unknown objects. | |
9606 | (expand_builtin_strncmp): Call access_ref::size_remaining and | |
9607 | handle new cases. | |
9608 | * builtins.h (access_ref::size_remaining): Declare new member function. | |
9609 | (access_ref::set_max_size_range): Define new member function. | |
9610 | (access_ref::add_ofset, access_ref::add_max_ofset): Same. | |
9611 | (access_ref::add_base0): New data member. | |
9612 | * calls.c (get_size_range): Change argument type. Handle new | |
9613 | condition. | |
9614 | * calls.h (get_size_range): Adjust signature. | |
9615 | (enum size_range_flags): Define new type. | |
9616 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Correct | |
9617 | argument to get_size_range. | |
9618 | * tree-ssa-strlen.c (get_range): Handle anti-ranges. | |
9619 | (maybe_warn_overflow): Check DECL_P before assuming it's one. | |
9620 | ||
9621 | 2020-10-12 Martin Sebor <msebor@redhat.com> | |
9622 | ||
9623 | PR c++/96511 | |
9624 | PR middle-end/96384 | |
9625 | * builtins.c (get_range): Return full range of type when neither | |
9626 | value nor its range is available. Fail for ranges inverted due | |
9627 | to the signedness of offsets. | |
9628 | (compute_objsize): Handle more special array members. Handle | |
9629 | POINTER_PLUS_EXPR and VIEW_CONVERT_EXPR that come up in front end | |
9630 | code. | |
9631 | (access_ref::offset_bounded): Define new member function. | |
9632 | * builtins.h (access_ref::eval): New data member. | |
9633 | (access_ref::offset_bounded): New member function. | |
9634 | (access_ref::offset_zero): New member function. | |
9635 | (compute_objsize): Declare a new overload. | |
9636 | * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Use | |
9637 | enum special_array_member. | |
9638 | * tree.c (component_ref_size): Use special_array_member. | |
9639 | * tree.h (special_array_member): Define a new type. | |
9640 | (component_ref_size): Change signature. | |
9641 | ||
9642 | 2020-10-12 Jan Hubicka <hubicka@ucw.cz> | |
9643 | ||
9644 | * ipa-modref.c (modref_summaries): Remove field IPA. | |
9645 | (class modref_summary_lto): New global variable. | |
9646 | (class modref_summaries_lto): New. | |
9647 | (modref_summary::modref_summary): Remove loads_lto and stores_lto. | |
9648 | (modref_summary::~modref_summary): Remove loads_lto and stores_lto. | |
9649 | (modref_summary::useful_p): Do not use lto_useful. | |
9650 | (modref_records_lto): New typedef. | |
9651 | (struct modref_summary_lto): New type. | |
9652 | (modref_summary_lto::modref_summary_lto): New member function. | |
9653 | (modref_summary_lto::~modref_summary_lto): New member function. | |
9654 | (modref_summary_lto::useful_p): New member function. | |
9655 | (modref_summary::dump): Do not handle lto. | |
9656 | (modref_summary_lto::dump): New member function. | |
9657 | (get_modref_function_summary): Use optimization_summary. | |
9658 | (merge_call_side_effects): Use optimization_summary. | |
9659 | (analyze_call): Use optimization_summary. | |
9660 | (struct summary_ptrs): New struture. | |
9661 | (analyze_load): Update to handle separate lto and non-lto summaries. | |
9662 | (analyze_store): Likewise. | |
9663 | (analyze_stmt): Likewise. | |
9664 | (remove_summary): Break out from ... | |
9665 | (analyze_function): ... here; update to handle seprated summaries. | |
9666 | (modref_summaries::insert): Do not handle lto summary. | |
9667 | (modref_summaries_lto::insert): New member function. | |
9668 | (modref_summaries::duplicate): Do not handle lto summary. | |
9669 | (modref_summaries_lto::duplicate): New member function. | |
9670 | (read_modref_records): Expect nolto_ret or lto_ret to be NULL> | |
9671 | (modref_write): Write lto summary. | |
9672 | (read_section): Handle separated summaries. | |
9673 | (modref_read): Initialize separated summaries. | |
9674 | (modref_transform): Handle separated summaries. | |
9675 | (pass_modref::execute): Turn summary to optimization_summary; handle | |
9676 | separate summaries. | |
9677 | (ignore_edge): Handle separate summaries. | |
9678 | (ipa_merge_modref_summary_after_inlining): Likewise. | |
9679 | (collapse_loads): Likewise. | |
9680 | (modref_propagate_in_scc): Likewise. | |
9681 | (pass_ipa_modref::execute): Likewise. | |
9682 | (ipa_modref_c_finalize): Likewise. | |
9683 | * ipa-modref.h (modref_records_lto): Remove typedef. | |
9684 | (struct modref_summary): Remove stores_lto, loads_lto and finished | |
9685 | fields; remove lto_useful_p member function. | |
9686 | ||
9687 | 2020-10-12 Richard Biener <rguenther@suse.de> | |
9688 | ||
9689 | * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence): | |
9690 | Use SLP_TREE_REPRESENTATIVE. | |
9691 | * tree-vectorizer.h (_slp_tree::vertex): New member used | |
9692 | for graphds interfacing. | |
9693 | * tree-vect-slp.c (vect_build_slp_tree_2): Allocate space | |
9694 | for PHI SLP children. | |
9695 | (vect_analyze_slp_backedges): New function filling in SLP | |
9696 | node children for PHIs that correspond to backedge values. | |
9697 | (vect_analyze_slp): Call vect_analyze_slp_backedges for the | |
9698 | graph. | |
9699 | (vect_slp_analyze_node_operations): Deal with a cyclic graph. | |
9700 | (vect_schedule_slp_instance): Likewise. | |
9701 | (vect_schedule_slp): Likewise. | |
9702 | (slp_copy_subtree): Remove. | |
9703 | (vect_slp_rearrange_stmts): Likewise. | |
9704 | (vect_attempt_slp_rearrange_stmts): Likewise. | |
9705 | (vect_slp_build_vertices): New functions. | |
9706 | (vect_slp_permute): Likewise. | |
9707 | (vect_slp_perms_eq): Likewise. | |
9708 | (vect_optimize_slp): Remove special code to elide | |
9709 | permutations with SLP reductions. Implement generic | |
9710 | permute optimization. | |
9711 | ||
9712 | 2020-10-12 Christophe Lyon <christophe.lyon@linaro.org> | |
9713 | ||
9714 | * config/arm/arm.c (arm_preferred_simd_mode): Use E_FOOmode | |
9715 | instead of FOOmode. | |
9716 | ||
9717 | 2020-10-12 Martin Liska <mliska@suse.cz> | |
9718 | ||
9719 | PR tree-optimization/97079 | |
9720 | * internal-fn.c (internal_fn_stored_value_index): Handle also | |
9721 | .MASK_STORE_LANES. | |
9722 | * tree-vect-patterns.c (vect_recog_over_widening_pattern): Bail | |
9723 | out for unsupported TREE_TYPE. | |
9724 | ||
9725 | 2020-10-12 Richard Biener <rguenther@suse.de> | |
9726 | ||
9727 | * tree-vect-slp.c (vect_bb_partition_graph_r): Use visited | |
9728 | hash-map. | |
9729 | (vect_bb_partition_graph): Likewise. | |
9730 | ||
9731 | 2020-10-12 Duan bo <duanbo3@huawei.com> | |
9732 | ||
9733 | PR target/96757 | |
9734 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Add | |
9735 | the identification and handling of the dropped situation in the | |
9736 | cond expression processing phase. | |
9737 | ||
9738 | 2020-10-12 Tobias Burnus <tobias@codesourcery.com> | |
9739 | ||
9740 | * doc/invoke.texi (nvptx's -misa): Update default to sm_35. | |
9741 | ||
9742 | 2020-10-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
9743 | ||
9744 | PR target/97349 | |
9745 | * config/aarch64/arm_neon.h (vdupq_n_p8, vdupq_n_p16, | |
9746 | vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, vdupq_n_u8, vdupq_n_u16): | |
9747 | Fix argument type. | |
9748 | ||
9749 | 2020-10-12 Ilya Leoshkevich <iii@linux.ibm.com> | |
9750 | ||
9751 | * config/s390/s390-protos.h (s390_build_signbit_mask): New | |
9752 | function. | |
9753 | * config/s390/s390.c (s390_contiguous_bitmask_vector_p): | |
9754 | Bitcast the argument to an integral mode. | |
9755 | (s390_expand_vec_init): Do not call | |
9756 | s390_contiguous_bitmask_vector_p with a scalar argument. | |
9757 | (s390_build_signbit_mask): New function. | |
9758 | * config/s390/vector.md (copysign<mode>3): Use bitwise | |
9759 | operations. | |
9760 | ||
9761 | 2020-10-12 Aldy Hernandez <aldyh@redhat.com> | |
9762 | ||
9763 | PR tree-optimization/97371 | |
9764 | * range-op.cc (operator_rshift::op1_range): Ignore shifts larger than | |
9765 | or equal to type precision. | |
9766 | ||
9767 | 2020-10-12 Martin Liska <mliska@suse.cz> | |
9768 | ||
9769 | * ipa-modref.c (merge_call_side_effects): Clear modref_parm_map | |
9770 | fields in the vector. | |
9771 | ||
9772 | 2020-10-12 Richard Biener <rguenther@suse.de> | |
9773 | ||
9774 | * tree-vect-slp.c (vect_analyze_slp_instance): Set matches to true | |
9775 | after successful discovery but forced split. | |
9776 | ||
9777 | 2020-10-12 Tom de Vries <tdevries@suse.de> | |
9778 | ||
9779 | * config/nvptx/nvptx.opt (-msoft-stack-reserve-local): Rename to ... | |
9780 | (-msoft-stack-reserve-local=): ... this. | |
9781 | ||
9782 | 2020-10-12 Richard Biener <rguenther@suse.de> | |
9783 | ||
9784 | PR tree-optimization/97357 | |
9785 | * tree-ssa-loop-split.c (ssa_semi_invariant_p): Abnormal | |
9786 | SSA names are not semi invariant. | |
9787 | ||
9788 | 2020-10-11 Iain Sandoe <iain@sandoe.co.uk> | |
9789 | ||
9790 | * config/darwin.c (darwin_globalize_label): Make a subset of | |
9791 | metadate symbols global. | |
9792 | (darwin_label_is_anonymous_local_objc_name): Make a subset of | |
9793 | metadata symbols linker-visible. | |
9794 | (darwin_override_options): Track more target OS versions, make | |
9795 | the next_runtime version track this (unless it's set to 0 for | |
9796 | GNU runtime). | |
9797 | ||
9798 | 2020-10-11 Iain Sandoe <iain@sandoe.co.uk> | |
9799 | ||
9800 | * config/darwin.c (darwin_globalize_label): Add protocol | |
9801 | meta-data labels to the set that are global. | |
9802 | (darwin_label_is_anonymous_local_objc_name): Arrange for meta- | |
9803 | data start labels to be linker-visible. | |
9804 | ||
9805 | 2020-10-11 Iain Sandoe <iain@sandoe.co.uk> | |
9806 | ||
9807 | * config/darwin.c (darwin_objc2_section): Allow for | |
9808 | values > 1 to represent the next runtime. | |
9809 | (darwin_objc1_section): Likewise. | |
9810 | * config/darwin.h (NEXT_OBJC_RUNTIME): Set the default | |
9811 | next runtime value to be 10.5.8. | |
9812 | ||
9813 | 2020-10-10 Jan Hubicka <jh@suse.cz> | |
9814 | ||
9815 | * ipa-modref.c (modref_transform): Fix parameter map computation. | |
9816 | ||
9817 | 2020-10-10 Tom de Vries <tdevries@suse.de> | |
9818 | ||
9819 | PR target/97318 | |
9820 | * config/nvptx/nvptx.c (nvptx_replace_dot): New function. | |
9821 | (write_fn_proto, write_fn_proto_from_insn, nvptx_output_call_insn): | |
9822 | Use nvptx_replace_dot. | |
9823 | ||
9824 | 2020-10-10 Tom de Vries <tdevries@suse.de> | |
9825 | ||
9826 | * config/nvptx/nvptx.c (write_fn_proto_1): New function, factored out | |
9827 | of ... | |
9828 | (write_fn_proto): ... here. Return void. | |
9829 | ||
9830 | 2020-10-10 Jan Hubicka <jh@suse.cz> | |
9831 | ||
9832 | * ipa-modref.c (remap_arguments): Check range in map access. | |
9833 | ||
9834 | 2020-10-10 Jan Hubicka <jh@suse.cz> | |
9835 | ||
9836 | * ipa-modref.c (modref_transform): Use reserve instead of safe_grow. | |
9837 | ||
9838 | 2020-10-10 Jan Hubicka <jh@suse.cz> | |
9839 | ||
9840 | * ipa-modref.c (modref_transform): Check that summaries are allocated. | |
9841 | ||
9842 | 2020-10-10 Jan Hubicka <jh@suse.cz> | |
9843 | ||
9844 | * ipa-modref-tree.h (struct modref_tree): Revert prevoius change. | |
9845 | * ipa-modref.c (analyze_function): Dump original summary. | |
9846 | (modref_read): Only set IPA if streaming summary (not optimization | |
9847 | summary). | |
9848 | (remap_arguments): New function. | |
9849 | (modref_transform): New function. | |
9850 | (compute_parm_map): Fix offset calculation. | |
9851 | (ipa_merge_modref_summary_after_inlining): Do not merge stores when | |
9852 | they can be ignored. | |
9853 | ||
9854 | 2020-10-10 Jan Hubicka <jh@suse.cz> | |
9855 | ||
9856 | * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Improve debug dumps. | |
9857 | (call_may_clobber_ref_p_1): Improve debug dumps. | |
9858 | ||
9859 | 2020-10-10 Iain Sandoe <iain@sandoe.co.uk> | |
9860 | ||
9861 | * config/darwin.c (output_objc_section_asm_op): Avoid extra | |
9862 | objective-c section switches unless the linker needs them. | |
9863 | ||
9864 | 2020-10-10 Iain Sandoe <iain@sandoe.co.uk> | |
9865 | ||
9866 | * config/darwin-sections.def (objc2_data_section): New. | |
9867 | (objc2_ivar_section): New. | |
9868 | * config/darwin.c (darwin_objc2_section): Act on Protocol and | |
9869 | ivar refs. | |
9870 | ||
9871 | 2020-10-10 Iain Sandoe <iain@sandoe.co.uk> | |
9872 | ||
9873 | * config/darwin-sections.def (objc2_class_names_section, | |
9874 | objc2_method_names_section, objc2_method_types_section): New | |
9875 | * config/darwin.c (output_objc_section_asm_op): Output new | |
9876 | sections. (darwin_objc2_section): Select new sections where | |
9877 | used. | |
9878 | ||
9879 | 2020-10-10 Iain Sandoe <iain@sandoe.co.uk> | |
9880 | ||
9881 | * config/darwin.c (darwin_emit_local_bss): Amend section names to | |
9882 | match system tools. (darwin_output_aligned_bss): Likewise. | |
9883 | ||
9884 | 2020-10-10 Aldy Hernandez <aldyh@redhat.com> | |
9885 | ||
9886 | PR tree-optimization/97359 | |
9887 | * gimple-range-gori.cc (logical_stmt_cache::cacheable_p): Only | |
9888 | handle ANDs and ORs. | |
9889 | (gori_compute_cache::cache_stmt): Adjust comment. | |
9890 | ||
9891 | 2020-10-09 Vladimir Makarov <vmakarov@redhat.com> | |
9892 | ||
9893 | PR rtl-optimization/97313 | |
9894 | * lra-constraints.c (match_reload): Don't keep strict_low_part in | |
9895 | reloads for non-registers. | |
9896 | ||
9897 | 2020-10-09 H.J. Lu <hjl.tools@gmail.com> | |
9898 | ||
9899 | PR target/97148 | |
9900 | * config.gcc (extra_headers): Add x86gprintrin.h. | |
9901 | * config/i386/adxintrin.h: Check _X86GPRINTRIN_H_INCLUDED for | |
9902 | <x86gprintrin.h>. | |
9903 | * config/i386/bmi2intrin.h: Likewise. | |
9904 | * config/i386/bmiintrin.h: Likewise. | |
9905 | * config/i386/cetintrin.h: Likewise. | |
9906 | * config/i386/cldemoteintrin.h: Likewise. | |
9907 | * config/i386/clflushoptintrin.h: Likewise. | |
9908 | * config/i386/clwbintrin.h: Likewise. | |
9909 | * config/i386/enqcmdintrin.h: Likewise. | |
9910 | * config/i386/fxsrintrin.h: Likewise. | |
9911 | * config/i386/ia32intrin.h: Likewise. | |
9912 | * config/i386/lwpintrin.h: Likewise. | |
9913 | * config/i386/lzcntintrin.h: Likewise. | |
9914 | * config/i386/movdirintrin.h: Likewise. | |
9915 | * config/i386/pconfigintrin.h: Likewise. | |
9916 | * config/i386/pkuintrin.h: Likewise. | |
9917 | * config/i386/rdseedintrin.h: Likewise. | |
9918 | * config/i386/rtmintrin.h: Likewise. | |
9919 | * config/i386/serializeintrin.h: Likewise. | |
9920 | * config/i386/tbmintrin.h: Likewise. | |
9921 | * config/i386/tsxldtrkintrin.h: Likewise. | |
9922 | * config/i386/waitpkgintrin.h: Likewise. | |
9923 | * config/i386/wbnoinvdintrin.h: Likewise. | |
9924 | * config/i386/xsavecintrin.h: Likewise. | |
9925 | * config/i386/xsaveintrin.h: Likewise. | |
9926 | * config/i386/xsaveoptintrin.h: Likewise. | |
9927 | * config/i386/xsavesintrin.h: Likewise. | |
9928 | * config/i386/xtestintrin.h: Likewise. | |
9929 | * config/i386/immintrin.h: Include <x86gprintrin.h> instead of | |
9930 | <fxsrintrin.h>, <xsaveintrin.h>, <xsaveoptintrin.h>, | |
9931 | <xsavesintrin.h>, <xsavecintrin.h>, <lzcntintrin.h>, | |
9932 | <bmiintrin.h>, <bmi2intrin.h>, <xtestintrin.h>, <cetintrin.h>, | |
9933 | <movdirintrin.h>, <sgxintrin.h, <pconfigintrin.h>, | |
9934 | <waitpkgintrin.h>, <cldemoteintrin.h>, <enqcmdintrin.h>, | |
9935 | <serializeintrin.h>, <tsxldtrkintrin.h>, <adxintrin.h>, | |
9936 | <clwbintrin.h>, <clflushoptintrin.h>, <wbnoinvdintrin.h> and | |
9937 | <pkuintrin.h>. | |
9938 | (_wbinvd): Moved to config/i386/x86gprintrin.h. | |
9939 | (_rdrand16_step): Likewise. | |
9940 | (_rdrand32_step): Likewise. | |
9941 | (_rdpid_u32): Likewise. | |
9942 | (_readfsbase_u32): Likewise. | |
9943 | (_readfsbase_u64): Likewise. | |
9944 | (_readgsbase_u32): Likewise. | |
9945 | (_readgsbase_u64): Likewise. | |
9946 | (_writefsbase_u32): Likewise. | |
9947 | (_writefsbase_u64): Likewise. | |
9948 | (_writegsbase_u32): Likewise. | |
9949 | (_writegsbase_u64): Likewise. | |
9950 | (_rdrand64_step): Likewise. | |
9951 | (_ptwrite64): Likewise. | |
9952 | (_ptwrite32): Likewise. | |
9953 | * config/i386/x86gprintrin.h: New file. | |
9954 | * config/i386/x86intrin.h: Include <x86gprintrin.h>. Don't | |
9955 | include <ia32intrin.h>, <lwpintrin.h>, <tbmintrin.h>, | |
9956 | <popcntintrin.h>, <mwaitxintrin.h> and <clzerointrin.h>. | |
9957 | ||
9958 | 2020-10-09 Tom de Vries <tdevries@suse.de> | |
9959 | ||
9960 | PR target/97348 | |
9961 | * config/nvptx/nvptx.h (ASM_SPEC): Also pass -m to nvptx-as if | |
9962 | default is used. | |
9963 | * config/nvptx/nvptx.opt (misa): Init with PTX_ISA_SM35. | |
9964 | ||
9965 | 2020-10-09 Richard Biener <rguenther@suse.de> | |
9966 | ||
9967 | * doc/sourcebuild.texi (vect_masked_load): Document. | |
9968 | ||
9969 | 2020-10-09 Richard Biener <rguenther@suse.de> | |
9970 | ||
9971 | PR tree-optimization/97334 | |
9972 | * tree-vect-slp.c (vect_build_slp_tree_1): Do not fatally | |
9973 | fail lanes other than zero when BB vectorizing. | |
9974 | ||
9975 | 2020-10-09 Jan Hubicka <jh@suse.cz> | |
9976 | ||
9977 | PR ipa/97292 | |
9978 | PR ipa/97335 | |
9979 | * ipa-modref-tree.h (copy_from): Drop summary in a | |
9980 | clone. | |
9981 | ||
9982 | 2020-10-09 Richard Biener <rguenther@suse.de> | |
9983 | ||
9984 | PR tree-optimization/97347 | |
9985 | * tree-vect-slp.c (vect_create_constant_vectors): Use | |
9986 | edge insertion when inserting on the fallthru edge, | |
9987 | appropriately insert at the start of BBs when inserting | |
9988 | after PHIs. | |
9989 | ||
9990 | 2020-10-09 Andrew MacLeod <amacleod@redhat.com> | |
9991 | ||
9992 | PR tree-optimization/97317 | |
9993 | * range-op.cc (operator_cast::op1_range): Handle casts where the precision | |
9994 | of the RHS is only 1 greater than the precision of the LHS. | |
9995 | ||
9996 | 2020-10-09 Richard Biener <rguenther@suse.de> | |
9997 | ||
9998 | * cgraphunit.c (expand_all_functions): Free tp_first_run_order. | |
9999 | * ipa-modref.c (pass_ipa_modref::execute): Free order. | |
10000 | * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Free | |
10001 | loop body. | |
10002 | * tree-vect-data-refs.c (vect_find_stmt_data_reference): Free | |
10003 | data references upon failure. | |
10004 | * tree-vect-loop.c (update_epilogue_loop_vinfo): Free BBs | |
10005 | array of the original loop. | |
10006 | * tree-vect-slp.c (vect_slp_bbs): Use an auto_vec for | |
10007 | dataref_groups to release its memory. | |
10008 | ||
10009 | 2020-10-09 Jakub Jelinek <jakub@redhat.com> | |
10010 | ||
10011 | PR tree-optimization/94801 | |
10012 | PR target/97312 | |
10013 | * vr-values.c (vr_values::extract_range_basic) <CASE_CFN_CLZ, | |
10014 | CASE_CFN_CTZ>: When stmt is not an internal-fn call or | |
10015 | C?Z_DEFINED_VALUE_AT_ZERO is not 2, assume argument is not zero | |
10016 | and thus use [0, prec-1] range unless it can be further improved. | |
10017 | For CTZ, don't update maxi from upper bound if it was previously prec. | |
10018 | * gimple-range.cc (gimple_ranger::range_of_builtin_call) <CASE_CFN_CLZ, | |
10019 | CASE_CFN_CTZ>: Likewise. | |
10020 | ||
10021 | 2020-10-09 Jakub Jelinek <jakub@redhat.com> | |
10022 | ||
10023 | PR tree-optimization/97325 | |
10024 | * match.pd (FFS(nonzero) -> CTZ(nonzero) + 1): Cast argument to | |
10025 | corresponding unsigned type. | |
10026 | ||
10027 | 2020-10-09 Richard Biener <rguenther@suse.de> | |
10028 | ||
10029 | * tree-vect-slp.c (vect_create_constant_vectors): Properly insert | |
10030 | after PHIs. | |
10031 | ||
10032 | 2020-10-08 Alexandre Oliva <oliva@adacore.com> | |
10033 | ||
10034 | * builtins.c (mathfn_built_in_type): New. | |
10035 | * builtins.h (mathfn_built_in_type): Declare. | |
10036 | * tree-ssa-math-opts.c (execute_cse_sincos_1): Use it to | |
10037 | obtain the type expected by the intrinsic. | |
10038 | ||
10039 | 2020-10-08 Will Schmidt <will_schmidt@vnet.ibm.com> | |
10040 | ||
10041 | * config/rs6000/rs6000-builtin.def (BU_P10_MISC_2): Rename | |
10042 | to BU_P10_POWERPC64_MISC_2. | |
10043 | CFUGED, CNTLZDM, CNTTZDM, PDEPD, PEXTD): Call renamed macro. | |
10044 | ||
10045 | 2020-10-08 Jan Hubicka <jh@suse.cz> | |
10046 | ||
10047 | * tree-nrv.c (dest_safe_for_nrv_p): Disable tbaa in | |
10048 | call_may_clobber_ref_p and ref_maybe_used_by_stmt_p. | |
10049 | * tree-tailcall.c (find_tail_calls): Likewise. | |
10050 | * tree-ssa-alias.c (call_may_clobber_ref_p): Add tbaa_p parameter. | |
10051 | * tree-ssa-alias.h (call_may_clobber_ref_p): Update prototype. | |
10052 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass data->tbaa_p | |
10053 | to call_may_clobber_ref_p_1. | |
10054 | ||
10055 | 2020-10-08 Mark Wielaard <mark@klomp.org> | |
10056 | ||
10057 | * dwarf2out.c (dwarf2out_finish): Emit .file 0 entry when | |
10058 | generating DWARF5 .debug_line table through gas. | |
10059 | ||
10060 | 2020-10-08 John Henning <john.henning@oracle.com> | |
10061 | ||
10062 | PR other/97309 | |
10063 | * doc/invoke.texi: Improve documentation of | |
10064 | -fallow-store-data-races. | |
10065 | ||
10066 | 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org> | |
10067 | ||
10068 | PR target/96914 | |
10069 | * config/arm/arm_mve.h (__arm_vcvtnq_u32_f32): New. | |
10070 | ||
10071 | 2020-10-08 Martin Liska <mliska@suse.cz> | |
10072 | Richard Biener <rguenther@suse.de> | |
10073 | ||
10074 | * tree-vectorizer.h (_bb_vec_info::const_iterator): Remove. | |
10075 | (_bb_vec_info::const_reverse_iterator): Likewise. | |
10076 | (_bb_vec_info::region_stmts): Likewise. | |
10077 | (_bb_vec_info::reverse_region_stmts): Likewise. | |
10078 | (_bb_vec_info::_bb_vec_info): Adjust. | |
10079 | (_bb_vec_info::bb): Remove. | |
10080 | (_bb_vec_info::region_begin): Remove. | |
10081 | (_bb_vec_info::region_end): Remove. | |
10082 | (_bb_vec_info::bbs): New vector of BBs. | |
10083 | (vect_slp_function): Declare. | |
10084 | * tree-vect-patterns.c (vect_determine_precisions): Use | |
10085 | regular stmt iteration. | |
10086 | (vect_pattern_recog): Likewise. | |
10087 | * tree-vect-slp.c: Include cfganal.h, tree-eh.h and tree-cfg.h. | |
10088 | (vect_build_slp_tree_1): Properly refuse to vectorize | |
10089 | volatile and throwing stmts. | |
10090 | (vect_build_slp_tree_2): Pass group-size down to | |
10091 | get_vectype_for_scalar_type. | |
10092 | (_bb_vec_info::_bb_vec_info): Use regular stmt iteration, | |
10093 | adjust for changed region specification. | |
10094 | (_bb_vec_info::~_bb_vec_info): Likewise. | |
10095 | (vect_slp_check_for_constructors): Likewise. | |
10096 | (vect_slp_region): Likewise. | |
10097 | (vect_slp_bbs): New worker operating on a vector of BBs. | |
10098 | (vect_slp_bb): Wrap it. | |
10099 | (vect_slp_function): New function splitting the function | |
10100 | into multi-BB regions. | |
10101 | (vect_create_constant_vectors): Handle the case of inserting | |
10102 | after a throwing def. | |
10103 | (vect_schedule_slp_instance): Adjust. | |
10104 | * tree-vectorizer.c (vec_info::remove_stmt): Simplify again. | |
10105 | (vec_info::insert_seq_on_entry): Adjust. | |
10106 | (pass_slp_vectorize::execute): Also init PHIs. Call | |
10107 | vect_slp_function. | |
10108 | ||
10109 | 2020-10-08 Richard Biener <rguenther@suse.de> | |
10110 | ||
10111 | PR tree-optimization/97330 | |
10112 | * tree-ssa-sink.c (statement_sink_location): Avoid skipping | |
10113 | PHIs when they dominate the insert location. | |
10114 | ||
10115 | 2020-10-08 Jan Hubicka <jh@suse.cz> | |
10116 | ||
10117 | * ipa-modref.c (get_access): Fix handling of offsets. | |
10118 | * tree-ssa-alias.c (modref_may_conflict): Watch for overflows. | |
10119 | ||
10120 | 2020-10-08 Martin Liska <mliska@suse.cz> | |
10121 | ||
10122 | * dbgcnt.def (DEBUG_COUNTER): Add ipa_mod_ref debug counter. | |
10123 | * tree-ssa-alias.c (modref_may_conflict): Handle the counter. | |
10124 | ||
10125 | 2020-10-08 Richard Biener <rguenther@suse.de> | |
10126 | ||
10127 | * tree-vectorizer.c (try_vectorize_loop_1): Do not dump | |
10128 | "basic block vectorized". | |
10129 | (pass_slp_vectorize::execute): Likewise. | |
10130 | * tree-vect-slp.c (vect_analyze_slp_instance): Avoid | |
10131 | re-analyzing split single stmts. | |
10132 | ||
10133 | 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org> | |
10134 | ||
10135 | PR target/96914 | |
10136 | * config/arm/arm_mve.h (vqrdmlashq_n_u8, vqrdmlashq_n_u16) | |
10137 | (vqrdmlashq_n_u32, vqrdmlahq_n_u8, vqrdmlahq_n_u16) | |
10138 | (vqrdmlahq_n_u32, vqdmlahq_n_u8, vqdmlahq_n_u16, vqdmlahq_n_u32) | |
10139 | (vmlaldavaxq_p_u16, vmlaldavaxq_p_u32): Remove. | |
10140 | * config/arm/arm_mve_builtins.def (vqrdmlashq_n_u, vqrdmlahq_n_u) | |
10141 | (vqdmlahq_n_u, vmlaldavaxq_p_u): Remove. | |
10142 | * config/arm/unspecs.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U) | |
10143 | (VQRDMLASHQ_N_U) | |
10144 | (VMLALDAVAXQ_P_U): Remove unspecs. | |
10145 | * config/arm/iterators.md (VQDMLAHQ_N_U, VQRDMLAHQ_N_U) | |
10146 | (VQRDMLASHQ_N_U, VMLALDAVAXQ_P_U): Remove attributes. | |
10147 | (VQDMLAHQ_N, VQRDMLAHQ_N, VQRDMLASHQ_N, VMLALDAVAXQ_P): Remove | |
10148 | unsigned variants from iterators. | |
10149 | * config/arm/mve.md (mve_vqdmlahq_n_<supf><mode>) | |
10150 | (mve_vqrdmlahq_n_<supf><mode>) | |
10151 | (mve_vqrdmlashq_n_<supf><mode>, mve_vmlaldavaxq_p_<supf><mode>): | |
10152 | Update comment. | |
10153 | ||
10154 | 2020-10-08 Christophe Lyon <christophe.lyon@linaro.org> | |
10155 | ||
10156 | PR target/96914 | |
10157 | * config/arm/arm_mve.h (vqdmlashq, vqdmlashq_m): Define. | |
10158 | * config/arm/arm_mve_builtins.def (vqdmlashq_n_s) | |
10159 | (vqdmlashq_m_n_s,): New. | |
10160 | * config/arm/unspecs.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New | |
10161 | unspecs. | |
10162 | * config/arm/iterators.md (VQDMLASHQ_N_S, VQDMLASHQ_M_N_S): New | |
10163 | attributes. | |
10164 | (VQDMLASHQ_N): New iterator. | |
10165 | * config/arm/mve.md (mve_vqdmlashq_n_, mve_vqdmlashq_m_n_s): New | |
10166 | patterns. | |
10167 | ||
10168 | 2020-10-08 Jakub Jelinek <jakub@redhat.com> | |
10169 | ||
10170 | PR target/97322 | |
10171 | * config/arm/arm.c (arm_expand_divmod_libfunc): Pass mode instead of | |
10172 | GET_MODE (op0) or GET_MODE (op1) to emit_library_call_value. | |
10173 | ||
10174 | 2020-10-08 Aldy Hernandez <aldyh@redhat.com> | |
10175 | ||
10176 | PR tree-optimization/97325 | |
10177 | * gimple-range.cc (gimple_ranger::range_of_builtin_call): Handle | |
10178 | negative numbers in __builtin_ffs and __builtin_popcount. | |
10179 | ||
10180 | 2020-10-08 Aldy Hernandez <aldyh@redhat.com> | |
10181 | ||
10182 | PR tree-optimization/97315 | |
10183 | * range-op.cc (value_range_with_overflow): Change any | |
10184 | non-overflow calculation in which both bounds are | |
10185 | overflow/underflow to be undefined. | |
10186 | ||
10187 | 2020-10-08 Aldy Hernandez <aldyh@redhat.com> | |
10188 | ||
10189 | PR tree-optimization/97315 | |
10190 | * gimple-ssa-evrp.c (hybrid_folder::choose_value): Removes the | |
10191 | trap and instead annotates the listing. | |
10192 | ||
10193 | 2020-10-08 Jakub Jelinek <jakub@redhat.com> | |
10194 | ||
10195 | PR sanitizer/97294 | |
10196 | * tree-cfg.c (move_block_to_fn): Call notice_special_calls on | |
10197 | call stmts being moved into dest_cfun. | |
10198 | * omp-low.c (lower_rec_input_clauses): Set cfun->calls_alloca when | |
10199 | adding __builtin_alloca_with_align call without gimplification. | |
10200 | ||
10201 | 2020-10-07 Aldy Hernandez <aldyh@redhat.com> | |
10202 | ||
10203 | * common.opt (-fevrp-mode): Rename and move... | |
10204 | * params.opt (--param=evrp-mode): ...here. | |
10205 | * gimple-range.h (DEBUG_RANGE_CACHE): Use param_evrp_mode instead | |
10206 | of flag_evrp_mode. | |
10207 | * gimple-ssa-evrp.c (rvrp_folder): Same. | |
10208 | (hybrid_folder): Same. | |
10209 | (execute_early_vrp): Same. | |
10210 | ||
10211 | 2020-10-07 Richard Biener <rguenther@suse.de> | |
10212 | ||
10213 | PR tree-optimization/97307 | |
10214 | * tree-ssa-sink.c (statement_sink_location): Change heuristic | |
10215 | for not skipping stores to look for virtual definitions | |
10216 | rather than uses. | |
10217 | ||
10218 | 2020-10-07 Andrew MacLeod <amacleod@redhat.com> | |
10219 | ||
10220 | * value-range.h (irange_allocator::allocate): Allocate in two hunks | |
10221 | instead of using the variably-sized trailing array approach. | |
10222 | ||
10223 | 2020-10-07 David Malcolm <dmalcolm@redhat.com> | |
10224 | ||
10225 | * doc/invoke.texi (-fdiagnostics-plain-output): Add | |
10226 | -fdiagnostics-path-format=separate-events to list of | |
10227 | options injected by -fdiagnostics-plain-output. | |
10228 | * opts-common.c (decode_cmdline_options_to_array): Likewise. | |
10229 | ||
10230 | 2020-10-07 Martin Jambor <mjambor@suse.cz> | |
10231 | ||
10232 | PR ipa/96394 | |
10233 | * ipa-prop.c (update_indirect_edges_after_inlining): Do not add | |
10234 | resolved speculation edges to vector of new direct edges even in | |
10235 | presence of multiple speculative direct edges for a single call. | |
10236 | ||
10237 | 2020-10-07 Andrew Stubbs <ams@codesourcery.com> | |
10238 | ||
10239 | * config/gcn/gcn.md (unspec): Add UNSPEC_ADDPTR. | |
10240 | (addptrdi3): Add SGPR alternative. | |
10241 | ||
10242 | 2020-10-07 Mark Wielaard <mark@klomp.org> | |
10243 | ||
10244 | * dwarf2out.c (add_filepath_AT_string): New function. | |
10245 | (asm_outputs_debug_line_str): Likewise. | |
10246 | (add_filename_attribute): Likewise. | |
10247 | (add_comp_dir_attribute): Call add_filepath_AT_string. | |
10248 | (gen_compile_unit_die): Call add_filename_attribute for name. | |
10249 | (init_sections_and_labels): Init debug_line_str_section when | |
10250 | asm_outputs_debug_line_str return true. | |
10251 | (dwarf2out_early_finish): Remove DW_AT_name and DW_AT_comp_dir | |
10252 | hack and call add_filename_attribute for the remap_debug_filename. | |
10253 | ||
10254 | 2020-10-07 Jakub Jelinek <jakub@redhat.com> | |
10255 | ||
10256 | * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG, | |
10257 | HAVE_AS_WORKING_DWARF_4_FLAG): New tests. | |
10258 | * gcc.c (ASM_DEBUG_DWARF_OPTION): Define. | |
10259 | (ASM_DEBUG_SPEC): Use ASM_DEBUG_DWARF_OPTION instead of | |
10260 | "--gdwarf2". Use %{cond:opt1;:opt2} style. | |
10261 | (ASM_DEBUG_OPTION_DWARF_OPT): Define. | |
10262 | (ASM_DEBUG_OPTION_SPEC): Define. | |
10263 | (asm_debug_option): New variable. | |
10264 | (asm_options): Add "%(asm_debug_option)". | |
10265 | (static_specs): Add asm_debug_option entry. | |
10266 | (static_spec_functions): Add dwarf-version-gt. | |
10267 | (debug_level_greater_than_spec_func): New function. | |
10268 | * config/darwin.h (ASM_DEBUG_OPTION_SPEC): Define. | |
10269 | * config/darwin9.h (ASM_DEBUG_OPTION_SPEC): Redefine. | |
10270 | * config.in: Regenerated. | |
10271 | * configure: Regenerated. | |
10272 | ||
10273 | 2020-10-07 Jakub Jelinek <jakub@redhat.com> | |
10274 | ||
10275 | PR bootstrap/97305 | |
10276 | * optc-save-gen.awk: Don't declare mask variable if explicit_mask | |
10277 | array is not present. | |
10278 | ||
10279 | 2020-10-07 Jakub Jelinek <jakub@redhat.com> | |
10280 | ||
10281 | * omp-expand.c (expand_omp_simd): Don't emit MIN_EXPR and PLUS_EXPR | |
10282 | at the end of entry_bb and innermost init_bb, instead force arguments | |
10283 | for MIN_EXPR into temporaries in both cases and jump to a new bb that | |
10284 | performs MIN_EXPR and PLUS_EXPR. | |
10285 | ||
10286 | 2020-10-07 Tom de Vries <tdevries@suse.de> | |
10287 | ||
10288 | * tree-ssa-loop-ch.c (ch_base::copy_headers): Add missing NULL test | |
10289 | for dump_file. | |
10290 | ||
10291 | 2020-10-06 Andrew MacLeod <amacleod@redhat.com> | |
10292 | ||
10293 | * flag-types.h (enum evrp_mode): New enumerated type EVRP_MODE_*. | |
10294 | * common.opt (fevrp-mode): New undocumented flag. | |
10295 | * gimple-ssa-evrp.c: Include gimple-range.h | |
10296 | (class rvrp_folder): EVRP folding using ranger exclusively. | |
10297 | (rvrp_folder::rvrp_folder): New. | |
10298 | (rvrp_folder::~rvrp_folder): New. | |
10299 | (rvrp_folder::value_of_expr): New. Use rangers value_of_expr. | |
10300 | (rvrp_folder::value_on_edge): New. Use rangers value_on_edge. | |
10301 | (rvrp_folder::value_of_Stmt): New. Use rangers value_of_stmt. | |
10302 | (rvrp_folder::fold_stmt): New. Call the simplifier. | |
10303 | (class hybrid_folder): EVRP folding using both engines. | |
10304 | (hybrid_folder::hybrid_folder): New. | |
10305 | (hybrid_folder::~hybrid_folder): New. | |
10306 | (hybrid_folder::fold_stmt): New. Simplify with one engne, then the | |
10307 | other. | |
10308 | (hybrid_folder::value_of_expr): New. Use both value routines. | |
10309 | (hybrid_folder::value_on_edge): New. Use both value routines. | |
10310 | (hybrid_folder::value_of_stmt): New. Use both value routines. | |
10311 | (hybrid_folder::choose_value): New. Choose between range_analzyer and | |
10312 | rangers values. | |
10313 | (execute_early_vrp): Choose a folder based on flag_evrp_mode. | |
10314 | * vr-values.c (simplify_using_ranges::fold_cond): Try range_of_stmt | |
10315 | first to see if it returns a value. | |
10316 | (simplify_using_ranges::simplify_switch_using_ranges): Return true if | |
10317 | any changes were made to the switch. | |
10318 | ||
10319 | 2020-10-06 Andrew MacLeod <amacleod@redhat.com> | |
10320 | ||
10321 | * Makefile.in (OBJS): Add gimple-range*.o. | |
10322 | * gimple-range.h: New file. | |
10323 | * gimple-range.cc: New file. | |
10324 | * gimple-range-cache.h: New file. | |
10325 | * gimple-range-cache.cc: New file. | |
10326 | * gimple-range-edge.h: New file. | |
10327 | * gimple-range-edge.cc: New file. | |
10328 | * gimple-range-gori.h: New file. | |
10329 | * gimple-range-gori.cc: New file. | |
10330 | ||
10331 | 2020-10-06 Dennis Zhang <dennis.zhang@arm.com> | |
10332 | ||
10333 | * config/arm/arm.c (arm_preferred_simd_mode): Enable MVE SIMD modes. | |
10334 | ||
10335 | 2020-10-06 Tom de Vries <tdevries@suse.de> | |
10336 | ||
10337 | PR middle-end/90861 | |
10338 | * gimplify.c (gimplify_bind_expr): Handle lookup in | |
10339 | oacc_declare_returns using key with decl-expr. | |
10340 | ||
10341 | 2020-10-06 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
10342 | ||
10343 | * config/arm/iterators.md (MVE_types): Move mode iterator from mve.md to | |
10344 | iterators.md. | |
10345 | (MVE_VLD_ST): Likewise. | |
10346 | (MVE_0): Likewise. | |
10347 | (MVE_1): Likewise. | |
10348 | (MVE_3): Likewise. | |
10349 | (MVE_2): Likewise. | |
10350 | (MVE_5): Likewise. | |
10351 | (MVE_6): Likewise. | |
10352 | (MVE_CNVT): Move mode attribute iterator from mve.md to iterators.md. | |
10353 | (MVE_LANES): Likewise. | |
10354 | (MVE_constraint): Likewise. | |
10355 | (MVE_constraint1): Likewise. | |
10356 | (MVE_constraint2): Likewise. | |
10357 | (MVE_constraint3): Likewise. | |
10358 | (MVE_pred): Likewise. | |
10359 | (MVE_pred1): Likewise. | |
10360 | (MVE_pred2): Likewise. | |
10361 | (MVE_pred3): Likewise. | |
10362 | (MVE_B_ELEM): Likewise. | |
10363 | (MVE_H_ELEM): Likewise. | |
10364 | (V_sz_elem1): Likewise. | |
10365 | (V_extr_elem): Likewise. | |
10366 | (earlyclobber_32): Likewise. | |
10367 | (supf): Move int attribute from mve.md to iterators.md. | |
10368 | (mode1): Likewise. | |
10369 | (VCVTQ_TO_F): Move int iterator from mve.md to iterators.md. | |
10370 | (VMVNQ_N): Likewise. | |
10371 | (VREV64Q): Likewise. | |
10372 | (VCVTQ_FROM_F): Likewise. | |
10373 | (VREV16Q): Likewise. | |
10374 | (VCVTAQ): Likewise. | |
10375 | (VMVNQ): Likewise. | |
10376 | (VDUPQ_N): Likewise. | |
10377 | (VCLZQ): Likewise. | |
10378 | (VADDVQ): Likewise. | |
10379 | (VREV32Q): Likewise. | |
10380 | (VMOVLBQ): Likewise. | |
10381 | (VMOVLTQ): Likewise. | |
10382 | (VCVTPQ): Likewise. | |
10383 | (VCVTNQ): Likewise. | |
10384 | (VCVTMQ): Likewise. | |
10385 | (VADDLVQ): Likewise. | |
10386 | (VCTPQ): Likewise. | |
10387 | (VCTPQ_M): Likewise. | |
10388 | (VCVTQ_N_TO_F): Likewise. | |
10389 | (VCREATEQ): Likewise. | |
10390 | (VSHRQ_N): Likewise. | |
10391 | (VCVTQ_N_FROM_F): Likewise. | |
10392 | (VADDLVQ_P): Likewise. | |
10393 | (VCMPNEQ): Likewise. | |
10394 | (VSHLQ): Likewise. | |
10395 | (VABDQ): Likewise. | |
10396 | (VADDQ_N): Likewise. | |
10397 | (VADDVAQ): Likewise. | |
10398 | (VADDVQ_P): Likewise. | |
10399 | (VANDQ): Likewise. | |
10400 | (VBICQ): Likewise. | |
10401 | (VBRSRQ_N): Likewise. | |
10402 | (VCADDQ_ROT270): Likewise. | |
10403 | (VCADDQ_ROT90): Likewise. | |
10404 | (VCMPEQQ): Likewise. | |
10405 | (VCMPEQQ_N): Likewise. | |
10406 | (VCMPNEQ_N): Likewise. | |
10407 | (VEORQ): Likewise. | |
10408 | (VHADDQ): Likewise. | |
10409 | (VHADDQ_N): Likewise. | |
10410 | (VHSUBQ): Likewise. | |
10411 | (VHSUBQ_N): Likewise. | |
10412 | (VMAXQ): Likewise. | |
10413 | (VMAXVQ): Likewise. | |
10414 | (VMINQ): Likewise. | |
10415 | (VMINVQ): Likewise. | |
10416 | (VMLADAVQ): Likewise. | |
10417 | (VMULHQ): Likewise. | |
10418 | (VMULLBQ_INT): Likewise. | |
10419 | (VMULLTQ_INT): Likewise. | |
10420 | (VMULQ): Likewise. | |
10421 | (VMULQ_N): Likewise. | |
10422 | (VORNQ): Likewise. | |
10423 | (VORRQ): Likewise. | |
10424 | (VQADDQ): Likewise. | |
10425 | (VQADDQ_N): Likewise. | |
10426 | (VQRSHLQ): Likewise. | |
10427 | (VQRSHLQ_N): Likewise. | |
10428 | (VQSHLQ): Likewise. | |
10429 | (VQSHLQ_N): Likewise. | |
10430 | (VQSHLQ_R): Likewise. | |
10431 | (VQSUBQ): Likewise. | |
10432 | (VQSUBQ_N): Likewise. | |
10433 | (VRHADDQ): Likewise. | |
10434 | (VRMULHQ): Likewise. | |
10435 | (VRSHLQ): Likewise. | |
10436 | (VRSHLQ_N): Likewise. | |
10437 | (VRSHRQ_N): Likewise. | |
10438 | (VSHLQ_N): Likewise. | |
10439 | (VSHLQ_R): Likewise. | |
10440 | (VSUBQ): Likewise. | |
10441 | (VSUBQ_N): Likewise. | |
10442 | (VADDLVAQ): Likewise. | |
10443 | (VBICQ_N): Likewise. | |
10444 | (VMLALDAVQ): Likewise. | |
10445 | (VMLALDAVXQ): Likewise. | |
10446 | (VMOVNBQ): Likewise. | |
10447 | (VMOVNTQ): Likewise. | |
10448 | (VORRQ_N): Likewise. | |
10449 | (VQMOVNBQ): Likewise. | |
10450 | (VQMOVNTQ): Likewise. | |
10451 | (VSHLLBQ_N): Likewise. | |
10452 | (VSHLLTQ_N): Likewise. | |
10453 | (VRMLALDAVHQ): Likewise. | |
10454 | (VBICQ_M_N): Likewise. | |
10455 | (VCVTAQ_M): Likewise. | |
10456 | (VCVTQ_M_TO_F): Likewise. | |
10457 | (VQRSHRNBQ_N): Likewise. | |
10458 | (VABAVQ): Likewise. | |
10459 | (VSHLCQ): Likewise. | |
10460 | (VRMLALDAVHAQ): Likewise. | |
10461 | (VADDVAQ_P): Likewise. | |
10462 | (VCLZQ_M): Likewise. | |
10463 | (VCMPEQQ_M_N): Likewise. | |
10464 | (VCMPEQQ_M): Likewise. | |
10465 | (VCMPNEQ_M_N): Likewise. | |
10466 | (VCMPNEQ_M): Likewise. | |
10467 | (VDUPQ_M_N): Likewise. | |
10468 | (VMAXVQ_P): Likewise. | |
10469 | (VMINVQ_P): Likewise. | |
10470 | (VMLADAVAQ): Likewise. | |
10471 | (VMLADAVQ_P): Likewise. | |
10472 | (VMLAQ_N): Likewise. | |
10473 | (VMLASQ_N): Likewise. | |
10474 | (VMVNQ_M): Likewise. | |
10475 | (VPSELQ): Likewise. | |
10476 | (VQDMLAHQ_N): Likewise. | |
10477 | (VQRDMLAHQ_N): Likewise. | |
10478 | (VQRDMLASHQ_N): Likewise. | |
10479 | (VQRSHLQ_M_N): Likewise. | |
10480 | (VQSHLQ_M_R): Likewise. | |
10481 | (VREV64Q_M): Likewise. | |
10482 | (VRSHLQ_M_N): Likewise. | |
10483 | (VSHLQ_M_R): Likewise. | |
10484 | (VSLIQ_N): Likewise. | |
10485 | (VSRIQ_N): Likewise. | |
10486 | (VMLALDAVQ_P): Likewise. | |
10487 | (VQMOVNBQ_M): Likewise. | |
10488 | (VMOVLTQ_M): Likewise. | |
10489 | (VMOVNBQ_M): Likewise. | |
10490 | (VRSHRNTQ_N): Likewise. | |
10491 | (VORRQ_M_N): Likewise. | |
10492 | (VREV32Q_M): Likewise. | |
10493 | (VREV16Q_M): Likewise. | |
10494 | (VQRSHRNTQ_N): Likewise. | |
10495 | (VMOVNTQ_M): Likewise. | |
10496 | (VMOVLBQ_M): Likewise. | |
10497 | (VMLALDAVAQ): Likewise. | |
10498 | (VQSHRNBQ_N): Likewise. | |
10499 | (VSHRNBQ_N): Likewise. | |
10500 | (VRSHRNBQ_N): Likewise. | |
10501 | (VMLALDAVXQ_P): Likewise. | |
10502 | (VQMOVNTQ_M): Likewise. | |
10503 | (VMVNQ_M_N): Likewise. | |
10504 | (VQSHRNTQ_N): Likewise. | |
10505 | (VMLALDAVAXQ): Likewise. | |
10506 | (VSHRNTQ_N): Likewise. | |
10507 | (VCVTMQ_M): Likewise. | |
10508 | (VCVTNQ_M): Likewise. | |
10509 | (VCVTPQ_M): Likewise. | |
10510 | (VCVTQ_M_N_FROM_F): Likewise. | |
10511 | (VCVTQ_M_FROM_F): Likewise. | |
10512 | (VRMLALDAVHQ_P): Likewise. | |
10513 | (VADDLVAQ_P): Likewise. | |
10514 | (VABAVQ_P): Likewise. | |
10515 | (VSHLQ_M): Likewise. | |
10516 | (VSRIQ_M_N): Likewise. | |
10517 | (VSUBQ_M): Likewise. | |
10518 | (VCVTQ_M_N_TO_F): Likewise. | |
10519 | (VHSUBQ_M): Likewise. | |
10520 | (VSLIQ_M_N): Likewise. | |
10521 | (VRSHLQ_M): Likewise. | |
10522 | (VMINQ_M): Likewise. | |
10523 | (VMULLBQ_INT_M): Likewise. | |
10524 | (VMULHQ_M): Likewise. | |
10525 | (VMULQ_M): Likewise. | |
10526 | (VHSUBQ_M_N): Likewise. | |
10527 | (VHADDQ_M_N): Likewise. | |
10528 | (VORRQ_M): Likewise. | |
10529 | (VRMULHQ_M): Likewise. | |
10530 | (VQADDQ_M): Likewise. | |
10531 | (VRSHRQ_M_N): Likewise. | |
10532 | (VQSUBQ_M_N): Likewise. | |
10533 | (VADDQ_M): Likewise. | |
10534 | (VORNQ_M): Likewise. | |
10535 | (VRHADDQ_M): Likewise. | |
10536 | (VQSHLQ_M): Likewise. | |
10537 | (VANDQ_M): Likewise. | |
10538 | (VBICQ_M): Likewise. | |
10539 | (VSHLQ_M_N): Likewise. | |
10540 | (VCADDQ_ROT270_M): Likewise. | |
10541 | (VQRSHLQ_M): Likewise. | |
10542 | (VQADDQ_M_N): Likewise. | |
10543 | (VADDQ_M_N): Likewise. | |
10544 | (VMAXQ_M): Likewise. | |
10545 | (VQSUBQ_M): Likewise. | |
10546 | (VMLASQ_M_N): Likewise. | |
10547 | (VMLADAVAQ_P): Likewise. | |
10548 | (VBRSRQ_M_N): Likewise. | |
10549 | (VMULQ_M_N): Likewise. | |
10550 | (VCADDQ_ROT90_M): Likewise. | |
10551 | (VMULLTQ_INT_M): Likewise. | |
10552 | (VEORQ_M): Likewise. | |
10553 | (VSHRQ_M_N): Likewise. | |
10554 | (VSUBQ_M_N): Likewise. | |
10555 | (VHADDQ_M): Likewise. | |
10556 | (VABDQ_M): Likewise. | |
10557 | (VMLAQ_M_N): Likewise. | |
10558 | (VQSHLQ_M_N): Likewise. | |
10559 | (VMLALDAVAQ_P): Likewise. | |
10560 | (VMLALDAVAXQ_P): Likewise. | |
10561 | (VQRSHRNBQ_M_N): Likewise. | |
10562 | (VQRSHRNTQ_M_N): Likewise. | |
10563 | (VQSHRNBQ_M_N): Likewise. | |
10564 | (VQSHRNTQ_M_N): Likewise. | |
10565 | (VRSHRNBQ_M_N): Likewise. | |
10566 | (VRSHRNTQ_M_N): Likewise. | |
10567 | (VSHLLBQ_M_N): Likewise. | |
10568 | (VSHLLTQ_M_N): Likewise. | |
10569 | (VSHRNBQ_M_N): Likewise. | |
10570 | (VSHRNTQ_M_N): Likewise. | |
10571 | (VSTRWSBQ): Likewise. | |
10572 | (VSTRBSOQ): Likewise. | |
10573 | (VSTRBQ): Likewise. | |
10574 | (VLDRBGOQ): Likewise. | |
10575 | (VLDRBQ): Likewise. | |
10576 | (VLDRWGBQ): Likewise. | |
10577 | (VLD1Q): Likewise. | |
10578 | (VLDRHGOQ): Likewise. | |
10579 | (VLDRHGSOQ): Likewise. | |
10580 | (VLDRHQ): Likewise. | |
10581 | (VLDRWQ): Likewise. | |
10582 | (VLDRDGBQ): Likewise. | |
10583 | (VLDRDGOQ): Likewise. | |
10584 | (VLDRDGSOQ): Likewise. | |
10585 | (VLDRWGOQ): Likewise. | |
10586 | (VLDRWGSOQ): Likewise. | |
10587 | (VST1Q): Likewise. | |
10588 | (VSTRHSOQ): Likewise. | |
10589 | (VSTRHSSOQ): Likewise. | |
10590 | (VSTRHQ): Likewise. | |
10591 | (VSTRWQ): Likewise. | |
10592 | (VSTRDSBQ): Likewise. | |
10593 | (VSTRDSOQ): Likewise. | |
10594 | (VSTRDSSOQ): Likewise. | |
10595 | (VSTRWSOQ): Likewise. | |
10596 | (VSTRWSSOQ): Likewise. | |
10597 | (VSTRWSBWBQ): Likewise. | |
10598 | (VLDRWGBWBQ): Likewise. | |
10599 | (VSTRDSBWBQ): Likewise. | |
10600 | (VLDRDGBWBQ): Likewise. | |
10601 | (VADCIQ): Likewise. | |
10602 | (VADCIQ_M): Likewise. | |
10603 | (VSBCQ): Likewise. | |
10604 | (VSBCQ_M): Likewise. | |
10605 | (VSBCIQ): Likewise. | |
10606 | (VSBCIQ_M): Likewise. | |
10607 | (VADCQ): Likewise. | |
10608 | (VADCQ_M): Likewise. | |
10609 | (UQRSHLLQ): Likewise. | |
10610 | (SQRSHRLQ): Likewise. | |
10611 | (VSHLCQ_M): Likewise. | |
10612 | * config/arm/mve.md (MVE_types): Move mode iterator to iterators.md from mve.md. | |
10613 | (MVE_VLD_ST): Likewise. | |
10614 | (MVE_0): Likewise. | |
10615 | (MVE_1): Likewise. | |
10616 | (MVE_3): Likewise. | |
10617 | (MVE_2): Likewise. | |
10618 | (MVE_5): Likewise. | |
10619 | (MVE_6): Likewise. | |
10620 | (MVE_CNVT): Move mode attribute iterator to iterators.md from mve.md. | |
10621 | (MVE_LANES): Likewise. | |
10622 | (MVE_constraint): Likewise. | |
10623 | (MVE_constraint1): Likewise. | |
10624 | (MVE_constraint2): Likewise. | |
10625 | (MVE_constraint3): Likewise. | |
10626 | (MVE_pred): Likewise. | |
10627 | (MVE_pred1): Likewise. | |
10628 | (MVE_pred2): Likewise. | |
10629 | (MVE_pred3): Likewise. | |
10630 | (MVE_B_ELEM): Likewise. | |
10631 | (MVE_H_ELEM): Likewise. | |
10632 | (V_sz_elem1): Likewise. | |
10633 | (V_extr_elem): Likewise. | |
10634 | (earlyclobber_32): Likewise. | |
10635 | (supf): Move int attribute to iterators.md from mve.md. | |
10636 | (mode1): Likewise. | |
10637 | (VCVTQ_TO_F): Move int iterator to iterators.md from mve.md. | |
10638 | (VMVNQ_N): Likewise. | |
10639 | (VREV64Q): Likewise. | |
10640 | (VCVTQ_FROM_F): Likewise. | |
10641 | (VREV16Q): Likewise. | |
10642 | (VCVTAQ): Likewise. | |
10643 | (VMVNQ): Likewise. | |
10644 | (VDUPQ_N): Likewise. | |
10645 | (VCLZQ): Likewise. | |
10646 | (VADDVQ): Likewise. | |
10647 | (VREV32Q): Likewise. | |
10648 | (VMOVLBQ): Likewise. | |
10649 | (VMOVLTQ): Likewise. | |
10650 | (VCVTPQ): Likewise. | |
10651 | (VCVTNQ): Likewise. | |
10652 | (VCVTMQ): Likewise. | |
10653 | (VADDLVQ): Likewise. | |
10654 | (VCTPQ): Likewise. | |
10655 | (VCTPQ_M): Likewise. | |
10656 | (VCVTQ_N_TO_F): Likewise. | |
10657 | (VCREATEQ): Likewise. | |
10658 | (VSHRQ_N): Likewise. | |
10659 | (VCVTQ_N_FROM_F): Likewise. | |
10660 | (VADDLVQ_P): Likewise. | |
10661 | (VCMPNEQ): Likewise. | |
10662 | (VSHLQ): Likewise. | |
10663 | (VABDQ): Likewise. | |
10664 | (VADDQ_N): Likewise. | |
10665 | (VADDVAQ): Likewise. | |
10666 | (VADDVQ_P): Likewise. | |
10667 | (VANDQ): Likewise. | |
10668 | (VBICQ): Likewise. | |
10669 | (VBRSRQ_N): Likewise. | |
10670 | (VCADDQ_ROT270): Likewise. | |
10671 | (VCADDQ_ROT90): Likewise. | |
10672 | (VCMPEQQ): Likewise. | |
10673 | (VCMPEQQ_N): Likewise. | |
10674 | (VCMPNEQ_N): Likewise. | |
10675 | (VEORQ): Likewise. | |
10676 | (VHADDQ): Likewise. | |
10677 | (VHADDQ_N): Likewise. | |
10678 | (VHSUBQ): Likewise. | |
10679 | (VHSUBQ_N): Likewise. | |
10680 | (VMAXQ): Likewise. | |
10681 | (VMAXVQ): Likewise. | |
10682 | (VMINQ): Likewise. | |
10683 | (VMINVQ): Likewise. | |
10684 | (VMLADAVQ): Likewise. | |
10685 | (VMULHQ): Likewise. | |
10686 | (VMULLBQ_INT): Likewise. | |
10687 | (VMULLTQ_INT): Likewise. | |
10688 | (VMULQ): Likewise. | |
10689 | (VMULQ_N): Likewise. | |
10690 | (VORNQ): Likewise. | |
10691 | (VORRQ): Likewise. | |
10692 | (VQADDQ): Likewise. | |
10693 | (VQADDQ_N): Likewise. | |
10694 | (VQRSHLQ): Likewise. | |
10695 | (VQRSHLQ_N): Likewise. | |
10696 | (VQSHLQ): Likewise. | |
10697 | (VQSHLQ_N): Likewise. | |
10698 | (VQSHLQ_R): Likewise. | |
10699 | (VQSUBQ): Likewise. | |
10700 | (VQSUBQ_N): Likewise. | |
10701 | (VRHADDQ): Likewise. | |
10702 | (VRMULHQ): Likewise. | |
10703 | (VRSHLQ): Likewise. | |
10704 | (VRSHLQ_N): Likewise. | |
10705 | (VRSHRQ_N): Likewise. | |
10706 | (VSHLQ_N): Likewise. | |
10707 | (VSHLQ_R): Likewise. | |
10708 | (VSUBQ): Likewise. | |
10709 | (VSUBQ_N): Likewise. | |
10710 | (VADDLVAQ): Likewise. | |
10711 | (VBICQ_N): Likewise. | |
10712 | (VMLALDAVQ): Likewise. | |
10713 | (VMLALDAVXQ): Likewise. | |
10714 | (VMOVNBQ): Likewise. | |
10715 | (VMOVNTQ): Likewise. | |
10716 | (VORRQ_N): Likewise. | |
10717 | (VQMOVNBQ): Likewise. | |
10718 | (VQMOVNTQ): Likewise. | |
10719 | (VSHLLBQ_N): Likewise. | |
10720 | (VSHLLTQ_N): Likewise. | |
10721 | (VRMLALDAVHQ): Likewise. | |
10722 | (VBICQ_M_N): Likewise. | |
10723 | (VCVTAQ_M): Likewise. | |
10724 | (VCVTQ_M_TO_F): Likewise. | |
10725 | (VQRSHRNBQ_N): Likewise. | |
10726 | (VABAVQ): Likewise. | |
10727 | (VSHLCQ): Likewise. | |
10728 | (VRMLALDAVHAQ): Likewise. | |
10729 | (VADDVAQ_P): Likewise. | |
10730 | (VCLZQ_M): Likewise. | |
10731 | (VCMPEQQ_M_N): Likewise. | |
10732 | (VCMPEQQ_M): Likewise. | |
10733 | (VCMPNEQ_M_N): Likewise. | |
10734 | (VCMPNEQ_M): Likewise. | |
10735 | (VDUPQ_M_N): Likewise. | |
10736 | (VMAXVQ_P): Likewise. | |
10737 | (VMINVQ_P): Likewise. | |
10738 | (VMLADAVAQ): Likewise. | |
10739 | (VMLADAVQ_P): Likewise. | |
10740 | (VMLAQ_N): Likewise. | |
10741 | (VMLASQ_N): Likewise. | |
10742 | (VMVNQ_M): Likewise. | |
10743 | (VPSELQ): Likewise. | |
10744 | (VQDMLAHQ_N): Likewise. | |
10745 | (VQRDMLAHQ_N): Likewise. | |
10746 | (VQRDMLASHQ_N): Likewise. | |
10747 | (VQRSHLQ_M_N): Likewise. | |
10748 | (VQSHLQ_M_R): Likewise. | |
10749 | (VREV64Q_M): Likewise. | |
10750 | (VRSHLQ_M_N): Likewise. | |
10751 | (VSHLQ_M_R): Likewise. | |
10752 | (VSLIQ_N): Likewise. | |
10753 | (VSRIQ_N): Likewise. | |
10754 | (VMLALDAVQ_P): Likewise. | |
10755 | (VQMOVNBQ_M): Likewise. | |
10756 | (VMOVLTQ_M): Likewise. | |
10757 | (VMOVNBQ_M): Likewise. | |
10758 | (VRSHRNTQ_N): Likewise. | |
10759 | (VORRQ_M_N): Likewise. | |
10760 | (VREV32Q_M): Likewise. | |
10761 | (VREV16Q_M): Likewise. | |
10762 | (VQRSHRNTQ_N): Likewise. | |
10763 | (VMOVNTQ_M): Likewise. | |
10764 | (VMOVLBQ_M): Likewise. | |
10765 | (VMLALDAVAQ): Likewise. | |
10766 | (VQSHRNBQ_N): Likewise. | |
10767 | (VSHRNBQ_N): Likewise. | |
10768 | (VRSHRNBQ_N): Likewise. | |
10769 | (VMLALDAVXQ_P): Likewise. | |
10770 | (VQMOVNTQ_M): Likewise. | |
10771 | (VMVNQ_M_N): Likewise. | |
10772 | (VQSHRNTQ_N): Likewise. | |
10773 | (VMLALDAVAXQ): Likewise. | |
10774 | (VSHRNTQ_N): Likewise. | |
10775 | (VCVTMQ_M): Likewise. | |
10776 | (VCVTNQ_M): Likewise. | |
10777 | (VCVTPQ_M): Likewise. | |
10778 | (VCVTQ_M_N_FROM_F): Likewise. | |
10779 | (VCVTQ_M_FROM_F): Likewise. | |
10780 | (VRMLALDAVHQ_P): Likewise. | |
10781 | (VADDLVAQ_P): Likewise. | |
10782 | (VABAVQ_P): Likewise. | |
10783 | (VSHLQ_M): Likewise. | |
10784 | (VSRIQ_M_N): Likewise. | |
10785 | (VSUBQ_M): Likewise. | |
10786 | (VCVTQ_M_N_TO_F): Likewise. | |
10787 | (VHSUBQ_M): Likewise. | |
10788 | (VSLIQ_M_N): Likewise. | |
10789 | (VRSHLQ_M): Likewise. | |
10790 | (VMINQ_M): Likewise. | |
10791 | (VMULLBQ_INT_M): Likewise. | |
10792 | (VMULHQ_M): Likewise. | |
10793 | (VMULQ_M): Likewise. | |
10794 | (VHSUBQ_M_N): Likewise. | |
10795 | (VHADDQ_M_N): Likewise. | |
10796 | (VORRQ_M): Likewise. | |
10797 | (VRMULHQ_M): Likewise. | |
10798 | (VQADDQ_M): Likewise. | |
10799 | (VRSHRQ_M_N): Likewise. | |
10800 | (VQSUBQ_M_N): Likewise. | |
10801 | (VADDQ_M): Likewise. | |
10802 | (VORNQ_M): Likewise. | |
10803 | (VRHADDQ_M): Likewise. | |
10804 | (VQSHLQ_M): Likewise. | |
10805 | (VANDQ_M): Likewise. | |
10806 | (VBICQ_M): Likewise. | |
10807 | (VSHLQ_M_N): Likewise. | |
10808 | (VCADDQ_ROT270_M): Likewise. | |
10809 | (VQRSHLQ_M): Likewise. | |
10810 | (VQADDQ_M_N): Likewise. | |
10811 | (VADDQ_M_N): Likewise. | |
10812 | (VMAXQ_M): Likewise. | |
10813 | (VQSUBQ_M): Likewise. | |
10814 | (VMLASQ_M_N): Likewise. | |
10815 | (VMLADAVAQ_P): Likewise. | |
10816 | (VBRSRQ_M_N): Likewise. | |
10817 | (VMULQ_M_N): Likewise. | |
10818 | (VCADDQ_ROT90_M): Likewise. | |
10819 | (VMULLTQ_INT_M): Likewise. | |
10820 | (VEORQ_M): Likewise. | |
10821 | (VSHRQ_M_N): Likewise. | |
10822 | (VSUBQ_M_N): Likewise. | |
10823 | (VHADDQ_M): Likewise. | |
10824 | (VABDQ_M): Likewise. | |
10825 | (VMLAQ_M_N): Likewise. | |
10826 | (VQSHLQ_M_N): Likewise. | |
10827 | (VMLALDAVAQ_P): Likewise. | |
10828 | (VMLALDAVAXQ_P): Likewise. | |
10829 | (VQRSHRNBQ_M_N): Likewise. | |
10830 | (VQRSHRNTQ_M_N): Likewise. | |
10831 | (VQSHRNBQ_M_N): Likewise. | |
10832 | (VQSHRNTQ_M_N): Likewise. | |
10833 | (VRSHRNBQ_M_N): Likewise. | |
10834 | (VRSHRNTQ_M_N): Likewise. | |
10835 | (VSHLLBQ_M_N): Likewise. | |
10836 | (VSHLLTQ_M_N): Likewise. | |
10837 | (VSHRNBQ_M_N): Likewise. | |
10838 | (VSHRNTQ_M_N): Likewise. | |
10839 | (VSTRWSBQ): Likewise. | |
10840 | (VSTRBSOQ): Likewise. | |
10841 | (VSTRBQ): Likewise. | |
10842 | (VLDRBGOQ): Likewise. | |
10843 | (VLDRBQ): Likewise. | |
10844 | (VLDRWGBQ): Likewise. | |
10845 | (VLD1Q): Likewise. | |
10846 | (VLDRHGOQ): Likewise. | |
10847 | (VLDRHGSOQ): Likewise. | |
10848 | (VLDRHQ): Likewise. | |
10849 | (VLDRWQ): Likewise. | |
10850 | (VLDRDGBQ): Likewise. | |
10851 | (VLDRDGOQ): Likewise. | |
10852 | (VLDRDGSOQ): Likewise. | |
10853 | (VLDRWGOQ): Likewise. | |
10854 | (VLDRWGSOQ): Likewise. | |
10855 | (VST1Q): Likewise. | |
10856 | (VSTRHSOQ): Likewise. | |
10857 | (VSTRHSSOQ): Likewise. | |
10858 | (VSTRHQ): Likewise. | |
10859 | (VSTRWQ): Likewise. | |
10860 | (VSTRDSBQ): Likewise. | |
10861 | (VSTRDSOQ): Likewise. | |
10862 | (VSTRDSSOQ): Likewise. | |
10863 | (VSTRWSOQ): Likewise. | |
10864 | (VSTRWSSOQ): Likewise. | |
10865 | (VSTRWSBWBQ): Likewise. | |
10866 | (VLDRWGBWBQ): Likewise. | |
10867 | (VSTRDSBWBQ): Likewise. | |
10868 | (VLDRDGBWBQ): Likewise. | |
10869 | (VADCIQ): Likewise. | |
10870 | (VADCIQ_M): Likewise. | |
10871 | (VSBCQ): Likewise. | |
10872 | (VSBCQ_M): Likewise. | |
10873 | (VSBCIQ): Likewise. | |
10874 | (VSBCIQ_M): Likewise. | |
10875 | (VADCQ): Likewise. | |
10876 | (VADCQ_M): Likewise. | |
10877 | (UQRSHLLQ): Likewise. | |
10878 | (SQRSHRLQ): Likewise. | |
10879 | (VSHLCQ_M): Likewise. | |
10880 | (define_c_enum "unspec"): Move MVE enumerator to unspecs.md from mve.md. | |
10881 | * config/arm/unspecs.md (define_c_enum "unspec"): Move MVE enumerator from | |
10882 | mve.md to unspecs.md. | |
10883 | ||
10884 | 2020-10-06 Martin Liska <mliska@suse.cz> | |
10885 | ||
10886 | * common.opt: Remove -fdbg-cnt-list from deferred options. | |
10887 | * dbgcnt.c (dbg_cnt_set_limit_by_index): Make a copy | |
10888 | to original_limits. | |
10889 | (dbg_cnt_list_all_counters): Print also current counter value | |
10890 | and print to stderr. | |
10891 | * opts-global.c (handle_common_deferred_options): Do not handle | |
10892 | -fdbg-cnt-list. | |
10893 | * opts.c (common_handle_option): Likewise. | |
10894 | * toplev.c (finalize): Handle it after compilation here. | |
10895 | ||
10896 | 2020-10-06 Martin Liska <mliska@suse.cz> | |
10897 | ||
10898 | * dbgcnt.c (dbg_cnt): Report also upper limit. | |
10899 | ||
10900 | 2020-10-06 Tom de Vries <tdevries@suse.de> | |
10901 | ||
10902 | * tracer.c (count_insns): Rename to ... | |
10903 | (analyze_bb): ... this. | |
10904 | (cache_can_duplicate_bb_p, cached_can_duplicate_bb_p): New function. | |
10905 | (ignore_bb_p): Use cached_can_duplicate_bb_p. | |
10906 | (tail_duplicate): Call cache_can_duplicate_bb_p. | |
10907 | ||
10908 | 2020-10-06 Tom de Vries <tdevries@suse.de> | |
10909 | ||
10910 | * tracer.c (can_duplicate_insn_p, can_duplicate_bb_no_insn_iter_p) | |
10911 | (can_duplicate_bb_p): New function, factored out of ... | |
10912 | (ignore_bb_p): ... here. | |
10913 | ||
10914 | 2020-10-06 Jakub Jelinek <jakub@redhat.com> | |
10915 | ||
10916 | PR rtl-optimization/97282 | |
10917 | * tree-ssa-math-opts.c (divmod_candidate_p): Don't return false for | |
10918 | constant op2 if it is not a power of two and the type has precision | |
10919 | larger than HOST_BITS_PER_WIDE_INT or BITS_PER_WORD. | |
10920 | * internal-fn.c (contains_call_div_mod): New function. | |
10921 | (expand_DIVMOD): If last argument is a constant, try to expand it as | |
10922 | TRUNC_DIV_EXPR followed by TRUNC_MOD_EXPR, but if the sequence | |
10923 | contains any calls or {,U}{DIV,MOD} rtxes, throw it away and use | |
10924 | divmod optab or divmod libfunc. | |
10925 | ||
10926 | 2020-10-06 Aldy Hernandez <aldyh@redhat.com> | |
10927 | ||
10928 | * value-range.h (irange_allocator::allocate): Increase | |
10929 | newir storage by one. | |
10930 | ||
10931 | 2020-10-06 Jakub Jelinek <jakub@redhat.com> | |
10932 | ||
10933 | PR middle-end/97289 | |
10934 | * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Only follow | |
10935 | node->alias_target if it is a FUNCTION_DECL. | |
10936 | ||
10937 | 2020-10-06 Joe Ramsay <joe.ramsay@arm.com> | |
10938 | ||
10939 | * config/arm/arm-cpus.in: | |
10940 | (ALL_FPU_INTERNAL): Remove vfp_base. | |
10941 | (VFPv2): Remove vfp_base. | |
10942 | (MVE): Remove vfp_base. | |
10943 | (vfp_base): Redefine as implied bit dependent on MVE or FP | |
10944 | (cortex-m55): Add flags to disable MVE, MVE FP, FP and DSP extensions. | |
10945 | * config/arm/arm.c (arm_configure_build_target): Add implied bits to ISA. | |
10946 | * config/arm/parsecpu.awk: | |
10947 | (gen_isa): Print implied bits and their dependencies to ISA header. | |
10948 | (gen_data): Add parsing for implied feature bits. | |
10949 | ||
10950 | 2020-10-06 Andreas Krebbel <krebbel@linux.ibm.com> | |
10951 | ||
10952 | * doc/invoke.texi: Add z15/arch13 to the list of documented | |
10953 | -march/-mtune options. | |
10954 | ||
10955 | 2020-10-05 Aldy Hernandez <aldyh@redhat.com> | |
10956 | ||
10957 | * value-range.cc (irange::legacy_intersect): Only handle | |
10958 | legacy ranges. | |
10959 | (irange::legacy_union): Same. | |
10960 | (irange::union_): When unioning legacy with non-legacy, | |
10961 | first convert to legacy and do everything in legacy mode. | |
10962 | (irange::intersect): Same, but for intersect. | |
10963 | * range-op.cc (range_tests): Adjust for above changes. | |
10964 | ||
10965 | 2020-10-05 Aldy Hernandez <aldyh@redhat.com> | |
10966 | ||
10967 | * range-op.cc (operator_div::wi_fold): Return varying for | |
10968 | division by zero. | |
10969 | (class operator_rshift): Move class up. | |
10970 | (operator_abs::wi_fold): Return [-MIN,-MIN] for ABS([-MIN,-MIN]). | |
10971 | (operator_tests): Adjust tests. | |
10972 | ||
10973 | 2020-10-05 Tom de Vries <tdevries@suse.de> | |
10974 | ||
10975 | * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_XCHG_*. | |
10976 | ||
10977 | 2020-10-05 Alex Coplan <alex.coplan@arm.com> | |
10978 | ||
10979 | * config/arm/arm-cpus.in (neoverse-v1): Add missing vendor and | |
10980 | part numbers. | |
10981 | ||
10982 | 2020-10-05 Tom de Vries <tdevries@suse.de> | |
10983 | ||
10984 | * tracer.c (ignore_bb_p): Remove incorrect suggestion. | |
10985 | ||
10986 | 2020-10-05 Jakub Jelinek <jakub@redhat.com> | |
10987 | ||
10988 | * opth-gen.awk: Don't emit explicit_mask array if n_target_explicit | |
10989 | is equal to n_target_explicit_mask. | |
10990 | * optc-save-gen.awk: Compute has_target_explicit_mask and if false, | |
10991 | don't emit code iterating over explicit_mask array elements. Stream | |
10992 | also explicit_mask_* target members. | |
10993 | ||
10994 | 2020-10-05 Jakub Jelinek <jakub@redhat.com> | |
10995 | ||
10996 | * gimple-ssa-store-merging.c | |
10997 | (imm_store_chain_info::output_merged_store): Use ~0U instead of ~0 in | |
10998 | unsigned int array initializer. | |
10999 | ||
11000 | 2020-10-05 Tom de Vries <tdevries@suse.de> | |
11001 | ||
11002 | PR fortran/95654 | |
11003 | * tracer.c (ignore_bb_p): Ignore GOMP_SIMT_ENTER_ALLOC, | |
11004 | GOMP_SIMT_VOTE_ANY and GOMP_SIMT_EXIT. | |
11005 | ||
11006 | 2020-10-03 Jakub Jelinek <jakub@redhat.com> | |
11007 | ||
11008 | * opth-gen.awk: For variables referenced in Mask and InverseMask, | |
11009 | don't use the explicit_mask bitmask array, but add separate | |
11010 | explicit_mask_* members with the same types as the variables. | |
11011 | * optc-save-gen.awk: Save, restore, compare and hash the separate | |
11012 | explicit_mask_* members. | |
11013 | ||
11014 | 2020-10-03 Jan Hubicka <hubicka@ucw.cz> | |
11015 | ||
11016 | * ipa-modref-tree.c (test_insert_search_collapse): Update andling | |
11017 | of accesses. | |
11018 | (test_merge): Likewise. | |
11019 | * ipa-modref-tree.h (struct modref_access_node): Add offset, size, | |
11020 | max_size, parm_offset and parm_offset_known. | |
11021 | (modref_access_node::useful_p): Constify. | |
11022 | (modref_access_node::range_info_useful_p): New predicate. | |
11023 | (modref_access_node::operator==): New. | |
11024 | (struct modref_parm_map): New structure. | |
11025 | (modref_tree::merge): Update for racking parameters) | |
11026 | * ipa-modref.c (dump_access): Dump new fields. | |
11027 | (get_access): Fill in new fields. | |
11028 | (merge_call_side_effects): Update handling of parm map. | |
11029 | (write_modref_records): Stream new fields. | |
11030 | (read_modref_records): Stream new fields. | |
11031 | (compute_parm_map): Update for new parm map. | |
11032 | (ipa_merge_modref_summary_after_inlining): Update. | |
11033 | (modref_propagate_in_scc): Update. | |
11034 | * tree-ssa-alias.c (modref_may_conflict): Handle known ranges. | |
11035 | ||
11036 | 2020-10-03 H.J. Lu <hjl.tools@gmail.com> | |
11037 | ||
11038 | PR other/97280 | |
11039 | * doc/extend.texi: Replace roudnevenl with roundevenl | |
11040 | ||
11041 | 2020-10-02 David Edelsohn <dje.gcc@gmail.com> | |
11042 | Andrew MacLeod <amacleod@redhat.com> | |
11043 | ||
11044 | * config/rs6000/rs6000.c: Include ssa.h. Reorder some headers. | |
11045 | * config/rs6000/rs6000-call.c: Same. | |
11046 | ||
11047 | 2020-10-02 Martin Jambor <mjambor@suse.cz> | |
11048 | ||
11049 | * params.opt (ipa-cp-large-unit-insns): New parameter. | |
11050 | * ipa-cp.c (get_max_overall_size): Use the new parameter. | |
11051 | ||
11052 | 2020-10-02 Martin Jambor <mjambor@suse.cz> | |
11053 | ||
11054 | * ipa-cp.c (estimate_local_effects): Add overeall_size to dumped | |
11055 | string. | |
11056 | (decide_about_value): Add dumping new overall_size. | |
11057 | ||
11058 | 2020-10-02 Martin Jambor <mjambor@suse.cz> | |
11059 | ||
11060 | * ipa-fnsummary.h (ipa_freqcounting_predicate): New type. | |
11061 | (ipa_fn_summary): Change the type of loop_iterations and loop_strides | |
11062 | to vectors of ipa_freqcounting_predicate. | |
11063 | (ipa_fn_summary::ipa_fn_summary): Construct the new vectors. | |
11064 | (ipa_call_estimates): New fields loops_with_known_iterations and | |
11065 | loops_with_known_strides. | |
11066 | * ipa-cp.c (hint_time_bonus): Multiply param_ipa_cp_loop_hint_bonus | |
11067 | with the expected frequencies of loops with known iteration count or | |
11068 | stride. | |
11069 | * ipa-fnsummary.c (add_freqcounting_predicate): New function. | |
11070 | (ipa_fn_summary::~ipa_fn_summary): Release the new vectors instead of | |
11071 | just two predicates. | |
11072 | (remap_hint_predicate_after_duplication): Replace with function | |
11073 | remap_freqcounting_preds_after_dup. | |
11074 | (ipa_fn_summary_t::duplicate): Use it or duplicate new vectors. | |
11075 | (ipa_dump_fn_summary): Dump the new vectors. | |
11076 | (analyze_function_body): Compute the loop property vectors. | |
11077 | (ipa_call_context::estimate_size_and_time): Calculate also | |
11078 | loops_with_known_iterations and loops_with_known_strides. Adjusted | |
11079 | dumping accordinly. | |
11080 | (remap_hint_predicate): Replace with function | |
11081 | remap_freqcounting_predicate. | |
11082 | (ipa_merge_fn_summary_after_inlining): Use it. | |
11083 | (inline_read_section): Stream loopcounting vectors instead of two | |
11084 | simple predicates. | |
11085 | (ipa_fn_summary_write): Likewise. | |
11086 | * params.opt (ipa-max-loop-predicates): New parameter. | |
11087 | * doc/invoke.texi (ipa-max-loop-predicates): Document new param. | |
11088 | ||
11089 | 2020-10-02 Martin Jambor <mjambor@suse.cz> | |
11090 | ||
11091 | * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to use | |
11092 | ipa_call_estimates. | |
11093 | (do_estimate_edge_size): Likewise. | |
11094 | (do_estimate_edge_hints): Likewise. | |
11095 | * ipa-fnsummary.h (struct ipa_call_estimates): New type. | |
11096 | (ipa_call_context::estimate_size_and_time): Adjusted declaration. | |
11097 | (estimate_ipcp_clone_size_and_time): Likewise. | |
11098 | * ipa-cp.c (hint_time_bonus): Changed the type of the second argument | |
11099 | to ipa_call_estimates. | |
11100 | (perform_estimation_of_a_value): Adjusted to use ipa_call_estimates. | |
11101 | (estimate_local_effects): Likewise. | |
11102 | * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Adjusted | |
11103 | to return estimates in a single ipa_call_estimates parameter. | |
11104 | (estimate_ipcp_clone_size_and_time): Likewise. | |
11105 | ||
11106 | 2020-10-02 Martin Jambor <mjambor@suse.cz> | |
11107 | ||
11108 | * ipa-fnsummary.h (ipa_cached_call_context): New forward declaration | |
11109 | and class. | |
11110 | (class ipa_call_context): Make friend ipa_cached_call_context. Moved | |
11111 | methods duplicate_from and release to it too. | |
11112 | * ipa-fnsummary.c (ipa_call_context::duplicate_from): Moved to class | |
11113 | ipa_cached_call_context. | |
11114 | (ipa_call_context::release): Likewise, removed the parameter. | |
11115 | * ipa-inline-analysis.c (node_context_cache_entry): Change the type of | |
11116 | ctx to ipa_cached_call_context. | |
11117 | (do_estimate_edge_time): Remove parameter from the call to | |
11118 | ipa_cached_call_context::release. | |
11119 | ||
11120 | 2020-10-02 Martin Jambor <mjambor@suse.cz> | |
11121 | ||
11122 | * ipa-prop.h (ipa_auto_call_arg_values): New type. | |
11123 | (class ipa_call_arg_values): Likewise. | |
11124 | (ipa_get_indirect_edge_target): Replaced vector arguments with | |
11125 | ipa_call_arg_values in declaration. Added an overload for | |
11126 | ipa_auto_call_arg_values. | |
11127 | * ipa-fnsummary.h (ipa_call_context): Removed members m_known_vals, | |
11128 | m_known_contexts, m_known_aggs, duplicate_from, release and equal_to, | |
11129 | new members m_avals, store_to_cache and equivalent_to_p. Adjusted | |
11130 | construcotr arguments. | |
11131 | (estimate_ipcp_clone_size_and_time): Replaced vector arguments | |
11132 | with ipa_auto_call_arg_values in declaration. | |
11133 | (evaluate_properties_for_edge): Likewise. | |
11134 | * ipa-cp.c (ipa_get_indirect_edge_target): Adjusted to work on | |
11135 | ipa_call_arg_values rather than on separate vectors. Added an | |
11136 | overload for ipa_auto_call_arg_values. | |
11137 | (devirtualization_time_bonus): Adjusted to work on | |
11138 | ipa_auto_call_arg_values rather than on separate vectors. | |
11139 | (gather_context_independent_values): Adjusted to work on | |
11140 | ipa_auto_call_arg_values rather than on separate vectors. | |
11141 | (perform_estimation_of_a_value): Likewise. | |
11142 | (estimate_local_effects): Likewise. | |
11143 | (modify_known_vectors_with_val): Adjusted both variants to work on | |
11144 | ipa_auto_call_arg_values and rename them to | |
11145 | copy_known_vectors_add_val. | |
11146 | (decide_about_value): Adjusted to work on ipa_call_arg_values rather | |
11147 | than on separate vectors. | |
11148 | (decide_whether_version_node): Likewise. | |
11149 | * ipa-fnsummary.c (evaluate_conditions_for_known_args): Likewise. | |
11150 | (evaluate_properties_for_edge): Likewise. | |
11151 | (ipa_fn_summary_t::duplicate): Likewise. | |
11152 | (estimate_edge_devirt_benefit): Adjusted to work on | |
11153 | ipa_call_arg_values rather than on separate vectors. | |
11154 | (estimate_edge_size_and_time): Likewise. | |
11155 | (estimate_calls_size_and_time_1): Likewise. | |
11156 | (summarize_calls_size_and_time): Adjusted calls to | |
11157 | estimate_edge_size_and_time. | |
11158 | (estimate_calls_size_and_time): Adjusted to work on | |
11159 | ipa_call_arg_values rather than on separate vectors. | |
11160 | (ipa_call_context::ipa_call_context): Construct from a pointer to | |
11161 | ipa_auto_call_arg_values instead of inividual vectors. | |
11162 | (ipa_call_context::duplicate_from): Adjusted to access vectors within | |
11163 | m_avals. | |
11164 | (ipa_call_context::release): Likewise. | |
11165 | (ipa_call_context::equal_to): Likewise. | |
11166 | (ipa_call_context::estimate_size_and_time): Adjusted to work on | |
11167 | ipa_call_arg_values rather than on separate vectors. | |
11168 | (estimate_ipcp_clone_size_and_time): Adjusted to work with | |
11169 | ipa_auto_call_arg_values rather than on separate vectors. | |
11170 | (ipa_merge_fn_summary_after_inlining): Likewise. Adjusted call to | |
11171 | estimate_edge_size_and_time. | |
11172 | (ipa_update_overall_fn_summary): Adjusted call to | |
11173 | estimate_edge_size_and_time. | |
11174 | * ipa-inline-analysis.c (do_estimate_edge_time): Adjusted to work with | |
11175 | ipa_auto_call_arg_values rather than with separate vectors. | |
11176 | (do_estimate_edge_size): Likewise. | |
11177 | (do_estimate_edge_hints): Likewise. | |
11178 | * ipa-prop.c (ipa_auto_call_arg_values::~ipa_auto_call_arg_values): | |
11179 | New destructor. | |
11180 | ||
11181 | 2020-10-02 Joe Ramsay <joe.ramsay@arm.com> | |
11182 | ||
11183 | * config/arm/arm_mve.h (__arm_vmaxnmavq): Remove coercion of scalar | |
11184 | argument. | |
11185 | (__arm_vmaxnmvq): Likewise. | |
11186 | (__arm_vminnmavq): Likewise. | |
11187 | (__arm_vminnmvq): Likewise. | |
11188 | (__arm_vmaxnmavq_p): Likewise. | |
11189 | (__arm_vmaxnmvq_p): Likewise (and delete duplicate definition). | |
11190 | (__arm_vminnmavq_p): Likewise. | |
11191 | (__arm_vminnmvq_p): Likewise. | |
11192 | (__arm_vmaxavq): Likewise. | |
11193 | (__arm_vmaxavq_p): Likewise. | |
11194 | (__arm_vmaxvq): Likewise. | |
11195 | (__arm_vmaxvq_p): Likewise. | |
11196 | (__arm_vminavq): Likewise. | |
11197 | (__arm_vminavq_p): Likewise. | |
11198 | (__arm_vminvq): Likewise. | |
11199 | (__arm_vminvq_p): Likewise. | |
11200 | ||
11201 | 2020-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11202 | ||
11203 | * config/aarch64/aarch64.c (neoversev1_tunings): Define. | |
11204 | * config/aarch64/aarch64-cores.def (zeus): Use it. | |
11205 | (neoverse-v1): Likewise. | |
11206 | ||
11207 | 2020-10-02 Jan Hubicka <hubicka@ucw.cz> | |
11208 | ||
11209 | * attr-fnspec.h: Update documentation. | |
11210 | (attr_fnsec::return_desc_size): Set to 2 | |
11211 | (attr_fnsec::arg_desc_size): Set to 2 | |
11212 | * builtin-attrs.def (STR1): Update fnspec. | |
11213 | * internal-fn.def (UBSAN_NULL): Update fnspec. | |
11214 | (UBSAN_VPTR): Update fnspec. | |
11215 | (UBSAN_PTR): Update fnspec. | |
11216 | (ASAN_CHECK): Update fnspec. | |
11217 | (GOACC_DIM_SIZE): Remove fnspec. | |
11218 | (GOACC_DIM_POS): Remove fnspec. | |
11219 | * tree-ssa-alias.c (attr_fnspec::verify): Update verification. | |
11220 | ||
11221 | 2020-10-02 Jan Hubicka <jh@suse.cz> | |
11222 | ||
11223 | * attr-fnspec.h: New file. | |
11224 | * calls.c (decl_return_flags): Use attr_fnspec. | |
11225 | * gimple.c (gimple_call_arg_flags): Use attr_fnspec. | |
11226 | (gimple_call_return_flags): Use attr_fnspec. | |
11227 | * tree-into-ssa.c (pass_build_ssa::execute): Use attr_fnspec. | |
11228 | * tree-ssa-alias.c (attr_fnspec::verify): New member fuction. | |
11229 | ||
11230 | 2020-10-02 Jan Hubicka <jh@suse.cz> | |
11231 | ||
11232 | * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Break out from ... | |
11233 | (ao_ref_init_from_ptr_and_size): ... here. | |
11234 | ||
11235 | 2020-10-02 Jan Hubicka <hubicka@ucw.cz> | |
11236 | ||
11237 | * data-streamer-in.c (streamer_read_poly_int64): New function. | |
11238 | * data-streamer-out.c (streamer_write_poly_int64): New function. | |
11239 | * data-streamer.h (streamer_write_poly_int64): Declare. | |
11240 | (streamer_read_poly_int64): Declare. | |
11241 | ||
11242 | 2020-10-02 Richard Sandiford <richard.sandiford@arm.com> | |
11243 | ||
11244 | * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p): | |
11245 | Delete. | |
11246 | * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): Likewise. | |
11247 | * config/aarch64/aarch64-sve.md: Add banner comment describing | |
11248 | how merging predicated FP operations are represented. | |
11249 | (*cond_<SVE_COND_FP_UNARY:optab><mode>_2): Split into... | |
11250 | (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_relaxed): ...this and... | |
11251 | (*cond_<SVE_COND_FP_UNARY:optab><mode>_2_strict): ...this. | |
11252 | (*cond_<SVE_COND_FP_UNARY:optab><mode>_any): Split into... | |
11253 | (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_relaxed): ...this and... | |
11254 | (*cond_<SVE_COND_FP_UNARY:optab><mode>_any_strict): ...this. | |
11255 | (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): Split into... | |
11256 | (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_relaxed): ...this and... | |
11257 | (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2_strict): ...this. | |
11258 | (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Split into... | |
11259 | (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_relaxed): ...this | |
11260 | and... | |
11261 | (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any_strict): ...this. | |
11262 | (*cond_<SVE_COND_FP_BINARY:optab><mode>_2): Split into... | |
11263 | (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_relaxed): ...this and... | |
11264 | (*cond_<SVE_COND_FP_BINARY:optab><mode>_2_strict): ...this. | |
11265 | (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const): Split into... | |
11266 | (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_relaxed): ...this | |
11267 | and... | |
11268 | (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_2_const_strict): ...this. | |
11269 | (*cond_<SVE_COND_FP_BINARY:optab><mode>_3): Split into... | |
11270 | (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_relaxed): ...this and... | |
11271 | (*cond_<SVE_COND_FP_BINARY:optab><mode>_3_strict): ...this. | |
11272 | (*cond_<SVE_COND_FP_BINARY:optab><mode>_any): Split into... | |
11273 | (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_relaxed): ...this and... | |
11274 | (*cond_<SVE_COND_FP_BINARY:optab><mode>_any_strict): ...this. | |
11275 | (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const): Split into... | |
11276 | (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_relaxed): ...this | |
11277 | and... | |
11278 | (*cond_<SVE_COND_FP_BINARY_I1:optab><mode>_any_const_strict): ...this. | |
11279 | (*cond_add<mode>_2_const): Split into... | |
11280 | (*cond_add<mode>_2_const_relaxed): ...this and... | |
11281 | (*cond_add<mode>_2_const_strict): ...this. | |
11282 | (*cond_add<mode>_any_const): Split into... | |
11283 | (*cond_add<mode>_any_const_relaxed): ...this and... | |
11284 | (*cond_add<mode>_any_const_strict): ...this. | |
11285 | (*cond_<SVE_COND_FCADD:optab><mode>_2): Split into... | |
11286 | (*cond_<SVE_COND_FCADD:optab><mode>_2_relaxed): ...this and... | |
11287 | (*cond_<SVE_COND_FCADD:optab><mode>_2_strict): ...this. | |
11288 | (*cond_<SVE_COND_FCADD:optab><mode>_any): Split into... | |
11289 | (*cond_<SVE_COND_FCADD:optab><mode>_any_relaxed): ...this and... | |
11290 | (*cond_<SVE_COND_FCADD:optab><mode>_any_strict): ...this. | |
11291 | (*cond_sub<mode>_3_const): Split into... | |
11292 | (*cond_sub<mode>_3_const_relaxed): ...this and... | |
11293 | (*cond_sub<mode>_3_const_strict): ...this. | |
11294 | (*aarch64_pred_abd<mode>): Split into... | |
11295 | (*aarch64_pred_abd<mode>_relaxed): ...this and... | |
11296 | (*aarch64_pred_abd<mode>_strict): ...this. | |
11297 | (*aarch64_cond_abd<mode>_2): Split into... | |
11298 | (*aarch64_cond_abd<mode>_2_relaxed): ...this and... | |
11299 | (*aarch64_cond_abd<mode>_2_strict): ...this. | |
11300 | (*aarch64_cond_abd<mode>_3): Split into... | |
11301 | (*aarch64_cond_abd<mode>_3_relaxed): ...this and... | |
11302 | (*aarch64_cond_abd<mode>_3_strict): ...this. | |
11303 | (*aarch64_cond_abd<mode>_any): Split into... | |
11304 | (*aarch64_cond_abd<mode>_any_relaxed): ...this and... | |
11305 | (*aarch64_cond_abd<mode>_any_strict): ...this. | |
11306 | (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2): Split into... | |
11307 | (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_relaxed): ...this and... | |
11308 | (*cond_<SVE_COND_FP_TERNARY:optab><mode>_2_strict): ...this. | |
11309 | (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4): Split into... | |
11310 | (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_relaxed): ...this and... | |
11311 | (*cond_<SVE_COND_FP_TERNARY:optab><mode>_4_strict): ...this. | |
11312 | (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any): Split into... | |
11313 | (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_relaxed): ...this and... | |
11314 | (*cond_<SVE_COND_FP_TERNARY:optab><mode>_any_strict): ...this. | |
11315 | (*cond_<SVE_COND_FCMLA:optab><mode>_4): Split into... | |
11316 | (*cond_<SVE_COND_FCMLA:optab><mode>_4_relaxed): ...this and... | |
11317 | (*cond_<SVE_COND_FCMLA:optab><mode>_4_strict): ...this. | |
11318 | (*cond_<SVE_COND_FCMLA:optab><mode>_any): Split into... | |
11319 | (*cond_<SVE_COND_FCMLA:optab><mode>_any_relaxed): ...this and... | |
11320 | (*cond_<SVE_COND_FCMLA:optab><mode>_any_strict): ...this. | |
11321 | (*aarch64_pred_fac<cmp_op><mode>): Split into... | |
11322 | (*aarch64_pred_fac<cmp_op><mode>_relaxed): ...this and... | |
11323 | (*aarch64_pred_fac<cmp_op><mode>_strict): ...this. | |
11324 | (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>): Split | |
11325 | into... | |
11326 | (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_relaxed): | |
11327 | ...this and... | |
11328 | (*cond_<optab>_nontrunc<SVE_FULL_F:mode><SVE_FULL_HSDI:mode>_strict): | |
11329 | ...this. | |
11330 | (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>): Split | |
11331 | into... | |
11332 | (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_relaxed): | |
11333 | ...this and... | |
11334 | (*cond_<optab>_nonextend<SVE_FULL_HSDI:mode><SVE_FULL_F:mode>_strict): | |
11335 | ...this. | |
11336 | * config/aarch64/aarch64-sve2.md | |
11337 | (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>): Split into... | |
11338 | (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_relaxed): ...this and... | |
11339 | (*cond_<SVE2_COND_FP_UNARY_LONG:optab><mode>_strict): ...this. | |
11340 | (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any): Split into... | |
11341 | (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_relaxed): ...this | |
11342 | and... | |
11343 | (*cond_<SVE2_COND_FP_UNARY_NARROWB:optab><mode>_any_strict): ...this. | |
11344 | (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>): Split into... | |
11345 | (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_relaxed): ...this and... | |
11346 | (*cond_<SVE2_COND_INT_UNARY_FP:optab><mode>_strict): ...this. | |
11347 | ||
11348 | 2020-10-02 Richard Sandiford <richard.sandiford@arm.com> | |
11349 | ||
11350 | * config/arm/neon.md (*sub<VDQ:mode>3_neon): Use the new mode macros | |
11351 | for the insn condition. | |
11352 | (sub<VH:mode>3, *mul<VDQW:mode>3_neon): Likewise. | |
11353 | (mul<VDQW:mode>3add<VDQW:mode>_neon): Likewise. | |
11354 | (mul<VH:mode>3add<VH:mode>_neon): Likewise. | |
11355 | (mul<VDQW:mode>3neg<VDQW:mode>add<VDQW:mode>_neon): Likewise. | |
11356 | (fma<VCVTF:mode>4, fma<VH:mode>4, *fmsub<VCVTF:mode>4): Likewise. | |
11357 | (quad_halves_<code>v4sf, reduc_plus_scal_<VD:mode>): Likewise. | |
11358 | (reduc_plus_scal_<VQ:mode>, reduc_smin_scal_<VD:mode>): Likewise. | |
11359 | (reduc_smin_scal_<VQ:mode>, reduc_smax_scal_<VD:mode>): Likewise. | |
11360 | (reduc_smax_scal_<VQ:mode>, mul<VH:mode>3): Likewise. | |
11361 | (neon_vabd<VF:mode>_2, neon_vabd<VF:mode>_3): Likewise. | |
11362 | (fma<VH:mode>4_intrinsic): Delete. | |
11363 | (neon_vadd<VCVTF:mode>): Use the new mode macros to decide which | |
11364 | form of instruction to generate. | |
11365 | (neon_vmla<VDQW:mode>, neon_vmls<VDQW:mode>): Likewise. | |
11366 | (neon_vsub<VCVTF:mode>): Likewise. | |
11367 | (neon_vfma<VH:mode>): Generate the main fma<mode>4 form instead | |
11368 | of using fma<mode>4_intrinsic. | |
11369 | ||
11370 | 2020-10-02 Martin Liska <mliska@suse.cz> | |
11371 | ||
11372 | PR gcov-profile/97193 | |
11373 | * coverage.c (coverage_init): GCDA note files should not be | |
11374 | mangled and should end in output directory. | |
11375 | ||
11376 | 2020-10-02 Jason Merril <jason@redhat.com> | |
11377 | ||
11378 | * gimple.h (gimple_call_operator_delete_p): Rename from | |
11379 | gimple_call_replaceable_operator_delete_p. | |
11380 | * gimple.c (gimple_call_operator_delete_p): Likewise. | |
11381 | * tree.h (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): Remove. | |
11382 | * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Adjust. | |
11383 | (propagate_necessity): Likewise. | |
11384 | (eliminate_unnecessary_stmts): Likewise. | |
11385 | * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise. | |
11386 | ||
11387 | 2020-10-02 Richard Biener <rguenther@suse.de> | |
11388 | ||
11389 | * gimple.h (GF_CALL_FROM_NEW_OR_DELETE): New call flag. | |
11390 | (gimple_call_set_from_new_or_delete): New. | |
11391 | (gimple_call_from_new_or_delete): Likewise. | |
11392 | * gimple.c (gimple_build_call_from_tree): Set | |
11393 | GF_CALL_FROM_NEW_OR_DELETE appropriately. | |
11394 | * ipa-icf-gimple.c (func_checker::compare_gimple_call): | |
11395 | Compare gimple_call_from_new_or_delete. | |
11396 | * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Make | |
11397 | sure to only consider new/delete calls from new or delete | |
11398 | expressions. | |
11399 | (propagate_necessity): Likewise. | |
11400 | (eliminate_unnecessary_stmts): Likewise. | |
11401 | * tree-ssa-structalias.c (find_func_aliases_for_call): | |
11402 | Likewise. | |
11403 | ||
11404 | 2020-10-02 Jason Merril <jason@redhat.com> | |
11405 | ||
11406 | * tree.h (CALL_FROM_NEW_OR_DELETE_P): Move from cp-tree.h. | |
11407 | * tree-core.h: Document new usage of protected_flag. | |
11408 | ||
11409 | 2020-10-02 Aldy Hernandez <aldyh@redhat.com> | |
11410 | ||
11411 | * value-range.h (irange::fits_p): New. | |
11412 | ||
11413 | 2020-10-01 Alan Modra <amodra@gmail.com> | |
11414 | ||
11415 | * config/rs6000/rs6000.c (rs6000_legitimize_address): Use | |
11416 | gen_int_mode for high part of address constant. | |
11417 | ||
11418 | 2020-10-01 Alan Modra <amodra@gmail.com> | |
11419 | ||
11420 | * config/rs6000/rs6000.c (rs6000_linux64_override_options): | |
11421 | Formatting. Correct setting of TARGET_NO_FP_IN_TOC and | |
11422 | TARGET_NO_SUM_IN_TOC. | |
11423 | ||
11424 | 2020-10-01 Alan Modra <amodra@gmail.com> | |
11425 | ||
11426 | * config/rs6000/freebsd64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use | |
11427 | rs6000_linux64_override_options. | |
11428 | * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Break | |
11429 | out to.. | |
11430 | * config/rs6000/rs6000.c (rs6000_linux64_override_options): ..this, | |
11431 | new function. Tweak non-biarch test and clearing of | |
11432 | profile_kernel to work with freebsd64.h. | |
11433 | ||
11434 | 2020-10-01 Martin Liska <mliska@suse.cz> | |
11435 | ||
11436 | * config/rs6000/rs6000-call.c: Include value-range.h. | |
11437 | * config/rs6000/rs6000.c: Likewise. | |
11438 | ||
11439 | 2020-10-01 Tom de Vries <tdevries@suse.de> | |
11440 | ||
11441 | PR target/80845 | |
11442 | * config/nvptx/nvptx.md (define_insn "truncsi<QHIM>2"): Emit mov.u32 | |
11443 | instead of cvt.u32.u32. | |
11444 | ||
11445 | 2020-10-01 Richard Sandiford <richard.sandiford@arm.com> | |
11446 | ||
11447 | PR target/96528 | |
11448 | PR target/97288 | |
11449 | * config/arm/arm-protos.h (arm_expand_vector_compare): Declare. | |
11450 | (arm_expand_vcond): Likewise. | |
11451 | * config/arm/arm.c (arm_expand_vector_compare): New function. | |
11452 | (arm_expand_vcond): Likewise. | |
11453 | * config/arm/neon.md (vec_cmp<VDQW:mode><v_cmp_result>): New pattern. | |
11454 | (vec_cmpu<VDQW:mode><VDQW:mode>): Likewise. | |
11455 | (vcond<VDQW:mode><VDQW:mode>): Require operand 5 to be a register | |
11456 | or zero. Use arm_expand_vcond. | |
11457 | (vcond<V_cvtto><V32:mode>): New pattern. | |
11458 | (vcondu<VDQIW:mode><VDQIW:mode>): Generalize to... | |
11459 | (vcondu<VDQW:mode><v_cmp_result): ...this. Require operand 5 | |
11460 | to be a register or zero. Use arm_expand_vcond. | |
11461 | (vcond_mask_<VDQW:mode><v_cmp_result>): New pattern. | |
11462 | (neon_vc<cmp_op><mode>, neon_vc<cmp_op><mode>_insn): Add "@" marker. | |
11463 | (neon_vbsl<mode>): Likewise. | |
11464 | (neon_vc<cmp_op>u<mode>): Reexpress as... | |
11465 | (@neon_vc<code><mode>): ...this. | |
11466 | ||
11467 | 2020-10-01 Michael Davidsaver <mdavidsaver@gmail.com> | |
11468 | ||
11469 | * config/i386/t-rtems: Change from mtune to march when building | |
11470 | multilibs. The mtune argument tunes or optimizes for a specific | |
11471 | CPU model but does not ensure the generated code is appropriate | |
11472 | for the CPU model. Prior to this patch, i386 compatible code | |
11473 | was always generated but tuned for later models. | |
11474 | ||
11475 | 2020-10-01 Aldy Hernandez <aldyh@redhat.com> | |
11476 | ||
11477 | * builtins.c (compute_objsize): Replace vr_values with range_query. | |
11478 | (get_range): Same. | |
11479 | (gimple_call_alloc_size): Same. | |
11480 | * builtins.h (class vr_values): Remove. | |
11481 | (gimple_call_alloc_size): Replace vr_values with range_query. | |
11482 | * gimple-ssa-sprintf.c (get_int_range): Same. | |
11483 | (struct directive): Pass gimple context to fmtfunc callback. | |
11484 | (directive::set_width): Replace inline with out-of-line version. | |
11485 | (directive::set_precision): Same. | |
11486 | (format_none): New gimple argument. | |
11487 | (format_percent): New gimple argument. | |
11488 | (format_integer): New gimple argument. | |
11489 | (format_floating): New gimple argument. | |
11490 | (get_string_length): Use range_query API. | |
11491 | (format_character): New gimple argument. | |
11492 | (format_string): New gimple argument. | |
11493 | (format_plain): New gimple argument. | |
11494 | (format_directive): New gimple argument. | |
11495 | (parse_directive): Replace vr_values with range_query. | |
11496 | (compute_format_length): Same. | |
11497 | (handle_printf_call): Same. Adjust for range_query API. | |
11498 | * tree-ssa-strlen.c (get_range): Same. | |
11499 | (compare_nonzero_chars): Same. | |
11500 | (get_addr_stridx) Replace vr_values with range_query. | |
11501 | (get_stridx): Same. | |
11502 | (dump_strlen_info): Same. | |
11503 | (get_range_strlen_dynamic): Adjust for range_query API. | |
11504 | (set_strlen_range): Same | |
11505 | (maybe_warn_overflow): Replace vr_values with range_query. | |
11506 | (handle_builtin_strcpy): Same. | |
11507 | (maybe_diag_stxncpy_trunc): Add FIXME comment. | |
11508 | (handle_builtin_memcpy): Replace vr_values with range_query. | |
11509 | (handle_builtin_memset): Same. | |
11510 | (get_len_or_size): Same. | |
11511 | (strxcmp_eqz_result): Same. | |
11512 | (handle_builtin_string_cmp): Same. | |
11513 | (count_nonzero_bytes_addr): Same, plus adjust for range_query API. | |
11514 | (count_nonzero_bytes): Replace vr_values with range_query. | |
11515 | (handle_store): Same. | |
11516 | (strlen_check_and_optimize_call): Same. | |
11517 | (handle_integral_assign): Same. | |
11518 | (check_and_optimize_stmt): Same. | |
11519 | * tree-ssa-strlen.h (class vr_values): Remove. | |
11520 | (get_range): Replace vr_values with range_query. | |
11521 | (get_range_strlen_dynamic): Same. | |
11522 | (handle_printf_call): Same. | |
11523 | ||
11524 | 2020-10-01 Aldy Hernandez <aldyh@redhat.com> | |
11525 | ||
11526 | * gimple-loop-versioning.cc (lv_dom_walker::before_dom_children): | |
11527 | Pass m_range_analyzer instead of get_vr_values. | |
11528 | (loop_versioning::name_prop::get_value): Rename to... | |
11529 | (loop_versioning::name_prop::value_of_expr): ...this. | |
11530 | * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer): | |
11531 | Adjust for evrp_range_analyzer | |
11532 | inheriting from vr_values. | |
11533 | (evrp_range_analyzer::try_find_new_range): Same. | |
11534 | (evrp_range_analyzer::record_ranges_from_incoming_edge): Same. | |
11535 | (evrp_range_analyzer::record_ranges_from_phis): Same. | |
11536 | (evrp_range_analyzer::record_ranges_from_stmt): Same. | |
11537 | (evrp_range_analyzer::push_value_range): Same. | |
11538 | (evrp_range_analyzer::pop_value_range): Same. | |
11539 | * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Inherit from | |
11540 | vr_values. Adjust accordingly. | |
11541 | * gimple-ssa-evrp.c: Adjust for evrp_range_analyzer inheriting from | |
11542 | vr_values. | |
11543 | (evrp_folder::value_of_evrp): Rename from get_value. | |
11544 | * tree-ssa-ccp.c (class ccp_folder): Rename get_value to | |
11545 | value_of_expr. | |
11546 | (ccp_folder::get_value): Rename to... | |
11547 | (ccp_folder::value_of_expr): ...this. | |
11548 | * tree-ssa-copy.c (class copy_folder): Rename get_value to | |
11549 | value_of_expr. | |
11550 | (copy_folder::get_value): Rename to... | |
11551 | (copy_folder::value_of_expr): ...this. | |
11552 | * tree-ssa-dom.c (dom_opt_dom_walker::after_dom_children): Adjust | |
11553 | for evrp_range_analyzer inheriting from vr_values. | |
11554 | (dom_opt_dom_walker::optimize_stmt): Same. | |
11555 | * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in): | |
11556 | Call value_of_* instead of get_value. | |
11557 | (substitute_and_fold_engine::replace_phi_args_in): Same. | |
11558 | (substitute_and_fold_engine::propagate_into_phi_args): Same. | |
11559 | (substitute_and_fold_dom_walker::before_dom_children): Same. | |
11560 | * tree-ssa-propagate.h: Include value-query.h. | |
11561 | (class substitute_and_fold_engine): Inherit from value_query. | |
11562 | * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): | |
11563 | Adjust for evrp_range_analyzer inheriting from vr_values. | |
11564 | * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): | |
11565 | Same. | |
11566 | * tree-vrp.c (class vrp_folder): Same. | |
11567 | (vrp_folder::get_value): Rename to value_of_expr. | |
11568 | * vr-values.c (vr_values::get_lattice_entry): Adjust for | |
11569 | vr_values inheriting from range_query. | |
11570 | (vr_values::range_of_expr): New. | |
11571 | (vr_values::value_of_expr): New. | |
11572 | (vr_values::value_on_edge): New. | |
11573 | (vr_values::value_of_stmt): New. | |
11574 | (simplify_using_ranges::op_with_boolean_value_range_p): Call | |
11575 | get_value_range through query. | |
11576 | (check_for_binary_op_overflow): Rename store to query. | |
11577 | (vr_values::vr_values): Remove vrp_value_range_pool. | |
11578 | (vr_values::~vr_values): Same. | |
11579 | (simplify_using_ranges::get_vr_for_comparison): Call get_value_range | |
11580 | through query. | |
11581 | (simplify_using_ranges::compare_names): Same. | |
11582 | (simplify_using_ranges::vrp_evaluate_conditional): Same. | |
11583 | (simplify_using_ranges::vrp_visit_cond_stmt): Same. | |
11584 | (simplify_using_ranges::simplify_abs_using_ranges): Same. | |
11585 | (simplify_using_ranges::simplify_cond_using_ranges_1): Same. | |
11586 | (simplify_cond_using_ranges_2): Same. | |
11587 | (simplify_using_ranges::simplify_switch_using_ranges): Same. | |
11588 | (simplify_using_ranges::two_valued_val_range_p): Same. | |
11589 | (simplify_using_ranges::simplify_using_ranges): Rename store to query. | |
11590 | (simplify_using_ranges::simplify): Assert that we have a query. | |
11591 | * vr-values.h (class range_query): Remove. | |
11592 | (class simplify_using_ranges): Remove inheritance of range_query. | |
11593 | (class vr_values): Add virtuals for range_of_expr, value_of_expr, | |
11594 | value_on_edge, value_of_stmt, and get_value_range. | |
11595 | Call range_query allocator instead of using vrp_value_range_pool. | |
11596 | Remove vrp_value_range_pool. | |
11597 | (simplify_using_ranges::get_value_range): Remove. | |
11598 | ||
11599 | 2020-10-01 Richard Biener <rguenther@suse.de> | |
11600 | ||
11601 | PR tree-optimization/97236 | |
11602 | * tree-vect-stmts.c (get_group_load_store_type): Keep | |
11603 | VMAT_ELEMENTWISE for single-element vectors. | |
11604 | ||
11605 | 2020-10-01 Jan Hubicka <jh@suse.cz> | |
11606 | ||
11607 | * ipa-modref.c (compute_parm_map): Be ready for callee_pi to be NULL. | |
11608 | ||
11609 | 2020-10-01 Jan Hubicka <jh@suse.cz> | |
11610 | ||
11611 | PR ipa/97244 | |
11612 | * ipa-fnsummary.c (pass_free_fnsummary::execute): Free | |
11613 | also indirect inlining datastructure. | |
11614 | * ipa-modref.c (pass_ipa_modref::execute): Do not free them here. | |
11615 | * ipa-prop.c (ipa_free_all_node_params): Do not crash when info does | |
11616 | not exist. | |
11617 | (ipa_unregister_cgraph_hooks): Likewise. | |
11618 | ||
11619 | 2020-10-01 Jan Hubicka <jh@suse.cz> | |
11620 | ||
11621 | * internal-fn.c (DEF_INTERNAL_FN): Fix handling of fnspec | |
11622 | ||
11623 | 2020-10-01 Aldy Hernandez <aldyh@redhat.com> | |
11624 | ||
11625 | * Makefile.in: Add value-query.o. | |
11626 | * value-query.cc: New file. | |
11627 | * value-query.h: New file. | |
11628 | ||
11629 | 2020-10-01 Alex Coplan <alex.coplan@arm.com> | |
11630 | ||
11631 | * config/arm/arm-cpus.in: Fix ordering, move Neoverse N2 down. | |
11632 | * config/arm/arm-tables.opt: Regenerate. | |
11633 | * config/arm/arm-tune.md: Regenerate. | |
11634 | ||
11635 | 2020-10-01 Jakub Jelinek <jakub@redhat.com> | |
11636 | ||
11637 | * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use | |
11638 | TARGET_EXPR instead of MODIFY_EXPR for the first assignments to | |
11639 | fenv_var and old_fpc. Formatting fixes. | |
11640 | ||
11641 | 2020-10-01 Richard Biener <rguenther@suse.de> | |
11642 | ||
11643 | * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle | |
11644 | VIEW_CONVERT_EXPR. | |
11645 | ||
11646 | 2020-10-01 Florian Weimer <fweimer@redhat.com> | |
11647 | ||
11648 | PR target/97250 | |
11649 | * config/i386/i386.h (PTA_NO_TUNE, PTA_X86_64_BASELINE) | |
11650 | (PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4): New. | |
11651 | * common/config/i386/i386-common.c (processor_alias_table): | |
11652 | Add "x86-64-v2", "x86-64-v3", "x86-64-v4". | |
11653 | * config/i386/i386-options.c (ix86_option_override_internal): | |
11654 | Handle new PTA_NO_TUNE processor table entries. | |
11655 | * doc/invoke.texi (x86 Options): Document new -march values. | |
11656 | ||
11657 | 2020-10-01 Alan Modra <amodra@gmail.com> | |
11658 | ||
11659 | * config/rs6000/ppc-asm.h: Support __PCREL__ code. | |
11660 | ||
11661 | 2020-10-01 Alan Modra <amodra@gmail.com> | |
11662 | ||
11663 | * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't | |
11664 | set -mcmodel=small for -mno-minimal-toc when pcrel. | |
11665 | ||
11666 | 2020-09-30 Martin Sebor <msebor@redhat.com> | |
11667 | ||
11668 | PR middle-end/97189 | |
11669 | * attribs.c (attr_access::array_as_string): Avoid assuming a VLA | |
11670 | access specification string contains a closing bracket. | |
11671 | ||
11672 | 2020-09-30 Martin Sebor <msebor@redhat.com> | |
11673 | ||
11674 | PR c/97206 | |
11675 | * attribs.c (attr_access::array_as_string): Avoid modifying a shared | |
11676 | type in place and use build_type_attribute_qual_variant instead. | |
11677 | ||
11678 | 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
11679 | ||
11680 | * config/arm/arm-cpus.in: Add Cortex-A78 and Cortex-A78AE cores. | |
11681 | * config/arm/arm-tables.opt: Regenerate. | |
11682 | * config/arm/arm-tune.md: Regenerate. | |
11683 | * doc/invoke.texi: Update docs. | |
11684 | ||
11685 | 2020-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
11686 | ||
11687 | * config/aarch64/aarch64-cores.def: Add Cortex-A78 and Cortex-A78AE cores. | |
11688 | * config/aarch64/aarch64-tune.md: Regenerate. | |
11689 | * doc/invoke.texi: Add -mtune=cortex-a78 and -mtune=cortex-a78ae. | |
11690 | ||
11691 | 2020-09-30 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
11692 | ||
11693 | PR target/96795 | |
11694 | * config/arm/arm_mve.h (__ARM_mve_coerce2): Define. | |
11695 | (__arm_vaddq): Correct the scalar argument. | |
11696 | (__arm_vaddq_m): Likewise. | |
11697 | (__arm_vaddq_x): Likewise. | |
11698 | (__arm_vcmpeqq_m): Likewise. | |
11699 | (__arm_vcmpeqq): Likewise. | |
11700 | (__arm_vcmpgeq_m): Likewise. | |
11701 | (__arm_vcmpgeq): Likewise. | |
11702 | (__arm_vcmpgtq_m): Likewise. | |
11703 | (__arm_vcmpgtq): Likewise. | |
11704 | (__arm_vcmpleq_m): Likewise. | |
11705 | (__arm_vcmpleq): Likewise. | |
11706 | (__arm_vcmpltq_m): Likewise. | |
11707 | (__arm_vcmpltq): Likewise. | |
11708 | (__arm_vcmpneq_m): Likewise. | |
11709 | (__arm_vcmpneq): Likewise. | |
11710 | (__arm_vfmaq_m): Likewise. | |
11711 | (__arm_vfmaq): Likewise. | |
11712 | (__arm_vfmasq_m): Likewise. | |
11713 | (__arm_vfmasq): Likewise. | |
11714 | (__arm_vmaxnmavq): Likewise. | |
11715 | (__arm_vmaxnmavq_p): Likewise. | |
11716 | (__arm_vmaxnmvq): Likewise. | |
11717 | (__arm_vmaxnmvq_p): Likewise. | |
11718 | (__arm_vminnmavq): Likewise. | |
11719 | (__arm_vminnmavq_p): Likewise. | |
11720 | (__arm_vminnmvq): Likewise. | |
11721 | (__arm_vminnmvq_p): Likewise. | |
11722 | (__arm_vmulq_m): Likewise. | |
11723 | (__arm_vmulq): Likewise. | |
11724 | (__arm_vmulq_x): Likewise. | |
11725 | (__arm_vsetq_lane): Likewise. | |
11726 | (__arm_vsubq_m): Likewise. | |
11727 | (__arm_vsubq): Likewise. | |
11728 | (__arm_vsubq_x): Likewise. | |
11729 | ||
11730 | 2020-09-30 Joel Hutton <joel.hutton@arm.com> | |
11731 | ||
11732 | PR target/96837 | |
11733 | * tree-vect-slp.c (vect_analyze_slp): Do not call | |
11734 | vect_attempt_slp_rearrange_stmts for vector constructors. | |
11735 | ||
11736 | 2020-09-30 Tamar Christina <tamar.christina@arm.com> | |
11737 | ||
11738 | * tree-vectorizer.h (SLP_TREE_REF_COUNT): New. | |
11739 | * tree-vect-slp.c (_slp_tree::_slp_tree, _slp_tree::~_slp_tree, | |
11740 | vect_free_slp_tree, vect_build_slp_tree, vect_print_slp_tree, | |
11741 | slp_copy_subtree, vect_attempt_slp_rearrange_stmts): Use it. | |
11742 | ||
11743 | 2020-09-30 Tobias Burnus <tobias@codesourcery.com> | |
11744 | ||
11745 | * omp-offload.c (omp_discover_implicit_declare_target): Also | |
11746 | handled nested functions. | |
11747 | ||
11748 | 2020-09-30 Tobias Burnus <tobias@codesourcery.com> | |
11749 | Tom de Vries <tdevries@suse.de> | |
11750 | ||
11751 | * builtins.c (expand_builtin_cexpi, fold_builtin_sincos): Update | |
11752 | targetm.libc_has_function call. | |
11753 | * builtins.def (DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C11_BUILTIN): | |
11754 | (DEF_C2X_BUILTIN, DEF_C99_COMPL_BUILTIN, DEF_C99_C90RES_BUILTIN): | |
11755 | Same. | |
11756 | * config/darwin-protos.h (darwin_libc_has_function): Update prototype. | |
11757 | * config/darwin.c (darwin_libc_has_function): Add arg. | |
11758 | * config/linux-protos.h (linux_libc_has_function): Update prototype. | |
11759 | * config/linux.c (linux_libc_has_function): Add arg. | |
11760 | * config/i386/i386.c (ix86_libc_has_function): Update | |
11761 | targetm.libc_has_function call. | |
11762 | * config/nvptx/nvptx.c (nvptx_libc_has_function): New function. | |
11763 | (TARGET_LIBC_HAS_FUNCTION): Redefine to nvptx_libc_has_function. | |
11764 | * convert.c (convert_to_integer_1): Update targetm.libc_has_function | |
11765 | call. | |
11766 | * match.pd: Same. | |
11767 | * target.def (libc_has_function): Add arg. | |
11768 | * doc/tm.texi: Regenerate. | |
11769 | * targhooks.c (default_libc_has_function, gnu_libc_has_function) | |
11770 | (no_c99_libc_has_function): Add arg. | |
11771 | * targhooks.h (default_libc_has_function, no_c99_libc_has_function) | |
11772 | (gnu_libc_has_function): Update prototype. | |
11773 | * tree-ssa-math-opts.c (pass_cse_sincos::execute): Update | |
11774 | targetm.libc_has_function call. | |
11775 | ||
11776 | 2020-09-30 H.J. Lu <hjl.tools@gmail.com> | |
11777 | ||
11778 | PR target/97184 | |
11779 | * config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ... | |
11780 | (UNSPEC_MOVDIRI): This. | |
11781 | (UNSPECV_MOVDIR64B): Renamed to ... | |
11782 | (UNSPEC_MOVDIR64B): This. | |
11783 | (movdiri<mode>): Use SET operation. | |
11784 | (@movdir64b_<mode>): Likewise. | |
11785 | ||
11786 | 2020-09-30 Florian Weimer <fweimer@redhat.com> | |
11787 | ||
11788 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
11789 | __LAHF_SAHF__ and __MOVBE__ based on ISA flags. | |
11790 | ||
11791 | 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11792 | ||
11793 | PR target/97150 | |
11794 | * config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument | |
11795 | signed. | |
11796 | (vqrshlh_u16): Likewise. | |
11797 | (vqrshls_u32): Likewise. | |
11798 | (vqrshld_u64): Likewise. | |
11799 | (vqshlb_u8): Likewise. | |
11800 | (vqshlh_u16): Likewise. | |
11801 | (vqshls_u32): Likewise. | |
11802 | (vqshld_u64): Likewise. | |
11803 | (vshld_u64): Likewise. | |
11804 | ||
11805 | 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11806 | ||
11807 | PR target/96313 | |
11808 | * config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS | |
11809 | qualifiers. | |
11810 | * config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call. | |
11811 | Remove unnecessary result cast. | |
11812 | (vqmovun_s32): Likewise. | |
11813 | (vqmovun_s64): Likewise. | |
11814 | (vqmovunh_s16): Likewise. Fix return type. | |
11815 | (vqmovuns_s32): Likewise. | |
11816 | (vqmovund_s64): Likewise. | |
11817 | ||
11818 | 2020-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
11819 | ||
11820 | * config/aarch64/aarch64.c (aarch64_split_128bit_move_p): Add a | |
11821 | function comment. Tighten check for FP moves. | |
11822 | * config/aarch64/aarch64.md (*movti_aarch64): Add a w<-Z alternative. | |
11823 | (*movtf_aarch64): Handle r<-Y like r<-r. Remove unnecessary | |
11824 | earlyclobber. Change splitter predicate from aarch64_reg_or_imm | |
11825 | to nonmemory_operand. | |
11826 | ||
11827 | 2020-09-30 Alex Coplan <alex.coplan@arm.com> | |
11828 | ||
11829 | PR target/97251 | |
11830 | * config/arm/arm.md (movsf): Relax TARGET_HARD_FLOAT to | |
11831 | TARGET_VFP_BASE. | |
11832 | (movdf): Likewise. | |
11833 | * config/arm/vfp.md (no_literal_pool_df_immediate): Likewise. | |
11834 | (no_literal_pool_sf_immediate): Likewise. | |
11835 | ||
11836 | 2020-09-30 Alan Modra <amodra@gmail.com> | |
11837 | ||
11838 | * configure.ac (--with-long-double-format): Typo fix. | |
11839 | * configure: Regenerate. | |
11840 | ||
11841 | 2020-09-30 Alan Modra <amodra@gmail.com> | |
11842 | ||
11843 | * config/rs6000/rs6000.md (@tablejump<mode>_normal): Don't use | |
11844 | non-existent operands[]. | |
11845 | (@tablejump<mode>_nospec): Likewise. | |
11846 | ||
11847 | 2020-09-30 Segher Boessenkool <segher@kernel.crashing.org> | |
11848 | ||
11849 | * config/rs6000/rs6000.md (tablejump): Simplify. | |
11850 | (tablejumpsi): Merge this ... | |
11851 | (tablejumpdi): ... and this ... | |
11852 | (@tablejump<mode>_normal): ... into this. | |
11853 | (tablejumpsi_nospec): Merge this ... | |
11854 | (tablejumpdi_nospec): ... and this ... | |
11855 | (@tablejump<mode>_nospec): ... into this. | |
11856 | (*tablejump<mode>_internal1): Delete, rename to ... | |
11857 | (@tablejump<mode>_insn_normal): ... this. | |
11858 | (*tablejump<mode>_internal1_nospec): Delete, rename to ... | |
11859 | (@tablejump<mode>_insn_nospec): ... this. | |
11860 | ||
11861 | 2020-09-29 Martin Sebor <msebor@redhat.com> | |
11862 | ||
11863 | PR middle-end/97188 | |
11864 | * calls.c (maybe_warn_rdwr_sizes): Simplify warning messages. | |
11865 | Correct handling of VLA argumments. | |
11866 | ||
11867 | 2020-09-29 Marek Polacek <polacek@redhat.com> | |
11868 | ||
11869 | PR c++/94695 | |
11870 | * doc/invoke.texi: Document -Wrange-loop-construct. | |
11871 | ||
11872 | 2020-09-29 Jim Wilson <jimw@sifive.com> | |
11873 | ||
11874 | PR bootstrap/97183 | |
11875 | * configure.ac (gcc_cv_header_zstd_h): Check ZSTD_VERISON_NUMBER. | |
11876 | * configure: Regenerated. | |
11877 | ||
11878 | 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
11879 | ||
11880 | * config/arm/arm-cpus.in: Add Cortex-X1 core. | |
11881 | * config/arm/arm-tables.opt: Regenerate. | |
11882 | * config/arm/arm-tune.md: Regenerate. | |
11883 | * doc/invoke.texi: Update docs. | |
11884 | ||
11885 | 2020-09-29 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
11886 | ||
11887 | * config/aarch64/aarch64-cores.def: Add Cortex-X1 Arm core. | |
11888 | * config/aarch64/aarch64-tune.md: Regenerate. | |
11889 | * doc/invoke.texi: Add -mtune=cortex-x1 docs. | |
11890 | ||
11891 | 2020-09-29 H.J. Lu <hjl.tools@gmail.com> | |
11892 | ||
11893 | PR target/97247 | |
11894 | * config/i386/enqcmdintrin.h: Replace <enqcmdntrin.h> with | |
11895 | <enqcmdintrin.h>. Replace _ENQCMDNTRIN_H_INCLUDED with | |
11896 | _ENQCMDINTRIN_H_INCLUDED. | |
11897 | ||
11898 | 2020-09-29 Richard Biener <rguenther@suse.de> | |
11899 | ||
11900 | PR tree-optimization/97241 | |
11901 | * tree-vect-loop.c (vectorizable_reduction): Move finding | |
11902 | the SLP node for the reduction stmt to a better place. | |
11903 | ||
11904 | 2020-09-29 Richard Biener <rguenther@suse.de> | |
11905 | ||
11906 | * tree-vect-slp.c (vect_analyze_slp): Move SLP reduction | |
11907 | re-arrangement and SLP graph load gathering... | |
11908 | (vect_optimize_slp): ... here. | |
11909 | * tree-vectorizer.h (vec_info::slp_loads): Remove. | |
11910 | ||
11911 | 2020-09-29 Hongyu Wang <hongyu.wang@intel.com> | |
11912 | ||
11913 | PR target/97231 | |
11914 | * config/i386/amxbf16intrin.h: Add FSF copyright notes. | |
11915 | * config/i386/amxint8intrin.h: Ditto. | |
11916 | * config/i386/amxtileintrin.h: Ditto. | |
11917 | * config/i386/avx512vp2intersectintrin.h: Ditto. | |
11918 | * config/i386/avx512vp2intersectvlintrin.h: Ditto. | |
11919 | * config/i386/pconfigintrin.h: Ditto. | |
11920 | * config/i386/tsxldtrkintrin.h: Ditto. | |
11921 | * config/i386/wbnoinvdintrin.h: Ditto. | |
11922 | ||
11923 | 2020-09-29 Richard Biener <rguenther@suse.de> | |
11924 | ||
11925 | PR tree-optimization/97238 | |
11926 | * tree-ssa-reassoc.c (ovce_extract_ops): Fix typo. | |
11927 | ||
11928 | 2020-09-29 Richard Sandiford <richard.sandiford@arm.com> | |
11929 | ||
11930 | * config/arm/arm.h (ARM_HAVE_NEON_V8QI_ARITH, ARM_HAVE_NEON_V4HI_ARITH) | |
11931 | (ARM_HAVE_NEON_V2SI_ARITH, ARM_HAVE_NEON_V16QI_ARITH): New macros. | |
11932 | (ARM_HAVE_NEON_V8HI_ARITH, ARM_HAVE_NEON_V4SI_ARITH): Likewise. | |
11933 | (ARM_HAVE_NEON_V2DI_ARITH, ARM_HAVE_NEON_V4HF_ARITH): Likewise. | |
11934 | (ARM_HAVE_NEON_V8HF_ARITH, ARM_HAVE_NEON_V2SF_ARITH): Likewise. | |
11935 | (ARM_HAVE_NEON_V4SF_ARITH, ARM_HAVE_V8QI_ARITH, ARM_HAVE_V4HI_ARITH) | |
11936 | (ARM_HAVE_V2SI_ARITH, ARM_HAVE_V16QI_ARITH, ARM_HAVE_V8HI_ARITH) | |
11937 | (ARM_HAVE_V4SI_ARITH, ARM_HAVE_V2DI_ARITH, ARM_HAVE_V4HF_ARITH) | |
11938 | (ARM_HAVE_V2SF_ARITH, ARM_HAVE_V8HF_ARITH, ARM_HAVE_V4SF_ARITH): | |
11939 | Likewise. | |
11940 | * config/arm/iterators.md (VNIM, VNINOTM): Delete. | |
11941 | * config/arm/vec-common.md (add<VNIM:mode>3, addv8hf3) | |
11942 | (add<VNINOTM:mode>3): Replace with... | |
11943 | (add<VDQ:mode>3): ...this new expander. | |
11944 | * config/arm/neon.md (*add<VDQ:mode>3_neon): Use the new | |
11945 | ARM_HAVE_NEON_<MODE>_ARITH macros as the C condition. | |
11946 | (addv8hf3_neon, addv4hf3, add<VFH:mode>3_fp16): Delete in | |
11947 | favor of the above. | |
11948 | (neon_vadd<VH:mode>): Use gen_add<mode>3 instead of | |
11949 | gen_add<mode>3_fp16. | |
11950 | ||
11951 | 2020-09-29 Kito Cheng <kito.cheng@sifive.com> | |
11952 | ||
11953 | * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define | |
11954 | __riscv_cmodel_medany when PIC mode. | |
11955 | ||
11956 | 2020-09-29 Alex Coplan <alex.coplan@arm.com> | |
11957 | ||
11958 | * config/aarch64/aarch64-cores.def: Move neoverse-n2 after saphira. | |
11959 | * config/aarch64/aarch64-tune.md: Regenerate. | |
11960 | ||
11961 | 2020-09-29 Martin Liska <mliska@suse.cz> | |
11962 | ||
11963 | PR tree-optimization/96979 | |
11964 | * tree-switch-conversion.c (jump_table_cluster::can_be_handled): | |
11965 | Make a fast bail out. | |
11966 | (bit_test_cluster::can_be_handled): Likewise here. | |
11967 | * tree-switch-conversion.h (get_range): Use wi::to_wide instead | |
11968 | of a folding. | |
11969 | ||
11970 | 2020-09-29 Martin Liska <mliska@suse.cz> | |
11971 | ||
11972 | Revert: | |
11973 | 2020-09-22 Martin Liska <mliska@suse.cz> | |
11974 | ||
11975 | PR tree-optimization/96979 | |
11976 | * doc/invoke.texi: Document new param max-switch-clustering-attempts. | |
11977 | * params.opt: Add new parameter. | |
11978 | * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): | |
11979 | Limit number of attempts. | |
11980 | (bit_test_cluster::find_bit_tests): Likewise. | |
11981 | ||
11982 | 2020-09-28 Aldy Hernandez <aldyh@redhat.com> | |
11983 | ||
11984 | * value-range.h (class irange): Add irange_allocator friend. | |
11985 | (class irange_allocator): New. | |
11986 | ||
11987 | 2020-09-28 Tobias Burnus <tobias@codesourcery.com> | |
11988 | ||
11989 | PR middle-end/96390 | |
11990 | * omp-offload.c (omp_discover_declare_target_tgt_fn_r): Handle | |
11991 | alias nodes. | |
11992 | ||
11993 | 2020-09-28 Paul A. Clarke <pc@us.ibm.com> | |
11994 | ||
11995 | * config/rs6000/smmintrin.h (_mm_insert_epi8): New. | |
11996 | (_mm_insert_epi32): New. | |
11997 | (_mm_insert_epi64): New. | |
11998 | ||
11999 | 2020-09-28 liuhongt <hongtao.liu@intel.com> | |
12000 | ||
12001 | * common/config/i386/i386-common.c (OPTION_MASK_ISA2_AMX_TILE_SET, | |
12002 | OPTION_MASK_ISA2_AMX_INT8_SET, OPTION_MASK_ISA2_AMX_BF16_SET, | |
12003 | OPTION_MASK_ISA2_AMX_TILE_UNSET, OPTION_MASK_ISA2_AMX_INT8_UNSET, | |
12004 | OPTION_MASK_ISA2_AMX_BF16_UNSET, OPTION_MASK_ISA2_XSAVE_UNSET): | |
12005 | New marcos. | |
12006 | (ix86_handle_option): Hanlde -mamx-tile, -mamx-int8, -mamx-bf16. | |
12007 | * common/config/i386/i386-cpuinfo.h (processor_types): Add | |
12008 | FEATURE_AMX_TILE, FEATURE_AMX_INT8, FEATURE_AMX_BF16. | |
12009 | * common/config/i386/cpuinfo.h (XSTATE_TILECFG, | |
12010 | XSTATE_TILEDATA, XCR_AMX_ENABLED_MASK): New macro. | |
12011 | (get_available_features): Enable AMX features only if | |
12012 | their states are suoorited by OSXSAVE. | |
12013 | * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY | |
12014 | for amx-tile, amx-int8, amx-bf16. | |
12015 | * config.gcc: Add amxtileintrin.h, amxint8intrin.h, | |
12016 | amxbf16intrin.h to extra headers. | |
12017 | * config/i386/amxbf16intrin.h: New file. | |
12018 | * config/i386/amxint8intrin.h: Ditto. | |
12019 | * config/i386/amxtileintrin.h: Ditto. | |
12020 | * config/i386/cpuid.h (bit_AMX_BF16, bit_AMX_TILE, bit_AMX_INT8): | |
12021 | New macro. | |
12022 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
12023 | __AMX_TILE__, __AMX_INT8__, AMX_BF16__. | |
12024 | * config/i386/i386-options.c (ix86_target_string): Add | |
12025 | -mamx-tile, -mamx-int8, -mamx-bf16. | |
12026 | (ix86_option_override_internal): Handle AMX-TILE, | |
12027 | AMX-INT8, AMX-BF16. | |
12028 | * config/i386/i386.h (TARGET_AMX_TILE, TARGET_AMX_TILE_P, | |
12029 | TARGET_AMX_INT8, TARGET_AMX_INT8_P, TARGET_AMX_BF16_P, | |
12030 | PTA_AMX_TILE, PTA_AMX_INT8, PTA_AMX_BF16): New macros. | |
12031 | * config/i386/i386.opt: Add -mamx-tile, -mamx-int8, -mamx-bf16. | |
12032 | * config/i386/immintrin.h: Include amxtileintrin.h, | |
12033 | amxint8intrin.h, amxbf16intrin.h. | |
12034 | * doc/invoke.texi: Document -mamx-tile, -mamx-int8, -mamx-bf16. | |
12035 | * doc/extend.texi: Document amx-tile, amx-int8, amx-bf16. | |
12036 | * doc/sourcebuild.texi ((Effective-Target Keywords, Other | |
12037 | hardware attributes): Document amx_int8, amx_tile, amx_bf16. | |
12038 | ||
12039 | 2020-09-28 Andrea Corallo <andrea.corallo@arm.com> | |
12040 | ||
12041 | * config/aarch64/aarch64-builtins.c | |
12042 | (aarch64_general_expand_builtin): Do not alter value on a | |
12043 | force_reg returned rtx. | |
12044 | ||
12045 | 2020-09-28 Eric Botcazou <ebotcazou@adacore.com> | |
12046 | ||
12047 | * tree-eh.c (lower_try_finally_dup_block): Revert latest change. | |
12048 | ||
12049 | 2020-09-27 Jan Hubicka <jh@suse.cz> | |
12050 | ||
12051 | * ipa-modref.c (modref_summary::useful_p): Fix testing of stores. | |
12052 | ||
12053 | 2020-09-27 Jakub Jelinek <jakub@redhat.com> | |
12054 | ||
12055 | PR middle-end/97073 | |
12056 | * optabs.c (expand_binop, expand_absneg_bit, expand_unop, | |
12057 | expand_copysign_bit): Check reg_overlap_mentioned_p between target | |
12058 | and operand(s) and if it returns true, force a pseudo as target. | |
12059 | ||
12060 | 2020-09-27 Xionghu Luo <luoxhu@linux.ibm.com> | |
12061 | ||
12062 | * gimple-isel.cc (gimple_expand_vec_set_expr): New function. | |
12063 | (gimple_expand_vec_cond_exprs): Rename to ... | |
12064 | (gimple_expand_vec_exprs): ... this and call | |
12065 | gimple_expand_vec_set_expr. | |
12066 | * internal-fn.c (vec_set_direct): New define. | |
12067 | (expand_vec_set_optab_fn): New function. | |
12068 | (direct_vec_set_optab_supported_p): New define. | |
12069 | * internal-fn.def (VEC_SET): New DEF_INTERNAL_OPTAB_FN. | |
12070 | * optabs.c (can_vec_set_var_idx_p): New function. | |
12071 | * optabs.h (can_vec_set_var_idx_p): New declaration. | |
12072 | ||
12073 | 2020-09-26 Jan Hubicka <jh@suse.cz> | |
12074 | ||
12075 | * ipa-modref.c (analyze_stmt): Do not skip clobbers in early pass. | |
12076 | * ipa-pure-const.c (analyze_stmt): Update comment. | |
12077 | ||
12078 | 2020-09-26 David Edelsohn <dje.gcc@gmail.com> | |
12079 | Clement Chigot <clement.chigot@atos.com> | |
12080 | ||
12081 | * collect2.c (visibility_flag): New. | |
12082 | (main): Detect -fvisibility. | |
12083 | (write_c_file_stat): Push and pop default visibility. | |
12084 | ||
12085 | 2020-09-26 Jan Hubicka <hubicka@ucw.cz> | |
12086 | ||
12087 | * ipa-inline-transform.c: Include ipa-modref-tree.h and ipa-modref.h. | |
12088 | (inline_call): Call ipa_merge_modref_summary_after_inlining. | |
12089 | * ipa-inline.c (ipa_inline): Do not free summaries. | |
12090 | * ipa-modref.c (dump_records): Fix formating. | |
12091 | (merge_call_side_effects): Break out from ... | |
12092 | (analyze_call): ... here; record recursive calls. | |
12093 | (analyze_stmt): Add new parameter RECURSIVE_CALLS. | |
12094 | (analyze_function): Do iterative dataflow on recursive calls. | |
12095 | (compute_parm_map): New function. | |
12096 | (ipa_merge_modref_summary_after_inlining): New function. | |
12097 | (collapse_loads): New function. | |
12098 | (modref_propagate_in_scc): Break out from ... | |
12099 | (pass_ipa_modref::execute): ... here; Do iterative dataflow. | |
12100 | * ipa-modref.h (ipa_merge_modref_summary_after_inlining): Declare. | |
12101 | ||
12102 | 2020-09-26 Jakub Jelinek <jakub@redhat.com> | |
12103 | ||
12104 | * omp-expand.c (expand_omp_simd): Help vectorizer for the collapse == 1 | |
12105 | and non-composite collapse > 1 case with non-constant innermost loop | |
12106 | step by precomputing number of iterations before loop and using an | |
12107 | alternate IV from 0 to number of iterations - 1 with step of 1. | |
12108 | ||
12109 | 2020-09-26 Jan Hubicka <jh@suse.cz> | |
12110 | ||
12111 | * ipa-fnsummary.c (dump_ipa_call_summary): Dump | |
12112 | points_to_local_or_readonly_memory flag. | |
12113 | (analyze_function_body): Compute points_to_local_or_readonly_memory | |
12114 | flag. | |
12115 | (remap_edge_change_prob): Rename to ... | |
12116 | (remap_edge_params): ... this one; update | |
12117 | points_to_local_or_readonly_memory. | |
12118 | (remap_edge_summaries): Update. | |
12119 | (read_ipa_call_summary): Stream the new flag. | |
12120 | (write_ipa_call_summary): Likewise. | |
12121 | * ipa-predicate.h (struct inline_param_summary): Add | |
12122 | points_to_local_or_readonly_memory. | |
12123 | (inline_param_summary::equal_to): Update. | |
12124 | (inline_param_summary::useless_p): Update. | |
12125 | ||
12126 | 2020-09-26 Jan Hubicka <hubicka@ucw.cz> | |
12127 | ||
12128 | * ipa-modref-tree.h (modref_ref_node::insert_access): Track if something | |
12129 | changed. | |
12130 | (modref_base_node::insert_ref): Likewise (and add a new optional | |
12131 | argument) | |
12132 | (modref_tree::insert): Likewise. | |
12133 | (modref_tree::merge): Rewrite | |
12134 | ||
12135 | 2020-09-25 Jan Hubicka <hubicka@ucw.cz> | |
12136 | ||
12137 | * doc/invoke.texi: Add -fno-ipa-modref to flags disabled by | |
12138 | -flive-patching. | |
12139 | * opts.c (control_options_for_live_patching): Disable ipa-modref. | |
12140 | ||
12141 | 2020-09-25 Jan Hubicka <hubicka@ucw.cz> | |
12142 | ||
12143 | * ipa-modref.c (analyze_stmt): Fix return value for gimple_clobber. | |
12144 | ||
12145 | 2020-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12146 | ||
12147 | * config/aarch64/aarch64-option-extensions.def (rng): Add | |
12148 | cpuinfo string. | |
12149 | ||
12150 | 2020-09-25 Alex Coplan <alex.coplan@arm.com> | |
12151 | ||
12152 | * config/arm/arm-cpus.in (neoverse-v1): Add FP16. | |
12153 | ||
12154 | 2020-09-25 Martin Liska <mliska@suse.cz> | |
12155 | ||
12156 | PR gcov-profile/64636 | |
12157 | * value-prof.c (stream_out_histogram_value): Allow negative | |
12158 | values for HIST_TYPE_IOR. | |
12159 | ||
12160 | 2020-09-25 Tom de Vries <tdevries@suse.de> | |
12161 | ||
12162 | * config/nvptx/nvptx.c (nvptx_assemble_integer, nvptx_print_operand): | |
12163 | Use gcc_fallthrough (). | |
12164 | ||
12165 | 2020-09-25 Richard Biener <rguenther@suse.de> | |
12166 | ||
12167 | PR middle-end/96814 | |
12168 | * expr.c (store_constructor): Handle VECTOR_BOOLEAN_TYPE_P | |
12169 | CTORs correctly. | |
12170 | ||
12171 | 2020-09-25 Richard Biener <rguenther@suse.de> | |
12172 | ||
12173 | PR middle-end/97207 | |
12174 | * vec.h (auto_vec<T>::operator=(auto_vec<T>&&)): Implement. | |
12175 | ||
12176 | 2020-09-25 Richard Sandiford <richard.sandiford@arm.com> | |
12177 | ||
12178 | * config/arm/arm-protos.h (arm_mve_mode_and_operands_type_check): | |
12179 | Delete. | |
12180 | * config/arm/arm.c (arm_coproc_mem_operand_wb): Use a scale factor | |
12181 | of 2 rather than 4 for 16-bit modes. | |
12182 | (arm_mve_mode_and_operands_type_check): Delete. | |
12183 | * config/arm/constraints.md (Uj): Allow writeback for Neon, | |
12184 | but continue to disallow it for MVE. | |
12185 | * config/arm/arm.md (*arm32_mov<HFBF:mode>): Add !TARGET_HAVE_MVE. | |
12186 | * config/arm/vfp.md (*mov_load_vfp_hf16, *mov_store_vfp_hf16): Fold | |
12187 | back into... | |
12188 | (*mov<mode>_vfp_<mode>16): ...here but use Uj for the FPR memory | |
12189 | constraints. Use for base MVE too. | |
12190 | ||
12191 | 2020-09-25 Richard Biener <rguenther@suse.de> | |
12192 | ||
12193 | PR tree-optimization/97199 | |
12194 | * tree-if-conv.c (combine_blocks): Remove edges only | |
12195 | after looking at virtual PHI args. | |
12196 | ||
12197 | 2020-09-25 Jakub Jelinek <jakub@redhat.com> | |
12198 | ||
12199 | * omp-low.c (scan_omp_1_stmt): Don't call scan_omp_simd for | |
12200 | collapse > 1 loops as simt doesn't support collapsed loops yet. | |
12201 | * omp-expand.c (expand_omp_for_init_counts, expand_omp_for_init_vars): | |
12202 | Small tweaks to function comment. | |
12203 | (expand_omp_simd): Rewritten collapse > 1 support to only attempt | |
12204 | to vectorize the innermost loop and emit set of outer loops around it. | |
12205 | For non-composite simd with collapse > 1 without broken loop don't | |
12206 | even try to compute number of iterations first. Add support for | |
12207 | non-rectangular simd loops. | |
12208 | (expand_omp_for): Don't sorry_at on non-rectangular simd loops. | |
12209 | ||
12210 | 2020-09-25 Martin Liska <mliska@suse.cz> | |
12211 | ||
12212 | * cgraph.c (cgraph_edge::debug): New. | |
12213 | * cgraph.h (cgraph_edge::debug): New. | |
12214 | ||
12215 | 2020-09-25 Martin Liska <mliska@suse.cz> | |
12216 | ||
12217 | * cgraph.c (cgraph_node::dump): Always print space at the end | |
12218 | of a message. Remove one extra space. | |
12219 | ||
12220 | 2020-09-24 Alex Coplan <alex.coplan@arm.com> | |
12221 | ||
12222 | * config/arm/arm-cpus.in (neoverse-n2): New. | |
12223 | * config/arm/arm-tables.opt: Regenerate. | |
12224 | * config/arm/arm-tune.md: Regenerate. | |
12225 | * doc/invoke.texi: Document support for Neoverse N2. | |
12226 | ||
12227 | 2020-09-24 Alex Coplan <alex.coplan@arm.com> | |
12228 | ||
12229 | * config/aarch64/aarch64-cores.def: Add Neoverse N2. | |
12230 | * config/aarch64/aarch64-tune.md: Regenerate. | |
12231 | * doc/invoke.texi: Document AArch64 support for Neoverse N2. | |
12232 | ||
12233 | 2020-09-24 Richard Biener <rguenther@suse.de> | |
12234 | ||
12235 | * vec.h (auto_vec<T, 0>::auto_vec (auto_vec &&)): New move CTOR. | |
12236 | (auto_vec<T, 0>::operator=(auto_vec &&)): Delete. | |
12237 | * hash-table.h (hash_table::expand): Use std::move when expanding. | |
12238 | * cfgloop.h (get_loop_exit_edges): Return auto_vec<edge>. | |
12239 | * cfgloop.c (get_loop_exit_edges): Adjust. | |
12240 | * cfgloopmanip.c (fix_loop_placement): Likewise. | |
12241 | * ipa-fnsummary.c (analyze_function_body): Likewise. | |
12242 | * ira-build.c (create_loop_tree_nodes): Likewise. | |
12243 | (create_loop_tree_node_allocnos): Likewise. | |
12244 | (loop_with_complex_edge_p): Likewise. | |
12245 | * ira-color.c (ira_loop_edge_freq): Likewise. | |
12246 | * loop-unroll.c (analyze_insns_in_loop): Likewise. | |
12247 | * predict.c (predict_loops): Likewise. | |
12248 | * tree-predcom.c (last_always_executed_block): Likewise. | |
12249 | * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise. | |
12250 | * tree-ssa-loop-im.c (store_motion_loop): Likewise. | |
12251 | * tree-ssa-loop-ivcanon.c (loop_edge_to_cancel): Likewise. | |
12252 | (canonicalize_loop_induction_variables): Likewise. | |
12253 | * tree-ssa-loop-manip.c (get_loops_exits): Likewise. | |
12254 | * tree-ssa-loop-niter.c (find_loop_niter): Likewise. | |
12255 | (finite_loop_p): Likewise. | |
12256 | (find_loop_niter_by_eval): Likewise. | |
12257 | (estimate_numbers_of_iterations): Likewise. | |
12258 | * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise. | |
12259 | (may_use_storent_in_loop_p): Likewise. | |
12260 | ||
12261 | 2020-09-24 Jan Hubicka <jh@suse.cz> | |
12262 | ||
12263 | * doc/invoke.texi: Document -fipa-modref, ipa-modref-max-bases, | |
12264 | ipa-modref-max-refs, ipa-modref-max-accesses, ipa-modref-max-tests. | |
12265 | * ipa-modref-tree.c (test_insert_search_collapse): Update. | |
12266 | (test_merge): Update. | |
12267 | (gt_ggc_mx): New function. | |
12268 | * ipa-modref-tree.h (struct modref_access_node): New structure. | |
12269 | (struct modref_ref_node): Add every_access and accesses array. | |
12270 | (modref_ref_node::modref_ref_node): Update ctor. | |
12271 | (modref_ref_node::search): New member function. | |
12272 | (modref_ref_node::collapse): New member function. | |
12273 | (modref_ref_node::insert_access): New member function. | |
12274 | (modref_base_node::insert_ref): Do not collapse base if ref is 0. | |
12275 | (modref_base_node::collapse): Copllapse also refs. | |
12276 | (modref_tree): Add accesses. | |
12277 | (modref_tree::modref_tree): Initialize max_accesses. | |
12278 | (modref_tree::insert): Add access parameter. | |
12279 | (modref_tree::cleanup): New member function. | |
12280 | (modref_tree::merge): Add parm_map; merge accesses. | |
12281 | (modref_tree::copy_from): New member function. | |
12282 | (modref_tree::create_ggc): Add max_accesses. | |
12283 | * ipa-modref.c (dump_access): New function. | |
12284 | (dump_records): Dump accesses. | |
12285 | (dump_lto_records): Dump accesses. | |
12286 | (get_access): New function. | |
12287 | (record_access): Record access. | |
12288 | (record_access_lto): Record access. | |
12289 | (analyze_call): Compute parm_map. | |
12290 | (analyze_function): Update construction of modref records. | |
12291 | (modref_summaries::duplicate): Likewise; use copy_from. | |
12292 | (write_modref_records): Stream accesses. | |
12293 | (read_modref_records): Sream accesses. | |
12294 | (pass_ipa_modref::execute): Update call of merge. | |
12295 | * params.opt (-param=modref-max-accesses): New. | |
12296 | * tree-ssa-alias.c (alias_stats): Add modref_baseptr_tests. | |
12297 | (dump_alias_stats): Update. | |
12298 | (base_may_alias_with_dereference_p): New function. | |
12299 | (modref_may_conflict): Check accesses. | |
12300 | (ref_maybe_used_by_call_p_1): Update call to modref_may_conflict. | |
12301 | (call_may_clobber_ref_p_1): Update call to modref_may_conflict. | |
12302 | ||
12303 | 2020-09-24 Richard Sandiford <richard.sandiford@arm.com> | |
12304 | ||
12305 | * config/arm/arm.md (*stack_protect_combined_set_insn): For non-PIC, | |
12306 | load the address of the canary rather than the address of the | |
12307 | constant pool entry that points to it. | |
12308 | (*stack_protect_combined_test_insn): Likewise. | |
12309 | ||
12310 | 2020-09-24 Richard Biener <rguenther@suse.de> | |
12311 | ||
12312 | PR tree-optimization/97085 | |
12313 | * match.pd (mask ? { false,..} : { true, ..} -> ~mask): New. | |
12314 | ||
12315 | 2020-09-24 Jan Hubicka <hubicka@ucw.cz> | |
12316 | ||
12317 | * ipa-modref-tree.h (modref_base::collapse): Release memory. | |
12318 | (modref_tree::create_ggc): New member function. | |
12319 | (modref_tree::colapse): Release memory. | |
12320 | (modref_tree::~modref_tree): New destructor. | |
12321 | * ipa-modref.c (modref_summaries::create_ggc): New function. | |
12322 | (analyze_function): Use create_ggc. | |
12323 | (modref_summaries::duplicate): Likewise. | |
12324 | (read_modref_records): Likewise. | |
12325 | (modref_read): Likewise. | |
12326 | ||
12327 | 2020-09-24 Alan Modra <amodra@gmail.com> | |
12328 | ||
12329 | * config/rs6000/rs6000.c (rs6000_rtx_costs): Pass mode to | |
12330 | reg_or_add_cint_operand and reg_or_sub_cint_operand. | |
12331 | ||
12332 | 2020-09-24 Alan Modra <amodra@gmail.com> | |
12333 | ||
12334 | PR target/93012 | |
12335 | * config/rs6000/rs6000.c (num_insns_constant_gpr): Count rldimi | |
12336 | constants correctly. | |
12337 | ||
12338 | 2020-09-24 Alan Modra <amodra@gmail.com> | |
12339 | ||
12340 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): | |
12341 | Conditionally define __PCREL__. | |
12342 | ||
12343 | 2020-09-24 Alan Modra <amodra@gmail.com> | |
12344 | ||
12345 | PR target/97107 | |
12346 | * config/rs6000/rs6000-internal.h (struct rs6000_stack): Improve | |
12347 | calls_p comment. | |
12348 | * config/rs6000/rs6000-logue.c (rs6000_stack_info): Likewise. | |
12349 | (rs6000_expand_split_stack_prologue): Emit the prologue for | |
12350 | functions that make a sibling call. | |
12351 | ||
12352 | 2020-09-24 David Malcolm <dmalcolm@redhat.com> | |
12353 | ||
12354 | * doc/analyzer.texi (Analyzer Paths): Add note about | |
12355 | -fno-analyzer-feasibility. | |
12356 | * doc/invoke.texi (Static Analyzer Options): Add | |
12357 | -fno-analyzer-feasibility. | |
12358 | ||
12359 | 2020-09-24 Paul A. Clarke <pc@us.ibm.com> | |
12360 | ||
12361 | * doc/extend.texi: Add 'd' for doubleword variant of | |
12362 | vector insert instruction. | |
12363 | ||
12364 | 2020-09-23 Martin Sebor <msebor@redhat.com> | |
12365 | ||
12366 | * gimple-array-bounds.cc (build_zero_elt_array_type): New function. | |
12367 | (array_bounds_checker::check_mem_ref): Call it. | |
12368 | ||
12369 | 2020-09-23 Martin Sebor <msebor@redhat.com> | |
12370 | ||
12371 | PR middle-end/97175 | |
12372 | * builtins.c (maybe_warn_for_bound): Handle both DECLs and EXPRESSIONs | |
12373 | in pad->dst.ref, same is pad->src.ref. | |
12374 | ||
12375 | 2020-09-23 Jan Hubicka <jh@suse.cz> | |
12376 | ||
12377 | * ipa-fnsummary.c (refs_local_or_readonly_memory_p): New function. | |
12378 | (points_to_local_or_readonly_memory_p): New function. | |
12379 | * ipa-fnsummary.h (refs_local_or_readonly_memory_p): Declare. | |
12380 | (points_to_local_or_readonly_memory_p): Declare. | |
12381 | * ipa-modref.c (record_access_p): Use refs_local_or_readonly_memory_p. | |
12382 | * ipa-pure-const.c (check_op): Likewise. | |
12383 | ||
12384 | 2020-09-23 Tom de Vries <tdevries@suse.de> | |
12385 | ||
12386 | * config/nvptx/nvptx.md: Don't allow operand containing sum of | |
12387 | function ref and const. | |
12388 | ||
12389 | 2020-09-23 Richard Sandiford <richard.sandiford@arm.com> | |
12390 | ||
12391 | * config/aarch64/aarch64-protos.h (aarch64_salt_type): New enum. | |
12392 | (aarch64_stack_protect_canary_mem): Declare. | |
12393 | * config/aarch64/aarch64.md (UNSPEC_SALT_ADDR): New unspec. | |
12394 | (stack_protect_set): Forward to stack_protect_combined_set. | |
12395 | (stack_protect_combined_set): New pattern. Use | |
12396 | aarch64_stack_protect_canary_mem. | |
12397 | (reg_stack_protect_address_<mode>): Add a salt operand. | |
12398 | (stack_protect_test): Forward to stack_protect_combined_test. | |
12399 | (stack_protect_combined_test): New pattern. Use | |
12400 | aarch64_stack_protect_canary_mem. | |
12401 | * config/aarch64/aarch64.c (strip_salt): New function. | |
12402 | (strip_offset_and_salt): Likewise. | |
12403 | (tls_symbolic_operand_type): Use strip_offset_and_salt. | |
12404 | (aarch64_stack_protect_canary_mem): New function. | |
12405 | (aarch64_cannot_force_const_mem): Use strip_offset_and_salt. | |
12406 | (aarch64_classify_address): Likewise. | |
12407 | (aarch64_symbolic_address_p): Likewise. | |
12408 | (aarch64_print_operand): Likewise. | |
12409 | (aarch64_output_addr_const_extra): New function. | |
12410 | (aarch64_tls_symbol_p): Use strip_salt. | |
12411 | (aarch64_classify_symbol): Likewise. | |
12412 | (aarch64_legitimate_pic_operand_p): Use strip_offset_and_salt. | |
12413 | (aarch64_legitimate_constant_p): Likewise. | |
12414 | (aarch64_mov_operand_p): Use strip_salt. | |
12415 | (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Override. | |
12416 | ||
12417 | 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12418 | ||
12419 | PR target/71233 | |
12420 | * config/aarch64/arm_neon.h (vreinterpretq_f64_p128, | |
12421 | vreinterpretq_p128_f64): Define. | |
12422 | ||
12423 | 2020-09-23 Alex Coplan <alex.coplan@arm.com> | |
12424 | ||
12425 | * config/arm/arm-cpus.in (neoverse-v1): New. | |
12426 | * config/arm/arm-tables.opt: Regenerate. | |
12427 | * config/arm/arm-tune.md: Regenerate. | |
12428 | * doc/invoke.texi: Document support for Neoverse V1. | |
12429 | ||
12430 | 2020-09-23 Alex Coplan <alex.coplan@arm.com> | |
12431 | ||
12432 | * config/aarch64/aarch64-cores.def: Add Neoverse V1. | |
12433 | * config/aarch64/aarch64-tune.md: Regenerate. | |
12434 | * doc/invoke.texi: Document support for Neoverse V1. | |
12435 | ||
12436 | 2020-09-23 Richard Biener <rguenther@suse.de> | |
12437 | ||
12438 | PR middle-end/96453 | |
12439 | * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove | |
12440 | LT_EXPR -> NE_EXPR verification and also apply it for | |
12441 | non-constant masks. | |
12442 | ||
12443 | 2020-09-23 Jan Hubicka <hubicka@ucw.cz> | |
12444 | ||
12445 | * ipa-modref.c (modref_summary::lto_useful_p): New member function. | |
12446 | (modref_summary::useful_p): New member function. | |
12447 | (analyze_function): Drop useless summaries. | |
12448 | (modref_write): Skip useless summaries. | |
12449 | (pass_ipa_modref::execute): Drop useless summaries. | |
12450 | * ipa-modref.h (struct GTY): Declare useful_p and lto_useful_p. | |
12451 | * tree-ssa-alias.c (dump_alias_stats): Fix. | |
12452 | (modref_may_conflict): Fix stats. | |
12453 | ||
12454 | 2020-09-23 Richard Biener <rguenther@suse.de> | |
12455 | ||
12456 | PR middle-end/96466 | |
12457 | * internal-fn.c (expand_vect_cond_mask_optab_fn): Use | |
12458 | appropriate mode for force_reg. | |
12459 | * tree.c (build_truth_vector_type_for): Pass VOIDmode to | |
12460 | make_vector_type. | |
12461 | ||
12462 | 2020-09-23 Richard Sandiford <richard.sandiford@arm.com> | |
12463 | ||
12464 | * tree-vectorizer.h (determine_peel_for_niter): Delete in favor of... | |
12465 | (vect_determine_partial_vectors_and_peeling): ...this new function. | |
12466 | * tree-vect-loop-manip.c (vect_update_epilogue_niters): New function. | |
12467 | Reject using vector epilogue loops for single iterations. Install | |
12468 | the constant number of epilogue loop iterations in the associated | |
12469 | loop_vinfo. Rely on vect_determine_partial_vectors_and_peeling | |
12470 | to do the main part of the test. | |
12471 | (vect_do_peeling): Use vect_update_epilogue_niters to handle | |
12472 | epilogue loops with a known number of iterations. Skip recomputing | |
12473 | the number of iterations later in that case. Otherwise, use | |
12474 | vect_determine_partial_vectors_and_peeling to decide whether the | |
12475 | epilogue loop needs to use partial vectors or peeling. | |
12476 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Set the | |
12477 | default can_use_partial_vectors_p to false if partial-vector-usage=0. | |
12478 | (determine_peel_for_niter): Remove in favor of... | |
12479 | (vect_determine_partial_vectors_and_peeling): ...this new function, | |
12480 | split out from... | |
12481 | (vect_analyze_loop_2): ...here. Reflect the vect_verify_full_masking | |
12482 | and vect_verify_loop_lens results in CAN_USE_PARTIAL_VECTORS_P | |
12483 | rather than USING_PARTIAL_VECTORS_P. | |
12484 | ||
12485 | 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12486 | ||
12487 | PR target/71233 | |
12488 | * config/aarch64/aarch64-simd-builtins.def (frintn): Use BUILTIN_VHSDF_HSDF | |
12489 | for modes. Remove explicit hf instantiation. | |
12490 | * config/aarch64/arm_neon.h (vrndns_f32): Define. | |
12491 | ||
12492 | 2020-09-23 Richard Biener <rguenther@suse.de> | |
12493 | ||
12494 | PR tree-optimization/97173 | |
12495 | * tree-vect-loop.c (vectorizable_live_operation): Extend | |
12496 | assert to also conver element conversions. | |
12497 | ||
12498 | 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12499 | ||
12500 | PR target/71233 | |
12501 | * config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64, | |
12502 | vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define. | |
12503 | ||
12504 | 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12505 | ||
12506 | PR target/71233 | |
12507 | * config/aarch64/arm_neon.h (vldrq_p128): Define. | |
12508 | ||
12509 | 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12510 | ||
12511 | PR target/71233 | |
12512 | * config/aarch64/arm_neon.h (vstrq_p128): Define. | |
12513 | ||
12514 | 2020-09-23 Richard Biener <rguenther@suse.de> | |
12515 | ||
12516 | PR tree-optimization/97151 | |
12517 | * tree-ssa-structalias.c (find_func_aliases_for_call): | |
12518 | DECL_IS_REPLACEABLE_OPERATOR_DELETE_P has no effect on | |
12519 | arguments. | |
12520 | ||
12521 | 2020-09-23 Richard Biener <rguenther@suse.de> | |
12522 | ||
12523 | PR middle-end/97162 | |
12524 | * alias.c (compare_base_decls): Use DECL_HARD_REGISTER | |
12525 | and guard with VAR_P. | |
12526 | ||
12527 | 2020-09-23 Martin Liska <mliska@suse.cz> | |
12528 | ||
12529 | PR gcov-profile/97069 | |
12530 | * profile.c (branch_prob): Line number must be at least 1. | |
12531 | ||
12532 | 2020-09-23 Tom de Vries <tdevries@suse.de> | |
12533 | ||
12534 | PR target/97158 | |
12535 | * config/nvptx/nvptx.c (nvptx_output_mov_insn): Handle move from | |
12536 | DF subreg to DF reg. | |
12537 | ||
12538 | 2020-09-23 David Malcolm <dmalcolm@redhat.com> | |
12539 | ||
12540 | * Makefile.in: Add $(ZLIBINC) to CFLAGS-analyzer/engine.o. | |
12541 | ||
12542 | 2020-09-22 Jan Hubicka <jh@suse.cz> | |
12543 | ||
12544 | * ipa-modref.c (analyze_stmt): Ignore gimple clobber. | |
12545 | ||
12546 | 2020-09-22 Jan Hubicka <jh@suse.cz> | |
12547 | ||
12548 | * ipa-modref-tree.c: Add namespace selftest. | |
12549 | (modref_tree_c_tests): Rename to ... | |
12550 | (ipa_modref_tree_c_tests): ... this. | |
12551 | * ipa-modref.c (pass_modref): Remove destructor. | |
12552 | (ipa_modref_c_finalize): New function. | |
12553 | * ipa-modref.h (ipa_modref_c_finalize): Declare. | |
12554 | * selftest-run-tests.c (selftest::run_tests): Call | |
12555 | ipa_modref_c_finalize. | |
12556 | * selftest.h (ipa_modref_tree_c_tests): Declare. | |
12557 | * toplev.c: Include ipa-modref-tree.h and ipa-modref.h | |
12558 | (toplev::finalize): Call ipa_modref_c_finalize. | |
12559 | ||
12560 | 2020-09-22 David Malcolm <dmalcolm@redhat.com> | |
12561 | ||
12562 | * doc/analyzer.texi (Other Debugging Techniques): Mention | |
12563 | -fdump-analyzer-json. | |
12564 | * doc/invoke.texi (Static Analyzer Options): Add | |
12565 | -fdump-analyzer-json. | |
12566 | ||
12567 | 2020-09-22 David Faust <david.faust@oracle.com> | |
12568 | ||
12569 | * config/bpf/bpf.md: Add defines for signed div and mod operators. | |
12570 | ||
12571 | 2020-09-22 Martin Liska <mliska@suse.cz> | |
12572 | ||
12573 | PR tree-optimization/96979 | |
12574 | * doc/invoke.texi: Document new param max-switch-clustering-attempts. | |
12575 | * params.opt: Add new parameter. | |
12576 | * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): | |
12577 | Limit number of attempts. | |
12578 | (bit_test_cluster::find_bit_tests): Likewise. | |
12579 | ||
12580 | 2020-09-22 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
12581 | ||
12582 | * config/s390/s390.md ("*cmp<mode>_ccs_0", "*cmp<mode>_ccz_0", | |
12583 | "*cmp<mode>_ccs_0_fastmath"): Basically change "*cmp<mode>_ccs_0" into | |
12584 | "*cmp<mode>_ccz_0" and for fast math add "*cmp<mode>_ccs_0_fastmath". | |
12585 | ||
12586 | 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12587 | ||
12588 | PR target/71233 | |
12589 | * config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32, | |
12590 | vclsq_u8, vclsq_u16, vclsq_u32): Define. | |
12591 | ||
12592 | 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12593 | ||
12594 | PR target/71233 | |
12595 | * config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define. | |
12596 | ||
12597 | 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12598 | ||
12599 | PR target/71233 | |
12600 | * config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8, | |
12601 | vaddq_p16, vaddq_p64, vaddq_p128): Define. | |
12602 | ||
12603 | 2020-09-22 Jakub Jelinek <jakub@redhat.com> | |
12604 | ||
12605 | * params.opt (--param=modref-max-tests=): Fix typo in help text: | |
12606 | perofmed -> performed. | |
12607 | * common.opt: Fix typo: incrmeental -> incremental. | |
12608 | * ipa-modref.c: Fix typos: recroding -> recording, becaue -> because, | |
12609 | analsis -> analysis. | |
12610 | (class modref_summaries): Fix typo: betweehn -> between. | |
12611 | (analyze_call): Fix typo: calle -> callee. | |
12612 | (read_modref_records): Fix typo: expcted -> expected. | |
12613 | (pass_ipa_modref::execute): Fix typo: calle -> callee. | |
12614 | ||
12615 | 2020-09-22 Jakub Jelinek <jakub@redhat.com> | |
12616 | ||
12617 | * common.opt (-fipa-modref): Add dot at the end of option help. | |
12618 | * params.opt (--param=modref-max-tests=): Likewise. | |
12619 | ||
12620 | 2020-09-21 Marek Polacek <polacek@redhat.com> | |
12621 | ||
12622 | * doc/invoke.texi: Document -Wctad-maybe-unsupported. | |
12623 | ||
12624 | 2020-09-21 Richard Biener <rguenther@suse.de> | |
12625 | ||
12626 | PR tree-optimization/97139 | |
12627 | * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Only mark the | |
12628 | pattern root, track visited vectorized stmts. | |
12629 | ||
12630 | 2020-09-21 Jakub Jelinek <jakub@redhat.com> | |
12631 | ||
12632 | * configure.ac: Use mallinfo mallinfo2 as first operand of | |
12633 | gcc_AC_CHECK_DECLS rather than [mallinfo, mallinfo2]. | |
12634 | * configure: Regenerated. | |
12635 | * config.in: Regenerated. | |
12636 | ||
12637 | 2020-09-21 Andrea Corallo <andrea.corallo@arm.com> | |
12638 | ||
12639 | * config/aarch64/aarch64-builtins.c | |
12640 | (aarch64_general_expand_builtin): Use expand machinery not to | |
12641 | alter the value of an rtx returned by force_reg. | |
12642 | ||
12643 | 2020-09-21 Richard Biener <rguenther@suse.de> | |
12644 | ||
12645 | PR tree-optimization/97135 | |
12646 | * tree-ssa-loop-im.c (sm_seq_push_down): Do not ignore | |
12647 | self-dependences. | |
12648 | ||
12649 | 2020-09-21 Martin Liska <mliska@suse.cz> | |
12650 | ||
12651 | PR tree-optimization/96915 | |
12652 | * tree-switch-conversion.c (switch_conversion::expand): Accept | |
12653 | also integer constants. | |
12654 | ||
12655 | 2020-09-21 Martin Liska <mliska@suse.cz> | |
12656 | ||
12657 | * print-tree.c (print_node): Remove extra space. | |
12658 | ||
12659 | 2020-09-21 Andrea Corallo <andrea.corallo@arm.com> | |
12660 | ||
12661 | PR target/96968 | |
12662 | * config/aarch64/aarch64-builtins.c | |
12663 | (aarch64_expand_fpsr_fpcr_setter): Fix comment nit. | |
12664 | (aarch64_expand_fpsr_fpcr_getter): New function, expand these | |
12665 | getters using expand_insn machinery. | |
12666 | (aarch64_general_expand_builtin): Make use of. | |
12667 | ||
12668 | 2020-09-21 Martin Liska <mliska@suse.cz> | |
12669 | ||
12670 | * ggc-common.c (ggc_rlimit_bound): Use ONE_? macro. | |
12671 | (ggc_min_expand_heuristic): Likewise. | |
12672 | (ggc_min_heapsize_heuristic): Likewise. | |
12673 | * ggc-page.c (ggc_collect): Likewise. | |
12674 | * system.h (ONE_G): Likewise. | |
12675 | ||
12676 | 2020-09-21 Martin Liska <mliska@suse.cz> | |
12677 | ||
12678 | * ggc-common.c (ggc_prune_overhead_list): Use SIZE_AMOUNT. | |
12679 | * ggc-page.c (release_pages): Likewise. | |
12680 | (ggc_collect): Likewise. | |
12681 | (ggc_trim): Likewise. | |
12682 | (ggc_grow): Likewise. | |
12683 | * timevar.c (timer::print): Likewise. | |
12684 | ||
12685 | 2020-09-21 Martin Liska <mliska@suse.cz> | |
12686 | ||
12687 | * config.in: Regenerate. | |
12688 | * configure: Likewise. | |
12689 | * configure.ac: Detect for mallinfo2. | |
12690 | * ggc-common.c (defined): Use it. | |
12691 | * system.h: Handle also HAVE_MALLINFO2. | |
12692 | ||
12693 | 2020-09-20 John David Anglin < danglin@gcc.gnu.org> | |
12694 | ||
12695 | * config/pa/pa-hpux11.h (LINK_GCC_C_SEQUENCE_SPEC): Delete. | |
12696 | * config/pa/pa64-hpux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. | |
12697 | (ENDFILE_SPEC): Link with libgcc_stub.a and mill.a. | |
12698 | * config/pa/pa32-linux.h (ENDFILE_SPEC): Link with libgcc.a. | |
12699 | ||
12700 | 2020-09-20 Jan Hubicka <hubicka@ucw.cz> | |
12701 | ||
12702 | * ipa-modref.c (dump_lto_records): Fix ICE. | |
12703 | ||
12704 | 2020-09-20 David Cepelik <d@dcepelik.cz> | |
12705 | Jan Hubicka <hubicka@ucw.cz> | |
12706 | ||
12707 | * Makefile.in: Add ipa-modref.c and ipa-modref-tree.c. | |
12708 | * alias.c: (reference_alias_ptr_type_1): Export. | |
12709 | * alias.h (reference_alias_ptr_type_1): Declare. | |
12710 | * common.opt (fipa-modref): New. | |
12711 | * gengtype.c (open_base_files): Add ipa-modref-tree.h and ipa-modref.h | |
12712 | * ipa-modref-tree.c: New file. | |
12713 | * ipa-modref-tree.h: New file. | |
12714 | * ipa-modref.c: New file. | |
12715 | * ipa-modref.h: New file. | |
12716 | * lto-section-in.c (lto_section_name): Add ipa_modref. | |
12717 | * lto-streamer.h (enum lto_section_type): Add LTO_section_ipa_modref. | |
12718 | * opts.c (default_options_table): Enable ipa-modref at -O1+. | |
12719 | * params.opt (-param=modref-max-bases, -param=modref-max-refs, | |
12720 | -param=modref-max-tests): New params. | |
12721 | * passes.def: Schedule pass_modref and pass_ipa_modref. | |
12722 | * timevar.def (TV_IPA_MODREF): New timevar. | |
12723 | (TV_TREE_MODREF): New timevar. | |
12724 | * tree-pass.h (make_pass_modref): Declare. | |
12725 | (make_pass_ipa_modref): Declare. | |
12726 | * tree-ssa-alias.c (dump_alias_stats): Include ipa-modref-tree.h | |
12727 | and ipa-modref.h | |
12728 | (alias_stats): Add modref_use_may_alias, modref_use_no_alias, | |
12729 | modref_clobber_may_alias, modref_clobber_no_alias, modref_tests. | |
12730 | (dump_alias_stats): Dump new stats. | |
12731 | (nonoverlapping_array_refs_p): Fix formating. | |
12732 | (modref_may_conflict): New function. | |
12733 | (ref_maybe_used_by_call_p_1): Use it. | |
12734 | (call_may_clobber_ref_p_1): Use it. | |
12735 | (call_may_clobber_ref_p): Update. | |
12736 | (stmt_may_clobber_ref_p_1): Update. | |
12737 | * tree-ssa-alias.h (call_may_clobber_ref_p_1): Update. | |
12738 | ||
12739 | 2020-09-19 Martin Sebor <msebor@redhat.com> | |
12740 | ||
12741 | PR middle-end/82608 | |
12742 | PR middle-end/94195 | |
12743 | PR c/50584 | |
12744 | PR middle-end/84051 | |
12745 | * gimple-array-bounds.cc (get_base_decl): New function. | |
12746 | (get_ref_size): New function. | |
12747 | (trailing_array): New function. | |
12748 | (array_bounds_checker::check_array_ref): Call them. Handle arrays | |
12749 | declared in function parameters. | |
12750 | (array_bounds_checker::check_mem_ref): Same. Handle references to | |
12751 | dynamically allocated arrays. | |
12752 | ||
12753 | 2020-09-19 Martin Sebor <msebor@redhat.com> | |
12754 | ||
12755 | PR c/50584 | |
12756 | * builtins.c (warn_for_access): Add argument. Distinguish between | |
12757 | reads and writes. | |
12758 | (check_access): Add argument. Distinguish between reads and writes. | |
12759 | (gimple_call_alloc_size): Set range even on failure. | |
12760 | (gimple_parm_array_size): New function. | |
12761 | (compute_objsize): Call it. | |
12762 | (check_memop_access): Pass check_access an additional argument. | |
12763 | (expand_builtin_memchr, expand_builtin_strcat): Same. | |
12764 | (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same. | |
12765 | (expand_builtin_stpncpy, check_strncat_sizes): Same. | |
12766 | (expand_builtin_strncat, expand_builtin_strncpy): Same. | |
12767 | (expand_builtin_memcmp): Same. | |
12768 | * builtins.h (compute_objsize): Declare a new overload. | |
12769 | (gimple_parm_array_size): Declare. | |
12770 | (check_access): Add argument. | |
12771 | * calls.c (append_attrname): Simplify. | |
12772 | (maybe_warn_rdwr_sizes): Handle internal attribute access. | |
12773 | * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid adding | |
12774 | quotes. | |
12775 | ||
12776 | 2020-09-19 Martin Sebor <msebor@redhat.com> | |
12777 | ||
12778 | * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Handle attribute | |
12779 | access internal representation of arrays. | |
12780 | ||
12781 | 2020-09-19 Martin Sebor <msebor@redhat.com> | |
12782 | ||
12783 | PR c/50584 | |
12784 | * attribs.c (decl_attributes): Also pass decl along with type | |
12785 | attributes to handlers. | |
12786 | (init_attr_rdwr_indices): Change second argument to attribute chain. | |
12787 | Handle internal attribute representation in addition to external. | |
12788 | (get_parm_access): New function. | |
12789 | (attr_access::to_internal_string): Define new member function. | |
12790 | (attr_access::to_external_string): Define new member function. | |
12791 | (attr_access::vla_bounds): Define new member function. | |
12792 | * attribs.h (struct attr_access): Declare new members. | |
12793 | (attr_access::from_mode_char): Define new member function. | |
12794 | (get_parm_access): Declare new function. | |
12795 | * calls.c (initialize_argument_information): Pass function type | |
12796 | attributes to init_attr_rdwr_indices. | |
12797 | * doc/invoke.texi (-Warray-parameter, -Wvla-parameter): Document. | |
12798 | * tree-pretty-print.c (dump_generic_node): Correct handling of | |
12799 | qualifiers. | |
12800 | * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Same. | |
12801 | * tree.h (access_mode): Add new enumerator. | |
12802 | ||
12803 | 2020-09-19 Sandra Loosemore <sandra@codesourcery.com> | |
12804 | ||
12805 | * doc/generic.texi (Basic Statements): Document SWITCH_EXPR here, | |
12806 | not SWITCH_STMT. | |
12807 | (Statements for C and C++): Rename node to reflect what | |
12808 | the introduction already says about sharing between C and C++ | |
12809 | front ends. Copy-edit and correct documentation for structured | |
12810 | loops and switch. | |
12811 | ||
12812 | 2020-09-19 liuhongt <hongtao.liu@intel.com> | |
12813 | ||
12814 | PR target/96861 | |
12815 | * config/i386/x86-tune-costs.h (skylake_cost): increase rtx | |
12816 | cost of sse_to_integer from 2 to 6. | |
12817 | ||
12818 | 2020-09-18 Sudi Das <sudi.das@arm.com> | |
12819 | Omar Tahir <omar.tahir@arm.com> | |
12820 | ||
12821 | * config/arm/thumb2.md (*thumb2_csneg): New. | |
12822 | (*thumb2_negscc): Don't match if TARGET_COND_ARITH. | |
12823 | * config/arm/arm.md (*if_neg_move): Don't match if TARGET_COND_ARITH. | |
12824 | ||
12825 | 2020-09-18 Sudi Das <sudi.das@arm.com> | |
12826 | Omar Tahir <omar.tahir@arm.com> | |
12827 | ||
12828 | * config/arm/thumb2.md (*thumb2_csinc): New. | |
12829 | (*thumb2_cond_arith): Generate CINC where possible. | |
12830 | ||
12831 | 2020-09-18 Sudi Das <sudi.das@arm.com> | |
12832 | Omar Tahir <omar.tahir@arm.com> | |
12833 | ||
12834 | * config/arm/arm.h (TARGET_COND_ARITH): New macro. | |
12835 | * config/arm/arm.c (arm_have_conditional_execution): Return false if | |
12836 | TARGET_COND_ARITH before reload. | |
12837 | * config/arm/predicates.md (arm_comparison_operation): Returns true if | |
12838 | comparing CC_REGNUM with constant zero. | |
12839 | * config/arm/thumb2.md (*thumb2_csinv): New. | |
12840 | (*thumb2_movcond): Don't match if TARGET_COND_ARITH. | |
12841 | ||
12842 | 2020-09-18 Richard Sandiford <richard.sandiford@arm.com> | |
12843 | ||
12844 | PR middle-end/91957 | |
12845 | * ira.c (ira_setup_eliminable_regset): Skip the special elimination | |
12846 | handling of the hard frame pointer if the hard frame pointer is fixed. | |
12847 | ||
12848 | 2020-09-18 Richard Biener <rguenther@suse.de> | |
12849 | ||
12850 | PR tree-optimization/97081 | |
12851 | * tree-vect-patterns.c (vect_recog_rotate_pattern): Use the | |
12852 | precision of the shifted operand to determine the mask. | |
12853 | ||
12854 | 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
12855 | ||
12856 | * config/msp430/msp430.c (msp430_print_operand): Update comment. | |
12857 | Cast to long when printing values formatted as long. | |
12858 | Support 'd', 'e', 'f' and 'g' modifiers. | |
12859 | Extract operand value with a single operation for all modifiers. | |
12860 | * doc/extend.texi (msp430Operandmodifiers): New. | |
12861 | ||
12862 | 2020-09-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
12863 | ||
12864 | * config/msp430/msp430.c (increment_stack): Mark insns which increment | |
12865 | the stack as frame_related. | |
12866 | (msp430_expand_prologue): Add comments. | |
12867 | (msp430_expand_epilogue): Mark insns which decrement | |
12868 | the stack as frame_related. | |
12869 | Add reg_note to stack pop insns describing position of register | |
12870 | variables on the stack. | |
12871 | ||
12872 | 2020-09-18 Andrew Stubbs <ams@codesourcery.com> | |
12873 | ||
12874 | * config/gcn/gcn-tree.c (execute_omp_gcn): Delete. | |
12875 | (make_pass_omp_gcn): Delete. | |
12876 | * config/gcn/t-gcn-hsa (PASSES_EXTRA): Delete. | |
12877 | * config/gcn/gcn-passes.def: Removed. | |
12878 | ||
12879 | 2020-09-18 Alex Coplan <alex.coplan@arm.com> | |
12880 | ||
12881 | * cfgloop.h (nb_iter_bound): Reword comment describing is_exit. | |
12882 | ||
12883 | 2020-09-18 Richard Biener <rguenther@suse.de> | |
12884 | ||
12885 | PR tree-optimization/97095 | |
12886 | * tree-vect-loop.c (vectorizable_live_operation): Get | |
12887 | the SLP vector type from the correct object. | |
12888 | ||
12889 | 2020-09-18 Richard Biener <rguenther@suse.de> | |
12890 | ||
12891 | PR tree-optimization/97089 | |
12892 | * tree-ssa-sccvn.c (visit_nary_op): Do not replace unsigned | |
12893 | divisions. | |
12894 | ||
12895 | 2020-09-18 Richard Biener <rguenther@suse.de> | |
12896 | ||
12897 | PR tree-optimization/97098 | |
12898 | * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): Do not | |
12899 | recurse to children when all stmts were already visited. | |
12900 | ||
12901 | 2020-09-17 Sergei Trofimovich <siarheit@google.com> | |
12902 | ||
12903 | * profile.c (sort_hist_values): Clarify hist format: | |
12904 | start with a value, not counter. | |
12905 | ||
12906 | 2020-09-17 Yeting Kuo <fakepaper56@gmail.com> | |
12907 | ||
12908 | * config/riscv/riscv.h (CSW_MAX_OFFSET): Fix typo. | |
12909 | ||
12910 | 2020-09-17 Patrick Palka <ppalka@redhat.com> | |
12911 | ||
12912 | PR c/80076 | |
12913 | * gensupport.c (alter_attrs_for_subst_insn) <case SET_ATTR>: | |
12914 | Reduce indentation of misleadingly indented code fragment. | |
12915 | * lra-constraints.c (multi_block_pseudo_p): Likewise. | |
12916 | * sel-sched-ir.c (merge_fences): Likewise. | |
12917 | ||
12918 | 2020-09-17 Martin Sebor <msebor@redhat.com> | |
12919 | ||
12920 | * doc/invoke.texi (-Wuninitialized): Document -Wuninitialized for | |
12921 | allocated objects. | |
12922 | (-Wmaybe-uninitialized): Same. | |
12923 | ||
12924 | 2020-09-17 Richard Biener <rguenther@suse.de> | |
12925 | ||
12926 | * tree-ssa-sccvn.c (visit_nary_op): Value-number multiplications | |
12927 | and divisions to negates of available negated forms. | |
12928 | ||
12929 | 2020-09-17 Eric Botcazou <ebotcazou@adacore.com> | |
12930 | ||
12931 | PR middle-end/97078 | |
12932 | * function.c (use_register_for_decl): Test cfun->tail_call_marked | |
12933 | for a parameter here instead of... | |
12934 | (assign_parm_setup_reg): ...here. | |
12935 | ||
12936 | 2020-09-17 Aldy Hernandez <aldyh@redhat.com> | |
12937 | ||
12938 | * range-op.cc (multi_precision_range_tests): Normalize symbolics when copying to a | |
12939 | multi-range. | |
12940 | * value-range.cc (irange::copy_legacy_range): Add test. | |
12941 | ||
12942 | 2020-09-17 Jan Hubicka <jh@suse.cz> | |
12943 | ||
12944 | * cgraph.c (cgraph_node::get_availability): Fix availability of | |
12945 | functions in other partitions | |
12946 | * varpool.c (varpool_node::get_availability): Likewise. | |
12947 | ||
12948 | 2020-09-17 Jojo R <jiejie_rong@c-sky.com> | |
12949 | ||
12950 | * config/csky/csky.opt (msim): New. | |
12951 | * doc/invoke.texi (C-SKY Options): Document -msim. | |
12952 | * config/csky/csky-elf.h (LIB_SPEC): Add simulator runtime. | |
12953 | ||
12954 | 2020-09-17 Sergei Trofimovich <siarheit@google.com> | |
12955 | ||
12956 | * doc/cppenv.texi: Use @code{} instead of @samp{@command{}} | |
12957 | around 'date %s'. | |
12958 | ||
12959 | 2020-09-17 liuhongt <hongtao.liu@intel.com> | |
12960 | ||
12961 | * common/config/i386/i386-common.c | |
12962 | (OPTION_MASK_ISA_AVX_UNSET): Remove OPTION_MASK_ISA_XSAVE_UNSET. | |
12963 | (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_AVX_UNSET. | |
12964 | ||
12965 | 2020-09-16 Alexandre Oliva <oliva@adacore.com> | |
12966 | ||
12967 | * config/rs6000/rs6000.c (have_compare_and_set_mask): Use | |
12968 | E_*mode in cases. | |
12969 | ||
12970 | 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
12971 | ||
12972 | * config/rs6000/predicates.md (current_file_function_operand): | |
12973 | Remove argument from rs6000_pcrel_p call. | |
12974 | * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall): | |
12975 | Likewise. | |
12976 | (rs6000_global_entry_point_prologue_needed_p): Likewise. | |
12977 | (rs6000_output_function_prologue): Likewise. | |
12978 | * config/rs6000/rs6000-protos.h (rs6000_function_pcrel_p): New | |
12979 | prototype. | |
12980 | (rs6000_pcrel_p): Remove argument. | |
12981 | * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Remove | |
12982 | argument from rs6000_pcrel_p call. | |
12983 | (rs6000_call_template_1): Likewise. | |
12984 | (rs6000_indirect_call_template_1): Likewise. | |
12985 | (rs6000_longcall_ref): Likewise. | |
12986 | (rs6000_call_aix): Likewise. | |
12987 | (rs6000_sibcall_aix): Likewise. | |
12988 | (rs6000_function_pcrel_p): Rename from rs6000_pcrel_p. | |
12989 | (rs6000_pcrel_p): Rewrite. | |
12990 | * config/rs6000/rs6000.md (*pltseq_plt_pcrel<mode>): Remove | |
12991 | argument from rs6000_pcrel_p call. | |
12992 | (*call_local<mode>): Likewise. | |
12993 | (*call_value_local<mode>): Likewise. | |
12994 | (*call_nonlocal_aix<mode>): Likewise. | |
12995 | (*call_value_nonlocal_aix<mode>): Likewise. | |
12996 | (*call_indirect_pcrel<mode>): Likewise. | |
12997 | (*call_value_indirect_pcrel<mode>): Likewise. | |
12998 | ||
12999 | 2020-09-16 Marek Polacek <polacek@redhat.com> | |
13000 | ||
13001 | PR preprocessor/96935 | |
13002 | * input.c (get_substring_ranges_for_loc): Return if start.column | |
13003 | is less than 1. | |
13004 | ||
13005 | 2020-09-16 Martin Sebor <msebor@redhat.com> | |
13006 | ||
13007 | PR middle-end/96295 | |
13008 | * tree-ssa-uninit.c (maybe_warn_operand): Work harder to avoid | |
13009 | warning for objects of empty structs | |
13010 | ||
13011 | 2020-09-16 Eric Botcazou <ebotcazou@adacore.com> | |
13012 | ||
13013 | * tree-eh.c (lower_try_finally_dup_block): Backward propagate slocs | |
13014 | to stack restore builtin calls. | |
13015 | (cleanup_all_empty_eh): Do again a post-order traversal of the EH | |
13016 | region tree. | |
13017 | ||
13018 | 2020-09-16 Andrea Corallo <andrea.corallo@arm.com> | |
13019 | ||
13020 | * tree-vect-loop.c (vect_need_peeling_or_partial_vectors_p): New | |
13021 | function. | |
13022 | (vect_analyze_loop_2): Make use of it not to select partial | |
13023 | vectors if no peel is required. | |
13024 | (determine_peel_for_niter): Move out some logic into | |
13025 | 'vect_need_peeling_or_partial_vectors_p'. | |
13026 | ||
13027 | 2020-09-16 H.J. Lu <hjl.tools@gmail.com> | |
13028 | ||
13029 | PR target/97032 | |
13030 | * cfgexpand.c (asm_clobber_reg_kind): Set sp_is_clobbered_by_asm | |
13031 | to true if the stack pointer is clobbered by asm statement. | |
13032 | * emit-rtl.h (rtl_data): Add sp_is_clobbered_by_asm. | |
13033 | * config/i386/i386.c (ix86_get_drap_rtx): Set need_drap to true | |
13034 | if the stack pointer is clobbered by asm statement. | |
13035 | ||
13036 | 2020-09-16 Ilya Leoshkevich <iii@linux.ibm.com> | |
13037 | ||
13038 | * config/s390/vector.md(*vec_tf_to_v1tf): Use "f" instead of "v" | |
13039 | for the source operand. | |
13040 | ||
13041 | 2020-09-16 Jojo R <jiejie_rong@c-sky.com> | |
13042 | ||
13043 | * config.gcc (C-SKY): Set use_gcc_stdint=wrap for elf target. | |
13044 | ||
13045 | 2020-09-16 Richard Biener <rguenther@suse.de> | |
13046 | ||
13047 | * tree-vectorizer.h (_stmt_vec_info::num_slp_uses): Remove. | |
13048 | (STMT_VINFO_NUM_SLP_USES): Likewise. | |
13049 | (vect_free_slp_instance): Adjust. | |
13050 | (vect_update_shared_vectype): Declare. | |
13051 | * tree-vectorizer.c (vec_info::~vec_info): Adjust. | |
13052 | * tree-vect-loop.c (vect_analyze_loop_2): Likewise. | |
13053 | (vectorizable_live_operation): Use vector type from | |
13054 | SLP_TREE_REPRESENTATIVE. | |
13055 | (vect_transform_loop): Adjust. | |
13056 | * tree-vect-data-refs.c (vect_slp_analyze_node_alignment): | |
13057 | Set the shared vector type. | |
13058 | * tree-vect-slp.c (vect_free_slp_tree): Remove final_p | |
13059 | parameter, remove STMT_VINFO_NUM_SLP_USES updating. | |
13060 | (vect_free_slp_instance): Adjust. | |
13061 | (vect_create_new_slp_node): Remove STMT_VINFO_NUM_SLP_USES | |
13062 | updating. | |
13063 | (vect_update_shared_vectype): Always compare with the | |
13064 | present vector type, update if NULL. | |
13065 | (vect_build_slp_tree_1): Do not update the shared vector | |
13066 | type here. | |
13067 | (vect_build_slp_tree_2): Adjust. | |
13068 | (slp_copy_subtree): Likewise. | |
13069 | (vect_attempt_slp_rearrange_stmts): Likewise. | |
13070 | (vect_analyze_slp_instance): Likewise. | |
13071 | (vect_analyze_slp): Likewise. | |
13072 | (vect_slp_analyze_node_operations_1): Update the shared | |
13073 | vector type. | |
13074 | (vect_slp_analyze_operations): Adjust. | |
13075 | (vect_slp_analyze_bb_1): Likewise. | |
13076 | ||
13077 | 2020-09-16 Jojo R <jiejie_rong@c-sky.com> | |
13078 | ||
13079 | * config/csky/t-csky-linux (CSKY_MULTILIB_OSDIRNAMES): Use mfloat-abi. | |
13080 | (MULTILIB_OPTIONS): Likewise. | |
13081 | * config/csky/t-csky-elf (MULTILIB_OPTIONS): Likewise. | |
13082 | (MULTILIB_EXCEPTIONS): Likewise. | |
13083 | ||
13084 | 2020-09-16 Jakub Jelinek <jakub@redhat.com> | |
13085 | ||
13086 | * config/arm/arm.c (arm_option_restore): Comment out opts argument | |
13087 | name to avoid unused parameter warnings. | |
13088 | ||
13089 | 2020-09-16 Jakub Jelinek <jakub@redhat.com> | |
13090 | ||
13091 | * optc-save-gen.awk: In cl_optimization_stream_out use | |
13092 | bp_pack_var_len_{int,unsigned} instead of bp_pack_value. In | |
13093 | cl_optimization_stream_in use bp_unpack_var_len_{int,unsigned} | |
13094 | instead of bp_unpack_value. Formatting fix. | |
13095 | ||
13096 | 2020-09-16 Jakub Jelinek <jakub@redhat.com> | |
13097 | ||
13098 | PR tree-optimization/97053 | |
13099 | * gimple-ssa-store-merging.c (check_no_overlap): Add FIRST_ORDER, | |
13100 | START, FIRST_EARLIER and LAST_EARLIER arguments. Return false if | |
13101 | any stores between FIRST_EARLIER inclusive and LAST_EARLIER exclusive | |
13102 | has order in between FIRST_ORDER and LAST_ORDER and overlaps the to | |
13103 | be merged store. | |
13104 | (imm_store_chain_info::try_coalesce_bswap): Add FIRST_EARLIER argument. | |
13105 | Adjust check_no_overlap caller. | |
13106 | (imm_store_chain_info::coalesce_immediate_stores): Add first_earlier | |
13107 | and last_earlier variables, adjust them during iterations. Adjust | |
13108 | check_no_overlap callers, call check_no_overlap even when extending | |
13109 | overlapping stores by extra INTEGER_CST stores. | |
13110 | ||
13111 | 2020-09-16 Jojo R <jiejie_rong@c-sky.com> | |
13112 | ||
13113 | * config/csky/csky-linux-elf.h (GLIBC_DYNAMIC_LINKER): Use mfloat-abi. | |
13114 | ||
13115 | 2020-09-16 Kewen Lin <linkw@linux.ibm.com> | |
13116 | ||
13117 | PR target/97019 | |
13118 | * config/rs6000/rs6000-p8swap.c (find_alignment_op): Adjust to | |
13119 | support multiple defintions which are all AND operations with | |
13120 | the mask -16B. | |
13121 | (recombine_lvx_pattern): Adjust to handle multiple AND operations | |
13122 | from find_alignment_op. | |
13123 | (recombine_stvx_pattern): Likewise. | |
13124 | ||
13125 | 2020-09-16 Jojo R <jiejie_rong@c-sky.com> | |
13126 | ||
13127 | * config/csky/csky.md (CSKY_NPARM_FREGS): New. | |
13128 | (call_value_internal_vs/d): New. | |
13129 | (untyped_call): New. | |
13130 | * config/csky/csky.h (TARGET_SINGLE_FPU): New. | |
13131 | (TARGET_DOUBLE_FPU): New. | |
13132 | (FUNCTION_VARG_REGNO_P): New. | |
13133 | (CSKY_VREG_MODE_P): New. | |
13134 | (FUNCTION_VARG_MODE_P): New. | |
13135 | (CUMULATIVE_ARGS): Add extra regs info. | |
13136 | (INIT_CUMULATIVE_ARGS): Use csky_init_cumulative_args. | |
13137 | (FUNCTION_ARG_REGNO_P): Use FUNCTION_VARG_REGNO_P. | |
13138 | * config/csky/csky-protos.h (csky_init_cumulative_args): Extern. | |
13139 | * config/csky/csky.c (csky_cpu_cpp_builtins): Support TARGET_HARD_FLOAT_ABI. | |
13140 | (csky_function_arg): Likewise. | |
13141 | (csky_num_arg_regs): Likewise. | |
13142 | (csky_function_arg_advance): Likewise. | |
13143 | (csky_function_value): Likewise. | |
13144 | (csky_libcall_value): Likewise. | |
13145 | (csky_function_value_regno_p): Likewise. | |
13146 | (csky_arg_partial_bytes): Likewise. | |
13147 | (csky_setup_incoming_varargs): Likewise. | |
13148 | (csky_init_cumulative_args): New. | |
13149 | ||
13150 | 2020-09-16 Bill Schmidt <wschmidt@linux.ibm.com> | |
13151 | ||
13152 | * config/rs6000/rs6000-call.c (altivec_init_builtins): Fix name | |
13153 | of __builtin_altivec_xst_len_r. | |
13154 | ||
13155 | 2020-09-15 Ilya Leoshkevich <iii@linux.ibm.com> | |
13156 | ||
13157 | * rtlanal.c (set_noop_p): Treat subregs of registers in | |
13158 | different modes conservatively. | |
13159 | ||
13160 | 2020-09-15 Richard Biener <rguenther@suse.de> | |
13161 | ||
13162 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Make swap | |
13163 | argument by-value and do not change it. | |
13164 | (vect_build_slp_tree_2): Adjust, set swap to NULL after last | |
13165 | use. | |
13166 | ||
13167 | 2020-09-15 Feng Xue <fxue@os.amperecomputing.com> | |
13168 | ||
13169 | PR tree-optimization/94234 | |
13170 | * match.pd (T)(A) +- (T)(B) -> (T)(A +- B): New simplification. | |
13171 | ||
13172 | 2020-09-15 Segher Boessenkool <segher@kernel.crashing.org> | |
13173 | ||
13174 | PR rtl-optimization/96475 | |
13175 | * bb-reorder.c (duplicate_computed_gotos): If we did anything, run | |
13176 | cleanup_cfg. | |
13177 | ||
13178 | 2020-09-15 Richard Biener <rguenther@suse.de> | |
13179 | ||
13180 | * tree-vect-slp.c (vect_build_slp_tree_2): Also consider | |
13181 | building an operand from scalars when building it did not | |
13182 | fail fatally but avoid messing with the upcall splitting | |
13183 | of groups. | |
13184 | ||
13185 | 2020-09-15 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
13186 | ||
13187 | * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Do not | |
13188 | check +D32 for CMSE if -mfloat-abi=soft | |
13189 | ||
13190 | 2020-09-15 liuhongt <hongtao.liu@intel.com> | |
13191 | ||
13192 | PR target/96744 | |
13193 | * config/i386/x86-tune-costs.h (struct processor_costs): | |
13194 | Increase mask <-> integer cost for non AVX512 target to avoid | |
13195 | spill gpr to mask. Also retune mask <-> integer and | |
13196 | mask_load/store for skylake_cost. | |
13197 | ||
13198 | 2020-09-15 Jakub Jelinek <jakub@redhat.com> | |
13199 | ||
13200 | PR target/97028 | |
13201 | * config/i386/sse.md (mul<mode>3<mask_name>_bcs, | |
13202 | <avx512>_div<mode>3<mask_name>_bcst): Use <avx512bcst> instead of | |
13203 | <<avx512bcst>>. | |
13204 | ||
13205 | 2020-09-15 Tobias Burnus <tobias@codesourcery.com> | |
13206 | ||
13207 | PR fortran/96668 | |
13208 | * gimplify.c (gimplify_omp_for): Add 'bool openacc' argument; | |
13209 | update omp_finish_clause calls. | |
13210 | (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses, | |
13211 | gimplify_expr, gimplify_omp_loop): Update omp_finish_clause | |
13212 | and/or gimplify_for calls. | |
13213 | * langhooks-def.h (lhd_omp_finish_clause): Add bool openacc arg. | |
13214 | * langhooks.c (lhd_omp_finish_clause): Likewise. | |
13215 | * langhooks.h (lhd_omp_finish_clause): Likewise. | |
13216 | * omp-low.c (scan_sharing_clauses): Keep GOMP_MAP_TO_PSET cause for | |
13217 | 'declare target' vars. | |
13218 | ||
13219 | 2020-09-15 Feng Xue <fxue@os.amperecomputing.com> | |
13220 | ||
13221 | PR tree-optimization/94234 | |
13222 | * genmatch.c (dt_simplify::gen_1): Emit check on final simplification | |
13223 | result when "!" is specified on toplevel output expr. | |
13224 | * match.pd ((A * C) +- (B * C) -> (A +- B) * C): Allow folding on expr | |
13225 | with multi-use operands if final result is a simple gimple value. | |
13226 | ||
13227 | 2020-09-14 Sergei Trofimovich <siarheit@google.com> | |
13228 | ||
13229 | * doc/invoke.texi: fix '-fprofile-reproducibility' option | |
13230 | spelling in manual. | |
13231 | ||
13232 | 2020-09-14 Jose E. Marchesi <jose.marchesi@oracle.com> | |
13233 | ||
13234 | * config/bpf/bpf.md ("nop"): Re-define as `ja 0'. | |
13235 | ||
13236 | 2020-09-14 Eric Botcazou <ebotcazou@adacore.com> | |
13237 | ||
13238 | * cgraphunit.c (cgraph_node::expand_thunk): Make sure to set | |
13239 | cfun->tail_call_marked when forcing a tail call. | |
13240 | * function.c (assign_parm_setup_reg): Always use a register to | |
13241 | load a parameter passed by reference if cfun->tail_call_marked. | |
13242 | ||
13243 | 2020-09-14 Pat Haugen <pthaugen@linux.ibm.com> | |
13244 | ||
13245 | * config/rs6000/power10.md (power10-mffgpr, power10-mftgpr): Rename to | |
13246 | power10-mtvsr/power10-mfvsr. | |
13247 | * config/rs6000/power6.md (X2F_power6, power6-mftgpr, power6-mffgpr): | |
13248 | Remove. | |
13249 | * config/rs6000/power8.md (power8-mffgpr, power8-mftgpr): Rename to | |
13250 | power8-mtvsr/power8-mfvsr. | |
13251 | * config/rs6000/power9.md (power9-mffgpr, power9-mftgpr): Rename to | |
13252 | power9-mtvsr/power9-mfvsr. | |
13253 | * config/rs6000/rs6000.c (rs6000_adjust_cost): Remove Power6 | |
13254 | TYPE_MFFGPR cases. | |
13255 | * config/rs6000/rs6000.md (mffgpr, mftgpr, zero_extendsi<mode>2, | |
13256 | extendsi<mode>2, @signbit<mode>2_dm, lfiwax, lfiwzx, *movsi_internal1, | |
13257 | movsi_from_sf, *movdi_from_sf_zero_ext, *mov<mode>_internal, | |
13258 | movsd_hardfloat, movsf_from_si, *mov<mode>_hardfloat64, p8_mtvsrwz, | |
13259 | p8_mtvsrd_df, p8_mtvsrd_sf, p8_mfvsrd_3_<mode>, *movdi_internal64, | |
13260 | unpack<mode>_dm): Rename mffgpr/mftgpr to mtvsr/mfvsr. | |
13261 | * config/rs6000/vsx.md (vsx_mov<mode>_64bit, vsx_extract_<mode>, | |
13262 | vsx_extract_si, *vsx_extract_<mode>_p8): Likewise. | |
13263 | ||
13264 | 2020-09-14 Jakub Jelinek <jakub@redhat.com> | |
13265 | ||
13266 | * config/arm/arm.opt (x_arm_arch_string, x_arm_cpu_string, | |
13267 | x_arm_tune_string): Remove TargetSave entries. | |
13268 | (march=, mcpu=, mtune=): Add Save keyword. | |
13269 | * config/arm/arm.c (arm_option_save): Remove. | |
13270 | (TARGET_OPTION_SAVE): Don't redefine. | |
13271 | (arm_option_restore): Don't restore x_arm_*_string here. | |
13272 | ||
13273 | 2020-09-14 Jakub Jelinek <jakub@redhat.com> | |
13274 | ||
13275 | * opt-read.awk: Also initialize extra_target_var_types array. | |
13276 | * opth-gen.awk: Emit explicit_mask arrays to struct cl_optimization | |
13277 | and cl_target_option. Adjust cl_optimization_save, | |
13278 | cl_optimization_restore, cl_target_option_save and | |
13279 | cl_target_option_restore declarations. | |
13280 | * optc-save-gen.awk: Add opts_set argument to cl_optimization_save, | |
13281 | cl_optimization_restore, cl_target_option_save and | |
13282 | cl_target_option_restore functions and save or restore opts_set | |
13283 | next to the opts values into or from explicit_mask arrays. | |
13284 | In cl_target_option_eq and cl_optimization_option_eq compare | |
13285 | explicit_mask arrays, in cl_target_option_hash and cl_optimization_hash | |
13286 | hash them and in cl_target_option_stream_out, | |
13287 | cl_target_option_stream_in, cl_optimization_stream_out and | |
13288 | cl_optimization_stream_in stream them. | |
13289 | * tree.h (build_optimization_node, build_target_option_node): Add | |
13290 | opts_set argument. | |
13291 | * tree.c (build_optimization_node): Add opts_set argument, pass it | |
13292 | to cl_optimization_save. | |
13293 | (build_target_option_node): Add opts_set argument, pass it to | |
13294 | cl_target_option_save. | |
13295 | * function.c (invoke_set_current_function_hook): Adjust | |
13296 | cl_optimization_restore caller. | |
13297 | * ipa-inline-transform.c (inline_call): Adjust cl_optimization_restore | |
13298 | and build_optimization_node callers. | |
13299 | * target.def (TARGET_OPTION_SAVE, TARGET_OPTION_RESTORE): Add opts_set | |
13300 | argument. | |
13301 | * target-globals.c (save_target_globals_default_opts): Adjust | |
13302 | cl_optimization_restore callers. | |
13303 | * toplev.c (process_options): Adjust build_optimization_node and | |
13304 | cl_optimization_restore callers. | |
13305 | (target_reinit): Adjust cl_optimization_restore caller. | |
13306 | * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): | |
13307 | Adjust build_optimization_node and cl_optimization_restore callers. | |
13308 | * doc/tm.texi: Updated. | |
13309 | * config/aarch64/aarch64.c (aarch64_override_options): Adjust | |
13310 | build_target_option_node caller. | |
13311 | (aarch64_option_save, aarch64_option_restore): Add opts_set argument. | |
13312 | (aarch64_set_current_function): Adjust cl_target_option_restore | |
13313 | caller. | |
13314 | (aarch64_option_valid_attribute_p): Adjust cl_target_option_save, | |
13315 | cl_target_option_restore, cl_optimization_restore, | |
13316 | build_optimization_node and build_target_option_node callers. | |
13317 | * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Adjust | |
13318 | cl_target_option_restore and build_target_option_node callers. | |
13319 | * config/arm/arm.c (arm_option_save, arm_option_restore): Add | |
13320 | opts_set argument. | |
13321 | (arm_option_override): Adjust cl_target_option_save, | |
13322 | build_optimization_node and build_target_option_node callers. | |
13323 | (arm_set_current_function): Adjust cl_target_option_restore caller. | |
13324 | (arm_valid_target_attribute_tree): Adjust build_target_option_node | |
13325 | caller. | |
13326 | (add_attribute): Formatting fix. | |
13327 | (arm_valid_target_attribute_p): Adjust cl_optimization_restore, | |
13328 | cl_target_option_restore, arm_valid_target_attribute_tree and | |
13329 | build_optimization_node callers. | |
13330 | * config/arm/arm-c.c (arm_pragma_target_parse): Adjust | |
13331 | cl_target_option_restore callers. | |
13332 | * config/csky/csky.c (csky_option_override): Adjust | |
13333 | build_target_option_node and cl_target_option_save callers. | |
13334 | * config/gcn/gcn.c (gcn_fixup_accel_lto_options): Adjust | |
13335 | build_optimization_node and cl_optimization_restore callers. | |
13336 | * config/i386/i386-builtins.c (get_builtin_code_for_version): | |
13337 | Adjust cl_target_option_save and cl_target_option_restore | |
13338 | callers. | |
13339 | * config/i386/i386-c.c (ix86_pragma_target_parse): Adjust | |
13340 | build_target_option_node and cl_target_option_restore callers. | |
13341 | * config/i386/i386-options.c (ix86_function_specific_save, | |
13342 | ix86_function_specific_restore): Add opts_set arguments. | |
13343 | (ix86_valid_target_attribute_tree): Adjust build_target_option_node | |
13344 | caller. | |
13345 | (ix86_valid_target_attribute_p): Adjust build_optimization_node, | |
13346 | cl_optimization_restore, cl_target_option_restore, | |
13347 | ix86_valid_target_attribute_tree and build_optimization_node callers. | |
13348 | (ix86_option_override_internal): Adjust build_target_option_node | |
13349 | caller. | |
13350 | (ix86_reset_previous_fndecl, ix86_set_current_function): Adjust | |
13351 | cl_target_option_restore callers. | |
13352 | * config/i386/i386-options.h (ix86_function_specific_save, | |
13353 | ix86_function_specific_restore): Add opts_set argument. | |
13354 | * config/nios2/nios2.c (nios2_option_override): Adjust | |
13355 | build_target_option_node caller. | |
13356 | (nios2_option_save, nios2_option_restore): Add opts_set argument. | |
13357 | (nios2_valid_target_attribute_tree): Adjust build_target_option_node | |
13358 | caller. | |
13359 | (nios2_valid_target_attribute_p): Adjust build_optimization_node, | |
13360 | cl_optimization_restore, cl_target_option_save and | |
13361 | cl_target_option_restore callers. | |
13362 | (nios2_set_current_function, nios2_pragma_target_parse): Adjust | |
13363 | cl_target_option_restore callers. | |
13364 | * config/pru/pru.c (pru_option_override): Adjust | |
13365 | build_target_option_node caller. | |
13366 | (pru_set_current_function): Adjust cl_target_option_restore | |
13367 | callers. | |
13368 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust | |
13369 | cl_target_option_save caller. | |
13370 | (rs6000_option_override_internal): Adjust build_target_option_node | |
13371 | caller. | |
13372 | (rs6000_valid_attribute_p): Adjust build_optimization_node, | |
13373 | cl_optimization_restore, cl_target_option_save, | |
13374 | cl_target_option_restore and build_target_option_node callers. | |
13375 | (rs6000_pragma_target_parse): Adjust cl_target_option_restore and | |
13376 | build_target_option_node callers. | |
13377 | (rs6000_activate_target_options): Adjust cl_target_option_restore | |
13378 | callers. | |
13379 | (rs6000_function_specific_save, rs6000_function_specific_restore): | |
13380 | Add opts_set argument. | |
13381 | * config/s390/s390.c (s390_function_specific_restore): Likewise. | |
13382 | (s390_option_override_internal): Adjust s390_function_specific_restore | |
13383 | caller. | |
13384 | (s390_option_override, s390_valid_target_attribute_tree): Adjust | |
13385 | build_target_option_node caller. | |
13386 | (s390_valid_target_attribute_p): Adjust build_optimization_node, | |
13387 | cl_optimization_restore and cl_target_option_restore callers. | |
13388 | (s390_activate_target_options): Adjust cl_target_option_restore | |
13389 | caller. | |
13390 | * config/s390/s390-c.c (s390_cpu_cpp_builtins): Adjust | |
13391 | cl_target_option_save caller. | |
13392 | (s390_pragma_target_parse): Adjust build_target_option_node and | |
13393 | cl_target_option_restore callers. | |
13394 | ||
13395 | 2020-09-13 Roger Sayle <roger@nextmovesoftware.com> | |
13396 | ||
13397 | * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]: | |
13398 | Provide accurate costs for DImode shifts of integer constants. | |
13399 | ||
13400 | 2020-09-12 Roger Sayle <roger@nextmovesoftware.com> | |
13401 | John David Anglin <danglin@gcc.gnu.org> | |
13402 | ||
13403 | * config/pa/pa.md (shrpsi4_1, shrpsi4_2): New define_insns split | |
13404 | out from previous shrpsi4 providing two commutitive variants using | |
13405 | plus_xor_ior_operator as a predicate. | |
13406 | (shrpdi4_1, shrpdi4_2, shrpdi_3, shrpdi_4): Likewise DImode versions | |
13407 | where _1 and _2 take register shifts, and _3 and _4 for integers. | |
13408 | (rotlsi3_internal): Name this anonymous instruction. | |
13409 | (rotrdi3): New DImode insn copied from rotrsi3. | |
13410 | (rotldi3): New DImode expander copied from rotlsi3. | |
13411 | (rotldi4_internal): New DImode insn copied from rotsi3_internal. | |
13412 | ||
13413 | 2020-09-11 Michael Meissner <meissner@linux.ibm.com> | |
13414 | ||
13415 | * config/rs6000/rs6000.c (rs6000_maybe_emit_maxc_minc): Rename | |
13416 | from rs6000_emit_p9_fp_minmax. Change return type to bool. Add | |
13417 | comments to document NaN/signed zero behavior. | |
13418 | (rs6000_maybe_emit_fp_cmove): Rename from rs6000_emit_p9_fp_cmove. | |
13419 | (have_compare_and_set_mask): New helper function. | |
13420 | (rs6000_emit_cmove): Update calls to new names and the new helper | |
13421 | function. | |
13422 | ||
13423 | 2020-09-11 Nathan Sidwell <nathan@acm.org> | |
13424 | ||
13425 | * config/i386/sse.md (mov<mode>): Fix operand indices. | |
13426 | ||
13427 | 2020-09-11 Martin Sebor <msebor@redhat.com> | |
13428 | ||
13429 | PR middle-end/96903 | |
13430 | * builtins.c (compute_objsize): Remove incorrect offset adjustment. | |
13431 | (compute_objsize): Adjust offset range here instead. | |
13432 | ||
13433 | 2020-09-11 Richard Biener <rguenther@suse.de> | |
13434 | ||
13435 | PR tree-optimization/97020 | |
13436 | * tree-vect-slp.c (vect_slp_analyze_operations): Apply | |
13437 | SLP costs when doing loop vectorization. | |
13438 | ||
13439 | 2020-09-11 Tom de Vries <tdevries@suse.de> | |
13440 | ||
13441 | PR target/96964 | |
13442 | * config/nvptx/nvptx.md (define_expand "atomic_test_and_set"): New | |
13443 | expansion. | |
13444 | ||
13445 | 2020-09-11 Andrew Stubbs <ams@codesourcery.com> | |
13446 | ||
13447 | * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align TImode registers. | |
13448 | * config/gcn/gcn.md: Assert that TImode registers do not early clobber. | |
13449 | ||
13450 | 2020-09-11 Richard Biener <rguenther@suse.de> | |
13451 | ||
13452 | * tree-vectorizer.h (_slp_instance::location): New method. | |
13453 | (vect_schedule_slp): Adjust prototype. | |
13454 | * tree-vectorizer.c (vec_info::remove_stmt): Adjust | |
13455 | the BB region begin if we removed the stmt it points to. | |
13456 | * tree-vect-loop.c (vect_transform_loop): Adjust. | |
13457 | * tree-vect-slp.c (_slp_instance::location): Implement. | |
13458 | (vect_analyze_slp_instance): For BB vectorization set | |
13459 | vect_location to that of the instance. | |
13460 | (vect_slp_analyze_operations): Likewise. | |
13461 | (vect_bb_vectorization_profitable_p): Remove wrapper. | |
13462 | (vect_slp_analyze_bb_1): Remove cost check here. | |
13463 | (vect_slp_region): Cost check and code generate subgraphs separately, | |
13464 | report optimized locations and missed optimizations due to | |
13465 | profitability for each of them. | |
13466 | (vect_schedule_slp): Get the vector of SLP graph entries to | |
13467 | vectorize as argument. | |
13468 | ||
13469 | 2020-09-11 Richard Biener <rguenther@suse.de> | |
13470 | ||
13471 | PR tree-optimization/97013 | |
13472 | * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove duplicate dumping. | |
13473 | ||
13474 | 2020-09-11 Richard Biener <rguenther@suse.de> | |
13475 | ||
13476 | * tree-vect-slp.c (vect_build_slp_tree_1): Check vector | |
13477 | types for all lanes are compatible. | |
13478 | (vect_analyze_slp_instance): Appropriately check for stores. | |
13479 | (vect_schedule_slp): Likewise. | |
13480 | ||
13481 | 2020-09-11 Tom de Vries <tdevries@suse.de> | |
13482 | ||
13483 | * config/nvptx/nvptx.c (nvptx_assemble_value): Fix undefined | |
13484 | behaviour. | |
13485 | ||
13486 | 2020-09-11 Tom de Vries <tdevries@suse.de> | |
13487 | ||
13488 | * config/nvptx/nvptx.c (nvptx_assemble_value): Handle negative | |
13489 | __int128. | |
13490 | ||
13491 | 2020-09-11 Aaron Sawdey <acsawdey@linux.ibm.com> | |
13492 | ||
13493 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
13494 | Change default. | |
13495 | ||
13496 | 2020-09-10 Michael Meissner <meissner@linux.ibm.com> | |
13497 | ||
13498 | * config/rs6000/rs6000-protos.h (rs6000_emit_cmove): Change return | |
13499 | type to bool. | |
13500 | (rs6000_emit_int_cmove): Change return type to bool. | |
13501 | * config/rs6000/rs6000.c (rs6000_emit_cmove): Change return type | |
13502 | to bool. | |
13503 | (rs6000_emit_int_cmove): Change return type to bool. | |
13504 | ||
13505 | 2020-09-10 Tom de Vries <tdevries@suse.de> | |
13506 | ||
13507 | PR target/97004 | |
13508 | * config/nvptx/nvptx.c (nvptx_assemble_value): Handle shift by | |
13509 | number of bits in shift operand. | |
13510 | ||
13511 | 2020-09-10 Jakub Jelinek <jakub@redhat.com> | |
13512 | ||
13513 | * lto-streamer-out.c (collect_block_tree_leafs): Recurse on | |
13514 | root rather than BLOCK_SUBBLOCKS (root). | |
13515 | ||
13516 | 2020-09-10 Alex Coplan <alex.coplan@arm.com> | |
13517 | ||
13518 | * config/aarch64/aarch64-cores.def: Add Cortex-R82. | |
13519 | * config/aarch64/aarch64-tune.md: Regenerate. | |
13520 | * doc/invoke.texi: Add entry for Cortex-R82. | |
13521 | ||
13522 | 2020-09-10 Alex Coplan <alex.coplan@arm.com> | |
13523 | ||
13524 | * common/config/aarch64/aarch64-common.c | |
13525 | (aarch64_get_extension_string_for_isa_flags): Don't force +crc for | |
13526 | Armv8-R. | |
13527 | * config/aarch64/aarch64-arches.def: Add entry for Armv8-R. | |
13528 | * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros): Set | |
13529 | __ARM_ARCH_PROFILE correctly for Armv8-R. | |
13530 | * config/aarch64/aarch64.h (AARCH64_FL_V8_R): New. | |
13531 | (AARCH64_FL_FOR_ARCH8_R): New. | |
13532 | (AARCH64_ISA_V8_R): New. | |
13533 | * doc/invoke.texi: Add Armv8-R to architecture table. | |
13534 | ||
13535 | 2020-09-10 Jakub Jelinek <jakub@redhat.com> | |
13536 | ||
13537 | * config/arm/arm.c (arm_override_options_after_change_1): Add opts_set | |
13538 | argument, test opts_set->x_str_align_functions rather than | |
13539 | opts->x_str_align_functions. | |
13540 | (arm_override_options_after_change, arm_option_override_internal, | |
13541 | arm_set_current_function): Adjust callers. | |
13542 | ||
13543 | 2020-09-10 Jakub Jelinek <jakub@redhat.com> | |
13544 | ||
13545 | PR target/96939 | |
13546 | * config/arm/arm.c (arm_override_options_after_change): Don't call | |
13547 | arm_configure_build_target here. | |
13548 | (arm_set_current_function): Call arm_override_options_after_change_1 | |
13549 | at the end. | |
13550 | ||
13551 | 2020-09-10 Pat Haugen <pthaugen@linux.ibm.com> | |
13552 | ||
13553 | * config/rs6000/rs6000.md | |
13554 | (lfiwzx, floatunssi<mode>2_lfiwzx, p8_mtvsrwz, p8_mtvsrd_sf): Fix insn | |
13555 | type. | |
13556 | * config/rs6000/vsx.md | |
13557 | (vsx_concat_<mode>, vsx_splat_<mode>_reg, vsx_splat_v4sf): Likewise. | |
13558 | ||
13559 | 2020-09-10 Jonathan Yong <10walls@gmail.com> | |
13560 | ||
13561 | * config.host: Adjust plugin name for Windows. | |
13562 | ||
13563 | 2020-09-10 Tom de Vries <tdevries@suse.de> | |
13564 | ||
13565 | PR tree-optimization/97000 | |
13566 | * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): Don't clear | |
13567 | flag for IFN_UNIQUE. | |
13568 | ||
13569 | 2020-09-10 Jakub Jelinek <jakub@redhat.com> | |
13570 | ||
13571 | PR debug/93865 | |
13572 | * lto-streamer.h (struct output_block): Add emit_pwd member. | |
13573 | * lto-streamer-out.c: Include toplev.h. | |
13574 | (clear_line_info): Set emit_pwd. | |
13575 | (lto_output_location_1): Encode the ob->current_file != xloc.file | |
13576 | bit directly into the location number. If changing file, emit | |
13577 | additionally a bit whether pwd is emitted and emit it before the | |
13578 | first relative pathname since clear_line_info. | |
13579 | (output_function, output_constructor): Don't call clear_line_info | |
13580 | here. | |
13581 | * lto-streamer-in.c (struct string_pair_map): New type. | |
13582 | (struct string_pair_map_hasher): New type. | |
13583 | (string_pair_map_hasher::hash): New method. | |
13584 | (string_pair_map_hasher::equal): New method. | |
13585 | (path_name_pair_hash_table, string_pair_map_allocator): New variables. | |
13586 | (relative_path_prefix, canon_relative_path_prefix, | |
13587 | canon_relative_file_name): New functions. | |
13588 | (canon_file_name): Add relative_prefix argument, if non-NULL | |
13589 | and string is a relative path, return canon_relative_file_name. | |
13590 | (lto_location_cache::input_location_and_block): Decode file change | |
13591 | bit from the location number. If changing file, unpack bit whether | |
13592 | pwd is streamed and stream in pwd. Adjust canon_file_name caller. | |
13593 | (lto_free_file_name_hash): Delete path_name_pair_hash_table | |
13594 | and string_pair_map_allocator. | |
13595 | ||
13596 | 2020-09-10 Richard Biener <rguenther@suse.de> | |
13597 | ||
13598 | PR tree-optimization/96043 | |
13599 | * tree-vectorizer.h (_slp_instance::cost_vec): New. | |
13600 | (_slp_instance::subgraph_entries): Likewise. | |
13601 | (BB_VINFO_TARGET_COST_DATA): Remove. | |
13602 | * tree-vect-slp.c (vect_free_slp_instance): Free | |
13603 | cost_vec and subgraph_entries. | |
13604 | (vect_analyze_slp_instance): Initialize them. | |
13605 | (vect_slp_analyze_operations): Defer passing costs to | |
13606 | the target, instead record them in the SLP graph entry. | |
13607 | (get_ultimate_leader): New helper for graph partitioning. | |
13608 | (vect_bb_partition_graph_r): Likewise. | |
13609 | (vect_bb_partition_graph): New function to partition the | |
13610 | SLP graph into independently costable parts. | |
13611 | (vect_bb_vectorization_profitable_p): Adjust to work on | |
13612 | a subgraph. | |
13613 | (vect_bb_vectorization_profitable_p): New wrapper, | |
13614 | discarding non-profitable vectorization of subgraphs. | |
13615 | (vect_slp_analyze_bb_1): Call vect_bb_partition_graph before | |
13616 | costing. | |
13617 | ||
13618 | 2020-09-09 David Malcolm <dmalcolm@redhat.com> | |
13619 | ||
13620 | PR analyzer/94355 | |
13621 | * doc/invoke.texi: Document -Wanalyzer-mismatching-deallocation. | |
13622 | ||
13623 | 2020-09-09 Segher Boessenkool <segher@kernel.crashing.org> | |
13624 | ||
13625 | PR rtl-optimization/96475 | |
13626 | * bb-reorder.c (maybe_duplicate_computed_goto): Remove single_pred_p | |
13627 | micro-optimization. | |
13628 | ||
13629 | 2020-09-09 Tom de Vries <tdevries@suse.de> | |
13630 | ||
13631 | * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Fix Wformat | |
13632 | warning. | |
13633 | ||
13634 | 2020-09-09 Richard Biener <rguenther@suse.de> | |
13635 | ||
13636 | * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do | |
13637 | nothing when the permutation doesn't permute. | |
13638 | ||
13639 | 2020-09-09 Tom de Vries <tdevries@suse.de> | |
13640 | ||
13641 | PR target/96991 | |
13642 | * config/nvptx/nvptx.c (write_fn_proto): Fix boolean type check. | |
13643 | ||
13644 | 2020-09-09 Richard Biener <rguenther@suse.de> | |
13645 | ||
13646 | * tree-vect-stmts.c (vectorizable_comparison): Allow | |
13647 | STMT_VINFO_LIVE_P stmts. | |
13648 | ||
13649 | 2020-09-09 Richard Biener <rguenther@suse.de> | |
13650 | ||
13651 | * tree-vect-stmts.c (vectorizable_condition): Allow | |
13652 | STMT_VINFO_LIVE_P stmts. | |
13653 | ||
13654 | 2020-09-09 Richard Biener <rguenther@suse.de> | |
13655 | ||
13656 | PR tree-optimization/96978 | |
13657 | * tree-vect-stmts.c (vectorizable_condition): Do not | |
13658 | look at STMT_VINFO_LIVE_P for BB vectorization. | |
13659 | (vectorizable_comparison): Likewise. | |
13660 | ||
13661 | 2020-09-09 liuhongt <hongtao.liu@intel.com> | |
13662 | ||
13663 | PR target/96955 | |
13664 | * config/i386/i386.md (get_thread_pointer<mode>): New | |
13665 | expander. | |
13666 | ||
13667 | 2020-09-08 Julian Brown <julian@codesourcery.com> | |
13668 | ||
13669 | * config/gcn/gcn-valu.md (scatter<mode>_insn_1offset_ds<exec_scatter>): | |
13670 | Add waitcnt. | |
13671 | * config/gcn/gcn.md (*mov<mode>_insn, *movti_insn): Add waitcnt to | |
13672 | ds_write alternatives. | |
13673 | ||
13674 | 2020-09-08 Julian Brown <julian@codesourcery.com> | |
13675 | ||
13676 | * config/gcn/mkoffload.c (process_asm): Initialise regcount. Update | |
13677 | scanning for SGPR/VGPR usage for HSACO v3. | |
13678 | ||
13679 | 2020-09-08 Aldy Hernandez <aldyh@redhat.com> | |
13680 | ||
13681 | PR tree-optimization/96967 | |
13682 | * tree-vrp.c (find_case_label_range): Cast label range to | |
13683 | type of switch operand. | |
13684 | ||
13685 | 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
13686 | ||
13687 | * config/msp430/msp430.c (msp430_file_end): Fix jumbled | |
13688 | HAVE_AS_MSPABI_ATTRIBUTE and HAVE_AS_GNU_ATTRIBUTE checks. | |
13689 | * configure: Regenerate. | |
13690 | * configure.ac: Use ".mspabi_attribute 4,2" to check for assembler | |
13691 | support for this object attribute directive. | |
13692 | ||
13693 | 2020-09-08 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
13694 | ||
13695 | * common/config/msp430/msp430-common.c (msp430_handle_option): Remove | |
13696 | OPT_mcpu_ handling. | |
13697 | Set target_cpu value to new enum values when parsing certain -mmcu= | |
13698 | values. | |
13699 | * config/msp430/msp430-opts.h (enum msp430_cpu_types): New. | |
13700 | * config/msp430/msp430.c (msp430_option_override): Handle new | |
13701 | target_cpu enum values. | |
13702 | Set target_cpu using extracted value for given MCU when -mcpu= | |
13703 | option is not passed by the user. | |
13704 | * config/msp430/msp430.opt: Handle -mcpu= values using enums. | |
13705 | ||
13706 | 2020-09-07 Richard Sandiford <richard.sandiford@arm.com> | |
13707 | ||
13708 | PR rtl-optimization/96796 | |
13709 | * lra-constraints.c (in_class_p): Add a default-false | |
13710 | allow_all_reload_class_changes_p parameter. Do not treat | |
13711 | reload moves specially when the parameter is true. | |
13712 | (get_reload_reg): Try to narrow the class of an existing OP_OUT | |
13713 | reload if we're reloading a reload pseudo in a reload instruction. | |
13714 | ||
13715 | 2020-09-07 Andrea Corallo <andrea.corallo@arm.com> | |
13716 | ||
13717 | * tree-vect-loop.c (vect_estimate_min_profitable_iters): Revert | |
13718 | dead-code removal introduced by 09fa6acd8d9 + add a comment to | |
13719 | clarify. | |
13720 | ||
13721 | 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
13722 | ||
13723 | * doc/rtl.texi (subreg): Fix documentation to state there is a known | |
13724 | number of undefined bits in regs and subregs of MODE_PARTIAL_INT modes. | |
13725 | ||
13726 | 2020-09-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
13727 | ||
13728 | * config/msp430/msp430.c (msp430_option_override): Don't set the | |
13729 | ISA to 430 when the MCU is unrecognized. | |
13730 | ||
13731 | 2020-09-07 Iain Sandoe <iain@sandoe.co.uk> | |
13732 | ||
13733 | * config/darwin.c (darwin_libc_has_function): Report sincos | |
13734 | available from 10.9. | |
13735 | ||
13736 | 2020-09-07 Alex Coplan <alex.coplan@arm.com> | |
13737 | ||
13738 | * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): Delete. | |
13739 | (*subs_mul_imm_<mode>): Delete. | |
13740 | (*adds_<optab><mode>_multp2): Delete. | |
13741 | (*subs_<optab><mode>_multp2): Delete. | |
13742 | (*add_mul_imm_<mode>): Delete. | |
13743 | (*add_<optab><ALLX:mode>_mult_<GPI:mode>): Delete. | |
13744 | (*add_<optab><SHORT:mode>_mult_si_uxtw): Delete. | |
13745 | (*add_<optab><mode>_multp2): Delete. | |
13746 | (*add_<optab>si_multp2_uxtw): Delete. | |
13747 | (*add_uxt<mode>_multp2): Delete. | |
13748 | (*add_uxtsi_multp2_uxtw): Delete. | |
13749 | (*sub_mul_imm_<mode>): Delete. | |
13750 | (*sub_mul_imm_si_uxtw): Delete. | |
13751 | (*sub_<optab><mode>_multp2): Delete. | |
13752 | (*sub_<optab>si_multp2_uxtw): Delete. | |
13753 | (*sub_uxt<mode>_multp2): Delete. | |
13754 | (*sub_uxtsi_multp2_uxtw): Delete. | |
13755 | (*neg_mul_imm_<mode>2): Delete. | |
13756 | (*neg_mul_imm_si2_uxtw): Delete. | |
13757 | * config/aarch64/predicates.md (aarch64_pwr_imm3): Delete. | |
13758 | (aarch64_pwr_2_si): Delete. | |
13759 | (aarch64_pwr_2_di): Delete. | |
13760 | ||
13761 | 2020-09-07 Alex Coplan <alex.coplan@arm.com> | |
13762 | ||
13763 | * config/aarch64/aarch64.md | |
13764 | (*adds_<optab><ALLX:mode>_<GPI:mode>): Ensure extended operand | |
13765 | agrees with width of extension specifier. | |
13766 | (*subs_<optab><ALLX:mode>_<GPI:mode>): Likewise. | |
13767 | (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise. | |
13768 | (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise. | |
13769 | (*add_<optab><ALLX:mode>_<GPI:mode>): Likewise. | |
13770 | (*add_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise. | |
13771 | (*add_uxt<mode>_shift2): Likewise. | |
13772 | (*sub_<optab><ALLX:mode>_<GPI:mode>): Likewise. | |
13773 | (*sub_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise. | |
13774 | (*sub_uxt<mode>_shift2): Likewise. | |
13775 | (*cmp_swp_<optab><ALLX:mode>_reg<GPI:mode>): Likewise. | |
13776 | (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Likewise. | |
13777 | ||
13778 | 2020-09-07 Richard Biener <rguenther@suse.de> | |
13779 | ||
13780 | * tree-vect-slp.c (vect_analyze_slp_instance): Dump | |
13781 | stmts we start SLP analysis from, failure and splitting. | |
13782 | (vect_schedule_slp): Dump SLP graph entry and root stmt | |
13783 | we are about to emit code for. | |
13784 | ||
13785 | 2020-09-07 Martin Storsjö <martin@martin.st> | |
13786 | ||
13787 | * dwarf2out.c (file_name_acquire): Make a strchr return value | |
13788 | pointer to const. | |
13789 | ||
13790 | 2020-09-07 Jakub Jelinek <jakub@redhat.com> | |
13791 | ||
13792 | PR debug/94235 | |
13793 | * lto-streamer-out.c (output_cfg): Also stream goto_locus for edges. | |
13794 | Use bp_pack_var_len_unsigned instead of streamer_write_uhwi to stream | |
13795 | e->dest->index and e->flags. | |
13796 | (output_function): Call output_cfg before output_ssa_name, rather than | |
13797 | after streaming all bbs. | |
13798 | * lto-streamer-in.c (input_cfg): Stream in goto_locus for edges. | |
13799 | Use bp_unpack_var_len_unsigned instead of streamer_read_uhwi to stream | |
13800 | in dest_index and edge_flags. | |
13801 | ||
13802 | 2020-09-07 Richard Biener <rguenther@suse.de> | |
13803 | ||
13804 | * tree-vectorizer.h (vectorizable_live_operation): Adjust. | |
13805 | * tree-vect-loop.c (vectorizable_live_operation): Vectorize | |
13806 | live lanes out of basic-block vectorization nodes. | |
13807 | * tree-vect-slp.c (vect_bb_slp_mark_live_stmts): New function. | |
13808 | (vect_slp_analyze_operations): Analyze live lanes and their | |
13809 | vectorization possibility after the whole SLP graph is final. | |
13810 | (vect_bb_slp_scalar_cost): Adjust for vectorized live lanes. | |
13811 | * tree-vect-stmts.c (can_vectorize_live_stmts): Adjust. | |
13812 | (vect_transform_stmt): Call can_vectorize_live_stmts also for | |
13813 | basic-block vectorization. | |
13814 | ||
13815 | 2020-09-04 Richard Biener <rguenther@suse.de> | |
13816 | ||
13817 | PR tree-optimization/96698 | |
13818 | PR tree-optimization/96920 | |
13819 | * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): Remove. | |
13820 | (loop_vec_info::reduc_latch_slp_defs): Likewise. | |
13821 | * tree-vect-stmts.c (vect_transform_stmt): Remove vectorized | |
13822 | cycle PHI latch code. | |
13823 | * tree-vect-loop.c (maybe_set_vectorized_backedge_value): New | |
13824 | helper to set vectorized cycle PHI latch values. | |
13825 | (vect_transform_loop): Walk over all PHIs again after | |
13826 | vectorizing them, calling maybe_set_vectorized_backedge_value. | |
13827 | Call maybe_set_vectorized_backedge_value for each vectorized | |
13828 | stmt. Remove delayed update code. | |
13829 | * tree-vect-slp.c (vect_analyze_slp_instance): Initialize | |
13830 | SLP instance reduc_phis member. | |
13831 | (vect_schedule_slp): Set vectorized cycle PHI latch values. | |
13832 | ||
13833 | 2020-09-04 Andrea Corallo <andrea.corallo@arm.com> | |
13834 | ||
13835 | * tree-vect-loop.c (vect_estimate_min_profitable_iters): Remove | |
13836 | dead code as LOOP_VINFO_USING_PARTIAL_VECTORS_P (loop_vinfo) is | |
13837 | always verified. | |
13838 | ||
13839 | 2020-09-04 Christophe Lyon <christophe.lyon@linaro.org> | |
13840 | ||
13841 | PR target/96769 | |
13842 | * config/arm/thumb1.md: Move movsi splitter for | |
13843 | arm_disable_literal_pool after the other movsi splitters. | |
13844 | ||
13845 | 2020-09-04 Aldy Hernandez <aldyh@redhat.com> | |
13846 | ||
13847 | * range-op.cc (range_operator::fold_range): Rename widest_irange | |
13848 | to int_range_max. | |
13849 | (operator_div::wi_fold): Same. | |
13850 | (operator_lshift::op1_range): Same. | |
13851 | (operator_rshift::op1_range): Same. | |
13852 | (operator_cast::fold_range): Same. | |
13853 | (operator_cast::op1_range): Same. | |
13854 | (operator_bitwise_and::remove_impossible_ranges): Same. | |
13855 | (operator_bitwise_and::op1_range): Same. | |
13856 | (operator_abs::op1_range): Same. | |
13857 | (range_cast): Same. | |
13858 | (widest_irange_tests): Same. | |
13859 | (range3_tests): Rename irange3 to int_range3. | |
13860 | (int_range_max_tests): Rename from widest_irange_tests. | |
13861 | Rename widest_irange to int_range_max. | |
13862 | (operator_tests): Rename widest_irange to int_range_max. | |
13863 | (range_tests): Same. | |
13864 | * tree-vrp.c (find_case_label_range): Same. | |
13865 | * value-range.cc (irange::irange_intersect): Same. | |
13866 | (irange::invert): Same. | |
13867 | * value-range.h: Same. | |
13868 | ||
13869 | 2020-09-04 Richard Biener <rguenther@suse.de> | |
13870 | ||
13871 | PR tree-optimization/96931 | |
13872 | * tree-cfgcleanup.c (cleanup_call_ctrl_altering_flag): If | |
13873 | there's a fallthru edge and no abnormal edge the call is | |
13874 | no longer control-altering. | |
13875 | (cleanup_control_flow_bb): Pass down the BB to | |
13876 | cleanup_call_ctrl_altering_flag. | |
13877 | ||
13878 | 2020-09-04 Jakub Jelinek <jakub@redhat.com> | |
13879 | ||
13880 | * lto-streamer.h (stream_input_location_now): Remove declaration. | |
13881 | * lto-streamer-in.c (stream_input_location_now): Remove. | |
13882 | (input_eh_region, input_struct_function_base): Use | |
13883 | stream_input_location instead of stream_input_location_now. | |
13884 | ||
13885 | 2020-09-04 Jakub Jelinek <jakub@redhat.com> | |
13886 | ||
13887 | * lto-streamer.h (struct output_block): Add reset_locus member. | |
13888 | * lto-streamer-out.c (clear_line_info): Set reset_locus to true. | |
13889 | (lto_output_location_1): If reset_locus, clear it and ensure | |
13890 | current_{file,line,col} is different from xloc members. | |
13891 | ||
13892 | 2020-09-04 David Faust <david.faust@oracle.com> | |
13893 | ||
13894 | * config/bpf/bpf.h (ASM_SPEC): Pass -mxbpf to gas, if specified. | |
13895 | * config/bpf/bpf.c (bpf_output_call): Support indirect calls in xBPF. | |
13896 | ||
13897 | 2020-09-03 Martin Jambor <mjambor@suse.cz> | |
13898 | ||
13899 | PR tree-optimization/96820 | |
13900 | * tree-sra.c (create_access): Disqualify candidates with accesses | |
13901 | beyond the end of the original aggregate. | |
13902 | (maybe_add_sra_candidate): Check that candidate type size fits | |
13903 | signed uhwi for the sake of consistency. | |
13904 | ||
13905 | 2020-09-03 Will Schmidt <will_schmidt@vnet.ibm.com> | |
13906 | ||
13907 | * config/rs6000/rs6000-call.c (rs6000_init_builtin): Update V2DI_type_node | |
13908 | and unsigned_V2DI_type_node definitions. | |
13909 | ||
13910 | 2020-09-03 Jakub Jelinek <jakub@redhat.com> | |
13911 | ||
13912 | PR c++/96901 | |
13913 | * tree.h (struct decl_tree_traits): New type. | |
13914 | (decl_tree_map): New typedef. | |
13915 | ||
13916 | 2020-09-03 Jakub Jelinek <jakub@redhat.com> | |
13917 | ||
13918 | PR lto/94311 | |
13919 | * gimple.h (gimple_location_ptr, gimple_phi_arg_location_ptr): New | |
13920 | functions. | |
13921 | * streamer-hooks.h (struct streamer_hooks): Add | |
13922 | output_location_and_block callback. Fix up formatting for | |
13923 | output_location. | |
13924 | (stream_output_location_and_block): Define. | |
13925 | * lto-streamer.h (class lto_location_cache): Fix comment typo. Add | |
13926 | current_block member. | |
13927 | (lto_location_cache::input_location_and_block): New method. | |
13928 | (lto_location_cache::lto_location_cache): Initialize current_block. | |
13929 | (lto_location_cache::cached_location): Add block member. | |
13930 | (struct output_block): Add current_block member. | |
13931 | (lto_output_location): Formatting fix. | |
13932 | (lto_output_location_and_block): Declare. | |
13933 | * lto-streamer.c (lto_streamer_hooks_init): Initialize | |
13934 | streamer_hooks.output_location_and_block. | |
13935 | * lto-streamer-in.c (lto_location_cache::cmp_loc): Also compare | |
13936 | block members. | |
13937 | (lto_location_cache::apply_location_cache): Handle blocks. | |
13938 | (lto_location_cache::accept_location_cache, | |
13939 | lto_location_cache::revert_location_cache): Fix up function comments. | |
13940 | (lto_location_cache::input_location_and_block): New method. | |
13941 | (lto_location_cache::input_location): Implement using | |
13942 | input_location_and_block. | |
13943 | (input_function): Invoke apply_location_cache after streaming in all | |
13944 | bbs. | |
13945 | * lto-streamer-out.c (clear_line_info): Set current_block. | |
13946 | (lto_output_location_1): New function, moved from lto_output_location, | |
13947 | added block handling. | |
13948 | (lto_output_location): Implement using lto_output_location_1. | |
13949 | (lto_output_location_and_block): New function. | |
13950 | * gimple-streamer-in.c (input_phi): Use input_location_and_block | |
13951 | to input and cache both location and block. | |
13952 | (input_gimple_stmt): Likewise. | |
13953 | * gimple-streamer-out.c (output_phi): Use | |
13954 | stream_output_location_and_block. | |
13955 | (output_gimple_stmt): Likewise. | |
13956 | ||
13957 | 2020-09-03 Richard Biener <rguenther@suse.de> | |
13958 | ||
13959 | * tree-vect-generic.c (tree_vec_extract): Remove odd | |
13960 | special-casing of boolean vectors. | |
13961 | * fold-const.c (fold_ternary_loc): Handle boolean vector | |
13962 | type BIT_FIELD_REFs. | |
13963 | ||
13964 | 2020-09-03 Hongtao Liu <hongtao.liu@intel.com> | |
13965 | ||
13966 | PR target/87767 | |
13967 | * config/i386/i386-features.c | |
13968 | (replace_constant_pool_with_broadcast): New function. | |
13969 | (constant_pool_broadcast): Ditto. | |
13970 | (class pass_constant_pool_broadcast): New pass. | |
13971 | (make_pass_constant_pool_broadcast): Ditto. | |
13972 | (remove_partial_avx_dependency): Call | |
13973 | replace_constant_pool_with_broadcast under TARGET_AVX512F, it | |
13974 | would save compile time when both pass rpad and cpb are | |
13975 | available. | |
13976 | (remove_partial_avx_dependency_gate): New function. | |
13977 | (class pass_remove_partial_avx_dependency::gate): Call | |
13978 | remove_partial_avx_dependency_gate. | |
13979 | * config/i386/i386-passes.def: Insert new pass after combine. | |
13980 | * config/i386/i386-protos.h | |
13981 | (make_pass_constant_pool_broadcast): Declare. | |
13982 | * config/i386/sse.md (*avx512dq_mul<mode>3<mask_name>_bcst): | |
13983 | New define_insn. | |
13984 | (*avx512f_mul<mode>3<mask_name>_bcst): Ditto. | |
13985 | * config/i386/avx512fintrin.h (_mm512_set1_ps, | |
13986 | _mm512_set1_pd,_mm512_set1_epi32, _mm512_set1_epi64): Adjusted. | |
13987 | ||
13988 | 2020-09-02 Jonathan Wakely <jwakely@redhat.com> | |
13989 | ||
13990 | PR c++/60304 | |
13991 | * ginclude/stdbool.h (bool, false, true): Never define for C++. | |
13992 | ||
13993 | 2020-09-02 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
13994 | ||
13995 | * doc/invoke.texi (MSP430 options): Fix -mlarge description to | |
13996 | indicate size_t is a 20-bit type. | |
13997 | ||
13998 | 2020-09-02 Roger Sayle <roger@nextmovesoftware.com> | |
13999 | ||
14000 | * config/pa/pa.c (hppa_rtx_costs) [ASHIFT, ASHIFTRT, LSHIFTRT]: | |
14001 | Provide accurate costs for shifts of integer constants. | |
14002 | ||
14003 | 2020-09-02 Jose E. Marchesi <jose.marchesi@oracle.com> | |
14004 | ||
14005 | * config/bpf/bpf.c (bpf_asm_named_section): Delete. | |
14006 | (TARGET_ASM_NAMED_SECTION): Likewise. | |
14007 | ||
14008 | 2020-09-02 Jose E. Marchesi <jemarch@gnu.org> | |
14009 | ||
14010 | * config.gcc: Use elfos.h in bpf-*-* targets. | |
14011 | * config/bpf/bpf.h (MAX_OFILE_ALIGNMENT): Remove definition. | |
14012 | (COMMON_ASM_OP): Likewise. | |
14013 | (INIT_SECTION_ASM_OP): Likewise. | |
14014 | (FINI_SECTION_ASM_OP): Likewise. | |
14015 | (ASM_OUTPUT_SKIP): Likewise. | |
14016 | (ASM_OUTPUT_ALIGNED_COMMON): Likewise. | |
14017 | (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. | |
14018 | ||
14019 | 2020-09-01 Martin Sebor <msebor@redhat.com> | |
14020 | ||
14021 | * builtins.c (compute_objsize): Only replace the upper bound | |
14022 | of a POINTER_PLUS offset when it's less than the lower bound. | |
14023 | ||
14024 | 2020-09-01 Peter Bergner <bergner@linux.ibm.com> | |
14025 | ||
14026 | PR target/96808 | |
14027 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Do not | |
14028 | reuse accumulator memory reference for source and destination accesses. | |
14029 | ||
14030 | 2020-09-01 Martin Liska <mliska@suse.cz> | |
14031 | ||
14032 | * cfgrtl.c (rtl_create_basic_block): Use default value for | |
14033 | growth vector function. | |
14034 | * gimple.c (gimple_set_bb): Likewise. | |
14035 | * symbol-summary.h: Likewise. | |
14036 | * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. | |
14037 | (build_gimple_cfg): Likewise. | |
14038 | (create_bb): Likewise. | |
14039 | (move_block_to_fn): Likewise. | |
14040 | ||
14041 | 2020-09-01 Martin Liska <mliska@suse.cz> | |
14042 | ||
14043 | * vec.h (vec_safe_grow): Change default of exact to false. | |
14044 | (vec_safe_grow_cleared): Likewise. | |
14045 | ||
14046 | 2020-09-01 Roger Sayle <roger@nextmovesoftware.com> | |
14047 | ||
14048 | PR middle-end/90597 | |
14049 | * targhooks.c (default_vector_alignment): Return at least the | |
14050 | GET_MODE_ALIGNMENT for the type's mode. | |
14051 | ||
14052 | 2020-09-01 Richard Biener <rguenther@suse.de> | |
14053 | ||
14054 | PR rtl-optimization/96812 | |
14055 | * tree-ssa-address.c (copy_ref_info): Also copy dependence info. | |
14056 | * cfgrtl.h (duplicate_insn_chain): Adjust prototype. | |
14057 | * cfgrtl.c (duplicate_insn_chain): Remap dependence info | |
14058 | if requested. | |
14059 | (cfg_layout_duplicate_bb): Make sure we remap dependence info. | |
14060 | * modulo-sched.c (duplicate_insns_of_cycles): Remap dependence | |
14061 | info. | |
14062 | (generate_prolog_epilog): Adjust. | |
14063 | * config/c6x/c6x.c (hwloop_optimize): Remap dependence info. | |
14064 | ||
14065 | 2020-09-01 Kewen Lin <linkw@gcc.gnu.org> | |
14066 | ||
14067 | * doc/sourcebuild.texi (has_arch_pwr5, has_arch_pwr6, has_arch_pwr7, | |
14068 | has_arch_pwr8, has_arch_pwr9): Document. | |
14069 | ||
14070 | 2020-08-31 Carl Love <cel@us.ibm.com> | |
14071 | ||
14072 | PR target/85830 | |
14073 | * config/rs6000/altivec.h (vec_popcntb, vec_popcnth, vec_popcntw, | |
14074 | vec_popcntd): Remove defines. | |
14075 | ||
14076 | 2020-08-31 Marek Polacek <polacek@redhat.com> | |
14077 | Jason Merrill <jason@redhat.com> | |
14078 | ||
14079 | PR c++/93529 | |
14080 | * tree.c (build_constructor_from_vec): New. | |
14081 | * tree.h (build_constructor_from_vec): Declare. | |
14082 | ||
14083 | 2020-08-31 Aldy Hernandez <aldyh@redhat.com> | |
14084 | ||
14085 | PR tree-optimization/96818 | |
14086 | * tree-vrp.c (find_case_label_range): Cast label range to | |
14087 | type of switch operand. | |
14088 | ||
14089 | 2020-08-31 liuhongt <hongtao.liu@intel.com> | |
14090 | ||
14091 | PR target/96551 | |
14092 | * config/i386/sse.md (vec_unpacku_float_hi_v16si): For vector | |
14093 | compare to integer mask, don't use gen_rtx_LT, use | |
14094 | ix86_expand_mask_vec_cmp instead. | |
14095 | (vec_unpacku_float_hi_v16si): Ditto. | |
14096 | ||
14097 | 2020-08-31 Jakub Jelinek <jakub@redhat.com> | |
14098 | ||
14099 | * tree-cfg.c (verify_gimple_switch): If the first non-default case | |
14100 | label has CASE_HIGH, verify it has the same type as CASE_LOW. | |
14101 | ||
14102 | 2020-08-31 Feng Xue <fxue@os.amperecomputing.com> | |
14103 | ||
14104 | PR ipa/96806 | |
14105 | * ipa-cp.c (decide_about_value): Use safe_add to avoid cost addition | |
14106 | overflow. | |
14107 | ||
14108 | 2020-08-31 Jakub Jelinek <jakub@redhat.com> | |
14109 | ||
14110 | PR middle-end/54201 | |
14111 | * varasm.c: Include alloc-pool.h. | |
14112 | (output_constant_pool_contents): Emit desc->mark < 0 entries as | |
14113 | aliases. | |
14114 | (struct constant_descriptor_rtx_data): New type. | |
14115 | (constant_descriptor_rtx_data_cmp): New function. | |
14116 | (struct const_rtx_data_hasher): New type. | |
14117 | (const_rtx_data_hasher::hash, const_rtx_data_hasher::equal): New | |
14118 | methods. | |
14119 | (optimize_constant_pool): New function. | |
14120 | (output_shared_constant_pool): Call it if TARGET_SUPPORTS_ALIASES. | |
14121 | ||
14122 | 2020-08-31 Kewen Lin <linkw@gcc.gnu.org> | |
14123 | ||
14124 | * doc/sourcebuild.texi (vect_len_load_store, | |
14125 | vect_partial_vectors_usage_1, vect_partial_vectors_usage_2, | |
14126 | vect_partial_vectors): Document. | |
14127 | ||
14128 | 2020-08-30 Martin Sebor <msebor@redhat.com> | |
14129 | ||
14130 | * builtins.c (access_ref::access_ref): Call get_size_range instead | |
14131 | of get_range. | |
14132 | ||
14133 | 2020-08-30 Jakub Jelinek <jakub@redhat.com> | |
14134 | ||
14135 | * config/i386/sse.md (ssse3_pshufbv8qi): Use gen_int_mode instead of | |
14136 | GEN_INT, and ix86_build_const_vector instead of gen_rtvec and | |
14137 | gen_rtx_CONT_VECTOR. | |
14138 | ||
14139 | 2020-08-29 Bill Schmidt <wschmidt@linux.ibm.com> | |
14140 | ||
14141 | * config/rs6000/rs6000-builtin.def (MASK_FOR_STORE): Remove. | |
14142 | * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Remove | |
14143 | all logic for ALTIVEC_BUILTIN_MASK_FOR_STORE. | |
14144 | ||
14145 | 2020-08-28 Martin Sebor <msebor@redhat.com> | |
14146 | ||
14147 | * attribs.c (init_attr_rdwr_indices): Use global access_mode. | |
14148 | * attribs.h (struct attr_access): Same. | |
14149 | * builtins.c (fold_builtin_strlen): Add argument. | |
14150 | (compute_objsize): Declare. | |
14151 | (get_range): Declare. | |
14152 | (check_read_access): New function. | |
14153 | (access_ref::access_ref): Define ctor. | |
14154 | (warn_string_no_nul): Add arguments. Handle -Wstrintop-overread. | |
14155 | (check_nul_terminated_array): Handle source strings of different | |
14156 | ranges of sizes. | |
14157 | (expand_builtin_strlen): Remove warning code, call check_read_access | |
14158 | instead. Declare locals closer to their initialization. | |
14159 | (expand_builtin_strnlen): Same. | |
14160 | (maybe_warn_for_bound): New function. | |
14161 | (warn_for_access): Remove argument. Handle -Wstrintop-overread. | |
14162 | (inform_access): Change argument type. | |
14163 | (get_size_range): New function. | |
14164 | (check_access): Remove unused arguments. Add new arguments. Handle | |
14165 | -Wstrintop-overread. Move warning code to helpers and call them. | |
14166 | Call check_nul_terminated_array. | |
14167 | (check_memop_access): Remove unnecessary and provide additional | |
14168 | arguments in calls. | |
14169 | (expand_builtin_memchr): Call check_read_access. | |
14170 | (expand_builtin_strcat): Remove unnecessary and provide additional | |
14171 | arguments in calls. | |
14172 | (expand_builtin_strcpy): Same. | |
14173 | (expand_builtin_strcpy_args): Same. Avoid testing no-warning bit. | |
14174 | (expand_builtin_stpcpy_1): Remove unnecessary and provide additional | |
14175 | arguments in calls. | |
14176 | (expand_builtin_stpncpy): Same. | |
14177 | (check_strncat_sizes): Same. | |
14178 | (expand_builtin_strncat): Remove unnecessary and provide additional | |
14179 | arguments in calls. Adjust comments. | |
14180 | (expand_builtin_strncpy): Remove unnecessary and provide additional | |
14181 | arguments in calls. | |
14182 | (expand_builtin_memcmp): Remove warning code. Call check_access. | |
14183 | (expand_builtin_strcmp): Call check_access instead of | |
14184 | check_nul_terminated_array. | |
14185 | (expand_builtin_strncmp): Handle -Wstrintop-overread. | |
14186 | (expand_builtin_fork_or_exec): Call check_access instead of | |
14187 | check_nul_terminated_array. | |
14188 | (expand_builtin): Same. | |
14189 | (fold_builtin_1): Pass additional argument. | |
14190 | (fold_builtin_n): Same. | |
14191 | (fold_builtin_strpbrk): Remove calls to check_nul_terminated_array. | |
14192 | (expand_builtin_memory_chk): Add comments. | |
14193 | (maybe_emit_chk_warning): Remove unnecessary and provide additional | |
14194 | arguments in calls. | |
14195 | (maybe_emit_sprintf_chk_warning): Same. Adjust comments. | |
14196 | * builtins.h (warn_string_no_nul): Add arguments. | |
14197 | (struct access_ref): Add member and ctor argument. | |
14198 | (struct access_data): Add members and ctor. | |
14199 | (check_access): Adjust signature. | |
14200 | * calls.c (maybe_warn_nonstring_arg): Return an indication of | |
14201 | whether a warning was issued. Issue -Wstrintop-overread instead | |
14202 | of -Wstringop-overflow. | |
14203 | (append_attrname): Adjust to naming changes. | |
14204 | (maybe_warn_rdwr_sizes): Same. Remove unnecessary and provide | |
14205 | additional arguments in calls. | |
14206 | * calls.h (maybe_warn_nonstring_arg): Return bool. | |
14207 | * doc/invoke.texi (-Wstringop-overread): Document new option. | |
14208 | * gimple-fold.c (gimple_fold_builtin_strcpy): Provide an additional | |
14209 | argument in call. | |
14210 | (gimple_fold_builtin_stpcpy): Same. | |
14211 | * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Adjust to naming | |
14212 | changes. | |
14213 | * tree.h (enum access_mode): New type. | |
14214 | ||
14215 | 2020-08-28 Bill Schmidt <wschmidt@linux.ibm.com> | |
14216 | ||
14217 | * config/rs6000/rs6000.c (rs6000_call_aix): Remove test for r12. | |
14218 | (rs6000_sibcall_aix): Likewise. | |
14219 | ||
14220 | 2020-08-28 Andrew Stubbs <ams@codesourcery.com> | |
14221 | ||
14222 | * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Add "true" | |
14223 | parameter to vec_safe_grow_cleared. | |
14224 | ||
14225 | 2020-08-28 Martin Sebor <msebor@redhat.com> | |
14226 | ||
14227 | * ggc-common.c (gt_pch_save): Add argument to a call. | |
14228 | ||
14229 | 2020-08-28 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
14230 | ||
14231 | PR target/96357 | |
14232 | * config/aarch64/aarch64-sve.md | |
14233 | (cond_sub<mode>_relaxed_const): Updated and renamed from | |
14234 | cond_sub<mode>_any_const pattern. | |
14235 | (cond_sub<mode>_strict_const): New pattern. | |
14236 | ||
14237 | 2020-08-28 Wei Wentao <weiwt.fnst@cn.fujitsu.com> | |
14238 | ||
14239 | * doc/rtl.texi: Fix typo. | |
14240 | ||
14241 | 2020-08-28 Uros Bizjak <ubizjak@gmail.com> | |
14242 | ||
14243 | PR target/96744 | |
14244 | * config/i386/i386-expand.c (split_double_mode): Also handle | |
14245 | E_P2HImode and E_P2QImode. | |
14246 | * config/i386/sse.md (MASK_DWI): New define_mode_iterator. | |
14247 | (mov<mode>): New expander for P2HI,P2QI. | |
14248 | (*mov<mode>_internal): New define_insn_and_split to split | |
14249 | movement of P2QI/P2HI to 2 movqi/movhi patterns after reload. | |
14250 | ||
14251 | 2020-08-28 liuhongt <hongtao.liu@intel.com> | |
14252 | ||
14253 | * common/config/i386/i386-common.c (ix86_handle_option): Set | |
14254 | AVX512DQ when AVX512VP2INTERSECT exists. | |
14255 | ||
14256 | 2020-08-27 Jakub Jelinek <jakub@redhat.com> | |
14257 | ||
14258 | PR target/65146 | |
14259 | * config/i386/i386.c (iamcu_alignment): Don't decrease alignment | |
14260 | for TYPE_ATOMIC types. | |
14261 | (ix86_local_alignment): Likewise. | |
14262 | (ix86_minimum_alignment): Likewise. | |
14263 | (x86_field_alignment): Likewise, and emit a -Wpsabi diagnostic | |
14264 | for it. | |
14265 | ||
14266 | 2020-08-27 Bill Schmidt <wschmidt@linux.ibm.com> | |
14267 | ||
14268 | PR target/96787 | |
14269 | * config/rs6000/rs6000.c (rs6000_sibcall_aix): Support | |
14270 | indirect call for ELFv2. | |
14271 | ||
14272 | 2020-08-27 Richard Biener <rguenther@suse.de> | |
14273 | ||
14274 | PR tree-optimization/96522 | |
14275 | * tree-ssa-address.c (copy_ref_info): Reset flow-sensitive | |
14276 | info of the copied points-to. Transfer bigger alignment | |
14277 | via the access type. | |
14278 | * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): | |
14279 | Reset all flow-sensitive info. | |
14280 | ||
14281 | 2020-08-27 Martin Liska <mliska@suse.cz> | |
14282 | ||
14283 | * alias.c (init_alias_analysis): Set exact argument of a vector | |
14284 | growth function to true. | |
14285 | * calls.c (internal_arg_pointer_based_exp_scan): Likewise. | |
14286 | * cfgbuild.c (find_many_sub_basic_blocks): Likewise. | |
14287 | * cfgexpand.c (expand_asm_stmt): Likewise. | |
14288 | * cfgrtl.c (rtl_create_basic_block): Likewise. | |
14289 | * combine.c (combine_split_insns): Likewise. | |
14290 | (combine_instructions): Likewise. | |
14291 | * config/aarch64/aarch64-sve-builtins.cc (function_expander::add_output_operand): Likewise. | |
14292 | (function_expander::add_input_operand): Likewise. | |
14293 | (function_expander::add_integer_operand): Likewise. | |
14294 | (function_expander::add_address_operand): Likewise. | |
14295 | (function_expander::add_fixed_operand): Likewise. | |
14296 | * df-core.c (df_worklist_dataflow_doublequeue): Likewise. | |
14297 | * dwarf2cfi.c (update_row_reg_save): Likewise. | |
14298 | * early-remat.c (early_remat::init_block_info): Likewise. | |
14299 | (early_remat::finalize_candidate_indices): Likewise. | |
14300 | * except.c (sjlj_build_landing_pads): Likewise. | |
14301 | * final.c (compute_alignments): Likewise. | |
14302 | (grow_label_align): Likewise. | |
14303 | * function.c (temp_slots_at_level): Likewise. | |
14304 | * fwprop.c (build_single_def_use_links): Likewise. | |
14305 | (update_uses): Likewise. | |
14306 | * gcc.c (insert_wrapper): Likewise. | |
14307 | * genautomata.c (create_state_ainsn_table): Likewise. | |
14308 | (add_vect): Likewise. | |
14309 | (output_dead_lock_vect): Likewise. | |
14310 | * genmatch.c (capture_info::capture_info): Likewise. | |
14311 | (parser::finish_match_operand): Likewise. | |
14312 | * genrecog.c (optimize_subroutine_group): Likewise. | |
14313 | (merge_pattern_info::merge_pattern_info): Likewise. | |
14314 | (merge_into_decision): Likewise. | |
14315 | (print_subroutine_start): Likewise. | |
14316 | (main): Likewise. | |
14317 | * gimple-loop-versioning.cc (loop_versioning::loop_versioning): Likewise. | |
14318 | * gimple.c (gimple_set_bb): Likewise. | |
14319 | * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user): Likewise. | |
14320 | * haifa-sched.c (sched_extend_luids): Likewise. | |
14321 | (extend_h_i_d): Likewise. | |
14322 | * insn-addr.h (insn_addresses_new): Likewise. | |
14323 | * ipa-cp.c (gather_context_independent_values): Likewise. | |
14324 | (find_more_contexts_for_caller_subset): Likewise. | |
14325 | * ipa-devirt.c (final_warning_record::grow_type_warnings): Likewise. | |
14326 | (ipa_odr_read_section): Likewise. | |
14327 | * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise. | |
14328 | (ipa_fn_summary_t::duplicate): Likewise. | |
14329 | (analyze_function_body): Likewise. | |
14330 | (ipa_merge_fn_summary_after_inlining): Likewise. | |
14331 | (read_ipa_call_summary): Likewise. | |
14332 | * ipa-icf.c (sem_function::bb_dict_test): Likewise. | |
14333 | * ipa-prop.c (ipa_alloc_node_params): Likewise. | |
14334 | (parm_bb_aa_status_for_bb): Likewise. | |
14335 | (ipa_compute_jump_functions_for_edge): Likewise. | |
14336 | (ipa_analyze_node): Likewise. | |
14337 | (update_jump_functions_after_inlining): Likewise. | |
14338 | (ipa_read_edge_info): Likewise. | |
14339 | (read_ipcp_transformation_info): Likewise. | |
14340 | (ipcp_transform_function): Likewise. | |
14341 | * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise. | |
14342 | * ipa-split.c (execute_split_functions): Likewise. | |
14343 | * ira.c (find_moveable_pseudos): Likewise. | |
14344 | * lower-subreg.c (decompose_multiword_subregs): Likewise. | |
14345 | * lto-streamer-in.c (input_eh_regions): Likewise. | |
14346 | (input_cfg): Likewise. | |
14347 | (input_struct_function_base): Likewise. | |
14348 | (input_function): Likewise. | |
14349 | * modulo-sched.c (set_node_sched_params): Likewise. | |
14350 | (extend_node_sched_params): Likewise. | |
14351 | (schedule_reg_moves): Likewise. | |
14352 | * omp-general.c (omp_construct_simd_compare): Likewise. | |
14353 | * passes.c (pass_manager::create_pass_tab): Likewise. | |
14354 | (enable_disable_pass): Likewise. | |
14355 | * predict.c (determine_unlikely_bbs): Likewise. | |
14356 | * profile.c (compute_branch_probabilities): Likewise. | |
14357 | * read-rtl-function.c (function_reader::parse_block): Likewise. | |
14358 | * read-rtl.c (rtx_reader::read_rtx_code): Likewise. | |
14359 | * reg-stack.c (stack_regs_mentioned): Likewise. | |
14360 | * regrename.c (regrename_init): Likewise. | |
14361 | * rtlanal.c (T>::add_single_to_queue): Likewise. | |
14362 | * sched-deps.c (init_deps_data_vector): Likewise. | |
14363 | * sel-sched-ir.c (sel_extend_global_bb_info): Likewise. | |
14364 | (extend_region_bb_info): Likewise. | |
14365 | (extend_insn_data): Likewise. | |
14366 | * symtab.c (symtab_node::create_reference): Likewise. | |
14367 | * tracer.c (tail_duplicate): Likewise. | |
14368 | * trans-mem.c (tm_region_init): Likewise. | |
14369 | (get_bb_regions_instrumented): Likewise. | |
14370 | * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise. | |
14371 | (build_gimple_cfg): Likewise. | |
14372 | (create_bb): Likewise. | |
14373 | (move_block_to_fn): Likewise. | |
14374 | * tree-complex.c (tree_lower_complex): Likewise. | |
14375 | * tree-if-conv.c (predicate_rhs_code): Likewise. | |
14376 | * tree-inline.c (copy_bb): Likewise. | |
14377 | * tree-into-ssa.c (get_ssa_name_ann): Likewise. | |
14378 | (mark_phi_for_rewrite): Likewise. | |
14379 | * tree-object-size.c (compute_builtin_object_size): Likewise. | |
14380 | (init_object_sizes): Likewise. | |
14381 | * tree-predcom.c (initialize_root_vars_store_elim_1): Likewise. | |
14382 | (initialize_root_vars_store_elim_2): Likewise. | |
14383 | (prepare_initializers_chain_store_elim): Likewise. | |
14384 | * tree-ssa-address.c (addr_for_mem_ref): Likewise. | |
14385 | (multiplier_allowed_in_address_p): Likewise. | |
14386 | * tree-ssa-coalesce.c (ssa_conflicts_new): Likewise. | |
14387 | * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. | |
14388 | * tree-ssa-loop-ivopts.c (addr_offset_valid_p): Likewise. | |
14389 | (get_address_cost_ainc): Likewise. | |
14390 | * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk): Likewise. | |
14391 | * tree-ssa-pre.c (add_to_value): Likewise. | |
14392 | (phi_translate_1): Likewise. | |
14393 | (do_pre_regular_insertion): Likewise. | |
14394 | (do_pre_partial_partial_insertion): Likewise. | |
14395 | (init_pre): Likewise. | |
14396 | * tree-ssa-propagate.c (ssa_prop_init): Likewise. | |
14397 | (update_call_from_tree): Likewise. | |
14398 | * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Likewise. | |
14399 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise. | |
14400 | (vn_reference_lookup_pieces): Likewise. | |
14401 | (eliminate_dom_walker::eliminate_push_avail): Likewise. | |
14402 | * tree-ssa-strlen.c (set_strinfo): Likewise. | |
14403 | (get_stridx_plus_constant): Likewise. | |
14404 | (zero_length_string): Likewise. | |
14405 | (find_equal_ptrs): Likewise. | |
14406 | (printf_strlen_execute): Likewise. | |
14407 | * tree-ssa-threadedge.c (set_ssa_name_value): Likewise. | |
14408 | * tree-ssanames.c (make_ssa_name_fn): Likewise. | |
14409 | * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise. | |
14410 | * tree-vect-loop.c (vect_record_loop_mask): Likewise. | |
14411 | (vect_get_loop_mask): Likewise. | |
14412 | (vect_record_loop_len): Likewise. | |
14413 | (vect_get_loop_len): Likewise. | |
14414 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise. | |
14415 | * tree-vect-slp.c (vect_slp_convert_to_external): Likewise. | |
14416 | (vect_bb_slp_scalar_cost): Likewise. | |
14417 | (vect_bb_vectorization_profitable_p): Likewise. | |
14418 | (vectorizable_slp_permutation): Likewise. | |
14419 | * tree-vect-stmts.c (vectorizable_call): Likewise. | |
14420 | (vectorizable_simd_clone_call): Likewise. | |
14421 | (scan_store_can_perm_p): Likewise. | |
14422 | (vectorizable_store): Likewise. | |
14423 | * expr.c: Likewise. | |
14424 | * vec.c (test_safe_grow_cleared): Likewise. | |
14425 | * vec.h (vec_safe_grow): Likewise. | |
14426 | (vec_safe_grow_cleared): Likewise. | |
14427 | (vl_ptr>::safe_grow): Likewise. | |
14428 | (vl_ptr>::safe_grow_cleared): Likewise. | |
14429 | * config/c6x/c6x.c (insn_set_clock): Likewise. | |
14430 | ||
14431 | 2020-08-27 Richard Biener <rguenther@suse.de> | |
14432 | ||
14433 | * tree-pretty-print.c (dump_mem_ref): Handle TARGET_MEM_REFs. | |
14434 | (dump_generic_node): Use dump_mem_ref also for TARGET_MEM_REF. | |
14435 | ||
14436 | 2020-08-27 Alex Coplan <alex.coplan@arm.com> | |
14437 | ||
14438 | * lra-constraints.c (canonicalize_reload_addr): New. | |
14439 | (curr_insn_transform): Use canonicalize_reload_addr to ensure we | |
14440 | generate canonical RTL for an address reload. | |
14441 | ||
14442 | 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com> | |
14443 | ||
14444 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
14445 | for rounding intrinsics. | |
14446 | ||
14447 | 2020-08-27 Zhiheng Xie <xiezhiheng@huawei.com> | |
14448 | ||
14449 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
14450 | for min/max intrinsics. | |
14451 | ||
14452 | 2020-08-27 Richard Biener <rguenther@suse.de> | |
14453 | ||
14454 | PR tree-optimization/96579 | |
14455 | * tree-ssa-reassoc.c (linearize_expr_tree): If we expand | |
14456 | rhs via special ops make sure to swap operands. | |
14457 | ||
14458 | 2020-08-27 Richard Biener <rguenther@suse.de> | |
14459 | ||
14460 | PR tree-optimization/96565 | |
14461 | * tree-ssa-dse.c (dse_classify_store): Remove defs with | |
14462 | no uses from further processing. | |
14463 | ||
14464 | 2020-08-26 Göran Uddeborg <goeran@uddeborg.se> | |
14465 | ||
14466 | PR gcov-profile/96285 | |
14467 | * common.opt, doc/invoke.texi: Clarify wording of | |
14468 | -fprofile-exclude-files and adjust -fprofile-filter-files to | |
14469 | match. | |
14470 | ||
14471 | 2020-08-26 H.J. Lu <hjl.tools@gmail.com> | |
14472 | ||
14473 | PR target/96802 | |
14474 | * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): | |
14475 | Reject target("no-general-regs-only"). | |
14476 | ||
14477 | 2020-08-26 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
14478 | ||
14479 | * config/msp430/constraints.md (K): Change unused constraint to | |
14480 | constraint to a const_int between 1 and 19. | |
14481 | (P): New constraint. | |
14482 | * config/msp430/msp430-protos.h (msp430x_logical_shift_right): Remove. | |
14483 | (msp430_expand_shift): New. | |
14484 | (msp430_output_asm_shift_insns): New. | |
14485 | * config/msp430/msp430.c (msp430_rtx_costs): Remove shift costs. | |
14486 | (CSH): Remove. | |
14487 | (msp430_expand_helper): Remove hard-coded generation of some inline | |
14488 | shift insns. | |
14489 | (use_helper_for_const_shift): New. | |
14490 | (msp430_expand_shift): New. | |
14491 | (msp430_output_asm_shift_insns): New. | |
14492 | (msp430_print_operand): Add new 'W' operand selector. | |
14493 | (msp430x_logical_shift_right): Remove. | |
14494 | * config/msp430/msp430.md (HPSI): New define_mode_iterator. | |
14495 | (HDI): Likewise. | |
14496 | (any_shift): New define_code_iterator. | |
14497 | (shift_insn): New define_code_attr. | |
14498 | Adjust unnamed insn patterns searched for by combine. | |
14499 | (ashlhi3): Remove. | |
14500 | (slli_1): Remove. | |
14501 | (430x_shift_left): Remove. | |
14502 | (slll_1): Remove. | |
14503 | (slll_2): Remove. | |
14504 | (ashlsi3): Remove. | |
14505 | (ashldi3): Remove. | |
14506 | (ashrhi3): Remove. | |
14507 | (srai_1): Remove. | |
14508 | (430x_arithmetic_shift_right): Remove. | |
14509 | (srap_1): Remove. | |
14510 | (srap_2): Remove. | |
14511 | (sral_1): Remove. | |
14512 | (sral_2): Remove. | |
14513 | (ashrsi3): Remove. | |
14514 | (ashrdi3): Remove. | |
14515 | (lshrhi3): Remove. | |
14516 | (srli_1): Remove. | |
14517 | (430x_logical_shift_right): Remove. | |
14518 | (srlp_1): Remove. | |
14519 | (srll_1): Remove. | |
14520 | (srll_2x): Remove. | |
14521 | (lshrsi3): Remove. | |
14522 | (lshrdi3): Remove. | |
14523 | (<shift_insn><mode>3): New define_expand. | |
14524 | (<shift_insn>hi3_430): New define_insn. | |
14525 | (<shift_insn>si3_const): Likewise. | |
14526 | (ashl<mode>3_430x): Likewise. | |
14527 | (ashr<mode>3_430x): Likewise. | |
14528 | (lshr<mode>3_430x): Likewise. | |
14529 | (*bitbranch<mode>4_z): Replace renamed predicate msp430_bitpos with | |
14530 | const_0_to_15_operand. | |
14531 | * config/msp430/msp430.opt: New option -mmax-inline-shift=. | |
14532 | * config/msp430/predicates.md (const_1_to_8_operand): New predicate. | |
14533 | (const_0_to_15_operand): Rename msp430_bitpos predicate. | |
14534 | (const_1_to_19_operand): New predicate. | |
14535 | * doc/invoke.texi: Document -mmax-inline-shift=. | |
14536 | ||
14537 | 2020-08-26 Aldy Hernandez <aldyh@redhat.com> | |
14538 | ||
14539 | * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Abstract code out to... | |
14540 | * tree-vrp.c (find_case_label_range): ...here. Rewrite for to use irange | |
14541 | API. | |
14542 | (simplify_stmt_for_jump_threading): Call find_case_label_range instead of | |
14543 | duplicating the code in simplify_stmt_for_jump_threading. | |
14544 | * tree-vrp.h (find_case_label_range): New prototype. | |
14545 | ||
14546 | 2020-08-26 Richard Biener <rguenther@suse.de> | |
14547 | ||
14548 | PR tree-optimization/96698 | |
14549 | * tree-vectorizer.h (loop_vec_info::reduc_latch_defs): New. | |
14550 | (loop_vec_info::reduc_latch_slp_defs): Likewise. | |
14551 | * tree-vect-stmts.c (vect_transform_stmt): Only record | |
14552 | stmts to update PHI latches from, perform the update ... | |
14553 | * tree-vect-loop.c (vect_transform_loop): ... here after | |
14554 | vectorizing those PHIs. | |
14555 | (info_for_reduction): Properly handle non-reduction PHIs. | |
14556 | ||
14557 | 2020-08-26 Martin Liska <mliska@suse.cz> | |
14558 | ||
14559 | * cgraphunit.c (process_symver_attribute): Match only symver | |
14560 | TREE_PURPOSE. | |
14561 | ||
14562 | 2020-08-26 Richard Biener <rguenther@suse.de> | |
14563 | ||
14564 | PR tree-optimization/96783 | |
14565 | * tree-vect-stmts.c (get_group_load_store_type): Use | |
14566 | VMAT_ELEMENTWISE for negative strides when we cannot | |
14567 | use VMAT_STRIDED_SLP. | |
14568 | ||
14569 | 2020-08-26 Martin Liska <mliska@suse.cz> | |
14570 | ||
14571 | * doc/invoke.texi: Document how are pie and pic options merged. | |
14572 | ||
14573 | 2020-08-26 Zhiheng Xie <xiezhiheng@huawei.com> | |
14574 | ||
14575 | * config/aarch64/aarch64-simd-builtins.def: Add proper FLAG | |
14576 | for add/sub arithmetic intrinsics. | |
14577 | ||
14578 | 2020-08-26 Jakub Jelinek <jakub@redhat.com> | |
14579 | ||
14580 | PR debug/96729 | |
14581 | * dwarf2out.c (dwarf2out_next_real_insn): Adjust function comment. | |
14582 | (dwarf2out_var_location): Look for next_note only if next_real is | |
14583 | non-NULL, in that case look for the first non-deleted | |
14584 | NOTE_INSN_VAR_LOCATION between loc_note and next_real, if any. | |
14585 | ||
14586 | 2020-08-26 Iain Buclaw <ibuclaw@gdcproject.org> | |
14587 | ||
14588 | * config/tilepro/gen-mul-tables.cc (main): Define IN_TARGET_CODE to 1 | |
14589 | in the target file. | |
14590 | ||
14591 | 2020-08-26 Martin Liska <mliska@suse.cz> | |
14592 | ||
14593 | * cgraphunit.c (process_symver_attribute): Allow multiple | |
14594 | symver attributes for one symbol. | |
14595 | * doc/extend.texi: Document the change. | |
14596 | ||
14597 | 2020-08-25 H.J. Lu <hjl.tools@gmail.com> | |
14598 | ||
14599 | PR target/95863 | |
14600 | * config/i386/i386.h (CTZ_DEFINED_VALUE_AT_ZERO): Return 0/2. | |
14601 | (CLZ_DEFINED_VALUE_AT_ZERO): Likewise. | |
14602 | ||
14603 | 2020-08-25 Roger Sayle <roger@nextmovesoftware.com> | |
14604 | ||
14605 | PR middle-end/87256 | |
14606 | * config/pa/pa.c (hppa_rtx_costs_shadd_p): New helper function | |
14607 | to check for coefficients supported by shNadd and shladd,l. | |
14608 | (hppa_rtx_costs): Rewrite to avoid using estimates based upon | |
14609 | FACTOR and enable recursing deeper into RTL expressions. | |
14610 | ||
14611 | 2020-08-25 Roger Sayle <roger@nextmovesoftware.com> | |
14612 | ||
14613 | * config/pa/pa.md (ashldi3): Additionally, on !TARGET_64BIT | |
14614 | generate a two instruction shd/zdep sequence when shifting | |
14615 | registers by suitable constants. | |
14616 | (shd_internal): New define_expand to provide gen_shd_internal. | |
14617 | ||
14618 | 2020-08-25 Richard Sandiford <richard.sandiford@arm.com> | |
14619 | ||
14620 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Rename | |
14621 | __ARM_FEATURE_SVE_VECTOR_OPERATIONS to | |
14622 | __ARM_FEATURE_SVE_VECTOR_OPERATORS. | |
14623 | ||
14624 | 2020-08-25 Richard Sandiford <richard.sandiford@arm.com> | |
14625 | ||
14626 | * config/aarch64/aarch64-sve-builtins.cc (add_sve_type_attribute): | |
14627 | Take the ACLE name of the type as a parameter and add it as fourth | |
14628 | argument to the "SVE type" attribute. | |
14629 | (register_builtin_types): Update call accordingly. | |
14630 | (register_tuple_type): Likewise. Construct the name of the type | |
14631 | earlier in order to do this. | |
14632 | (get_arm_sve_vector_bits_attributes): New function. | |
14633 | (handle_arm_sve_vector_bits_attribute): Report a more sensible | |
14634 | error message if the attribute is applied to an SVE tuple type. | |
14635 | Don't allow the attribute to be applied to an existing fixed-length | |
14636 | SVE type. Mangle the new type as __SVE_VLS<type, vector-bits>. | |
14637 | Add a dummy TYPE_DECL to the new type. | |
14638 | ||
14639 | 2020-08-25 Richard Sandiford <richard.sandiford@arm.com> | |
14640 | ||
14641 | * config/aarch64/aarch64-sve-builtins.cc (DEF_SVE_TYPE): Add a | |
14642 | leading "u" to each mangled name. | |
14643 | ||
14644 | 2020-08-25 Richard Biener <rguenther@suse.de> | |
14645 | ||
14646 | PR tree-optimization/96548 | |
14647 | PR tree-optimization/96760 | |
14648 | * tree-ssa-loop-im.c (tree_ssa_lim): Recompute RPO after | |
14649 | store-motion. | |
14650 | ||
14651 | 2020-08-25 Jakub Jelinek <jakub@redhat.com> | |
14652 | ||
14653 | PR tree-optimization/96722 | |
14654 | * gimple.c (infer_nonnull_range): Formatting fix. | |
14655 | (infer_nonnull_range_by_dereference): Return false for clobber stmts. | |
14656 | ||
14657 | 2020-08-25 Jakub Jelinek <jakub@redhat.com> | |
14658 | ||
14659 | PR tree-optimization/96758 | |
14660 | * tree-ssa-strlen.c (handle_builtin_string_cmp): If both cstlen1 | |
14661 | and cstlen2 are set, set cmpsiz to their minimum, otherwise use the | |
14662 | one that is set. If bound is used and smaller than cmpsiz, set cmpsiz | |
14663 | to bound. If both cstlen1 and cstlen2 are set, perform the optimization. | |
14664 | ||
14665 | 2020-08-25 Martin Jambor <mjambor@suse.cz> | |
14666 | ||
14667 | PR tree-optimization/96730 | |
14668 | * tree-sra.c (create_access): Disqualify any aggregate with negative | |
14669 | offset access. | |
14670 | (build_ref_for_model): Add assert that offset is non-negative. | |
14671 | ||
14672 | 2020-08-25 Wei Wentao <weiwt.fnst@cn.fujitsu.com> | |
14673 | ||
14674 | * rtl.def: Fix typo in comment. | |
14675 | ||
14676 | 2020-08-25 Roger Sayle <roger@nextmovesoftware.com> | |
14677 | ||
14678 | PR tree-optimization/21137 | |
14679 | * fold-const.c (fold_binary_loc) [NE_EXPR/EQ_EXPR]: Call | |
14680 | STRIP_NOPS when checking whether to simplify ((x>>C1)&C2) != 0. | |
14681 | ||
14682 | 2020-08-25 Andrew Pinski <apinski@marvell.com> | |
14683 | ||
14684 | PR middle-end/64242 | |
14685 | * config/mips/mips.md (builtin_longjmp): Restore the frame | |
14686 | pointer and stack pointer and gp. | |
14687 | ||
14688 | 2020-08-25 Richard Biener <rguenther@suse.de> | |
14689 | ||
14690 | PR debug/96690 | |
14691 | * dwarf2out.c (reference_to_unused): Make FUNCTION_DECL | |
14692 | processing more consistent with respect to | |
14693 | symtab->global_info_ready. | |
14694 | (tree_add_const_value_attribute): Unconditionally call | |
14695 | rtl_for_decl_init to do all mangling early but throw | |
14696 | away the result if early_dwarf. | |
14697 | ||
14698 | 2020-08-25 Hongtao Liu <hongtao.liu@intel.com> | |
14699 | ||
14700 | PR target/96755 | |
14701 | * config/i386/sse.md: Correct the mode of NOT operands to | |
14702 | SImode. | |
14703 | ||
14704 | 2020-08-25 Jakub Jelinek <jakub@redhat.com> | |
14705 | ||
14706 | PR tree-optimization/96715 | |
14707 | * match.pd (copysign(x,-x) -> -x): New simplification. | |
14708 | ||
14709 | 2020-08-25 Jakub Jelinek <jakub@redhat.com> | |
14710 | ||
14711 | PR target/95450 | |
14712 | * fold-const.c (native_interpret_real): For MODE_COMPOSITE_P modes | |
14713 | punt if the to be returned REAL_CST does not encode to the bitwise | |
14714 | same representation. | |
14715 | ||
14716 | 2020-08-24 Gerald Pfeifer <gerald@pfeifer.com> | |
14717 | ||
14718 | * doc/install.texi (Configuration): Switch valgrind.com to https. | |
14719 | ||
14720 | 2020-08-24 Christophe Lyon <christophe.lyon@linaro.org> | |
14721 | ||
14722 | PR target/94538 | |
14723 | PR target/94538 | |
14724 | * config/arm/thumb1.md: Disable set-constant splitter when | |
14725 | TARGET_HAVE_MOVT. | |
14726 | (thumb1_movsi_insn): Fix -mpure-code | |
14727 | alternative. | |
14728 | ||
14729 | 2020-08-24 Martin Liska <mliska@suse.cz> | |
14730 | ||
14731 | * tree-vect-data-refs.c (dr_group_sort_cmp): Work on | |
14732 | data_ref_pair. | |
14733 | (vect_analyze_data_ref_accesses): Work on groups. | |
14734 | (vect_find_stmt_data_reference): Add group_id argument and fill | |
14735 | up dataref_groups vector. | |
14736 | * tree-vect-loop.c (vect_get_datarefs_in_loop): Pass new | |
14737 | arguments. | |
14738 | (vect_analyze_loop_2): Likewise. | |
14739 | * tree-vect-slp.c (vect_slp_analyze_bb_1): Pass argument. | |
14740 | (vect_slp_bb_region): Likewise. | |
14741 | (vect_slp_region): Likewise. | |
14742 | (vect_slp_bb):Work on the entire BB. | |
14743 | * tree-vectorizer.h (vect_analyze_data_ref_accesses): Add new | |
14744 | argument. | |
14745 | (vect_find_stmt_data_reference): Likewise. | |
14746 | ||
14747 | 2020-08-24 Martin Liska <mliska@suse.cz> | |
14748 | ||
14749 | PR tree-optimization/96597 | |
14750 | * tree-ssa-sccvn.c (vn_reference_lookup_call): Add missing | |
14751 | initialization of ::punned. | |
14752 | (vn_reference_insert): Use consistently false instead of 0. | |
14753 | (vn_reference_insert_pieces): Likewise. | |
14754 | ||
14755 | 2020-08-24 Hans-Peter Nilsson <hp@axis.com> | |
14756 | ||
14757 | PR target/93372 | |
14758 | * reorg.c (fill_slots_from_thread): Allow trial insns that clobber | |
14759 | TARGET_FLAGS_REGNUM as delay-slot fillers. | |
14760 | ||
14761 | 2020-08-23 H.J. Lu <hjl.tools@gmail.com> | |
14762 | ||
14763 | PR target/96744 | |
14764 | * config/i386/i386-options.c (IX86_ATTR_IX86_YES): New. | |
14765 | (IX86_ATTR_IX86_NO): Likewise. | |
14766 | (ix86_opt_type): Add ix86_opt_ix86_yes and ix86_opt_ix86_no. | |
14767 | (ix86_valid_target_attribute_inner_p): Handle general-regs-only, | |
14768 | ix86_opt_ix86_yes and ix86_opt_ix86_no. | |
14769 | (ix86_option_override_internal): Check opts->x_ix86_target_flags | |
14770 | instead of opts->x_ix86_target_flags. | |
14771 | * doc/extend.texi: Document target("general-regs-only") function | |
14772 | attribute. | |
14773 | ||
14774 | 2020-08-21 Richard Sandiford <richard.sandiford@arm.com> | |
14775 | ||
14776 | * doc/extend.texi: Update links to Arm docs. | |
14777 | * doc/invoke.texi: Likewise. | |
14778 | ||
14779 | 2020-08-21 Hongtao Liu <hongtao.liu@intel.com> | |
14780 | ||
14781 | PR target/96262 | |
14782 | * config/i386/i386-expand.c | |
14783 | (ix86_expand_vec_shift_qihi_constant): Refine. | |
14784 | ||
14785 | 2020-08-21 Alex Coplan <alex.coplan@arm.com> | |
14786 | ||
14787 | PR jit/63854 | |
14788 | * gcc.c (set_static_spec): New. | |
14789 | (set_static_spec_owned): New. | |
14790 | (set_static_spec_shared): New. | |
14791 | (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Use | |
14792 | set_static_spec_owned() to take ownership of lto_wrapper_file | |
14793 | such that it gets freed in driver::finalize. | |
14794 | (driver::maybe_run_linker): Use set_static_spec_shared() to | |
14795 | ensure that we don't try and free() the static string "ld", | |
14796 | also ensuring that any previously-allocated string in | |
14797 | linker_name_spec is freed. Likewise with argv0. | |
14798 | (driver::finalize): Use set_static_spec_shared() when resetting | |
14799 | specs that previously had allocated strings; remove if(0) | |
14800 | around call to free(). | |
14801 | ||
14802 | 2020-08-21 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> | |
14803 | ||
14804 | * emit-rtl.c (try_split): Call copy_frame_info_to_split_insn | |
14805 | to split certain RTX_FRAME_RELATED_P insns. | |
14806 | * recog.c (copy_frame_info_to_split_insn): New function. | |
14807 | (peep2_attempt): Split copying of frame related info of | |
14808 | RTX_FRAME_RELATED_P insns into above function and call it. | |
14809 | * recog.h (copy_frame_info_to_split_insn): Declare it. | |
14810 | ||
14811 | 2020-08-21 liuhongt <hongtao.liu@intel.com> | |
14812 | ||
14813 | PR target/88808 | |
14814 | * config/i386/i386.c (ix86_preferred_reload_class): Allow | |
14815 | QImode data go into mask registers. | |
14816 | * config/i386/i386.md: (*movhi_internal): Adjust constraints | |
14817 | for mask registers. | |
14818 | (*movqi_internal): Ditto. | |
14819 | (*anddi_1): Support mask register operations | |
14820 | (*and<mode>_1): Ditto. | |
14821 | (*andqi_1): Ditto. | |
14822 | (*andn<mode>_1): Ditto. | |
14823 | (*<code><mode>_1): Ditto. | |
14824 | (*<code>qi_1): Ditto. | |
14825 | (*one_cmpl<mode>2_1): Ditto. | |
14826 | (*one_cmplsi2_1_zext): Ditto. | |
14827 | (*one_cmplqi2_1): Ditto. | |
14828 | (define_peephole2): Move constant 0/-1 directly into mask | |
14829 | registers. | |
14830 | * config/i386/predicates.md (mask_reg_operand): New predicate. | |
14831 | * config/i386/sse.md (define_split): Add post-reload splitters | |
14832 | that would convert "generic" patterns to mask patterns. | |
14833 | (*knotsi_1_zext): New define_insn. | |
14834 | ||
14835 | 2020-08-21 liuhongt <hongtao.liu@intel.com> | |
14836 | ||
14837 | * config/i386/x86-tune-costs.h (skylake_cost): Adjust cost | |
14838 | model. | |
14839 | ||
14840 | 2020-08-21 liuhongt <hongtao.liu@intel.com> | |
14841 | ||
14842 | * config/i386/i386.c (inline_secondary_memory_needed): | |
14843 | No memory is needed between mask regs and gpr. | |
14844 | (ix86_hard_regno_mode_ok): Add condition TARGET_AVX512F for | |
14845 | mask regno. | |
14846 | * config/i386/i386.h (enum reg_class): Add INT_MASK_REGS. | |
14847 | (REG_CLASS_NAMES): Ditto. | |
14848 | (REG_CLASS_CONTENTS): Ditto. | |
14849 | * config/i386/i386.md: Exclude mask register in | |
14850 | define_peephole2 which is avaiable only for gpr. | |
14851 | ||
14852 | 2020-08-21 H.J. Lu <hjl.tools@gmail.com> | |
14853 | ||
14854 | PR target/71453 | |
14855 | * config/i386/i386.h (struct processor_costs): Add member | |
14856 | mask_to_integer, integer_to_mask, mask_load[3], mask_store[3], | |
14857 | mask_move. | |
14858 | * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, | |
14859 | i386_cost, pentium_cost, lakemont_cost, pentiumpro_cost, | |
14860 | geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, | |
14861 | bdver_cost, znver1_cost, znver2_cost, skylake_cost, | |
14862 | btver1_cost, btver2_cost, pentium4_cost, nocona_cost, | |
14863 | atom_cost, slm_cost, intel_cost, generic_cost, core_cost): | |
14864 | Initialize mask_load[3], mask_store[3], mask_move, | |
14865 | integer_to_mask, mask_to_integer for all target costs. | |
14866 | * config/i386/i386.c (ix86_register_move_cost): Using cost | |
14867 | model of mask registers. | |
14868 | (inline_memory_move_cost): Ditto. | |
14869 | (ix86_register_move_cost): Ditto. | |
14870 | ||
14871 | 2020-08-20 Iain Buclaw <ibuclaw@gdcproject.org> | |
14872 | ||
14873 | * config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC): Don't include | |
14874 | VxWorks header files if -fself-test is used. | |
14875 | (STARTFILE_PREFIX_SPEC): Avoid using VSB_DIR if -fself-test is used. | |
14876 | ||
14877 | 2020-08-20 Joe Ramsay <Joe.Ramsay@arm.com> | |
14878 | ||
14879 | PR target/96683 | |
14880 | * config/arm/mve.md (mve_vst1q_f<mode>): Require MVE memory operand for | |
14881 | destination. | |
14882 | (mve_vst1q_<supf><mode>): Likewise. | |
14883 | ||
14884 | 2020-08-19 2020-08-19 Carl Love <cel@us.ibm.com> | |
14885 | ||
14886 | * config/rs6000/rs6000-builtin.def (BU_P10V_0, BU_P10V_1, | |
14887 | BU_P10V_2, BU_P10V_3): Rename BU_P10V_VSX_0, BU_P10V_VSX_1, | |
14888 | BU_P10V_VSX_2, BU_P10V_VSX_3 respectively. | |
14889 | (BU_P10V_4): Remove. | |
14890 | (BU_P10V_AV_0, BU_P10V_AV_1, BU_P10V_AV_2, BU_P10V_AV_3, BU_P10V_AV_4): | |
14891 | New definitions for Power 10 Altivec macros. | |
14892 | (VSTRIBR, VSTRIHR, VSTRIBL, VSTRIHL, VSTRIBR_P, VSTRIHR_P, | |
14893 | VSTRIBL_P, VSTRIHL_P, MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM, | |
14894 | VEXPANDMB, VEXPANDMH, VEXPANDMW, VEXPANDMD, VEXPANDMQ, VEXTRACTMB, | |
14895 | VEXTRACTMH, VEXTRACTMW, VEXTRACTMD, VEXTRACTMQ): Replace macro | |
14896 | expansion BU_P10V_1 with BU_P10V_AV_1. | |
14897 | (VCLRLB, VCLRRB, VCFUGED, VCLZDM, VCTZDM, VPDEPD, VPEXTD, VGNB, | |
14898 | VCNTMBB, VCNTMBH, VCNTMBW, VCNTMBD): Replace macro expansion | |
14899 | BU_P10V_2 with BU_P10V_AV_2. | |
14900 | (VEXTRACTBL, VEXTRACTHL, VEXTRACTWL, VEXTRACTDL, VEXTRACTBR, VEXTRACTHR, | |
14901 | VEXTRACTWR, VEXTRACTDR, VINSERTGPRBL, VINSERTGPRHL, VINSERTGPRWL, | |
14902 | VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL, VINSERTGPRBR, | |
14903 | VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR, VINSERTVPRHR, | |
14904 | VINSERTVPRWR, VREPLACE_ELT_V4SI, VREPLACE_ELT_UV4SI, VREPLACE_ELT_V2DF, | |
14905 | VREPLACE_ELT_V4SF, VREPLACE_ELT_V2DI, VREPLACE_ELT_UV2DI, VREPLACE_UN_V4SI, | |
14906 | VREPLACE_UN_UV4SI, VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI, | |
14907 | VREPLACE_UN_V2DF, VSLDB_V16QI, VSLDB_V8HI, VSLDB_V4SI, VSLDB_V2DI, | |
14908 | VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI, VSRDB_V2DI): Replace macro expansion | |
14909 | BU_P10V_3 with BU_P10V_AV_3. | |
14910 | (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF, VXXSPLTID): Replace macro expansion | |
14911 | BU_P10V_1 with BU_P10V_AV_1. | |
14912 | (XXGENPCVM_V16QI, XXGENPCVM_V8HI, XXGENPCVM_V4SI, XXGENPCVM_V2DI): | |
14913 | Replace macro expansion BU_P10V_2 with BU_P10V_VSX_2. | |
14914 | (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF, VXXBLEND_V16QI, VXXBLEND_V8HI, | |
14915 | VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): Replace macor | |
14916 | expansion BU_P10V_3 with BU_P10V_VSX_3. | |
14917 | (XXEVAL, VXXPERMX): Replace macro expansion BU_P10V_4 with BU_P10V_VSX_4. | |
14918 | (XVCVBF16SP, XVCVSPBF16): Replace macro expansion BU_VSX_1 with | |
14919 | BU_P10V_VSX_1. Also change MISC to CONST. | |
14920 | * config/rs6000/rs6000-c.c: (P10_BUILTIN_VXXPERMX): Replace with | |
14921 | P10V_BUILTIN_VXXPERMX. | |
14922 | (P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRLB, P10_BUILTIN_VCLRRB, | |
14923 | P10_BUILTIN_VGNB, P10_BUILTIN_XXEVAL, P10_BUILTIN_VXXPERMX, | |
14924 | P10_BUILTIN_VEXTRACTBL, P10_BUILTIN_VEXTRACTHL, P10_BUILTIN_VEXTRACTWL, | |
14925 | P10_BUILTIN_VEXTRACTDL, P10_BUILTIN_VINSERTGPRHL, | |
14926 | P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL, | |
14927 | P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL, | |
14928 | P10_BUILTIN_VEXTRACTBR, P10_BUILTIN_VEXTRACTHR, | |
14929 | P10_BUILTIN_VEXTRACTWR, P10_BUILTIN_VEXTRACTDR, | |
14930 | P10_BUILTIN_VINSERTGPRBR, P10_BUILTIN_VINSERTGPRHR, | |
14931 | P10_BUILTIN_VINSERTGPRWR, P10_BUILTIN_VINSERTGPRDR, | |
14932 | P10_BUILTIN_VINSERTVPRBR, P10_BUILTIN_VINSERTVPRHR, | |
14933 | P10_BUILTIN_VINSERTVPRWR, P10_BUILTIN_VREPLACE_ELT_UV4SI, | |
14934 | P10_BUILTIN_VREPLACE_ELT_V4SI, P10_BUILTIN_VREPLACE_ELT_UV2DI, | |
14935 | P10_BUILTIN_VREPLACE_ELT_V2DI, P10_BUILTIN_VREPLACE_ELT_V2DF, | |
14936 | P10_BUILTIN_VREPLACE_UN_UV4SI, P10_BUILTIN_VREPLACE_UN_V4SI, | |
14937 | P10_BUILTIN_VREPLACE_UN_V4SF, P10_BUILTIN_VREPLACE_UN_UV2DI, | |
14938 | P10_BUILTIN_VREPLACE_UN_V2DI, P10_BUILTIN_VREPLACE_UN_V2DF, | |
14939 | P10_BUILTIN_VSLDB_V16QI, P10_BUILTIN_VSLDB_V16QI, | |
14940 | P10_BUILTIN_VSLDB_V8HI, P10_BUILTIN_VSLDB_V4SI, | |
14941 | P10_BUILTIN_VSLDB_V2DI, P10_BUILTIN_VXXSPLTIW_V4SI, | |
14942 | P10_BUILTIN_VXXSPLTIW_V4SF, P10_BUILTIN_VXXSPLTID, | |
14943 | P10_BUILTIN_VXXSPLTI32DX_V4SI, P10_BUILTIN_VXXSPLTI32DX_V4SF, | |
14944 | P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI, | |
14945 | P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI, | |
14946 | P10_BUILTIN_VXXBLEND_V4SF, P10_BUILTIN_VXXBLEND_V2DF, | |
14947 | P10_BUILTIN_VSRDB_V16QI, P10_BUILTIN_VSRDB_V8HI, | |
14948 | P10_BUILTIN_VSRDB_V4SI, P10_BUILTIN_VSRDB_V2DI, | |
14949 | P10_BUILTIN_VSTRIBL, P10_BUILTIN_VSTRIHL, | |
14950 | P10_BUILTIN_VSTRIBL_P, P10_BUILTIN_VSTRIHL_P, | |
14951 | P10_BUILTIN_VSTRIBR, P10_BUILTIN_VSTRIHR, | |
14952 | P10_BUILTIN_VSTRIBR_P, P10_BUILTIN_VSTRIHR_P, | |
14953 | P10_BUILTIN_MTVSRBM, P10_BUILTIN_MTVSRHM, | |
14954 | P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM, | |
14955 | P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB, | |
14956 | P10_BUILTIN_VCNTMBH, P10_BUILTIN_VCNTMBW, | |
14957 | P10_BUILTIN_VCNTMBD, P10_BUILTIN_VEXPANDMB, | |
14958 | P10_BUILTIN_VEXPANDMH, P10_BUILTIN_VEXPANDMW, | |
14959 | P10_BUILTIN_VEXPANDMD, P10_BUILTIN_VEXPANDMQ, | |
14960 | P10_BUILTIN_VEXTRACTMB, P10_BUILTIN_VEXTRACTMH, | |
14961 | P10_BUILTIN_VEXTRACTMW, P10_BUILTIN_VEXTRACTMD, | |
14962 | P10_BUILTIN_VEXTRACTMQ, P10_BUILTIN_XVTLSBB_ZEROS, | |
14963 | P10_BUILTIN_XVTLSBB_ONES): Replace with | |
14964 | P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRLB, P10V_BUILTIN_VCLRRB, | |
14965 | P10V_BUILTIN_VGNB, P10V_BUILTIN_XXEVAL, P10V_BUILTIN_VXXPERMX, | |
14966 | P10V_BUILTIN_VEXTRACTBL, P10V_BUILTIN_VEXTRACTHL, P10V_BUILTIN_VEXTRACTWL, | |
14967 | P10V_BUILTIN_VEXTRACTDL, P10V_BUILTIN_VINSERTGPRHL, | |
14968 | P10V_BUILTIN_VINSERTGPRWL, P10V_BUILTIN_VINSERTGPRDL, | |
14969 | P10V_BUILTIN_VINSERTVPRBL,P10V_BUILTIN_VINSERTVPRHL, | |
14970 | P10V_BUILTIN_VEXTRACTBR, P10V_BUILTIN_VEXTRACTHR | |
14971 | P10V_BUILTIN_VEXTRACTWR, P10V_BUILTIN_VEXTRACTDR, | |
14972 | P10V_BUILTIN_VINSERTGPRBR, P10V_BUILTIN_VINSERTGPRHR, | |
14973 | P10V_BUILTIN_VINSERTGPRWR, P10V_BUILTIN_VINSERTGPRDR, | |
14974 | P10V_BUILTIN_VINSERTVPRBR, P10V_BUILTIN_VINSERTVPRHR, | |
14975 | P10V_BUILTIN_VINSERTVPRWR, P10V_BUILTIN_VREPLACE_ELT_UV4SI, | |
14976 | P10V_BUILTIN_VREPLACE_ELT_V4SI, P10V_BUILTIN_VREPLACE_ELT_UV2DI, | |
14977 | P10V_BUILTIN_VREPLACE_ELT_V2DI, P10V_BUILTIN_VREPLACE_ELT_V2DF, | |
14978 | P10V_BUILTIN_VREPLACE_UN_UV4SI, P10V_BUILTIN_VREPLACE_UN_V4SI, | |
14979 | P10V_BUILTIN_VREPLACE_UN_V4SF, P10V_BUILTIN_VREPLACE_UN_UV2DI, | |
14980 | P10V_BUILTIN_VREPLACE_UN_V2DI, P10V_BUILTIN_VREPLACE_UN_V2DF, | |
14981 | P10V_BUILTIN_VSLDB_V16QI, P10V_BUILTIN_VSLDB_V16QI, | |
14982 | P10V_BUILTIN_VSLDB_V8HI, P10V_BUILTIN_VSLDB_V4SI, | |
14983 | P10V_BUILTIN_VSLDB_V2DI, P10V_BUILTIN_VXXSPLTIW_V4SI, | |
14984 | P10V_BUILTIN_VXXSPLTIW_V4SF, P10V_BUILTIN_VXXSPLTID, | |
14985 | P10V_BUILTIN_VXXSPLTI32DX_V4SI, P10V_BUILTIN_VXXSPLTI32DX_V4SF, | |
14986 | P10V_BUILTIN_VXXBLEND_V16QI, P10V_BUILTIN_VXXBLEND_V8HI, | |
14987 | P10V_BUILTIN_VXXBLEND_V4SI, P10V_BUILTIN_VXXBLEND_V2DI, | |
14988 | P10V_BUILTIN_VXXBLEND_V4SF, P10V_BUILTIN_VXXBLEND_V2DF, | |
14989 | P10V_BUILTIN_VSRDB_V16QI, P10V_BUILTIN_VSRDB_V8HI, | |
14990 | P10V_BUILTIN_VSRDB_V4SI, P10V_BUILTIN_VSRDB_V2DI, | |
14991 | P10V_BUILTIN_VSTRIBL, P10V_BUILTIN_VSTRIHL, | |
14992 | P10V_BUILTIN_VSTRIBL_P, P10V_BUILTIN_VSTRIHL_P, | |
14993 | P10V_BUILTIN_VSTRIBR, P10V_BUILTIN_VSTRIHR, | |
14994 | P10V_BUILTIN_VSTRIBR_P, P10V_BUILTIN_VSTRIHR_P, | |
14995 | P10V_BUILTIN_MTVSRBM, P10V_BUILTIN_MTVSRHM, | |
14996 | P10V_BUILTIN_MTVSRWM, P10V_BUILTIN_MTVSRDM, | |
14997 | P10V_BUILTIN_MTVSRQM, P10V_BUILTIN_VCNTMBB, | |
14998 | P10V_BUILTIN_VCNTMBH, P10V_BUILTIN_VCNTMBW, | |
14999 | P10V_BUILTIN_VCNTMBD, P10V_BUILTIN_VEXPANDMB, | |
15000 | P10V_BUILTIN_VEXPANDMH, P10V_BUILTIN_VEXPANDMW, | |
15001 | P10V_BUILTIN_VEXPANDMD, P10V_BUILTIN_VEXPANDMQ, | |
15002 | P10V_BUILTIN_VEXTRACTMB, P10V_BUILTIN_VEXTRACTMH, | |
15003 | P10V_BUILTIN_VEXTRACTMW, P10V_BUILTIN_VEXTRACTMD, | |
15004 | P10V_BUILTIN_VEXTRACTMQ, P10V_BUILTIN_XVTLSBB_ZEROS, | |
15005 | P10V_BUILTIN_XVTLSBB_ONES respectively. | |
15006 | * config/rs6000/rs6000-call.c: Ditto above, change P10_BUILTIN_name to | |
15007 | P10V_BUILTIN_name. | |
15008 | (P10_BUILTIN_XVCVSPBF16, P10_BUILTIN_XVCVBF16SP): Change to | |
15009 | P10V_BUILTIN_XVCVSPBF16, P10V_BUILTIN_XVCVBF16SP respectively. | |
15010 | ||
15011 | 2020-08-19 Bill Schmidt <wschmidt@linux.ibm.com> | |
15012 | ||
15013 | * config/rs6000/rs6000-logue.c (rs6000_decl_ok_for_sibcall): | |
15014 | Sibcalls are always legal when the caller doesn't preserve r2. | |
15015 | ||
15016 | 2020-08-19 Uroš Bizjak <ubizjak@gmail.com> | |
15017 | ||
15018 | * config/i386/i386-expand.c (ix86_expand_builtin) | |
15019 | [case IX86_BUILTIN_ENQCMD, case IX86_BUILTIN_ENQCMDS]: | |
15020 | Rewrite expansion to use code_for_enqcmd. | |
15021 | [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ]: | |
15022 | Rewrite expansion to use code_for_wrss. | |
15023 | [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]: | |
15024 | Rewrite expansion to use code_for_wrss. | |
15025 | ||
15026 | 2020-08-19 Feng Xue <fxue@os.amperecomputing.com> | |
15027 | ||
15028 | PR tree-optimization/94234 | |
15029 | * match.pd ((PTR_A + OFF) - (PTR_B + OFF)) -> (PTR_A - PTR_B): New | |
15030 | simplification. | |
15031 | ||
15032 | 2020-08-19 H.J. Lu <hjl.tools@gmail.com> | |
15033 | ||
15034 | * common/config/i386/cpuinfo.h (get_intel_cpu): Detect Rocket | |
15035 | Lake and Alder Lake. | |
15036 | ||
15037 | 2020-08-19 Peixin Qiao <qiaopeixin@huawei.com> | |
15038 | ||
15039 | * config/aarch64/aarch64.c (aarch64_init_cumulative_args): Remove | |
15040 | "fndecl && TREE_PUBLIC (fndecl)" check since it prevents the funtion | |
15041 | type check when calling via a function pointer or when calling a static | |
15042 | function. | |
15043 | ||
15044 | 2020-08-19 Kewen Lin <linkw@linux.ibm.com> | |
15045 | ||
15046 | * opts-global.c (decode_options): Call target_option_override_hook | |
15047 | before it prints for --help=*. | |
15048 | ||
15049 | 2020-08-18 Peter Bergner <bergner@linux.ibm.com> | |
15050 | ||
15051 | * config/rs6000/rs6000-builtin.def (BU_VSX_1): Rename xvcvbf16sp to | |
15052 | xvcvbf16spn. | |
15053 | * config/rs6000/rs6000-call.c (builtin_function_type): Likewise. | |
15054 | * config/rs6000/vsx.md: Likewise. | |
15055 | * doc/extend.texi: Likewise. | |
15056 | ||
15057 | 2020-08-18 Aaron Sawdey <acsawdey@linux.ibm.com> | |
15058 | ||
15059 | * config/rs6000/rs6000-string.c (gen_lxvl_stxvl_move): | |
15060 | Helper function. | |
15061 | (expand_block_move): Add lxvl/stxvl, vector pair, and | |
15062 | unaligned VSX. | |
15063 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
15064 | Default value for -mblock-ops-vector-pair. | |
15065 | * config/rs6000/rs6000.opt: Add -mblock-ops-vector-pair. | |
15066 | ||
15067 | 2020-08-18 Aldy Hernandez <aldyh@redhat.com> | |
15068 | ||
15069 | * vr-values.c (check_for_binary_op_overflow): Change type of store | |
15070 | to range_query. | |
15071 | (vr_values::adjust_range_with_scev): Abstract most of the code... | |
15072 | (range_of_var_in_loop): ...here. Remove value_range_equiv uses. | |
15073 | (simplify_using_ranges::simplify_using_ranges): Change type of store | |
15074 | to range_query. | |
15075 | * vr-values.h (class range_query): New. | |
15076 | (class simplify_using_ranges): Use range_query. | |
15077 | (class vr_values): Add OVERRIDE to get_value_range. | |
15078 | (range_of_var_in_loop): New. | |
15079 | ||
15080 | 2020-08-18 Martin Sebor <msebor@redhat.com> | |
15081 | ||
15082 | PR middle-end/96665 | |
15083 | PR middle-end/78257 | |
15084 | * expr.c (convert_to_bytes): Replace statically allocated buffer with | |
15085 | a dynamically allocated one of sufficient size. | |
15086 | ||
15087 | 2020-08-18 Martin Sebor <msebor@redhat.com> | |
15088 | ||
15089 | PR tree-optimization/96670 | |
15090 | PR middle-end/78257 | |
15091 | * gimple-fold.c (gimple_fold_builtin_memchr): Call byte_representation | |
15092 | to get it, not string_constant. | |
15093 | ||
15094 | 2020-08-18 Hu Jiangping <hujiangping@cn.fujitsu.com> | |
15095 | ||
15096 | * doc/gimple.texi (gimple_debug_begin_stmt_p): Add return type. | |
15097 | (gimple_debug_inline_entry_p, gimple_debug_nonbind_marker_p): Likewise. | |
15098 | ||
15099 | 2020-08-18 Martin Sebor <msebor@redhat.com> | |
15100 | ||
15101 | * fold-const.c (native_encode_expr): Update comment. | |
15102 | ||
15103 | 2020-08-18 Uroš Bizjak <ubizjak@gmail.com> | |
15104 | ||
15105 | PR target/96536 | |
15106 | * config/i386/i386.md (restore_stack_nonlocal): Add missing compare | |
15107 | RTX. Rewrite expander to use high-level functions in RTL construction. | |
15108 | ||
15109 | 2020-08-18 liuhongt <hongtao.liu@intel.com> | |
15110 | ||
15111 | PR target/96562 | |
15112 | PR target/93897 | |
15113 | * config/i386/i386-expand.c (ix86_expand_pinsr): Don't use | |
15114 | pinsr for TImode. | |
15115 | (ix86_expand_pextr): Don't use pextr for TImode. | |
15116 | ||
15117 | 2020-08-17 Uroš Bizjak <ubizjak@gmail.com> | |
15118 | ||
15119 | * config/i386/i386-builtin.def (__builtin_ia32_bextri_u32) | |
15120 | (__builtin_ia32_bextri_u64): Use CODE_FOR_nothing. | |
15121 | * config/i386/i386.md (@tbm_bextri_<mode>): | |
15122 | Implement as parametrized name pattern. | |
15123 | (@rdrand<mode>): Ditto. | |
15124 | (@rdseed<mode>): Ditto. | |
15125 | * config/i386/i386-expand.c (ix86_expand_builtin) | |
15126 | [case IX86_BUILTIN_BEXTRI32, case IX86_BUILTIN_BEXTRI64]: | |
15127 | Update for parameterized name patterns. | |
15128 | [case IX86_BUILTIN_RDRAND16_STEP, case IX86_BUILTIN_RDRAND32_STEP] | |
15129 | [case IX86_BUILTIN_RDRAND64_STEP]: Ditto. | |
15130 | [case IX86_BUILTIN_RDSEED16_STEP, case IX86_BUILTIN_RDSEED32_STEP] | |
15131 | [case IX86_BUILTIN_RDSEED64_STEP]: Ditto. | |
15132 | ||
15133 | 2020-08-17 Aldy Hernandez <aldyh@redhat.com> | |
15134 | ||
15135 | * vr-values.c (vr_values::get_value_range): Add stmt param. | |
15136 | (vr_values::extract_range_from_comparison): Same. | |
15137 | (vr_values::extract_range_from_assignment): Pass stmt to | |
15138 | extract_range_from_comparison. | |
15139 | (vr_values::adjust_range_with_scev): Pass stmt to get_value_range. | |
15140 | (simplify_using_ranges::vrp_evaluate_conditional): Add stmt param. | |
15141 | Pass stmt to get_value_range. | |
15142 | (simplify_using_ranges::vrp_visit_cond_stmt): Pass stmt to | |
15143 | get_value_range. | |
15144 | (simplify_using_ranges::simplify_abs_using_ranges): Same. | |
15145 | (simplify_using_ranges::simplify_div_or_mod_using_ranges): Same. | |
15146 | (simplify_using_ranges::simplify_bit_ops_using_ranges): Same. | |
15147 | (simplify_using_ranges::simplify_cond_using_ranges_1): Same. | |
15148 | (simplify_using_ranges::simplify_switch_using_ranges): Same. | |
15149 | (simplify_using_ranges::simplify_float_conversion_using_ranges): Same. | |
15150 | * vr-values.h (class vr_values): Add stmt arg to | |
15151 | vrp_evaluate_conditional_warnv_with_ops. | |
15152 | Add stmt arg to extract_range_from_comparison and get_value_range. | |
15153 | (simplify_using_ranges::get_value_range): Add stmt arg. | |
15154 | ||
15155 | 2020-08-17 liuhongt <hongtao.liu@intel.com> | |
15156 | ||
15157 | PR target/96350 | |
15158 | * config/i386/i386.c (ix86_legitimate_constant_p): Return | |
15159 | false for ENDBR immediate. | |
15160 | (ix86_legitimate_address_p): Ditto. | |
15161 | * config/i386/predicates.md | |
15162 | (x86_64_immediate_operand): Exclude ENDBR immediate. | |
15163 | (x86_64_zext_immediate_operand): Ditto. | |
15164 | (x86_64_dwzext_immediate_operand): Ditto. | |
15165 | (ix86_endbr_immediate_operand): New predicate. | |
15166 | ||
15167 | 2020-08-16 Roger Sayle <roger@nextmovesoftware.com> | |
15168 | ||
15169 | * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]: | |
15170 | Simplify (sign_extend:M (truncate:N (lshiftrt:M x C))) to | |
15171 | (ashiftrt:M x C) when the shift sets the high bits appropriately. | |
15172 | ||
15173 | 2020-08-14 Martin Sebor <msebor@redhat.com> | |
15174 | ||
15175 | PR middle-end/78257 | |
15176 | * builtins.c (expand_builtin_memory_copy_args): Rename called function. | |
15177 | (expand_builtin_stpcpy_1): Remove argument from call. | |
15178 | (expand_builtin_memcmp): Rename called function. | |
15179 | (inline_expand_builtin_bytecmp): Same. | |
15180 | * expr.c (convert_to_bytes): New function. | |
15181 | (constant_byte_string): New function (formerly string_constant). | |
15182 | (string_constant): Call constant_byte_string. | |
15183 | (byte_representation): New function. | |
15184 | * expr.h (byte_representation): Declare. | |
15185 | * fold-const-call.c (fold_const_call): Rename called function. | |
15186 | * fold-const.c (c_getstr): Remove an argument. | |
15187 | (getbyterep): Define a new function. | |
15188 | * fold-const.h (c_getstr): Remove an argument. | |
15189 | (getbyterep): Declare a new function. | |
15190 | * gimple-fold.c (gimple_fold_builtin_memory_op): Rename callee. | |
15191 | (gimple_fold_builtin_string_compare): Same. | |
15192 | (gimple_fold_builtin_memchr): Same. | |
15193 | ||
15194 | 2020-08-14 David Malcolm <dmalcolm@redhat.com> | |
15195 | ||
15196 | * doc/analyzer.texi (Overview): Add tip about how to get a | |
15197 | gimple dump if the analyzer ICEs. | |
15198 | ||
15199 | 2020-08-14 Uroš Bizjak <ubizjak@gmail.com> | |
15200 | ||
15201 | * config/i386/i386-builtin.def (__builtin_ia32_llwpcb) | |
15202 | (__builtin_ia32_slwpcb, __builtin_ia32_lwpval32) | |
15203 | (__builtin_ia32_lwpval64, __builtin_ia32_lwpins32) | |
15204 | (__builtin_ia32_lwpins64): Use CODE_FOR_nothing. | |
15205 | * config/i386/i386.md (@lwp_llwpcb<mode>): | |
15206 | Implement as parametrized name pattern. | |
15207 | (@lwp_slwpcb<mode>): Ditto. | |
15208 | (@lwp_lwpval<mode>): Ditto. | |
15209 | (@lwp_lwpins<mode>): Ditto. | |
15210 | * config/i386/i386-expand.c (ix86_expand_special_args_builtin) | |
15211 | [case VOID_FTYPE_UINT_UINT_UINT, case VOID_FTYPE_UINT64_UINT_UINT] | |
15212 | [case UCHAR_FTYPE_UINT_UINT_UINT, case UCHAR_FTYPE_UINT64_UINT_UINT]: | |
15213 | Remove. | |
15214 | (ix86_expand_builtin) | |
15215 | [ case IX86_BUILTIN_LLWPCB, case IX86_BUILTIN_LLWPCB]: | |
15216 | Update for parameterized name patterns. | |
15217 | [case IX86_BUILTIN_LWPVAL32, case IX86_BUILTIN_LWPVAL64] | |
15218 | [case IX86_BUILTIN_LWPINS32, case IX86_BUILTIN_LWPINS64]: Expand here. | |
15219 | ||
15220 | 2020-08-14 Lewis Hyatt <lhyatt@gmail.com> | |
15221 | ||
15222 | * common.opt: Add new option -fdiagnostics-plain-output. | |
15223 | * doc/invoke.texi: Document it. | |
15224 | * opts-common.c (decode_cmdline_options_to_array): Implement it. | |
15225 | (decode_cmdline_option): Add missing const qualifier to argv. | |
15226 | ||
15227 | 2020-08-14 Jakub Jelinek <jakub@redhat.com> | |
15228 | Jonathan Wakely <jwakely@redhat.com> | |
15229 | Jonathan Wakely <jwakely@redhat.com> | |
15230 | ||
15231 | * system.h: Include type_traits. | |
15232 | * vec.h (vec<T, A, vl_embed>::embedded_size): Use offsetof and asserts | |
15233 | on vec_stdlayout, which is conditionally a vec (for standard layout T) | |
15234 | and otherwise vec_embedded. | |
15235 | ||
15236 | 2020-08-14 Jojo R <jiejie_rong@c-sky.com> | |
15237 | ||
15238 | * config/csky/csky-elf.h (ASM_SPEC): Use mfloat-abi. | |
15239 | * config/csky/csky-linux-elf.h (ASM_SPEC): mfloat-abi. | |
15240 | ||
15241 | 2020-08-13 David Malcolm <dmalcolm@redhat.com> | |
15242 | ||
15243 | PR analyzer/93032 | |
15244 | PR analyzer/93938 | |
15245 | PR analyzer/94011 | |
15246 | PR analyzer/94099 | |
15247 | PR analyzer/94399 | |
15248 | PR analyzer/94458 | |
15249 | PR analyzer/94503 | |
15250 | PR analyzer/94640 | |
15251 | PR analyzer/94688 | |
15252 | PR analyzer/94689 | |
15253 | PR analyzer/94839 | |
15254 | PR analyzer/95026 | |
15255 | PR analyzer/95042 | |
15256 | PR analyzer/95240 | |
15257 | * Makefile.in (ANALYZER_OBJS): Add analyzer/region.o, | |
15258 | analyzer/region-model-impl-calls.o, | |
15259 | analyzer/region-model-manager.o, | |
15260 | analyzer/region-model-reachability.o, analyzer/store.o, and | |
15261 | analyzer/svalue.o. | |
15262 | * doc/analyzer.texi: Update for changes to analyzer | |
15263 | implementation. | |
15264 | * tristate.h (tristate::get_value): New accessor. | |
15265 | ||
15266 | 2020-08-13 Uroš Bizjak <ubizjak@gmail.com> | |
15267 | ||
15268 | * config/i386/i386-builtin.def (CET_NORMAL): Merge to CET BDESC array. | |
15269 | (__builtin_ia32_rddspd, __builtin_ia32_rddspq, __builtin_ia32_incsspd) | |
15270 | (__builtin_ia32_incsspq, __builtin_ia32_wrssd, __builtin_ia32_wrssq) | |
15271 | (__builtin_ia32_wrussd, __builtin_ia32_wrussq): Use CODE_FOR_nothing. | |
15272 | * config/i386/i386-builtins.c: Remove handling of CET_NORMAL builtins. | |
15273 | * config/i386/i386.md (@rdssp<mode>): Implement as parametrized | |
15274 | name pattern. Use SWI48 mode iterator. Introduce input operand | |
15275 | and remove explicit XOR zeroing from insn template. | |
15276 | (@incssp<mode>): Implement as parametrized name pattern. | |
15277 | Use SWI48 mode iterator. | |
15278 | (@wrss<mode>): Ditto. | |
15279 | (@wruss<mode>): Ditto. | |
15280 | (rstorssp): Remove expander. Rename insn pattern from *rstorssp<mode>. | |
15281 | Use DImode memory operand. | |
15282 | (clrssbsy): Remove expander. Rename insn pattern from *clrssbsy<mode>. | |
15283 | Use DImode memory operand. | |
15284 | (save_stack_nonlocal): Update for parametrized name patterns. | |
15285 | Use cleared register as an argument to gen_rddsp. | |
15286 | (restore_stack_nonlocal): Update for parametrized name patterns. | |
15287 | * config/i386/i386-expand.c (ix86_expand_builtin): | |
15288 | [case IX86_BUILTIN_RDSSPD, case IX86_BUILTIN_RDSSPQ]: Expand here. | |
15289 | [case IX86_BUILTIN_INCSSPD, case IX86_BUILTIN_INCSSPQ]: Ditto. | |
15290 | [case IX86_BUILTIN_RSTORSSP, case IX86_BUILTIN_CLRSSBSY]: | |
15291 | Generate DImode memory operand. | |
15292 | [case IX86_BUILTIN_WRSSD, case IX86_BUILTIN_WRSSQ] | |
15293 | [case IX86_BUILTIN_WRUSSD, case IX86_BUILTIN_WRUSSD]: | |
15294 | Update for parameterized name patterns. | |
15295 | ||
15296 | 2020-08-13 Peter Bergner <bergner@linux.ibm.com> | |
15297 | ||
15298 | PR target/96506 | |
15299 | * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): Disallow | |
15300 | MMA types as return values. | |
15301 | (rs6000_function_arg): Disallow MMA types as function arguments. | |
15302 | ||
15303 | 2020-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
15304 | ||
15305 | Revert: | |
15306 | 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com> | |
15307 | ||
15308 | * config/aarch64/aarch64.c (aarch64_function_value): Add if | |
15309 | condition to check ag_mode after entering if condition of | |
15310 | aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is | |
15311 | set as false by -mgeneral-regs-only, report the diagnostic | |
15312 | information of -mgeneral-regs-only imcompatible with the use | |
15313 | of fp/simd register(s). | |
15314 | ||
15315 | 2020-08-13 Martin Liska <mliska@suse.cz> | |
15316 | ||
15317 | PR ipa/96482 | |
15318 | * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Mask m_value | |
15319 | with m_mask. | |
15320 | ||
15321 | 2020-08-13 Jakub Jelinek <jakub@redhat.com> | |
15322 | ||
15323 | * gimplify.c (gimplify_omp_taskloop_expr): New function. | |
15324 | (gimplify_omp_for): Use it. For OMP_FOR_NON_RECTANGULAR | |
15325 | loops adjust in outer taskloop the var-outer decls. | |
15326 | * omp-expand.c (expand_omp_taskloop_for_inner): Handle non-rectangular | |
15327 | loops. | |
15328 | (expand_omp_for): Don't reject non-rectangular taskloop. | |
15329 | * omp-general.c (omp_extract_for_data): Don't assert that | |
15330 | non-rectangular loops have static schedule, instead treat loop->m1 | |
15331 | or loop->m2 as if loop->n1 or loop->n2 is non-constant. | |
15332 | ||
15333 | 2020-08-13 Hongtao Liu <hongtao.liu@intel.com> | |
15334 | ||
15335 | PR target/96246 | |
15336 | * config/i386/sse.md (<avx512>_load<mode>_mask, | |
15337 | <avx512>_load<mode>_mask): Extend to generate blendm | |
15338 | instructions. | |
15339 | (<avx512>_blendm<mode>, <avx512>_blendm<mode>): Change | |
15340 | define_insn to define_expand. | |
15341 | ||
15342 | 2020-08-12 Roger Sayle <roger@nextmovesoftware.com> | |
15343 | Uroš Bizjak <ubizjak@gmail.com> | |
15344 | ||
15345 | PR target/96558 | |
15346 | * config/i386/i386.md (peephole2): Only reorder register clearing | |
15347 | instructions to allow use of xor for general registers. | |
15348 | ||
15349 | 2020-08-12 Martin Liska <mliska@suse.cz> | |
15350 | ||
15351 | PR ipa/96482 | |
15352 | * ipa-cp.c (ipcp_bits_lattice::meet_with_1): Drop value bits | |
15353 | for bits that are unknown. | |
15354 | (ipcp_bits_lattice::set_to_constant): Likewise. | |
15355 | * tree-ssa-ccp.c (get_default_value): Add sanity check that | |
15356 | IPA CP bit info has all bits set to zero in bits that | |
15357 | are unknown. | |
15358 | ||
15359 | 2020-08-12 Peixin Qiao <qiaopeixin@huawei.com> | |
15360 | ||
15361 | * config/aarch64/aarch64.c (aarch64_function_value): Add if | |
15362 | condition to check ag_mode after entering if condition of | |
15363 | aarch64_vfp_is_call_or_return_candidate. If TARGET_FLOAT is | |
15364 | set as false by -mgeneral-regs-only, report the diagnostic | |
15365 | information of -mgeneral-regs-only imcompatible with the use | |
15366 | of fp/simd register(s). | |
15367 | ||
15368 | 2020-08-12 Jakub Jelinek <jakub@redhat.com> | |
15369 | ||
15370 | PR tree-optimization/96535 | |
15371 | * toplev.c (process_options): Move flag_unroll_loops and | |
15372 | flag_cunroll_grow_size handling from here to ... | |
15373 | * opts.c (finish_options): ... here. For flag_cunroll_grow_size, | |
15374 | don't check for AUTODETECT_VALUE, but instead check | |
15375 | opts_set->x_flag_cunroll_grow_size. | |
15376 | * common.opt (funroll-completely-grow-size): Default to 0. | |
15377 | * config/rs6000/rs6000.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): | |
15378 | Redefine. | |
15379 | (rs6000_override_options_after_change): New function. | |
15380 | (rs6000_option_override_internal): Call it. Move there the | |
15381 | flag_cunroll_grow_size, unroll_only_small_loops and | |
15382 | flag_rename_registers handling. | |
15383 | ||
15384 | 2020-08-12 Tom de Vries <tdevries@suse.de> | |
15385 | ||
15386 | * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Make elt_size an | |
15387 | unsigned HOST_WIDE_INT. Print init_frag.remaining using | |
15388 | HOST_WIDE_INT_PRINT_UNSIGNED. | |
15389 | ||
15390 | 2020-08-12 Roger Sayle <roger@nextmovesoftware.com> | |
15391 | Uroš Bizjak <ubizjak@gmail.com> | |
15392 | ||
15393 | * config/i386/i386.md (peephole2): Reduce unnecessary | |
15394 | register shuffling produced by register allocation. | |
15395 | ||
15396 | 2020-08-12 Aldy Hernandez <aldyh@redhat.com> | |
15397 | ||
15398 | * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use vec<> | |
15399 | instead of std::vector<>. | |
15400 | (evaluate_properties_for_edge): Same. | |
15401 | (ipa_fn_summary_t::duplicate): Same. | |
15402 | (estimate_ipcp_clone_size_and_time): Same. | |
15403 | * vec.h (<T, A, vl_embed>::embedded_size): Change vec_embedded | |
15404 | type to contain a char[]. | |
15405 | ||
15406 | 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com> | |
15407 | ||
15408 | PR target/96308 | |
15409 | * config/s390/s390.c (s390_cannot_force_const_mem): Reject an | |
15410 | unary minus for everything not being a numeric constant. | |
15411 | (legitimize_tls_address): Move a NEG out of the CONST rtx. | |
15412 | ||
15413 | 2020-08-12 Andreas Krebbel <krebbel@linux.ibm.com> | |
15414 | ||
15415 | PR target/96456 | |
15416 | * config/s390/s390.h (TARGET_NONSIGNALING_VECTOR_COMPARE_OK): New | |
15417 | macro. | |
15418 | * config/s390/vector.md (vcond_comparison_operator): Use new macro | |
15419 | for the check. | |
15420 | ||
15421 | 2020-08-11 Jakub Jelinek <jakub@redhat.com> | |
15422 | ||
15423 | PR rtl-optimization/96539 | |
15424 | * expr.c (emit_block_move_hints): Don't copy anything if x and y | |
15425 | are the same and neither is MEM_VOLATILE_P. | |
15426 | ||
15427 | 2020-08-11 Jakub Jelinek <jakub@redhat.com> | |
15428 | ||
15429 | PR c/96549 | |
15430 | * tree.c (get_narrower): Use TREE_TYPE (ret) instead of | |
15431 | TREE_TYPE (win) for COMPOUND_EXPRs. | |
15432 | ||
15433 | 2020-08-11 Jan Hubicka <hubicka@ucw.cz> | |
15434 | ||
15435 | * predict.c (not_loop_guard_equal_edge_p): New function. | |
15436 | (maybe_predict_edge): New function. | |
15437 | (predict_paths_for_bb): Use it. | |
15438 | (predict_paths_leading_to_edge): Use it. | |
15439 | ||
15440 | 2020-08-11 Martin Liska <mliska@suse.cz> | |
15441 | ||
15442 | * dbgcnt.def (DEBUG_COUNTER): Add ipa_cp_bits. | |
15443 | * ipa-cp.c (ipcp_store_bits_results): Use it when we store known | |
15444 | bits for parameters. | |
15445 | ||
15446 | 2020-08-10 Marek Polacek <polacek@redhat.com> | |
15447 | ||
15448 | * doc/sourcebuild.texi: Document dg-ice. | |
15449 | ||
15450 | 2020-08-10 Roger Sayle <roger@nextmovesoftware.com> | |
15451 | ||
15452 | * config/i386/i386-expand.c (ix86_expand_int_movcc): Expand | |
15453 | signed MIN_EXPR against zero as "x < 0 ? x : 0" instead of | |
15454 | "x <= 0 ? x : 0" to enable sign_bit_compare_p optimizations. | |
15455 | ||
15456 | 2020-08-10 Aldy Hernandez <aldyh@redhat.com> | |
15457 | ||
15458 | * value-range.h (gt_ggc_mx): Declare inline. | |
15459 | (gt_pch_nx): Same. | |
15460 | ||
15461 | 2020-08-10 Marc Glisse <marc.glisse@inria.fr> | |
15462 | ||
15463 | PR tree-optimization/95433 | |
15464 | * match.pd (X * C1 == C2): Handle wrapping overflow. | |
15465 | * expr.c (maybe_optimize_mod_cmp): Qualify call to mod_inv. | |
15466 | (mod_inv): Move... | |
15467 | * wide-int.cc (mod_inv): ... here. | |
15468 | * wide-int.h (mod_inv): Declare it. | |
15469 | ||
15470 | 2020-08-10 Jan Hubicka <hubicka@ucw.cz> | |
15471 | ||
15472 | * predict.c (filter_predictions): Document semantics of filter. | |
15473 | (equal_edge_p): Rename to ... | |
15474 | (not_equal_edge_p): ... this; reverse semantics. | |
15475 | (remove_predictions_associated_with_edge): Fix. | |
15476 | ||
15477 | 2020-08-10 Hongtao Liu <hongtao.liu@intel.com> | |
15478 | ||
15479 | PR target/96243 | |
15480 | * config/i386/i386-expand.c (ix86_expand_sse_cmp): Refine for | |
15481 | maskcmp. | |
15482 | (ix86_expand_mask_vec_cmp): Change prototype. | |
15483 | * config/i386/i386-protos.h (ix86_expand_mask_vec_cmp): Change prototype. | |
15484 | * config/i386/i386.c (ix86_print_operand): Remove operand | |
15485 | modifier 'I'. | |
15486 | * config/i386/sse.md | |
15487 | (*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): Deleted. | |
15488 | (*<avx512>_cmp<mode>3<mask_scalar_merge_name>): Ditto. | |
15489 | (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>): Ditto. | |
15490 | (*<avx512>_ucmp<mode>3<mask_scalar_merge_name>, | |
15491 | avx512f_maskcmp<mode>3): Ditto. | |
15492 | ||
15493 | 2020-08-09 Roger Sayle <roger@nextmovesoftware.com> | |
15494 | ||
15495 | * expmed.c (init_expmed_one_conv): Restore all->reg's mode. | |
15496 | (init_expmed_one_mode): Set all->reg to desired mode. | |
15497 | ||
15498 | 2020-08-08 Peter Bergner <bergner@linux.ibm.com> | |
15499 | ||
15500 | PR target/96530 | |
15501 | * config/rs6000/rs6000.c (rs6000_invalid_conversion): Use canonical | |
15502 | types for type comparisons. Refactor code to simplify it. | |
15503 | ||
15504 | 2020-08-08 Jakub Jelinek <jakub@redhat.com> | |
15505 | ||
15506 | PR fortran/93553 | |
15507 | * tree-nested.c (convert_nonlocal_omp_clauses): For | |
15508 | OMP_CLAUSE_REDUCTION, OMP_CLAUSE_LASTPRIVATE and OMP_CLAUSE_LINEAR | |
15509 | save info->new_local_var_chain around walks of the clause gimple | |
15510 | sequences and declare_vars if needed into the sequence. | |
15511 | ||
15512 | 2020-08-08 Jakub Jelinek <jakub@redhat.com> | |
15513 | ||
15514 | PR tree-optimization/96424 | |
15515 | * omp-expand.c: Include tree-eh.h. | |
15516 | (expand_omp_for_init_vars): Handle -fexceptions -fnon-call-exceptions | |
15517 | by forcing floating point comparison into a bool temporary. | |
15518 | ||
15519 | 2020-08-07 Marc Glisse <marc.glisse@inria.fr> | |
15520 | ||
15521 | * generic-match-head.c (optimize_vectors_before_lowering_p): New | |
15522 | function. | |
15523 | * gimple-match-head.c (optimize_vectors_before_lowering_p): | |
15524 | Likewise. | |
15525 | * match.pd ((v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Use it. | |
15526 | ||
15527 | 2020-08-07 Richard Biener <rguenther@suse.de> | |
15528 | ||
15529 | PR tree-optimization/96514 | |
15530 | * tree-if-conv.c (if_convertible_bb_p): If the last stmt | |
15531 | is a call that is control-altering, fail. | |
15532 | ||
15533 | 2020-08-07 Jose E. Marchesi <jose.marchesi@oracle.com> | |
15534 | ||
15535 | * config/bpf/bpf.md: Remove trailing whitespaces. | |
15536 | * config/bpf/constraints.md: Likewise. | |
15537 | * config/bpf/predicates.md: Likewise. | |
15538 | ||
15539 | 2020-08-07 Michael Meissner <meissner@linux.ibm.com> | |
15540 | ||
15541 | * config/rs6000/rs6000.md (bswaphi2_reg): Add ISA 3.1 support. | |
15542 | (bswapsi2_reg): Add ISA 3.1 support. | |
15543 | (bswapdi2): Rename bswapdi2_xxbrd to bswapdi2_brd. | |
15544 | (bswapdi2_brd,bswapdi2_xxbrd): Rename. Add ISA 3.1 support. | |
15545 | ||
15546 | 2020-08-07 Alan Modra <amodra@gmail.com> | |
15547 | ||
15548 | PR target/96493 | |
15549 | * config/rs6000/predicates.md (current_file_function_operand): Don't | |
15550 | accept functions that differ in r2 usage. | |
15551 | ||
15552 | 2020-08-06 Hans-Peter Nilsson <hp@bitrange.com> | |
15553 | ||
15554 | * config/mmix/mmix.md (MM): New mode_iterator. | |
15555 | ("mov<mode>"): New expander to expand for all MM-modes. | |
15556 | ("*movqi_expanded", "*movhi_expanded", "*movsi_expanded") | |
15557 | ("*movsf_expanded", "*movdf_expanded"): Rename from the | |
15558 | corresponding mov<M> named pattern. Add to the condition that | |
15559 | either operand must be a register_operand. | |
15560 | ("*movdi_expanded"): Similar, but also allow STCO in the condition. | |
15561 | ||
15562 | 2020-08-06 Richard Sandiford <richard.sandiford@arm.com> | |
15563 | ||
15564 | PR target/96191 | |
15565 | * config/arm/arm.md (arm_stack_protect_test_insn): Zero out | |
15566 | operand 2 after use. | |
15567 | * config/arm/thumb1.md (thumb1_stack_protect_test_insn): Likewise. | |
15568 | ||
15569 | 2020-08-06 Peter Bergner <bergner@linux.ibm.com> | |
15570 | ||
15571 | PR target/96446 | |
15572 | * config/rs6000/mma.md (*movpxi): Add xxsetaccz generation. | |
15573 | Disable split for zero constant source operand. | |
15574 | (mma_xxsetaccz): Change to define_expand. Call gen_movpxi. | |
15575 | ||
15576 | 2020-08-06 Jakub Jelinek <jakub@redhat.com> | |
15577 | ||
15578 | PR tree-optimization/96480 | |
15579 | * tree-ssa-reassoc.c (suitable_cond_bb): Add TEST_SWAPPED_P argument. | |
15580 | If TEST_BB ends in cond and has one edge to *OTHER_BB and another | |
15581 | through an empty bb to that block too, if PHI args don't match, retry | |
15582 | them through the other path from TEST_BB. | |
15583 | (maybe_optimize_range_tests): Adjust callers. Handle such LAST_BB | |
15584 | through inversion of the condition. | |
15585 | ||
15586 | 2020-08-06 Jose E. Marchesi <jose.marchesi@oracle.com> | |
15587 | ||
15588 | * config/bpf/bpf-helpers.h (KERNEL_HELPER): Define. | |
15589 | (KERNEL_VERSION): Remove. | |
15590 | * config/bpf/bpf-helpers.def: Delete. | |
15591 | * config/bpf/bpf.c (bpf_handle_fndecl_attribute): New function. | |
15592 | (bpf_attribute_table): Define. | |
15593 | (bpf_helper_names): Delete. | |
15594 | (bpf_helper_code): Likewise. | |
15595 | (enum bpf_builtins): Adjust to new helpers mechanism. | |
15596 | (bpf_output_call): Likewise. | |
15597 | (bpf_init_builtins): Likewise. | |
15598 | (bpf_init_builtins): Likewise. | |
15599 | * doc/extend.texi (BPF Function Attributes): New section. | |
15600 | (BPF Kernel Helpers): Delete section. | |
15601 | ||
15602 | 2020-08-06 Richard Biener <rguenther@suse.de> | |
15603 | ||
15604 | PR tree-optimization/96491 | |
15605 | * tree-ssa-sink.c (sink_common_stores_to_bb): Avoid | |
15606 | sinking across abnormal edges. | |
15607 | ||
15608 | 2020-08-06 Richard Biener <rguenther@suse.de> | |
15609 | ||
15610 | PR tree-optimization/96483 | |
15611 | * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle | |
15612 | POLY_INT_CST. | |
15613 | ||
15614 | 2020-08-06 Richard Biener <rguenther@suse.de> | |
15615 | ||
15616 | * graphite-isl-ast-to-gimple.c (ivs_params): Use hash_map instead | |
15617 | of std::map. | |
15618 | (ivs_params_clear): Adjust. | |
15619 | (gcc_expression_from_isl_ast_expr_id): Likewise. | |
15620 | (graphite_create_new_loop): Likewise. | |
15621 | (add_parameters_to_ivs_params): Likewise. | |
15622 | ||
15623 | 2020-08-06 Roger Sayle <roger@nextmovesoftware.com> | |
15624 | Uroš Bizjak <ubizjak@gmail.com> | |
15625 | ||
15626 | * config/i386/i386.md (MAXMIN_IMODE): No longer needed. | |
15627 | (<maxmin><mode>3): Support SWI248 and general_operand for | |
15628 | second operand, when TARGET_CMOVE. | |
15629 | (<maxmin><mode>3_1 splitter): Optimize comparisons against | |
15630 | 0, 1 and -1 to use "test" instead of "cmp". | |
15631 | (*<maxmin>di3_doubleword): Likewise, allow general_operand | |
15632 | and enable on TARGET_CMOVE. | |
15633 | (peephole2): Convert clearing a register after a flag setting | |
15634 | instruction into an xor followed by the original flag setter. | |
15635 | ||
15636 | 2020-08-06 Gerald Pfeifer <gerald@pfeifer.com> | |
15637 | ||
15638 | * ipa-fnsummary.c (INCLUDE_VECTOR): Define. | |
15639 | Remove direct inclusion of <vector>. | |
15640 | ||
15641 | 2020-08-06 Kewen Lin <linkw@gcc.gnu.org> | |
15642 | ||
15643 | * config/rs6000/rs6000.c (rs6000_adjust_vect_cost_per_loop): New | |
15644 | function. | |
15645 | (rs6000_finish_cost): Call rs6000_adjust_vect_cost_per_loop. | |
15646 | * tree-vect-loop.c (vect_estimate_min_profitable_iters): Add cost | |
15647 | modeling for vector with length. | |
15648 | (vect_rgroup_iv_might_wrap_p): New function, factored out from... | |
15649 | * tree-vect-loop-manip.c (vect_set_loop_controls_directly): ...this. | |
15650 | Update function comment. | |
15651 | * tree-vect-stmts.c (vect_gen_len): Update function comment. | |
15652 | * tree-vectorizer.h (vect_rgroup_iv_might_wrap_p): New declare. | |
15653 | ||
15654 | 2020-08-06 Kewen Lin <linkw@linux.ibm.com> | |
15655 | ||
15656 | * tree-vectorizer.c (try_vectorize_loop_1): Skip the epilogue loops | |
15657 | for dbgcnt check. | |
15658 | ||
15659 | 2020-08-05 Marc Glisse <marc.glisse@inria.fr> | |
15660 | ||
15661 | PR tree-optimization/95906 | |
15662 | PR target/70314 | |
15663 | * match.pd ((c ? a : b) op d, (c ? a : b) op (c ? d : e), | |
15664 | (v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): New transformations. | |
15665 | (op (c ? a : b)): Update to match the new transformations. | |
15666 | ||
15667 | 2020-08-05 Richard Sandiford <richard.sandiford@arm.com> | |
15668 | ||
15669 | PR target/96191 | |
15670 | * config/aarch64/aarch64.md (stack_protect_test_<mode>): Set the | |
15671 | CC register directly, instead of a GPR. Replace the original GPR | |
15672 | destination with an extra scratch register. Zero out operand 3 | |
15673 | after use. | |
15674 | (stack_protect_test): Update accordingly. | |
15675 | ||
15676 | 2020-08-05 Richard Sandiford <richard.sandiford@arm.com> | |
15677 | ||
15678 | * config/aarch64/aarch64.md (load_pair_sw_<SX:mode><SX2:mode>) | |
15679 | (load_pair_dw_<DX:mode><DX2:mode>, load_pair_dw_tftf) | |
15680 | (store_pair_sw_<SX:mode><SX2:mode>) | |
15681 | (store_pair_dw_<DX:mode><DX2:mode>, store_pair_dw_tftf) | |
15682 | (*load_pair_extendsidi2_aarch64) | |
15683 | (*load_pair_zero_extendsidi2_aarch64): Use %z for the memory operand. | |
15684 | * config/aarch64/aarch64-simd.md (load_pair<DREG:mode><DREG2:mode>) | |
15685 | (vec_store_pair<DREG:mode><DREG2:mode>, load_pair<VQ:mode><VQ2:mode>) | |
15686 | (vec_store_pair<VQ:mode><VQ2:mode>): Likewise. | |
15687 | ||
15688 | 2020-08-05 Richard Biener <rguenther@suse.de> | |
15689 | ||
15690 | * tree-ssa-loop-im.c (invariantness_dom_walker): Remove. | |
15691 | (invariantness_dom_walker::before_dom_children): Move to ... | |
15692 | (compute_invariantness): ... this function. | |
15693 | (move_computations): Inline ... | |
15694 | (tree_ssa_lim): ... here, share RPO order and avoid some | |
15695 | cfun references. | |
15696 | (analyze_memory_references): Remove sorting of location | |
15697 | lists, instead assert they are sorted already when checking. | |
15698 | (prev_flag_edges): Remove. | |
15699 | (execute_sm_if_changed): Pass down and adjust prev edge state. | |
15700 | (execute_sm_exit): Likewise. | |
15701 | (hoist_memory_references): Likewise. Commit edge insertions | |
15702 | of each processed exit. | |
15703 | (store_motion_loop): Do not commit edge insertions on all | |
15704 | edges in the function. | |
15705 | (tree_ssa_lim_initialize): Do not call alloc_aux_for_edges. | |
15706 | (tree_ssa_lim_finalize): Do not call free_aux_for_edges. | |
15707 | ||
15708 | 2020-08-05 Richard Biener <rguenther@suse.de> | |
15709 | ||
15710 | * genmatch.c (fail_label): New global. | |
15711 | (expr::gen_transform): Branch to fail_label instead of | |
15712 | returning. Fix indent of call argument checking. | |
15713 | (dt_simplify::gen_1): Compute and emit fail_label, branch | |
15714 | to it instead of returning early. | |
15715 | ||
15716 | 2020-08-05 Jakub Jelinek <jakub@redhat.com> | |
15717 | ||
15718 | * omp-expand.c (expand_omp_for): Don't disallow combined non-rectangular | |
15719 | loops. | |
15720 | ||
15721 | 2020-08-05 Jakub Jelinek <jakub@redhat.com> | |
15722 | ||
15723 | PR middle-end/96459 | |
15724 | * omp-low.c (lower_omp_taskreg): Call lower_reduction_clauses even in | |
15725 | for host teams. | |
15726 | ||
15727 | 2020-08-05 Jakub Jelinek <jakub@redhat.com> | |
15728 | ||
15729 | * omp-expand.c (expand_omp_for_init_counts): Remember | |
15730 | first_inner_iterations, factor and n1o from the number of iterations | |
15731 | computation in *fd. | |
15732 | (expand_omp_for_init_vars): Use more efficient logical iteration number | |
15733 | to actual iterator values computation even for non-rectangular loops | |
15734 | where number of loop iterations could not be computed at compile time. | |
15735 | ||
15736 | 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> | |
15737 | ||
15738 | * config/rs6000/altivec.h (vec_blendv, vec_permx): Add define. | |
15739 | * config/rs6000/altivec.md (UNSPEC_XXBLEND, UNSPEC_XXPERMX.): New | |
15740 | unspecs. | |
15741 | (VM3): New define_mode. | |
15742 | (VM3_char): New define_attr. | |
15743 | (xxblend_<mode> mode VM3): New define_insn. | |
15744 | (xxpermx): New define_expand. | |
15745 | (xxpermx_inst): New define_insn. | |
15746 | * config/rs6000/rs6000-builtin.def (VXXBLEND_V16QI, VXXBLEND_V8HI, | |
15747 | VXXBLEND_V4SI, VXXBLEND_V2DI, VXXBLEND_V4SF, VXXBLEND_V2DF): New | |
15748 | BU_P10V_3 definitions. | |
15749 | (XXBLEND): New BU_P10_OVERLOAD_3 definition. | |
15750 | (XXPERMX): New BU_P10_OVERLOAD_4 definition. | |
15751 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
15752 | (P10_BUILTIN_VXXPERMX): Add if statement. | |
15753 | * config/rs6000/rs6000-call.c (P10_BUILTIN_VXXBLEND_V16QI, | |
15754 | P10_BUILTIN_VXXBLEND_V8HI, P10_BUILTIN_VXXBLEND_V4SI, | |
15755 | P10_BUILTIN_VXXBLEND_V2DI, P10_BUILTIN_VXXBLEND_V4SF, | |
15756 | P10_BUILTIN_VXXBLEND_V2DF, P10_BUILTIN_VXXPERMX): Define | |
15757 | overloaded arguments. | |
15758 | (rs6000_expand_quaternop_builtin): Add if case for CODE_FOR_xxpermx. | |
15759 | (builtin_quaternary_function_type): Add v16uqi_type and xxpermx_type | |
15760 | variables, add case statement for P10_BUILTIN_VXXPERMX. | |
15761 | (builtin_function_type): Add case statements for | |
15762 | P10_BUILTIN_VXXBLEND_V16QI, P10_BUILTIN_VXXBLEND_V8HI, | |
15763 | P10_BUILTIN_VXXBLEND_V4SI, P10_BUILTIN_VXXBLEND_V2DI. | |
15764 | * doc/extend.texi: Add documentation for vec_blendv and vec_permx. | |
15765 | ||
15766 | 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> | |
15767 | ||
15768 | * config/rs6000/altivec.h (vec_splati, vec_splatid, vec_splati_ins): | |
15769 | Add defines. | |
15770 | * config/rs6000/altivec.md (UNSPEC_XXSPLTIW, UNSPEC_XXSPLTID, | |
15771 | UNSPEC_XXSPLTI32DX): New. | |
15772 | (vxxspltiw_v4si, vxxspltiw_v4sf_inst, vxxspltidp_v2df_inst, | |
15773 | vxxsplti32dx_v4si_inst, vxxsplti32dx_v4sf_inst): New define_insn. | |
15774 | (vxxspltiw_v4sf, vxxspltidp_v2df, vxxsplti32dx_v4si, | |
15775 | vxxsplti32dx_v4sf.): New define_expands. | |
15776 | * config/rs6000/predicates.md (u1bit_cint_operand, | |
15777 | s32bit_cint_operand, c32bit_cint_operand): New predicates. | |
15778 | * config/rs6000/rs6000-builtin.def (VXXSPLTIW_V4SI, VXXSPLTIW_V4SF, | |
15779 | VXXSPLTID): New definitions. | |
15780 | (VXXSPLTI32DX_V4SI, VXXSPLTI32DX_V4SF): New BU_P10V_3 | |
15781 | definitions. | |
15782 | (XXSPLTIW, XXSPLTID): New definitions. | |
15783 | (XXSPLTI32DX): Add definitions. | |
15784 | * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XXSPLTIW, | |
15785 | P10_BUILTIN_VEC_XXSPLTID, P10_BUILTIN_VEC_XXSPLTI32DX): | |
15786 | New definitions. | |
15787 | * config/rs6000/rs6000-protos.h (rs6000_constF32toI32): New extern | |
15788 | declaration. | |
15789 | * config/rs6000/rs6000.c (rs6000_constF32toI32): New function. | |
15790 | * doc/extend.texi: Add documentation for vec_splati, | |
15791 | vec_splatid, and vec_splati_ins. | |
15792 | ||
15793 | 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> | |
15794 | ||
15795 | * config/rs6000/altivec.h (vec_sldb, vec_srdb): New defines. | |
15796 | * config/rs6000/altivec.md (UNSPEC_SLDB, UNSPEC_SRDB): New. | |
15797 | (SLDB_lr): New attribute. | |
15798 | (VSHIFT_DBL_LR): New iterator. | |
15799 | (vs<SLDB_lr>db_<mode>): New define_insn. | |
15800 | * config/rs6000/rs6000-builtin.def (VSLDB_V16QI, VSLDB_V8HI, | |
15801 | VSLDB_V4SI, VSLDB_V2DI, VSRDB_V16QI, VSRDB_V8HI, VSRDB_V4SI, | |
15802 | VSRDB_V2DI): New BU_P10V_3 definitions. | |
15803 | (SLDB, SRDB): New BU_P10_OVERLOAD_3 definitions. | |
15804 | * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_SLDB, | |
15805 | P10_BUILTIN_VEC_SRDB): New definitions. | |
15806 | (rs6000_expand_ternop_builtin) [CODE_FOR_vsldb_v16qi, | |
15807 | CODE_FOR_vsldb_v8hi, CODE_FOR_vsldb_v4si, CODE_FOR_vsldb_v2di, | |
15808 | CODE_FOR_vsrdb_v16qi, CODE_FOR_vsrdb_v8hi, CODE_FOR_vsrdb_v4si, | |
15809 | CODE_FOR_vsrdb_v2di]: Add clauses. | |
15810 | * doc/extend.texi: Add description for vec_sldb and vec_srdb. | |
15811 | ||
15812 | 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> | |
15813 | ||
15814 | * config/rs6000/altivec.h: Add define for vec_replace_elt and | |
15815 | vec_replace_unaligned. | |
15816 | * config/rs6000/vsx.md (UNSPEC_REPLACE_ELT, UNSPEC_REPLACE_UN): New | |
15817 | unspecs. | |
15818 | (REPLACE_ELT): New mode iterator. | |
15819 | (REPLACE_ELT_char, REPLACE_ELT_sh, REPLACE_ELT_max): New mode attributes. | |
15820 | (vreplace_un_<mode>, vreplace_elt_<mode>_inst): New. | |
15821 | * config/rs6000/rs6000-builtin.def (VREPLACE_ELT_V4SI, | |
15822 | VREPLACE_ELT_UV4SI, VREPLACE_ELT_V4SF, VREPLACE_ELT_UV2DI, | |
15823 | VREPLACE_ELT_V2DF, VREPLACE_UN_V4SI, VREPLACE_UN_UV4SI, | |
15824 | VREPLACE_UN_V4SF, VREPLACE_UN_V2DI, VREPLACE_UN_UV2DI, | |
15825 | VREPLACE_UN_V2DF, (REPLACE_ELT, REPLACE_UN, VREPLACE_ELT_V2DI): New builtin | |
15826 | entries. | |
15827 | * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_REPLACE_ELT, | |
15828 | P10_BUILTIN_VEC_REPLACE_UN): New builtin argument definitions. | |
15829 | (rs6000_expand_quaternop_builtin): Add 3rd argument checks for | |
15830 | CODE_FOR_vreplace_elt_v4si, CODE_FOR_vreplace_elt_v4sf, | |
15831 | CODE_FOR_vreplace_un_v4si, CODE_FOR_vreplace_un_v4sf. | |
15832 | (builtin_function_type) [P10_BUILTIN_VREPLACE_ELT_UV4SI, | |
15833 | P10_BUILTIN_VREPLACE_ELT_UV2DI, P10_BUILTIN_VREPLACE_UN_UV4SI, | |
15834 | P10_BUILTIN_VREPLACE_UN_UV2DI]: New cases. | |
15835 | * doc/extend.texi: Add description for vec_replace_elt and | |
15836 | vec_replace_unaligned builtins. | |
15837 | ||
15838 | 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> | |
15839 | ||
15840 | * config/rs6000/altivec.h (vec_insertl, vec_inserth): New defines. | |
15841 | * config/rs6000/rs6000-builtin.def (VINSERTGPRBL, VINSERTGPRHL, | |
15842 | VINSERTGPRWL, VINSERTGPRDL, VINSERTVPRBL, VINSERTVPRHL, VINSERTVPRWL, | |
15843 | VINSERTGPRBR, VINSERTGPRHR, VINSERTGPRWR, VINSERTGPRDR, VINSERTVPRBR, | |
15844 | VINSERTVPRHR, VINSERTVPRWR): New builtins. | |
15845 | (INSERTL, INSERTH): New builtins. | |
15846 | * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_INSERTL, | |
15847 | P10_BUILTIN_VEC_INSERTH): New overloaded definitions. | |
15848 | (P10_BUILTIN_VINSERTGPRBL, P10_BUILTIN_VINSERTGPRHL, | |
15849 | P10_BUILTIN_VINSERTGPRWL, P10_BUILTIN_VINSERTGPRDL, | |
15850 | P10_BUILTIN_VINSERTVPRBL, P10_BUILTIN_VINSERTVPRHL, | |
15851 | P10_BUILTIN_VINSERTVPRWL): Add case entries. | |
15852 | * config/rs6000/vsx.md (define_c_enum): Add UNSPEC_INSERTL, | |
15853 | UNSPEC_INSERTR. | |
15854 | (define_expand): Add vinsertvl_<mode>, vinsertvr_<mode>, | |
15855 | vinsertgl_<mode>, vinsertgr_<mode>, mode is VI2. | |
15856 | (define_ins): vinsertvl_internal_<mode>, vinsertvr_internal_<mode>, | |
15857 | vinsertgl_internal_<mode>, vinsertgr_internal_<mode>, mode VEC_I. | |
15858 | * doc/extend.texi: Add documentation for vec_insertl, vec_inserth. | |
15859 | ||
15860 | 2020-08-05 2020-08-04 Carl Love <cel@us.ibm.com> | |
15861 | ||
15862 | * config/rs6000/altivec.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR) | |
15863 | (vextractl<mode>, vextractr<mode>) | |
15864 | (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2) | |
15865 | (VI2): Move to ... | |
15866 | * config/rs6000/vsx.md: (UNSPEC_EXTRACTL, UNSPEC_EXTRACTR) | |
15867 | (vextractl<mode>, vextractr<mode>) | |
15868 | (vextractl<mode>_internal, vextractr<mode>_internal for mode VI2) | |
15869 | (VI2): ..here. | |
15870 | * doc/extend.texi: Update documentation for vec_extractl. | |
15871 | Replace builtin name vec_extractr with vec_extracth. Update | |
15872 | description of vec_extracth. | |
15873 | ||
15874 | 2020-08-04 Jim Wilson <jimw@sifive.com> | |
15875 | ||
15876 | * doc/invoke.texi (AArch64 Options): Delete duplicate | |
15877 | -mstack-protector-guard docs. | |
15878 | ||
15879 | 2020-08-04 Roger Sayle <roger@nextmovesoftware.com> | |
15880 | ||
15881 | * config/nvptx/nvptx.md (smulhi3_highpart, smulsi3_highpart) | |
15882 | (umulhi3_highpart, umulsi3_highpart): New instructions. | |
15883 | ||
15884 | 2020-08-04 Andrew Stubbs <ams@codesourcery.com> | |
15885 | ||
15886 | * config/gcn/gcn-run.c (R_AMDGPU_NONE): Delete. | |
15887 | (R_AMDGPU_ABS32_LO): Delete. | |
15888 | (R_AMDGPU_ABS32_HI): Delete. | |
15889 | (R_AMDGPU_ABS64): Delete. | |
15890 | (R_AMDGPU_REL32): Delete. | |
15891 | (R_AMDGPU_REL64): Delete. | |
15892 | (R_AMDGPU_ABS32): Delete. | |
15893 | (R_AMDGPU_GOTPCREL): Delete. | |
15894 | (R_AMDGPU_GOTPCREL32_LO): Delete. | |
15895 | (R_AMDGPU_GOTPCREL32_HI): Delete. | |
15896 | (R_AMDGPU_REL32_LO): Delete. | |
15897 | (R_AMDGPU_REL32_HI): Delete. | |
15898 | (reserved): Delete. | |
15899 | (R_AMDGPU_RELATIVE64): Delete. | |
15900 | ||
15901 | 2020-08-04 Omar Tahir <omar.tahir@arm.com> | |
15902 | ||
15903 | * config/arm/arm-cpus.in (armv8.1-m.main): Tune for Cortex-M55. | |
15904 | ||
15905 | 2020-08-04 Hu Jiangping <hujiangping@cn.fujitsu.com> | |
15906 | ||
15907 | * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Delete | |
15908 | redundant extra_cost variable. | |
15909 | ||
15910 | 2020-08-04 Zhiheng Xie <xiezhiheng@huawei.com> | |
15911 | ||
15912 | * config/aarch64/aarch64-builtins.c (aarch64_call_properties): | |
15913 | Use FLOAT_MODE_P macro instead of enumerating all floating-point | |
15914 | modes and add global flag FLAG_AUTO_FP. | |
15915 | ||
15916 | 2020-08-04 Jakub Jelinek <jakub@redhat.com> | |
15917 | ||
15918 | * doc/extend.texi (symver): Add @cindex for symver function attribute. | |
15919 | ||
15920 | 2020-08-04 Marc Glisse <marc.glisse@inria.fr> | |
15921 | ||
15922 | PR tree-optimization/95433 | |
15923 | * match.pd (X * C1 == C2): New transformation. | |
15924 | ||
15925 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
15926 | ||
15927 | * gimple-ssa-sprintf.c (get_int_range): Adjust for irange API. | |
15928 | (format_integer): Same. | |
15929 | (handle_printf_call): Same. | |
15930 | ||
15931 | 2020-08-04 Andrew Stubbs <ams@codesourcery.com> | |
15932 | ||
15933 | * config/gcn/gcn.md ("<expander>ti3"): New. | |
15934 | ||
15935 | 2020-08-04 Richard Biener <rguenther@suse.de> | |
15936 | ||
15937 | PR tree-optimization/88240 | |
15938 | * tree-ssa-sccvn.h (vn_reference_s::punned): New flag. | |
15939 | * tree-ssa-sccvn.c (vn_reference_insert): Initialize punned. | |
15940 | (vn_reference_insert_pieces): Likewise. | |
15941 | (visit_reference_op_call): Likewise. | |
15942 | (visit_reference_op_load): Track whether a ref was punned. | |
15943 | * tree-ssa-pre.c (do_hoist_insertion): Refuse to perform hoist | |
15944 | insertion on punned floating point loads. | |
15945 | ||
15946 | 2020-08-04 Sudakshina Das <sudi.das@arm.com> | |
15947 | ||
15948 | * config/aarch64/aarch64.c (aarch64_gen_store_pair): Add case | |
15949 | for E_V4SImode. | |
15950 | (aarch64_gen_load_pair): Likewise. | |
15951 | (aarch64_copy_one_block_and_progress_pointers): Handle 256 bit copy. | |
15952 | (aarch64_expand_cpymem): Expand copy_limit to 256bits where | |
15953 | appropriate. | |
15954 | ||
15955 | 2020-08-04 Andrea Corallo <andrea.corallo@arm.com> | |
15956 | ||
15957 | * config/aarch64/aarch64.md (aarch64_fjcvtzs): Add missing | |
15958 | clobber. | |
15959 | * doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new | |
15960 | target supports option. | |
15961 | ||
15962 | 2020-08-04 Tom de Vries <tdevries@suse.de> | |
15963 | ||
15964 | PR target/96428 | |
15965 | * config/nvptx/nvptx.c (nvptx_gen_shuffle): Handle V2SI/V2DI. | |
15966 | ||
15967 | 2020-08-04 Jakub Jelinek <jakub@redhat.com> | |
15968 | ||
15969 | PR middle-end/96426 | |
15970 | * tree-vect-generic.c (expand_vector_conversion): Replace .VEC_CONVERT | |
15971 | call with GIMPLE_NOP if there is no lhs. | |
15972 | ||
15973 | 2020-08-04 Jakub Jelinek <jakub@redhat.com> | |
15974 | ||
15975 | PR debug/96354 | |
15976 | * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Add IS_DEBUG | |
15977 | argument. Return false instead of gcc_unreachable if it is true and | |
15978 | get_addr_base_and_unit_offset returns NULL. | |
15979 | (fold_stmt_1) <case GIMPLE_DEBUG>: Adjust caller. | |
15980 | ||
15981 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
15982 | ||
15983 | * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): | |
15984 | Call is_gimple_min_invariant dropped from previous patch. | |
15985 | ||
15986 | 2020-08-04 Jakub Jelinek <jakub@redhat.com> | |
15987 | ||
15988 | * omp-expand.c (expand_omp_for_init_counts): For triangular loops | |
15989 | compute number of iterations at runtime more efficiently. | |
15990 | (expand_omp_for_init_vars): Adjust immediate dominators. | |
15991 | (extract_omp_for_update_vars): Likewise. | |
15992 | ||
15993 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
15994 | ||
15995 | * vr-values.c (simplify_using_ranges::two_valued_val_range_p): | |
15996 | Use irange API. | |
15997 | ||
15998 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
15999 | ||
16000 | * vr-values.c (simplify_conversion_using_ranges): Convert to irange API. | |
16001 | ||
16002 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
16003 | ||
16004 | * vr-values.c (test_for_singularity): Use irange API. | |
16005 | (simplify_using_ranges::simplify_cond_using_ranges_1): Do not | |
16006 | special case VR_RANGE. | |
16007 | ||
16008 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
16009 | ||
16010 | * vr-values.c (simplify_using_ranges::vrp_evaluate_conditional): Adjust | |
16011 | for irange API. | |
16012 | ||
16013 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
16014 | ||
16015 | * vr-values.c (simplify_using_ranges::op_with_boolean_value_range_p): Adjust | |
16016 | for irange API. | |
16017 | ||
16018 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
16019 | ||
16020 | * tree-ssanames.c (get_range_info): Use irange instead of value_range. | |
16021 | * tree-ssanames.h (get_range_info): Same. | |
16022 | ||
16023 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
16024 | ||
16025 | * fold-const.c (expr_not_equal_to): Adjust for irange API. | |
16026 | ||
16027 | 2020-08-04 Aldy Hernandez <aldyh@redhat.com> | |
16028 | ||
16029 | * builtins.c (determine_block_size): Remove ad-hoc range canonicalization. | |
16030 | ||
16031 | 2020-08-04 Xionghu Luo <luoxhu@linux.ibm.com> | |
16032 | ||
16033 | PR rtl-optimization/71309 | |
16034 | * dse.c (find_shift_sequence): Use subreg of shifted from high part | |
16035 | register to avoid loading from address. | |
16036 | ||
16037 | 2020-08-03 Jonathan Wakely <jwakely@redhat.com> | |
16038 | ||
16039 | * doc/cpp.texi (Variadic Macros): Use the exact ... token in | |
16040 | code examples. | |
16041 | ||
16042 | 2020-08-03 Nathan Sidwell <nathan@acm.org> | |
16043 | ||
16044 | * doc/invoke.texi: Refer to c++20 | |
16045 | ||
16046 | 2020-08-03 Julian Brown <julian@codesourcery.com> | |
16047 | Thomas Schwinge <thomas@codesourcery.com> | |
16048 | ||
16049 | * gimplify.c (gimplify_omp_target_update): Allow GOMP_MAP_TO_PSET | |
16050 | without a preceding data-movement mapping. | |
16051 | ||
16052 | 2020-08-03 Iain Sandoe <iain@sandoe.co.uk> | |
16053 | ||
16054 | * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): UNDEF before | |
16055 | use. | |
16056 | (DEF_MIN_OSX_VERSION): Only define if there's no existing | |
16057 | def. | |
16058 | ||
16059 | 2020-08-03 Iain Sandoe <iain@sandoe.co.uk> | |
16060 | ||
16061 | * config/darwin.c (IN_TARGET_CODE): Remove. | |
16062 | (darwin_mergeable_constant_section): Handle poly-int machine modes. | |
16063 | (machopic_select_rtx_section): Likewise. | |
16064 | ||
16065 | 2020-08-03 Aldy Hernandez <aldyh@redhat.com> | |
16066 | ||
16067 | PR tree-optimization/96430 | |
16068 | * range-op.cc (operator_tests): Do not shift by 31 on targets with | |
16069 | integer's smaller than 32 bits. | |
16070 | ||
16071 | 2020-08-03 Martin Jambor <mjambor@suse.cz> | |
16072 | ||
16073 | * hsa-brig-format.h: Moved to brig/brigfrontend. | |
16074 | * hsa-brig.c: Removed. | |
16075 | * hsa-builtins.def: Likewise. | |
16076 | * hsa-common.c: Likewise. | |
16077 | * hsa-common.h: Likewise. | |
16078 | * hsa-dump.c: Likewise. | |
16079 | * hsa-gen.c: Likewise. | |
16080 | * hsa-regalloc.c: Likewise. | |
16081 | * ipa-hsa.c: Likewise. | |
16082 | * omp-grid.c: Likewise. | |
16083 | * omp-grid.h: Likewise. | |
16084 | * Makefile.in (BUILTINS_DEF): Remove hsa-builtins.def. | |
16085 | (OBJS): Remove hsa-common.o, hsa-gen.o, hsa-regalloc.o, hsa-brig.o, | |
16086 | hsa-dump.o, ipa-hsa.c and omp-grid.o. | |
16087 | (GTFILES): Removed hsa-common.c and omp-expand.c. | |
16088 | * builtins.def: Remove processing of hsa-builtins.def. | |
16089 | (DEF_HSA_BUILTIN): Remove. | |
16090 | * common.opt (flag_disable_hsa): Remove. | |
16091 | (-Whsa): Ignore. | |
16092 | * config.in (ENABLE_HSA): Removed. | |
16093 | * configure.ac: Removed handling configuration for hsa offloading. | |
16094 | (ENABLE_HSA): Removed. | |
16095 | * configure: Regenerated. | |
16096 | * doc/install.texi (--enable-offload-targets): Remove hsa from the | |
16097 | example. | |
16098 | (--with-hsa-runtime): Reword to reference any HSA run-time, not | |
16099 | specifically HSA offloading. | |
16100 | * doc/invoke.texi (Option Summary): Remove -Whsa. | |
16101 | (Warning Options): Likewise. | |
16102 | (Optimize Options): Remove hsa-gen-debug-stores. | |
16103 | * doc/passes.texi (Regular IPA passes): Remove section on IPA HSA | |
16104 | pass. | |
16105 | * gimple-low.c (lower_stmt): Remove GIMPLE_OMP_GRID_BODY case. | |
16106 | * gimple-pretty-print.c (dump_gimple_omp_for): Likewise. | |
16107 | (dump_gimple_omp_block): Likewise. | |
16108 | (pp_gimple_stmt_1): Likewise. | |
16109 | * gimple-walk.c (walk_gimple_stmt): Likewise. | |
16110 | * gimple.c (gimple_build_omp_grid_body): Removed function. | |
16111 | (gimple_copy): Remove GIMPLE_OMP_GRID_BODY case. | |
16112 | * gimple.def (GIMPLE_OMP_GRID_BODY): Removed. | |
16113 | * gimple.h (gf_mask): Removed GF_OMP_PARALLEL_GRID_PHONY, | |
16114 | OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY, | |
16115 | GF_OMP_FOR_GRID_INTRA_GROUP, GF_OMP_FOR_GRID_GROUP_ITER and | |
16116 | GF_OMP_TEAMS_GRID_PHONY. Renumbered GF_OMP_FOR_KIND_SIMD and | |
16117 | GF_OMP_TEAMS_HOST. | |
16118 | (gimple_build_omp_grid_body): Removed declaration. | |
16119 | (gimple_has_substatements): Remove GIMPLE_OMP_GRID_BODY case. | |
16120 | (gimple_omp_for_grid_phony): Removed. | |
16121 | (gimple_omp_for_set_grid_phony): Likewise. | |
16122 | (gimple_omp_for_grid_intra_group): Likewise. | |
16123 | (gimple_omp_for_grid_intra_group): Likewise. | |
16124 | (gimple_omp_for_grid_group_iter): Likewise. | |
16125 | (gimple_omp_for_set_grid_group_iter): Likewise. | |
16126 | (gimple_omp_parallel_grid_phony): Likewise. | |
16127 | (gimple_omp_parallel_set_grid_phony): Likewise. | |
16128 | (gimple_omp_teams_grid_phony): Likewise. | |
16129 | (gimple_omp_teams_set_grid_phony): Likewise. | |
16130 | (CASE_GIMPLE_OMP): Remove GIMPLE_OMP_GRID_BODY case. | |
16131 | * lto-section-in.c (lto_section_name): Removed hsa. | |
16132 | * lto-streamer.h (lto_section_type): Removed LTO_section_ipa_hsa. | |
16133 | * lto-wrapper.c (compile_images_for_offload_targets): Remove special | |
16134 | handling of hsa. | |
16135 | * omp-expand.c: Do not include hsa-common.h and gt-omp-expand.h. | |
16136 | (parallel_needs_hsa_kernel_p): Removed. | |
16137 | (grid_launch_attributes_trees): Likewise. | |
16138 | (grid_launch_attributes_trees): Likewise. | |
16139 | (grid_create_kernel_launch_attr_types): Likewise. | |
16140 | (grid_insert_store_range_dim): Likewise. | |
16141 | (grid_get_kernel_launch_attributes): Likewise. | |
16142 | (get_target_arguments): Remove code passing HSA grid sizes. | |
16143 | (grid_expand_omp_for_loop): Remove. | |
16144 | (grid_arg_decl_map): Likewise. | |
16145 | (grid_remap_kernel_arg_accesses): Likewise. | |
16146 | (grid_expand_target_grid_body): Likewise. | |
16147 | (expand_omp): Remove call to grid_expand_target_grid_body. | |
16148 | (omp_make_gimple_edges): Remove GIMPLE_OMP_GRID_BODY case. | |
16149 | * omp-general.c: Do not include hsa-common.h. | |
16150 | (omp_maybe_offloaded): Do not check for HSA offloading. | |
16151 | (omp_context_selector_matches): Likewise. | |
16152 | * omp-low.c: Do not include hsa-common.h and omp-grid.h. | |
16153 | (build_outer_var_ref): Remove handling of GIMPLE_OMP_GRID_BODY. | |
16154 | (scan_sharing_clauses): Remove handling of OMP_CLAUSE__GRIDDIM_. | |
16155 | (scan_omp_parallel): Remove handling of the phoney variant. | |
16156 | (check_omp_nesting_restrictions): Remove handling of | |
16157 | GIMPLE_OMP_GRID_BODY and GF_OMP_FOR_KIND_GRID_LOOP. | |
16158 | (scan_omp_1_stmt): Remove handling of GIMPLE_OMP_GRID_BODY. | |
16159 | (lower_omp_for_lastprivate): Remove handling of gridified loops. | |
16160 | (lower_omp_for): Remove phony loop handling. | |
16161 | (lower_omp_taskreg): Remove phony construct handling. | |
16162 | (lower_omp_teams): Likewise. | |
16163 | (lower_omp_grid_body): Removed. | |
16164 | (lower_omp_1): Remove GIMPLE_OMP_GRID_BODY case. | |
16165 | (execute_lower_omp): Do not call omp_grid_gridify_all_targets. | |
16166 | * opts.c (common_handle_option): Do not handle hsa when processing | |
16167 | OPT_foffload_. | |
16168 | * params.opt (hsa-gen-debug-stores): Remove. | |
16169 | * passes.def: Remove pass_ipa_hsa and pass_gen_hsail. | |
16170 | * timevar.def: Remove TV_IPA_HSA. | |
16171 | * toplev.c: Do not include hsa-common.h. | |
16172 | (compile_file): Do not call hsa_output_brig. | |
16173 | * tree-core.h (enum omp_clause_code): Remove OMP_CLAUSE__GRIDDIM_. | |
16174 | (tree_omp_clause): Remove union field dimension. | |
16175 | * tree-nested.c (convert_nonlocal_omp_clauses): Remove the | |
16176 | OMP_CLAUSE__GRIDDIM_ case. | |
16177 | (convert_local_omp_clauses): Likewise. | |
16178 | * tree-pass.h (make_pass_gen_hsail): Remove declaration. | |
16179 | (make_pass_ipa_hsa): Likewise. | |
16180 | * tree-pretty-print.c (dump_omp_clause): Remove GIMPLE_OMP_GRID_BODY | |
16181 | case. | |
16182 | * tree.c (omp_clause_num_ops): Remove the element corresponding to | |
16183 | OMP_CLAUSE__GRIDDIM_. | |
16184 | (omp_clause_code_name): Likewise. | |
16185 | (walk_tree_1): Remove GIMPLE_OMP_GRID_BODY case. | |
16186 | * tree.h (OMP_CLAUSE__GRIDDIM__DIMENSION): Remove. | |
16187 | (OMP_CLAUSE__GRIDDIM__SIZE): Likewise. | |
16188 | (OMP_CLAUSE__GRIDDIM__GROUP): Likewise. | |
16189 | ||
16190 | 2020-08-03 Bu Le <bule1@huawei.com> | |
16191 | ||
16192 | * config/aarch64/aarch64-sve.md (sub<mode>3): Add support for | |
16193 | unpacked vectors. | |
16194 | ||
16195 | 2020-08-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
16196 | ||
16197 | * config/msp430/msp430.h (ASM_SPEC): Don't pass on "-md" option. | |
16198 | ||
16199 | 2020-08-03 Yunde Zhong <zhongyunde@huawei.com> | |
16200 | ||
16201 | PR rtl-optimization/95696 | |
16202 | * regrename.c (regrename_analyze): New param include_all_block_p | |
16203 | with default value TRUE. If set to false, avoid disrupting SMS | |
16204 | schedule. | |
16205 | * regrename.h (regrename_analyze): Adjust prototype. | |
16206 | ||
16207 | 2020-08-03 Wei Wentao <weiwt.fnst@cn.fujitsu.com> | |
16208 | ||
16209 | * doc/tm.texi.in (VECTOR_STORE_FLAG_VALUE): Fix a typo. | |
16210 | * doc/tm.texi: Regenerate. | |
16211 | ||
16212 | 2020-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
16213 | ||
16214 | * doc/invoke.texi: Add missing comma after octeontx2f95mm entry. | |
16215 | ||
16216 | 2020-08-03 Qian jianhua <qianjh@cn.fujitsu.com> | |
16217 | ||
16218 | * config/aarch64/aarch64-cores.def (a64fx): New core. | |
16219 | * config/aarch64/aarch64-tune.md: Regenerated. | |
16220 | * config/aarch64/aarch64.c (a64fx_prefetch_tune, a64fx_tunings): New. | |
16221 | * doc/invoke.texi: Add a64fx to the list. | |
16222 | ||
16223 | 2020-08-03 Roger Sayle <roger@nextmovesoftware.com> | |
16224 | ||
16225 | PR rtl-optimization/61494 | |
16226 | * simplify-rtx.c (simplify_binary_operation_1) [MINUS]: Don't | |
16227 | simplify x - 0.0 with -fsignaling-nans. | |
16228 | ||
16229 | 2020-08-03 Roger Sayle <roger@nextmovesoftware.com> | |
16230 | ||
16231 | * genmatch.c (decision_tree::gen): Emit stub functions for | |
16232 | tree code operand counts that have no simplifications. | |
16233 | (main): Correct comment typo. | |
16234 | ||
16235 | 2020-08-03 Jonathan Wakely <jwakely@redhat.com> | |
16236 | ||
16237 | * gimple-ssa-sprintf.c: Fix typos in comments. | |
16238 | ||
16239 | 2020-08-03 Tamar Christina <tamar.christina@arm.com> | |
16240 | ||
16241 | * config/aarch64/driver-aarch64.c (readline): Check return value fgets. | |
16242 | ||
16243 | 2020-08-03 Richard Biener <rguenther@suse.de> | |
16244 | ||
16245 | * doc/match-and-simplify.texi: Amend accordingly. | |
16246 | ||
16247 | 2020-08-03 Richard Biener <rguenther@suse.de> | |
16248 | ||
16249 | * genmatch.c (parser::gimple): New. | |
16250 | (parser::parser): Initialize gimple flag member. | |
16251 | (parser::parse_expr): Error on ! operator modifier when | |
16252 | not targeting GIMPLE. | |
16253 | (main): Pass down gimple flag to parser ctor. | |
16254 | ||
16255 | 2020-08-03 Aldy Hernandez <aldyh@redhat.com> | |
16256 | ||
16257 | * Makefile.in (GTFILES): Move value-range.h up. | |
16258 | * gengtype-lex.l: Set yylval to handle GTY markers on templates. | |
16259 | * ipa-cp.c (initialize_node_lattices): Call value_range | |
16260 | constructor. | |
16261 | (ipcp_propagate_stage): Use in-place new so value_range construct | |
16262 | is called. | |
16263 | * ipa-fnsummary.c (evaluate_conditions_for_known_args): Use std | |
16264 | vec instead of GCC's vec<>. | |
16265 | (evaluate_properties_for_edge): Adjust for std vec. | |
16266 | (ipa_fn_summary_t::duplicate): Same. | |
16267 | (estimate_ipcp_clone_size_and_time): Same. | |
16268 | * ipa-prop.c (ipa_get_value_range): Use in-place new for | |
16269 | value_range. | |
16270 | * ipa-prop.h (struct GTY): Remove class keyword for m_vr. | |
16271 | * range-op.cc (empty_range_check): Rename to... | |
16272 | (empty_range_varying): ...this and adjust for varying. | |
16273 | (undefined_shift_range_check): Adjust for irange. | |
16274 | (range_operator::wi_fold): Same. | |
16275 | (range_operator::fold_range): Adjust for irange. Special case | |
16276 | single pairs for performance. | |
16277 | (range_operator::op1_range): Adjust for irange. | |
16278 | (range_operator::op2_range): Same. | |
16279 | (value_range_from_overflowed_bounds): Same. | |
16280 | (value_range_with_overflow): Same. | |
16281 | (create_possibly_reversed_range): Same. | |
16282 | (range_true): Same. | |
16283 | (range_false): Same. | |
16284 | (range_true_and_false): Same. | |
16285 | (get_bool_state): Adjust for irange and tweak for performance. | |
16286 | (operator_equal::fold_range): Adjust for irange. | |
16287 | (operator_equal::op1_range): Same. | |
16288 | (operator_equal::op2_range): Same. | |
16289 | (operator_not_equal::fold_range): Same. | |
16290 | (operator_not_equal::op1_range): Same. | |
16291 | (operator_not_equal::op2_range): Same. | |
16292 | (build_lt): Same. | |
16293 | (build_le): Same. | |
16294 | (build_gt): Same. | |
16295 | (build_ge): Same. | |
16296 | (operator_lt::fold_range): Same. | |
16297 | (operator_lt::op1_range): Same. | |
16298 | (operator_lt::op2_range): Same. | |
16299 | (operator_le::fold_range): Same. | |
16300 | (operator_le::op1_range): Same. | |
16301 | (operator_le::op2_range): Same. | |
16302 | (operator_gt::fold_range): Same. | |
16303 | (operator_gt::op1_range): Same. | |
16304 | (operator_gt::op2_range): Same. | |
16305 | (operator_ge::fold_range): Same. | |
16306 | (operator_ge::op1_range): Same. | |
16307 | (operator_ge::op2_range): Same. | |
16308 | (operator_plus::wi_fold): Same. | |
16309 | (operator_plus::op1_range): Same. | |
16310 | (operator_plus::op2_range): Same. | |
16311 | (operator_minus::wi_fold): Same. | |
16312 | (operator_minus::op1_range): Same. | |
16313 | (operator_minus::op2_range): Same. | |
16314 | (operator_min::wi_fold): Same. | |
16315 | (operator_max::wi_fold): Same. | |
16316 | (cross_product_operator::wi_cross_product): Same. | |
16317 | (operator_mult::op1_range): New. | |
16318 | (operator_mult::op2_range): New. | |
16319 | (operator_mult::wi_fold): Adjust for irange. | |
16320 | (operator_div::wi_fold): Same. | |
16321 | (operator_exact_divide::op1_range): Same. | |
16322 | (operator_lshift::fold_range): Same. | |
16323 | (operator_lshift::wi_fold): Same. | |
16324 | (operator_lshift::op1_range): New. | |
16325 | (operator_rshift::op1_range): New. | |
16326 | (operator_rshift::fold_range): Adjust for irange. | |
16327 | (operator_rshift::wi_fold): Same. | |
16328 | (operator_cast::truncating_cast_p): Abstract out from | |
16329 | operator_cast::fold_range. | |
16330 | (operator_cast::fold_range): Adjust for irange and tweak for | |
16331 | performance. | |
16332 | (operator_cast::inside_domain_p): Abstract out from fold_range. | |
16333 | (operator_cast::fold_pair): Same. | |
16334 | (operator_cast::op1_range): Use abstracted methods above. Adjust | |
16335 | for irange and tweak for performance. | |
16336 | (operator_logical_and::fold_range): Adjust for irange. | |
16337 | (operator_logical_and::op1_range): Same. | |
16338 | (operator_logical_and::op2_range): Same. | |
16339 | (unsigned_singleton_p): New. | |
16340 | (operator_bitwise_and::remove_impossible_ranges): New. | |
16341 | (operator_bitwise_and::fold_range): New. | |
16342 | (wi_optimize_and_or): Adjust for irange. | |
16343 | (operator_bitwise_and::wi_fold): Same. | |
16344 | (set_nonzero_range_from_mask): New. | |
16345 | (operator_bitwise_and::simple_op1_range_solver): New. | |
16346 | (operator_bitwise_and::op1_range): Adjust for irange. | |
16347 | (operator_bitwise_and::op2_range): Same. | |
16348 | (operator_logical_or::fold_range): Same. | |
16349 | (operator_logical_or::op1_range): Same. | |
16350 | (operator_logical_or::op2_range): Same. | |
16351 | (operator_bitwise_or::wi_fold): Same. | |
16352 | (operator_bitwise_or::op1_range): Same. | |
16353 | (operator_bitwise_or::op2_range): Same. | |
16354 | (operator_bitwise_xor::wi_fold): Same. | |
16355 | (operator_bitwise_xor::op1_range): New. | |
16356 | (operator_bitwise_xor::op2_range): New. | |
16357 | (operator_trunc_mod::wi_fold): Adjust for irange. | |
16358 | (operator_logical_not::fold_range): Same. | |
16359 | (operator_logical_not::op1_range): Same. | |
16360 | (operator_bitwise_not::fold_range): Same. | |
16361 | (operator_bitwise_not::op1_range): Same. | |
16362 | (operator_cst::fold_range): Same. | |
16363 | (operator_identity::fold_range): Same. | |
16364 | (operator_identity::op1_range): Same. | |
16365 | (class operator_unknown): New. | |
16366 | (operator_unknown::fold_range): New. | |
16367 | (class operator_abs): Adjust for irange. | |
16368 | (operator_abs::wi_fold): Same. | |
16369 | (operator_abs::op1_range): Same. | |
16370 | (operator_absu::wi_fold): Same. | |
16371 | (class operator_negate): Same. | |
16372 | (operator_negate::fold_range): Same. | |
16373 | (operator_negate::op1_range): Same. | |
16374 | (operator_addr_expr::fold_range): Same. | |
16375 | (operator_addr_expr::op1_range): Same. | |
16376 | (pointer_plus_operator::wi_fold): Same. | |
16377 | (pointer_min_max_operator::wi_fold): Same. | |
16378 | (pointer_and_operator::wi_fold): Same. | |
16379 | (pointer_or_operator::op1_range): New. | |
16380 | (pointer_or_operator::op2_range): New. | |
16381 | (pointer_or_operator::wi_fold): Adjust for irange. | |
16382 | (integral_table::integral_table): Add entries for IMAGPART_EXPR | |
16383 | and POINTER_DIFF_EXPR. | |
16384 | (range_cast): Adjust for irange. | |
16385 | (build_range3): New. | |
16386 | (range3_tests): New. | |
16387 | (widest_irange_tests): New. | |
16388 | (multi_precision_range_tests): New. | |
16389 | (operator_tests): New. | |
16390 | (range_tests): New. | |
16391 | * range-op.h (class range_operator): Adjust for irange. | |
16392 | (range_cast): Same. | |
16393 | * tree-vrp.c (range_fold_binary_symbolics_p): Adjust for irange and | |
16394 | tweak for performance. | |
16395 | (range_fold_binary_expr): Same. | |
16396 | (masked_increment): Change to extern. | |
16397 | * tree-vrp.h (masked_increment): New. | |
16398 | * tree.c (cache_wide_int_in_type_cache): New function abstracted | |
16399 | out from wide_int_to_tree_1. | |
16400 | (wide_int_to_tree_1): Cache 0, 1, and MAX for pointers. | |
16401 | * value-range-equiv.cc (value_range_equiv::deep_copy): Use kind | |
16402 | method. | |
16403 | (value_range_equiv::move): Same. | |
16404 | (value_range_equiv::check): Adjust for irange. | |
16405 | (value_range_equiv::intersect): Same. | |
16406 | (value_range_equiv::union_): Same. | |
16407 | (value_range_equiv::dump): Same. | |
16408 | * value-range.cc (irange::operator=): Same. | |
16409 | (irange::maybe_anti_range): New. | |
16410 | (irange::copy_legacy_range): New. | |
16411 | (irange::set_undefined): Adjust for irange. | |
16412 | (irange::swap_out_of_order_endpoints): Abstract out from set(). | |
16413 | (irange::set_varying): Adjust for irange. | |
16414 | (irange::irange_set): New. | |
16415 | (irange::irange_set_anti_range): New. | |
16416 | (irange::set): Adjust for irange. | |
16417 | (value_range::set_nonzero): Move to header file. | |
16418 | (value_range::set_zero): Move to header file. | |
16419 | (value_range::check): Rename to... | |
16420 | (irange::verify_range): ...this. | |
16421 | (value_range::num_pairs): Rename to... | |
16422 | (irange::legacy_num_pairs): ...this, and adjust for irange. | |
16423 | (value_range::lower_bound): Rename to... | |
16424 | (irange::legacy_lower_bound): ...this, and adjust for irange. | |
16425 | (value_range::upper_bound): Rename to... | |
16426 | (irange::legacy_upper_bound): ...this, and adjust for irange. | |
16427 | (value_range::equal_p): Rename to... | |
16428 | (irange::legacy_equal_p): ...this. | |
16429 | (value_range::operator==): Move to header file. | |
16430 | (irange::equal_p): New. | |
16431 | (irange::symbolic_p): Adjust for irange. | |
16432 | (irange::constant_p): Same. | |
16433 | (irange::singleton_p): Same. | |
16434 | (irange::value_inside_range): Same. | |
16435 | (irange::may_contain_p): Same. | |
16436 | (irange::contains_p): Same. | |
16437 | (irange::normalize_addresses): Same. | |
16438 | (irange::normalize_symbolics): Same. | |
16439 | (irange::legacy_intersect): Same. | |
16440 | (irange::legacy_union): Same. | |
16441 | (irange::union_): Same. | |
16442 | (irange::intersect): Same. | |
16443 | (irange::irange_union): New. | |
16444 | (irange::irange_intersect): New. | |
16445 | (subtract_one): New. | |
16446 | (irange::invert): Adjust for irange. | |
16447 | (dump_bound_with_infinite_markers): New. | |
16448 | (irange::dump): Adjust for irange. | |
16449 | (debug): Add irange versions. | |
16450 | (range_has_numeric_bounds_p): Adjust for irange. | |
16451 | (vrp_val_max): Move to header file. | |
16452 | (vrp_val_min): Move to header file. | |
16453 | (DEFINE_INT_RANGE_GC_STUBS): New. | |
16454 | (DEFINE_INT_RANGE_INSTANCE): New. | |
16455 | * value-range.h (class irange): New. | |
16456 | (class int_range): New. | |
16457 | (class value_range): Rename to a instantiation of int_range. | |
16458 | (irange::legacy_mode_p): New. | |
16459 | (value_range::value_range): Remove. | |
16460 | (irange::kind): New. | |
16461 | (irange::num_pairs): Adjust for irange. | |
16462 | (irange::type): Adjust for irange. | |
16463 | (irange::tree_lower_bound): New. | |
16464 | (irange::tree_upper_bound): New. | |
16465 | (irange::type): Adjust for irange. | |
16466 | (irange::min): Same. | |
16467 | (irange::max): Same. | |
16468 | (irange::varying_p): Same. | |
16469 | (irange::undefined_p): Same. | |
16470 | (irange::zero_p): Same. | |
16471 | (irange::nonzero_p): Same. | |
16472 | (irange::supports_type_p): Same. | |
16473 | (range_includes_zero_p): Same. | |
16474 | (gt_ggc_mx): New. | |
16475 | (gt_pch_nx): New. | |
16476 | (irange::irange): New. | |
16477 | (int_range::int_range): New. | |
16478 | (int_range::operator=): New. | |
16479 | (irange::set): Moved from value-range.cc and adjusted for irange. | |
16480 | (irange::set_undefined): Same. | |
16481 | (irange::set_varying): Same. | |
16482 | (irange::operator==): Same. | |
16483 | (irange::lower_bound): Same. | |
16484 | (irange::upper_bound): Same. | |
16485 | (irange::union_): Same. | |
16486 | (irange::intersect): Same. | |
16487 | (irange::set_nonzero): Same. | |
16488 | (irange::set_zero): Same. | |
16489 | (irange::normalize_min_max): New. | |
16490 | (vrp_val_max): Move from value-range.cc. | |
16491 | (vrp_val_min): Same. | |
16492 | * vr-values.c (vr_values::get_lattice_entry): Call value_range | |
16493 | constructor. | |
16494 | ||
16495 | 2020-08-02 Sergei Trofimovich <siarheit@google.com> | |
16496 | ||
16497 | PR bootstrap/96404 | |
16498 | * var-tracking.c (vt_find_locations): Fully initialize | |
16499 | all 'in_pending' bits. | |
16500 | ||
16501 | 2020-08-01 Jan Hubicka <jh@suse.cz> | |
16502 | ||
16503 | * symtab.c (symtab_node::verify_base): Verify order. | |
16504 | (symtab_node::verify_symtab_nodes): Verify order. | |
16505 | ||
16506 | 2020-08-01 Jan Hubicka <jh@suse.cz> | |
16507 | ||
16508 | * predict.c (estimate_bb_frequencies): Cap recursive calls by 90%. | |
16509 | ||
16510 | 2020-08-01 Jojo R <jiejie_rong@c-sky.com> | |
16511 | ||
16512 | * config/csky/csky_opts.h (float_abi_type): New. | |
16513 | * config/csky/csky.h (TARGET_SOFT_FLOAT): New. | |
16514 | (TARGET_HARD_FLOAT): New. | |
16515 | (TARGET_HARD_FLOAT_ABI): New. | |
16516 | (OPTION_DEFAULT_SPECS): Use mfloat-abi. | |
16517 | * config/csky/csky.opt (mfloat-abi): New. | |
16518 | * doc/invoke.texi (C-SKY Options): Document -mfloat-abi=. | |
16519 | ||
16520 | 2020-08-01 Cooper Qu <cooper.qu@linux.alibaba.com> | |
16521 | ||
16522 | * config/csky/t-csky-linux: Delete big endian CPUs' multilib. | |
16523 | ||
16524 | 2020-07-31 Roger Sayle <roger@nextmovesoftware.com> | |
16525 | Tom de Vries <tdevries@suse.de> | |
16526 | ||
16527 | PR target/90928 | |
16528 | * config/nvptx/nvptx.c (nvptx_truly_noop_truncation): Implement. | |
16529 | (TARGET_TRULY_NOOP_TRUNCATION): Define. | |
16530 | ||
16531 | 2020-07-31 Richard Biener <rguenther@suse.de> | |
16532 | ||
16533 | PR debug/96383 | |
16534 | * langhooks-def.h (lhd_finalize_early_debug): Declare. | |
16535 | (LANG_HOOKS_FINALIZE_EARLY_DEBUG): Define. | |
16536 | (LANG_HOOKS_INITIALIZER): Amend. | |
16537 | * langhooks.c: Include cgraph.h and debug.h. | |
16538 | (lhd_finalize_early_debug): Default implementation from | |
16539 | former code in finalize_compilation_unit. | |
16540 | * langhooks.h (lang_hooks::finalize_early_debug): Add. | |
16541 | * cgraphunit.c (symbol_table::finalize_compilation_unit): | |
16542 | Call the finalize_early_debug langhook. | |
16543 | ||
16544 | 2020-07-31 Richard Biener <rguenther@suse.de> | |
16545 | ||
16546 | * genmatch.c (expr::force_leaf): Add and initialize. | |
16547 | (expr::gen_transform): Honor force_leaf by passing | |
16548 | NULL as sequence argument to maybe_push_res_to_seq. | |
16549 | (parser::parse_expr): Allow ! marker on result expression | |
16550 | operations. | |
16551 | * doc/match-and-simplify.texi: Amend. | |
16552 | ||
16553 | 2020-07-31 Kewen Lin <linkw@linux.ibm.com> | |
16554 | ||
16555 | * tree-vect-loop.c (vect_get_known_peeling_cost): Don't consider branch | |
16556 | taken costs for prologue and epilogue if they don't exist. | |
16557 | (vect_estimate_min_profitable_iters): Likewise. | |
16558 | ||
16559 | 2020-07-31 Martin Liska <mliska@suse.cz> | |
16560 | ||
16561 | * cgraph.h: Remove leading empty lines. | |
16562 | * cgraphunit.c (enum cgraph_order_sort_kind): Remove | |
16563 | ORDER_UNDEFINED. | |
16564 | (struct cgraph_order_sort): Add constructors. | |
16565 | (cgraph_order_sort::process): New. | |
16566 | (cgraph_order_cmp): New. | |
16567 | (output_in_order): Simplify and push nodes to vector. | |
16568 | ||
16569 | 2020-07-31 Richard Biener <rguenther@suse.de> | |
16570 | ||
16571 | PR middle-end/96369 | |
16572 | * fold-const.c (fold_range_test): Special-case constant | |
16573 | LHS for short-circuiting operations. | |
16574 | ||
16575 | 2020-07-31 Martin Liska <mliska@suse.cz> | |
16576 | ||
16577 | * gcov-io.h (GCOV_PREALLOCATED_KVP): New. | |
16578 | ||
16579 | 2020-07-31 Zhiheng Xie <xiezhiheng@huawei.com> | |
16580 | ||
16581 | * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin): | |
16582 | Add new argument ATTRS. | |
16583 | (aarch64_call_properties): New function. | |
16584 | (aarch64_modifies_global_state_p): Likewise. | |
16585 | (aarch64_reads_global_state_p): Likewise. | |
16586 | (aarch64_could_trap_p): Likewise. | |
16587 | (aarch64_add_attribute): Likewise. | |
16588 | (aarch64_get_attributes): Likewise. | |
16589 | (aarch64_init_simd_builtins): Add attributes for each built-in function. | |
16590 | ||
16591 | 2020-07-31 Richard Biener <rguenther@suse.de> | |
16592 | ||
16593 | PR debug/78288 | |
16594 | * var-tracking.c (vt_find_locations): Use | |
16595 | rev_post_order_and_mark_dfs_back_seme and separately iterate | |
16596 | over toplevel SCCs. | |
16597 | ||
16598 | 2020-07-31 Richard Biener <rguenther@suse.de> | |
16599 | ||
16600 | * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Adjust | |
16601 | prototype. | |
16602 | * cfganal.c (rpoamdbs_bb_data): New struct with pre BB data. | |
16603 | (tag_header): New helper. | |
16604 | (cmp_edge_dest_pre): Likewise. | |
16605 | (rev_post_order_and_mark_dfs_back_seme): Compute SCCs, | |
16606 | find SCC exits and perform a DFS walk with extra edges to | |
16607 | compute a RPO with adjacent SCC members when requesting an | |
16608 | iteration optimized order and populate the toplevel SCC array. | |
16609 | * tree-ssa-sccvn.c (do_rpo_vn): Remove ad-hoc computation | |
16610 | of max_rpo and fill it in from SCC extent info instead. | |
16611 | ||
16612 | 2020-07-30 Will Schmidt <will_schmidt@vnet.ibm.com> | |
16613 | ||
16614 | * config/rs6000/altivec.h (vec_test_lsbb_all_ones): New define. | |
16615 | (vec_test_lsbb_all_zeros): New define. | |
16616 | * config/rs6000/rs6000-builtin.def (BU_P10_VSX_1): New built-in | |
16617 | handling macro. | |
16618 | (XVTLSBB_ZEROS, XVTLSBB_ONES): New builtin defines. | |
16619 | (xvtlsbb_all_zeros, xvtlsbb_all_ones): New builtin overloads. | |
16620 | * config/rs6000/rs6000-call.c (P10_BUILTIN_VEC_XVTLSBB_ZEROS, | |
16621 | P10_BUILTIN_VEC_XVTLSBB_ONES): New altivec_builtin_types entries. | |
16622 | * config/rs6000/rs6000.md (UNSPEC_XVTLSBB): New unspec. | |
16623 | * config/rs6000/vsx.md (*xvtlsbb_internal): New instruction define. | |
16624 | (xvtlsbbo, xvtlsbbz): New instruction expands. | |
16625 | ||
16626 | 2020-07-30 Cooper Qu <cooper.qu@linux.alibaba.com> | |
16627 | ||
16628 | * config/riscv/riscv-opts.h (stack_protector_guard): New enum. | |
16629 | * config/riscv/riscv.c (riscv_option_override): Handle | |
16630 | the new options. | |
16631 | * config/riscv/riscv.md (stack_protect_set): New pattern to handle | |
16632 | flexible stack protector guard settings. | |
16633 | (stack_protect_set_<mode>): Ditto. | |
16634 | (stack_protect_test): Ditto. | |
16635 | (stack_protect_test_<mode>): Ditto. | |
16636 | * config/riscv/riscv.opt (mstack-protector-guard=, | |
16637 | mstack-protector-guard-reg=, mstack-protector-guard-offset=): New | |
16638 | options. | |
16639 | * doc/invoke.texi (Option Summary) [RISC-V Options]: | |
16640 | Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and | |
16641 | -mstack-protector-guard-offset=. | |
16642 | (RISC-V Options): Ditto. | |
16643 | ||
16644 | 2020-07-30 H.J. Lu <hjl.tools@gmail.com> | |
16645 | ||
16646 | PR bootstrap/96202 | |
16647 | * configure: Regenerated. | |
16648 | ||
16649 | 2020-07-30 Richard Biener <rguenther@suse.de> | |
16650 | ||
16651 | PR tree-optimization/96370 | |
16652 | * tree-ssa-reassoc.c (rewrite_expr_tree): Add operation | |
16653 | code parameter and use it instead of picking it up from | |
16654 | the stmt that is being rewritten. | |
16655 | (reassociate_bb): Pass down the operation code. | |
16656 | ||
16657 | 2020-07-30 Roger Sayle <roger@nextmovesoftware.com> | |
16658 | Tom de Vries <tdevries@suse.de> | |
16659 | ||
16660 | * config/nvptx/nvptx.md (nvptx_vector_index_operand): New predicate. | |
16661 | (VECELEM): New mode attribute for a vector's uppercase element mode. | |
16662 | (Vecelem): New mode attribute for a vector's lowercase element mode. | |
16663 | (*vec_set<mode>_0, *vec_set<mode>_1, *vec_set<mode>_2) | |
16664 | (*vec_set<mode>_3): New instructions. | |
16665 | (vec_set<mode>): New expander to generate one of the above insns. | |
16666 | (vec_extract<mode><Vecelem>): New instruction. | |
16667 | ||
16668 | 2020-07-30 Martin Liska <mliska@suse.cz> | |
16669 | ||
16670 | PR target/95435 | |
16671 | * config/i386/x86-tune-costs.h: Use libcall for large sizes for | |
16672 | -m32. Start using libcall from 128+ bytes. | |
16673 | ||
16674 | 2020-07-30 Martin Liska <mliska@suse.cz> | |
16675 | ||
16676 | * config/i386/x86-tune-costs.h: Change code formatting. | |
16677 | ||
16678 | 2020-07-29 Roger Sayle <roger@nextmovesoftware.com> | |
16679 | ||
16680 | * config/nvptx/nvptx.md (recip<mode>2): New instruction. | |
16681 | ||
16682 | 2020-07-29 Fangrui Song <maskray@google.com> | |
16683 | ||
16684 | PR debug/95096 | |
16685 | * opts.c (common_handle_option): Don't make -gsplit-dwarf imply -g. | |
16686 | * doc/invoke.texi (-gsplit-dwarf): Update documentation. | |
16687 | ||
16688 | 2020-07-29 Joe Ramsay <joe.ramsay@arm.com> | |
16689 | ||
16690 | * config/arm/arm-protos.h (arm_coproc_mem_operand_no_writeback): | |
16691 | Declare prototype. | |
16692 | (arm_mve_mode_and_operands_type_check): Declare prototype. | |
16693 | * config/arm/arm.c (arm_coproc_mem_operand): Refactor to use | |
16694 | _arm_coproc_mem_operand. | |
16695 | (arm_coproc_mem_operand_wb): New function to cover full, limited | |
16696 | and no writeback. | |
16697 | (arm_coproc_mem_operand_no_writeback): New constraint for memory | |
16698 | operand with no writeback. | |
16699 | (arm_print_operand): Extend 'E' specifier for memory operand | |
16700 | that does not support writeback. | |
16701 | (arm_mve_mode_and_operands_type_check): New constraint check for | |
16702 | MVE memory operands. | |
16703 | * config/arm/constraints.md: Add Uj constraint for VFP vldr.16 | |
16704 | and vstr.16. | |
16705 | * config/arm/vfp.md (*mov_load_vfp_hf16): New pattern for | |
16706 | vldr.16. | |
16707 | (*mov_store_vfp_hf16): New pattern for vstr.16. | |
16708 | (*mov<mode>_vfp_<mode>16): Remove MVE moves. | |
16709 | ||
16710 | 2020-07-29 Richard Biener <rguenther@suse.de> | |
16711 | ||
16712 | PR tree-optimization/96349 | |
16713 | * tree-ssa-loop-split.c (stmt_semi_invariant_p_1): When the | |
16714 | condition runs into a loop PHI with an abnormal entry value give up. | |
16715 | ||
16716 | 2020-07-29 Richard Biener <rguenther@suse.de> | |
16717 | ||
16718 | * tree-vectorizer.c (vectorize_loops): Reset the SCEV | |
16719 | cache if we removed any SIMD UID SSA defs. | |
16720 | * gimple-loop-interchange.cc (pass_linterchange::execute): | |
16721 | Reset the scev cache if we interchanged a loop. | |
16722 | ||
16723 | 2020-07-29 Richard Biener <rguenther@suse.de> | |
16724 | ||
16725 | PR tree-optimization/95679 | |
16726 | * tree-ssa-propagate.h | |
16727 | (substitute_and_fold_engine::propagate_into_phi_args): Return | |
16728 | whether anything changed. | |
16729 | * tree-ssa-propagate.c | |
16730 | (substitute_and_fold_engine::propagate_into_phi_args): Likewise. | |
16731 | (substitute_and_fold_dom_walker::before_dom_children): Update | |
16732 | something_changed. | |
16733 | ||
16734 | 2020-07-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
16735 | ||
16736 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): | |
16737 | Ensure that loop variable npeel_tmp advances in each iteration. | |
16738 | ||
16739 | 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com> | |
16740 | ||
16741 | * config/mmix/mmix.h (NO_FUNCTION_CSE): Define to 1. | |
16742 | ||
16743 | 2020-07-29 Hans-Peter Nilsson <hp@bitrange.com> | |
16744 | ||
16745 | * config/mmix/mmix.h (ASM_OUTPUT_EXTERNAL): Define to | |
16746 | default_elf_asm_output_external. | |
16747 | ||
16748 | 2020-07-28 Sergei Trofimovich <siarheit@google.com> | |
16749 | ||
16750 | PR ipa/96291 | |
16751 | * ipa-cp.c (has_undead_caller_from_outside_scc_p): Consider | |
16752 | unoptimized callers as undead. | |
16753 | ||
16754 | 2020-07-28 Roger Sayle <roger@nextmovesoftware.com> | |
16755 | Richard Biener <rguenther@suse.de> | |
16756 | ||
16757 | * match.pd (popcount(x)&1 -> parity(x)): New simplification. | |
16758 | (parity(~x) -> parity(x)): New simplification. | |
16759 | (parity(x)^parity(y) -> parity(x^y)): New simplification. | |
16760 | (parity(x&1) -> x&1): New simplification. | |
16761 | (popcount(x) -> x>>C): New simplification. | |
16762 | ||
16763 | 2020-07-28 Roger Sayle <roger@nextmovesoftware.com> | |
16764 | Tom de Vries <tdevries@suse.de> | |
16765 | ||
16766 | * config/nvptx/nvptx.md (extendqihi2): New instruction. | |
16767 | (ashl<mode>3, ashr<mode>3, lshr<mode>3): Support HImode. | |
16768 | ||
16769 | 2020-07-28 Jakub Jelinek <jakub@redhat.com> | |
16770 | ||
16771 | PR middle-end/96335 | |
16772 | * calls.c (maybe_warn_rdwr_sizes): Add FNDECL and FNTYPE arguments, | |
16773 | instead of trying to rediscover them in the body. | |
16774 | (initialize_argument_information): Adjust caller. | |
16775 | ||
16776 | 2020-07-28 Kewen Lin <linkw@linux.ibm.com> | |
16777 | ||
16778 | * tree-vect-loop.c (vect_get_known_peeling_cost): Factor out some code | |
16779 | to determine peel_iters_epilogue to... | |
16780 | (vect_get_peel_iters_epilogue): ...this new function. | |
16781 | (vect_estimate_min_profitable_iters): Refactor cost calculation on | |
16782 | peel_iters_prologue and peel_iters_epilogue. | |
16783 | ||
16784 | 2020-07-27 Martin Sebor <msebor@redhat.com> | |
16785 | ||
16786 | PR tree-optimization/84079 | |
16787 | * gimple-array-bounds.cc (array_bounds_checker::check_addr_expr): | |
16788 | Only allow just-past-the-end references for the most significant | |
16789 | array bound. | |
16790 | ||
16791 | 2020-07-27 Hu Jiangping <hujiangping@cn.fujitsu.com> | |
16792 | ||
16793 | PR driver/96247 | |
16794 | * opts.c (check_alignment_argument): Set the -falign-Name | |
16795 | on/off flag on and set the -falign-Name string value null, | |
16796 | when the command-line specified argument is zero. | |
16797 | ||
16798 | 2020-07-27 Martin Liska <mliska@suse.cz> | |
16799 | ||
16800 | PR tree-optimization/96058 | |
16801 | * expr.c (string_constant): Build string_constant only | |
16802 | for a type that has same precision as char_type_node | |
16803 | and is an integral type. | |
16804 | ||
16805 | 2020-07-27 Richard Biener <rguenther@suse.de> | |
16806 | ||
16807 | * var-tracking.c (variable_tracking_main_1): Remove call | |
16808 | to mark_dfs_back_edges. | |
16809 | ||
16810 | 2020-07-27 Martin Liska <mliska@suse.cz> | |
16811 | ||
16812 | PR tree-optimization/96128 | |
16813 | * tree-vect-generic.c (expand_vector_comparison): Do not expand | |
16814 | vector comparison with VEC_COND_EXPR. | |
16815 | ||
16816 | 2020-07-27 H.J. Lu <hjl.tools@gmail.com> | |
16817 | ||
16818 | PR bootstrap/96203 | |
16819 | * common.opt: Add -fcf-protection=check. | |
16820 | * flag-types.h (cf_protection_level): Add CF_CHECK. | |
16821 | * lto-wrapper.c (merge_and_complain): Issue an error for | |
16822 | mismatching -fcf-protection values with -fcf-protection=check. | |
16823 | Otherwise, merge -fcf-protection values. | |
16824 | * doc/invoke.texi: Document -fcf-protection=check. | |
16825 | ||
16826 | 2020-07-27 Martin Liska <mliska@suse.cz> | |
16827 | ||
16828 | PR lto/45375 | |
16829 | * symbol-summary.h: Call vec_safe_reserve before grow is called | |
16830 | in order to grow to a reasonable size. | |
16831 | * vec.h (vec_safe_reserve): Add missing function for vl_ptr | |
16832 | type. | |
16833 | ||
16834 | 2020-07-26 Hans-Peter Nilsson <hp@bitrange.com> | |
16835 | ||
16836 | * configure.ac (out-of-tree linker .hidden support): Don't turn off | |
16837 | for mmix-knuth-mmixware. | |
16838 | * configure: Regenerate. | |
16839 | ||
16840 | 2020-07-26 Aaron Sawdey <acsawdey@linux.ibm.com> | |
16841 | ||
16842 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
16843 | Set the default value for -mblock-ops-unaligned-vsx. | |
16844 | * config/rs6000/rs6000.opt: Add -mblock-ops-unaligned-vsx. | |
16845 | * doc/invoke.texi: Document -mblock-ops-unaligned-vsx. | |
16846 | ||
16847 | 2020-07-25 Hans-Peter Nilsson <hp@bitrange.com> | |
16848 | ||
16849 | * config/mmix/mmix.c (TARGET_ASM_OUTPUT_IDENT): Override the default | |
16850 | with default_asm_output_ident_directive. | |
16851 | ||
16852 | 2020-07-25 Andrew Stubbs <ams@codesourcery.com> | |
16853 | ||
16854 | * config/gcn/gcn.c (gcn_scalar_mode_supported_p): New function. | |
16855 | (TARGET_SCALAR_MODE_SUPPORTED_P): New define. | |
16856 | ||
16857 | 2020-07-24 David Edelsohn <dje.gcc@gmail.com> | |
16858 | Clement Chigot <clement.chigot@atos.net> | |
16859 | ||
16860 | * config.gcc (powerpc-ibm-aix7.1): Use t-aix64 and biarch64 for | |
16861 | cpu_is_64bit. | |
16862 | * config/rs6000/aix71.h (ASM_SPEC): Remove aix64 option. | |
16863 | (ASM_SPEC32): New. | |
16864 | (ASM_SPEC64): New. | |
16865 | (ASM_CPU_SPEC): Remove vsx and altivec options. | |
16866 | (CPP_SPEC_COMMON): Rename from CPP_SPEC. | |
16867 | (CPP_SPEC32): New. | |
16868 | (CPP_SPEC64): New. | |
16869 | (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON.. | |
16870 | (TARGET_DEFAULT): Use 64 bit mask if BIARCH. | |
16871 | (LIB_SPEC_COMMON): Rename from LIB_SPEC. | |
16872 | (LIB_SPEC32): New. | |
16873 | (LIB_SPEC64): New. | |
16874 | (LINK_SPEC_COMMON): Rename from LINK_SPEC. | |
16875 | (LINK_SPEC32): New. | |
16876 | (LINK_SPEC64): New. | |
16877 | (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase. | |
16878 | (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P. | |
16879 | (CPP_SPEC): Same. | |
16880 | (CPLUSPLUS_CPP_SPEC): Same. | |
16881 | (LIB_SPEC): Same. | |
16882 | (LINK_SPEC): Same. | |
16883 | (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs. | |
16884 | * config/rs6000/aix72.h (TARGET_DEFAULT): Use 64 bit mask if BIARCH. | |
16885 | * config/rs6000/defaultaix64.h: Delete. | |
16886 | ||
16887 | 2020-07-24 Segher Boessenkool <segher@kernel.crashing.org> | |
16888 | ||
16889 | * config/rs6000/rs6000.opt: Delete -mpower10. | |
16890 | ||
16891 | 2020-07-24 Alexandre Oliva <oliva@adacore.com> | |
16892 | ||
16893 | * config/i386/intelmic-mkoffload.c | |
16894 | (generate_target_descr_file): Use dumppfx for save_temps | |
16895 | files. Pass -dumpbase et al down to the compiler. | |
16896 | (generate_target_offloadend_file): Likewise. | |
16897 | (generate_host_descr_file): Likewise. | |
16898 | (prepare_target_image): Likewise. Move out_obj_filename | |
16899 | setting... | |
16900 | (main): ... here. Detect -dumpbase, set dumppfx too. | |
16901 | ||
16902 | 2020-07-24 Alexandre Oliva <oliva@adacore.com> | |
16903 | ||
16904 | PR driver/96230 | |
16905 | * gcc.c (process_command): Adjust and document conditions to | |
16906 | reset dumpbase_ext. | |
16907 | ||
16908 | 2020-07-24 Matthias Klose <doko@ubuntu.com> | |
16909 | ||
16910 | * config/aarch64/aarch64.c (+aarch64_offload_options, | |
16911 | TARGET_OFFLOAD_OPTIONS): New. | |
16912 | ||
16913 | 2020-07-24 Uroš Bizjak <ubizjak@gmail.com> | |
16914 | ||
16915 | PR target/95750 | |
16916 | * config/i386/sync.md (mmem_thread_fence): Emit mfence_sse2 for -Os. | |
16917 | ||
16918 | 2020-07-23 Roger Sayle <roger@nextmovesoftware.com> | |
16919 | ||
16920 | PR rtl-optimization/96298 | |
16921 | * simplify-rtx.c (simplify_binary_operation_1) [XOR]: Xor doesn't | |
16922 | distribute over xor, so (a^b)^(c^b) is not the same as (a^c)^b. | |
16923 | ||
16924 | 2020-07-23 Dong JianQiang <dongjianqiang2@huawei.com> | |
16925 | ||
16926 | PR gcov-profile/96267 | |
16927 | * gcov-io.c (gcov_open): enable if IN_GCOV_TOOL. | |
16928 | ||
16929 | 2020-07-23 Kewen Lin <linkw@linux.ibm.com> | |
16930 | ||
16931 | * config/rs6000/rs6000.c (adjust_vectorization_cost): Renamed to ... | |
16932 | (rs6000_adjust_vect_cost_per_stmt): ... here. | |
16933 | (rs6000_add_stmt_cost): Rename adjust_vectorization_cost to | |
16934 | rs6000_adjust_vect_cost_per_stmt. | |
16935 | ||
16936 | 2020-07-23 Kewen Lin <linkw@linux.ibm.com> | |
16937 | ||
16938 | * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle | |
16939 | IFN_LEN_LOAD and IFN_LEN_STORE. | |
16940 | (get_alias_ptr_type_for_ptr_address): Likewise. | |
16941 | ||
16942 | 2020-07-23 Kito Cheng <kito.cheng@sifive.com> | |
16943 | ||
16944 | PR target/96260 | |
16945 | * asan.c (asan_shadow_offset_set_p): New. | |
16946 | * asan.h (asan_shadow_offset_set_p): Ditto. | |
16947 | * toplev.c (process_options): Allow -fsanitize=kernel-address | |
16948 | even TARGET_ASAN_SHADOW_OFFSET not implemented, only check when | |
16949 | asan stack protection is enabled. | |
16950 | ||
16951 | 2020-07-22 Peter Bergner <bergner@linux.ibm.com> | |
16952 | ||
16953 | PR target/96236 | |
16954 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Handle | |
16955 | little-endian memory ordering. | |
16956 | ||
16957 | 2020-07-22 Nathan Sidwell <nathan@acm.org> | |
16958 | ||
16959 | * dumpfile.c (parse_dump_option): Deal with filenames | |
16960 | containing '-' | |
16961 | ||
16962 | 2020-07-22 Nathan Sidwell <nathan@acm.org> | |
16963 | ||
16964 | * incpath.c (add_path): Avoid multiple strlen calls. | |
16965 | ||
16966 | 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
16967 | ||
16968 | * expmed.c (expand_sdiv_pow2): Check return value from emit_store_flag | |
16969 | is not NULL_RTX before use. | |
16970 | ||
16971 | 2020-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
16972 | ||
16973 | * expr.c (convert_modes): Allow a constant integer to be converted to | |
16974 | any scalar int mode. | |
16975 | ||
16976 | 2020-07-22 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
16977 | ||
16978 | * config/aarch64/aarch64-ldpstp.md: Add two peepholes for adjusted vector | |
16979 | V2SI, V2SF, V2DI, V2DF load pair and store pair modes. | |
16980 | * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp): | |
16981 | Change mode parameter to machine_mode. | |
16982 | (aarch64_operands_adjust_ok_for_ldpstp): Change mode parameter to | |
16983 | machine_mode. | |
16984 | * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): | |
16985 | Change mode parameter to machine_mode. | |
16986 | (aarch64_gen_adjusted_ldpstp): Change mode parameter to machine_mode. | |
16987 | * config/aarch64/iterators.md (VP_2E): New iterator for 2 element vectors. | |
16988 | ||
16989 | 2020-07-22 Wei Wentao <weiwt.fnst@cn.fujitsu.com> | |
16990 | ||
16991 | * doc/languages.texi: Fix “then”/“than” typo. | |
16992 | ||
16993 | 2020-07-21 Sunil K Pandey <skpgkp2@gmail.com> | |
16994 | ||
16995 | PR target/95237 | |
16996 | * config/i386/i386-protos.h (ix86_local_alignment): Add | |
16997 | another function parameter may_lower alignment. Default is | |
16998 | false. | |
16999 | * config/i386/i386.c (ix86_lower_local_decl_alignment): New | |
17000 | function. | |
17001 | (ix86_local_alignment): Amend ix86_local_alignment to accept | |
17002 | another parameter may_lower. If may_lower is true, new align | |
17003 | may be lower than incoming alignment. If may_lower is false, | |
17004 | new align will be greater or equal to incoming alignment. | |
17005 | (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): Define. | |
17006 | * doc/tm.texi: Regenerate. | |
17007 | * doc/tm.texi.in (TARGET_LOWER_LOCAL_DECL_ALIGNMENT): New | |
17008 | hook. | |
17009 | * target.def (lower_local_decl_alignment): New hook. | |
17010 | ||
17011 | 2020-07-21 Uroš Bizjak <ubizjak@gmail.com> | |
17012 | ||
17013 | PR target/95750 | |
17014 | * config/i386/sync.md (mfence_sse2): Enable for | |
17015 | TARGET_64BIT and TARGET_SSE2. | |
17016 | (mfence_nosse): Always enable. | |
17017 | ||
17018 | 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
17019 | ||
17020 | * config/msp430/msp430-protos.h (msp430_do_not_relax_short_jumps): | |
17021 | Remove. | |
17022 | * config/msp430/msp430.c (msp430_do_not_relax_short_jumps): Likewise. | |
17023 | * config/msp430/msp430.md (cbranchhi4_real): Remove special case for | |
17024 | msp430_do_not_relax_short_jumps. | |
17025 | ||
17026 | 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
17027 | ||
17028 | * config/msp430/msp430.md: New "extendqipsi2" define_insn. | |
17029 | ||
17030 | 2020-07-21 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
17031 | ||
17032 | * config/msp430/msp430.h (NO_FUNCTION_CSE): Set to true at -O2 and | |
17033 | above. | |
17034 | ||
17035 | 2020-07-21 Xionghu Luo <luoxhu@linux.ibm.com> | |
17036 | ||
17037 | PR rtl-optimization/89310 | |
17038 | * config/rs6000/rs6000.md (movsf_from_si2): New define_insn_and_split. | |
17039 | ||
17040 | 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com> | |
17041 | ||
17042 | * config/mmix/mmix.c (mmix_expand_prologue): Calculate the total | |
17043 | allocated size and set current_function_static_stack_size, if | |
17044 | flag_stack_usage_info. | |
17045 | ||
17046 | 2020-07-20 Sergei Trofimovich <siarheit@google.com> | |
17047 | ||
17048 | PR target/96190 | |
17049 | * config/sparc/linux.h (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC | |
17050 | to get crtendS.o for !no-pie mode. | |
17051 | * config/sparc/linux64.h (ENDFILE_SPEC): Ditto. | |
17052 | ||
17053 | 2020-07-20 Yang Yang <yangyang305@huawei.com> | |
17054 | ||
17055 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Add | |
17056 | VIEW_CONVERT_EXPRs if the arguments types and return type | |
17057 | of simd clone function are distinct with the vectype of stmt. | |
17058 | ||
17059 | 2020-07-20 Uroš Bizjak <ubizjak@gmail.com> | |
17060 | ||
17061 | PR target/95750 | |
17062 | * config/i386/i386.h (TARGET_AVOID_MFENCE): | |
17063 | Rename from TARGET_USE_XCHG_FOR_ATOMIC_STORE. | |
17064 | * config/i386/sync.md (mfence_sse2): Disable for TARGET_AVOID_MFENCE. | |
17065 | (mfence_nosse): Enable also for TARGET_AVOID_MFENCE. Emit stack | |
17066 | referred memory in word_mode. | |
17067 | (mem_thread_fence): Do not generate mfence_sse2 pattern when | |
17068 | TARGET_AVOID_MFENCE is true. | |
17069 | (atomic_store<mode>): Update for rename. | |
17070 | * config/i386/x86-tune.def (X86_TUNE_AVOID_MFENCE): | |
17071 | Rename from X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE. | |
17072 | ||
17073 | 2020-07-20 Martin Sebor <msebor@redhat.com> | |
17074 | ||
17075 | PR middle-end/95189 | |
17076 | PR middle-end/95886 | |
17077 | * builtins.c (inline_expand_builtin_string_cmp): Rename... | |
17078 | (inline_expand_builtin_bytecmp): ...to this. | |
17079 | (builtin_memcpy_read_str): Don't expect data to be nul-terminated. | |
17080 | (expand_builtin_memory_copy_args): Handle object representations | |
17081 | with embedded nul bytes. | |
17082 | (expand_builtin_memcmp): Same. | |
17083 | (expand_builtin_strcmp): Adjust call to naming change. | |
17084 | (expand_builtin_strncmp): Same. | |
17085 | * expr.c (string_constant): Create empty strings with nonzero size. | |
17086 | * fold-const.c (c_getstr): Rename locals and update comments. | |
17087 | * tree.c (build_string): Accept null pointer argument. | |
17088 | (build_string_literal): Same. | |
17089 | * tree.h (build_string): Provide a default. | |
17090 | (build_string_literal): Same. | |
17091 | ||
17092 | 2020-07-20 Richard Biener <rguenther@suse.de> | |
17093 | ||
17094 | * cfganal.c (rev_post_order_and_mark_dfs_back_seme): Remove | |
17095 | write-only post array. | |
17096 | ||
17097 | 2020-07-20 Jakub Jelinek <jakub@redhat.com> | |
17098 | ||
17099 | PR libstdc++/93121 | |
17100 | * gimple-fold.c (fold_const_aggregate_ref_1): For COMPONENT_REF | |
17101 | of a bitfield not aligned on byte boundaries try to | |
17102 | fold_ctor_reference DECL_BIT_FIELD_REPRESENTATIVE if any and | |
17103 | adjust it depending on endianity. | |
17104 | ||
17105 | 2020-07-20 Jakub Jelinek <jakub@redhat.com> | |
17106 | ||
17107 | PR libstdc++/93121 | |
17108 | * fold-const.c (native_encode_initializer): Handle bit-fields. | |
17109 | ||
17110 | 2020-07-20 Kewen Lin <linkw@linux.ibm.com> | |
17111 | ||
17112 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
17113 | Set param_vect_partial_vector_usage to 0 explicitly. | |
17114 | * doc/invoke.texi (vect-partial-vector-usage): Document new option. | |
17115 | * optabs-query.c (get_len_load_store_mode): New function. | |
17116 | * optabs-query.h (get_len_load_store_mode): New declare. | |
17117 | * params.opt (vect-partial-vector-usage): New. | |
17118 | * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Add the | |
17119 | handlings for vectorization using length-based partial vectors, call | |
17120 | vect_gen_len for length generation, and rename some variables with | |
17121 | items instead of scalars. | |
17122 | (vect_set_loop_condition_partial_vectors): Add the handlings for | |
17123 | vectorization using length-based partial vectors. | |
17124 | (vect_do_peeling): Allow remaining eiters less than epilogue vf for | |
17125 | LOOP_VINFO_USING_PARTIAL_VECTORS_P. | |
17126 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Init | |
17127 | epil_using_partial_vectors_p. | |
17128 | (_loop_vec_info::~_loop_vec_info): Call release_vec_loop_controls | |
17129 | for lengths destruction. | |
17130 | (vect_verify_loop_lens): New function. | |
17131 | (vect_analyze_loop): Add handlings for epilogue of loop when it's | |
17132 | marked to use vectorization using partial vectors. | |
17133 | (vect_analyze_loop_2): Add the check to allow only one vectorization | |
17134 | approach using partial vectorization at the same time. Check param | |
17135 | vect-partial-vector-usage for partial vectors decision. Mark | |
17136 | LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P if the epilogue is | |
17137 | considerable to use partial vectors. Call release_vec_loop_controls | |
17138 | for lengths destruction. | |
17139 | (vect_estimate_min_profitable_iters): Adjust for loop vectorization | |
17140 | using length-based partial vectors. | |
17141 | (vect_record_loop_mask): Init factor to 1 for vectorization using | |
17142 | mask-based partial vectors. | |
17143 | (vect_record_loop_len): New function. | |
17144 | (vect_get_loop_len): Likewise. | |
17145 | * tree-vect-stmts.c (check_load_store_for_partial_vectors): Add | |
17146 | checks for vectorization using length-based partial vectors. Factor | |
17147 | some code to lambda function get_valid_nvectors. | |
17148 | (vectorizable_store): Add handlings when using length-based partial | |
17149 | vectors. | |
17150 | (vectorizable_load): Likewise. | |
17151 | (vect_gen_len): New function. | |
17152 | * tree-vectorizer.h (struct rgroup_controls): Add field factor | |
17153 | mainly for length-based partial vectors. | |
17154 | (vec_loop_lens): New typedef. | |
17155 | (_loop_vec_info): Add lens and epil_using_partial_vectors_p. | |
17156 | (LOOP_VINFO_EPIL_USING_PARTIAL_VECTORS_P): New macro. | |
17157 | (LOOP_VINFO_LENS): Likewise. | |
17158 | (LOOP_VINFO_FULLY_WITH_LENGTH_P): Likewise. | |
17159 | (vect_record_loop_len): New declare. | |
17160 | (vect_get_loop_len): Likewise. | |
17161 | (vect_gen_len): Likewise. | |
17162 | ||
17163 | 2020-07-20 Hans-Peter Nilsson <hp@bitrange.com> | |
17164 | ||
17165 | * config/mmix/mmix.c (mmix_option_override): Reinstate default | |
17166 | integer-emitting targetm.asm_out pseudos when dumping detailed | |
17167 | assembly-code. | |
17168 | (mmix_assemble_integer): Update comment. | |
17169 | ||
17170 | 2020-07-19 H.J. Lu <hjl.tools@gmail.com> | |
17171 | ||
17172 | PR target/95973 | |
17173 | PR target/96238 | |
17174 | * config/i386/cpuid.h: Add include guard. | |
17175 | (__cpuidex): New. | |
17176 | ||
17177 | 2020-07-18 H.J. Lu <hjl.tools@gmail.com> | |
17178 | ||
17179 | PR target/95620 | |
17180 | * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. | |
17181 | ||
17182 | 2020-07-18 Peter Bergner <bergner@linux.ibm.com> | |
17183 | ||
17184 | PR target/92488 | |
17185 | * config/rs6000/dfp.md (trunctdsd2): New define_insn. | |
17186 | * config/rs6000/rs6000.md (define_attr "isa"): Add p9. | |
17187 | (define_attr "enabled"): Handle p9. | |
17188 | ||
17189 | 2020-07-17 Roger Sayle <roger@nextmovesoftware.com> | |
17190 | ||
17191 | * function.c (assign_parm_setup_block): Use the macro | |
17192 | TRULY_NOOP_TRUNCATION_MODES_P instead of calling | |
17193 | targetm.truly_noop_truncation directly. | |
17194 | ||
17195 | 2020-07-17 H.J. Lu <hjl.tools@gmail.com> | |
17196 | ||
17197 | PR target/96186 | |
17198 | PR target/88713 | |
17199 | * config/i386/sse.md (VF_AVX512VL_VF1_128_256): Renamed to ... | |
17200 | (VF1_AVX512ER_128_256): This. Drop DF vector modes. | |
17201 | (rsqrt<mode>2): Replace VF_AVX512VL_VF1_128_256 with | |
17202 | VF1_AVX512ER_128_256. | |
17203 | ||
17204 | 2020-07-17 Tamar Christina <tamar.christina@arm.com> | |
17205 | ||
17206 | * doc/sourcebuild.texi (dg-set-compiler-env-var, | |
17207 | dg-set-target-env-var): Document. | |
17208 | ||
17209 | 2020-07-17 Tamar Christina <tamar.christina@arm.com> | |
17210 | ||
17211 | * config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO. | |
17212 | ||
17213 | 2020-07-17 Tamar Christina <tamar.christina@arm.com> | |
17214 | ||
17215 | * config/aarch64/driver-aarch64.c (host_detect_local_cpu): | |
17216 | Add GCC_CPUINFO. | |
17217 | ||
17218 | 2020-07-17 Tamar Christina <tamar.christina@arm.com> | |
17219 | ||
17220 | * config/aarch64/driver-aarch64.c (INCLUDE_SET): New. | |
17221 | (parse_field): Use std::string. | |
17222 | (split_words, readline, find_field): New. | |
17223 | (host_detect_local_cpu): Fix truncation issues. | |
17224 | ||
17225 | 2020-07-17 Andrew Stubbs <ams@codesourcery.com> | |
17226 | ||
17227 | * config/gcn/mkoffload.c (EM_AMDGPU): Undefine before defining. | |
17228 | (ELFOSABI_AMDGPU_HSA): Likewise. | |
17229 | (ELFABIVERSION_AMDGPU_HSA): Likewise. | |
17230 | (EF_AMDGPU_MACH_AMDGCN_GFX803): Likewise. | |
17231 | (EF_AMDGPU_MACH_AMDGCN_GFX900): Likewise. | |
17232 | (EF_AMDGPU_MACH_AMDGCN_GFX906): Likewise. | |
17233 | (reserved): Delete. | |
17234 | ||
17235 | 2020-07-17 Andrew Pinski <apinksi@marvell.com> | |
17236 | Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com> | |
17237 | ||
17238 | PR target/93720 | |
17239 | * config/aarch64/aarch64.c (aarch64_evpc_ins): New function. | |
17240 | (aarch64_expand_vec_perm_const_1): Call it. | |
17241 | * config/aarch64/aarch64-simd.md (aarch64_simd_vec_copy_lane): Make | |
17242 | public, and add a "@" prefix. | |
17243 | ||
17244 | 2020-07-17 Andrew Pinski <apinksi@marvell.com> | |
17245 | Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com> | |
17246 | ||
17247 | PR target/82199 | |
17248 | * config/aarch64/aarch64.c (aarch64_evpc_reencode): New function. | |
17249 | (aarch64_expand_vec_perm_const_1): Call it. | |
17250 | ||
17251 | 2020-07-17 Zhiheng Xie <xiezhiheng@huawei.com> | |
17252 | ||
17253 | * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): | |
17254 | Add new field flags. | |
17255 | (VAR1): Add new field FLAG in macro. | |
17256 | (VAR2): Likewise. | |
17257 | (VAR3): Likewise. | |
17258 | (VAR4): Likewise. | |
17259 | (VAR5): Likewise. | |
17260 | (VAR6): Likewise. | |
17261 | (VAR7): Likewise. | |
17262 | (VAR8): Likewise. | |
17263 | (VAR9): Likewise. | |
17264 | (VAR10): Likewise. | |
17265 | (VAR11): Likewise. | |
17266 | (VAR12): Likewise. | |
17267 | (VAR13): Likewise. | |
17268 | (VAR14): Likewise. | |
17269 | (VAR15): Likewise. | |
17270 | (VAR16): Likewise. | |
17271 | (aarch64_general_fold_builtin): Likewise. | |
17272 | (aarch64_general_gimple_fold_builtin): Likewise. | |
17273 | * config/aarch64/aarch64-simd-builtins.def: Add default flag for | |
17274 | each built-in function. | |
17275 | * config/aarch64/geniterators.sh: Add new field in BUILTIN macro. | |
17276 | ||
17277 | 2020-07-17 Andreas Krebbel <krebbel@linux.ibm.com> | |
17278 | ||
17279 | PR target/96127 | |
17280 | * config/s390/s390.c (s390_expand_insv): Invoke the movstrict | |
17281 | expanders to generate the pattern. | |
17282 | * config/s390/s390.md ("*movstricthi", "*movstrictqi"): Remove the | |
17283 | '*' to have callable expanders. | |
17284 | ||
17285 | 2020-07-16 Hans-Peter Nilsson <hp@axis.com> | |
17286 | Segher Boessenkool <segher@kernel.crashing.org> | |
17287 | ||
17288 | PR target/93372 | |
17289 | * combine.c (is_just_move): Take an rtx_insn* as argument. Use | |
17290 | single_set on it. | |
17291 | ||
17292 | 2020-07-16 Uroš Bizjak <ubizjak@gmail.com> | |
17293 | ||
17294 | PR target/96189 | |
17295 | * config/i386/sync.md | |
17296 | (peephole2 to remove unneded compare after CMPXCHG): | |
17297 | New pattern, also handle XOR zeroing and load of -1 by OR. | |
17298 | ||
17299 | 2020-07-16 Eric Botcazou <ebotcazou@adacore.com> | |
17300 | ||
17301 | * config/i386/i386.c (ix86_compute_frame_layout): Minor tweak. | |
17302 | (ix86_adjust_stack_and_probe): Delete. | |
17303 | (ix86_adjust_stack_and_probe_stack_clash): Rename to above and add | |
17304 | PROTECTION_AREA parameter. If it is true, probe PROBE_INTERVAL plus | |
17305 | a small dope beyond SIZE bytes. | |
17306 | (ix86_emit_probe_stack_range): Use local variable. | |
17307 | (ix86_expand_prologue): Adjust calls to ix86_adjust_stack_and_probe | |
17308 | and tidy up the stack checking code. | |
17309 | * explow.c (get_stack_check_protect): Fix head comment. | |
17310 | (anti_adjust_stack_and_probe_stack_clash): Likewise. | |
17311 | (allocate_dynamic_stack_space): Add comment. | |
17312 | * tree-nested.c (lookup_field_for_decl): Set the DECL_IGNORED_P and | |
17313 | TREE_NO_WARNING but not TREE_ADDRESSABLE flags on the field. | |
17314 | ||
17315 | 2020-07-16 Andrew Stubbs <ams@codesourcery.com> | |
17316 | ||
17317 | * config/gcn/mkoffload.c: Include simple-object.h and elf.h. | |
17318 | (EM_AMDGPU): New macro. | |
17319 | (ELFOSABI_AMDGPU_HSA): New macro. | |
17320 | (ELFABIVERSION_AMDGPU_HSA): New macro. | |
17321 | (EF_AMDGPU_MACH_AMDGCN_GFX803): New macro. | |
17322 | (EF_AMDGPU_MACH_AMDGCN_GFX900): New macro. | |
17323 | (EF_AMDGPU_MACH_AMDGCN_GFX906): New macro. | |
17324 | (R_AMDGPU_NONE): New macro. | |
17325 | (R_AMDGPU_ABS32_LO): New macro. | |
17326 | (R_AMDGPU_ABS32_HI): New macro. | |
17327 | (R_AMDGPU_ABS64): New macro. | |
17328 | (R_AMDGPU_REL32): New macro. | |
17329 | (R_AMDGPU_REL64): New macro. | |
17330 | (R_AMDGPU_ABS32): New macro. | |
17331 | (R_AMDGPU_GOTPCREL): New macro. | |
17332 | (R_AMDGPU_GOTPCREL32_LO): New macro. | |
17333 | (R_AMDGPU_GOTPCREL32_HI): New macro. | |
17334 | (R_AMDGPU_REL32_LO): New macro. | |
17335 | (R_AMDGPU_REL32_HI): New macro. | |
17336 | (reserved): New macro. | |
17337 | (R_AMDGPU_RELATIVE64): New macro. | |
17338 | (gcn_s1_name): Delete global variable. | |
17339 | (gcn_s2_name): Delete global variable. | |
17340 | (gcn_o_name): Delete global variable. | |
17341 | (gcn_cfile_name): Delete global variable. | |
17342 | (files_to_cleanup): New global variable. | |
17343 | (offload_abi): New global variable. | |
17344 | (tool_cleanup): Use files_to_cleanup, not explicit list. | |
17345 | (copy_early_debug_info): New function. | |
17346 | (main): New local variables gcn_s1_name, gcn_s2_name, gcn_o_name, | |
17347 | gcn_cfile_name. | |
17348 | Create files_to_cleanup obstack. | |
17349 | Recognize -march options. | |
17350 | Copy early debug info from input .o files. | |
17351 | ||
17352 | 2020-07-16 Andrea Corallo <andrea.corallo@arm.com> | |
17353 | ||
17354 | * Makefile.in (TAGS): Remove 'params.def'. | |
17355 | ||
17356 | 2020-07-16 Roger Sayle <roger@nextmovesoftware.com> | |
17357 | ||
17358 | * target.def (TARGET_TRULY_NOOP_TRUNCATION): Clarify that | |
17359 | targets that return false, indicating SUBREGs shouldn't be | |
17360 | used, also need to provide a trunc?i?i2 optab that performs this | |
17361 | truncation. | |
17362 | * doc/tm.texi: Regenerate. | |
17363 | ||
17364 | 2020-07-15 Uroš Bizjak <ubizjak@gmail.com> | |
17365 | ||
17366 | PR target/96189 | |
17367 | * config/i386/sync.md | |
17368 | (peephole2 to remove unneded compare after CMPXCHG): New pattern. | |
17369 | ||
17370 | 2020-07-15 Jakub Jelinek <jakub@redhat.com> | |
17371 | ||
17372 | PR libgomp/96198 | |
17373 | * omp-general.h (struct omp_for_data): Rename min_inner_iterations | |
17374 | member to first_inner_iterations, adjust comment. | |
17375 | * omp-general.c (omp_extract_for_data): Adjust for the above change. | |
17376 | Always use n1first and n2first to compute it, rather than depending | |
17377 | on single_nonrect_cond_code. Similarly, always compute factor | |
17378 | as (m2 - m1) * outer_step / inner_step rather than sometimes m1 - m2 | |
17379 | depending on single_nonrect_cond_code. | |
17380 | * omp-expand.c (expand_omp_for_init_vars): Rename min_inner_iterations | |
17381 | to first_inner_iterations and min_inner_iterationsd to | |
17382 | first_inner_iterationsd. | |
17383 | ||
17384 | 2020-07-15 Jakub Jelinek <jakub@redhat.com> | |
17385 | ||
17386 | PR target/96174 | |
17387 | * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask, | |
17388 | _mm512_mask_cmpeq_pd_mask, _mm512_cmplt_pd_mask, | |
17389 | _mm512_mask_cmplt_pd_mask, _mm512_cmple_pd_mask, | |
17390 | _mm512_mask_cmple_pd_mask, _mm512_cmpunord_pd_mask, | |
17391 | _mm512_mask_cmpunord_pd_mask, _mm512_cmpneq_pd_mask, | |
17392 | _mm512_mask_cmpneq_pd_mask, _mm512_cmpnlt_pd_mask, | |
17393 | _mm512_mask_cmpnlt_pd_mask, _mm512_cmpnle_pd_mask, | |
17394 | _mm512_mask_cmpnle_pd_mask, _mm512_cmpord_pd_mask, | |
17395 | _mm512_mask_cmpord_pd_mask, _mm512_cmpeq_ps_mask, | |
17396 | _mm512_mask_cmpeq_ps_mask, _mm512_cmplt_ps_mask, | |
17397 | _mm512_mask_cmplt_ps_mask, _mm512_cmple_ps_mask, | |
17398 | _mm512_mask_cmple_ps_mask, _mm512_cmpunord_ps_mask, | |
17399 | _mm512_mask_cmpunord_ps_mask, _mm512_cmpneq_ps_mask, | |
17400 | _mm512_mask_cmpneq_ps_mask, _mm512_cmpnlt_ps_mask, | |
17401 | _mm512_mask_cmpnlt_ps_mask, _mm512_cmpnle_ps_mask, | |
17402 | _mm512_mask_cmpnle_ps_mask, _mm512_cmpord_ps_mask, | |
17403 | _mm512_mask_cmpord_ps_mask): Move outside of __OPTIMIZE__ guarded | |
17404 | section. | |
17405 | ||
17406 | 2020-07-15 Jakub Jelinek <jakub@redhat.com> | |
17407 | ||
17408 | PR target/96176 | |
17409 | * builtins.c: Include gimple-ssa.h, tree-ssa-live.h and | |
17410 | tree-outof-ssa.h. | |
17411 | (expand_expr_force_mode): If exp is a SSA_NAME with different mode | |
17412 | from MODE and get_gimple_for_ssa_name is a cast from MODE, use the | |
17413 | cast's rhs. | |
17414 | ||
17415 | 2020-07-15 Jiufu Guo <guojiufu@cn.ibm.com> | |
17416 | ||
17417 | * config/rs6000/rs6000.c (rs6000_loop_unroll_adjust): Refine hook. | |
17418 | ||
17419 | 2020-07-14 David Edelsohn <dje.gcc@gmail.com> | |
17420 | ||
17421 | * config/rs6000/rs6000.md (rotldi3_insert_sf): Add TARGET_POWERPC64 | |
17422 | condition. | |
17423 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add | |
17424 | TARGET_POWERPC64 requirement to TARGET_P8_VECTOR case. | |
17425 | ||
17426 | 2020-07-14 Lewis Hyatt <lhyatt@gmail.com> | |
17427 | ||
17428 | PR preprocessor/49973 | |
17429 | PR other/86904 | |
17430 | * common.opt: Handle -ftabstop here instead of in c-family | |
17431 | options. Add -fdiagnostics-column-unit= and | |
17432 | -fdiagnostics-column-origin= options. | |
17433 | * opts.c (common_handle_option): Handle the new options. | |
17434 | * diagnostic-format-json.cc (json_from_expanded_location): Add | |
17435 | diagnostic_context argument. Use it to convert column numbers as per | |
17436 | the new options. | |
17437 | (json_from_location_range): Likewise. | |
17438 | (json_from_fixit_hint): Likewise. | |
17439 | (json_end_diagnostic): Pass the new context argument to helper | |
17440 | functions above. Add "column-origin" field to the output. | |
17441 | (test_unknown_location): Add the new context argument to calls to | |
17442 | helper functions. | |
17443 | (test_bad_endpoints): Likewise. | |
17444 | * diagnostic-show-locus.c | |
17445 | (exploc_with_display_col::exploc_with_display_col): Support | |
17446 | tabstop parameter. | |
17447 | (layout_point::layout_point): Make use of class | |
17448 | exploc_with_display_col. | |
17449 | (layout_range::layout_range): Likewise. | |
17450 | (struct line_bounds): Clarify that the units are now always | |
17451 | display columns. Rename members accordingly. Add constructor. | |
17452 | (layout::print_source_line): Add support for tab expansion. | |
17453 | (make_range): Adapt to class layout_range changes. | |
17454 | (layout::maybe_add_location_range): Likewise. | |
17455 | (layout::layout): Adapt to class exploc_with_display_col changes. | |
17456 | (layout::calculate_x_offset_display): Support tabstop parameter. | |
17457 | (layout::print_annotation_line): Adapt to struct line_bounds changes. | |
17458 | (layout::print_line): Likewise. | |
17459 | (line_label::line_label): Add diagnostic_context argument. | |
17460 | (get_affected_range): Likewise. | |
17461 | (get_printed_columns): Likewise. | |
17462 | (layout::print_any_labels): Adapt to struct line_label changes. | |
17463 | (class correction): Add m_tabstop member. | |
17464 | (correction::correction): Add tabstop argument. | |
17465 | (correction::compute_display_cols): Use m_tabstop. | |
17466 | (class line_corrections): Add m_context member. | |
17467 | (line_corrections::line_corrections): Add diagnostic_context argument. | |
17468 | (line_corrections::add_hint): Use m_context to handle tabstops. | |
17469 | (layout::print_trailing_fixits): Adapt to class line_corrections | |
17470 | changes. | |
17471 | (test_layout_x_offset_display_utf8): Support tabstop parameter. | |
17472 | (test_layout_x_offset_display_tab): New selftest. | |
17473 | (test_one_liner_colorized_utf8): Likewise. | |
17474 | (test_tab_expansion): Likewise. | |
17475 | (test_diagnostic_show_locus_one_liner_utf8): Call the new tests. | |
17476 | (diagnostic_show_locus_c_tests): Likewise. | |
17477 | (test_overlapped_fixit_printing): Adapt to helper class and | |
17478 | function changes. | |
17479 | (test_overlapped_fixit_printing_utf8): Likewise. | |
17480 | (test_overlapped_fixit_printing_2): Likewise. | |
17481 | * diagnostic.h (enum diagnostics_column_unit): New enum. | |
17482 | (struct diagnostic_context): Add members for the new options. | |
17483 | (diagnostic_converted_column): Declare. | |
17484 | (json_from_expanded_location): Add new context argument. | |
17485 | * diagnostic.c (diagnostic_initialize): Initialize new members. | |
17486 | (diagnostic_converted_column): New function. | |
17487 | (maybe_line_and_column): Be willing to output a column of 0. | |
17488 | (diagnostic_get_location_text): Convert column number as per the new | |
17489 | options. | |
17490 | (diagnostic_report_current_module): Likewise. | |
17491 | (assert_location_text): Add origin and column_unit arguments for | |
17492 | testing the new functionality. | |
17493 | (test_diagnostic_get_location_text): Test the new functionality. | |
17494 | * doc/invoke.texi: Document the new options and behavior. | |
17495 | * input.h (location_compute_display_column): Add tabstop argument. | |
17496 | * input.c (location_compute_display_column): Likewise. | |
17497 | (test_cpp_utf8): Add selftests for tab expansion. | |
17498 | * tree-diagnostic-path.cc (default_tree_make_json_for_path): Pass the | |
17499 | new context argument to json_from_expanded_location(). | |
17500 | ||
17501 | 2020-07-14 Jakub Jelinek <jakub@redhat.com> | |
17502 | ||
17503 | PR middle-end/96194 | |
17504 | * expr.c (expand_constructor): Don't create temporary for store to | |
17505 | volatile MEM if exp has an addressable type. | |
17506 | ||
17507 | 2020-07-14 Nathan Sidwell <nathan@acm.org> | |
17508 | ||
17509 | * hash-map.h (hash_map::get): Note it is a pointer to value. | |
17510 | * incpath.h (incpath_kind): Align comments. | |
17511 | ||
17512 | 2020-07-14 Nathan Sidwell <nathan@acm.org> | |
17513 | ||
17514 | * tree-core.h (tree_decl_with_vis, tree_function_decl): | |
17515 | Note additional padding on 64-bits | |
17516 | * tree.c (cache_integer_cst): Note why no caching of enum literals. | |
17517 | (get_tree_code_name): Robustify error case. | |
17518 | ||
17519 | 2020-07-14 Nathan Sidwell <nathan@acm.org> | |
17520 | ||
17521 | * doc/gty.texi: Fic gt_cleare_cache name. | |
17522 | * doc/invoke.texi: Remove duplicate opindex Wabi-tag. | |
17523 | ||
17524 | 2020-07-14 Jakub Jelinek <jakub@redhat.com> | |
17525 | ||
17526 | * omp-general.h (struct omp_for_data): Add adjn1 member. | |
17527 | * omp-general.c (omp_extract_for_data): For non-rect loop, punt on | |
17528 | count computing if n1, n2 or step are not INTEGER_CST earlier. | |
17529 | Narrow the outer iterator range if needed so that non-rect loop | |
17530 | has at least one iteration for each outer range iteration. Compute | |
17531 | adjn1. | |
17532 | * omp-expand.c (expand_omp_for_init_vars): Use adjn1 if non-NULL | |
17533 | instead of the outer loop's n1. | |
17534 | ||
17535 | 2020-07-14 Matthias Klose <doko@ubuntu.com> | |
17536 | ||
17537 | PR lto/95604 | |
17538 | * lto-wrapper.c (merge_and_complain): Add decoded options as parameter, | |
17539 | error on different values for -fcf-protection. | |
17540 | (append_compiler_options): Pass -fcf-protection option. | |
17541 | (find_and_merge_options): Add decoded options as parameter, | |
17542 | pass decoded_options to merge_and_complain. | |
17543 | (run_gcc): Pass decoded options to find_and_merge_options. | |
17544 | * lto-opts.c (lto_write_options): Pass -fcf-protection option. | |
17545 | ||
17546 | 2020-07-13 Alan Modra <amodra@gmail.com> | |
17547 | ||
17548 | * config/rs6000/rs6000.md (sibcall_local): Merge sibcall_local32 | |
17549 | and sibcall_local64. | |
17550 | (sibcall_value_local): Similarly. | |
17551 | ||
17552 | 2020-07-13 Nathan Sidwell <nathan@acm.org> | |
17553 | ||
17554 | * Makefile.in (distclean): Remove long gone cxxmain.c | |
17555 | ||
17556 | 2020-07-13 H.J. Lu <hjl.tools@gmail.com> | |
17557 | ||
17558 | PR target/95443 | |
17559 | * config/i386/i386.md (cmpstrnsi): Pass a copy of the string | |
17560 | length to cmpstrnqi patterns. | |
17561 | ||
17562 | 2020-07-13 Jakub Jelinek <jakub@redhat.com> | |
17563 | ||
17564 | PR ipa/96130 | |
17565 | * ipa-fnsummary.c (analyze_function_body): Treat NULL bb->aux | |
17566 | as false predicate. | |
17567 | ||
17568 | 2020-07-13 Richard Biener <rguenther@suse.de> | |
17569 | ||
17570 | PR tree-optimization/96163 | |
17571 | * tree-vect-slp.c (vect_schedule_slp_instance): Put new stmts | |
17572 | at least after region begin. | |
17573 | ||
17574 | 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
17575 | ||
17576 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add | |
17577 | __ARM_FEATURE_PAC_DEFAULT support. | |
17578 | ||
17579 | 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
17580 | ||
17581 | PR target/94891 | |
17582 | * doc/extend.texi: Update the text for __builtin_return_address. | |
17583 | ||
17584 | 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
17585 | ||
17586 | PR target/94891 | |
17587 | * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled): | |
17588 | Disable return address signing if __builtin_eh_return is used. | |
17589 | ||
17590 | 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
17591 | ||
17592 | PR target/94891 | |
17593 | PR target/94791 | |
17594 | * config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare. | |
17595 | * config/aarch64/aarch64.c (aarch64_return_addr_rtx): New. | |
17596 | (aarch64_return_addr): Use aarch64_return_addr_rtx. | |
17597 | * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise. | |
17598 | ||
17599 | 2020-07-13 Richard Sandiford <richard.sandiford@arm.com> | |
17600 | ||
17601 | PR middle-end/95114 | |
17602 | * tree.h (virtual_method_call_p): Add a default-false parameter | |
17603 | that indicates whether the function is being called from dump | |
17604 | routines. | |
17605 | (obj_type_ref_class): Likewise. | |
17606 | * tree.c (virtual_method_call_p): Likewise. | |
17607 | * ipa-devirt.c (obj_type_ref_class): Likewise. Lazily add ODR | |
17608 | type information for the type when the parameter is false. | |
17609 | * tree-pretty-print.c (dump_generic_node): Update calls to | |
17610 | virtual_method_call_p and obj_type_ref_class accordingly. | |
17611 | ||
17612 | 2020-07-13 Julian Brown <julian@codesourcery.com> | |
17613 | Thomas Schwinge <thomas@codesourcery.com> | |
17614 | ||
17615 | * gimplify.c (gimplify_scan_omp_clauses): Do not strip | |
17616 | GOMP_MAP_TO_PSET/GOMP_MAP_POINTER for OpenACC enter/exit data | |
17617 | directives (see also PR92929). | |
17618 | ||
17619 | 2020-07-13 Roger Sayle <roger@nextmovesoftware.com> | |
17620 | ||
17621 | * convert.c (convert_to_integer_1): Narrow integer operations | |
17622 | even on targets that require explicit truncation instructions. | |
17623 | ||
17624 | 2020-07-13 Hans-Peter Nilsson <hp@axis.com> | |
17625 | ||
17626 | PR target/93372 | |
17627 | * config/cris/cris-passes.def: New file. | |
17628 | * config/cris/t-cris (PASSES_EXTRA): Add cris-passes.def. | |
17629 | * config/cris/cris.c: Add infrastructure bits and pass execute | |
17630 | function cris_postdbr_cmpelim. | |
17631 | * config/cris/cris-protos.h (make_pass_cris_postdbr_cmpelim): Declare. | |
17632 | ||
17633 | 2020-07-13 Hans-Peter Nilsson <hp@axis.com> | |
17634 | ||
17635 | * config/cris/t-cris: Remove gt-cris.h-related excessive cargo. | |
17636 | ||
17637 | 2020-07-13 Hans-Peter Nilsson <hp@axis.com> | |
17638 | ||
17639 | PR target/93372 | |
17640 | * config/cris/cris.md ("*add<mode>3_addi"): New splitter. | |
17641 | ("*addi_b_<mode>"): New pattern. | |
17642 | ("*addsi3<setnz>"): Remove stale %-related comment. | |
17643 | ||
17644 | 2020-07-13 Hans-Peter Nilsson <hp@axis.com> | |
17645 | ||
17646 | * config/cris/cris.md ("setnz_subst", "setnz_subst", "setcc_subst"): | |
17647 | Use match_dup in output template, not match_operand. | |
17648 | ||
17649 | 2020-07-13 Richard Biener <rguenther@suse.de> | |
17650 | ||
17651 | * var-tracking.c (bb_heap_node_t): Remove unused typedef. | |
17652 | (vt_find_locations): Eliminate visited bitmap in favor of | |
17653 | RPO order check. Dump statistics about the number of | |
17654 | local BB dataflow computes. | |
17655 | ||
17656 | 2020-07-13 Richard Biener <rguenther@suse.de> | |
17657 | ||
17658 | PR middle-end/94600 | |
17659 | * expr.c (expand_constructor): Make a temporary also if we're | |
17660 | storing to volatile memory. | |
17661 | ||
17662 | 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com> | |
17663 | ||
17664 | * config/rs6000/rs6000.md (rotl_unspec): New | |
17665 | define_insn_and_split. | |
17666 | ||
17667 | 2020-07-13 Xionghu Luo <luoxhu@linux.ibm.com> | |
17668 | ||
17669 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): | |
17670 | Move V4SF to V4SI, init vector like V4SI and move to V4SF back. | |
17671 | ||
17672 | 2020-07-11 Roger Sayle <roger@nextmovesoftware.com> | |
17673 | ||
17674 | * internal-fn.c (expand_mul_overflow): When checking for signed | |
17675 | overflow from a widening multiplication, we access the truncated | |
17676 | lowpart RES twice, so keep this value in a pseudo register. | |
17677 | ||
17678 | 2020-07-11 Richard Sandiford <richard.sandiford@arm.com> | |
17679 | ||
17680 | PR tree-optimization/96146 | |
17681 | * value-range.cc (value_range::set): Only decompose POLY_INT_CST | |
17682 | bounds to integers for VR_RANGE. Decay to VR_VARYING for anti-ranges | |
17683 | involving POLY_INT_CSTs. | |
17684 | ||
17685 | 2020-07-10 David Edelsohn <dje.gcc@gmail.com> | |
17686 | ||
17687 | PR target/77373 | |
17688 | * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Only | |
17689 | create named section for VAR_DECL or FUNCTION_DECL. | |
17690 | ||
17691 | 2020-07-10 Joseph Myers <joseph@codesourcery.com> | |
17692 | ||
17693 | * glimits.h [__STDC_VERSION__ > 201710L] (BOOL_MAX, BOOL_WIDTH): | |
17694 | New macros. | |
17695 | ||
17696 | 2020-07-10 Alexander Popov <alex.popov@linux.com> | |
17697 | ||
17698 | * shrink-wrap.c (try_shrink_wrapping): Improve debug output. | |
17699 | ||
17700 | 2020-07-10 Richard Sandiford <richard.sandiford@arm.com> | |
17701 | ||
17702 | PR middle-end/96151 | |
17703 | * expr.c (expand_expr_real_2): When reducing bit fields, | |
17704 | clear the target if it has a different mode from the expression. | |
17705 | (reduce_to_bit_field_precision): Don't do that here. Instead | |
17706 | assert that the target already has the correct mode. | |
17707 | ||
17708 | 2020-07-10 Richard Sandiford <richard.sandiford@arm.com> | |
17709 | ||
17710 | PR target/92789 | |
17711 | PR target/95726 | |
17712 | * config/arm/arm.c (arm_attribute_table): Add | |
17713 | "Advanced SIMD type". | |
17714 | (arm_comp_type_attributes): Check that the "Advanced SIMD type" | |
17715 | attributes are equal. | |
17716 | * config/arm/arm-builtins.c: Include stringpool.h and | |
17717 | attribs.h. | |
17718 | (arm_mangle_builtin_vector_type): Use the mangling recorded | |
17719 | in the "Advanced SIMD type" attribute. | |
17720 | (arm_init_simd_builtin_types): Add an "Advanced SIMD type" | |
17721 | attribute to each Advanced SIMD type, using the mangled type | |
17722 | as the attribute's single argument. | |
17723 | ||
17724 | 2020-07-10 Carl Love <cel@us.ibm.com> | |
17725 | ||
17726 | * config/rs6000/vsx.md (VSX_MM): New define_mode_iterator. | |
17727 | (VSX_MM4): New define_mode_iterator. | |
17728 | (vec_mtvsrbmi): New define_insn. | |
17729 | (vec_mtvsr_<mode>): New define_insn. | |
17730 | (vec_cntmb_<mode>): New define_insn. | |
17731 | (vec_extract_<mode>): New define_insn. | |
17732 | (vec_expand_<mode>): New define_insn. | |
17733 | (define_c_enum unspec): Add entries UNSPEC_MTVSBM, UNSPEC_VCNTMB, | |
17734 | UNSPEC_VEXTRACT, UNSPEC_VEXPAND. | |
17735 | * config/rs6000/altivec.h ( vec_genbm, vec_genhm, vec_genwm, | |
17736 | vec_gendm, vec_genqm, vec_cntm, vec_expandm, vec_extractm): Add | |
17737 | defines. | |
17738 | * config/rs6000/rs6000-builtin.def: Add defines BU_P10_2, BU_P10_1. | |
17739 | (BU_P10_1): Add definitions for mtvsrbm, mtvsrhm, mtvsrwm, | |
17740 | mtvsrdm, mtvsrqm, vexpandmb, vexpandmh, vexpandmw, vexpandmd, | |
17741 | vexpandmq, vextractmb, vextractmh, vextractmw, vextractmd, vextractmq. | |
17742 | (BU_P10_2): Add definitions for cntmbb, cntmbh, cntmbw, cntmbd. | |
17743 | (BU_P10_OVERLOAD_1): Add definitions for mtvsrbm, mtvsrhm, | |
17744 | mtvsrwm, mtvsrdm, mtvsrqm, vexpandm, vextractm. | |
17745 | (BU_P10_OVERLOAD_2): Add defition for cntm. | |
17746 | * config/rs6000/rs6000-call.c (rs6000_expand_binop_builtin): Add | |
17747 | checks for CODE_FOR_vec_cntmbb_v16qi, CODE_FOR_vec_cntmb_v8hi, | |
17748 | CODE_FOR_vec_cntmb_v4si, CODE_FOR_vec_cntmb_v2di. | |
17749 | (altivec_overloaded_builtins): Add overloaded argument entries for | |
17750 | P10_BUILTIN_VEC_MTVSRBM, P10_BUILTIN_VEC_MTVSRHM, | |
17751 | P10_BUILTIN_VEC_MTVSRWM, P10_BUILTIN_VEC_MTVSRDM, | |
17752 | P10_BUILTIN_VEC_MTVSRQM, P10_BUILTIN_VEC_VCNTMBB, | |
17753 | P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH, | |
17754 | P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD, | |
17755 | P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH, | |
17756 | P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD, | |
17757 | P10_BUILTIN_VEXPANDMQ, P10_BUILTIN_VEXTRACTMB, | |
17758 | P10_BUILTIN_VEXTRACTMH, P10_BUILTIN_VEXTRACTMW, | |
17759 | P10_BUILTIN_VEXTRACTMD, P10_BUILTIN_VEXTRACTMQ. | |
17760 | (builtin_function_type): Add case entries for P10_BUILTIN_MTVSRBM, | |
17761 | P10_BUILTIN_MTVSRHM, P10_BUILTIN_MTVSRWM, P10_BUILTIN_MTVSRDM, | |
17762 | P10_BUILTIN_MTVSRQM, P10_BUILTIN_VCNTMBB, P10_BUILTIN_VCNTMBH, | |
17763 | P10_BUILTIN_VCNTMBW, P10_BUILTIN_VCNTMBD, | |
17764 | P10_BUILTIN_VEXPANDMB, P10_BUILTIN_VEXPANDMH, | |
17765 | P10_BUILTIN_VEXPANDMW, P10_BUILTIN_VEXPANDMD, | |
17766 | P10_BUILTIN_VEXPANDMQ. | |
17767 | * config/rs6000/rs6000-builtin.def (altivec_overloaded_builtins): Add | |
17768 | entries for MTVSRBM, MTVSRHM, MTVSRWM, MTVSRDM, MTVSRQM, VCNTM, | |
17769 | VEXPANDM, VEXTRACTM. | |
17770 | ||
17771 | 2020-07-10 Bill Seurer, 507-253-3502, seurer@us.ibm.com <(no_default)> | |
17772 | ||
17773 | PR target/95581 | |
17774 | * config/rs6000/rs6000-call.c: Add new type v16qi_ftype_pcvoid. | |
17775 | (altivec_init_builtins) Change __builtin_altivec_mask_for_load to use | |
17776 | v16qi_ftype_pcvoid with correct number of parameters. | |
17777 | ||
17778 | 2020-07-10 H.J. Lu <hjl.tools@gmail.com> | |
17779 | ||
17780 | PR target/96144 | |
17781 | * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Check | |
17782 | TARGET_AVX512VL when enabling FMA. | |
17783 | ||
17784 | 2020-07-10 Andrea Corallo <andrea.corallo@arm.com> | |
17785 | Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
17786 | Iain Apreotesei <iain.apreotesei@arm.com> | |
17787 | ||
17788 | * config/arm/arm-protos.h (arm_target_insn_ok_for_lob): New | |
17789 | prototype. | |
17790 | * config/arm/arm.c (TARGET_INVALID_WITHIN_DOLOOP): Define. | |
17791 | (arm_invalid_within_doloop): Implement invalid_within_doloop hook. | |
17792 | (arm_target_insn_ok_for_lob): New function. | |
17793 | * config/arm/arm.h (TARGET_HAVE_LOB): Define macro. | |
17794 | * config/arm/thumb2.md (*doloop_end_internal, doloop_begin) | |
17795 | (dls_insn): Add new patterns. | |
17796 | (doloop_end): Modify to select LR when LOB is available. | |
17797 | * config/arm/unspecs.md: Add new unspec. | |
17798 | * doc/sourcebuild.texi (arm_v8_1_lob_ok) | |
17799 | (arm_thumb2_ok_no_arm_v8_1_lob): Document new target supports | |
17800 | options. | |
17801 | ||
17802 | 2020-07-10 Richard Biener <rguenther@suse.de> | |
17803 | ||
17804 | PR tree-optimization/96133 | |
17805 | * gimple-fold.c (fold_array_ctor_reference): Do not | |
17806 | recurse to folding a CTOR that does not fully cover the | |
17807 | asked for object. | |
17808 | ||
17809 | 2020-07-10 Cui,Lili <lili.cui@intel.com> | |
17810 | ||
17811 | * common/config/i386/cpuinfo.h | |
17812 | (get_intel_cpu): Handle sapphirerapids. | |
17813 | * common/config/i386/i386-common.c | |
17814 | (processor_names): Add sapphirerapids and alderlake. | |
17815 | (processor_alias_table): Add sapphirerapids and alderlake. | |
17816 | * common/config/i386/i386-cpuinfo.h | |
17817 | (processor_subtypes): Add INTEL_COREI7_ALDERLAKE and | |
17818 | INTEL_COREI7_ALDERLAKE. | |
17819 | * config.gcc: Add -march=sapphirerapids and alderlake. | |
17820 | * config/i386/driver-i386.c | |
17821 | (host_detect_local_cpu) Handle sapphirerapids and alderlake. | |
17822 | * config/i386/i386-c.c | |
17823 | (ix86_target_macros_internal): Handle sapphirerapids and alderlake. | |
17824 | * config/i386/i386-options.c | |
17825 | (m_SAPPHIRERAPIDS) : Define. | |
17826 | (m_ALDERLAKE): Ditto. | |
17827 | (m_CORE_AVX512) : Add m_SAPPHIRERAPIDS. | |
17828 | (processor_cost_table): Add sapphirerapids and alderlake. | |
17829 | (ix86_option_override_internal) Handle PTA_WAITPKG, PTA_ENQCMD, | |
17830 | PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK. | |
17831 | * config/i386/i386.h | |
17832 | (ix86_size_cost) : Define SAPPHIRERAPIDS and ALDERLAKE. | |
17833 | (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and | |
17834 | PROCESSOR_ALDERLAKE. | |
17835 | (PTA_ENQCMD): New. | |
17836 | (PTA_CLDEMOTE): Ditto. | |
17837 | (PTA_SERIALIZE): Ditto. | |
17838 | (PTA_TSXLDTRK): New. | |
17839 | (PTA_SAPPHIRERAPIDS): Ditto. | |
17840 | (PTA_ALDERLAKE): Ditto. | |
17841 | (processor_type) : Add PROCESSOR_SAPPHIRERAPIDS and | |
17842 | PROCESSOR_ALDERLAKE. | |
17843 | * doc/extend.texi: Add sapphirerapids and alderlake. | |
17844 | * doc/invoke.texi: Add sapphirerapids and alderlake. | |
17845 | ||
17846 | 2020-07-10 Martin Liska <mliska@suse.cz> | |
17847 | ||
17848 | * dumpfile.c [profile-report]: Add new profile dump. | |
17849 | * dumpfile.h (enum tree_dump_index): Ad TDI_profile_report. | |
17850 | * passes.c (pass_manager::dump_profile_report): Change stderr | |
17851 | to dump_file. | |
17852 | ||
17853 | 2020-07-10 Kewen Lin <linkw@linux.ibm.com> | |
17854 | ||
17855 | * tree-vect-loop.c (vect_transform_loop): Use LOOP_VINFO_NITERS which | |
17856 | is adjusted by considering peeled prologue for non | |
17857 | vect_use_loop_mask_for_alignment_p cases. | |
17858 | ||
17859 | 2020-07-09 Peter Bergner <bergner@linux.ibm.com> | |
17860 | ||
17861 | PR target/96125 | |
17862 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Define the MMA | |
17863 | specific types __vector_quad and __vector_pair, and initialize the | |
17864 | MMA built-ins if TARGET_EXTRA_BUILTINS is set. | |
17865 | (mma_init_builtins): Don't test for mask set in rs6000_builtin_mask. | |
17866 | Remove now unneeded mask variable. | |
17867 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Add the | |
17868 | OPTION_MASK_MMA flag for power10 if not already set. | |
17869 | ||
17870 | 2020-07-09 Richard Biener <rguenther@suse.de> | |
17871 | ||
17872 | PR tree-optimization/96133 | |
17873 | * tree-vect-slp.c (vect_build_slp_tree_1): Compare load_p | |
17874 | status between stmts. | |
17875 | ||
17876 | 2020-07-09 H.J. Lu <hjl.tools@gmail.com> | |
17877 | ||
17878 | PR target/88713 | |
17879 | * config/i386/i386-expand.c (ix86_emit_swsqrtsf): Enable FMA. | |
17880 | * config/i386/sse.md (VF_AVX512VL_VF1_128_256): New. | |
17881 | (rsqrt<mode>2): Replace VF1_128_256 with VF_AVX512VL_VF1_128_256. | |
17882 | (rsqrtv16sf2): Removed. | |
17883 | ||
17884 | 2020-07-09 Richard Biener <rguenther@suse.de> | |
17885 | ||
17886 | * tree-vectorizer.h (vect_verify_datarefs_alignment): Remove. | |
17887 | (vect_slp_analyze_and_verify_instance_alignment): Rename to ... | |
17888 | (vect_slp_analyze_instance_alignment): ... this. | |
17889 | * tree-vect-data-refs.c (verify_data_ref_alignment): Remove. | |
17890 | (vect_verify_datarefs_alignment): Likewise. | |
17891 | (vect_enhance_data_refs_alignment): Do not call | |
17892 | vect_verify_datarefs_alignment. | |
17893 | (vect_slp_analyze_node_alignment): Rename from | |
17894 | vect_slp_analyze_and_verify_node_alignment and do not | |
17895 | call verify_data_ref_alignment. | |
17896 | (vect_slp_analyze_instance_alignment): Rename from | |
17897 | vect_slp_analyze_and_verify_instance_alignment. | |
17898 | * tree-vect-stmts.c (vectorizable_store): Dump when | |
17899 | we vectorize an unaligned access. | |
17900 | (vectorizable_load): Likewise. | |
17901 | * tree-vect-loop.c (vect_analyze_loop_2): Do not call | |
17902 | vect_verify_datarefs_alignment. | |
17903 | * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust. | |
17904 | ||
17905 | 2020-07-09 Bin Cheng <bin.cheng@linux.alibaba.com> | |
17906 | ||
17907 | PR tree-optimization/95804 | |
17908 | * tree-loop-distribution.c (break_alias_scc_partitions): Force | |
17909 | negative post order to reduction partition. | |
17910 | ||
17911 | 2020-07-09 Jakub Jelinek <jakub@redhat.com> | |
17912 | ||
17913 | * omp-general.h (struct omp_for_data): Add min_inner_iterations | |
17914 | and factor members. | |
17915 | * omp-general.c (omp_extract_for_data): Initialize them and remember | |
17916 | them in OMP_CLAUSE_COLLAPSE_COUNT if needed and restore from there. | |
17917 | * omp-expand.c (expand_omp_for_init_counts): Fix up computation of | |
17918 | counts[fd->last_nonrect] if fd->loop.n2 is INTEGER_CST. | |
17919 | (expand_omp_for_init_vars): For | |
17920 | fd->first_nonrect + 1 == fd->last_nonrect loops with for now | |
17921 | INTEGER_CST fd->loop.n2 find quadratic equation roots instead of | |
17922 | using fallback method when possible. | |
17923 | ||
17924 | 2020-07-09 Omar Tahir <omar.tahir@arm.com> | |
17925 | ||
17926 | * ira.c (move_unallocated_pseudos): Zero first_moveable_pseudo and | |
17927 | last_moveable_pseudo before returning. | |
17928 | ||
17929 | 2020-07-09 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
17930 | ||
17931 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add | |
17932 | __ARM_FEATURE_BTI_DEFAULT support. | |
17933 | ||
17934 | 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com> | |
17935 | ||
17936 | * config/aarch64/aarch64-protos.h (aarch64_indirect_call_asm): | |
17937 | New declaration. | |
17938 | * config/aarch64/aarch64.c (aarch64_regno_regclass): Handle new | |
17939 | stub registers class. | |
17940 | (aarch64_class_max_nregs): Likewise. | |
17941 | (aarch64_register_move_cost): Likewise. | |
17942 | (aarch64_sls_shared_thunks): Global array to store stub labels. | |
17943 | (aarch64_sls_emit_function_stub): New. | |
17944 | (aarch64_create_blr_label): New. | |
17945 | (aarch64_sls_emit_blr_function_thunks): New. | |
17946 | (aarch64_sls_emit_shared_blr_thunks): New. | |
17947 | (aarch64_asm_file_end): New. | |
17948 | (aarch64_indirect_call_asm): New. | |
17949 | (TARGET_ASM_FILE_END): Use aarch64_asm_file_end. | |
17950 | (TARGET_ASM_FUNCTION_EPILOGUE): Use | |
17951 | aarch64_sls_emit_blr_function_thunks. | |
17952 | * config/aarch64/aarch64.h (STB_REGNUM_P): New. | |
17953 | (enum reg_class): Add STUB_REGS class. | |
17954 | (machine_function): Introduce `call_via` array for | |
17955 | function-local stub labels. | |
17956 | * config/aarch64/aarch64.md (*call_insn, *call_value_insn): Use | |
17957 | aarch64_indirect_call_asm to emit code when hardening BLR | |
17958 | instructions. | |
17959 | * config/aarch64/constraints.md (Ucr): New constraint | |
17960 | representing registers for indirect calls. Is GENERAL_REGS | |
17961 | usually, and STUB_REGS when hardening BLR instruction against | |
17962 | SLS. | |
17963 | * config/aarch64/predicates.md (aarch64_general_reg): STUB_REGS class | |
17964 | is also a general register. | |
17965 | ||
17966 | 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com> | |
17967 | ||
17968 | * config/aarch64/aarch64-protos.h (aarch64_sls_barrier): New. | |
17969 | * config/aarch64/aarch64.c (aarch64_output_casesi): Emit | |
17970 | speculation barrier after BR instruction if needs be. | |
17971 | (aarch64_trampoline_init): Handle ptr_mode value & adjust size | |
17972 | of code copied. | |
17973 | (aarch64_sls_barrier): New. | |
17974 | (aarch64_asm_trampoline_template): Add needed barriers. | |
17975 | * config/aarch64/aarch64.h (AARCH64_ISA_SB): New. | |
17976 | (TARGET_SB): New. | |
17977 | (TRAMPOLINE_SIZE): Account for barrier. | |
17978 | * config/aarch64/aarch64.md (indirect_jump, *casesi_dispatch, | |
17979 | simple_return, *do_return, *sibcall_insn, *sibcall_value_insn): | |
17980 | Emit barrier if needs be, also account for possible barrier using | |
17981 | "sls_length" attribute. | |
17982 | (sls_length): New attribute. | |
17983 | (length): Determine default using any non-default sls_length | |
17984 | value. | |
17985 | ||
17986 | 2020-07-09 Matthew Malcomson <matthew.malcomson@arm.com> | |
17987 | ||
17988 | * config/aarch64/aarch64-protos.h (aarch64_harden_sls_retbr_p): | |
17989 | New. | |
17990 | (aarch64_harden_sls_blr_p): New. | |
17991 | * config/aarch64/aarch64.c (enum aarch64_sls_hardening_type): | |
17992 | New. | |
17993 | (aarch64_harden_sls_retbr_p): New. | |
17994 | (aarch64_harden_sls_blr_p): New. | |
17995 | (aarch64_validate_sls_mitigation): New. | |
17996 | (aarch64_override_options): Parse options for SLS mitigation. | |
17997 | * config/aarch64/aarch64.opt (-mharden-sls): New option. | |
17998 | * doc/invoke.texi: Document new option. | |
17999 | ||
18000 | 2020-07-09 Kewen Lin <linkw@linux.ibm.com> | |
18001 | ||
18002 | * tree-vect-stmts.c (vectorizable_condition): Prohibit vectorization | |
18003 | with partial vectors explicitly excepting for EXTRACT_LAST_REDUCTION | |
18004 | or nested-cycle reduction. | |
18005 | ||
18006 | 2020-07-09 Kewen Lin <linkw@linux.ibm.com> | |
18007 | ||
18008 | * tree-vect-loop.c (vect_analyze_loop_2): Update dumping string | |
18009 | for fully masking to be more common. | |
18010 | ||
18011 | 2020-07-09 Kito Cheng <kito.cheng@sifive.com> | |
18012 | ||
18013 | * config/riscv/riscv.md (get_thread_pointer<mode>): New. | |
18014 | (TP_REGNUM): Ditto. | |
18015 | * doc/extend.texi (Target Builtins): Add RISC-V built-in section. | |
18016 | Document __builtin_thread_pointer. | |
18017 | ||
18018 | 2020-07-09 Kito Cheng <kito.cheng@sifive.com> | |
18019 | ||
18020 | * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls): | |
18021 | Abort if any arguments on stack. | |
18022 | ||
18023 | 2020-07-08 Eric Botcazou <ebotcazou@adacore.com> | |
18024 | ||
18025 | * gimple-fold.c (gimple_fold_builtin_memory_op): Do not fold if | |
18026 | either type has reverse scalar storage order. | |
18027 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not propagate through | |
18028 | a memory copy if either type has reverse scalar storage order. | |
18029 | ||
18030 | 2020-07-08 Tobias Burnus <tobias@codesourcery.com> | |
18031 | ||
18032 | * config/gcn/mkoffload.c (compile_native, main): Pass -fPIC/-fpic | |
18033 | on to the native compiler, if used. | |
18034 | * config/nvptx/mkoffload.c (compile_native, main): Likewise. | |
18035 | ||
18036 | 2020-07-08 Will Schmidt <will_schmidt@vnet.ibm.com> | |
18037 | ||
18038 | * config/rs6000/altivec.h (vec_vmsumudm): New define. | |
18039 | * config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec. | |
18040 | (altivec_vmsumudm): New define_insn. | |
18041 | * config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3 | |
18042 | entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry. | |
18043 | * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add entries for | |
18044 | ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum. | |
18045 | * doc/extend.texi: Add document for vmsumudm behind vmsum. | |
18046 | ||
18047 | 2020-07-08 Richard Biener <rguenther@suse.de> | |
18048 | ||
18049 | * tree-vect-stmts.c (get_group_load_store_type): Pass | |
18050 | in the SLP node and the alignment support scheme output. | |
18051 | Set that. | |
18052 | (get_load_store_type): Likewise. | |
18053 | (vectorizable_store): Adjust. | |
18054 | (vectorizable_load): Likewise. | |
18055 | ||
18056 | 2020-07-08 Richard Sandiford <richard.sandiford@arm.com> | |
18057 | ||
18058 | PR middle-end/95694 | |
18059 | * expr.c (expand_expr_real_2): Get the mode from the type rather | |
18060 | than the rtx, and assert that it is consistent with the mode of | |
18061 | the rtx (where known). Optimize all constant integers, not just | |
18062 | those that can be represented in poly_int64. | |
18063 | ||
18064 | 2020-07-08 Kewen Lin <linkw@linux.ibm.com> | |
18065 | ||
18066 | * config/rs6000/vsx.md (len_load_v16qi): New define_expand. | |
18067 | (len_store_v16qi): Likewise. | |
18068 | ||
18069 | 2020-07-08 Kewen Lin <linkw@linux.ibm.com> | |
18070 | ||
18071 | * doc/md.texi (len_load_@var{m}): Document. | |
18072 | (len_store_@var{m}): Likewise. | |
18073 | * internal-fn.c (len_load_direct): New macro. | |
18074 | (len_store_direct): Likewise. | |
18075 | (expand_len_load_optab_fn): Likewise. | |
18076 | (expand_len_store_optab_fn): Likewise. | |
18077 | (direct_len_load_optab_supported_p): Likewise. | |
18078 | (direct_len_store_optab_supported_p): Likewise. | |
18079 | (expand_mask_load_optab_fn): New macro. Original renamed to ... | |
18080 | (expand_partial_load_optab_fn): ... here. Add handlings for | |
18081 | len_load_optab. | |
18082 | (expand_mask_store_optab_fn): New macro. Original renamed to ... | |
18083 | (expand_partial_store_optab_fn): ... here. Add handlings for | |
18084 | len_store_optab. | |
18085 | (internal_load_fn_p): Handle IFN_LEN_LOAD. | |
18086 | (internal_store_fn_p): Handle IFN_LEN_STORE. | |
18087 | (internal_fn_stored_value_index): Handle IFN_LEN_STORE. | |
18088 | * internal-fn.def (LEN_LOAD): New internal function. | |
18089 | (LEN_STORE): Likewise. | |
18090 | * optabs.def (len_load_optab, len_store_optab): New optab. | |
18091 | ||
18092 | 2020-07-07 Anton Youdkevitch <anton.youdkevitch@bell-sw.com> | |
18093 | ||
18094 | * config/aarch64/aarch64.c (thunderx2t99_regmove_cost, | |
18095 | thunderx2t99_vector_cost): Likewise. | |
18096 | ||
18097 | 2020-07-07 Richard Biener <rguenther@suse.de> | |
18098 | ||
18099 | * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix | |
18100 | group overlap condition to allow negative step DR groups. | |
18101 | * tree-vect-stmts.c (get_group_load_store_type): For | |
18102 | multi element SLP groups force VMAT_STRIDED_SLP when the step | |
18103 | is negative. | |
18104 | ||
18105 | 2020-07-07 Qian Jianhua <qianjh@cn.fujitsu.com> | |
18106 | ||
18107 | * doc/generic.texi: Fix typo. | |
18108 | ||
18109 | 2020-07-07 Richard Biener <rguenther@suse.de> | |
18110 | ||
18111 | * lto-streamer-out.c (cmp_symbol_files): Use the computed | |
18112 | order map to sort symbols from the same sub-file together. | |
18113 | (lto_output): Compute a map of sub-file to an order number | |
18114 | it appears in the symbol output array. | |
18115 | ||
18116 | 2020-07-06 Richard Biener <rguenther@suse.de> | |
18117 | ||
18118 | PR tree-optimization/96075 | |
18119 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use | |
18120 | TYPE_SIZE_UNIT of the vector component type instead of DR_STEP | |
18121 | for the misalignment calculation for negative step. | |
18122 | ||
18123 | 2020-07-06 Roger Sayle <roger@nextmovesoftware.com> | |
18124 | ||
18125 | * config/nvptx/nvptx.md (*vadd_addsi4): New instruction. | |
18126 | (*vsub_addsi4): New instruction. | |
18127 | ||
18128 | 2020-07-06 Hans-Peter Nilsson <hp@axis.com> | |
18129 | ||
18130 | * config/cris/cris.md (movulsr): New peephole2. | |
18131 | ||
18132 | 2020-07-06 Hans-Peter Nilsson <hp@axis.com> | |
18133 | ||
18134 | * config/cris/sync.md ("cris_atomic_fetch_<atomic_op_name><mode>_1"): | |
18135 | Correct gcc_assert of overlapping operands. | |
18136 | ||
18137 | 2020-07-05 Hans-Peter Nilsson <hp@axis.com> | |
18138 | ||
18139 | * config/cris/cris.c (cris_select_cc_mode): Always return | |
18140 | CC_NZmode for matching comparisons. Clarify comments. | |
18141 | * config/cris/cris-modes.def: Clarify mode comment. | |
18142 | * config/cris/cris.md (plusminus, plusminusumin, plusumin): New | |
18143 | code iterators. | |
18144 | (addsub, addsubbo, nd): New code iterator attributes. | |
18145 | ("*<addsub><su>qihi"): Rename from "*extopqihi". Use code | |
18146 | iterator constructs instead of match_operator constructs. | |
18147 | ("*<addsubbo><su><nd><mode>si<setnz>"): Similar from | |
18148 | "*extop<mode>si<setnz>". | |
18149 | ("*add<su>qihi_swap"): Similar from "*addxqihi_swap". | |
18150 | ("*<addsubbo><su><nd><mode>si<setnz>_swap"): Similar from | |
18151 | "*extop<mode>si<setnz>_swap". | |
18152 | ||
18153 | 2020-07-05 Hans-Peter Nilsson <hp@axis.com> | |
18154 | ||
18155 | * config/cris/cris.md ("*extopqihi", "*extop<mode>si<setnz>_swap") | |
18156 | ("*extop<mode>si<setnz>", "*addxqihi_swap"): Reinstate. | |
18157 | ||
18158 | 2020-07-03 Eric Botcazou <ebotcazou@adacore.com> | |
18159 | ||
18160 | * gimple-fold.c (gimple_fold_builtin_memory_op): Fold calls that | |
18161 | were initially created for the assignment of a variable-sized | |
18162 | object and whose source is now a string constant. | |
18163 | * gimple-ssa-store-merging.c (struct merged_store_group): Document | |
18164 | STRING_CST for rhs_code field. | |
18165 | Add string_concatenation boolean field. | |
18166 | (merged_store_group::merged_store_group): Initialize it as well as | |
18167 | bit_insertion here. | |
18168 | (merged_store_group::do_merge): Set it upon seeing a STRING_CST. | |
18169 | Also set bit_insertion here upon seeing a BIT_INSERT_EXPR. | |
18170 | (merged_store_group::apply_stores): Clear it for small regions. | |
18171 | Do not create a power-of-2-sized buffer if it is still true. | |
18172 | And do not set bit_insertion here again. | |
18173 | (encode_tree_to_bitpos): Deal with BLKmode for the expression. | |
18174 | (merged_store_group::can_be_merged_into): Deal with STRING_CST. | |
18175 | (imm_store_chain_info::coalesce_immediate_stores): Set bit_insertion | |
18176 | to true after changing MEM_REF stores into BIT_INSERT_EXPR stores. | |
18177 | (count_multiple_uses): Return 0 for STRING_CST. | |
18178 | (split_group): Do not split the group for a string concatenation. | |
18179 | (imm_store_chain_info::output_merged_store): Constify and rename | |
18180 | some local variables. Build an array type as destination type | |
18181 | for a string concatenation, as well as a zero mask, and call | |
18182 | build_string to build the source. | |
18183 | (lhs_valid_for_store_merging_p): Return true for VIEW_CONVERT_EXPR. | |
18184 | (pass_store_merging::process_store): Accept STRING_CST on the RHS. | |
18185 | * gimple.h (gimple_call_alloca_for_var_p): New accessor function. | |
18186 | * gimplify.c (gimplify_modify_expr_to_memcpy): Set alloca_for_var. | |
18187 | * tree.h (CALL_ALLOCA_FOR_VAR_P): Document it for BUILT_IN_MEMCPY. | |
18188 | ||
18189 | 2020-07-03 Martin Jambor <mjambor@suse.cz> | |
18190 | ||
18191 | PR ipa/96040 | |
18192 | * ipa-sra.c (all_callee_accesses_present_p): Do not accept type | |
18193 | mismatched accesses. | |
18194 | ||
18195 | 2020-07-03 Roger Sayle <roger@nextmovesoftware.com> | |
18196 | ||
18197 | * config/nvptx/nvptx.md (popcount<mode>2): New instructions. | |
18198 | (mulhishi3, mulsidi3, umulhisi3, umulsidi3): New instructions. | |
18199 | ||
18200 | 2020-07-03 Martin Liska <mliska@suse.cz> | |
18201 | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
18202 | ||
18203 | PR bootstrap/96046 | |
18204 | * gcov-dump.c (tag_function): Use gcov_position_t | |
18205 | type. | |
18206 | ||
18207 | 2020-07-03 Richard Biener <rguenther@suse.de> | |
18208 | ||
18209 | PR tree-optimization/96037 | |
18210 | * tree-vect-stmts.c (vect_is_simple_use): Initialize *slp_def. | |
18211 | ||
18212 | 2020-07-03 Richard Biener <rguenther@suse.de> | |
18213 | ||
18214 | * tree-vect-slp.c (vect_bb_slp_scalar_cost): Cost the | |
18215 | original non-pattern stmts, look at the pattern stmt | |
18216 | vectorization status. | |
18217 | ||
18218 | 2020-07-03 Andrew Stubbs <ams@codesourcery.com> | |
18219 | ||
18220 | * config/gcn/gcn-valu.md (fold_left_plus_<mode>): New. | |
18221 | ||
18222 | 2020-07-03 Richard Biener <rguenther@suse.de> | |
18223 | ||
18224 | * tree-vectorizer.h (vec_info::insert_on_entry): New. | |
18225 | (vec_info::insert_seq_on_entry): Likewise. | |
18226 | * tree-vectorizer.c (vec_info::insert_on_entry): Implement. | |
18227 | (vec_info::insert_seq_on_entry): Likewise. | |
18228 | * tree-vect-stmts.c (vect_init_vector_1): Use | |
18229 | vec_info::insert_on_entry. | |
18230 | (vect_finish_stmt_generation): Set modified bit after | |
18231 | adjusting VUSE. | |
18232 | * tree-vect-slp.c (vect_create_constant_vectors): Simplify | |
18233 | by using vec_info::insert_seq_on_entry and bypassing | |
18234 | vec_init_vector. | |
18235 | (vect_schedule_slp_instance): Deal with all-constant | |
18236 | children later. | |
18237 | ||
18238 | 2020-07-03 Roger Sayle <roger@nextmovesoftware.com> | |
18239 | Tom de Vries <tdevries@suse.de> | |
18240 | ||
18241 | PR target/90932 | |
18242 | * config/nvptx/nvptx.c (nvptx_vector_alignment): Use tree_to_uhwi | |
18243 | to access TYPE_SIZE (type). Return at least the mode's alignment. | |
18244 | ||
18245 | 2020-07-02 Richard Biener <rguenther@suse.de> | |
18246 | ||
18247 | PR tree-optimization/96028 | |
18248 | * tree-vect-slp.c (vect_slp_convert_to_external): Make sure | |
18249 | we have scalar stmts to use. | |
18250 | (vect_slp_analyze_node_operations): When analyzing a child | |
18251 | failed try externalizing the parent node. | |
18252 | ||
18253 | 2020-07-02 Martin Jambor <mjambor@suse.cz> | |
18254 | ||
18255 | PR debug/95343 | |
18256 | * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Adjust | |
18257 | argument index if necessary. | |
18258 | ||
18259 | 2020-07-02 Martin Liska <mliska@suse.cz> | |
18260 | ||
18261 | PR middle-end/95830 | |
18262 | * tree-vect-generic.c (expand_vector_condition): Forward declaration. | |
18263 | (expand_vector_comparison): Do not expand a comparison if all | |
18264 | uses are consumed by a VEC_COND_EXPR. | |
18265 | (expand_vector_operation): Change void return type to bool. | |
18266 | (expand_vector_operations_1): Pass dce_ssa_names. | |
18267 | ||
18268 | 2020-07-02 Ilya Leoshkevich <iii@linux.ibm.com> | |
18269 | ||
18270 | PR bootstrap/95700 | |
18271 | * system.h (NULL): Redefine to nullptr. | |
18272 | ||
18273 | 2020-07-02 Jakub Jelinek <jakub@redhat.com> | |
18274 | ||
18275 | PR tree-optimization/95857 | |
18276 | * tree-cfg.c (group_case_labels_stmt): When removing an unreachable | |
18277 | base_bb, remember all forced and non-local labels on it and later | |
18278 | treat those as if they have NULL label_to_block. Formatting fix. | |
18279 | Fix a comment typo. | |
18280 | ||
18281 | 2020-07-02 Richard Biener <rguenther@suse.de> | |
18282 | ||
18283 | PR tree-optimization/96022 | |
18284 | * tree-vect-stmts.c (vectorizable_shift): Only use the | |
18285 | first vector stmt when extracting the scalar shift amount. | |
18286 | * tree-vect-slp.c (vect_build_slp_tree_2): Also build unary | |
18287 | nodes with all-scalar children from scalars but not stores. | |
18288 | (vect_analyze_slp_instance): Mark the node not failed. | |
18289 | ||
18290 | 2020-07-02 Felix Yang <felix.yang@huawei.com> | |
18291 | ||
18292 | PR tree-optimization/95961 | |
18293 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use the | |
18294 | number of scalars instead of the number of vectors as an upper bound | |
18295 | for the loop saving info about DR in the hash table. Remove unused | |
18296 | local variables. | |
18297 | ||
18298 | 2020-07-02 Jakub Jelinek <jakub@redhat.com> | |
18299 | ||
18300 | * omp-expand.c (expand_omp_for): Diagnose non-rectangular loops with | |
18301 | invalid steps - ((m2 - m1) * incr_outer) % incr must be 0 in valid | |
18302 | OpenMP non-rectangular loops. Use XALLOCAVEC. | |
18303 | ||
18304 | 2020-07-02 Martin Liska <mliska@suse.cz> | |
18305 | ||
18306 | PR gcov-profile/95348 | |
18307 | * coverage.c (read_counts_file): Read only COUNTERS that are | |
18308 | not all-zero. | |
18309 | * gcov-dump.c (tag_function): Change signature from unsigned to | |
18310 | signed integer. | |
18311 | (tag_blocks): Likewise. | |
18312 | (tag_arcs): Likewise. | |
18313 | (tag_lines): Likewise. | |
18314 | (tag_counters): Likewise. | |
18315 | (tag_summary): Likewise. | |
18316 | * gcov.c (read_count_file): Read all non-zero counters | |
18317 | sensitively. | |
18318 | ||
18319 | 2020-07-02 Kito Cheng <kito.cheng@sifive.com> | |
18320 | ||
18321 | * config/riscv/multilib-generator (arch_canonicalize): Handle | |
18322 | multi-letter extension. | |
18323 | Using underline as separator between different extensions. | |
18324 | ||
18325 | 2020-07-01 Pip Cet <pipcet@gmail.com> | |
18326 | ||
18327 | * spellcheck.c (test_data): Add problematic strings. | |
18328 | (test_metric_conditions): Don't test the triangle inequality | |
18329 | condition, which our distance function does not satisfy. | |
18330 | ||
18331 | 2020-07-01 Omar Tahir <omar.tahir@arm.com> | |
18332 | ||
18333 | * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Always | |
18334 | generate a BTI instruction. | |
18335 | ||
18336 | 2020-07-01 Jeff Law <law@redhat.com> | |
18337 | ||
18338 | PR tree-optimization/94882 | |
18339 | * match.pd (x & y) - (x | y) - 1 -> ~(x ^ y): New simplification. | |
18340 | ||
18341 | 2020-07-01 Jeff Law <law@redhat.com> | |
18342 | ||
18343 | * config/m68k/m68k.c (m68k_output_btst): Drop "register" keyword. | |
18344 | (emit_move_sequence, output_iorsi3, output_xorsi3): Likewise. | |
18345 | ||
18346 | 2020-07-01 Andrea Corallo <andrea.corallo@arm.com> | |
18347 | ||
18348 | * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add enums | |
18349 | for 64bits fpsr/fpcr getter setters builtin variants. | |
18350 | (aarch64_init_fpsr_fpcr_builtins): New function. | |
18351 | (aarch64_general_init_builtins): Modify to make use of the later. | |
18352 | (aarch64_expand_fpsr_fpcr_setter): New function. | |
18353 | (aarch64_general_expand_builtin): Modify to make use of the later. | |
18354 | * config/aarch64/aarch64.md (@aarch64_set_<fpscr_name><GPI:mode>) | |
18355 | (@aarch64_get_<fpscr_name><GPI:mode>): New patterns replacing and | |
18356 | generalizing 'get_fpcr', 'set_fpsr'. | |
18357 | * config/aarch64/iterators.md (GET_FPSCR, SET_FPSCR): New int | |
18358 | iterators. | |
18359 | (fpscr_name): New int attribute. | |
18360 | * doc/extend.texi (__builtin_aarch64_get_fpcr64) | |
18361 | (__builtin_aarch64_set_fpcr64, __builtin_aarch64_get_fpsr64) | |
18362 | (__builtin_aarch64_set_fpsr64): Add into AArch64 Built-in | |
18363 | Functions. | |
18364 | ||
18365 | 2020-07-01 Martin Liska <mliska@suse.cz> | |
18366 | ||
18367 | * gcov.c (print_usage): Avoid trailing space for -j option. | |
18368 | ||
18369 | 2020-07-01 Richard Biener <rguenther@suse.de> | |
18370 | ||
18371 | PR tree-optimization/95839 | |
18372 | * tree-vect-slp.c (vect_slp_tree_uniform_p): Pre-existing | |
18373 | vectors are not uniform. | |
18374 | (vect_build_slp_tree_1): Handle BIT_FIELD_REFs of | |
18375 | vector registers. | |
18376 | (vect_build_slp_tree_2): For groups of lane extracts | |
18377 | from a vector register generate a permute node | |
18378 | with a special child representing the pre-existing vector. | |
18379 | (vect_prologue_cost_for_slp): Pre-existing vectors cost nothing. | |
18380 | (vect_slp_analyze_node_operations): Use SLP_TREE_LANES. | |
18381 | (vectorizable_slp_permutation): Do not generate or cost identity | |
18382 | permutes. | |
18383 | (vect_schedule_slp_instance): Handle pre-existing vector | |
18384 | that are function arguments. | |
18385 | ||
18386 | 2020-07-01 Richard Biener <rguenther@suse.de> | |
18387 | ||
18388 | * system.h (INCLUDE_ISL): New guarded include. | |
18389 | * graphite-dependences.c: Use it. | |
18390 | * graphite-isl-ast-to-gimple.c: Likewise. | |
18391 | * graphite-optimize-isl.c: Likewise. | |
18392 | * graphite-poly.c: Likewise. | |
18393 | * graphite-scop-detection.c: Likewise. | |
18394 | * graphite-sese-to-poly.c: Likewise. | |
18395 | * graphite.c: Likewise. | |
18396 | * graphite.h: Drop the includes here. | |
18397 | ||
18398 | 2020-07-01 Martin Liska <mliska@suse.cz> | |
18399 | ||
18400 | * gcov.c (print_usage): Shorted option description for -j | |
18401 | option. | |
18402 | ||
18403 | 2020-07-01 Martin Liska <mliska@suse.cz> | |
18404 | ||
18405 | * doc/gcov.texi: Rename 2 options. | |
18406 | * gcov.c (print_usage): Rename -i,--json-format to | |
18407 | -j,--json-format and -j,--human-readable to -H,--human-readable. | |
18408 | (process_args): Fix up parsing. Document obsolete options and | |
18409 | how are they changed. | |
18410 | ||
18411 | 2020-07-01 Jeff Law <law@redhat.com> | |
18412 | ||
18413 | * config/pa/pa.c (pa_emit_move_sequence): Drop register keyword. | |
18414 | (pa_output_ascii): Likewise. | |
18415 | ||
18416 | 2020-07-01 Kito Cheng <kito.cheng@sifive.com> | |
18417 | ||
18418 | * common/config/riscv/riscv-common.c (riscv_subset_t): New field | |
18419 | added. | |
18420 | (riscv_subset_list::parsing_subset_version): Add parameter for | |
18421 | indicate explicitly version, and handle explicitly version. | |
18422 | (riscv_subset_list::handle_implied_ext): Ditto. | |
18423 | (riscv_subset_list::add): Ditto. | |
18424 | (riscv_subset_t::riscv_subset_t): Init new field. | |
18425 | (riscv_subset_list::to_string): Always output version info if version | |
18426 | explicitly specified. | |
18427 | (riscv_subset_list::parsing_subset_version): Handle explicitly | |
18428 | arch version. | |
18429 | (riscv_subset_list::parse_std_ext): Ditto. | |
18430 | (riscv_subset_list::parse_multiletter_ext): Ditto. | |
18431 | ||
18432 | 2020-06-30 Richard Sandiford <richard.sandiford@arm.com> | |
18433 | ||
18434 | PR target/92789 | |
18435 | PR target/95726 | |
18436 | * config/aarch64/aarch64.c (aarch64_attribute_table): Add | |
18437 | "Advanced SIMD type". | |
18438 | (aarch64_comp_type_attributes): Check that the "Advanced SIMD type" | |
18439 | attributes are equal. | |
18440 | * config/aarch64/aarch64-builtins.c: Include stringpool.h and | |
18441 | attribs.h. | |
18442 | (aarch64_mangle_builtin_vector_type): Use the mangling recorded | |
18443 | in the "Advanced SIMD type" attribute. | |
18444 | (aarch64_init_simd_builtin_types): Add an "Advanced SIMD type" | |
18445 | attribute to each Advanced SIMD type, using the mangled type | |
18446 | as the attribute's single argument. | |
18447 | ||
18448 | 2020-06-30 Christophe Lyon <christophe.lyon@linaro.org> | |
18449 | ||
18450 | PR target/94743 | |
18451 | * config/arm/arm.c (arm_handle_isr_attribute): Warn if | |
18452 | -mgeneral-regs-only is not used. | |
18453 | ||
18454 | 2020-06-30 Yang Yang <yangyang305@huawei.com> | |
18455 | ||
18456 | PR tree-optimization/95855 | |
18457 | * gimple-ssa-split-paths.c (is_feasible_trace): Add extra | |
18458 | checks to recognize a missed if-conversion opportunity when | |
18459 | judging whether to duplicate a block. | |
18460 | ||
18461 | 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org> | |
18462 | ||
18463 | * doc/extend.texi: Change references to "future architecture" to | |
18464 | "ISA 3.1", "-mcpu=future" to "-mcpu=power10", and remove vaguer | |
18465 | references to "future" (because the future is now). | |
18466 | ||
18467 | 2020-06-29 Segher Boessenkool <segher@kernel.crashing.org> | |
18468 | ||
18469 | * config/rs6000/rs6000.md (isa): Rename "fut" to "p10". | |
18470 | ||
18471 | 2020-06-29 Roger Sayle <roger@nextmovesoftware.com> | |
18472 | ||
18473 | * simplify-rtx.c (simplify_distributive_operation): New function | |
18474 | to un-distribute a binary operation of two binary operations. | |
18475 | (X & C) ^ (Y & C) to (X ^ Y) & C, when C is simple (i.e. a constant). | |
18476 | (simplify_binary_operation_1) <IOR, XOR, AND>: Call it from here | |
18477 | when appropriate. | |
18478 | (test_scalar_int_ops): New function for unit self-testing | |
18479 | scalar integer transformations in simplify-rtx.c. | |
18480 | (test_scalar_ops): Call test_scalar_int_ops for each integer mode. | |
18481 | (simplify_rtx_c_tests): Call test_scalar_ops. | |
18482 | ||
18483 | 2020-06-29 Richard Biener <rguenther@suse.de> | |
18484 | ||
18485 | PR tree-optimization/95916 | |
18486 | * tree-vect-slp.c (vect_schedule_slp_instance): Explicitely handle | |
18487 | the case of not vectorized externals. | |
18488 | ||
18489 | 2020-06-29 Richard Biener <rguenther@suse.de> | |
18490 | ||
18491 | * tree-vectorizer.h: Do not include <utility>. | |
18492 | ||
18493 | 2020-06-29 Martin Liska <mliska@suse.cz> | |
18494 | ||
18495 | * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Use gsi_bb | |
18496 | instead of gimple_stmt_iterator::bb. | |
18497 | * tree-ssa-math-opts.c (insert_reciprocals): Likewise. | |
18498 | * tree-vectorizer.h: Likewise. | |
18499 | ||
18500 | 2020-06-29 Andrew Stubbs <ams@codesourcery.com> | |
18501 | ||
18502 | * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): New macro. | |
18503 | * config/gcn/gcn-protos.h (gcn_dwarf_register_number): New prototype. | |
18504 | * config/gcn/gcn.c (gcn_expand_prologue): Add RTX_FRAME_RELATED_P | |
18505 | and REG_FRAME_RELATED_EXPR to stack and frame pointer adjustments. | |
18506 | (gcn_dwarf_register_number): New function. | |
18507 | (gcn_dwarf_register_span): New function. | |
18508 | (TARGET_DWARF_REGISTER_SPAN): New hook macro. | |
18509 | ||
18510 | 2020-06-29 Kaipeng Zhou <zhoukaipeng3@huawei.com> | |
18511 | ||
18512 | PR tree-optimization/95854 | |
18513 | * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Return NULL | |
18514 | if operand 1 or 2 of a BIT_FIELD_REF cannot be converted to | |
18515 | unsigned HOST_WIDE_INT. | |
18516 | ||
18517 | 2020-06-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
18518 | ||
18519 | * config/sparc/sparc.c (epilogue_renumber): Remove register. | |
18520 | (sparc_print_operand_address): Likewise. | |
18521 | (sparc_type_code): Likewise. | |
18522 | (set_extends): Likewise. | |
18523 | ||
18524 | 2020-06-29 Martin Liska <mliska@suse.cz> | |
18525 | ||
18526 | PR tree-optimization/92860 | |
18527 | * optc-save-gen.awk: Add exceptions for arc target. | |
18528 | ||
18529 | 2020-06-29 Frederik Harwath <frederik@codesourcery.com> | |
18530 | ||
18531 | * doc/sourcebuild.texi: Describe globbing of the | |
18532 | dump file scanning commands "suffix" argument. | |
18533 | ||
18534 | 2020-06-28 Martin Sebor <msebor@redhat.com> | |
18535 | ||
18536 | PR c++/86568 | |
18537 | * calls.c (maybe_warn_rdwr_sizes): Use location of argument if | |
18538 | available. | |
18539 | * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. Adjust | |
18540 | indentation. | |
18541 | * tree.c (get_nonnull_args): Consider the this pointer implicitly | |
18542 | nonnull. | |
18543 | * var-tracking.c (deps_vec): New type. | |
18544 | (var_loc_dep_vec): New function. | |
18545 | (VAR_LOC_DEP_VEC): Use it. | |
18546 | ||
18547 | 2020-06-28 Kewen Lin <linkw@linux.ibm.com> | |
18548 | ||
18549 | * internal-fn.c (direct_mask_load_optab_supported_p): Use | |
18550 | convert_optab_supported_p instead of direct_optab_supported_p. | |
18551 | (direct_mask_store_optab_supported_p): Likewise. | |
18552 | ||
18553 | 2020-06-27 Aldy Hernandez <aldyh@redhat.com> | |
18554 | ||
18555 | * gimple-ssa-evrp-analyze.h (vrp_visit_cond_stmt): Use | |
18556 | simplify_using_ranges class. | |
18557 | * gimple-ssa-evrp.c (class evrp_folder): New simplify_using_ranges | |
18558 | field. Adjust all methods to use new field. | |
18559 | * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Use | |
18560 | simplify_using_ranges class. | |
18561 | * tree-vrp.c (class vrp_folder): New simplify_using_ranges | |
18562 | field. Adjust all methods to use new field. | |
18563 | (simplify_stmt_for_jump_threading): Use simplify_using_ranges class. | |
18564 | (vrp_prop::vrp_finalize): New vrp_folder argument. | |
18565 | (execute_vrp): Pass folder to vrp_finalize. Use | |
18566 | simplify_using_ranges class. | |
18567 | Remove cleanup_edges_and_switches call. | |
18568 | * vr-values.c (vr_values::op_with_boolean_value_range_p): Change | |
18569 | value_range_equiv uses to value_range. | |
18570 | (simplify_using_ranges::op_with_boolean_value_range_p): Use | |
18571 | simplify_using_ranges class. | |
18572 | (check_for_binary_op_overflow): Make static. | |
18573 | (vr_values::extract_range_basic): Pass this to | |
18574 | check_for_binary_op_overflow. | |
18575 | (compare_range_with_value): Change value_range_equiv uses to | |
18576 | value_range. | |
18577 | (vr_values::vr_values): Initialize simplifier field. | |
18578 | Remove uses of to_remove_edges and to_update_switch_stmts. | |
18579 | (vr_values::~vr_values): Remove uses of to_remove_edges and | |
18580 | to_update_switch_stmts. | |
18581 | (vr_values::get_vr_for_comparison): Move to simplify_using_ranges | |
18582 | class. | |
18583 | (vr_values::compare_name_with_value): Same. | |
18584 | (vr_values::compare_names): Same. | |
18585 | (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same. | |
18586 | (vr_values::vrp_evaluate_conditional): Same. | |
18587 | (vr_values::vrp_visit_cond_stmt): Same. | |
18588 | (find_case_label_ranges): Change value_range_equiv uses to | |
18589 | value_range. | |
18590 | (vr_values::extract_range_from_stmt): Use simplify_using_ranges class. | |
18591 | (vr_values::simplify_truth_ops_using_ranges): Move to | |
18592 | simplify_using_ranges class. | |
18593 | (vr_values::simplify_div_or_mod_using_ranges): Same. | |
18594 | (vr_values::simplify_min_or_max_using_ranges): Same. | |
18595 | (vr_values::simplify_abs_using_ranges): Same. | |
18596 | (vr_values::simplify_bit_ops_using_ranges): Same. | |
18597 | (test_for_singularity): Change value_range_equiv uses to | |
18598 | value_range. | |
18599 | (range_fits_type_p): Same. | |
18600 | (vr_values::simplify_cond_using_ranges_1): Same. | |
18601 | (vr_values::simplify_cond_using_ranges_2): Make extern. | |
18602 | (vr_values::fold_cond): Move to simplify_using_ranges class. | |
18603 | (vr_values::simplify_switch_using_ranges): Same. | |
18604 | (vr_values::cleanup_edges_and_switches): Same. | |
18605 | (vr_values::simplify_float_conversion_using_ranges): Same. | |
18606 | (vr_values::simplify_internal_call_using_ranges): Same. | |
18607 | (vr_values::two_valued_val_range_p): Same. | |
18608 | (vr_values::simplify_stmt_using_ranges): Move to... | |
18609 | (simplify_using_ranges::simplify): ...here. | |
18610 | * vr-values.h (class vr_values): Move all the simplification of | |
18611 | statements using ranges methods and code from here... | |
18612 | (class simplify_using_ranges): ...to here. | |
18613 | (simplify_cond_using_ranges_2): New extern prototype. | |
18614 | ||
18615 | 2020-06-27 Jakub Jelinek <jakub@redhat.com> | |
18616 | ||
18617 | * omp-general.h (struct omp_for_data_loop): Add non_rect_referenced | |
18618 | member, move outer member. | |
18619 | (struct omp_for_data): Add first_nonrect and last_nonrect members. | |
18620 | * omp-general.c (omp_extract_for_data): Initialize first_nonrect, | |
18621 | last_nonrect and non_rect_referenced members. | |
18622 | * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular | |
18623 | loops. | |
18624 | (expand_omp_for_init_vars): Add nonrect_bounds parameter. Handle | |
18625 | non-rectangular loops. | |
18626 | (extract_omp_for_update_vars): Likewise. | |
18627 | (expand_omp_for_generic, expand_omp_for_static_nochunk, | |
18628 | expand_omp_for_static_chunk, expand_omp_simd, | |
18629 | expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Adjust | |
18630 | expand_omp_for_init_vars and extract_omp_for_update_vars callers. | |
18631 | (expand_omp_for): Don't sorry on non-composite worksharing-loop or | |
18632 | distribute. | |
18633 | ||
18634 | 2020-06-26 H.J. Lu <hjl.tools@gmail.com> | |
18635 | ||
18636 | PR target/95655 | |
18637 | * config/i386/gnu-user.h (SUBTARGET_FRAME_POINTER_REQUIRED): | |
18638 | Removed. | |
18639 | * config/i386/i386.c (ix86_frame_pointer_required): Update | |
18640 | comments. | |
18641 | ||
18642 | 2020-06-26 Yichao Yu <yyc1992@gmail.com> | |
18643 | ||
18644 | * multiple_target.c (redirect_to_specific_clone): Fix tests | |
18645 | to check individual attribute rather than an attribute list. | |
18646 | ||
18647 | 2020-06-26 Peter Bergner <bergner@linux.ibm.com> | |
18648 | ||
18649 | * config/rs6000/rs6000-call.c (cpu_is_info) <power10>: New. | |
18650 | * doc/extend.texi (PowerPC Built-in Functions): Document power10, | |
18651 | arch_3_1 and mma. | |
18652 | ||
18653 | 2020-06-26 Marek Polacek <polacek@redhat.com> | |
18654 | ||
18655 | * doc/invoke.texi (C Dialect Options): Adjust -std default for C++. | |
18656 | * doc/standards.texi (C Language): Correct the default dialect. | |
18657 | (C++ Language): Update the default for C++ to gnu++17. | |
18658 | ||
18659 | 2020-06-26 Eric Botcazou <ebotcazou@adacore.com> | |
18660 | ||
18661 | * tree-ssa-reassoc.c (dump_range_entry): New function. | |
18662 | (debug_range_entry): New debug function. | |
18663 | (update_range_test): Invoke dump_range_entry for dumping. | |
18664 | (optimize_range_tests_to_bit_test): Merge the entry test in the | |
18665 | bit test when possible and lower the profitability threshold. | |
18666 | ||
18667 | 2020-06-26 Richard Biener <rguenther@suse.de> | |
18668 | ||
18669 | PR tree-optimization/95897 | |
18670 | * tree-vectorizer.h (vectorizable_induction): Remove | |
18671 | unused gimple_stmt_iterator * parameter. | |
18672 | * tree-vect-loop.c (vectorizable_induction): Likewise. | |
18673 | (vect_analyze_loop_operations): Adjust. | |
18674 | * tree-vect-stmts.c (vect_analyze_stmt): Likewise. | |
18675 | (vect_transform_stmt): Likewise. | |
18676 | * tree-vect-slp.c (vect_schedule_slp_instance): Adjust | |
18677 | for fold-left reductions, clarify existing reduction case. | |
18678 | ||
18679 | 2020-06-25 Nick Clifton <nickc@redhat.com> | |
18680 | ||
18681 | * config/m32r/m32r.md (movsicc): Disable pattern. | |
18682 | ||
18683 | 2020-06-25 Richard Biener <rguenther@suse.de> | |
18684 | ||
18685 | PR tree-optimization/95839 | |
18686 | * tree-vect-slp.c (vect_slp_analyze_bb_1): Remove premature | |
18687 | check on the number of datarefs. | |
18688 | ||
18689 | 2020-06-25 Iain Sandoe <iain@sandoe.co.uk> | |
18690 | ||
18691 | * config/rs6000/rs6000-call.c (mma_init_builtins): Cast | |
18692 | the insn_data n_operands value to unsigned. | |
18693 | ||
18694 | 2020-06-25 Richard Biener <rguenther@suse.de> | |
18695 | ||
18696 | * tree-vect-slp.c (vect_schedule_slp_instance): Always use | |
18697 | vector defs to determine insertion place. | |
18698 | ||
18699 | 2020-06-25 H.J. Lu <hjl.tools@gmail.com> | |
18700 | ||
18701 | PR target/95874 | |
18702 | * config/i386/i386.h (PTA_ICELAKE_CLIENT): Remove PTA_CLWB. | |
18703 | (PTA_ICELAKE_SERVER): Add PTA_CLWB. | |
18704 | (PTA_TIGERLAKE): Add PTA_CLWB. | |
18705 | ||
18706 | 2020-06-25 Richard Biener <rguenther@suse.de> | |
18707 | ||
18708 | PR tree-optimization/95866 | |
18709 | * tree-vect-stmts.c (vectorizable_shift): Reject incompatible | |
18710 | vectorized shift operands. For scalar shifts use lane zero | |
18711 | of a vectorized shift operand. | |
18712 | ||
18713 | 2020-06-25 Martin Liska <mliska@suse.cz> | |
18714 | ||
18715 | PR tree-optimization/95745 | |
18716 | PR middle-end/95830 | |
18717 | * gimple-isel.cc (gimple_expand_vec_cond_exprs): Delete dead | |
18718 | SSA_NAMEs used as the first argument of a VEC_COND_EXPR. Always | |
18719 | return 0. | |
18720 | * tree-vect-generic.c (expand_vector_condition): Remove dead | |
18721 | SSA_NAMEs used as the first argument of a VEC_COND_EXPR. | |
18722 | ||
18723 | 2020-06-24 Will Schmidt <will_schmidt@vnet.ibm.com> | |
18724 | ||
18725 | PR target/94954 | |
18726 | * config/rs6000/altivec.h (vec_pack_to_short_fp32): Update. | |
18727 | * config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec. | |
18728 | (convert_4f32_8f16): New define_expand | |
18729 | * config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define | |
18730 | and overload. | |
18731 | * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New | |
18732 | overloaded builtin entry. | |
18733 | * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec. | |
18734 | (vsx_xvcvsphp): New define_insn. | |
18735 | ||
18736 | 2020-06-24 Roger Sayle <roger@nextmovesoftware.com> | |
18737 | Segher Boessenkool <segher@kernel.crashing.org> | |
18738 | ||
18739 | * simplify-rtx.c (simplify_unary_operation_1): Simplify rotates by 0. | |
18740 | ||
18741 | 2020-06-24 Roger Sayle <roger@nextmovesoftware.com> | |
18742 | ||
18743 | * simplify-rtx.c (simplify_unary_operation_1): Simplify | |
18744 | (parity (parity x)) as (parity x), i.e. PARITY is idempotent. | |
18745 | ||
18746 | 2020-06-24 Richard Biener <rguenther@suse.de> | |
18747 | ||
18748 | PR tree-optimization/95866 | |
18749 | * tree-vect-slp.c (vect_slp_tree_uniform_p): New. | |
18750 | (vect_build_slp_tree_2): Properly reset matches[0], | |
18751 | ignore uniform constants. | |
18752 | ||
18753 | 2020-06-24 H.J. Lu <hjl.tools@gmail.com> | |
18754 | ||
18755 | PR target/95660 | |
18756 | * common/config/i386/cpuinfo.h (get_intel_cpu): Remove brand_id. | |
18757 | (cpu_indicator_init): Likewise. | |
18758 | * config/i386/driver-i386.c (host_detect_local_cpu): Updated. | |
18759 | ||
18760 | 2020-06-24 H.J. Lu <hjl.tools@gmail.com> | |
18761 | ||
18762 | PR target/95774 | |
18763 | * common/config/i386/cpuinfo.h (get_intel_cpu): Add Cooper Lake | |
18764 | detection with AVX512BF16. | |
18765 | ||
18766 | 2020-06-24 H.J. Lu <hjl.tools@gmail.com> | |
18767 | ||
18768 | PR target/95843 | |
18769 | * common/config/i386/i386-isas.h: New file. Extracted from | |
18770 | gcc/config/i386/i386-builtins.c. | |
18771 | (_isa_names_table): Add option. | |
18772 | (ISA_NAMES_TABLE_START): New. | |
18773 | (ISA_NAMES_TABLE_END): Likewise. | |
18774 | (ISA_NAMES_TABLE_ENTRY): Likewise. | |
18775 | (isa_names_table): Defined with ISA_NAMES_TABLE_START, | |
18776 | ISA_NAMES_TABLE_END and ISA_NAMES_TABLE_ENTRY. Add more ISAs | |
18777 | from enum processor_features. | |
18778 | * config/i386/driver-i386.c: Include | |
18779 | "common/config/i386/cpuinfo.h" and | |
18780 | "common/config/i386/i386-isas.h". | |
18781 | (has_feature): New macro. | |
18782 | (host_detect_local_cpu): Call cpu_indicator_init to get CPU | |
18783 | features. Use has_feature to detect processor features. Call | |
18784 | Call get_intel_cpu to get the newer Intel CPU name. Use | |
18785 | isa_names_table to generate command-line options. | |
18786 | * config/i386/i386-builtins.c: Include | |
18787 | "common/config/i386/i386-isas.h". | |
18788 | (_arch_names_table): Removed. | |
18789 | (isa_names_table): Likewise. | |
18790 | ||
18791 | 2020-06-24 H.J. Lu <hjl.tools@gmail.com> | |
18792 | ||
18793 | PR target/95259 | |
18794 | * common/config/i386/cpuinfo.h: New file. | |
18795 | (__processor_model): Moved from libgcc/config/i386/cpuinfo.h. | |
18796 | (__processor_model2): New. | |
18797 | (CHECK___builtin_cpu_is): New. Defined as empty if not defined. | |
18798 | (has_cpu_feature): New function. | |
18799 | (set_cpu_feature): Likewise. | |
18800 | (get_amd_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use | |
18801 | CHECK___builtin_cpu_is. Return AMD CPU name. | |
18802 | (get_intel_cpu): Moved from libgcc/config/i386/cpuinfo.c. Use | |
18803 | Use CHECK___builtin_cpu_is. Return Intel CPU name. | |
18804 | (get_available_features): Moved from libgcc/config/i386/cpuinfo.c. | |
18805 | Also check FEATURE_3DNOW, FEATURE_3DNOWP, FEATURE_ADX, | |
18806 | FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT, FEATURE_CLWB, | |
18807 | FEATURE_CLZERO, FEATURE_CMPXCHG16B, FEATURE_CMPXCHG8B, | |
18808 | FEATURE_ENQCMD, FEATURE_F16C, FEATURE_FSGSBASE, FEATURE_FXSAVE, | |
18809 | FEATURE_HLE, FEATURE_IBT, FEATURE_LAHF_LM, FEATURE_LM, | |
18810 | FEATURE_LWP, FEATURE_LZCNT, FEATURE_MOVBE, FEATURE_MOVDIR64B, | |
18811 | FEATURE_MOVDIRI, FEATURE_MWAITX, FEATURE_OSXSAVE, | |
18812 | FEATURE_PCONFIG, FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW, | |
18813 | FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED, | |
18814 | FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA, | |
18815 | FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES, | |
18816 | FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC, | |
18817 | FEATURE_XSAVEOPT and FEATURE_XSAVES | |
18818 | (cpu_indicator_init): Moved from libgcc/config/i386/cpuinfo.c. | |
18819 | Also update cpu_model2. | |
18820 | * common/config/i386/i386-cpuinfo.h (processor_vendor): Add | |
18821 | Add VENDOR_CENTAUR, VENDOR_CYRIX and VENDOR_NSC. | |
18822 | (processor_features): Moved from gcc/config/i386/i386-builtins.c. | |
18823 | Renamed F_XXX to FEATURE_XXX. Add FEATURE_3DNOW, FEATURE_3DNOWP, | |
18824 | FEATURE_ADX, FEATURE_ABM, FEATURE_CLDEMOTE, FEATURE_CLFLUSHOPT, | |
18825 | FEATURE_CLWB, FEATURE_CLZERO, FEATURE_CMPXCHG16B, | |
18826 | FEATURE_CMPXCHG8B, FEATURE_ENQCMD, FEATURE_F16C, | |
18827 | FEATURE_FSGSBASE, FEATURE_FXSAVE, FEATURE_HLE, FEATURE_IBT, | |
18828 | FEATURE_LAHF_LM, FEATURE_LM, FEATURE_LWP, FEATURE_LZCNT, | |
18829 | FEATURE_MOVBE, FEATURE_MOVDIR64B, FEATURE_MOVDIRI, | |
18830 | FEATURE_MWAITX, FEATURE_OSXSAVE, FEATURE_PCONFIG, | |
18831 | FEATURE_PKU, FEATURE_PREFETCHWT1, FEATURE_PRFCHW, | |
18832 | FEATURE_PTWRITE, FEATURE_RDPID, FEATURE_RDRND, FEATURE_RDSEED, | |
18833 | FEATURE_RTM, FEATURE_SERIALIZE, FEATURE_SGX, FEATURE_SHA, | |
18834 | FEATURE_SHSTK, FEATURE_TBM, FEATURE_TSXLDTRK, FEATURE_VAES, | |
18835 | FEATURE_WAITPKG, FEATURE_WBNOINVD, FEATURE_XSAVE, FEATURE_XSAVEC, | |
18836 | FEATURE_XSAVEOPT, FEATURE_XSAVES and CPU_FEATURE_MAX. | |
18837 | (SIZE_OF_CPU_FEATURES): New. | |
18838 | * config/i386/i386-builtins.c (processor_features): Removed. | |
18839 | (isa_names_table): Replace F_XXX with FEATURE_XXX. | |
18840 | (fold_builtin_cpu): Change __cpu_features2 to an array. | |
18841 | ||
18842 | 2020-06-24 H.J. Lu <hjl.tools@gmail.com> | |
18843 | ||
18844 | PR target/95842 | |
18845 | * common/config/i386/i386-common.c (processor_alias_table): Add | |
18846 | processor model and priority to each entry. | |
18847 | (pta_size): Updated with -6. | |
18848 | (num_arch_names): New. | |
18849 | * common/config/i386/i386-cpuinfo.h: New file. | |
18850 | * config/i386/i386-builtins.c (feature_priority): Removed. | |
18851 | (processor_model): Likewise. | |
18852 | (_arch_names_table): Likewise. | |
18853 | (arch_names_table): Likewise. | |
18854 | (_isa_names_table): Replace P_ZERO with P_NONE. | |
18855 | (get_builtin_code_for_version): Replace P_ZERO with P_NONE. Use | |
18856 | processor_alias_table. | |
18857 | (fold_builtin_cpu): Replace arch_names_table with | |
18858 | processor_alias_table. | |
18859 | * config/i386/i386.h: Include "common/config/i386/i386-cpuinfo.h". | |
18860 | (pta): Add model and priority. | |
18861 | (num_arch_names): New. | |
18862 | ||
18863 | 2020-06-24 Richard Biener <rguenther@suse.de> | |
18864 | ||
18865 | * tree-vectorizer.h (vect_find_first_scalar_stmt_in_slp): | |
18866 | Declare. | |
18867 | * tree-vect-data-refs.c (vect_preserves_scalar_order_p): | |
18868 | Simplify for new position of vectorized SLP loads. | |
18869 | (vect_slp_analyze_node_dependences): Adjust for it. | |
18870 | (vect_slp_analyze_and_verify_node_alignment): Compute alignment | |
18871 | for the first stmts dataref. | |
18872 | * tree-vect-slp.c (vect_find_first_scalar_stmt_in_slp): New. | |
18873 | (vect_schedule_slp_instance): Emit loads before the | |
18874 | first scalar stmt. | |
18875 | * tree-vect-stmts.c (vectorizable_load): Do what the comment | |
18876 | says and use vect_find_first_scalar_stmt_in_slp. | |
18877 | ||
18878 | 2020-06-24 Richard Biener <rguenther@suse.de> | |
18879 | ||
18880 | PR tree-optimization/95856 | |
18881 | * tree-vectorizer.c (vect_stmt_dominates_stmt_p): Honor | |
18882 | region marker -1u. | |
18883 | ||
18884 | 2020-06-24 Jakub Jelinek <jakub@redhat.com> | |
18885 | ||
18886 | PR middle-end/95810 | |
18887 | * fold-const.c (fold_cond_expr_with_comparison): Optimize | |
18888 | A <= 0 ? A : -A into (type)-absu(A) rather than -abs(A). | |
18889 | ||
18890 | 2020-06-24 Jakub Jelinek <jakub@redhat.com> | |
18891 | ||
18892 | * omp-low.c (lower_omp_for): Fix two pastos. | |
18893 | ||
18894 | 2020-06-24 Martin Liska <mliska@suse.cz> | |
18895 | ||
18896 | * optc-save-gen.awk: Compare string options in cl_optimization_compare | |
18897 | by strcmp. | |
18898 | ||
18899 | 2020-06-23 Aaron Sawdey <acsawdey@linux.ibm.com> | |
18900 | ||
18901 | * config.gcc: Identify power10 as a 64-bit processor and as valid | |
18902 | for --with-cpu and --with-tune. | |
18903 | ||
18904 | 2020-06-23 David Edelsohn <dje.gcc@gmail.com> | |
18905 | ||
18906 | * Makefile.in (LANG_MAKEFRAGS): Same. | |
18907 | (tmake_file): Use -include. | |
18908 | (xmake_file): Same. | |
18909 | ||
18910 | 2020-06-23 Michael Meissner <meissner@linux.ibm.com> | |
18911 | ||
18912 | * REVISION: Delete file meant for a private branch. | |
18913 | ||
18914 | 2020-06-23 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
18915 | ||
18916 | PR target/95646 | |
18917 | * config/arm/arm.c: (cmse_nonsecure_entry_clear_before_return): Use | |
18918 | 'callee_saved_reg_p' instead of 'calL_used_or_fixed_reg_p'. | |
18919 | ||
18920 | 2020-06-23 Alexandre Oliva <oliva@adacore.com> | |
18921 | ||
18922 | * collect-utils.h (dumppfx): New. | |
18923 | * collect-utils.c (dumppfx): Likewise. | |
18924 | * lto-wrapper.c (run_gcc): Set global dumppfx. | |
18925 | (compile_offload_image): Pass a -dumpbase on to mkoffload. | |
18926 | * config/nvptx/mkoffload.c (ptx_dumpbase): New. | |
18927 | (main): Handle incoming -dumpbase. Set ptx_dumpbase. Obey | |
18928 | save_temps. | |
18929 | (compile_native): Pass -dumpbase et al to compiler. | |
18930 | * config/gcn/mkoffload.c (gcn_dumpbase): New. | |
18931 | (main): Handle incoming -dumpbase. Set gcn_dumpbase. Obey | |
18932 | save_temps. Pass -dumpbase et al to offload target compiler. | |
18933 | (compile_native): Pass -dumpbase et al to compiler. | |
18934 | ||
18935 | 2020-06-23 Michael Meissner <meissner@linux.ibm.com> | |
18936 | ||
18937 | * REVISION: New file. | |
18938 | ||
18939 | 2020-06-22 Segher Boessenkool <segher@kernel.crashing.org> | |
18940 | ||
18941 | * config/rs6000/altivec.h: Use _ARCH_PWR10, not _ARCH_PWR_FUTURE. | |
18942 | Update comment for ISA 3.1. | |
18943 | * config/rs6000/altivec.md: Use TARGET_POWER10, not TARGET_FUTURE. | |
18944 | * config/rs6000/driver-rs6000.c (asm_names): Use -mpwr10 for power10 | |
18945 | on AIX, and -mpower10 elsewhere. | |
18946 | * config/rs6000/future.md: Delete. | |
18947 | * config/rs6000/linux64.h: Update comments. Use TARGET_POWER10, not | |
18948 | TARGET_FUTURE. | |
18949 | * config/rs6000/power10.md: New file. | |
18950 | * config/rs6000/ppc-auxv.h: Use PPC_PLATFORM_POWER10, not | |
18951 | PPC_PLATFORM_FUTURE. | |
18952 | * config/rs6000/rs6000-builtin.def: Update comments. Use BU_P10V_* | |
18953 | names instead of BU_FUTURE_V_* names. Use RS6000_BTM_P10 instead of | |
18954 | RS6000_BTM_FUTURE. Use P10_BUILTIN_* instead of FUTURE_BUILTIN_*. | |
18955 | Use BU_P10_* instead of BU_FUTURE_*. | |
18956 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define | |
18957 | _ARCH_PWR10 instead of _ARCH_PWR_FUTURE. | |
18958 | (altivec_resolve_overloaded_builtin): Use P10_BUILTIN_VEC_XXEVAL, not | |
18959 | FUTURE_BUILTIN_VEC_XXEVAL. | |
18960 | * config/rs6000/rs6000-call.c: Use P10_BUILTIN_*, not FUTURE_BUILTIN_*. | |
18961 | Update compiler messages. | |
18962 | * config/rs6000/rs6000-cpus.def: Update comments. Use ISA_3_1_*, not | |
18963 | ISA_FUTURE_*. Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. | |
18964 | * config/rs6000/rs6000-opts.h: Use PROCESSOR_POWER10, not | |
18965 | PROCESSOR_FUTURE. | |
18966 | * config/rs6000/rs6000-string.c: Ditto. | |
18967 | * config/rs6000/rs6000-tables.opt (rs6000_cpu_opt_value): Use "power10" | |
18968 | instead of "future", reorder it to right after "power9". | |
18969 | * config/rs6000/rs6000.c: Update comments. Use OPTION_MASK_POWER10, | |
18970 | not OPTION_MASK_FUTURE. Use TARGET_POWER10, not TARGET_FUTURE. Use | |
18971 | RS6000_BTM_P10, not RS6000_BTM_FUTURE. Update compiler messages. | |
18972 | Use PROCESSOR_POWER10, not PROCESSOR_FUTURE. Use ISA_3_1_MASKS_SERVER, | |
18973 | not ISA_FUTURE_MASKS_SERVER. | |
18974 | (rs6000_opt_masks): Use "power10" instead of "future". | |
18975 | (rs6000_builtin_mask_names): Ditto. | |
18976 | (rs6000_disable_incompatible_switches): Ditto. | |
18977 | * config/rs6000/rs6000.h: Use -mpower10, not -mfuture. Use | |
18978 | -mcpu=power10, not -mcpu=future. Use MASK_POWER10, not MASK_FUTURE. | |
18979 | Use OPTION_MASK_POWER10, not OPTION_MASK_FUTURE. Use RS6000_BTM_P10, | |
18980 | not RS6000_BTM_FUTURE. | |
18981 | * config/rs6000/rs6000.md: Use "power10", not "future". Use | |
18982 | TARGET_POWER10, not TARGET_FUTURE. Include "power10.md", not | |
18983 | "future.md". | |
18984 | * config/rs6000/rs6000.opt (mfuture): Delete. | |
18985 | (mpower10): New. | |
18986 | * config/rs6000/t-rs6000: Use "power10.md", not "future.md". | |
18987 | * config/rs6000/vsx.md: Use TARGET_POWER10, not TARGET_FUTURE. | |
18988 | ||
18989 | 2020-06-22 Richard Sandiford <richard.sandiford@arm.com> | |
18990 | ||
18991 | * coretypes.h (first_type): Delete. | |
18992 | * recog.h (insn_gen_fn::operator()): Go back to using a decltype. | |
18993 | ||
18994 | 2020-06-22 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
18995 | ||
18996 | * doc/sourcebuild.texi (arm_v8_1m_mve_fp_ok): Add item. | |
18997 | (arm_mve_hw): Likewise. | |
18998 | ||
18999 | 2020-06-22 H.J. Lu <hjl.tools@gmail.com> | |
19000 | ||
19001 | PR target/95791 | |
19002 | * config/i386/i386.c (ix86_dirflag_mode_needed): Skip | |
19003 | EXT_REX_SSE_REG_P. | |
19004 | ||
19005 | 2020-06-22 Richard Biener <rguenther@suse.de> | |
19006 | ||
19007 | PR tree-optimization/95770 | |
19008 | * tree-vect-slp.c (vect_schedule_slp_instance): Also consider | |
19009 | external defs. | |
19010 | ||
19011 | 2020-06-22 Andrew Stubbs <ams@codesourcery.com> | |
19012 | ||
19013 | * config/gcn/gcn.c (gcn_function_arg): Disallow vector arguments. | |
19014 | (gcn_return_in_memory): Return vectors in memory. | |
19015 | ||
19016 | 2020-06-22 Jakub Jelinek <jakub@redhat.com> | |
19017 | ||
19018 | * omp-general.c (omp_extract_for_data): For triangular loops with | |
19019 | all loop invariant expressions constant where the innermost loop is | |
19020 | executed at least once compute number of iterations at compile time. | |
19021 | ||
19022 | 2020-06-22 Kito Cheng <kito.cheng@sifive.com> | |
19023 | ||
19024 | * config/riscv/riscv.h (ASM_SPEC): Remove riscv_expand_arch call. | |
19025 | (DRIVER_SELF_SPECS): New. | |
19026 | ||
19027 | 2020-06-22 Kito Cheng <kito.cheng@sifive.com> | |
19028 | ||
19029 | * config/riscv/riscv-builtins.c (RISCV_FTYPE_NAME0): New. | |
19030 | (RISCV_FTYPE_ATYPES0): New. | |
19031 | (riscv_builtins): Using RISCV_USI_FTYPE for frflags. | |
19032 | * config/riscv/riscv-ftypes.def: Remove VOID argument. | |
19033 | ||
19034 | 2020-06-21 David Edelsohn <dje.gcc@gmail.com> | |
19035 | ||
19036 | * config.gcc: Use t-aix64, biarch64 and default64 for cpu_is_64bit. | |
19037 | * config/rs6000/aix72.h (ASM_SPEC): Remove aix64 option. | |
19038 | (ASM_SPEC32): New. | |
19039 | (ASM_SPEC64): New. | |
19040 | (ASM_CPU_SPEC): Remove vsx and altivec options. | |
19041 | (CPP_SPEC_COMMON): Rename from CPP_SPEC. | |
19042 | (CPP_SPEC32): New. | |
19043 | (CPP_SPEC64): New. | |
19044 | (CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON.. | |
19045 | (TARGET_DEFAULT): Only define if not BIARCH. | |
19046 | (LIB_SPEC_COMMON): Rename from LIB_SPEC. | |
19047 | (LIB_SPEC32): New. | |
19048 | (LIB_SPEC64): New. | |
19049 | (LINK_SPEC_COMMON): Rename from LINK_SPEC. | |
19050 | (LINK_SPEC32): New. | |
19051 | (LINK_SPEC64): New. | |
19052 | (STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase. | |
19053 | (ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P. | |
19054 | (CPP_SPEC): Same. | |
19055 | (CPLUSPLUS_CPP_SPEC): Same. | |
19056 | (LIB_SPEC): Same. | |
19057 | (LINK_SPEC): Same. | |
19058 | (SUBTARGET_EXTRA_SPECS): Add new 32/64 specs. | |
19059 | * config/rs6000/defaultaix64.h: New file. | |
19060 | * config/rs6000/t-aix64: New file. | |
19061 | ||
19062 | 2020-06-21 Peter Bergner <bergner@linux.ibm.com> | |
19063 | ||
19064 | * config/rs6000/predicates.md (mma_assemble_input_operand): New. | |
19065 | * config/rs6000/rs6000-builtin.def (BU_MMA_1, BU_MMA_V2, BU_MMA_3, | |
19066 | BU_MMA_5, BU_MMA_6, BU_VSX_1): Add support macros for defining MMA | |
19067 | built-in functions. | |
19068 | (ASSEMBLE_ACC, ASSEMBLE_PAIR, DISASSEMBLE_ACC, DISASSEMBLE_PAIR, | |
19069 | PMXVBF16GER2, PMXVBF16GER2NN, PMXVBF16GER2NP, PMXVBF16GER2PN, | |
19070 | PMXVBF16GER2PP, PMXVF16GER2, PMXVF16GER2NN, PMXVF16GER2NP, | |
19071 | PMXVF16GER2PN, PMXVF16GER2PP, PMXVF32GER, PMXVF32GERNN, | |
19072 | PMXVF32GERNP, PMXVF32GERPN, PMXVF32GERPP, PMXVF64GER, PMXVF64GERNN, | |
19073 | PMXVF64GERNP, PMXVF64GERPN, PMXVF64GERPP, PMXVI16GER2, PMXVI16GER2PP, | |
19074 | PMXVI16GER2S, PMXVI16GER2SPP, PMXVI4GER8, PMXVI4GER8PP, PMXVI8GER4, | |
19075 | PMXVI8GER4PP, PMXVI8GER4SPP, XVBF16GER2, XVBF16GER2NN, XVBF16GER2NP, | |
19076 | XVBF16GER2PN, XVBF16GER2PP, XVCVBF16SP, XVCVSPBF16, XVF16GER2, | |
19077 | XVF16GER2NN, XVF16GER2NP, XVF16GER2PN, XVF16GER2PP, XVF32GER, | |
19078 | XVF32GERNN, XVF32GERNP, XVF32GERPN, XVF32GERPP, XVF64GER, XVF64GERNN, | |
19079 | XVF64GERNP, XVF64GERPN, XVF64GERPP, XVI16GER2, XVI16GER2PP, XVI16GER2S, | |
19080 | XVI16GER2SPP, XVI4GER8, XVI4GER8PP, XVI8GER4, XVI8GER4PP, XVI8GER4SPP, | |
19081 | XXMFACC, XXMTACC, XXSETACCZ): Add MMA built-ins. | |
19082 | * config/rs6000/rs6000.c (rs6000_emit_move): Use CONST_INT_P. | |
19083 | Allow zero constants. | |
19084 | (print_operand) <case 'A'>: New output modifier. | |
19085 | (rs6000_split_multireg_move): Add support for inserting accumulator | |
19086 | priming and depriming instructions. Add support for splitting an | |
19087 | assemble accumulator pattern. | |
19088 | * config/rs6000/rs6000-call.c (mma_init_builtins, mma_expand_builtin, | |
19089 | rs6000_gimple_fold_mma_builtin): New functions. | |
19090 | (RS6000_BUILTIN_M): New macro. | |
19091 | (def_builtin): Handle RS6000_BTC_QUAD and RS6000_BTC_PAIR attributes. | |
19092 | (bdesc_mma): Add new MMA built-in support. | |
19093 | (htm_expand_builtin): Use RS6000_BTC_OPND_MASK. | |
19094 | (rs6000_invalid_builtin): Add handling of RS6000_BTM_FUTURE and | |
19095 | RS6000_BTM_MMA. | |
19096 | (rs6000_builtin_valid_without_lhs): Handle RS6000_BTC_VOID attribute. | |
19097 | (rs6000_gimple_fold_builtin): Call rs6000_builtin_is_supported_p | |
19098 | and rs6000_gimple_fold_mma_builtin. | |
19099 | (rs6000_expand_builtin): Call mma_expand_builtin. | |
19100 | Use RS6000_BTC_OPND_MASK. | |
19101 | (rs6000_init_builtins): Adjust comment. Call mma_init_builtins. | |
19102 | (htm_init_builtins): Use RS6000_BTC_OPND_MASK. | |
19103 | (builtin_function_type): Handle VSX_BUILTIN_XVCVSPBF16 and | |
19104 | VSX_BUILTIN_XVCVBF16SP. | |
19105 | * config/rs6000/rs6000.h (RS6000_BTC_QUINARY, RS6000_BTC_SENARY, | |
19106 | RS6000_BTC_OPND_MASK, RS6000_BTC_QUAD, RS6000_BTC_PAIR, | |
19107 | RS6000_BTC_QUADPAIR, RS6000_BTC_GIMPLE): New defines. | |
19108 | (RS6000_BTC_PREDICATE, RS6000_BTC_ABS, RS6000_BTC_DST, | |
19109 | RS6000_BTC_TYPE_MASK, RS6000_BTC_ATTR_MASK): Adjust values. | |
19110 | * config/rs6000/mma.md (MAX_MMA_OPERANDS): New define_constant. | |
19111 | (UNSPEC_MMA_ASSEMBLE_ACC, UNSPEC_MMA_PMXVBF16GER2, | |
19112 | UNSPEC_MMA_PMXVBF16GER2NN, UNSPEC_MMA_PMXVBF16GER2NP, | |
19113 | UNSPEC_MMA_PMXVBF16GER2PN, UNSPEC_MMA_PMXVBF16GER2PP, | |
19114 | UNSPEC_MMA_PMXVF16GER2, UNSPEC_MMA_PMXVF16GER2NN, | |
19115 | UNSPEC_MMA_PMXVF16GER2NP, UNSPEC_MMA_PMXVF16GER2PN, | |
19116 | UNSPEC_MMA_PMXVF16GER2PP, UNSPEC_MMA_PMXVF32GER, | |
19117 | UNSPEC_MMA_PMXVF32GERNN, UNSPEC_MMA_PMXVF32GERNP, | |
19118 | UNSPEC_MMA_PMXVF32GERPN, UNSPEC_MMA_PMXVF32GERPP, | |
19119 | UNSPEC_MMA_PMXVF64GER, UNSPEC_MMA_PMXVF64GERNN, | |
19120 | UNSPEC_MMA_PMXVF64GERNP, UNSPEC_MMA_PMXVF64GERPN, | |
19121 | UNSPEC_MMA_PMXVF64GERPP, UNSPEC_MMA_PMXVI16GER2, | |
19122 | UNSPEC_MMA_PMXVI16GER2PP, UNSPEC_MMA_PMXVI16GER2S, | |
19123 | UNSPEC_MMA_PMXVI16GER2SPP, UNSPEC_MMA_PMXVI4GER8, | |
19124 | UNSPEC_MMA_PMXVI4GER8PP, UNSPEC_MMA_PMXVI8GER4, | |
19125 | UNSPEC_MMA_PMXVI8GER4PP, UNSPEC_MMA_PMXVI8GER4SPP, | |
19126 | UNSPEC_MMA_XVBF16GER2, UNSPEC_MMA_XVBF16GER2NN, | |
19127 | UNSPEC_MMA_XVBF16GER2NP, UNSPEC_MMA_XVBF16GER2PN, | |
19128 | UNSPEC_MMA_XVBF16GER2PP, UNSPEC_MMA_XVF16GER2, UNSPEC_MMA_XVF16GER2NN, | |
19129 | UNSPEC_MMA_XVF16GER2NP, UNSPEC_MMA_XVF16GER2PN, UNSPEC_MMA_XVF16GER2PP, | |
19130 | UNSPEC_MMA_XVF32GER, UNSPEC_MMA_XVF32GERNN, UNSPEC_MMA_XVF32GERNP, | |
19131 | UNSPEC_MMA_XVF32GERPN, UNSPEC_MMA_XVF32GERPP, UNSPEC_MMA_XVF64GER, | |
19132 | UNSPEC_MMA_XVF64GERNN, UNSPEC_MMA_XVF64GERNP, UNSPEC_MMA_XVF64GERPN, | |
19133 | UNSPEC_MMA_XVF64GERPP, UNSPEC_MMA_XVI16GER2, UNSPEC_MMA_XVI16GER2PP, | |
19134 | UNSPEC_MMA_XVI16GER2S, UNSPEC_MMA_XVI16GER2SPP, UNSPEC_MMA_XVI4GER8, | |
19135 | UNSPEC_MMA_XVI4GER8PP, UNSPEC_MMA_XVI8GER4, UNSPEC_MMA_XVI8GER4PP, | |
19136 | UNSPEC_MMA_XVI8GER4SPP, UNSPEC_MMA_XXMFACC, UNSPEC_MMA_XXMTACC): New. | |
19137 | (MMA_ACC, MMA_VV, MMA_AVV, MMA_PV, MMA_APV, MMA_VVI4I4I8, | |
19138 | MMA_AVVI4I4I8, MMA_VVI4I4I2, MMA_AVVI4I4I2, MMA_VVI4I4, | |
19139 | MMA_AVVI4I4, MMA_PVI4I2, MMA_APVI4I2, MMA_VVI4I4I4, | |
19140 | MMA_AVVI4I4I4): New define_int_iterator. | |
19141 | (acc, vv, avv, pv, apv, vvi4i4i8, avvi4i4i8, vvi4i4i2, | |
19142 | avvi4i4i2, vvi4i4, avvi4i4, pvi4i2, apvi4i2, vvi4i4i4, | |
19143 | avvi4i4i4): New define_int_attr. | |
19144 | (*movpxi): Add zero constant alternative. | |
19145 | (mma_assemble_pair, mma_assemble_acc): New define_expand. | |
19146 | (*mma_assemble_acc): New define_insn_and_split. | |
19147 | (mma_<acc>, mma_xxsetaccz, mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>, | |
19148 | mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>, | |
19149 | mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>, | |
19150 | mma_<vvi4i4i4>, mma_<avvi4i4i4>): New define_insn. | |
19151 | * config/rs6000/rs6000.md (define_attr "type"): New type mma. | |
19152 | * config/rs6000/vsx.md (UNSPEC_VSX_XVCVBF16SP): New. | |
19153 | (UNSPEC_VSX_XVCVSPBF16): Likewise. | |
19154 | (XVCVBF16): New define_int_iterator. | |
19155 | (xvcvbf16): New define_int_attr. | |
19156 | (vsx_<xvcvbf16>): New define_insn. | |
19157 | * doc/extend.texi: Document the mma built-ins. | |
19158 | ||
19159 | 2020-06-21 Peter Bergner <bergner@linux.ibm.com> | |
19160 | Michael Meissner <meissner@linux.ibm.com> | |
19161 | ||
19162 | * config/rs6000/mma.md: New file. | |
19163 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define | |
19164 | __MMA__ for mma. | |
19165 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Add support | |
19166 | for __vector_pair and __vector_quad types. | |
19167 | * config/rs6000/rs6000-cpus.def (OTHER_FUTURE_MASKS): Add | |
19168 | OPTION_MASK_MMA. | |
19169 | (POWERPC_MASKS): Likewise. | |
19170 | * config/rs6000/rs6000-modes.def (OI, XI): New integer modes. | |
19171 | (POI, PXI): New partial integer modes. | |
19172 | * config/rs6000/rs6000.c (TARGET_INVALID_CONVERSION): Define. | |
19173 | (rs6000_hard_regno_nregs_internal): Use VECTOR_ALIGNMENT_P. | |
19174 | (rs6000_hard_regno_mode_ok_uncached): Likewise. | |
19175 | Add support for POImode being allowed in VSX registers and PXImode | |
19176 | being allowed in FP registers. | |
19177 | (rs6000_modes_tieable_p): Adjust comment. | |
19178 | Add support for POImode and PXImode. | |
19179 | (rs6000_debug_reg_global) <print_tieable_modes>: Add OImode, POImode | |
19180 | XImode, PXImode, V2SImode, V2SFmode and CCFPmode.. | |
19181 | (rs6000_setup_reg_addr_masks): Use VECTOR_ALIGNMENT_P. | |
19182 | Set up appropriate addr_masks for vector pair and vector quad addresses. | |
19183 | (rs6000_init_hard_regno_mode_ok): Add support for vector pair and | |
19184 | vector quad registers. Setup reload handlers for POImode and PXImode. | |
19185 | (rs6000_builtin_mask_calculate): Add support for RS6000_BTM_MMA. | |
19186 | (rs6000_option_override_internal): Error if -mmma is specified | |
19187 | without -mcpu=future. | |
19188 | (rs6000_slow_unaligned_access): Use VECTOR_ALIGNMENT_P. | |
19189 | (quad_address_p): Change size test to less than 16 bytes. | |
19190 | (reg_offset_addressing_ok_p): Add support for ISA 3.1 vector pair | |
19191 | and vector quad instructions. | |
19192 | (avoiding_indexed_address_p): Likewise. | |
19193 | (rs6000_emit_move): Disallow POImode and PXImode moves involving | |
19194 | constants. | |
19195 | (rs6000_preferred_reload_class): Prefer VSX registers for POImode | |
19196 | and FP registers for PXImode. | |
19197 | (rs6000_split_multireg_move): Support splitting POImode and PXImode | |
19198 | move instructions. | |
19199 | (rs6000_mangle_type): Adjust comment. Add support for mangling | |
19200 | __vector_pair and __vector_quad types. | |
19201 | (rs6000_opt_masks): Add entry for mma. | |
19202 | (rs6000_builtin_mask_names): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE. | |
19203 | (rs6000_function_value): Use VECTOR_ALIGNMENT_P. | |
19204 | (address_to_insn_form): Likewise. | |
19205 | (reg_to_non_prefixed): Likewise. | |
19206 | (rs6000_invalid_conversion): New function. | |
19207 | * config/rs6000/rs6000.h (MASK_MMA): Define. | |
19208 | (BIGGEST_ALIGNMENT): Set to 512 if MMA support is enabled. | |
19209 | (VECTOR_ALIGNMENT_P): New helper macro. | |
19210 | (ALTIVEC_VECTOR_MODE): Use VECTOR_ALIGNMENT_P. | |
19211 | (RS6000_BTM_MMA): Define. | |
19212 | (RS6000_BTM_COMMON): Add RS6000_BTM_MMA and RS6000_BTM_FUTURE. | |
19213 | (rs6000_builtin_type_index): Add RS6000_BTI_vector_pair and | |
19214 | RS6000_BTI_vector_quad. | |
19215 | (vector_pair_type_node): New. | |
19216 | (vector_quad_type_node): New. | |
19217 | * config/rs6000/rs6000.md: Include mma.md. | |
19218 | (define_mode_iterator RELOAD): Add POI and PXI. | |
19219 | * config/rs6000/t-rs6000 (MD_INCLUDES): Add mma.md. | |
19220 | * config/rs6000/rs6000.opt (-mmma): New. | |
19221 | * doc/invoke.texi: Document -mmma. | |
19222 | ||
19223 | 2020-06-20 Bin Cheng <bin.cheng@linux.alibaba.com> | |
19224 | ||
19225 | PR tree-optimization/95638 | |
19226 | * tree-loop-distribution.c (pg_edge_callback_data): New field. | |
19227 | (loop_distribution::break_alias_scc_partitions): Record and restore | |
19228 | postorder information. Fix memory leak. | |
19229 | ||
19230 | 2020-06-19 Tobias Burnus <tobias@codesourcery.com> | |
19231 | ||
19232 | * config/gcn/gcn.c (gcn_related_vector_mode): Add ARG_UNUSED. | |
19233 | (output_file_start): Use const 'char *'. | |
19234 | ||
19235 | 2020-06-19 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com> | |
19236 | ||
19237 | PR tree-optimization/94880 | |
19238 | * match.pd (A | B) - B -> (A & ~B): New simplification. | |
19239 | ||
19240 | 2020-06-19 Richard Biener <rguenther@suse.de> | |
19241 | ||
19242 | * tree-vect-slp.c (vect_bb_slp_scalar_cost): Adjust | |
19243 | for lane permutations. | |
19244 | ||
19245 | 2020-06-19 Richard Biener <rguenther@suse.de> | |
19246 | ||
19247 | PR tree-optimization/95761 | |
19248 | * tree-vect-slp.c (vect_schedule_slp_instance): Walk all | |
19249 | vectorized stmts for finding the last one. | |
19250 | ||
19251 | 2020-06-18 Felix Yang <felix.yang@huawei.com> | |
19252 | ||
19253 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Call | |
19254 | vect_relevant_for_alignment_p to filter out data references in | |
19255 | the loop whose alignment is irrelevant when trying loop peeling | |
19256 | to force alignment. | |
19257 | ||
19258 | 2020-06-18 Uroš Bizjak <ubizjak@gmail.com> | |
19259 | ||
19260 | * config/i386/i386.md (*cmpqi_ext<mode>_1): Use SWI248 mode | |
19261 | iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248 | |
19262 | mode iterator for the first operand of ZERO_EXTRACT RTX. | |
19263 | Change ext_register_operand predicate to register_operand. | |
19264 | Rename from *cmpqi_ext_1. | |
19265 | (*cmpqi_ext<mode>_2): Ditto. Rename from *cmpqi_ext_2. | |
19266 | (*cmpqi_ext<mode>_3): Ditto. Rename from *cmpqi_ext_3. | |
19267 | (*cmpqi_ext<mode>_4): Ditto. Rename from *cmpqi_ext_4. | |
19268 | (cmpi_ext_3): Use HImode instead of SImode for ZERO_EXTRACT RTX. | |
19269 | (*extv<mode>): Use SWI24 mode iterator for the first operand | |
19270 | of ZERO_EXTRACT RTX. Change ext_register_operand predicate | |
19271 | to register_operand. | |
19272 | (*extzv<mode>): Use SWI248 mode iterator for the first operand | |
19273 | of ZERO_EXTRACT RTX. Change ext_register_operand predicate | |
19274 | to register_operand. | |
19275 | (*extzvqi): Use SWI248 mode iterator instead of SImode for | |
19276 | ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first operand | |
19277 | of ZERO_EXTRACT RTX. Change ext_register_operand predicate to | |
19278 | register_operand. | |
19279 | (*extzvqi_mem_rex64 and corresponding peephole2): Use SWI248 mode | |
19280 | iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248 | |
19281 | mode iterator for the first operand of ZERO_EXTRACT RTX. | |
19282 | Change ext_register_operand predicate to register_operand. | |
19283 | (@insv<mode>_1): Use SWI248 mode iterator for the first operand | |
19284 | of ZERO_EXTRACT RTX. Change ext_register_operand predicate to | |
19285 | register_operand. | |
19286 | (*insvqi_1): Use SWI248 mode iterator instead of SImode | |
19287 | for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the | |
19288 | first operand of ZERO_EXTRACT RTX. Change ext_register_operand | |
19289 | predicate to register_operand. | |
19290 | (*insvqi_2): Ditto. | |
19291 | (*insvqi_3): Ditto. | |
19292 | (*insvqi_1_mem_rex64 and corresponding peephole2): Use SWI248 mode | |
19293 | iterator instead of SImode for ZERO_EXTRACT RTX. Use SWI248 | |
19294 | mode iterator for the first operand of ZERO_EXTRACT RTX. | |
19295 | Change ext_register_operand predicate to register_operand. | |
19296 | (addqi_ext_1): New expander. | |
19297 | (*addqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode | |
19298 | for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first | |
19299 | operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate | |
19300 | to register_operand. Rename from *addqi_ext_1. | |
19301 | (*addqi_ext<mode>_2): Ditto. Rename from *addqi_ext_2. | |
19302 | (divmodqi4): Use HImode instead of SImode for ZERO_EXTRACT RTX. | |
19303 | (udivmodqi4): Ditto. | |
19304 | (testqi_ext_1): Use HImode instead of SImode for ZERO_EXTRACT RTX. | |
19305 | (*testqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode | |
19306 | for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first | |
19307 | operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate | |
19308 | to register_operand. Rename from *testqi_ext_1. | |
19309 | (*testqi_ext<mode>_2): Ditto. Rename from *testqi_ext_2. | |
19310 | (andqi_ext_1): New expander. | |
19311 | (*andqi_ext<mode>_1): Use SWI248 mode iterator instead of SImode | |
19312 | for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first | |
19313 | operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate | |
19314 | to register_operand. Rename from andqi_ext_1. | |
19315 | (*andqi_ext<mode>_1_cc): Ditto. Rename from *andqi_ext_1_cc. | |
19316 | (*andqi_ext<mode>_2): Ditto. Rename from *andqi_ext_2. | |
19317 | (*<code>qi_ext<mode>_1): Ditto. Rename from *<code>qi_ext_1. | |
19318 | (*<code>qi_ext<mode>_2): Ditto. Rename from *<code>qi_ext_2. | |
19319 | (xorqi_ext_1_cc): Use HImode instead of SImode for ZERO_EXTRACT RTX. | |
19320 | (*xorqi_ext<mode>_1_cc): Use SWI248 mode iterator instead of SImode | |
19321 | for ZERO_EXTRACT RTX. Use SWI248 mode iterator for the first | |
19322 | operand of ZERO_EXTRACT RTX. Change ext_register_operand predicate | |
19323 | to register_operand. Rename from *xorqi_ext_1_cc. | |
19324 | * config/i386/i386-expand.c (ix86_split_idivmod): Emit ZERO_EXTRACT | |
19325 | in mode, matching its first operand. | |
19326 | (promote_duplicated_reg): Update for renamed insv<mode>_1. | |
19327 | * config/i386/predicates.md (ext_register_operand): Remove predicate. | |
19328 | ||
19329 | 2020-06-18 Martin Sebor <msebor@redhat.com> | |
19330 | ||
19331 | PR middle-end/95667 | |
19332 | PR middle-end/92814 | |
19333 | * builtins.c (compute_objsize): Remove call to | |
19334 | compute_builtin_object_size and instead compute conservative sizes | |
19335 | directly here. | |
19336 | ||
19337 | 2020-06-18 Martin Liska <mliska@suse.cz> | |
19338 | ||
19339 | * coretypes.h (struct iterator_range): New type. | |
19340 | * tree-vect-patterns.c (vect_determine_precisions): Use | |
19341 | range-based iterator. | |
19342 | (vect_pattern_recog): Likewise. | |
19343 | * tree-vect-slp.c (_bb_vec_info): Likewise. | |
19344 | (_bb_vec_info::~_bb_vec_info): Likewise. | |
19345 | (vect_slp_check_for_constructors): Likewise. | |
19346 | * tree-vectorizer.h:Add new iterators | |
19347 | and functions that use it. | |
19348 | ||
19349 | 2020-06-18 Martin Liska <mliska@suse.cz> | |
19350 | ||
19351 | * config/rs6000/rs6000-call.c (fold_build_vec_cmp): | |
19352 | Since 502d63b6d6141597bb18fd23c87736a1b384cf8f, first argument | |
19353 | of a VEC_COND_EXPR cannot be tcc_comparison and so that | |
19354 | a SSA_NAME needs to be created before we use it for the first | |
19355 | argument of the VEC_COND_EXPR. | |
19356 | (fold_compare_helper): Pass gsi to fold_build_vec_cmp. | |
19357 | ||
19358 | 2020-06-18 Richard Biener <rguenther@suse.de> | |
19359 | ||
19360 | PR middle-end/95739 | |
19361 | * internal-fn.c (expand_vect_cond_optab_fn): Move the result | |
19362 | to the target if necessary. | |
19363 | (expand_vect_cond_mask_optab_fn): Likewise. | |
19364 | ||
19365 | 2020-06-18 Martin Liska <mliska@suse.cz> | |
19366 | ||
19367 | * tree-ssa-reassoc.c (ovce_extract_ops): Replace *vcond with | |
19368 | vcond as we check for NULL pointer. | |
19369 | ||
19370 | 2020-06-18 Tobias Burnus <tobias@codesourcery.com> | |
19371 | ||
19372 | * gimple-pretty-print.c (dump_binary_rhs): Use braces to | |
19373 | silence empty-body warning with gcc_fallthrough. | |
19374 | ||
19375 | 2020-06-18 Jakub Jelinek <jakub@redhat.com> | |
19376 | ||
19377 | PR tree-optimization/95699 | |
19378 | * tree-ssa-phiopt.c (minmax_replacement): Treat (signed int)x < 0 | |
19379 | as x > INT_MAX and (signed int)x >= 0 as x <= INT_MAX. Move variable | |
19380 | declarations to the statements that set them where possible. | |
19381 | ||
19382 | 2020-06-18 Jakub Jelinek <jakub@redhat.com> | |
19383 | ||
19384 | PR target/95713 | |
19385 | * tree-ssa-forwprop.c (simplify_vector_constructor): Don't allow | |
19386 | scalar mode halfvectype other than vector boolean for | |
19387 | VEC_PACK_TRUNC_EXPR. | |
19388 | ||
19389 | 2020-06-18 Richard Biener <rguenther@suse.de> | |
19390 | ||
19391 | * varasm.c (assemble_variable): Make sure to not | |
19392 | defer output when outputting addressed constants. | |
19393 | (output_constant_def_contents): Likewise. | |
19394 | (add_constant_to_table): Take and pass on whether to | |
19395 | defer output. | |
19396 | (output_addressed_constants): Likewise. | |
19397 | (output_constant_def): Pass on whether to defer output | |
19398 | to add_constant_to_table. | |
19399 | (tree_output_constant_def): Defer output of constants. | |
19400 | ||
19401 | 2020-06-18 Richard Biener <rguenther@suse.de> | |
19402 | ||
19403 | * tree-vectorizer.h (_slp_tree::two_operators): Remove. | |
19404 | (_slp_tree::lane_permutation): New member. | |
19405 | (_slp_tree::code): Likewise. | |
19406 | (SLP_TREE_TWO_OPERATORS): Remove. | |
19407 | (SLP_TREE_LANE_PERMUTATION): New. | |
19408 | (SLP_TREE_CODE): Likewise. | |
19409 | (vect_stmt_dominates_stmt_p): Declare. | |
19410 | * tree-vectorizer.c (vect_stmt_dominates_stmt_p): New function. | |
19411 | * tree-vect-stmts.c (vect_model_simple_cost): Remove | |
19412 | SLP_TREE_TWO_OPERATORS handling. | |
19413 | * tree-vect-slp.c (_slp_tree::_slp_tree): Amend. | |
19414 | (_slp_tree::~_slp_tree): Likewise. | |
19415 | (vect_two_operations_perm_ok_p): Remove. | |
19416 | (vect_build_slp_tree_1): Remove verification of two-operator | |
19417 | permutation here. | |
19418 | (vect_build_slp_tree_2): When we have two different operators | |
19419 | build two computation SLP nodes and a blend. | |
19420 | (vect_print_slp_tree): Print the lane permutation if it exists. | |
19421 | (slp_copy_subtree): Copy it. | |
19422 | (vect_slp_rearrange_stmts): Re-arrange it. | |
19423 | (vect_slp_analyze_node_operations_1): Handle SLP_TREE_CODE | |
19424 | VEC_PERM_EXPR explicitely. | |
19425 | (vect_schedule_slp_instance): Likewise. Remove old | |
19426 | SLP_TREE_TWO_OPERATORS code. | |
19427 | (vectorizable_slp_permutation): New function. | |
19428 | ||
19429 | 2020-06-18 Martin Liska <mliska@suse.cz> | |
19430 | ||
19431 | * tree-vect-generic.c (expand_vector_condition): Check | |
19432 | for gassign before inspecting RHS. | |
19433 | ||
19434 | 2020-06-17 Thomas Schwinge <thomas@codesourcery.com> | |
19435 | ||
19436 | * gimplify.c (omp_notice_threadprivate_variable) | |
19437 | (omp_default_clause, omp_notice_variable): 'inform' after 'error' | |
19438 | diagnostic. Adjust all users. | |
19439 | ||
19440 | 2020-06-17 Thomas Schwinge <thomas@codesourcery.com> | |
19441 | ||
19442 | * hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl == | |
19443 | NULL_TREE' check earlier. | |
19444 | ||
19445 | 2020-06-17 Forrest Timour <forrest.timour@gmail.com> | |
19446 | ||
19447 | * doc/extend.texi (attribute access): Fix a typo. | |
19448 | ||
19449 | 2020-06-17 Bin Cheng <bin.cheng@linux.alibaba.com> | |
19450 | Kaipeng Zhou <zhoukaipeng3@huawei.com> | |
19451 | ||
19452 | PR tree-optimization/95199 | |
19453 | * tree-vect-stmts.c: Eliminate common stmts for bump and offset in | |
19454 | strided load/store operations and remove redundant code. | |
19455 | ||
19456 | 2020-06-17 Richard Sandiford <richard.sandiford@arm.com> | |
19457 | ||
19458 | * coretypes.h (first_type): New alias template. | |
19459 | * recog.h (insn_gen_fn::operator()): Use it instead of a decltype. | |
19460 | Remove spurious “...” and split the function type out into a typedef. | |
19461 | ||
19462 | 2020-06-17 Andreas Krebbel <krebbel@linux.ibm.com> | |
19463 | ||
19464 | * config/s390/s390.c (s390_fix_long_loop_prediction): Exit early | |
19465 | for PARALLELs. | |
19466 | ||
19467 | 2020-06-17 Richard Biener <rguenther@suse.de> | |
19468 | ||
19469 | * tree-vect-slp.c (vect_build_slp_tree_1): Set the passed | |
19470 | in *vectype parameter. | |
19471 | (vect_build_slp_tree_2): Set SLP_TREE_VECTYPE from what | |
19472 | vect_build_slp_tree_1 computed. | |
19473 | (vect_analyze_slp_instance): Set SLP_TREE_VECTYPE. | |
19474 | (vect_slp_analyze_node_operations_1): Use the SLP node vector type. | |
19475 | (vect_schedule_slp_instance): Likewise. | |
19476 | * tree-vect-stmts.c (vect_is_simple_use): Take the vector type | |
19477 | from SLP_TREE_VECTYPE. | |
19478 | ||
19479 | 2020-06-17 Richard Biener <rguenther@suse.de> | |
19480 | ||
19481 | PR tree-optimization/95717 | |
19482 | * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): | |
19483 | Move BB SSA updating before exit/latch PHI current def copying. | |
19484 | ||
19485 | 2020-06-17 Martin Liska <mliska@suse.cz> | |
19486 | ||
19487 | * Makefile.in: Add new file. | |
19488 | * expr.c (expand_expr_real_2): Add gcc_unreachable as we should | |
19489 | not meet this condition. | |
19490 | (do_store_flag): Likewise. | |
19491 | * gimplify.c (gimplify_expr): Gimplify first argument of | |
19492 | VEC_COND_EXPR to be a SSA name. | |
19493 | * internal-fn.c (vec_cond_mask_direct): New. | |
19494 | (vec_cond_direct): Likewise. | |
19495 | (vec_condu_direct): Likewise. | |
19496 | (vec_condeq_direct): Likewise. | |
19497 | (expand_vect_cond_optab_fn): New. | |
19498 | (expand_vec_cond_optab_fn): Likewise. | |
19499 | (expand_vec_condu_optab_fn): Likewise. | |
19500 | (expand_vec_condeq_optab_fn): Likewise. | |
19501 | (expand_vect_cond_mask_optab_fn): Likewise. | |
19502 | (expand_vec_cond_mask_optab_fn): Likewise. | |
19503 | (direct_vec_cond_mask_optab_supported_p): Likewise. | |
19504 | (direct_vec_cond_optab_supported_p): Likewise. | |
19505 | (direct_vec_condu_optab_supported_p): Likewise. | |
19506 | (direct_vec_condeq_optab_supported_p): Likewise. | |
19507 | * internal-fn.def (VCOND): New OPTAB. | |
19508 | (VCONDU): Likewise. | |
19509 | (VCONDEQ): Likewise. | |
19510 | (VCOND_MASK): Likewise. | |
19511 | * optabs.c (get_rtx_code): Make it global. | |
19512 | (expand_vec_cond_mask_expr): Removed. | |
19513 | (expand_vec_cond_expr): Removed. | |
19514 | * optabs.h (expand_vec_cond_expr): Likewise. | |
19515 | (vector_compare_rtx): Make it global. | |
19516 | * passes.def: Add new pass_gimple_isel pass. | |
19517 | * tree-cfg.c (verify_gimple_assign_ternary): Add check | |
19518 | for VEC_COND_EXPR about first argument. | |
19519 | * tree-pass.h (make_pass_gimple_isel): New. | |
19520 | * tree-ssa-forwprop.c (pass_forwprop::execute): Prevent | |
19521 | propagation of the first argument of a VEC_COND_EXPR. | |
19522 | * tree-ssa-reassoc.c (ovce_extract_ops): Support SSA_NAME as | |
19523 | first argument of a VEC_COND_EXPR. | |
19524 | (optimize_vec_cond_expr): Likewise. | |
19525 | * tree-vect-generic.c (expand_vector_divmod): Make SSA_NAME | |
19526 | for a first argument of created VEC_COND_EXPR. | |
19527 | (expand_vector_condition): Fix coding style. | |
19528 | * tree-vect-stmts.c (vectorizable_condition): Gimplify | |
19529 | first argument. | |
19530 | * gimple-isel.cc: New file. | |
19531 | ||
19532 | 2020-06-17 Andrew Stubbs <ams@codesourcery.com> | |
19533 | ||
19534 | * config/gcn/gcn-hsa.h (TEXT_SECTION_ASM_OP): Use ".text". | |
19535 | (BSS_SECTION_ASM_OP): Use ".bss". | |
19536 | (ASM_SPEC): Remove "-mattr=-code-object-v3". | |
19537 | (LINK_SPEC): Add "--export-dynamic". | |
19538 | * config/gcn/gcn-opts.h (processor_type): Replace PROCESSOR_VEGA with | |
19539 | PROCESSOR_VEGA10 and PROCESSOR_VEGA20. | |
19540 | * config/gcn/gcn-run.c (HSA_RUNTIME_LIB): Use ".so.1" variant. | |
19541 | (load_image): Remove obsolete relocation handling. | |
19542 | Add ".kd" suffix to the symbol names. | |
19543 | * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT): Set to 62. | |
19544 | (gcn_option_override): Update gcn_isa test. | |
19545 | (gcn_kernel_arg_types): Update all the assembler directives. | |
19546 | Remove the obsolete options. | |
19547 | (gcn_conditional_register_usage): Update MAX_NORMAL_SGPR_COUNT usage. | |
19548 | (gcn_omp_device_kind_arch_isa): Handle PROCESSOR_VEGA10 and | |
19549 | PROCESSOR_VEGA20. | |
19550 | (output_file_start): Rework assembler file header. | |
19551 | (gcn_hsa_declare_function_name): Rework kernel metadata. | |
19552 | * config/gcn/gcn.h (GCN_KERNEL_ARG_TYPES): Set to 16. | |
19553 | * config/gcn/gcn.opt (PROCESSOR_VEGA): Remove enum. | |
19554 | (PROCESSOR_VEGA10): New enum value. | |
19555 | (PROCESSOR_VEGA20): New enum value. | |
19556 | ||
19557 | 2020-06-17 Martin Liska <mliska@suse.cz> | |
19558 | ||
19559 | * gcov-dump.c (print_version): Collapse lisence header to 2 lines | |
19560 | in --version. | |
19561 | * gcov-tool.c (print_version): Likewise. | |
19562 | * gcov.c (print_version): Likewise. | |
19563 | ||
19564 | 2020-06-17 liuhongt <hongtao.liu@intel.com> | |
19565 | ||
19566 | PR target/95524 | |
19567 | * config/i386/i386-expand.c | |
19568 | (ix86_expand_vec_shift_qihi_constant): New function. | |
19569 | * config/i386/i386-protos.h | |
19570 | (ix86_expand_vec_shift_qihi_constant): Declare. | |
19571 | * config/i386/sse.md (<shift_insn><mode>3): Optimize shift | |
19572 | V*QImode by constant. | |
19573 | ||
19574 | 2020-06-16 Aldy Hernandez <aldyh@redhat.com> | |
19575 | ||
19576 | PR tree-optimization/95649 | |
19577 | * tree-ssa-propagate.c (propagate_into_phi_args): Do not propagate unless | |
19578 | value is a constant. | |
19579 | ||
19580 | 2020-06-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
19581 | ||
19582 | * config.in: Regenerate. | |
19583 | * config/s390/s390.c (print_operand): Emit vector alignment hints | |
19584 | for target z13, if AS accepts them. For other targets the logic | |
19585 | stays the same. | |
19586 | * config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define | |
19587 | macro. | |
19588 | * configure: Regenerate. | |
19589 | * configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13. | |
19590 | ||
19591 | 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
19592 | ||
19593 | * config/arm/arm_mve.h (__arm_vaddq_m_n_s8): Correct the intrinsic | |
19594 | arguments. | |
19595 | (__arm_vaddq_m_n_s32): Likewise. | |
19596 | (__arm_vaddq_m_n_s16): Likewise. | |
19597 | (__arm_vaddq_m_n_u8): Likewise. | |
19598 | (__arm_vaddq_m_n_u32): Likewise. | |
19599 | (__arm_vaddq_m_n_u16): Likewise. | |
19600 | (__arm_vaddq_m): Modify polymorphic variant. | |
19601 | ||
19602 | 2020-06-16 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
19603 | ||
19604 | * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Correct the predicate | |
19605 | and constraint of all the operands. | |
19606 | (mve_sqrshrl_sat<supf>_di): Likewise. | |
19607 | (mve_uqrshl_si): Likewise. | |
19608 | (mve_sqrshr_si): Likewise. | |
19609 | (mve_uqshll_di): Likewise. | |
19610 | (mve_urshrl_di): Likewise. | |
19611 | (mve_uqshl_si): Likewise. | |
19612 | (mve_urshr_si): Likewise. | |
19613 | (mve_sqshl_si): Likewise. | |
19614 | (mve_srshr_si): Likewise. | |
19615 | (mve_srshrl_di): Likewise. | |
19616 | (mve_sqshll_di): Likewise. | |
19617 | * config/arm/predicates.md (arm_low_register_operand): Define. | |
19618 | ||
19619 | 2020-06-16 Jakub Jelinek <jakub@redhat.com> | |
19620 | ||
19621 | * tree.h (OMP_FOR_NON_RECTANGULAR): Define. | |
19622 | * gimplify.c (gimplify_omp_for): Diagnose schedule, ordered | |
19623 | or dist_schedule clause on non-rectangular loops. Handle | |
19624 | gimplification of non-rectangular lb/b expressions. When changing | |
19625 | iteration variable, adjust also non-rectangular lb/b expressions | |
19626 | referencing that. | |
19627 | * omp-general.h (struct omp_for_data_loop): Add m1, m2 and outer | |
19628 | members. | |
19629 | (struct omp_for_data): Add non_rect member. | |
19630 | * omp-general.c (omp_extract_for_data): Handle non-rectangular | |
19631 | loops. Fill in non_rect, m1, m2 and outer. | |
19632 | * omp-low.c (lower_omp_for): Handle non-rectangular lb/b expressions. | |
19633 | * omp-expand.c (expand_omp_for): Emit sorry_at for unsupported | |
19634 | non-rectangular loop cases and assert for cases that can't be | |
19635 | non-rectangular. | |
19636 | * tree-pretty-print.c (dump_mem_ref): Formatting fix. | |
19637 | (dump_omp_loop_non_rect_expr): New function. | |
19638 | (dump_generic_node): Handle non-rectangular OpenMP loops. | |
19639 | * tree-pretty-print.h (dump_omp_loop_non_rect_expr): Declare. | |
19640 | * gimple-pretty-print.c (dump_gimple_omp_for): Handle non-rectangular | |
19641 | OpenMP loops. | |
19642 | ||
19643 | 2020-06-16 Richard Biener <rguenther@suse.de> | |
19644 | ||
19645 | PR middle-end/95690 | |
19646 | * varasm.c (build_constant_desc): Remove set_mem_attributes call. | |
19647 | ||
19648 | 2020-06-16 Kito Cheng <kito.cheng@sifive.com> | |
19649 | ||
19650 | PR target/95683 | |
19651 | * config/riscv/riscv.c (riscv_gpr_save_operation_p): Remove | |
19652 | assertion and turn it into a early exit check. | |
19653 | ||
19654 | 2020-06-15 Eric Botcazou <ebotcazou@adacore.com> | |
19655 | ||
19656 | * gimplify.c (gimplify_init_constructor) <AGGREGATE_TYPE>: Declare | |
19657 | new ENSURE_SINGLE_ACCESS constant and move variables down. If it is | |
19658 | true and all elements are zero, then always clear. Return GS_ERROR | |
19659 | if a temporary would be created for it and NOTIFY_TEMP_CREATION set. | |
19660 | (gimplify_modify_expr_rhs) <VAR_DECL>: If the target is volatile but | |
19661 | the type is aggregate non-addressable, ask gimplify_init_constructor | |
19662 | whether it can generate a single access to the target. | |
19663 | ||
19664 | 2020-06-15 Eric Botcazou <ebotcazou@adacore.com> | |
19665 | ||
19666 | * tree-sra.c (propagate_subaccesses_from_rhs): When a non-scalar | |
19667 | access on the LHS is replaced with a scalar access, propagate the | |
19668 | TYPE_REVERSE_STORAGE_ORDER flag of the type of the original access. | |
19669 | ||
19670 | 2020-06-15 Max Filippov <jcmvbkbc@gmail.com> | |
19671 | ||
19672 | * config/xtensa/xtensa.c (TARGET_HAVE_TLS): Remove | |
19673 | TARGET_THREADPTR reference. | |
19674 | (xtensa_tls_symbol_p, xtensa_tls_referenced_p): Use | |
19675 | targetm.have_tls instead of TARGET_HAVE_TLS. | |
19676 | (xtensa_option_override): Set targetm.have_tls to false in | |
19677 | configurations without THREADPTR. | |
19678 | ||
19679 | 2020-06-15 Max Filippov <jcmvbkbc@gmail.com> | |
19680 | ||
19681 | * config/xtensa/elf.h (ASM_SPEC, LINK_SPEC): Pass ABI switch to | |
19682 | assembler/linker. | |
19683 | * config/xtensa/linux.h (ASM_SPEC, LINK_SPEC): Ditto. | |
19684 | * config/xtensa/uclinux.h (ASM_SPEC, LINK_SPEC): Ditto. | |
19685 | * config/xtensa/xtensa.c (xtensa_option_override): Initialize | |
19686 | xtensa_windowed_abi if needed. | |
19687 | * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI_DEFAULT): New | |
19688 | macro. | |
19689 | (TARGET_WINDOWED_ABI): Redefine to xtensa_windowed_abi. | |
19690 | * config/xtensa/xtensa.opt (xtensa_windowed_abi): New target | |
19691 | option variable. | |
19692 | (mabi=call0, mabi=windowed): New options. | |
19693 | * doc/invoke.texi: Document new -mabi= Xtensa-specific options. | |
19694 | ||
19695 | 2020-06-15 Max Filippov <jcmvbkbc@gmail.com> | |
19696 | ||
19697 | * config/xtensa/xtensa.c (xtensa_can_eliminate): New function. | |
19698 | (TARGET_CAN_ELIMINATE): New macro. | |
19699 | * config/xtensa/xtensa.h | |
19700 | (XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM) | |
19701 | (XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM): New macros. | |
19702 | (HARD_FRAME_POINTER_REGNUM): Define using | |
19703 | XTENSA_*_HARD_FRAME_POINTER_REGNUM. | |
19704 | (ELIMINABLE_REGS): Replace lines with HARD_FRAME_POINTER_REGNUM | |
19705 | by lines with XTENSA_WINDOWED_HARD_FRAME_POINTER_REGNUM and | |
19706 | XTENSA_CALL0_HARD_FRAME_POINTER_REGNUM. | |
19707 | ||
19708 | 2020-06-15 Felix Yang <felix.yang@huawei.com> | |
19709 | ||
19710 | * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Rename | |
19711 | parameter to loop_vinfo and update uses. Use LOOP_VINFO_DATAREFS | |
19712 | when possible. | |
19713 | (vect_analyze_data_refs_alignment): Likewise, and use LOOP_VINFO_DDRS | |
19714 | when possible. | |
19715 | * tree-vect-loop.c (vect_dissolve_slp_only_groups): Use | |
19716 | LOOP_VINFO_DATAREFS when possible. | |
19717 | (update_epilogue_loop_vinfo): Likewise. | |
19718 | ||
19719 | 2020-06-15 Kito Cheng <kito.cheng@sifive.com> | |
19720 | ||
19721 | * config/riscv/riscv.c (riscv_gen_gpr_save_insn): Change type to | |
19722 | unsigned for i. | |
19723 | (riscv_gpr_save_operation_p): Change type to unsigned for i and | |
19724 | len. | |
19725 | ||
19726 | 2020-06-15 Hongtao Liu <hongtao.liu@intel.com> | |
19727 | ||
19728 | PR target/95488 | |
19729 | * config/i386/i386-expand.c (ix86_expand_vecmul_qihi): New | |
19730 | function. | |
19731 | * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Declare. | |
19732 | * config/i386/sse.md (mul<mode>3): Drop mask_name since | |
19733 | there's no real simd int8 multiplication instruction with | |
19734 | mask. Also optimize it under TARGET_AVX512BW. | |
19735 | (mulv8qi3): New expander. | |
19736 | ||
19737 | 2020-06-12 Marco Elver <elver@google.com> | |
19738 | ||
19739 | * gimplify.c (gimplify_function_tree): Optimize and do not emit | |
19740 | IFN_TSAN_FUNC_EXIT in a finally block if we do not need it. | |
19741 | * params.opt: Add --param=tsan-instrument-func-entry-exit=. | |
19742 | * tsan.c (instrument_memory_accesses): Make | |
19743 | fentry_exit_instrument bool depend on new param. | |
19744 | ||
19745 | 2020-06-12 Felix Yang <felix.yang@huawei.com> | |
19746 | ||
19747 | PR tree-optimization/95570 | |
19748 | * tree-vect-data-refs.c (vect_relevant_for_alignment_p): New function. | |
19749 | (vect_verify_datarefs_alignment): Call it to filter out data references | |
19750 | in the loop whose alignment is irrelevant. | |
19751 | (vect_get_peeling_costs_all_drs): Likewise. | |
19752 | (vect_peeling_supportable): Likewise. | |
19753 | (vect_enhance_data_refs_alignment): Likewise. | |
19754 | ||
19755 | 2020-06-12 Richard Biener <rguenther@suse.de> | |
19756 | ||
19757 | PR tree-optimization/95633 | |
19758 | * tree-vect-stmts.c (vectorizable_condition): Properly | |
19759 | guard the vec_else_clause access with EXTRACT_LAST_REDUCTION. | |
19760 | ||
19761 | 2020-06-12 Martin Liška <mliska@suse.cz> | |
19762 | ||
19763 | * cgraphunit.c (process_symver_attribute): Wrap weakref keyword. | |
19764 | * dbgcnt.c (dbg_cnt_set_limit_by_index): Do not print extra new | |
19765 | line. | |
19766 | * lto-wrapper.c (merge_and_complain): Wrap option names. | |
19767 | ||
19768 | 2020-06-12 Kewen Lin <linkw@gcc.gnu.org> | |
19769 | ||
19770 | * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Rename | |
19771 | LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename | |
19772 | LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE. | |
19773 | (vect_set_loop_condition_masked): Renamed to ... | |
19774 | (vect_set_loop_condition_partial_vectors): ... this. Rename | |
19775 | LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. Rename | |
19776 | vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors. | |
19777 | (vect_set_loop_condition_unmasked): Renamed to ... | |
19778 | (vect_set_loop_condition_normal): ... this. | |
19779 | (vect_set_loop_condition): Rename vect_set_loop_condition_unmasked to | |
19780 | vect_set_loop_condition_normal. Rename vect_set_loop_condition_masked | |
19781 | to vect_set_loop_condition_partial_vectors. | |
19782 | (vect_prepare_for_masked_peels): Rename LOOP_VINFO_MASK_COMPARE_TYPE | |
19783 | to LOOP_VINFO_RGROUP_COMPARE_TYPE. | |
19784 | * tree-vect-loop.c (vect_known_niters_smaller_than_vf): New, factored | |
19785 | out from ... | |
19786 | (vect_analyze_loop_costing): ... this. | |
19787 | (_loop_vec_info::_loop_vec_info): Rename mask_compare_type to | |
19788 | compare_type. | |
19789 | (vect_min_prec_for_max_niters): New, factored out from ... | |
19790 | (vect_verify_full_masking): ... this. Rename | |
19791 | vect_iv_limit_for_full_masking to vect_iv_limit_for_partial_vectors. | |
19792 | Rename LOOP_VINFO_MASK_COMPARE_TYPE to LOOP_VINFO_RGROUP_COMPARE_TYPE. | |
19793 | Rename LOOP_VINFO_MASK_IV_TYPE to LOOP_VINFO_RGROUP_IV_TYPE. | |
19794 | (vectorizable_reduction): Update some dumpings with partial | |
19795 | vectors instead of fully-masked. | |
19796 | (vectorizable_live_operation): Likewise. | |
19797 | (vect_iv_limit_for_full_masking): Renamed to ... | |
19798 | (vect_iv_limit_for_partial_vectors): ... this. | |
19799 | * tree-vect-stmts.c (check_load_store_masking): Renamed to ... | |
19800 | (check_load_store_for_partial_vectors): ... this. Update some | |
19801 | dumpings with partial vectors instead of fully-masked. | |
19802 | (vectorizable_store): Rename check_load_store_masking to | |
19803 | check_load_store_for_partial_vectors. | |
19804 | (vectorizable_load): Likewise. | |
19805 | * tree-vectorizer.h (LOOP_VINFO_MASK_COMPARE_TYPE): Renamed to ... | |
19806 | (LOOP_VINFO_RGROUP_COMPARE_TYPE): ... this. | |
19807 | (LOOP_VINFO_MASK_IV_TYPE): Renamed to ... | |
19808 | (LOOP_VINFO_RGROUP_IV_TYPE): ... this. | |
19809 | (vect_iv_limit_for_full_masking): Renamed to ... | |
19810 | (vect_iv_limit_for_partial_vectors): this. | |
19811 | (_loop_vec_info): Rename mask_compare_type to rgroup_compare_type. | |
19812 | Rename iv_type to rgroup_iv_type. | |
19813 | ||
19814 | 2020-06-12 Richard Sandiford <richard.sandiford@arm.com> | |
19815 | ||
19816 | * recog.h (insn_gen_fn::f0, insn_gen_fn::f1, insn_gen_fn::f2) | |
19817 | (insn_gen_fn::f3, insn_gen_fn::f4, insn_gen_fn::f5, insn_gen_fn::f6) | |
19818 | (insn_gen_fn::f7, insn_gen_fn::f8, insn_gen_fn::f9, insn_gen_fn::f10) | |
19819 | (insn_gen_fn::f11, insn_gen_fn::f12, insn_gen_fn::f13) | |
19820 | (insn_gen_fn::f14, insn_gen_fn::f15, insn_gen_fn::f16): Delete. | |
19821 | (insn_gen_fn::operator()): Replace overloaded definitions with | |
19822 | a parameter-pack version. | |
19823 | ||
19824 | 2020-06-12 H.J. Lu <hjl.tools@gmail.com> | |
19825 | ||
19826 | PR target/93492 | |
19827 | * config/i386/i386-features.c (rest_of_insert_endbranch): | |
19828 | Renamed to ... | |
19829 | (rest_of_insert_endbr_and_patchable_area): Change return type | |
19830 | to void. Add need_endbr and patchable_area_size arguments. | |
19831 | Don't call timevar_push nor timevar_pop. Replace | |
19832 | endbr_queued_at_entrance with insn_queued_at_entrance. Insert | |
19833 | UNSPECV_PATCHABLE_AREA for patchable area. | |
19834 | (pass_data_insert_endbranch): Renamed to ... | |
19835 | (pass_data_insert_endbr_and_patchable_area): This. Change | |
19836 | pass name to endbr_and_patchable_area. | |
19837 | (pass_insert_endbranch): Renamed to ... | |
19838 | (pass_insert_endbr_and_patchable_area): This. Add need_endbr | |
19839 | and patchable_area_size;. | |
19840 | (pass_insert_endbr_and_patchable_area::gate): Set and check | |
19841 | need_endbr and patchable_area_size. | |
19842 | (pass_insert_endbr_and_patchable_area::execute): Call | |
19843 | timevar_push and timevar_pop. Pass need_endbr and | |
19844 | patchable_area_size to rest_of_insert_endbr_and_patchable_area. | |
19845 | (make_pass_insert_endbranch): Renamed to ... | |
19846 | (make_pass_insert_endbr_and_patchable_area): This. | |
19847 | * config/i386/i386-passes.def: Replace pass_insert_endbranch | |
19848 | with pass_insert_endbr_and_patchable_area. | |
19849 | * config/i386/i386-protos.h (ix86_output_patchable_area): New. | |
19850 | (make_pass_insert_endbranch): Renamed to ... | |
19851 | (make_pass_insert_endbr_and_patchable_area): This. | |
19852 | * config/i386/i386.c (ix86_asm_output_function_label): Set | |
19853 | function_label_emitted to true. | |
19854 | (ix86_print_patchable_function_entry): New function. | |
19855 | (ix86_output_patchable_area): Likewise. | |
19856 | (x86_function_profiler): Replace endbr_queued_at_entrance with | |
19857 | insn_queued_at_entrance. Generate ENDBR only for TYPE_ENDBR. | |
19858 | Call ix86_output_patchable_area to generate patchable area if | |
19859 | needed. | |
19860 | (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): New. | |
19861 | * config/i386/i386.h (queued_insn_type): New. | |
19862 | (machine_function): Add function_label_emitted. Replace | |
19863 | endbr_queued_at_entrance with insn_queued_at_entrance. | |
19864 | * config/i386/i386.md (UNSPECV_PATCHABLE_AREA): New. | |
19865 | (patchable_area): New. | |
19866 | ||
19867 | 2020-06-11 Martin Liska <mliska@suse.cz> | |
19868 | ||
19869 | * config/rs6000/rs6000.c (rs6000_density_test): Fix GNU coding | |
19870 | style. | |
19871 | ||
19872 | 2020-06-11 Martin Liska <mliska@suse.cz> | |
19873 | ||
19874 | PR target/95627 | |
19875 | * config/rs6000/rs6000.c (rs6000_density_test): Skip debug | |
19876 | statements. | |
19877 | ||
19878 | 2020-06-11 Martin Liska <mliska@suse.cz> | |
19879 | Jakub Jelinek <jakub@redhat.com> | |
19880 | ||
19881 | PR sanitizer/95634 | |
19882 | * asan.c (asan_emit_stack_protection): Fix emission for ilp32 | |
19883 | by using Pmode instead of ptr_mode. | |
19884 | ||
19885 | 2020-06-11 Kewen Lin <linkw@gcc.gnu.org> | |
19886 | ||
19887 | * tree-vect-loop-manip.c (vect_set_loop_mask): Renamed to ... | |
19888 | (vect_set_loop_control): ... this. | |
19889 | (vect_maybe_permute_loop_masks): Rename rgroup_masks related things. | |
19890 | (vect_set_loop_masks_directly): Renamed to ... | |
19891 | (vect_set_loop_controls_directly): ... this. Also rename some | |
19892 | variables with ctrl instead of mask. Rename vect_set_loop_mask to | |
19893 | vect_set_loop_control. | |
19894 | (vect_set_loop_condition_masked): Rename rgroup_masks related things. | |
19895 | Also rename some variables with ctrl instead of mask. | |
19896 | * tree-vect-loop.c (release_vec_loop_masks): Renamed to ... | |
19897 | (release_vec_loop_controls): ... this. Rename rgroup_masks related | |
19898 | things. | |
19899 | (_loop_vec_info::~_loop_vec_info): Rename release_vec_loop_masks to | |
19900 | release_vec_loop_controls. | |
19901 | (can_produce_all_loop_masks_p): Rename rgroup_masks related things. | |
19902 | (vect_get_max_nscalars_per_iter): Likewise. | |
19903 | (vect_estimate_min_profitable_iters): Likewise. | |
19904 | (vect_record_loop_mask): Likewise. | |
19905 | (vect_get_loop_mask): Likewise. | |
19906 | * tree-vectorizer.h (struct rgroup_masks): Renamed to ... | |
19907 | (struct rgroup_controls): ... this. Also rename mask_type | |
19908 | to type and rename masks to controls. | |
19909 | ||
19910 | 2020-06-11 Kewen Lin <linkw@gcc.gnu.org> | |
19911 | ||
19912 | * tree-vect-loop-manip.c (vect_set_loop_condition): Rename | |
19913 | LOOP_VINFO_FULLY_MASKED_P to LOOP_VINFO_USING_PARTIAL_VECTORS_P. | |
19914 | (vect_gen_vector_loop_niters): Likewise. | |
19915 | (vect_do_peeling): Likewise. | |
19916 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename | |
19917 | fully_masked_p to using_partial_vectors_p. | |
19918 | (vect_analyze_loop_costing): Rename LOOP_VINFO_FULLY_MASKED_P to | |
19919 | LOOP_VINFO_USING_PARTIAL_VECTORS_P. | |
19920 | (determine_peel_for_niter): Likewise. | |
19921 | (vect_estimate_min_profitable_iters): Likewise. | |
19922 | (vect_transform_loop): Likewise. | |
19923 | * tree-vectorizer.h (LOOP_VINFO_FULLY_MASKED_P): Updated. | |
19924 | (LOOP_VINFO_USING_PARTIAL_VECTORS_P): New macro. | |
19925 | ||
19926 | 2020-06-11 Kewen Lin <linkw@gcc.gnu.org> | |
19927 | ||
19928 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Rename | |
19929 | can_fully_mask_p to can_use_partial_vectors_p. | |
19930 | (vect_analyze_loop_2): Rename LOOP_VINFO_CAN_FULLY_MASK_P to | |
19931 | LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P. Rename saved_can_fully_mask_p | |
19932 | to saved_can_use_partial_vectors_p. | |
19933 | (vectorizable_reduction): Rename LOOP_VINFO_CAN_FULLY_MASK_P to | |
19934 | LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P. | |
19935 | (vectorizable_live_operation): Likewise. | |
19936 | * tree-vect-stmts.c (permute_vec_elements): Likewise. | |
19937 | (check_load_store_masking): Likewise. | |
19938 | (vectorizable_operation): Likewise. | |
19939 | (vectorizable_store): Likewise. | |
19940 | (vectorizable_load): Likewise. | |
19941 | (vectorizable_condition): Likewise. | |
19942 | * tree-vectorizer.h (LOOP_VINFO_CAN_FULLY_MASK_P): Renamed to ... | |
19943 | (LOOP_VINFO_CAN_USE_PARTIAL_VECTORS_P): ... this. | |
19944 | (_loop_vec_info): Rename can_fully_mask_p to can_use_partial_vectors_p. | |
19945 | ||
19946 | 2020-06-11 Martin Liska <mliska@suse.cz> | |
19947 | ||
19948 | * optc-save-gen.awk: Quote error string. | |
19949 | ||
19950 | 2020-06-11 Alexandre Oliva <oliva@adacore.com> | |
19951 | ||
19952 | * print-rtl.c (print_mem_expr): Enable TDF_SLIM in dump_flags. | |
19953 | ||
19954 | 2020-06-11 Kito Cheng <kito.cheng@sifive.com> | |
19955 | ||
19956 | * config/riscv/riscv-protos.h (riscv_output_gpr_save): Remove. | |
19957 | * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Update | |
19958 | value. | |
19959 | * config/riscv/riscv.c (riscv_output_gpr_save): Remove. | |
19960 | * config/riscv/riscv.md (gpr_save): Update output asm pattern. | |
19961 | ||
19962 | 2020-06-11 Kito Cheng <kito.cheng@sifive.com> | |
19963 | ||
19964 | * config/riscv/predicates.md (gpr_save_operation): New. | |
19965 | * config/riscv/riscv-protos.h (riscv_gen_gpr_save_insn): New. | |
19966 | (riscv_gpr_save_operation_p): Ditto. | |
19967 | * config/riscv/riscv-sr.c (riscv_remove_unneeded_save_restore_calls): | |
19968 | Ignore USEs for gpr_save patter. | |
19969 | * config/riscv/riscv.c (gpr_save_reg_order): New. | |
19970 | (riscv_expand_prologue): Use riscv_gen_gpr_save_insn to gen gpr_save. | |
19971 | (riscv_gen_gpr_save_insn): New. | |
19972 | (riscv_gpr_save_operation_p): Ditto. | |
19973 | * config/riscv/riscv.md (S3_REGNUM): New. | |
19974 | (S4_REGNUM): Ditto. | |
19975 | (S5_REGNUM): Ditto. | |
19976 | (S6_REGNUM): Ditto. | |
19977 | (S7_REGNUM): Ditto. | |
19978 | (S8_REGNUM): Ditto. | |
19979 | (S9_REGNUM): Ditto. | |
19980 | (S10_REGNUM): Ditto. | |
19981 | (S11_REGNUM): Ditto. | |
19982 | (gpr_save): Model USEs correctly. | |
19983 | ||
19984 | 2020-06-10 Martin Sebor <msebor@redhat.com> | |
19985 | ||
19986 | PR middle-end/95353 | |
19987 | PR middle-end/92939 | |
19988 | * builtins.c (inform_access): New function. | |
19989 | (check_access): Call it. Add argument. | |
19990 | (addr_decl_size): Remove. | |
19991 | (get_range): New function. | |
19992 | (compute_objsize): New overload. Only use compute_builtin_object_size | |
19993 | with raw memory function. | |
19994 | (check_memop_access): Pass new argument to compute_objsize and | |
19995 | check_access. | |
19996 | (expand_builtin_memchr, expand_builtin_strcat): Same. | |
19997 | (expand_builtin_strcpy, expand_builtin_stpcpy_1): Same. | |
19998 | (expand_builtin_stpncpy, check_strncat_sizes): Same. | |
19999 | (expand_builtin_strncat, expand_builtin_strncpy): Same. | |
20000 | (expand_builtin_memcmp): Same. | |
20001 | * builtins.h (check_nul_terminated_array): Declare extern. | |
20002 | (check_access): Add argument. | |
20003 | (struct access_ref, struct access_data): New structs. | |
20004 | * gimple-ssa-warn-restrict.c (clamp_offset): New helper. | |
20005 | (builtin_access::overlap): Call it. | |
20006 | * tree-object-size.c (decl_init_size): Declare extern. | |
20007 | (addr_object_size): Correct offset computation. | |
20008 | * tree-object-size.h (decl_init_size): Declare. | |
20009 | * tree-ssa-strlen.c (handle_integral_assign): Remove a call | |
20010 | to maybe_warn_overflow when assigning to an SSA_NAME. | |
20011 | ||
20012 | 2020-06-10 Richard Biener <rguenther@suse.de> | |
20013 | ||
20014 | * tree-vect-loop.c (vect_determine_vectorization_factor): | |
20015 | Skip debug stmts. | |
20016 | (_loop_vec_info::_loop_vec_info): Likewise. | |
20017 | (vect_update_vf_for_slp): Likewise. | |
20018 | (vect_analyze_loop_operations): Likewise. | |
20019 | (update_epilogue_loop_vinfo): Likewise. | |
20020 | * tree-vect-patterns.c (vect_determine_precisions): Likewise. | |
20021 | (vect_pattern_recog): Likewise. | |
20022 | * tree-vect-slp.c (vect_detect_hybrid_slp): Likewise. | |
20023 | (_bb_vec_info::_bb_vec_info): Likewise. | |
20024 | * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): | |
20025 | Likewise. | |
20026 | ||
20027 | 2020-06-10 Richard Biener <rguenther@suse.de> | |
20028 | ||
20029 | PR tree-optimization/95576 | |
20030 | * tree-vect-slp.c (vect_slp_bb): Skip leading debug stmts. | |
20031 | ||
20032 | 2020-06-10 Haijian Zhang <z.zhanghaijian@huawei.com> | |
20033 | ||
20034 | PR target/95523 | |
20035 | * config/aarch64/aarch64-sve-builtins.h | |
20036 | (sve_switcher::m_old_maximum_field_alignment): New member. | |
20037 | * config/aarch64/aarch64-sve-builtins.cc | |
20038 | (sve_switcher::sve_switcher): Save maximum_field_alignment in | |
20039 | m_old_maximum_field_alignment and clear maximum_field_alignment. | |
20040 | (sve_switcher::~sve_switcher): Restore maximum_field_alignment. | |
20041 | ||
20042 | 2020-06-10 Richard Biener <rguenther@suse.de> | |
20043 | ||
20044 | * tree-vectorizer.h (_slp_tree::vec_stmts): Make it a vector | |
20045 | of gimple * stmts. | |
20046 | (_stmt_vec_info::vec_stmts): Likewise. | |
20047 | (vec_info::stmt_vec_info_ro): New flag. | |
20048 | (vect_finish_replace_stmt): Adjust declaration. | |
20049 | (vect_finish_stmt_generation): Likewise. | |
20050 | (vectorizable_induction): Likewise. | |
20051 | (vect_transform_reduction): Likewise. | |
20052 | (vectorizable_lc_phi): Likewise. | |
20053 | * tree-vect-data-refs.c (vect_create_data_ref_ptr): Do not | |
20054 | allocate stmt infos for increments. | |
20055 | (vect_record_grouped_load_vectors): Adjust. | |
20056 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise. | |
20057 | (vectorize_fold_left_reduction): Likewise. | |
20058 | (vect_transform_reduction): Likewise. | |
20059 | (vect_transform_cycle_phi): Likewise. | |
20060 | (vectorizable_lc_phi): Likewise. | |
20061 | (vectorizable_induction): Likewise. | |
20062 | (vectorizable_live_operation): Likewise. | |
20063 | (vect_transform_loop): Likewise. | |
20064 | * tree-vect-patterns.c (vect_pattern_recog): Set stmt_vec_info_ro. | |
20065 | * tree-vect-slp.c (vect_get_slp_vect_def): Adjust. | |
20066 | (vect_get_slp_defs): Likewise. | |
20067 | (vect_transform_slp_perm_load): Likewise. | |
20068 | (vect_schedule_slp_instance): Likewise. | |
20069 | (vectorize_slp_instance_root_stmt): Likewise. | |
20070 | * tree-vect-stmts.c (vect_get_vec_defs_for_operand): Likewise. | |
20071 | (vect_finish_stmt_generation_1): Do not allocate a stmt info. | |
20072 | (vect_finish_replace_stmt): Do not return anything. | |
20073 | (vect_finish_stmt_generation): Likewise. | |
20074 | (vect_build_gather_load_calls): Adjust. | |
20075 | (vectorizable_bswap): Likewise. | |
20076 | (vectorizable_call): Likewise. | |
20077 | (vectorizable_simd_clone_call): Likewise. | |
20078 | (vect_create_vectorized_demotion_stmts): Likewise. | |
20079 | (vectorizable_conversion): Likewise. | |
20080 | (vectorizable_assignment): Likewise. | |
20081 | (vectorizable_shift): Likewise. | |
20082 | (vectorizable_operation): Likewise. | |
20083 | (vectorizable_scan_store): Likewise. | |
20084 | (vectorizable_store): Likewise. | |
20085 | (vectorizable_load): Likewise. | |
20086 | (vectorizable_condition): Likewise. | |
20087 | (vectorizable_comparison): Likewise. | |
20088 | (vect_transform_stmt): Likewise. | |
20089 | * tree-vectorizer.c (vec_info::vec_info): Initialize | |
20090 | stmt_vec_info_ro. | |
20091 | (vec_info::replace_stmt): Copy over stmt UID rather than | |
20092 | unsetting/setting a stmt info allocating a new UID. | |
20093 | (vec_info::set_vinfo_for_stmt): Assert !stmt_vec_info_ro. | |
20094 | ||
20095 | 2020-06-10 Aldy Hernandez <aldyh@redhat.com> | |
20096 | ||
20097 | * gimple-loop-versioning.cc (loop_versioning::name_prop::get_value): | |
20098 | Add stmt parameter. | |
20099 | * gimple-ssa-evrp.c (class evrp_folder): New. | |
20100 | (class evrp_dom_walker): Remove. | |
20101 | (execute_early_vrp): Use evrp_folder instead of evrp_dom_walker. | |
20102 | * tree-ssa-ccp.c (ccp_folder::get_value): Add stmt parameter. | |
20103 | * tree-ssa-copy.c (copy_folder::get_value): Same. | |
20104 | * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in): | |
20105 | Pass stmt to get_value. | |
20106 | (substitute_and_fold_engine::replace_phi_args_in): Same. | |
20107 | (substitute_and_fold_dom_walker::after_dom_children): Call | |
20108 | post_fold_bb. | |
20109 | (substitute_and_fold_dom_walker::foreach_new_stmt_in_bb): New. | |
20110 | (substitute_and_fold_dom_walker::propagate_into_phi_args): New. | |
20111 | (substitute_and_fold_dom_walker::before_dom_children): Adjust to | |
20112 | call virtual functions for folding, pre_folding, and post folding. | |
20113 | Call get_value with PHI. Tweak dump. | |
20114 | * tree-ssa-propagate.h (class substitute_and_fold_engine): | |
20115 | New argument to get_value. | |
20116 | New virtual function pre_fold_bb. | |
20117 | New virtual function post_fold_bb. | |
20118 | New virtual function pre_fold_stmt. | |
20119 | New virtual function post_new_stmt. | |
20120 | New function propagate_into_phi_args. | |
20121 | * tree-vrp.c (vrp_folder::get_value): Add stmt argument. | |
20122 | * vr-values.c (vr_values::extract_range_from_stmt): Adjust dump | |
20123 | output. | |
20124 | (vr_values::fold_cond): New. | |
20125 | (vr_values::simplify_cond_using_ranges_1): Call fold_cond. | |
20126 | * vr-values.h (class vr_values): Add | |
20127 | simplify_cond_using_ranges_when_edge_is_known. | |
20128 | ||
20129 | 2020-06-10 Martin Liska <mliska@suse.cz> | |
20130 | ||
20131 | PR sanitizer/94910 | |
20132 | * asan.c (asan_emit_stack_protection): Emit | |
20133 | also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release | |
20134 | a stack frame. | |
20135 | ||
20136 | 2020-06-10 Tamar Christina <tamar.christina@arm.com> | |
20137 | ||
20138 | * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Adjust costs for mul. | |
20139 | ||
20140 | 2020-06-10 Richard Biener <rguenther@suse.de> | |
20141 | ||
20142 | * tree-vect-data-refs.c (vect_vfa_access_size): Adjust. | |
20143 | (vect_record_grouped_load_vectors): Likewise. | |
20144 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise. | |
20145 | (vectorize_fold_left_reduction): Likewise. | |
20146 | (vect_transform_reduction): Likewise. | |
20147 | (vect_transform_cycle_phi): Likewise. | |
20148 | (vectorizable_lc_phi): Likewise. | |
20149 | (vectorizable_induction): Likewise. | |
20150 | (vectorizable_live_operation): Likewise. | |
20151 | (vect_transform_loop): Likewise. | |
20152 | * tree-vect-slp.c (vect_get_slp_defs): New function, split out | |
20153 | from overload. | |
20154 | * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Remove. | |
20155 | (vect_get_vec_def_for_operand): Likewise. | |
20156 | (vect_get_vec_def_for_stmt_copy): Likewise. | |
20157 | (vect_get_vec_defs_for_stmt_copy): Likewise. | |
20158 | (vect_get_vec_defs_for_operand): New function. | |
20159 | (vect_get_vec_defs): Likewise. | |
20160 | (vect_build_gather_load_calls): Adjust. | |
20161 | (vect_get_gather_scatter_ops): Likewise. | |
20162 | (vectorizable_bswap): Likewise. | |
20163 | (vectorizable_call): Likewise. | |
20164 | (vectorizable_simd_clone_call): Likewise. | |
20165 | (vect_get_loop_based_defs): Remove. | |
20166 | (vect_create_vectorized_demotion_stmts): Adjust. | |
20167 | (vectorizable_conversion): Likewise. | |
20168 | (vectorizable_assignment): Likewise. | |
20169 | (vectorizable_shift): Likewise. | |
20170 | (vectorizable_operation): Likewise. | |
20171 | (vectorizable_scan_store): Likewise. | |
20172 | (vectorizable_store): Likewise. | |
20173 | (vectorizable_load): Likewise. | |
20174 | (vectorizable_condition): Likewise. | |
20175 | (vectorizable_comparison): Likewise. | |
20176 | (vect_transform_stmt): Adjust and remove no longer applicable | |
20177 | sanity checks. | |
20178 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize | |
20179 | STMT_VINFO_VEC_STMTS. | |
20180 | (vec_info::free_stmt_vec_info): Relase it. | |
20181 | * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Remove. | |
20182 | (_stmt_vec_info::vec_stmts): Add. | |
20183 | (STMT_VINFO_VEC_STMT): Remove. | |
20184 | (STMT_VINFO_VEC_STMTS): New. | |
20185 | (vect_get_vec_def_for_operand_1): Remove. | |
20186 | (vect_get_vec_def_for_operand): Likewise. | |
20187 | (vect_get_vec_defs_for_stmt_copy): Likewise. | |
20188 | (vect_get_vec_def_for_stmt_copy): Likewise. | |
20189 | (vect_get_vec_defs): New overloads. | |
20190 | (vect_get_vec_defs_for_operand): New. | |
20191 | (vect_get_slp_defs): Declare. | |
20192 | ||
20193 | 2020-06-10 Qian Chao <qianchao9@huawei.com> | |
20194 | ||
20195 | PR tree-optimization/95569 | |
20196 | * trans-mem.c (expand_assign_tm): Ensure that rtmp is marked TREE_ADDRESSABLE. | |
20197 | ||
20198 | 2020-06-10 Martin Liska <mliska@suse.cz> | |
20199 | ||
20200 | PR tree-optimization/92860 | |
20201 | * optc-save-gen.awk: Generate new function cl_optimization_compare. | |
20202 | * opth-gen.awk: Generate declaration of the function. | |
20203 | ||
20204 | 2020-06-09 Michael Meissner <meissner@linux.ibm.com> | |
20205 | ||
20206 | * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate | |
20207 | 'future' PowerPC platform. | |
20208 | (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1. | |
20209 | (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA. | |
20210 | * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and | |
20211 | MMA HWCAP2 bits. | |
20212 | * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support. | |
20213 | (rs6000_clone_map): Add 'future' system target_clones support. | |
20214 | ||
20215 | 2020-06-09 Michael Kuhn <gcc@ikkoku.de> | |
20216 | ||
20217 | * Makefile.in (ZSTD_INC): Define. | |
20218 | (ZSTD_LIB): Include ZSTD_LDFLAGS. | |
20219 | (CFLAGS-lto-compress.o): Add ZSTD_INC. | |
20220 | * configure.ac (ZSTD_CPPFLAGS, ZSTD_LDFLAGS): New variables for | |
20221 | AC_SUBST. | |
20222 | * configure: Rebuilt. | |
20223 | ||
20224 | 2020-06-09 Jason Merrill <jason@redhat.com> | |
20225 | ||
20226 | PR c++/95552 | |
20227 | * tree.c (walk_tree_1): Call func on the TYPE_DECL of a DECL_EXPR. | |
20228 | ||
20229 | 2020-06-09 Marco Elver <elver@google.com> | |
20230 | ||
20231 | * params.opt: Define --param=tsan-distinguish-volatile=[0,1]. | |
20232 | * sanitizer.def (BUILT_IN_TSAN_VOLATILE_READ1): Define new | |
20233 | builtin for volatile instrumentation of reads/writes. | |
20234 | (BUILT_IN_TSAN_VOLATILE_READ2): Likewise. | |
20235 | (BUILT_IN_TSAN_VOLATILE_READ4): Likewise. | |
20236 | (BUILT_IN_TSAN_VOLATILE_READ8): Likewise. | |
20237 | (BUILT_IN_TSAN_VOLATILE_READ16): Likewise. | |
20238 | (BUILT_IN_TSAN_VOLATILE_WRITE1): Likewise. | |
20239 | (BUILT_IN_TSAN_VOLATILE_WRITE2): Likewise. | |
20240 | (BUILT_IN_TSAN_VOLATILE_WRITE4): Likewise. | |
20241 | (BUILT_IN_TSAN_VOLATILE_WRITE8): Likewise. | |
20242 | (BUILT_IN_TSAN_VOLATILE_WRITE16): Likewise. | |
20243 | * tsan.c (get_memory_access_decl): Argument if access is | |
20244 | volatile. If param tsan-distinguish-volatile is non-zero, and | |
20245 | access if volatile, return volatile instrumentation decl. | |
20246 | (instrument_expr): Check if access is volatile. | |
20247 | ||
20248 | 2020-06-09 Richard Biener <rguenther@suse.de> | |
20249 | ||
20250 | * tree-vect-loop.c (vectorizable_induction): Remove dead code. | |
20251 | ||
20252 | 2020-06-09 Tobias Burnus <tobias@codesourcery.com> | |
20253 | ||
20254 | * omp-offload.c (add_decls_addresses_to_decl_constructor, | |
20255 | omp_finish_file): With in_lto_p, stream out all offload-table | |
20256 | items even if the symtab_node does not exist. | |
20257 | ||
20258 | 2020-06-09 Richard Biener <rguenther@suse.de> | |
20259 | ||
20260 | * tree-vect-stmts.c (vect_transform_stmt): Remove dead code. | |
20261 | ||
20262 | 2020-06-09 Martin Liska <mliska@suse.cz> | |
20263 | ||
20264 | * gcov-dump.c (print_usage): Fix spacing for --raw option | |
20265 | in --help. | |
20266 | ||
20267 | 2020-06-09 Martin Liska <mliska@suse.cz> | |
20268 | ||
20269 | * cif-code.def (ATTRIBUTE_MISMATCH): Rename to... | |
20270 | (SANITIZE_ATTRIBUTE_MISMATCH): ...this. | |
20271 | * ipa-inline.c (sanitize_attrs_match_for_inline_p): | |
20272 | Handle all sanitizer options. | |
20273 | (can_inline_edge_p): Use renamed CIF_* enum value. | |
20274 | ||
20275 | 2020-06-09 Joe Ramsay <joe.ramsay@arm.com> | |
20276 | ||
20277 | * config/aarch64/aarch64-sve.md (<optab><mode>2): Add support for | |
20278 | unpacked vectors. | |
20279 | (@aarch64_pred_<optab><mode>): Add support for unpacked vectors. | |
20280 | (@aarch64_bic<mode>): Enable unpacked BIC. | |
20281 | (*bic<mode>3): Enable unpacked BIC. | |
20282 | ||
20283 | 2020-06-09 Martin Liska <mliska@suse.cz> | |
20284 | ||
20285 | PR gcov-profile/95365 | |
20286 | * doc/gcov.texi: Compile and link one example in 2 steps. | |
20287 | ||
20288 | 2020-06-09 Jakub Jelinek <jakub@redhat.com> | |
20289 | ||
20290 | PR tree-optimization/95527 | |
20291 | * match.pd (__builtin_ffs (X) cmp CST): New optimizations. | |
20292 | ||
20293 | 2020-06-09 Michael Meissner <meissner@linux.ibm.com> | |
20294 | ||
20295 | * config/rs6000/ppc-auxv.h (PPC_PLATFORM_FUTURE): Allocate | |
20296 | 'future' PowerPC platform. | |
20297 | (PPC_FEATURE2_ARCH_3_1): New HWCAP2 bit for ISA 3.1. | |
20298 | (PPC_FEATURE2_MMA): New HWCAP2 bit for MMA. | |
20299 | * config/rs6000/rs6000-call.c (cpu_supports_info): Add ISA 3.1 and | |
20300 | MMA HWCAP2 bits. | |
20301 | * config/rs6000/rs6000.c (CLONE_ISA_3_1): New clone support. | |
20302 | (rs6000_clone_map): Add 'future' system target_clones support. | |
20303 | ||
20304 | 2020-06-08 Tobias Burnus <tobias@codesourcery.com> | |
20305 | ||
20306 | PR lto/94848 | |
20307 | PR middle-end/95551 | |
20308 | * omp-offload.c (add_decls_addresses_to_decl_constructor, | |
20309 | omp_finish_file): Skip removed items. | |
20310 | * lto-cgraph.c (output_offload_tables): Likewise; set force_output | |
20311 | to this node for variables and functions. | |
20312 | ||
20313 | 2020-06-08 Jason Merrill <jason@redhat.com> | |
20314 | ||
20315 | * aclocal.m4: Remove ax_cxx_compile_stdcxx.m4. | |
20316 | * configure.ac: Remove AX_CXX_COMPILE_STDCXX. | |
20317 | * configure: Regenerate. | |
20318 | ||
20319 | 2020-06-08 Martin Sebor <msebor@redhat.com> | |
20320 | ||
20321 | * postreload.c (reload_cse_simplify_operands): Clear first array element | |
20322 | before using it. Assert a precondition. | |
20323 | ||
20324 | 2020-06-08 Jakub Jelinek <jakub@redhat.com> | |
20325 | ||
20326 | PR target/95528 | |
20327 | * tree-ssa-forwprop.c (simplify_vector_constructor): Don't use | |
20328 | VEC_UNPACK*_EXPR or VEC_PACK_TRUNC_EXPR with scalar modes unless the | |
20329 | type is vector boolean. | |
20330 | ||
20331 | 2020-06-08 Tamar Christina <tamar.christina@arm.com> | |
20332 | ||
20333 | * config/aarch64/aarch64.c (aarch64_layout_frame): Expand comments. | |
20334 | ||
20335 | 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org> | |
20336 | ||
20337 | * config/arm/predicates.md (vfp_register_operand): Use VFP_HI_REGS | |
20338 | instead of VFP_REGS. | |
20339 | ||
20340 | 2020-06-08 Martin Liska <mliska@suse.cz> | |
20341 | ||
20342 | * config/rs6000/vector.md: Replace FAIL with gcc_unreachable | |
20343 | in all vcond* patterns. | |
20344 | ||
20345 | 2020-06-08 Christophe Lyon <christophe.lyon@linaro.org> | |
20346 | ||
20347 | * common/config/arm/arm-common.c (INCLUDE_ALGORITHM): | |
20348 | Define. No longer include <algorithm>. | |
20349 | ||
20350 | 2020-06-07 Roger Sayle <roger@nextmovesoftware.com> | |
20351 | ||
20352 | * config/i386/i386.md (paritydi2, paritysi2): Expand reduction | |
20353 | via shift and xor to an USPEC PARITY matching a parityhi2_cmp. | |
20354 | (paritydi2_cmp, paritysi2_cmp): Delete these define_insn_and_split. | |
20355 | (parityhi2, parityqi2): New expanders. | |
20356 | (parityhi2_cmp): Implement set parity flag with xorb insn. | |
20357 | (parityqi2_cmp): Implement set parity flag with testb insn. | |
20358 | New peephole2s to use these insns (UNSPEC PARITY) when appropriate. | |
20359 | ||
20360 | 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com> | |
20361 | ||
20362 | PR target/95018 | |
20363 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
20364 | Override flag_cunroll_grow_size. | |
20365 | ||
20366 | 2020-06-07 Jiufu Guo <guojiufu@linux.ibm.com> | |
20367 | ||
20368 | * common.opt (flag_cunroll_grow_size): New flag. | |
20369 | * toplev.c (process_options): Set flag_cunroll_grow_size. | |
20370 | * tree-ssa-loop-ivcanon.c (pass_complete_unroll::execute): | |
20371 | Use flag_cunroll_grow_size. | |
20372 | ||
20373 | 2020-06-06 Jan Hubicka <hubicka@ucw.cz> | |
20374 | ||
20375 | PR lto/95548 | |
20376 | * ipa-devirt.c (struct odr_enum_val): Turn values to wide_int. | |
20377 | (ipa_odr_summary_write): Update streaming. | |
20378 | (ipa_odr_read_section): Update streaming. | |
20379 | ||
20380 | 2020-06-06 Alexandre Oliva <oliva@adacore.com> | |
20381 | ||
20382 | PR driver/95456 | |
20383 | * gcc.c (do_spec_1): Don't call memcpy (_, NULL, 0). | |
20384 | ||
20385 | 2020-06-05 Thomas Schwinge <thomas@codesourcery.com> | |
20386 | Julian Brown <julian@codesourcery.com> | |
20387 | ||
20388 | * gimplify.c (gimplify_adjust_omp_clauses): Remove | |
20389 | 'GOMP_MAP_STRUCT' mapping from OpenACC 'exit data' directives. | |
20390 | ||
20391 | 2020-06-05 Richard Biener <rguenther@suse.de> | |
20392 | ||
20393 | PR tree-optimization/95539 | |
20394 | * tree-vect-data-refs.c | |
20395 | (vect_slp_analyze_and_verify_instance_alignment): Use | |
20396 | SLP_TREE_REPRESENTATIVE for the data-ref check. | |
20397 | * tree-vect-stmts.c (vectorizable_load): Reset stmt_info | |
20398 | back to the first scalar stmt rather than the | |
20399 | SLP_TREE_REPRESENTATIVE to match previous behavior. | |
20400 | ||
20401 | 2020-06-05 Felix Yang <felix.yang@huawei.com> | |
20402 | ||
20403 | PR target/95254 | |
20404 | * expr.c (emit_move_insn): Check src and dest of the copy to see | |
20405 | if one or both of them are subregs, try to remove the subregs when | |
20406 | innermode and outermode are equal in size and the mode change involves | |
20407 | an implicit round trip through memory. | |
20408 | ||
20409 | 2020-06-05 Jakub Jelinek <jakub@redhat.com> | |
20410 | ||
20411 | PR target/95535 | |
20412 | * config/i386/i386.md (*ctzsi2_zext, *clzsi2_lzcnt_zext): New | |
20413 | define_insn_and_split patterns. | |
20414 | (*ctzsi2_zext_falsedep, *clzsi2_lzcnt_zext_falsedep): New | |
20415 | define_insn patterns. | |
20416 | ||
20417 | 2020-06-05 Jonathan Wakely <jwakely@redhat.com> | |
20418 | ||
20419 | * alloc-pool.h (object_allocator::remove_raw): New. | |
20420 | * tree-ssa-math-opts.c (struct occurrence): Use NSMDI. | |
20421 | (occurrence::occurrence): Add. | |
20422 | (occurrence::~occurrence): Likewise. | |
20423 | (occurrence::new): Likewise. | |
20424 | (occurrence::delete): Likewise. | |
20425 | (occ_new): Remove. | |
20426 | (insert_bb): Use new occurence (...) instead of occ_new. | |
20427 | (register_division_in): Likewise. | |
20428 | (free_bb): Use delete occ instead of manually removing | |
20429 | from the pool. | |
20430 | ||
20431 | 2020-06-05 Richard Biener <rguenther@suse.de> | |
20432 | ||
20433 | PR middle-end/95493 | |
20434 | * cfgexpand.c (expand_debug_expr): Avoid calling | |
20435 | set_mem_attributes_minus_bitpos when we were expanding | |
20436 | an SSA name. | |
20437 | * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove | |
20438 | ARRAY_REF special-casing, add CONSTRUCTOR to the set of | |
20439 | special-cases we do not want MEM_EXPRs for. Assert | |
20440 | we end up with reasonable MEM_EXPRs. | |
20441 | ||
20442 | 2020-06-05 Lili Cui <lili.cui@intel.com> | |
20443 | ||
20444 | PR target/95525 | |
20445 | * config/i386/i386.h (PTA_WAITPKG): Change bitmask value. | |
20446 | ||
20447 | 2020-06-04 Martin Sebor <msebor@redhat.com> | |
20448 | ||
20449 | PR middle-end/10138 | |
20450 | PR middle-end/95136 | |
20451 | * attribs.c (init_attr_rdwr_indices): Move function here. | |
20452 | * attribs.h (rdwr_access_hash, rdwr_map): Define. | |
20453 | (attr_access): Add 'none'. | |
20454 | (init_attr_rdwr_indices): Declared function. | |
20455 | * builtins.c (warn_for_access)): New function. | |
20456 | (check_access): Call it. | |
20457 | * builtins.h (checK-access): Add an optional argument. | |
20458 | * calls.c (rdwr_access_hash, rdwr_map): Move to attribs.h. | |
20459 | (init_attr_rdwr_indices): Declare extern. | |
20460 | (append_attrname): Handle attr_access::none. | |
20461 | (maybe_warn_rdwr_sizes): Same. | |
20462 | (initialize_argument_information): Update comments. | |
20463 | * doc/extend.texi (attribute access): Document 'none'. | |
20464 | * tree-ssa-uninit.c (struct wlimits): New. | |
20465 | (maybe_warn_operand): New function. | |
20466 | (maybe_warn_pass_by_reference): Same. | |
20467 | (warn_uninitialized_vars): Refactor code into maybe_warn_operand. | |
20468 | Also call for function calls. | |
20469 | (pass_late_warn_uninitialized::execute): Adjust comments. | |
20470 | (execute_early_warn_uninitialized): Same. | |
20471 | ||
20472 | 2020-06-04 Vladimir Makarov <vmakarov@redhat.com> | |
20473 | ||
20474 | PR middle-end/95464 | |
20475 | * lra.c (lra_emit_move): Add processing STRICT_LOW_PART. | |
20476 | * lra-constraints.c (match_reload): Use STRICT_LOW_PART in output | |
20477 | reload if the original insn has it too. | |
20478 | ||
20479 | 2020-06-04 Richard Biener <rguenther@suse.de> | |
20480 | ||
20481 | * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): | |
20482 | Ensure that tmp_ha is marked TREE_ADDRESSABLE. | |
20483 | ||
20484 | 2020-06-04 Martin Jambor <mjambor@suse.cz> | |
20485 | ||
20486 | PR ipa/95113 | |
20487 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move non-call | |
20488 | exceptions check to... | |
20489 | * tree-eh.c (stmt_unremovable_because_of_non_call_eh_p): ...this | |
20490 | new function. | |
20491 | * tree-eh.h (stmt_unremovable_because_of_non_call_eh_p): Declare it. | |
20492 | * ipa-sra.c (isra_track_scalar_value_uses): Use it. New parameter | |
20493 | fun. | |
20494 | ||
20495 | 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
20496 | ||
20497 | PR target/94735 | |
20498 | * config/arm/predicates.md (mve_scatter_memory): Define to | |
20499 | match (mem (reg)) for scatter store memory. | |
20500 | * config/arm/mve.md (mve_vstrbq_scatter_offset_<supf><mode>): Modify | |
20501 | define_insn to define_expand. | |
20502 | (mve_vstrbq_scatter_offset_p_<supf><mode>): Likewise. | |
20503 | (mve_vstrhq_scatter_offset_<supf><mode>): Likewise. | |
20504 | (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise. | |
20505 | (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise. | |
20506 | (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise. | |
20507 | (mve_vstrdq_scatter_offset_<supf>v2di): Likewise. | |
20508 | (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise. | |
20509 | (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise. | |
20510 | (mve_vstrhq_scatter_offset_fv8hf): Likewise. | |
20511 | (mve_vstrhq_scatter_offset_p_fv8hf): Likewise. | |
20512 | (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise. | |
20513 | (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise. | |
20514 | (mve_vstrwq_scatter_offset_fv4sf): Likewise. | |
20515 | (mve_vstrwq_scatter_offset_p_fv4sf): Likewise. | |
20516 | (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise. | |
20517 | (mve_vstrwq_scatter_offset_<supf>v4si): Likewise. | |
20518 | (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise. | |
20519 | (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise. | |
20520 | (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise. | |
20521 | (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise. | |
20522 | (mve_vstrbq_scatter_offset_<supf><mode>_insn): Define insn for scatter | |
20523 | stores. | |
20524 | (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise. | |
20525 | (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise. | |
20526 | (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise. | |
20527 | (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise. | |
20528 | (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise. | |
20529 | (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise. | |
20530 | (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise. | |
20531 | (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise. | |
20532 | (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise. | |
20533 | (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise. | |
20534 | (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise. | |
20535 | (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise. | |
20536 | (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise. | |
20537 | (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise. | |
20538 | (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise. | |
20539 | (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise. | |
20540 | (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise. | |
20541 | (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise. | |
20542 | (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise. | |
20543 | (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise. | |
20544 | ||
20545 | 2020-06-04 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
20546 | ||
20547 | * config/arm/arm_mve.h (__arm_vbicq_n_u16): Correct the intrinsic | |
20548 | arguments. | |
20549 | (__arm_vbicq_n_s16): Likewise. | |
20550 | (__arm_vbicq_n_u32): Likewise. | |
20551 | (__arm_vbicq_n_s32): Likewise. | |
20552 | (__arm_vbicq): Modify polymorphic variant. | |
20553 | ||
20554 | 2020-06-04 Richard Biener <rguenther@suse.de> | |
20555 | ||
20556 | * tree-vectorizer.h (vect_get_slp_vect_def): Declare. | |
20557 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it. | |
20558 | * tree-vect-stmts.c (vect_transform_stmt): Likewise. | |
20559 | (vect_is_simple_use): Use SLP_TREE_REPRESENTATIVE. | |
20560 | * tree-vect-slp.c (vect_get_slp_vect_defs): Fold into single | |
20561 | use ... | |
20562 | (vect_get_slp_defs): ... here. | |
20563 | (vect_get_slp_vect_def): New function. | |
20564 | ||
20565 | 2020-06-04 Richard Biener <rguenther@suse.de> | |
20566 | ||
20567 | * tree-vectorizer.h (_slp_tree::lanes): New. | |
20568 | (SLP_TREE_LANES): Likewise. | |
20569 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Use it. | |
20570 | (vectorizable_reduction): Likewise. | |
20571 | (vect_transform_cycle_phi): Likewise. | |
20572 | (vectorizable_induction): Likewise. | |
20573 | (vectorizable_live_operation): Likewise. | |
20574 | * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize lanes. | |
20575 | (vect_create_new_slp_node): Likewise. | |
20576 | (slp_copy_subtree): Copy it. | |
20577 | (vect_optimize_slp): Use it. | |
20578 | (vect_slp_analyze_node_operations_1): Likewise. | |
20579 | (vect_slp_convert_to_external): Likewise. | |
20580 | (vect_bb_vectorization_profitable_p): Likewise. | |
20581 | * tree-vect-stmts.c (vectorizable_load): Likewise. | |
20582 | (get_vectype_for_scalar_type): Likewise. | |
20583 | ||
20584 | 2020-06-04 Richard Biener <rguenther@suse.de> | |
20585 | ||
20586 | * tree-vect-slp.c (vect_update_all_shared_vectypes): Remove. | |
20587 | (vect_build_slp_tree_2): Simplify building all external op | |
20588 | nodes from scalars. | |
20589 | (vect_slp_analyze_node_operations): Remove push/pop of | |
20590 | STMT_VINFO_DEF_TYPE. | |
20591 | (vect_schedule_slp_instance): Likewise. | |
20592 | * tree-vect-stmts.c (ect_check_store_rhs): Pass in the | |
20593 | stmt_info, use the vect_is_simple_use overload combining | |
20594 | SLP and stmt_info analysis. | |
20595 | (vect_is_simple_cond): Likewise. | |
20596 | (vectorizable_store): Adjust. | |
20597 | (vectorizable_condition): Likewise. | |
20598 | (vect_is_simple_use): Fully handle invariant SLP nodes | |
20599 | here. Amend stmt_info operand extraction with COND_EXPR | |
20600 | and masked stores. | |
20601 | * tree-vect-loop.c (vectorizable_reduction): Deal with | |
20602 | COND_EXPR representation ugliness. | |
20603 | ||
20604 | 2020-06-04 Hongtao Liu <hongtao.liu@inte.com> | |
20605 | ||
20606 | PR target/95254 | |
20607 | * config/i386/sse.md (*vcvtps2ph_store<merge_mask_name>): | |
20608 | Refine from *vcvtps2ph_store<mask_name>. | |
20609 | (vcvtps2ph256<mask_name>): Refine constraint from vm to v. | |
20610 | (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto. | |
20611 | (*vcvtps2ph256<merge_mask_name>): New define_insn. | |
20612 | (*avx512f_vcvtps2ph512<merge_mask_name>): Ditto. | |
20613 | * config/i386/subst.md (merge_mask): New define_subst. | |
20614 | (merge_mask_name): New define_subst_attr. | |
20615 | (merge_mask_operand3): Ditto. | |
20616 | ||
20617 | 2020-06-04 Hao Liu <hliu@os.amperecomputing.com> | |
20618 | ||
20619 | PR tree-optimization/89430 | |
20620 | * tree-ssa-phiopt.c | |
20621 | (struct name_to_bb): Rename to ref_to_bb; add a new field exp; | |
20622 | remove ssa_name_ver, store, offset fields. | |
20623 | (struct ssa_names_hasher): Rename to refs_hasher; update functions. | |
20624 | (class nontrapping_dom_walker): Rename m_seen_ssa_names to m_seen_refs. | |
20625 | (nontrapping_dom_walker::add_or_mark_expr): Extend to support ARRAY_REFs | |
20626 | and COMPONENT_REFs. | |
20627 | ||
20628 | 2020-06-04 Andreas Schwab <schwab@suse.de> | |
20629 | ||
20630 | PR target/95154 | |
20631 | * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Call assemble_external. | |
20632 | ||
20633 | 2020-06-04 Hongtao.liu <hongtao.liu@intel.com> | |
20634 | ||
20635 | * config/i386/sse.md (pmov_dst_3_lower): New mode attribute. | |
20636 | (trunc<mode><pmov_dst_3_lower>2): Refine from | |
20637 | trunc<mode><pmov_dst_3>2. | |
20638 | ||
20639 | 2020-06-03 Vitor Guidi <vitor.guidi@usp.br> | |
20640 | ||
20641 | * match.pd (tanh/sinh -> 1/cosh): New simplification. | |
20642 | ||
20643 | 2020-06-03 Aaron Sawdey <acsawdey@linux.ibm.com> | |
20644 | ||
20645 | PR target/95347 | |
20646 | * config/rs6000/rs6000.c (is_stfs_insn): Rename to | |
20647 | is_lfs_stfs_insn and make it recognize lfs as well. | |
20648 | (prefixed_store_p): Use is_lfs_stfs_insn(). | |
20649 | (prefixed_load_p): Use is_lfs_stfs_insn() to recognize lfs. | |
20650 | ||
20651 | 2020-06-03 Jan Hubicka <hubicka@ucw.cz> | |
20652 | ||
20653 | * ipa-devirt.c: Include data-streamer.h, lto-streamer.h and | |
20654 | streamer-hooks.h. | |
20655 | (odr_enums): New static var. | |
20656 | (struct odr_enum_val): New struct. | |
20657 | (class odr_enum): New struct. | |
20658 | (odr_enum_map): New hashtable. | |
20659 | (odr_types_equivalent_p): Drop code testing TYPE_VALUES. | |
20660 | (add_type_duplicate): Likewise. | |
20661 | (free_odr_warning_data): Do not free TYPE_VALUES. | |
20662 | (register_odr_enum): New function. | |
20663 | (ipa_odr_summary_write): New function. | |
20664 | (ipa_odr_read_section): New function. | |
20665 | (ipa_odr_summary_read): New function. | |
20666 | (class pass_ipa_odr): New pass. | |
20667 | (make_pass_ipa_odr): New function. | |
20668 | * ipa-utils.h (register_odr_enum): Declare. | |
20669 | * lto-section-in.c: (lto_section_name): Add odr_types section. | |
20670 | * lto-streamer.h (enum lto_section_type): Add odr_types section. | |
20671 | * passes.def: Add odr_types pass. | |
20672 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream | |
20673 | TYPE_VALUES. | |
20674 | (hash_tree): Likewise. | |
20675 | * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers): | |
20676 | Likewise. | |
20677 | * tree-streamer-out.c (write_ts_type_non_common_tree_pointers): | |
20678 | Likewise. | |
20679 | * timevar.def (TV_IPA_ODR): New timervar. | |
20680 | * tree-pass.h (make_pass_ipa_odr): Declare. | |
20681 | * tree.c (free_lang_data_in_type): Regiser ODR types. | |
20682 | ||
20683 | 2020-06-03 Romain Naour <romain.naour@gmail.com> | |
20684 | ||
20685 | * Makefile.in (SELFTEST_DEPS): Move before including language makefile | |
20686 | fragments. | |
20687 | ||
20688 | 2020-06-03 Richard Biener <rguenther@suse.de> | |
20689 | ||
20690 | PR tree-optimization/95487 | |
20691 | * tree-vect-stmts.c (vectorizable_store): Use a truth type | |
20692 | for the scatter mask. | |
20693 | ||
20694 | 2020-06-03 Richard Biener <rguenther@suse.de> | |
20695 | ||
20696 | PR tree-optimization/95495 | |
20697 | * tree-vect-slp.c (vect_slp_analyze_node_operations): Use | |
20698 | SLP_TREE_REPRESENTATIVE in the shift assertion. | |
20699 | ||
20700 | 2020-06-03 Tom Tromey <tromey@adacore.com> | |
20701 | ||
20702 | * spellcheck.c (CASE_COST): New define. | |
20703 | (BASE_COST): New define. | |
20704 | (get_edit_distance): Recognize case changes. | |
20705 | (get_edit_distance_cutoff): Update. | |
20706 | (test_edit_distances): Update. | |
20707 | (get_old_cutoff): Update. | |
20708 | (test_find_closest_string): Add case sensitivity test. | |
20709 | ||
20710 | 2020-06-03 Richard Biener <rguenther@suse.de> | |
20711 | ||
20712 | * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Loop over | |
20713 | the cost vector to unset the visited flag on stmts. | |
20714 | ||
20715 | 2020-06-03 Tobias Burnus <tobias@codesourcery.com> | |
20716 | ||
20717 | * gimplify.c (omp_notice_variable): Use new hook. | |
20718 | * langhooks-def.h (lhd_omp_predetermined_mapping): Declare. | |
20719 | (LANG_HOOKS_OMP_PREDETERMINED_MAPPING): Define | |
20720 | (LANG_HOOKS_DECLS): Add it. | |
20721 | * langhooks.c (lhd_omp_predetermined_sharing): Remove bogus unused attr. | |
20722 | (lhd_omp_predetermined_mapping): New. | |
20723 | * langhooks.h (struct lang_hooks_for_decls): Add new hook. | |
20724 | ||
20725 | 2020-06-03 Jan Hubicka <jh@suse.cz> | |
20726 | ||
20727 | * lto-streamer.h (LTO_tags): Reorder so frequent tags has small indexes; | |
20728 | add LTO_first_tree_tag and LTO_first_gimple_tag. | |
20729 | (lto_tag_is_tree_code_p): Update. | |
20730 | (lto_tag_is_gimple_code_p): Update. | |
20731 | (lto_gimple_code_to_tag): Update. | |
20732 | (lto_tag_to_gimple_code): Update. | |
20733 | (lto_tree_code_to_tag): Update. | |
20734 | (lto_tag_to_tree_code): Update. | |
20735 | ||
20736 | 2020-06-02 Felix Yang <felix.yang@huawei.com> | |
20737 | ||
20738 | PR target/95459 | |
20739 | * config/aarch64/aarch64.c (aarch64_short_vector_p): | |
20740 | Leave later code to report an error if SVE is disabled. | |
20741 | ||
20742 | 2020-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
20743 | ||
20744 | * config/aarch64/aarch64-cores.def (zeus): Define. | |
20745 | * config/aarch64/aarch64-tune.md: Regenerate. | |
20746 | * doc/invoke.texi (AArch64 Options): Document zeus -mcpu option. | |
20747 | ||
20748 | 2020-06-02 Aaron Sawdey <acsawdey@linux.ibm.com> | |
20749 | ||
20750 | PR target/95347 | |
20751 | * config/rs6000/rs6000.c (prefixed_store_p): Add special case | |
20752 | for stfs. | |
20753 | (is_stfs_insn): New helper function. | |
20754 | ||
20755 | 2020-06-02 Jan Hubicka <jh@suse.cz> | |
20756 | ||
20757 | * lto-streamer-in.c (stream_read_tree_ref): Simplify streaming of | |
20758 | references. | |
20759 | * lto-streamer-out.c (stream_write_tree_ref): Likewise. | |
20760 | ||
20761 | 2020-06-02 Andrew Stubbs <ams@codesourcery.com> | |
20762 | ||
20763 | * config/gcn/gcn-hsa.h (CC1_SPEC): Delete. | |
20764 | * config/gcn/gcn.opt (-mlocal-symbol-id): Delete. | |
20765 | * config/gcn/mkoffload.c (main): Don't use -mlocal-symbol-id. | |
20766 | ||
20767 | 2020-06-02 Eric Botcazou <ebotcazou@adacore.com> | |
20768 | ||
20769 | PR middle-end/95395 | |
20770 | * optabs.c (expand_unop): Fix bits/bytes confusion in latest change. | |
20771 | * tree-pretty-print.c (dump_generic_node) <ARRAY_TYPE>: Print quals. | |
20772 | ||
20773 | 2020-06-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
20774 | ||
20775 | * config/s390/s390.c (print_operand): Emit vector alignment | |
20776 | hints for z13. | |
20777 | ||
20778 | 2020-06-02 Martin Liska <mliska@suse.cz> | |
20779 | ||
20780 | * coverage.c (get_coverage_counts): Skip sanity check for TOP N counters | |
20781 | as they have variable number of counters. | |
20782 | * gcov-dump.c (main): Add new option -r. | |
20783 | (print_usage): Likewise. | |
20784 | (tag_counters): All new raw format. | |
20785 | * gcov-io.h (struct gcov_kvp): New. | |
20786 | (GCOV_TOPN_VALUES): Remove. | |
20787 | (GCOV_TOPN_VALUES_COUNTERS): Likewise. | |
20788 | (GCOV_TOPN_MEM_COUNTERS): New. | |
20789 | (GCOV_TOPN_DISK_COUNTERS): Likewise. | |
20790 | (GCOV_TOPN_MAXIMUM_TRACKED_VALUES): Likewise. | |
20791 | * ipa-profile.c (ipa_profile_generate_summary): Use | |
20792 | GCOV_TOPN_MAXIMUM_TRACKED_VALUES. | |
20793 | (ipa_profile_write_edge_summary): Likewise. | |
20794 | (ipa_profile_read_edge_summary): Likewise. | |
20795 | (ipa_profile): Remove usage of GCOV_TOPN_VALUES. | |
20796 | * profile.c (sort_hist_values): Sort variable number | |
20797 | of counters. | |
20798 | (compute_value_histograms): Special case for TOP N counters | |
20799 | that have dynamic number of key-value pairs. | |
20800 | * value-prof.c (dump_histogram_value): Dump variable number | |
20801 | of key-value pairs. | |
20802 | (stream_in_histogram_value): Stream in variable number | |
20803 | of key-value pairs for TOP N counter. | |
20804 | (get_nth_most_common_value): Deal with variable number | |
20805 | of key-value pairs. | |
20806 | (dump_ic_profile): Use GCOV_TOPN_MAXIMUM_TRACKED_VALUES | |
20807 | for loop iteration. | |
20808 | (gimple_find_values_to_profile): Set GCOV_TOPN_MEM_COUNTERS | |
20809 | to n_counters. | |
20810 | * doc/gcov-dump.texi: Document new -r option. | |
20811 | ||
20812 | 2020-06-02 Iain Buclaw <ibuclaw@gdcproject.org> | |
20813 | ||
20814 | PR target/95420 | |
20815 | * config.gcc (arm-wrs-vxworks7*): Set default cpu to generic-armv7-a. | |
20816 | ||
20817 | 2020-06-01 Jeff Law <law@torsion.usersys.redhat.com> | |
20818 | ||
20819 | * lower-subreg.c (resolve_simple_move): If simplify_gen_subreg_concatn | |
20820 | returns (const_int 0) for the destination, then emit nothing. | |
20821 | ||
20822 | 2020-06-01 Jan Hubicka <hubicka@ucw.cz> | |
20823 | ||
20824 | * lto-streamer.h (enum LTO_tags): Remove LTO_field_decl_ref, | |
20825 | LTO_function_decl_ref, LTO_label_decl_ref, LTO_namespace_decl_ref, | |
20826 | LTO_result_decl_ref, LTO_type_decl_ref, LTO_type_ref, | |
20827 | LTO_const_decl_ref, LTO_imported_decl_ref, | |
20828 | LTO_translation_unit_decl_ref, LTO_global_decl_ref and | |
20829 | LTO_namelist_decl_ref; add LTO_global_stream_ref. | |
20830 | * lto-streamer-in.c (lto_input_tree_ref): Simplify. | |
20831 | (lto_input_scc): Update. | |
20832 | (lto_input_tree_1): Update. | |
20833 | * lto-streamer-out.c (lto_indexable_tree_ref): Simlify. | |
20834 | * lto-streamer.c (lto_tag_name): Update. | |
20835 | ||
20836 | 2020-06-01 Jan Hubicka <hubicka@ucw.cz> | |
20837 | ||
20838 | * ipa-reference.c (stream_out_bitmap): Use lto_output_var_decl_ref. | |
20839 | (ipa_reference_read_optimization_summary): Use lto_intput_var_decl_ref. | |
20840 | * lto-cgraph.c (lto_output_node): Likewise. | |
20841 | (lto_output_varpool_node): Likewise. | |
20842 | (output_offload_tables): Likewise. | |
20843 | (input_node): Likewise. | |
20844 | (input_varpool_node): Likewise. | |
20845 | (input_offload_tables): Likewise. | |
20846 | * lto-streamer-in.c (lto_input_tree_ref): Declare. | |
20847 | (lto_input_var_decl_ref): Declare. | |
20848 | (lto_input_fn_decl_ref): Declare. | |
20849 | * lto-streamer-out.c (lto_indexable_tree_ref): Use only one decl stream. | |
20850 | (lto_output_var_decl_index): Rename to .. | |
20851 | (lto_output_var_decl_ref): ... this. | |
20852 | (lto_output_fn_decl_index): Rename to ... | |
20853 | (lto_output_fn_decl_ref): ... this. | |
20854 | * lto-streamer.h (enum lto_decl_stream_e_t): Remove per-type streams. | |
20855 | (DEFINE_DECL_STREAM_FUNCS): Remove. | |
20856 | (lto_output_var_decl_index): Remove. | |
20857 | (lto_output_fn_decl_index): Remove. | |
20858 | (lto_output_var_decl_ref): Declare. | |
20859 | (lto_output_fn_decl_ref): Declare. | |
20860 | (lto_input_var_decl_ref): Declare. | |
20861 | (lto_input_fn_decl_ref): Declare. | |
20862 | ||
20863 | 2020-06-01 Feng Xue <fxue@os.amperecomputing.com> | |
20864 | ||
20865 | * cgraphclones.c (materialize_all_clones): Adjust replace map dump. | |
20866 | * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Do not | |
20867 | dump infomation if there is no adjusted parameter. | |
20868 | * (ipa_param_adjustments::dump): Adjust prefix spaces for dump string. | |
20869 | ||
20870 | 2020-06-01 Aldy Hernandez <aldyh@redhat.com> | |
20871 | ||
20872 | * Makefile.in (gimple-array-bounds.o): New. | |
20873 | * tree-vrp.c: Move array bounds code... | |
20874 | * gimple-array-bounds.cc: ...here... | |
20875 | * gimple-array-bounds.h: ...and here. | |
20876 | ||
20877 | 2020-06-01 Aldy Hernandez <aldyh@redhat.com> | |
20878 | ||
20879 | * Makefile.in (OBJS): Add value-range-equiv.o. | |
20880 | * tree-vrp.c (*value_range_equiv*): Move to... | |
20881 | * value-range-equiv.cc: ...here. | |
20882 | * tree-vrp.h (class value_range_equiv): Move to... | |
20883 | * value-range-equiv.h: ...here. | |
20884 | * vr-values.h: Include value-range-equiv.h. | |
20885 | ||
20886 | 2020-06-01 Feng Xue <fxue@os.amperecomputing.com> | |
20887 | ||
20888 | PR ipa/93429 | |
20889 | * ipa-cp.c (propagate_aggs_across_jump_function): Check aggregate | |
20890 | lattice for simple pass-through by-ref argument. | |
20891 | ||
20892 | 2020-05-31 Jeff Law <law@redhat.com> | |
20893 | ||
20894 | * lra.c (add_auto_inc_notes): Remove function. | |
20895 | * reload1.c (add_auto_inc_notes): Similarly. Move into... | |
20896 | * rtlanal.c (add_auto_inc_notes): New function. | |
20897 | * rtl.h (add_auto_inc_notes): Add prototype. | |
20898 | * recog.c (peep2_attempt): Scan and add REG_INC notes to new insns | |
20899 | as needed. | |
20900 | ||
20901 | 2020-05-31 Jan Hubicka <jh@suse.cz> | |
20902 | ||
20903 | * lto-section-out.c (lto_output_decl_index): Remove. | |
20904 | (lto_output_field_decl_index): Move to lto-streamer-out.c | |
20905 | (lto_output_fn_decl_index): Move to lto-streamer-out.c | |
20906 | (lto_output_namespace_decl_index): Remove. | |
20907 | (lto_output_var_decl_index): Remove. | |
20908 | (lto_output_type_decl_index): Remove. | |
20909 | (lto_output_type_ref_index): Remove. | |
20910 | * lto-streamer-out.c (output_type_ref): Remove. | |
20911 | (lto_get_index): New function. | |
20912 | (lto_output_tree_ref): Remove. | |
20913 | (lto_indexable_tree_ref): New function. | |
20914 | (lto_output_var_decl_index): Move here from lto-section-out.c; simplify. | |
20915 | (lto_output_fn_decl_index): Move here from lto-section-out.c; simplify. | |
20916 | (stream_write_tree_ref): Update. | |
20917 | (lto_output_tree): Update. | |
20918 | * lto-streamer.h (lto_output_decl_index): Remove prototype. | |
20919 | (lto_output_field_decl_index): Remove prototype. | |
20920 | (lto_output_namespace_decl_index): Remove prototype. | |
20921 | (lto_output_type_decl_index): Remove prototype. | |
20922 | (lto_output_type_ref_index): Remove prototype. | |
20923 | (lto_output_var_decl_index): Move. | |
20924 | (lto_output_fn_decl_index): Move | |
20925 | ||
20926 | 2020-05-31 Jakub Jelinek <jakub@redhat.com> | |
20927 | ||
20928 | PR middle-end/95052 | |
20929 | * expr.c (store_expr): For shortedned_string_cst, ensure temp has | |
20930 | BLKmode. | |
20931 | ||
20932 | 2020-05-31 Jeff Law <law@redhat.com> | |
20933 | ||
20934 | * config/h8300/jumpcall.md (brabs, brabc): Disable patterns. | |
20935 | ||
20936 | 2020-05-31 Jim Wilson <jimw@sifive.com> | |
20937 | ||
20938 | * config/riscv/riscv.md (zero_extendsidi2_shifted): New. | |
20939 | ||
20940 | 2020-05-30 Jonathan Yong <10walls@gmail.com> | |
20941 | ||
20942 | * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Insert -lkernel32 | |
20943 | after -lmsvcrt. This is necessary as libmsvcrt.a is not a pure | |
20944 | import library, but also contains some functions that invoke | |
20945 | others in KERNEL32.DLL. | |
20946 | ||
20947 | 2020-05-29 Segher Boessenkool <segher@kernel.crashing.org> | |
20948 | ||
20949 | * config/rs6000/altivec.md (altivec_vmrghw_direct): Prefer VSX form. | |
20950 | (altivec_vmrglw_direct): Ditto. | |
20951 | (altivec_vperm_<mode>_direct): Ditto. | |
20952 | (altivec_vperm_v8hiv16qi): Ditto. | |
20953 | (*altivec_vperm_<mode>_uns_internal): Ditto. | |
20954 | (*altivec_vpermr_<mode>_internal): Ditto. | |
20955 | (vperm_v8hiv4si): Ditto. | |
20956 | (vperm_v16qiv8hi): Ditto. | |
20957 | ||
20958 | 2020-05-29 Jan Hubicka <jh@suse.cz> | |
20959 | ||
20960 | * lto-streamer-in.c (streamer_read_chain): Move here from | |
20961 | tree-streamer-in.c. | |
20962 | (stream_read_tree_ref): New. | |
20963 | (lto_input_tree_1): Simplify. | |
20964 | * lto-streamer-out.c (stream_write_tree_ref): New. | |
20965 | (lto_write_tree_1): Simplify. | |
20966 | (lto_output_tree_1): Simplify. | |
20967 | (DFS::DFS_write_tree): Simplify. | |
20968 | (streamer_write_chain): Move here from tree-stremaer-out.c. | |
20969 | * lto-streamer.h (lto_output_tree_ref): Update prototype. | |
20970 | (stream_read_tree_ref): Declare | |
20971 | (stream_write_tree_ref): Declare | |
20972 | * tree-streamer-in.c (streamer_read_chain): Update to use | |
20973 | stream_read_tree_ref. | |
20974 | (lto_input_ts_common_tree_pointers): Likewise. | |
20975 | (lto_input_ts_vector_tree_pointers): Likewise. | |
20976 | (lto_input_ts_poly_tree_pointers): Likewise. | |
20977 | (lto_input_ts_complex_tree_pointers): Likewise. | |
20978 | (lto_input_ts_decl_minimal_tree_pointers): Likewise. | |
20979 | (lto_input_ts_decl_common_tree_pointers): Likewise. | |
20980 | (lto_input_ts_decl_with_vis_tree_pointers): Likewise. | |
20981 | (lto_input_ts_field_decl_tree_pointers): Likewise. | |
20982 | (lto_input_ts_function_decl_tree_pointers): Likewise. | |
20983 | (lto_input_ts_type_common_tree_pointers): Likewise. | |
20984 | (lto_input_ts_type_non_common_tree_pointers): Likewise. | |
20985 | (lto_input_ts_list_tree_pointers): Likewise. | |
20986 | (lto_input_ts_vec_tree_pointers): Likewise. | |
20987 | (lto_input_ts_exp_tree_pointers): Likewise. | |
20988 | (lto_input_ts_block_tree_pointers): Likewise. | |
20989 | (lto_input_ts_binfo_tree_pointers): Likewise. | |
20990 | (lto_input_ts_constructor_tree_pointers): Likewise. | |
20991 | (lto_input_ts_omp_clause_tree_pointers): Likewise. | |
20992 | * tree-streamer-out.c (streamer_write_chain): Update to use | |
20993 | stream_write_tree_ref. | |
20994 | (write_ts_common_tree_pointers): Likewise. | |
20995 | (write_ts_vector_tree_pointers): Likewise. | |
20996 | (write_ts_poly_tree_pointers): Likewise. | |
20997 | (write_ts_complex_tree_pointers): Likewise. | |
20998 | (write_ts_decl_minimal_tree_pointers): Likewise. | |
20999 | (write_ts_decl_common_tree_pointers): Likewise. | |
21000 | (write_ts_decl_non_common_tree_pointers): Likewise. | |
21001 | (write_ts_decl_with_vis_tree_pointers): Likewise. | |
21002 | (write_ts_field_decl_tree_pointers): Likewise. | |
21003 | (write_ts_function_decl_tree_pointers): Likewise. | |
21004 | (write_ts_type_common_tree_pointers): Likewise. | |
21005 | (write_ts_type_non_common_tree_pointers): Likewise. | |
21006 | (write_ts_list_tree_pointers): Likewise. | |
21007 | (write_ts_vec_tree_pointers): Likewise. | |
21008 | (write_ts_exp_tree_pointers): Likewise. | |
21009 | (write_ts_block_tree_pointers): Likewise. | |
21010 | (write_ts_binfo_tree_pointers): Likewise. | |
21011 | (write_ts_constructor_tree_pointers): Likewise. | |
21012 | (write_ts_omp_clause_tree_pointers): Likewise. | |
21013 | (streamer_write_tree_body): Likewise. | |
21014 | (streamer_write_integer_cst): Likewise. | |
21015 | * tree-streamer.h (streamer_read_chain):Declare. | |
21016 | (streamer_write_chain):Declare. | |
21017 | (streamer_write_tree_body): Update prototype. | |
21018 | (streamer_write_integer_cst): Update prototype. | |
21019 | ||
21020 | 2020-05-29 H.J. Lu <hjl.tools@gmail.com> | |
21021 | ||
21022 | PR bootstrap/95413 | |
21023 | * configure: Regenerated. | |
21024 | ||
21025 | 2020-05-29 Andrew Stubbs <ams@codesourcery.com> | |
21026 | ||
21027 | * config/gcn/gcn-valu.md (add<mode>3_vcc_zext_dup): Add early clobber. | |
21028 | (add<mode>3_vcc_zext_dup_exec): Likewise. | |
21029 | (add<mode>3_vcc_zext_dup2): Likewise. | |
21030 | (add<mode>3_vcc_zext_dup2_exec): Likewise. | |
21031 | ||
21032 | 2020-05-29 Richard Biener <rguenther@suse.de> | |
21033 | ||
21034 | PR tree-optimization/95272 | |
21035 | * tree-vectorizer.h (_slp_tree::representative): Add. | |
21036 | (SLP_TREE_REPRESENTATIVE): Likewise. | |
21037 | * tree-vect-loop.c (vectorizable_reduction): Adjust SLP | |
21038 | node gathering. | |
21039 | (vectorizable_live_operation): Use the representative to | |
21040 | attach the reduction info to. | |
21041 | * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize | |
21042 | SLP_TREE_REPRESENTATIVE. | |
21043 | (vect_create_new_slp_node): Likewise. | |
21044 | (slp_copy_subtree): Copy it. | |
21045 | (vect_slp_rearrange_stmts): Re-arrange even COND_EXPR stmts. | |
21046 | (vect_slp_analyze_node_operations_1): Pass the representative | |
21047 | to vect_analyze_stmt. | |
21048 | (vect_schedule_slp_instance): Pass the representative to | |
21049 | vect_transform_stmt. | |
21050 | ||
21051 | 2020-05-29 Richard Biener <rguenther@suse.de> | |
21052 | ||
21053 | PR tree-optimization/95356 | |
21054 | * tree-vect-stmts.c (vectorizable_shift): Do in-place SLP | |
21055 | node hacking during analysis. | |
21056 | ||
21057 | 2020-05-29 Jan Hubicka <hubicka@ucw.cz> | |
21058 | ||
21059 | PR lto/95362 | |
21060 | * lto-streamer-out.c (lto_output_tree): Disable redundant streaming. | |
21061 | ||
21062 | 2020-05-29 Richard Biener <rguenther@suse.de> | |
21063 | ||
21064 | PR tree-optimization/95403 | |
21065 | * tree-vect-stmts.c (vect_init_vector_1): Guard against NULL | |
21066 | stmt_vinfo. | |
21067 | ||
21068 | 2020-05-29 Jakub Jelinek <jakub@redhat.com> | |
21069 | ||
21070 | PR middle-end/95315 | |
21071 | * omp-general.c (omp_resolve_declare_variant): Fix up addition of | |
21072 | declare variant cgraph node removal callback. | |
21073 | ||
21074 | 2020-05-29 Jakub Jelinek <jakub@redhat.com> | |
21075 | ||
21076 | PR middle-end/95052 | |
21077 | * expr.c (store_expr): If expr_size is constant and significantly | |
21078 | larger than TREE_STRING_LENGTH, set temp to just the | |
21079 | TREE_STRING_LENGTH portion of the STRING_CST. | |
21080 | ||
21081 | 2020-05-29 Richard Biener <rguenther@suse.de> | |
21082 | ||
21083 | PR tree-optimization/95393 | |
21084 | * tree-ssa-phiopt.c (minmax_replacement): Use gimple_build | |
21085 | to build the min/max expression so we simplify cases like | |
21086 | MAX(0, s) immediately. | |
21087 | ||
21088 | 2020-05-29 Joe Ramsay <joe.ramsay@arm.com> | |
21089 | ||
21090 | * config/aarch64/aarch64-sve.md (<LOGICAL:optab><mode>3): Add support | |
21091 | for unpacked EOR, ORR, AND. | |
21092 | ||
21093 | 2020-05-28 Nicolas Bértolo <nicolasbertolo@gmail.com> | |
21094 | ||
21095 | * Makefile.in: don't look for libiberty in the "pic" subdirectory | |
21096 | when building for Mingw. Add dependency on xgcc with the proper | |
21097 | extension. | |
21098 | ||
21099 | 2020-05-28 Jeff Law <law@redhat.com> | |
21100 | ||
21101 | * config/h8300/logical.md (bclrhi_msx): Remove pattern. | |
21102 | ||
21103 | 2020-05-28 Jeff Law <law@redhat.com> | |
21104 | ||
21105 | * config/h8300/logical.md (HImode H8/SX bit-and splitter): Don't | |
21106 | make a nonzero adjustment to the memory offset. | |
21107 | (b<ior,xor>hi_msx): Turn into a splitter. | |
21108 | ||
21109 | 2020-05-28 Eric Botcazou <ebotcazou@adacore.com> | |
21110 | ||
21111 | * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into): | |
21112 | Fix off-by-one error. | |
21113 | ||
21114 | 2020-05-28 Richard Sandiford <richard.sandiford@arm.com> | |
21115 | ||
21116 | * config/aarch64/aarch64.h (aarch64_frame): Add a comment above | |
21117 | wb_candidate1 and wb_candidate2. | |
21118 | * config/aarch64/aarch64.c (aarch64_layout_frame): Invalidate | |
21119 | wb_candidate1 and wb_candidate2 if we decided not to use them. | |
21120 | ||
21121 | 2020-05-28 Richard Sandiford <richard.sandiford@arm.com> | |
21122 | ||
21123 | PR testsuite/95361 | |
21124 | * config/aarch64/aarch64.c (aarch64_expand_epilogue): Assert that | |
21125 | we have at least some CFI operations when using a frame pointer. | |
21126 | Only redefine the CFA if we have CFI operations. | |
21127 | ||
21128 | 2020-05-28 Richard Biener <rguenther@suse.de> | |
21129 | ||
21130 | * tree-vect-slp.c (vect_prologue_cost_for_slp): Remove | |
21131 | case for !SLP_TREE_VECTYPE. | |
21132 | (vect_slp_analyze_node_operations): Adjust. | |
21133 | ||
21134 | 2020-05-28 Richard Biener <rguenther@suse.de> | |
21135 | ||
21136 | * tree-vectorizer.h (_slp_tree::vec_defs): Add. | |
21137 | (SLP_TREE_VEC_DEFS): Likewise. | |
21138 | * tree-vect-slp.c (_slp_tree::_slp_tree): Adjust. | |
21139 | (_slp_tree::~_slp_tree): Likewise. | |
21140 | (vect_mask_constant_operand_p): Remove unused function. | |
21141 | (vect_get_constant_vectors): Rename to... | |
21142 | (vect_create_constant_vectors): ... this. Take the | |
21143 | invariant node as argument and code generate it. Remove | |
21144 | dead code, remove temporary asserts. Pass a NULL stmt_info | |
21145 | to vect_init_vector. | |
21146 | (vect_get_slp_defs): Simplify. | |
21147 | (vect_schedule_slp_instance): Code-generate externals and | |
21148 | invariants using vect_create_constant_vectors. | |
21149 | ||
21150 | 2020-05-28 Richard Biener <rguenther@suse.de> | |
21151 | ||
21152 | * tree-vect-stmts.c (vect_finish_stmt_generation_1): | |
21153 | Conditionalize stmt_info use, assert the new stmt cannot throw | |
21154 | when not specified. | |
21155 | (vect_finish_stmt_generation): Adjust assert. | |
21156 | ||
21157 | 2020-05-28 Richard Biener <rguenther@suse.de> | |
21158 | ||
21159 | PR tree-optimization/95273 | |
21160 | PR tree-optimization/95356 | |
21161 | * tree-vect-stmts.c (vectorizable_shift): Adjust when and to | |
21162 | what we set the vector type of the shift operand SLP node | |
21163 | again. | |
21164 | ||
21165 | 2020-05-28 Andrea Corallo <andrea.corallo@arm.com> | |
21166 | ||
21167 | * config/arm/arm.c (mve_vector_mem_operand): Fix unwanted | |
21168 | fall-throughs. | |
21169 | ||
21170 | 2020-05-28 Martin Liska <mliska@suse.cz> | |
21171 | ||
21172 | PR web/95380 | |
21173 | * doc/invoke.texi: Add missing params, remove max-once-peeled-insns and | |
21174 | rename ipcp-unit-growth to ipa-cp-unit-growth. | |
21175 | ||
21176 | 2020-05-28 Hongtao Liu <hongtao.liu@intel.com> | |
21177 | ||
21178 | * config/i386/sse.md (*avx512vl_<code>v2div2qi2_store_1): Rename | |
21179 | from *avx512vl_<code>v2div2qi_store and refine memory size of | |
21180 | the pattern. | |
21181 | (*avx512vl_<code>v2div2qi2_mask_store_1): Ditto. | |
21182 | (*avx512vl_<code><mode>v4qi2_store_1): Ditto. | |
21183 | (*avx512vl_<code><mode>v4qi2_mask_store_1): Ditto. | |
21184 | (*avx512vl_<code><mode>v8qi2_store_1): Ditto. | |
21185 | (*avx512vl_<code><mode>v8qi2_mask_store_1): Ditto. | |
21186 | (*avx512vl_<code><mode>v4hi2_store_1): Ditto. | |
21187 | (*avx512vl_<code><mode>v4hi2_mask_store_1): Ditto. | |
21188 | (*avx512vl_<code>v2div2hi2_store_1): Ditto. | |
21189 | (*avx512vl_<code>v2div2hi2_mask_store_1): Ditto. | |
21190 | (*avx512vl_<code>v2div2si2_store_1): Ditto. | |
21191 | (*avx512vl_<code>v2div2si2_mask_store_1): Ditto. | |
21192 | (*avx512f_<code>v8div16qi2_store_1): Ditto. | |
21193 | (*avx512f_<code>v8div16qi2_mask_store_1): Ditto. | |
21194 | (*avx512vl_<code>v2div2qi2_store_2): New define_insn_and_split. | |
21195 | (*avx512vl_<code>v2div2qi2_mask_store_2): Ditto. | |
21196 | (*avx512vl_<code><mode>v4qi2_store_2): Ditto. | |
21197 | (*avx512vl_<code><mode>v4qi2_mask_store_2): Ditto. | |
21198 | (*avx512vl_<code><mode>v8qi2_store_2): Ditto. | |
21199 | (*avx512vl_<code><mode>v8qi2_mask_store_2): Ditto. | |
21200 | (*avx512vl_<code><mode>v4hi2_store_2): Ditto. | |
21201 | (*avx512vl_<code><mode>v4hi2_mask_store_2): Ditto. | |
21202 | (*avx512vl_<code>v2div2hi2_store_2): Ditto. | |
21203 | (*avx512vl_<code>v2div2hi2_mask_store_2): Ditto. | |
21204 | (*avx512vl_<code>v2div2si2_store_2): Ditto. | |
21205 | (*avx512vl_<code>v2div2si2_mask_store_2): Ditto. | |
21206 | (*avx512f_<code>v8div16qi2_store_2): Ditto. | |
21207 | (*avx512f_<code>v8div16qi2_mask_store_2): Ditto. | |
21208 | * config/i386/i386-builtin-types.def: Adjust builtin type. | |
21209 | * config/i386/i386-expand.c: Ditto. | |
21210 | * config/i386/i386-builtin.def: Adjust builtin. | |
21211 | * config/i386/avx512fintrin.h: Ditto. | |
21212 | * config/i386/avx512vlbwintrin.h: Ditto. | |
21213 | * config/i386/avx512vlintrin.h: Ditto. | |
21214 | ||
21215 | 2020-05-28 Dong JianQiang <dongjianqiang2@huawei.com> | |
21216 | ||
21217 | PR gcov-profile/95332 | |
21218 | * gcov-io.c (gcov_var::endian): Move field. | |
21219 | (from_file): Add IN_GCOV_TOOL check. | |
21220 | * gcov-io.h (gcov_magic): Ditto. | |
21221 | ||
21222 | 2020-05-28 Max Filippov <jcmvbkbc@gmail.com> | |
21223 | ||
21224 | * config/xtensa/xtensa.c (xtensa_delegitimize_address): New | |
21225 | function. | |
21226 | (TARGET_DELEGITIMIZE_ADDRESS): New macro. | |
21227 | ||
21228 | 2020-05-27 Eric Botcazou <ebotcazou@adacore.com> | |
21229 | ||
21230 | * builtin-types.def (BT_UINT128): New primitive type. | |
21231 | (BT_FN_UINT128_UINT128): New function type. | |
21232 | * builtins.def (BUILT_IN_BSWAP128): New GCC builtin. | |
21233 | * doc/extend.texi (__builtin_bswap128): Document it. | |
21234 | * builtins.c (expand_builtin): Deal with BUILT_IN_BSWAP128. | |
21235 | (is_inexpensive_builtin): Likewise. | |
21236 | * fold-const-call.c (fold_const_call_ss): Likewise. | |
21237 | * fold-const.c (tree_call_nonnegative_warnv_p): Likewise. | |
21238 | * tree-ssa-ccp.c (evaluate_stmt): Likewise. | |
21239 | * tree-vect-stmts.c (vect_get_data_ptr_increment): Likewise. | |
21240 | (vectorizable_call): Likewise. | |
21241 | * optabs.c (expand_unop): Always use the double word path for it. | |
21242 | * tree-core.h (enum tree_index): Add TI_UINT128_TYPE. | |
21243 | * tree.h (uint128_type_node): New global type. | |
21244 | * tree.c (build_common_tree_nodes): Build it if TImode is supported. | |
21245 | ||
21246 | 2020-05-27 Uroš Bizjak <ubizjak@gmail.com> | |
21247 | ||
21248 | * config/i386/mmx.md (*mmx_haddv2sf3): Remove SSE alternatives. | |
21249 | (mmx_hsubv2sf3): Ditto. | |
21250 | (mmx_haddsubv2sf3): New expander. | |
21251 | (*mmx_haddsubv2sf3): Rename from mmx_addsubv2sf3. Correct | |
21252 | RTL template to model horizontal subtraction and addition. | |
21253 | * config/i386/i386-builtin.def (IX86_BUILTIN_PFPNACC): | |
21254 | Update for rename. | |
21255 | ||
21256 | 2020-05-27 Uroš Bizjak <ubizjak@gmail.com> | |
21257 | ||
21258 | PR target/95355 | |
21259 | * config/i386/sse.md | |
21260 | (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): | |
21261 | Remove %q operand modifier from insn template. | |
21262 | (avx512f_<code>v8hiv8di2<mask_name>): Ditto. | |
21263 | ||
21264 | 2020-05-27 Uroš Bizjak <ubizjak@gmail.com> | |
21265 | ||
21266 | * config/i386/mmx.md (mmx_pswapdsf2): Add SSE alternatives. | |
21267 | Enable insn pattern for TARGET_MMX_WITH_SSE. | |
21268 | (*mmx_movshdup): New insn pattern. | |
21269 | (*mmx_movsldup): Ditto. | |
21270 | (*mmx_movss): Ditto. | |
21271 | * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): | |
21272 | Handle E_V2SFmode. | |
21273 | (expand_vec_perm_movs): Handle E_V2SFmode. | |
21274 | (expand_vec_perm_even_odd): Ditto. | |
21275 | (expand_vec_perm_broadcast_1): Assert that E_V2SFmode | |
21276 | is already handled by standard shuffle patterns. | |
21277 | ||
21278 | 2020-05-27 Richard Biener <rguenther@suse.de> | |
21279 | ||
21280 | PR tree-optimization/95295 | |
21281 | * tree-ssa-loop-im.c (sm_seq_valid_bb): Fix sinking after | |
21282 | merging stores from paths. | |
21283 | ||
21284 | 2020-05-27 Richard Biener <rguenther@suse.de> | |
21285 | ||
21286 | PR tree-optimization/95356 | |
21287 | * tree-vect-stmts.c (vectorizable_shift): Adjust vector | |
21288 | type for the shift operand. | |
21289 | ||
21290 | 2020-05-27 Richard Biener <rguenther@suse.de> | |
21291 | ||
21292 | PR tree-optimization/95335 | |
21293 | * tree-vect-slp.c (vect_slp_analyze_node_operations): Reset | |
21294 | lvisited for nodes made external. | |
21295 | ||
21296 | 2020-05-27 Richard Biener <rguenther@suse.de> | |
21297 | ||
21298 | * dump-context.h (debug_dump_context): New class. | |
21299 | (dump_context): Make it friend. | |
21300 | * dumpfile.c (debug_dump_context::debug_dump_context): | |
21301 | Implement. | |
21302 | (debug_dump_context::~debug_dump_context): Likewise. | |
21303 | * tree-vect-slp.c: Include dump-context.h. | |
21304 | (vect_print_slp_tree): Dump a single SLP node. | |
21305 | (debug): New overload for slp_tree. | |
21306 | (vect_print_slp_graph): Rename from vect_print_slp_tree and | |
21307 | use that. | |
21308 | (vect_analyze_slp_instance): Adjust. | |
21309 | ||
21310 | 2020-05-27 Jakub Jelinek <jakub@redhat.com> | |
21311 | ||
21312 | PR middle-end/95315 | |
21313 | * omp-general.c (omp_declare_variant_remove_hook): New function. | |
21314 | (omp_resolve_declare_variant): Always return base if it is already | |
21315 | declare_variant_alt magic decl itself. Register | |
21316 | omp_declare_variant_remove_hook as cgraph node removal hook. | |
21317 | ||
21318 | 2020-05-27 Jeff Law <law@redhat.com> | |
21319 | ||
21320 | * config/h8300/testcompare.md (tst_extzv_1_n): Do not accept constants | |
21321 | for the primary input operand. | |
21322 | (tstsi_variable_bit_qi): Similarly. | |
21323 | ||
21324 | 2020-05-26 Uroš Bizjak <ubizjak@gmail.com> | |
21325 | ||
21326 | * config/i386/mmx.md (mmx_pswapdv2si2): Add SSE2 alternative. | |
21327 | ||
21328 | 2020-05-26 Tobias Burnus <tobias@codesourcery.com> | |
21329 | ||
21330 | PR ipa/95320 | |
21331 | * ipa-utils.h (odr_type_p): Also permit calls with | |
21332 | only flag_generate_offload set. | |
21333 | ||
21334 | 2020-05-26 Alexandre Oliva <oliva@adacore.com> | |
21335 | ||
21336 | * gcc.c (validate_switches): Add braced parameter. Adjust all | |
21337 | callers. Expected and skip trailing brace only if braced. | |
21338 | Return after handling one atom otherwise. | |
21339 | (DUMPS_OPTIONS): New. | |
21340 | (cpp_debug_options): Define in terms of it. | |
21341 | ||
21342 | 2020-05-26 Richard Biener <rguenther@suse.de> | |
21343 | ||
21344 | PR tree-optimization/95327 | |
21345 | * tree-vect-stmts.c (vectorizable_shift): Compute op1_vectype | |
21346 | when we are not using a scalar shift. | |
21347 | ||
21348 | 2020-05-26 Uroš Bizjak <ubizjak@gmail.com> | |
21349 | ||
21350 | * config/i386/mmx.md (*mmx_pshufd_1): New insn pattern. | |
21351 | * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): | |
21352 | Handle E_V2SImode and E_V4HImode. | |
21353 | (expand_vec_perm_even_odd_1): Handle E_V4HImode. | |
21354 | Assert that E_V2SImode is already handled. | |
21355 | (expand_vec_perm_broadcast_1): Assert that E_V2SImode | |
21356 | is already handled by standard shuffle patterns. | |
21357 | ||
21358 | 2020-05-26 Jan Hubicka <jh@suse.cz> | |
21359 | ||
21360 | * tree.c (free_lang_data_in_type): Simpify types of TYPE_VALUES in | |
21361 | enumeral types. | |
21362 | ||
21363 | 2020-05-26 Jakub Jelinek <jakub@redhat.com> | |
21364 | ||
21365 | PR c++/95197 | |
21366 | * gimplify.c (find_combined_omp_for): Move to omp-general.c. | |
21367 | * omp-general.h (find_combined_omp_for): Declare. | |
21368 | * omp-general.c: Include tree-iterator.h. | |
21369 | (find_combined_omp_for): New function, moved from gimplify.c. | |
21370 | ||
21371 | 2020-05-26 Alexandre Oliva <oliva@adacore.com> | |
21372 | ||
21373 | * common.opt (aux_base_name): Define. | |
21374 | (dumpbase, dumpdir): Mark as Driver options. | |
21375 | (-dumpbase, -dumpdir): Likewise. | |
21376 | (dumpbase-ext, -dumpbase-ext): New. | |
21377 | (auxbase, auxbase-strip): Drop. | |
21378 | * doc/invoke.texi (-dumpbase, -dumpbase-ext, -dumpdir): | |
21379 | Document. | |
21380 | (-o): Introduce the notion of primary output, mention it | |
21381 | influences auxiliary and dump output names as well, add | |
21382 | examples. | |
21383 | (-save-temps): Adjust, move examples into -dump*. | |
21384 | (-save-temps=cwd, -save-temps=obj): Likewise. | |
21385 | (-fdump-final-insns): Adjust. | |
21386 | * dwarf2out.c (gen_producer_string): Drop auxbase and | |
21387 | auxbase_strip; add dumpbase_ext. | |
21388 | * gcc.c (enum save_temps): Add SAVE_TEMPS_DUMP. | |
21389 | (save_temps_prefix, save_temps_length): Drop. | |
21390 | (save_temps_overrides_dumpdir): New. | |
21391 | (dumpdir, dumpbase, dumpbase_ext): New. | |
21392 | (dumpdir_length, dumpdir_trailing_dash_added): New. | |
21393 | (outbase, outbase_length): New. | |
21394 | (The Specs Language): Introduce %". Adjust %b and %B. | |
21395 | (ASM_FINAL_SPEC): Use %b.dwo for an aux output name always. | |
21396 | Precede object file with %w when it's the primary output. | |
21397 | (cpp_debug_options): Do not pass on incoming -dumpdir, | |
21398 | -dumpbase and -dumpbase-ext options; recompute them with | |
21399 | %:dumps. | |
21400 | (cc1_options): Drop auxbase with and without compare-debug; | |
21401 | use cpp_debug_options instead of dumpbase. Mark asm output | |
21402 | with %w when it's the primary output. | |
21403 | (static_spec_functions): Drop %:compare-debug-auxbase-opt and | |
21404 | %:replace-exception. Add %:dumps. | |
21405 | (driver_handle_option): Implement -save-temps=*/-dumpdir | |
21406 | mutual overriding logic. Save dumpdir, dumpbase and | |
21407 | dumpbase-ext options. Do not save output_file in | |
21408 | save_temps_prefix. | |
21409 | (adds_single_suffix_p): New. | |
21410 | (single_input_file_index): New. | |
21411 | (process_command): Combine output dir, output base name, and | |
21412 | dumpbase into dumpdir and outbase. | |
21413 | (set_collect_gcc_options): Pass a possibly-adjusted -dumpdir. | |
21414 | (do_spec_1): Optionally dumpdir instead of save_temps_prefix, | |
21415 | and outbase instead of input_basename in %b, %B and in | |
21416 | -save-temps aux files. Handle empty argument %". | |
21417 | (driver::maybe_run_linker): Adjust dumpdir and auxbase. | |
21418 | (compare_debug_dump_opt_spec_function): Adjust gkd dump file | |
21419 | naming. Spec-quote the computed -fdump-final-insns file name. | |
21420 | (debug_auxbase_opt): Drop. | |
21421 | (compare_debug_self_opt_spec_function): Drop auxbase-strip | |
21422 | computation. | |
21423 | (compare_debug_auxbase_opt_spec_function): Drop. | |
21424 | (not_actual_file_p): New. | |
21425 | (replace_extension_spec_func): Drop. | |
21426 | (dumps_spec_func): New. | |
21427 | (convert_white_space): Split-out parts into... | |
21428 | (quote_string, whitespace_to_convert_p): ... these. New. | |
21429 | (quote_spec_char_p, quote_spec, quote_spec_arg): New. | |
21430 | (driver::finalize): Release and reset new variables; drop | |
21431 | removed ones. | |
21432 | * lto-wrapper.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Define if... | |
21433 | (TARGET_EXECUTABLE_SUFFIX): ... is defined; define this to the | |
21434 | empty string otherwise. | |
21435 | (DUMPBASE_SUFFIX): Drop leading period. | |
21436 | (debug_objcopy): Use concat. | |
21437 | (run_gcc): Recognize -save-temps=* as -save-temps too. Obey | |
21438 | -dumpdir. Pass on empty dumpdir and dumpbase with a directory | |
21439 | component. Simplify temp file names. | |
21440 | * opts.c (finish_options): Drop aux base name handling. | |
21441 | (common_handle_option): Drop auxbase-strip handling. | |
21442 | * toplev.c (print_switch_values): Drop auxbase, add | |
21443 | dumpbase-ext. | |
21444 | (process_options): Derive aux_base_name from dump_base_name | |
21445 | and dump_base_ext. | |
21446 | (lang_dependent_init): Compute dump_base_ext along with | |
21447 | dump_base_name. Disable stack usage and callgraph-info during | |
21448 | lto generation and compare-debug recompilation. | |
21449 | ||
21450 | 2020-05-26 Hongtao Liu <hongtao.liu@intel.com> | |
21451 | Uroš Bizjak <ubizjak@gmail.com> | |
21452 | ||
21453 | PR target/95211 | |
21454 | PR target/95256 | |
21455 | * config/i386/sse.md (<floatunssuffix>v2div2sf2): New expander. | |
21456 | (fix<fixunssuffix>_truncv2sfv2di2): Ditto. | |
21457 | (avx512dq_float<floatunssuffix>v2div2sf2): Renaming from | |
21458 | float<floatunssuffix>v2div2sf2. | |
21459 | (avx512dq_fix<fixunssuffix>_truncv2sfv2di2<mask_name>): | |
21460 | Renaming from fix<fixunssuffix>_truncv2sfv2di2<mask_name>. | |
21461 | (vec_pack<floatprefix>_float_<mode>): Adjust icode name. | |
21462 | (vec_unpack_<fixprefix>fix_trunc_lo_<mode>): Ditto. | |
21463 | (vec_unpack_<fixprefix>fix_trunc_hi_<mode>): Ditto. | |
21464 | * config/i386/i386-builtin.def: Ditto. | |
21465 | * emit-rtl.c (validate_subreg): Allow use of *paradoxical* vector | |
21466 | subregs when both omode and imode are vector mode and | |
21467 | have the same inner mode. | |
21468 | ||
21469 | 2020-05-25 Eric Botcazou <ebotcazou@adacore.com> | |
21470 | ||
21471 | * gimple-ssa-store-merging.c (merged_store_group::can_be_merged_into): | |
21472 | Only turn MEM_REFs into bit-field stores for small bit-field regions. | |
21473 | (imm_store_chain_info::output_merged_store): Be prepared for sources | |
21474 | with non-integral type in the bit-field insertion case. | |
21475 | (pass_store_merging::process_store): Use MAX_BITSIZE_MODE_ANY_INT as | |
21476 | the largest size for the bit-field case. | |
21477 | ||
21478 | 2020-05-25 Uroš Bizjak <ubizjak@gmail.com> | |
21479 | ||
21480 | * config/i386/mmx.md (*vec_dupv2sf): Redefine as define_insn. | |
21481 | (mmx_pshufw_1): Change Yv constraint to xYw. Correct type attribute. | |
21482 | (*vec_dupv4hi): Redefine as define_insn. | |
21483 | Remove alternative with general register input. | |
21484 | (*vec_dupv2si): Ditto. | |
21485 | ||
21486 | 2020-05-25 Richard Biener <rguenther@suse.de> | |
21487 | ||
21488 | PR tree-optimization/95309 | |
21489 | * tree-vect-slp.c (vect_get_constant_vectors): Move number | |
21490 | of vector computation ... | |
21491 | (vect_slp_analyze_node_operations): ... to analysis phase. | |
21492 | ||
21493 | 2020-05-25 Jan Hubicka <hubicka@ucw.cz> | |
21494 | ||
21495 | * lto-streamer-out.c (lto_output_tree): Add streamer_debugging check. | |
21496 | * lto-streamer.h (streamer_debugging): New constant | |
21497 | * tree-streamer-in.c (streamer_read_tree_bitfields): Add | |
21498 | streamer_debugging check. | |
21499 | (streamer_get_pickled_tree): Likewise. | |
21500 | * tree-streamer-out.c (pack_ts_base_value_fields): Likewise. | |
21501 | ||
21502 | 2020-05-25 Richard Biener <rguenther@suse.de> | |
21503 | ||
21504 | PR tree-optimization/95308 | |
21505 | * tree-ssa-forwprop.c (pass_forwprop::execute): Generalize | |
21506 | test for TARGET_MEM_REFs. | |
21507 | ||
21508 | 2020-05-25 Richard Biener <rguenther@suse.de> | |
21509 | ||
21510 | PR tree-optimization/95295 | |
21511 | * tree-ssa-loop-im.c (sm_seq_valid_bb): Compare remat stores | |
21512 | RHSes and drop to full sm_other if they are not equal. | |
21513 | ||
21514 | 2020-05-25 Richard Biener <rguenther@suse.de> | |
21515 | ||
21516 | PR tree-optimization/95271 | |
21517 | * tree-vect-stmts.c (vectorizable_bswap): Update invariant SLP | |
21518 | children vector type. | |
21519 | (vectorizable_call): Pass down slp ops. | |
21520 | ||
21521 | 2020-05-25 Richard Biener <rguenther@suse.de> | |
21522 | ||
21523 | PR tree-optimization/95297 | |
21524 | * tree-vect-stmts.c (vectorizable_shift): For scalar_shift_arg | |
21525 | skip updating operand 1 vector type. | |
21526 | ||
21527 | 2020-05-25 Richard Biener <rguenther@suse.de> | |
21528 | ||
21529 | PR tree-optimization/95284 | |
21530 | * tree-ssa-sink.c (sink_common_stores_to_bb): Amend previous | |
21531 | fix. | |
21532 | ||
21533 | 2020-05-25 Hongtao Liu <hongtao.liu@intel.com> | |
21534 | ||
21535 | PR target/95125 | |
21536 | * config/i386/sse.md (sf2dfmode_lower): New mode attribute. | |
21537 | (trunc<mode><sf2dfmode_lower>2) New expander. | |
21538 | (extend<sf2dfmode_lower><mode>2): Ditto. | |
21539 | ||
21540 | 2020-05-23 Iain Sandoe <iain@sandoe.co.uk> | |
21541 | ||
21542 | * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Make | |
21543 | ubsan_{data,type},ASAN symbols linker-visible. | |
21544 | ||
21545 | 2020-05-22 Jan Hubicka <hubicka@ucw.cz> | |
21546 | ||
21547 | * lto-streamer-out.c (DFS::DFS): Silence warning. | |
21548 | ||
21549 | 2020-05-22 Uroš Bizjak <ubizjak@gmail.com> | |
21550 | ||
21551 | PR target/95255 | |
21552 | * config/i386/i386.md (<rounding_insn><mode>2): Do not try to | |
21553 | expand non-sse4 ROUND_ROUNDEVEN rounding via SSE support routines. | |
21554 | ||
21555 | 2020-05-22 Jan Hubicka <hubicka@ucw.cz> | |
21556 | ||
21557 | * lto-streamer-out.c (lto_output_tree): Do not stream final ref if | |
21558 | it is not needed. | |
21559 | ||
21560 | 2020-05-22 Jan Hubicka <hubicka@ucw.cz> | |
21561 | ||
21562 | * lto-section-out.c (lto_output_decl_index): Adjust dump indentation. | |
21563 | * lto-streamer-out.c (create_output_block): Fix whitespace | |
21564 | (lto_write_tree_1): Add (debug) dump. | |
21565 | (DFS::DFS): Add dump. | |
21566 | (DFS::DFS_write_tree_body): Do not dump here. | |
21567 | (lto_output_tree): Improve dumping; do not stream ref when not needed. | |
21568 | (produce_asm_for_decls): Fix whitespace. | |
21569 | * tree-streamer-out.c (streamer_write_tree_header): Add dump. | |
21570 | * tree-streamer-out.c (streamer_write_integer_cst): Add debug dump. | |
21571 | ||
21572 | 2020-05-22 Hongtao.liu <hongtao.liu@intel.com> | |
21573 | ||
21574 | PR target/92658 | |
21575 | * config/i386/sse.md (trunc<pmov_src_lower><mode>2): New expander | |
21576 | (truncv32hiv32qi2): Ditto. | |
21577 | (trunc<ssedoublemodelower><mode>2): Ditto. | |
21578 | (trunc<mode><pmov_dst_3>2): Ditto. | |
21579 | (trunc<mode><pmov_dst_mode_4>2): Ditto. | |
21580 | (truncv2div2si2): Ditto. | |
21581 | (truncv8div8qi2): Ditto. | |
21582 | (avx512f_<code>v8div16qi2): Renaming from *avx512f_<code>v8div16qi2. | |
21583 | (avx512vl_<code>v2div2si): Renaming from *avx512vl_<code>v2div2si2. | |
21584 | (avx512vl_<code><mode>v2<ssecakarnum>qi2): Renaming from | |
21585 | *avx512vl_<code><mode>v<ssescalarnum>qi2. | |
21586 | ||
21587 | 2020-05-22 H.J. Lu <hongjiu.lu@intel.com> | |
21588 | ||
21589 | PR target/95258 | |
21590 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect | |
21591 | AVX512VPOPCNTDQ. | |
21592 | ||
21593 | 2020-05-22 Richard Biener <rguenther@suse.de> | |
21594 | ||
21595 | PR tree-optimization/95268 | |
21596 | * tree-ssa-sink.c (sink_common_stores_to_bb): Handle clobbers | |
21597 | properly. | |
21598 | ||
21599 | 2020-05-22 Jan Hubicka <hubicka@ucw.cz> | |
21600 | ||
21601 | * tree-streamer.c (record_common_node): Fix hash value of pre-streamed | |
21602 | nodes. | |
21603 | ||
21604 | 2020-05-22 Jan Hubicka <hubicka@ucw.cz> | |
21605 | ||
21606 | * lto-streamer-in.c (lto_read_tree): Do not stream end markers. | |
21607 | (lto_input_scc): Optimize streaming of entry lengths. | |
21608 | * lto-streamer-out.c (lto_write_tree): Do not stream end markers | |
21609 | (DFS::DFS): Optimize stremaing of entry lengths | |
21610 | ||
21611 | 2020-05-22 Richard Biener <rguenther@suse.de> | |
21612 | ||
21613 | PR lto/95190 | |
21614 | * doc/invoke.texi (flto): Document behavior of diagnostic | |
21615 | options. | |
21616 | ||
21617 | 2020-05-22 Richard Biener <rguenther@suse.de> | |
21618 | ||
21619 | * tree-vectorizer.h (vect_is_simple_use): New overload. | |
21620 | (vect_maybe_update_slp_op_vectype): New. | |
21621 | * tree-vect-stmts.c (vect_is_simple_use): New overload | |
21622 | accessing operands of SLP vs. non-SLP operation transparently. | |
21623 | (vect_maybe_update_slp_op_vectype): New function updating | |
21624 | the possibly shared SLP operands vector type. | |
21625 | (vectorizable_operation): Be a bit more SLP vs non-SLP agnostic | |
21626 | using the new vect_is_simple_use overload; update SLP invariant | |
21627 | operand nodes vector type. | |
21628 | (vectorizable_comparison): Likewise. | |
21629 | (vectorizable_call): Likewise. | |
21630 | (vectorizable_conversion): Likewise. | |
21631 | (vectorizable_shift): Likewise. | |
21632 | (vectorizable_store): Likewise. | |
21633 | (vectorizable_condition): Likewise. | |
21634 | (vectorizable_assignment): Likewise. | |
21635 | * tree-vect-loop.c (vectorizable_reduction): Likewise. | |
21636 | * tree-vect-slp.c (vect_get_constant_vectors): Enforce | |
21637 | present SLP_TREE_VECTYPE and check it matches previous | |
21638 | behavior. | |
21639 | ||
21640 | 2020-05-22 Richard Biener <rguenther@suse.de> | |
21641 | ||
21642 | PR tree-optimization/95248 | |
21643 | * tree-ssa-loop-im.c (sm_seq_valid_bb): Remove bogus early out. | |
21644 | ||
21645 | 2020-05-22 Richard Biener <rguenther@suse.de> | |
21646 | ||
21647 | * tree-vectorizer.h (_slp_tree::_slp_tree): New. | |
21648 | (_slp_tree::~_slp_tree): Likewise. | |
21649 | * tree-vect-slp.c (_slp_tree::_slp_tree): Factor out code | |
21650 | from allocators. | |
21651 | (_slp_tree::~_slp_tree): Implement. | |
21652 | (vect_free_slp_tree): Simplify. | |
21653 | (vect_create_new_slp_node): Likewise. Add nops parameter. | |
21654 | (vect_build_slp_tree_2): Adjust. | |
21655 | (vect_analyze_slp_instance): Likewise. | |
21656 | ||
21657 | 2020-05-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
21658 | ||
21659 | * adjust-alignment.c: Include memmodel.h. | |
21660 | ||
21661 | 2020-05-21 H.J. Lu <hongjiu.lu@intel.com> | |
21662 | ||
21663 | PR target/95260 | |
21664 | * config/i386/cpuid.h: Use hexadecimal in comments. | |
21665 | ||
21666 | 2020-05-21 H.J. Lu <hongjiu.lu@intel.com> | |
21667 | ||
21668 | PR target/95212 | |
21669 | * config/i386/i386-builtins.c (processor_features): Move | |
21670 | F_AVX512VP2INTERSECT after F_AVX512BF16. | |
21671 | (isa_names_table): Likewise. | |
21672 | ||
21673 | 2020-05-21 Martin Liska <mliska@suse.cz> | |
21674 | ||
21675 | * common/config/aarch64/aarch64-common.c (aarch64_handle_option): | |
21676 | Handle OPT_moutline_atomics. | |
21677 | * config/aarch64/aarch64.c: Add outline-atomics to | |
21678 | aarch64_attributes. | |
21679 | * doc/extend.texi: Document the newly added target attribute. | |
21680 | ||
21681 | 2020-05-21 Uroš Bizjak <ubizjak@gmail.com> | |
21682 | ||
21683 | PR target/95218 | |
21684 | ||
21685 | * config/i386/mmx.md (*mmx_<code>v2sf): Do not mark | |
21686 | operands 1 and 2 commutative. Manually swap operands. | |
21687 | (*mmx_nabsv2sf2): Ditto. | |
21688 | ||
21689 | Partially revert: | |
21690 | 2020-05-18 Uroš Bizjak <ubizjak@gmail.com> | |
21691 | ||
21692 | * config/i386/i386.md (*<code>tf2_1): | |
21693 | Mark operands 1 and 2 commutative. | |
21694 | (*nabstf2_1): Ditto. | |
21695 | * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2 | |
21696 | commutative. Do not swap operands. | |
21697 | (*nabs<mode>2): Ditto. | |
21698 | ||
21699 | 2020-05-20 Uroš Bizjak <ubizjak@gmail.com> | |
21700 | ||
21701 | PR target/95229 | |
21702 | * config/i386/sse.md (<code>v8qiv8hi2): Use | |
21703 | simplify_gen_subreg instead of simplify_subreg. | |
21704 | (<code>v8qiv8si2): Ditto. | |
21705 | (<code>v4qiv4si2): Ditto. | |
21706 | (<code>v4hiv4si2): Ditto. | |
21707 | (<code>v8qiv8di2): Ditto. | |
21708 | (<code>v4qiv4di2): Ditto. | |
21709 | (<code>v2qiv2di2): Ditto. | |
21710 | (<code>v4hiv4di2): Ditto. | |
21711 | (<code>v2hiv2di2): Ditto. | |
21712 | (<code>v2siv2di2): Ditto. | |
21713 | ||
21714 | 2020-05-20 Uroš Bizjak <ubizjak@gmail.com> | |
21715 | ||
21716 | PR target/95238 | |
21717 | * config/i386/i386.md (*pushsi2_rex64): | |
21718 | Use "e" constraint instead of "i". | |
21719 | ||
21720 | 2020-05-20 Jan Hubicka <hubicka@ucw.cz> | |
21721 | ||
21722 | * lto-streamer-in.c (lto_input_scc): Add SHARED_SCC parameter. | |
21723 | (lto_input_tree_1): Strenghten sanity check. | |
21724 | (lto_input_tree): Update call of lto_input_scc. | |
21725 | * lto-streamer-out.c: Include ipa-utils.h | |
21726 | (create_output_block): Initialize local_trees if merigng is going | |
21727 | to happen. | |
21728 | (destroy_output_block): Destroy local_trees. | |
21729 | (DFS): Add max_local_entry. | |
21730 | (local_tree_p): New function. | |
21731 | (DFS::DFS): Initialize and maintain it. | |
21732 | (DFS::DFS_write_tree): Decide on streaming format. | |
21733 | (lto_output_tree): Stream inline singleton SCCs | |
21734 | * lto-streamer.h (enum LTO_tags): Add LTO_trees. | |
21735 | (struct output_block): Add local_trees. | |
21736 | (lto_input_scc): Update prototype. | |
21737 | ||
21738 | 2020-05-20 Patrick Palka <ppalka@redhat.com> | |
21739 | ||
21740 | PR c++/95223 | |
21741 | * hash-table.h (hash_table::find_with_hash): Move up the call to | |
21742 | hash_table::verify. | |
21743 | ||
21744 | 2020-05-20 Martin Liska <mliska@suse.cz> | |
21745 | ||
21746 | * lto-compress.c (lto_compression_zstd): Fill up | |
21747 | num_compressed_il_bytes. | |
21748 | (lto_uncompression_zstd): Likewise for num_uncompressed_il_bytes here. | |
21749 | ||
21750 | 2020-05-20 Richard Biener <rguenther@suse.de> | |
21751 | ||
21752 | PR tree-optimization/95219 | |
21753 | * tree-vect-loop.c (vectorizable_induction): Reduce | |
21754 | group_size before computing the number of required IVs. | |
21755 | ||
21756 | 2020-05-20 Richard Biener <rguenther@suse.de> | |
21757 | ||
21758 | PR middle-end/95231 | |
21759 | * tree-inline.c (remap_gimple_stmt): Revert adjusting | |
21760 | COND_EXPR and VEC_COND_EXPR for a -fnon-call-exception boundary. | |
21761 | ||
21762 | 2020-05-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
21763 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
21764 | ||
21765 | PR target/94959 | |
21766 | * config/arm/arm-protos.h (arm_mode_base_reg_class): Function | |
21767 | declaration. | |
21768 | (mve_vector_mem_operand): Likewise. | |
21769 | * config/arm/arm.c (thumb2_legitimate_address_p): For MVE target check | |
21770 | the load from memory to a core register is legitimate for give mode. | |
21771 | (mve_vector_mem_operand): Define function. | |
21772 | (arm_print_operand): Modify comment. | |
21773 | (arm_mode_base_reg_class): Define. | |
21774 | * config/arm/arm.h (MODE_BASE_REG_CLASS): Modify to add check for | |
21775 | TARGET_HAVE_MVE and expand to arm_mode_base_reg_class on TRUE. | |
21776 | * config/arm/constraints.md (Ux): Likewise. | |
21777 | (Ul): Likewise. | |
21778 | * config/arm/mve.md (mve_mov): Replace constraint Us with Ux and also | |
21779 | add support for missing Vector Store Register and Vector Load Register. | |
21780 | Add a new alternative to support load from memory to PC (or label) in | |
21781 | vector store/load. | |
21782 | (mve_vstrbq_<supf><mode>): Modify constraint Us to Ux. | |
21783 | (mve_vldrbq_<supf><mode>): Modify constriant Us to Ux, predicate to | |
21784 | mve_memory_operand and also modify the MVE instructions to emit. | |
21785 | (mve_vldrbq_z_<supf><mode>): Modify constraint Us to Ux. | |
21786 | (mve_vldrhq_fv8hf): Modify constriant Us to Ux, predicate to | |
21787 | mve_memory_operand and also modify the MVE instructions to emit. | |
21788 | (mve_vldrhq_<supf><mode>): Modify constriant Us to Ux, predicate to | |
21789 | mve_memory_operand and also modify the MVE instructions to emit. | |
21790 | (mve_vldrhq_z_fv8hf): Likewise. | |
21791 | (mve_vldrhq_z_<supf><mode>): Likewise. | |
21792 | (mve_vldrwq_fv4sf): Likewise. | |
21793 | (mve_vldrwq_<supf>v4si): Likewise. | |
21794 | (mve_vldrwq_z_fv4sf): Likewise. | |
21795 | (mve_vldrwq_z_<supf>v4si): Likewise. | |
21796 | (mve_vld1q_f<mode>): Modify constriant Us to Ux. | |
21797 | (mve_vld1q_<supf><mode>): Likewise. | |
21798 | (mve_vstrhq_fv8hf): Modify constriant Us to Ux, predicate to | |
21799 | mve_memory_operand. | |
21800 | (mve_vstrhq_p_fv8hf): Modify constriant Us to Ux, predicate to | |
21801 | mve_memory_operand and also modify the MVE instructions to emit. | |
21802 | (mve_vstrhq_p_<supf><mode>): Likewise. | |
21803 | (mve_vstrhq_<supf><mode>): Modify constriant Us to Ux, predicate to | |
21804 | mve_memory_operand. | |
21805 | (mve_vstrwq_fv4sf): Modify constriant Us to Ux. | |
21806 | (mve_vstrwq_p_fv4sf): Modify constriant Us to Ux and also modify the MVE | |
21807 | instructions to emit. | |
21808 | (mve_vstrwq_p_<supf>v4si): Likewise. | |
21809 | (mve_vstrwq_<supf>v4si): Likewise.Modify constriant Us to Ux. | |
21810 | * config/arm/predicates.md (mve_memory_operand): Define. | |
21811 | ||
21812 | 2020-05-30 Richard Biener <rguenther@suse.de> | |
21813 | ||
21814 | PR c/95141 | |
21815 | * c-fold.c (c_fully_fold_internal): Enhance guard on | |
21816 | overflow_warning. | |
21817 | ||
21818 | 2020-05-20 Kito Cheng <kito.cheng@sifive.com> | |
21819 | ||
21820 | PR target/90811 | |
21821 | * Makefile.in (OBJS): Add adjust-alignment.o. | |
21822 | * adjust-alignment.c (pass_data_adjust_alignment): New. | |
21823 | (pass_adjust_alignment): New. | |
21824 | (pass_adjust_alignment::execute): New. | |
21825 | (make_pass_adjust_alignment): New. | |
21826 | * tree-pass.h (make_pass_adjust_alignment): New. | |
21827 | * passes.def: Add pass_adjust_alignment. | |
21828 | ||
21829 | 2020-05-19 Alex Coplan <alex.coplan@arm.com> | |
21830 | ||
21831 | PR target/94591 | |
21832 | * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match | |
21833 | identity permutation. | |
21834 | ||
21835 | 2020-05-19 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
21836 | ||
21837 | * doc/sourcebuild.texi: Document new short_eq_int, ptr_eq_short, | |
21838 | msp430_small, msp430_large and size24plus DejaGNU effective | |
21839 | targets. | |
21840 | Improve grammar in descriptions for size20plus and size32plus effective | |
21841 | targets. | |
21842 | ||
21843 | 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> | |
21844 | ||
21845 | * config/bpf/bpf.c (bpf_compute_frame_layout): Include space for | |
21846 | callee saved registers only in xBPF. | |
21847 | (bpf_expand_prologue): Save callee saved registers only in xBPF. | |
21848 | (bpf_expand_epilogue): Likewise for restoring. | |
21849 | * doc/invoke.texi (eBPF Options): Document this is activated by | |
21850 | -mxbpf. | |
21851 | ||
21852 | 2020-05-19 Jose E. Marchesi <jose.marchesi@oracle.com> | |
21853 | ||
21854 | * config/bpf/bpf.opt (mxbpf): New option. | |
21855 | * doc/invoke.texi (Option Summary): Add -mxbpf. | |
21856 | (eBPF Options): Document -mxbbpf. | |
21857 | ||
21858 | 2020-05-19 Uroš Bizjak <ubizjak@gmail.com> | |
21859 | ||
21860 | PR target/92658 | |
21861 | * config/i386/sse.md (<code>v16qiv16hi2): New expander. | |
21862 | (<code>v32qiv32hi2): Ditto. | |
21863 | (<code>v8qiv8hi2): Ditto. | |
21864 | (<code>v16qiv16si2): Ditto. | |
21865 | (<code>v8qiv8si2): Ditto. | |
21866 | (<code>v4qiv4si2): Ditto. | |
21867 | (<code>v16hiv16si2): Ditto. | |
21868 | (<code>v8hiv8si2): Ditto. | |
21869 | (<code>v4hiv4si2): Ditto. | |
21870 | (<code>v8qiv8di2): Ditto. | |
21871 | (<code>v4qiv4di2): Ditto. | |
21872 | (<code>v2qiv2di2): Ditto. | |
21873 | (<code>v8hiv8di2): Ditto. | |
21874 | (<code>v4hiv4di2): Ditto. | |
21875 | (<code>v2hiv2di2): Ditto. | |
21876 | (<code>v8siv8di2): Ditto. | |
21877 | (<code>v4siv4di2): Ditto. | |
21878 | (<code>v2siv2di2): Ditto. | |
21879 | ||
21880 | 2020-05-19 Kito Cheng <kito.cheng@sifive.com> | |
21881 | ||
21882 | * common/config/riscv/riscv-common.c (riscv_implied_info_t): New. | |
21883 | (riscv_implied_info): New. | |
21884 | (riscv_subset_list): Add handle_implied_ext. | |
21885 | (riscv_subset_list::to_string): New parameter version_p to | |
21886 | control output format. | |
21887 | (riscv_subset_list::handle_implied_ext): New. | |
21888 | (riscv_subset_list::parse_std_ext): Call handle_implied_ext. | |
21889 | (riscv_arch_str): New parameter version_p to control output format. | |
21890 | (riscv_expand_arch): New. | |
21891 | * config/riscv/riscv-protos.h (riscv_arch_str): New parameter, | |
21892 | version_p. | |
21893 | * config/riscv/riscv.h (riscv_expand_arch): New, | |
21894 | (EXTRA_SPEC_FUNCTIONS): Define. | |
21895 | (ASM_SPEC): Transform -march= via riscv_expand_arch. | |
21896 | ||
21897 | 2020-05-19 Kito Cheng <kito.cheng@sifive.com> | |
21898 | ||
21899 | * riscv-common.c (parse_sv_or_non_std_ext): Rename to | |
21900 | parse_multiletter_ext. | |
21901 | (parse_multiletter_ext): Add parsing `h` and `z`, drop `sx`, | |
21902 | adjust parsing order for 's' and 'x'. | |
21903 | ||
21904 | 2020-05-19 Richard Biener <rguenther@suse.de> | |
21905 | ||
21906 | * tree-vectorizer.h (_slp_tree::vectype): Add field. | |
21907 | (SLP_TREE_VECTYPE): New. | |
21908 | * tree-vect-slp.c (vect_create_new_slp_node): Initialize | |
21909 | SLP_TREE_VECTYPE. | |
21910 | (vect_create_new_slp_node): Likewise. | |
21911 | (vect_prologue_cost_for_slp): Move here from tree-vect-stmts.c | |
21912 | and simplify. | |
21913 | (vect_slp_analyze_node_operations): Walk nodes children for | |
21914 | invariant costing. | |
21915 | (vect_get_constant_vectors): Use local scope op variable. | |
21916 | * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Remove here. | |
21917 | (vect_model_simple_cost): Adjust. | |
21918 | (vect_model_store_cost): Likewise. | |
21919 | (vectorizable_store): Likewise. | |
21920 | ||
21921 | 2020-05-18 Martin Sebor <msebor@redhat.com> | |
21922 | ||
21923 | PR middle-end/92815 | |
21924 | * tree-object-size.c (decl_init_size): New function. | |
21925 | (addr_object_size): Call it. | |
21926 | * tree.h (last_field): Declare. | |
21927 | (first_field): Add attribute nonnull. | |
21928 | ||
21929 | 2020-05-18 Martin Sebor <msebor@redhat.com> | |
21930 | ||
21931 | PR middle-end/94940 | |
21932 | * tree-vrp.c (vrp_prop::check_mem_ref): Remove unreachable code. | |
21933 | * tree.c (component_ref_size): Correct the handling or array members | |
21934 | of unions. | |
21935 | Drop a pointless test. | |
21936 | Rename a local variable. | |
21937 | ||
21938 | 2020-05-18 Jason Merrill <jason@redhat.com> | |
21939 | ||
21940 | * aclocal.m4: Add ax_cxx_compile_stdcxx.m4. | |
21941 | * configure.ac: Use AX_CXX_COMPILE_STDCXX(11). | |
21942 | ||
21943 | 2020-05-14 Jason Merrill <jason@redhat.com> | |
21944 | ||
21945 | * doc/install.texi (Prerequisites): Update boostrap compiler | |
21946 | requirement to C++11/GCC 4.8. | |
21947 | ||
21948 | 2020-05-18 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
21949 | ||
21950 | PR tree-optimization/94952 | |
21951 | * gimple-ssa-store-merging.c (pass_store_merging::process_store): | |
21952 | Initialize variables bitpos, bitregion_start, and bitregion_end in | |
21953 | order to silence warnings about use of uninitialized variables. | |
21954 | ||
21955 | 2020-05-18 Carl Love <cel@us.ibm.com> | |
21956 | ||
21957 | PR target/94833 | |
21958 | * config/rs6000/vsx.md (define_expand): Fix instruction generation for | |
21959 | first_match_index_<mode>. | |
21960 | * testsuite/gcc.target/powerpc/builtins-8-p9-runnable.c (main): Add | |
21961 | additional test cases with zero vector elements. | |
21962 | ||
21963 | 2020-05-18 Uroš Bizjak <ubizjak@gmail.com> | |
21964 | ||
21965 | PR target/95169 | |
21966 | * config/i386/i386-expand.c (ix86_expand_int_movcc): | |
21967 | Avoid reversing a non-trapping comparison to a trapping one. | |
21968 | ||
21969 | 2020-05-18 Alex Coplan <alex.coplan@arm.com> | |
21970 | ||
21971 | * config/arm/arm.c (output_move_double): Fix codegen when loading into | |
21972 | a register pair with an odd base register. | |
21973 | ||
21974 | 2020-05-18 Uroš Bizjak <ubizjak@gmail.com> | |
21975 | ||
21976 | * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): | |
21977 | Do not emit FLAGS_REG clobber for TFmode. | |
21978 | * config/i386/i386.md (*<code>tf2_1): Rewrite as | |
21979 | define_insn_and_split. Mark operands 1 and 2 commutative. | |
21980 | (*nabstf2_1): Ditto. | |
21981 | (absneg SSE splitter): Use MODEF mode iterator instead of SSEMODEF. | |
21982 | Do not swap memory operands. Simplify RTX generation. | |
21983 | (neg abs SSE splitter): Ditto. | |
21984 | * config/i386/sse.md (*<code><mode>2): Mark operands 1 and 2 | |
21985 | commutative. Do not swap operands. Simplify RTX generation. | |
21986 | (*nabs<mode>2): Ditto. | |
21987 | ||
21988 | 2020-05-18 Richard Biener <rguenther@suse.de> | |
21989 | ||
21990 | * tree-vect-slp.c (vect_slp_bb): Start after labels. | |
21991 | (vect_get_constant_vectors): Really place init stmt after scalar defs. | |
21992 | * tree-vect-stmts.c (vect_init_vector_1): Insert before | |
21993 | region begin. | |
21994 | ||
21995 | 2020-05-18 H.J. Lu <hongjiu.lu@intel.com> | |
21996 | ||
21997 | * config/i386/driver-i386.c (host_detect_local_cpu): Support | |
21998 | Intel Airmont, Tremont, Comet Lake, Ice Lake and Tiger Lake | |
21999 | processor families. | |
22000 | ||
22001 | 2020-05-18 Richard Biener <rguenther@suse.de> | |
22002 | ||
22003 | PR middle-end/95171 | |
22004 | * tree-inline.c (remap_gimple_stmt): Split out trapping compares | |
22005 | when inlining into a non-call EH function. | |
22006 | ||
22007 | 2020-05-18 Richard Biener <rguenther@suse.de> | |
22008 | ||
22009 | PR tree-optimization/95172 | |
22010 | * tree-ssa-loop-im.c (execute_sm): Get flag whether we | |
22011 | eventually need the conditional processing. | |
22012 | (execute_sm_exit): When processing an orderd sequence | |
22013 | avoid doing any conditional processing. | |
22014 | (hoist_memory_references): Pass down whether all edges | |
22015 | have ordered processing for a ref to execute_sm. | |
22016 | ||
22017 | 2020-05-17 Jeff Law <law@redhat.com> | |
22018 | ||
22019 | * config/h8300/predicates.md (pc_or_label_operand): New predicate. | |
22020 | * config/h8300/jumpcall.md (branch_true, branch_false): Consolidate | |
22021 | into a single pattern using pc_or_label_operand. | |
22022 | * config/h8300/combiner.md (bit branch patterns): Likewise. | |
22023 | * config/h8300/peepholes.md (HImode and SImode branches): Likewise. | |
22024 | ||
22025 | 2020-05-17 H.J. Lu <hongjiu.lu@intel.com> | |
22026 | ||
22027 | PR target/95021 | |
22028 | * config/i386/i386-features.c (has_non_address_hard_reg): | |
22029 | Renamed to ... | |
22030 | (pseudo_reg_set): This. Return the SET expression. Ignore | |
22031 | pseudo register push. | |
22032 | (general_scalar_to_vector_candidate_p): Combine single_set and | |
22033 | has_non_address_hard_reg calls to pseudo_reg_set. | |
22034 | (timode_scalar_to_vector_candidate_p): Likewise. | |
22035 | * config/i386/i386.md (*pushv1ti2): New pattern. | |
22036 | ||
22037 | 2020-05-17 Aldy Hernandez <aldyh@redhat.com> | |
22038 | ||
22039 | Revert: | |
22040 | 2020-05-17 Aldy Hernandez <aldyh@redhat.com> | |
22041 | ||
22042 | * tree-vrp.c (operand_less_p): Move to... | |
22043 | * vr-values.c (operand_less_p): ...here. | |
22044 | * tree-vrp.h (operand_less_p): Remove. | |
22045 | ||
22046 | 2020-05-17 Aldy Hernandez <aldyh@redhat.com> | |
22047 | ||
22048 | * tree-vrp.c (operand_less_p): Move to... | |
22049 | * vr-values.c (operand_less_p): ...here. | |
22050 | * tree-vrp.h (operand_less_p): Remove. | |
22051 | ||
22052 | 2020-05-17 Aldy Hernandez <aldyh@redhat.com> | |
22053 | ||
22054 | * tree-vrp.c (class vrp_insert): Remove prototype for | |
22055 | live_on_edge. | |
22056 | ||
22057 | 2020-05-17 Aldy Hernandez <aldyh@redhat.com> | |
22058 | ||
22059 | * tree-vrp.c (class live_names): New. | |
22060 | (live_on_edge): Move into live_names. | |
22061 | (build_assert_expr_for): Move into vrp_insert. | |
22062 | (find_assert_locations_in_bb): Rename from | |
22063 | find_assert_locations_1. | |
22064 | (process_assert_insertions_for): Move into vrp_insert. | |
22065 | (compare_assert_loc): Same. | |
22066 | (remove_range_assertions): Same. | |
22067 | (dump_asserts_for): Rename to vrp_insert::dump. | |
22068 | (debug_asserts_for): Rename to vrp_insert::debug. | |
22069 | (dump_all_asserts): Rename to vrp_insert::dump. | |
22070 | (debug_all_asserts): Rename to vrp_insert::debug. | |
22071 | ||
22072 | 2020-05-17 Aldy Hernandez <aldyh@redhat.com> | |
22073 | ||
22074 | * tree-vrp.c (class vrp_prop): Move check_all_array_refs, | |
22075 | check_array_ref, check_mem_ref, and search_for_addr_array | |
22076 | into new class... | |
22077 | (class array_bounds_checker): ...here. | |
22078 | (class check_array_bounds_dom_walker): Adjust to use | |
22079 | array_bounds_checker. | |
22080 | (check_all_array_refs): Move into array_bounds_checker and rename | |
22081 | to check. | |
22082 | (class vrp_folder): Make fold_predicate_in private. | |
22083 | ||
22084 | 2020-05-15 Jeff Law <law@redhat.com> | |
22085 | ||
22086 | * config/h8300/h8300.md (SFI iterator): New iterator for | |
22087 | SFmode and SImode. | |
22088 | * config/h8300/peepholes.md (memory comparison): Use mode | |
22089 | iterator to consolidate 3 patterns into one. | |
22090 | (stack allocation and stack store): Handle SFmode. Handle | |
22091 | 8 byte allocations. | |
22092 | ||
22093 | 2020-05-15 Segher Boessenkool <segher@kernel.crashing.org> | |
22094 | ||
22095 | * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_2): Also require | |
22096 | RS6000_BTM_POWERPC64. | |
22097 | ||
22098 | 2020-05-15 Uroš Bizjak <ubizjak@gmail.com> | |
22099 | ||
22100 | * config/i386/i386.md (SWI48DWI): New mode iterator. | |
22101 | (*push<mode>2): Allow XMM registers. | |
22102 | (*pushdi2_rex64): Ditto. | |
22103 | (*pushsi2_rex64): Ditto. | |
22104 | (*pushsi2): Ditto. | |
22105 | (push XMM reg splitter): New splitter | |
22106 | ||
22107 | (*pushdf) Change "x" operand constraint to "v". | |
22108 | (*pushsf_rex64): Ditto. | |
22109 | (*pushsf): Ditto. | |
22110 | ||
22111 | 2020-05-15 Richard Biener <rguenther@suse.de> | |
22112 | ||
22113 | PR tree-optimization/92260 | |
22114 | * tree-vect-slp.c (vect_get_constant_vectors): Compute | |
22115 | the number of vector stmts in a canonical way. | |
22116 | ||
22117 | 2020-05-15 Martin Liska <mliska@suse.cz> | |
22118 | ||
22119 | * hsa-gen.c (get_symbol_for_decl): Fix misleading indentation | |
22120 | warning. | |
22121 | ||
22122 | 2020-05-15 Andrew Stubbs <ams@codesourcery.com> | |
22123 | ||
22124 | * config/gcn/gcn-valu.md (v<expander><mode>3): Fix unsignedp. | |
22125 | ||
22126 | 2020-05-15 Richard Biener <rguenther@suse.de> | |
22127 | ||
22128 | PR tree-optimization/95133 | |
22129 | * gimple-ssa-split-paths.c | |
22130 | (find_block_to_duplicate_for_splitting_paths): Check for | |
22131 | normal edges. | |
22132 | ||
22133 | 2020-05-15 Christophe Lyon <christophe.lyon@linaro.org> | |
22134 | ||
22135 | * config/arm/arm.c (reg_needs_saving_p): Add support for interrupt | |
22136 | routines. | |
22137 | (arm_compute_save_reg0_reg12_mask): Use reg_needs_saving_p. | |
22138 | ||
22139 | 2020-05-15 Tobias Burnus <tobias@codesourcery.com> | |
22140 | ||
22141 | PR middle-end/94635 | |
22142 | * gimplify.c (gimplify_scan_omp_clauses): For MAP_TO_PSET with | |
22143 | OMP_TARGET_EXIT_DATA, use 'release:' unless the associated | |
22144 | item is 'delete:'. | |
22145 | ||
22146 | 2020-05-15 Uroš Bizjak <ubizjak@gmail.com> | |
22147 | ||
22148 | PR target/95046 | |
22149 | * config/i386/i386.md (isa): Add sse3_noavx. | |
22150 | (enabled): Handle sse3_noavx. | |
22151 | ||
22152 | * config/i386/mmx.md (mmx_haddv2sf3): New expander. | |
22153 | (*mmx_haddv2sf3): Rename from mmx_haddv2sf3. Add SSE/AVX | |
22154 | alternatives. Match commutative vec_select selector operands. | |
22155 | (*mmx_haddv2sf3_low): New insn pattern. | |
22156 | ||
22157 | (*mmx_hsubv2sf3): Add SSE/AVX alternatives. | |
22158 | (*mmx_hsubv2sf3_low): New insn pattern. | |
22159 | ||
22160 | 2020-05-15 Richard Biener <rguenther@suse.de> | |
22161 | ||
22162 | PR tree-optimization/33315 | |
22163 | * tree-ssa-sink.c: Include tree-eh.h. | |
22164 | (sink_stats): Add commoned member. | |
22165 | (sink_common_stores_to_bb): New function implementing store | |
22166 | commoning by sinking to the successor. | |
22167 | (sink_code_in_bb): Call it, pass down TODO_cleanup_cfg returned. | |
22168 | (pass_sink_code::execute): Likewise. Record commoned stores | |
22169 | in statistics. | |
22170 | ||
22171 | 2020-05-14 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
22172 | ||
22173 | PR rtl-optimization/37451, part of PR target/61837 | |
22174 | * loop-doloop.c (doloop_simplify_count): New function. Simplify | |
22175 | (add -1; zero_ext; add +1) to zero_ext when not wrapping. | |
22176 | (doloop_modify): Call doloop_simplify_count. | |
22177 | ||
22178 | 2020-05-14 H.J. Lu <hongjiu.lu@intel.com> | |
22179 | ||
22180 | PR jit/94778 | |
22181 | * doc/sourcebuild.texi: Document effective target lgccjit. | |
22182 | ||
22183 | 2020-05-14 Andrew Stubbs <ams@codesourcery.com> | |
22184 | ||
22185 | * config/gcn/gcn-valu.md (add<mode>3_zext_dup): Change to a | |
22186 | define_expand, and rename the original to ... | |
22187 | (add<mode>3_vcc_zext_dup): ... this, and add a custom VCC operand. | |
22188 | (add<mode>3_zext_dup_exec): Likewise, with ... | |
22189 | (add<mode>3_vcc_zext_dup_exec): ... this. | |
22190 | (add<mode>3_zext_dup2): Likewise, with ... | |
22191 | (add<mode>3_zext_dup_exec): ... this. | |
22192 | (add<mode>3_zext_dup2_exec): Likewise, with ... | |
22193 | (add<mode>3_zext_dup2): ... this. | |
22194 | * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address): Switch | |
22195 | addv64di3_zext* calls to use addv64di3_vcc_zext*. | |
22196 | ||
22197 | 2020-05-14 Uroš Bizjak <ubizjak@gmail.com> | |
22198 | ||
22199 | PR target/95046 | |
22200 | * config/i386/sse.md (truncv2dfv2df2): New insn pattern. | |
22201 | (extendv2sfv2df2): Ditto. | |
22202 | ||
22203 | 2020-05-14 H.J. Lu <hongjiu.lu@intel.com> | |
22204 | ||
22205 | * configure: Regenerated. | |
22206 | ||
22207 | 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org> | |
22208 | ||
22209 | * config/arm/arm.c (reg_needs_saving_p): New function. | |
22210 | (use_return_insn): Use reg_needs_saving_p. | |
22211 | (arm_get_vfp_saved_size): Likewise. | |
22212 | (arm_compute_frame_layout): Likewise. | |
22213 | (arm_save_coproc_regs): Likewise. | |
22214 | (thumb1_expand_epilogue): Likewise. | |
22215 | (arm_expand_epilogue_apcs_frame): Likewise. | |
22216 | (arm_expand_epilogue): Likewise. | |
22217 | ||
22218 | 2020-05-14 Christophe Lyon <christophe.lyon@linaro.org> | |
22219 | ||
22220 | * config/arm/arm.c (thumb1_expand_prologue): Update error message. | |
22221 | ||
22222 | 2020-05-14 Uroš Bizjak <ubizjak@gmail.com> | |
22223 | ||
22224 | PR target/95046 | |
22225 | * config/i386/sse.md (sse2_cvtpi2pd): Add memory to alternative 1. | |
22226 | ||
22227 | (floatv2siv2df2): New expander. | |
22228 | (floatunsv2siv2df2): New insn pattern. | |
22229 | ||
22230 | (fix_truncv2dfv2si2): New expander. | |
22231 | (fixuns_truncv2dfv2si2): New insn pattern. | |
22232 | ||
22233 | 2020-05-14 Richard Sandiford <richard.sandiford@arm.com> | |
22234 | ||
22235 | PR target/95105 | |
22236 | * config/aarch64/aarch64-sve-builtins.cc | |
22237 | (handle_arm_sve_vector_bits_attribute): Create a copy of the | |
22238 | original type's TYPE_MAIN_VARIANT, then reapply all the differences | |
22239 | between the original type and its main variant. | |
22240 | ||
22241 | 2020-05-14 Richard Biener <rguenther@suse.de> | |
22242 | ||
22243 | PR middle-end/95118 | |
22244 | * real.c (real_to_decimal_for_mode): Make sure we handle | |
22245 | a zero with nonzero exponent. | |
22246 | ||
22247 | 2020-05-14 Jakub Jelinek <jakub@redhat.com> | |
22248 | ||
22249 | * Makefile.in (GTFILES): Add omp-general.c. | |
22250 | * cgraph.h (struct cgraph_node): Add declare_variant_alt and | |
22251 | calls_declare_variant_alt members and initialize them in the | |
22252 | ctor. | |
22253 | * ipa.c (symbol_table::remove_unreachable_nodes): Handle direct | |
22254 | calls to declare_variant_alt nodes. | |
22255 | * lto-cgraph.c (lto_output_node): Write declare_variant_alt | |
22256 | and calls_declare_variant_alt. | |
22257 | (input_overwrite_node): Read them back. | |
22258 | * omp-simd-clone.c (simd_clone_create): Copy calls_declare_variant_alt | |
22259 | bit. | |
22260 | * tree-inline.c (expand_call_inline): Or in calls_declare_variant_alt | |
22261 | bit. | |
22262 | (tree_function_versioning): Copy calls_declare_variant_alt bit. | |
22263 | * omp-offload.c (execute_omp_device_lower): Call | |
22264 | omp_resolve_declare_variant on direct function calls. | |
22265 | (pass_omp_device_lower::gate): Also enable for | |
22266 | calls_declare_variant_alt functions. | |
22267 | * omp-general.c (omp_maybe_offloaded): Return false after inlining. | |
22268 | (omp_context_selector_matches): Handle the case when | |
22269 | cfun->curr_properties has PROP_gimple_any bit set. | |
22270 | (struct omp_declare_variant_entry): New type. | |
22271 | (struct omp_declare_variant_base_entry): New type. | |
22272 | (struct omp_declare_variant_hasher): New type. | |
22273 | (omp_declare_variant_hasher::hash, omp_declare_variant_hasher::equal): | |
22274 | New methods. | |
22275 | (omp_declare_variants): New variable. | |
22276 | (struct omp_declare_variant_alt_hasher): New type. | |
22277 | (omp_declare_variant_alt_hasher::hash, | |
22278 | omp_declare_variant_alt_hasher::equal): New methods. | |
22279 | (omp_declare_variant_alt): New variables. | |
22280 | (omp_resolve_late_declare_variant): New function. | |
22281 | (omp_resolve_declare_variant): Call omp_resolve_late_declare_variant | |
22282 | when called late. Create a magic declare_variant_alt fndecl and | |
22283 | cgraph node and return that if decision needs to be deferred until | |
22284 | after gimplification. | |
22285 | * cgraph.c (symbol_table::create_edge): Or in calls_declare_variant_alt | |
22286 | bit. | |
22287 | ||
22288 | PR middle-end/95108 | |
22289 | * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member. | |
22290 | (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in | |
22291 | entry block if info->after_stmt is NULL, otherwise add after that stmt | |
22292 | and update it after adding each stmt. | |
22293 | (ipa_simd_modify_function_body): Initialize info.after_stmt. | |
22294 | ||
22295 | * function.h (struct function): Add has_omp_target bit. | |
22296 | * omp-offload.c (omp_discover_declare_target_fn_r): New function, | |
22297 | old renamed to ... | |
22298 | (omp_discover_declare_target_tgt_fn_r): ... this. | |
22299 | (omp_discover_declare_target_var_r): Call | |
22300 | omp_discover_declare_target_tgt_fn_r instead of | |
22301 | omp_discover_declare_target_fn_r. | |
22302 | (omp_discover_implicit_declare_target): Also queue functions with | |
22303 | has_omp_target bit set, for those walk with | |
22304 | omp_discover_declare_target_fn_r, for declare target to functions | |
22305 | walk with omp_discover_declare_target_tgt_fn_r. | |
22306 | ||
22307 | 2020-05-14 Uroš Bizjak <ubizjak@gmail.com> | |
22308 | ||
22309 | PR target/95046 | |
22310 | * config/i386/mmx.md (mmx_fix_truncv2sfv2si2): Rename from mmx_pf2id. | |
22311 | Add SSE/AVX alternative. Change operand predicates from | |
22312 | nonimmediate_operand to register_mmxmem_operand. | |
22313 | Enable instruction pattern for TARGET_MMX_WITH_SSE. | |
22314 | (fix_truncv2sfv2si2): New expander. | |
22315 | (fixuns_truncv2sfv2si2): New insn pattern. | |
22316 | ||
22317 | (mmx_floatv2siv2sf2): rename from mmx_floatv2si2. | |
22318 | Add SSE/AVX alternative. Change operand predicates from | |
22319 | nonimmediate_operand to register_mmxmem_operand. | |
22320 | Enable instruction pattern for TARGET_MMX_WITH_SSE. | |
22321 | (floatv2siv2sf2): New expander. | |
22322 | (floatunsv2siv2sf2): New insn pattern. | |
22323 | ||
22324 | * config/i386/i386-builtin.def (IX86_BUILTIN_PF2ID): | |
22325 | Update for rename. | |
22326 | (IX86_BUILTIN_PI2FD): Ditto. | |
22327 | ||
22328 | 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com> | |
22329 | ||
22330 | * config/s390/s390.c (s390_emit_stack_probe): Call the probe_stack | |
22331 | expander. | |
22332 | * config/s390/s390.md ("@probe_stack2<mode>", "probe_stack"): New | |
22333 | expanders. | |
22334 | ||
22335 | 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com> | |
22336 | ||
22337 | * config/s390/s390.c (allocate_stack_space): Add missing updates | |
22338 | of last_probe_offset. | |
22339 | ||
22340 | 2020-05-14 Andreas Krebbel <krebbel@linux.ibm.com> | |
22341 | ||
22342 | * config/s390/s390.md ("allocate_stack"): Call | |
22343 | anti_adjust_stack_and_probe_stack_clash when stack clash | |
22344 | protection is enabled. | |
22345 | * explow.c (anti_adjust_stack_and_probe_stack_clash): Remove | |
22346 | prototype. Remove static. | |
22347 | * explow.h (anti_adjust_stack_and_probe_stack_clash): Add | |
22348 | prototype. | |
22349 | ||
22350 | 2020-05-13 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22351 | ||
22352 | * config/rs6000/altivec.h (vec_extractl): New #define. | |
22353 | (vec_extracth): Likewise. | |
22354 | * config/rs6000/altivec.md (UNSPEC_EXTRACTL): New constant. | |
22355 | (UNSPEC_EXTRACTR): Likewise. | |
22356 | (vextractl<mode>): New expansion. | |
22357 | (vextractl<mode>_internal): New insn. | |
22358 | (vextractr<mode>): New expansion. | |
22359 | (vextractr<mode>_internal): New insn. | |
22360 | * config/rs6000/rs6000-builtin.def (__builtin_altivec_vextdubvlx): | |
22361 | New built-in function. | |
22362 | (__builtin_altivec_vextduhvlx): Likewise. | |
22363 | (__builtin_altivec_vextduwvlx): Likewise. | |
22364 | (__builtin_altivec_vextddvlx): Likewise. | |
22365 | (__builtin_altivec_vextdubvhx): Likewise. | |
22366 | (__builtin_altivec_vextduhvhx): Likewise. | |
22367 | (__builtin_altivec_vextduwvhx): Likewise. | |
22368 | (__builtin_altivec_vextddvhx): Likewise. | |
22369 | (__builtin_vec_extractl): New overloaded built-in function. | |
22370 | (__builtin_vec_extracth): Likewise. | |
22371 | * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): | |
22372 | Define overloaded forms of __builtin_vec_extractl and | |
22373 | __builtin_vec_extracth. | |
22374 | (builtin_function_type): Add cases to mark arguments of new | |
22375 | built-in functions as unsigned. | |
22376 | (rs6000_common_init_builtins): Add | |
22377 | opaque_ftype_opaque_opaque_opaque_opaque. | |
22378 | * config/rs6000/rs6000.md (du_or_d): New mode attribute. | |
22379 | * doc/extend.texi (PowerPC AltiVec Built-in Functions Available | |
22380 | for a Future Architecture): Add description of vec_extractl and | |
22381 | vec_extractr built-in functions. | |
22382 | ||
22383 | 2020-05-13 Richard Biener <rguenther@suse.de> | |
22384 | ||
22385 | * target.def (add_stmt_cost): Add new vectype parameter. | |
22386 | * targhooks.c (default_add_stmt_cost): Adjust. | |
22387 | * targhooks.h (default_add_stmt_cost): Likewise. | |
22388 | * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Take new | |
22389 | vectype parameter. | |
22390 | * config/arm/arm.c (arm_add_stmt_cost): Likewise. | |
22391 | * config/i386/i386.c (ix86_add_stmt_cost): Likewise. | |
22392 | * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise. | |
22393 | ||
22394 | * tree-vectorizer.h (stmt_info_for_cost::vectype): Add. | |
22395 | (dump_stmt_cost): Add new vectype parameter. | |
22396 | (add_stmt_cost): Likewise. | |
22397 | (record_stmt_cost): Likewise. | |
22398 | (record_stmt_cost): Add overload with old signature. | |
22399 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): | |
22400 | Adjust. | |
22401 | (vect_get_known_peeling_cost): Likewise. | |
22402 | (vect_estimate_min_profitable_iters): Likewise. | |
22403 | * tree-vectorizer.c (dump_stmt_cost): Add new vectype parameter. | |
22404 | * tree-vect-stmts.c (record_stmt_cost): Likewise. | |
22405 | (vect_prologue_cost_for_slp_op): Remove stmt_vec_info parameter | |
22406 | and pass down correct vectype and NULL stmt_info. | |
22407 | (vect_model_simple_cost): Adjust. | |
22408 | (vect_model_store_cost): Likewise. | |
22409 | ||
22410 | 2020-05-13 Richard Biener <rguenther@suse.de> | |
22411 | ||
22412 | * tree-vectorizer.h (SLP_INSTANCE_GROUP_SIZE): Remove. | |
22413 | (_slp_instance::group_size): Likewise. | |
22414 | * tree-vect-loop.c (vectorizable_reduction): The group size | |
22415 | is the number of lanes in the node. | |
22416 | * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise. | |
22417 | (vect_analyze_slp_instance): Do not set SLP_INSTANCE_GROUP_SIZE, | |
22418 | verify it matches the instance trees number of lanes. | |
22419 | (vect_slp_analyze_node_operations_1): Use the numer of lanes | |
22420 | in the node as group size. | |
22421 | (vect_bb_vectorization_profitable_p): Use the instance root | |
22422 | number of lanes for the size of life. | |
22423 | (vect_schedule_slp_instance): Use the number of lanes as | |
22424 | group_size. | |
22425 | * tree-vect-stmts.c (vectorizable_load): Remove SLP instance | |
22426 | parameter. Use the number of lanes of the load for the group | |
22427 | size in the gap adjustment code. | |
22428 | (vect_analyze_stmt): Adjust. | |
22429 | (vect_transform_stmt): Likewise. | |
22430 | ||
22431 | 2020-05-13 Jakub Jelinek <jakub@redhat.com> | |
22432 | ||
22433 | PR debug/95080 | |
22434 | * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even | |
22435 | if the last insn is a note. | |
22436 | ||
22437 | PR tree-optimization/95060 | |
22438 | * tree-ssa-math-opts.c (convert_mult_to_fma_1): Fold a NEGATE_EXPR | |
22439 | if it is the single use of the FMA internal builtin. | |
22440 | ||
22441 | 2020-05-13 Bin Cheng <bin.cheng@linux.alibaba.com> | |
22442 | ||
22443 | PR tree-optimization/94969 | |
22444 | * tree-data-dependence.c (constant_access_functions): Rename to... | |
22445 | (invariant_access_functions): ...this. Add parameter. Check for | |
22446 | invariant access function, rather than constant. | |
22447 | (build_classic_dist_vector): Call above function. | |
22448 | * tree-loop-distribution.c (pg_add_dependence_edges): Add comment. | |
22449 | ||
22450 | 2020-05-13 Hongtao Liu <hongtao.liu@intel.com> | |
22451 | ||
22452 | PR target/94118 | |
22453 | * doc/extend.texi (x86Operandmodifiers): Document more x86 | |
22454 | operand modifier. | |
22455 | * gcc/config/i386/i386.c: Add comment for operand modifier N and I. | |
22456 | ||
22457 | 2020-05-12 Giuliano Belinassi <giuliano.belinassi@usp.br> | |
22458 | ||
22459 | * tree-vrp.c (class vrp_insert): New. | |
22460 | (insert_range_assertions): Move to class vrp_insert. | |
22461 | (dump_all_asserts): Same as above. | |
22462 | (dump_asserts_for): Same as above. | |
22463 | (live): Same as above. | |
22464 | (need_assert_for): Same as above. | |
22465 | (live_on_edge): Same as above. | |
22466 | (finish_register_edge_assert_for): Same as above. | |
22467 | (find_switch_asserts): Same as above. | |
22468 | (find_assert_locations): Same as above. | |
22469 | (find_assert_locations_1): Same as above. | |
22470 | (find_conditional_asserts): Same as above. | |
22471 | (process_assert_insertions): Same as above. | |
22472 | (register_new_assert_for): Same as above. | |
22473 | (vrp_prop): New variable fun. | |
22474 | (vrp_initialize): New parameter. | |
22475 | (identify_jump_threads): Same as above. | |
22476 | (execute_vrp): Same as above. | |
22477 | ||
22478 | ||
22479 | 2020-05-12 Keith Packard <keith.packard@sifive.com> | |
22480 | ||
22481 | * config/riscv/riscv.c (riscv_unique_section): New. | |
22482 | (TARGET_ASM_UNIQUE_SECTION): New. | |
22483 | ||
22484 | 2020-05-12 Craig Blackmore <craig.blackmore@embecosm.com> | |
22485 | ||
22486 | * config.gcc: Add riscv-shorten-memrefs.o to extra_objs for riscv. | |
22487 | * config/riscv/riscv-passes.def: New file. | |
22488 | * config/riscv/riscv-protos.h (make_pass_shorten_memrefs): Declare. | |
22489 | * config/riscv/riscv-shorten-memrefs.c: New file. | |
22490 | * config/riscv/riscv.c (tree-pass.h): New include. | |
22491 | (riscv_compressed_reg_p): New Function | |
22492 | (riscv_compressed_lw_offset_p): Likewise. | |
22493 | (riscv_compressed_lw_address_p): Likewise. | |
22494 | (riscv_shorten_lw_offset): Likewise. | |
22495 | (riscv_legitimize_address): Attempt to convert base + large_offset | |
22496 | to compressible new_base + small_offset. | |
22497 | (riscv_address_cost): Make anticipated compressed load/stores | |
22498 | cheaper for code size than uncompressed load/stores. | |
22499 | (riscv_register_priority): Move compressed register check to | |
22500 | riscv_compressed_reg_p. | |
22501 | * config/riscv/riscv.h (C_S_BITS): Define. | |
22502 | (CSW_MAX_OFFSET): Define. | |
22503 | * config/riscv/riscv.opt (mshorten-memefs): New option. | |
22504 | * config/riscv/t-riscv (riscv-shorten-memrefs.o): New rule. | |
22505 | (PASSES_EXTRA): Add riscv-passes.def. | |
22506 | * doc/invoke.texi: Document -mshorten-memrefs. | |
22507 | ||
22508 | * config/riscv/riscv.c (riscv_new_address_profitable_p): New function. | |
22509 | (TARGET_NEW_ADDRESS_PROFITABLE_P): Define. | |
22510 | * doc/tm.texi: Regenerate. | |
22511 | * doc/tm.texi.in (TARGET_NEW_ADDRESS_PROFITABLE_P): New hook. | |
22512 | * sched-deps.c (attempt_change): Use old address if it is cheaper than | |
22513 | new address. | |
22514 | * target.def (new_address_profitable_p): New hook. | |
22515 | * targhooks.c (default_new_address_profitable_p): New function. | |
22516 | * targhooks.h (default_new_address_profitable_p): Declare. | |
22517 | ||
22518 | 2020-05-12 Uroš Bizjak <ubizjak@gmail.com> | |
22519 | ||
22520 | PR target/95046 | |
22521 | * config/i386/mmx.md (copysignv2sf3): New expander. | |
22522 | (xorsignv2sf3): Ditto. | |
22523 | (signbitv2sf3): Ditto. | |
22524 | ||
22525 | 2020-05-12 Uroš Bizjak <ubizjak@gmail.com> | |
22526 | ||
22527 | PR target/95046 | |
22528 | * config/i386/mmx.md (fmav2sf4): New insn pattern. | |
22529 | (fmsv2sf4): Ditto. | |
22530 | (fnmav2sf4): Ditto. | |
22531 | (fnmsv2sf4): Ditto. | |
22532 | ||
22533 | 2020-05-12 H.J. Lu <hongjiu.lu@intel.com> | |
22534 | ||
22535 | * Makefile.in (CET_HOST_FLAGS): New. | |
22536 | (COMPILER): Add $(CET_HOST_FLAGS). | |
22537 | * configure.ac: Add GCC_CET_HOST_FLAGS(CET_HOST_FLAGS) and | |
22538 | AC_SUBST(CET_HOST_FLAGS). Clear CET_HOST_FLAGS if jit isn't | |
22539 | enabled. | |
22540 | * aclocal.m4: Regenerated. | |
22541 | * configure: Likewise. | |
22542 | ||
22543 | 2020-05-12 Uroš Bizjak <ubizjak@gmail.com> | |
22544 | ||
22545 | PR target/95046 | |
22546 | * config/i386/mmx.md (<code>v2sf2): New insn pattern. | |
22547 | (*mmx_<code>v2sf2): New insn_and_split pattern. | |
22548 | (*mmx_nabsv2sf2): Ditto. | |
22549 | (*mmx_andnotv2sf3): New insn pattern. | |
22550 | (*mmx_<code>v2sf3): Ditto. | |
22551 | * config/i386/i386.md (absneg_op): New code attribute. | |
22552 | * config/i386/i386.c (ix86_build_const_vector): Handle V2SFmode. | |
22553 | (ix86_build_signbit_mask): Ditto. | |
22554 | ||
22555 | 2020-05-12 Richard Biener <rguenther@suse.de> | |
22556 | ||
22557 | * tree-ssa-live.c (remove_unused_locals): Remove dead debug | |
22558 | bind resets. | |
22559 | ||
22560 | 2020-05-12 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
22561 | ||
22562 | * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common): | |
22563 | Update prototype to include "local" argument. | |
22564 | * config/msp430/msp430.c (msp430_output_aligned_decl_common): Add | |
22565 | "local" argument. Handle local common decls. | |
22566 | * config/msp430/msp430.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Adjust | |
22567 | msp430_output_aligned_decl_common call with 0 for "local" argument. | |
22568 | (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Define. | |
22569 | ||
22570 | 2020-05-12 Richard Biener <rguenther@suse.de> | |
22571 | ||
22572 | * cfghooks.c (split_edge): Preserve EDGE_DFS_BACK if set. | |
22573 | ||
22574 | 2020-05-12 Martin Liska <mliska@suse.cz> | |
22575 | ||
22576 | PR sanitizer/95033 | |
22577 | PR sanitizer/95051 | |
22578 | * sanopt.c (sanitize_rewrite_addressable_params): | |
22579 | Clear DECL_NOT_GIMPLE_REG_P for argument. | |
22580 | ||
22581 | 2020-05-12 Richard Sandiford <richard.sandiford@arm.com> | |
22582 | ||
22583 | PR tree-optimization/94980 | |
22584 | * tree-vect-generic.c (expand_vector_comparison): Use | |
22585 | vector_element_bits_tree to get the element size in bits, | |
22586 | rather than using TYPE_SIZE. | |
22587 | (expand_vector_condition, vector_element): Likewise. | |
22588 | ||
22589 | 2020-05-12 Richard Sandiford <richard.sandiford@arm.com> | |
22590 | ||
22591 | PR tree-optimization/94980 | |
22592 | * tree-vect-generic.c (build_replicated_const): Take the number | |
22593 | of bits as a parameter, instead of the type of the elements. | |
22594 | (do_plus_minus): Update accordingly, using vector_element_bits | |
22595 | to calculate the correct number of bits. | |
22596 | (do_negate): Likewise. | |
22597 | ||
22598 | 2020-05-12 Richard Sandiford <richard.sandiford@arm.com> | |
22599 | ||
22600 | PR tree-optimization/94980 | |
22601 | * tree.h (vector_element_bits, vector_element_bits_tree): Declare. | |
22602 | * tree.c (vector_element_bits, vector_element_bits_tree): New. | |
22603 | * match.pd: Use the new functions instead of determining the | |
22604 | vector element size directly from TYPE_SIZE(_UNIT). | |
22605 | * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise. | |
22606 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Likewise. | |
22607 | * tree-vect-stmts.c (vect_is_simple_cond): Likewise. | |
22608 | * tree-vect-generic.c (expand_vector_piecewise): Likewise. | |
22609 | (expand_vector_conversion): Likewise. | |
22610 | (expand_vector_addition): Likewise for a TYPE_SIZE_UNIT used as | |
22611 | a divisor. Convert the dividend to bits to compensate. | |
22612 | * tree-vect-loop.c (vectorizable_live_operation): Call | |
22613 | vector_element_bits instead of open-coding it. | |
22614 | ||
22615 | 2020-05-12 Jakub Jelinek <jakub@redhat.com> | |
22616 | ||
22617 | * omp-offload.h (omp_discover_implicit_declare_target): Declare. | |
22618 | * omp-offload.c: Include context.h. | |
22619 | (omp_declare_target_fn_p, omp_declare_target_var_p, | |
22620 | omp_discover_declare_target_fn_r, omp_discover_declare_target_var_r, | |
22621 | omp_discover_implicit_declare_target): New functions. | |
22622 | * cgraphunit.c (analyze_functions): Call | |
22623 | omp_discover_implicit_declare_target. | |
22624 | ||
22625 | 2020-05-12 Richard Biener <rguenther@suse.de> | |
22626 | ||
22627 | * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Canonicalize | |
22628 | literal constant &MEM[..] to a constant literal. | |
22629 | ||
22630 | 2020-05-12 Richard Biener <rguenther@suse.de> | |
22631 | ||
22632 | PR tree-optimization/95045 | |
22633 | * dbgcnt.def (lim): Add debug-counter. | |
22634 | * tree-ssa-loop-im.c: Include dbgcnt.h. | |
22635 | (find_refs_for_sm): Use lim debug counter for store motion | |
22636 | candidates. | |
22637 | (do_store_motion): Rename form store_motion. Commit edge | |
22638 | insertions... | |
22639 | (store_motion_loop): ... here. | |
22640 | (tree_ssa_lim): Adjust. | |
22641 | ||
22642 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22643 | ||
22644 | * config/rs6000/altivec.h (vec_clzm): Rename to vec_cntlzm. | |
22645 | (vec_ctzm): Rename to vec_cnttzm. | |
22646 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
22647 | Change fourth operand for vec_ternarylogic to require | |
22648 | compatibility with unsigned SImode rather than unsigned QImode. | |
22649 | * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): | |
22650 | Remove overloaded forms of vec_gnb that are no longer needed. | |
22651 | * doc/extend.texi (PowerPC AltiVec Built-in Functions Available | |
22652 | for a Future Architecture): Replace vec_clzm with vec_cntlzm; | |
22653 | replace vec_ctzm with vec_cntlzm; remove four unwanted forms of | |
22654 | vec_gnb; move vec_ternarylogic documentation into this section | |
22655 | and replace const unsigned char with const unsigned int as its | |
22656 | fourth argument. | |
22657 | ||
22658 | 2020-05-11 Carl Love <cel@us.ibm.com> | |
22659 | ||
22660 | * config/rs6000/altivec.h (vec_genpcvm): New #define. | |
22661 | * config/rs6000/rs6000-builtin.def (XXGENPCVM_V16QI): New built-in | |
22662 | instantiation. | |
22663 | (XXGENPCVM_V8HI): Likewise. | |
22664 | (XXGENPCVM_V4SI): Likewise. | |
22665 | (XXGENPCVM_V2DI): Likewise. | |
22666 | (XXGENPCVM): New overloaded built-in instantiation. | |
22667 | * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Add | |
22668 | entries for FUTURE_BUILTIN_VEC_XXGENPCVM. | |
22669 | (altivec_expand_builtin): Add special handling for | |
22670 | FUTURE_BUILTIN_VEC_XXGENPCVM. | |
22671 | (builtin_function_type): Add handling for | |
22672 | FUTURE_BUILTIN_XXGENPCVM_{V16QI,V8HI,V4SI,V2DI}. | |
22673 | * config/rs6000/vsx.md (VSX_EXTRACT_I4): New mode iterator. | |
22674 | (UNSPEC_XXGENPCV): New constant. | |
22675 | (xxgenpcvm_<mode>_internal): New insn. | |
22676 | (xxgenpcvm_<mode>): New expansion. | |
22677 | * doc/extend.texi: Add documentation for vec_genpcvm built-ins. | |
22678 | ||
22679 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22680 | ||
22681 | * config/rs6000/altivec.h (vec_strir): New #define. | |
22682 | (vec_stril): Likewise. | |
22683 | (vec_strir_p): Likewise. | |
22684 | (vec_stril_p): Likewise. | |
22685 | * config/rs6000/altivec.md (UNSPEC_VSTRIR): New constant. | |
22686 | (UNSPEC_VSTRIL): Likewise. | |
22687 | (vstrir_<mode>): New expansion. | |
22688 | (vstrir_code_<mode>): New insn. | |
22689 | (vstrir_p_<mode>): New expansion. | |
22690 | (vstrir_p_code_<mode>): New insn. | |
22691 | (vstril_<mode>): New expansion. | |
22692 | (vstril_code_<mode>): New insn. | |
22693 | (vstril_p_<mode>): New expansion. | |
22694 | (vstril_p_code_<mode>): New insn. | |
22695 | * config/rs6000/rs6000-builtin.def (__builtin_altivec_vstribr): | |
22696 | New built-in function. | |
22697 | (__builtin_altivec_vstrihr): Likewise. | |
22698 | (__builtin_altivec_vstribl): Likewise. | |
22699 | (__builtin_altivec_vstrihl): Likewise. | |
22700 | (__builtin_altivec_vstribr_p): Likewise. | |
22701 | (__builtin_altivec_vstrihr_p): Likewise. | |
22702 | (__builtin_altivec_vstribl_p): Likewise. | |
22703 | (__builtin_altivec_vstrihl_p): Likewise. | |
22704 | (__builtin_vec_strir): New overloaded built-in function. | |
22705 | (__builtin_vec_stril): Likewise. | |
22706 | (__builtin_vec_strir_p): Likewise. | |
22707 | (__builtin_vec_stril_p): Likewise. | |
22708 | * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): | |
22709 | Define overloaded forms of __builtin_vec_strir, | |
22710 | __builtin_vec_stril, __builtin_vec_strir_p, and | |
22711 | __builtin_vec_stril_p. | |
22712 | * doc/extend.texi (PowerPC AltiVec Built-in Functions Available | |
22713 | for a Future Architecture): Add description of vec_stril, | |
22714 | vec_stril_p, vec_strir, and vec_strir_p built-in functions. | |
22715 | ||
22716 | 2020-05-11 Kelvin Nilsen <wschmidt@linux.ibm.com> | |
22717 | ||
22718 | * config/rs6000/altivec.h (vec_ternarylogic): New #define. | |
22719 | * config/rs6000/altivec.md (UNSPEC_XXEVAL): New constant. | |
22720 | (xxeval): New insn. | |
22721 | * config/rs6000/predicates.md (u8bit_cint_operand): New predicate. | |
22722 | * config/rs6000/rs6000-builtin.def: Add handling of new macro | |
22723 | RS6000_BUILTIN_4. | |
22724 | (BU_FUTURE_V_4): New macro. Use it. | |
22725 | (BU_FUTURE_OVERLOAD_4): Likewise. | |
22726 | * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Add | |
22727 | handling for quaternary built-in functions. | |
22728 | (altivec_resolve_overloaded_builtin): Add special-case handling | |
22729 | for __builtin_vec_xxeval. | |
22730 | * config/rs6000/rs6000-call.c: Add handling of new macro | |
22731 | RS6000_BUILTIN_4 in initialization of rs6000_builtin_info, | |
22732 | bdesc0_arg, bdesc1_arg, bdesc2_arg, bdesc_3arg, | |
22733 | bdesc_altivec_preds, bdesc_abs, and bdesc_htm arrays. | |
22734 | (altivec_overloaded_builtins): Add definitions for | |
22735 | FUTURE_BUILTIN_VEC_XXEVAL. | |
22736 | (bdesc_4arg): New array. | |
22737 | (htm_expand_builtin): Add handling for quaternary built-in | |
22738 | functions. | |
22739 | (rs6000_expand_quaternop_builtin): New function. | |
22740 | (rs6000_expand_builtin): Add handling for quaternary built-in | |
22741 | functions. | |
22742 | (rs6000_init_builtins): Initialize builtin_mode_to_type entries | |
22743 | for unsigned QImode and unsigned HImode. | |
22744 | (builtin_quaternary_function_type): New function. | |
22745 | (rs6000_common_init_builtins): Add handling of quaternary | |
22746 | operations. | |
22747 | * config/rs6000/rs6000.h (RS6000_BTC_QUATERNARY): New defined | |
22748 | constant. | |
22749 | (RS6000_BTC_PREDICATE): Change value of constant. | |
22750 | (RS6000_BTC_ABS): Likewise. | |
22751 | (rs6000_builtins): Add support for new macro RS6000_BUILTIN_4. | |
22752 | * doc/extend.texi (PowerPC AltiVec Built-In Functions Available | |
22753 | for a Future Architecture): Add description of vec_ternarylogic | |
22754 | built-in function. | |
22755 | ||
22756 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22757 | ||
22758 | * config/rs6000/rs6000-builtin.def (__builtin_pdepd): New built-in | |
22759 | function. | |
22760 | (__builtin_pextd): Likewise. | |
22761 | * config/rs6000/rs6000.md (UNSPEC_PDEPD): New constant. | |
22762 | (UNSPEC_PEXTD): Likewise. | |
22763 | (pdepd): New insn. | |
22764 | (pextd): Likewise. | |
22765 | * doc/extend.texi (Basic PowerPC Built-in Functions Available for | |
22766 | a Future Architecture): Add descriptions of __builtin_pdepd and | |
22767 | __builtin_pextd functions. | |
22768 | ||
22769 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22770 | ||
22771 | * config/rs6000/altivec.h (vec_clrl): New #define. | |
22772 | (vec_clrr): Likewise. | |
22773 | * config/rs6000/altivec.md (UNSPEC_VCLRLB): New constant. | |
22774 | (UNSPEC_VCLRRB): Likewise. | |
22775 | (vclrlb): New insn. | |
22776 | (vclrrb): Likewise. | |
22777 | * config/rs6000/rs6000-builtin.def (__builtin_altivec_vclrlb): New | |
22778 | built-in function. | |
22779 | (__builtin_altivec_vclrrb): Likewise. | |
22780 | (__builtin_vec_clrl): New overloaded built-in function. | |
22781 | (__builtin_vec_clrr): Likewise. | |
22782 | * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): | |
22783 | Define overloaded forms of __builtin_vec_clrl and | |
22784 | __builtin_vec_clrr. | |
22785 | * doc/extend.texi (PowerPC AltiVec Built-in Functions Available | |
22786 | for a Future Architecture): Add descriptions of vec_clrl and | |
22787 | vec_clrr. | |
22788 | ||
22789 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22790 | ||
22791 | * config/rs6000/rs6000-builtin.def (__builtin_cntlzdm): New | |
22792 | built-in function definition. | |
22793 | (__builtin_cnttzdm): Likewise. | |
22794 | * config/rs6000/rs6000.md (UNSPEC_CNTLZDM): New constant. | |
22795 | (UNSPEC_CNTTZDM): Likewise. | |
22796 | (cntlzdm): New insn. | |
22797 | (cnttzdm): Likewise. | |
22798 | * doc/extend.texi (Basic PowerPC Built-in Functions available for | |
22799 | a Future Architecture): Add descriptions of __builtin_cntlzdm and | |
22800 | __builtin_cnttzdm functions. | |
22801 | ||
22802 | 2020-05-11 Uroš Bizjak <ubizjak@gmail.com> | |
22803 | ||
22804 | PR target/95046 | |
22805 | * config/i386/mmx.md (sqrtv2sf2): New insn pattern. | |
22806 | ||
22807 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22808 | ||
22809 | * config/rs6000/altivec.h (vec_cfuge): New #define. | |
22810 | * config/rs6000/altivec.md (UNSPEC_VCFUGED): New constant. | |
22811 | (vcfuged): New insn. | |
22812 | * config/rs6000/rs6000-builtin.def (__builtin_altivec_vcfuged): | |
22813 | New built-in function. | |
22814 | * config/rs6000/rs6000-call.c (builtin_function_type): Add | |
22815 | handling for FUTURE_BUILTIN_VCFUGED case. | |
22816 | * doc/extend.texi (PowerPC AltiVec Built-in Functions Available | |
22817 | for a Future Architecture): Add description of vec_cfuge built-in | |
22818 | function. | |
22819 | ||
22820 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22821 | ||
22822 | * config/rs6000/rs6000-builtin.def (BU_FUTURE_MISC_0): New | |
22823 | #define. | |
22824 | (BU_FUTURE_MISC_1): Likewise. | |
22825 | (BU_FUTURE_MISC_2): Likewise. | |
22826 | (BU_FUTURE_MISC_3): Likewise. | |
22827 | (__builtin_cfuged): New built-in function definition. | |
22828 | * config/rs6000/rs6000.md (UNSPEC_CFUGED): New constant. | |
22829 | (cfuged): New insn. | |
22830 | * doc/extend.texi (Basic PowerPC Built-in Functions Available for | |
22831 | a Future Architecture): New subsubsection. | |
22832 | ||
22833 | 2020-05-11 Richard Biener <rguenther@suse.de> | |
22834 | ||
22835 | PR tree-optimization/95049 | |
22836 | * tree-ssa-sccvn.c (set_ssa_val_to): Reject lattice transition | |
22837 | between different constants. | |
22838 | ||
22839 | 2020-05-11 Richard Sandiford <richard.sandiford@arm.com> | |
22840 | ||
22841 | * tree-pretty-print.c (dump_generic_node): Handle BOOLEAN_TYPEs. | |
22842 | ||
22843 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22844 | Bill Schmidt <wschmidt@linux.ibm.com> | |
22845 | ||
22846 | * config/rs6000/altivec.h (vec_gnb): New #define. | |
22847 | * config/rs6000/altivec.md (UNSPEC_VGNB): New constant. | |
22848 | (vgnb): New insn. | |
22849 | * config/rs6000/rs6000-builtin.def (BU_FUTURE_OVERLOAD_1): New | |
22850 | #define. | |
22851 | (BU_FUTURE_OVERLOAD_2): Likewise. | |
22852 | (BU_FUTURE_OVERLOAD_3): Likewise. | |
22853 | (__builtin_altivec_gnb): New built-in function. | |
22854 | (__buiiltin_vec_gnb): New overloaded built-in function. | |
22855 | * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): | |
22856 | Define overloaded forms of __builtin_vec_gnb. | |
22857 | (rs6000_expand_binop_builtin): Add error checking for 2nd argument | |
22858 | of __builtin_vec_gnb. | |
22859 | (builtin_function_type): Mark return value and arguments unsigned | |
22860 | for FUTURE_BUILTIN_VGNB. | |
22861 | * doc/extend.texi (PowerPC AltiVec Built-in Functions Available | |
22862 | for a Future Architecture): Add description of vec_gnb built-in | |
22863 | function. | |
22864 | ||
22865 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22866 | Bill Schmidt <wschmidt@linux.ibm.com> | |
22867 | ||
22868 | * config/rs6000/altivec.h (vec_pdep): New macro implementing new | |
22869 | built-in function. | |
22870 | (vec_pext): Likewise. | |
22871 | * config/rs6000/altivec.md (UNSPEC_VPDEPD): New constant. | |
22872 | (UNSPEC_VPEXTD): Likewise. | |
22873 | (vpdepd): New insn. | |
22874 | (vpextd): Likewise. | |
22875 | * config/rs6000/rs6000-builtin.def (__builtin_altivec_vpdepd): New | |
22876 | built-in function. | |
22877 | (__builtin_altivec_vpextd): Likewise. | |
22878 | * config/rs6000/rs6000-call.c (builtin_function_type): Add | |
22879 | handling for FUTURE_BUILTIN_VPDEPD and FUTURE_BUILTIN_VPEXTD | |
22880 | cases. | |
22881 | * doc/extend.texi (PowerPC Altivec Built-in Functions Available | |
22882 | for a Future Architecture): Add description of vec_pdep and | |
22883 | vec_pext built-in functions. | |
22884 | ||
22885 | 2020-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
22886 | Bill Schmidt <wschmidt@linux.ibm.com> | |
22887 | ||
22888 | * config/rs6000/altivec.h (vec_clzm): New macro. | |
22889 | (vec_ctzm): Likewise. | |
22890 | * config/rs6000/altivec.md (UNSPEC_VCLZDM): New constant. | |
22891 | (UNSPEC_VCTZDM): Likewise. | |
22892 | (vclzdm): New insn. | |
22893 | (vctzdm): Likewise. | |
22894 | * config/rs6000/rs6000-builtin.def (BU_FUTURE_V_0): New macro. | |
22895 | (BU_FUTURE_V_1): Likewise. | |
22896 | (BU_FUTURE_V_2): Likewise. | |
22897 | (BU_FUTURE_V_3): Likewise. | |
22898 | (__builtin_altivec_vclzdm): New builtin definition. | |
22899 | (__builtin_altivec_vctzdm): Likewise. | |
22900 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Cause | |
22901 | _ARCH_PWR_FUTURE macro to be defined if OPTION_MASK_FUTURE flag is | |
22902 | set. | |
22903 | * config/rs6000/rs6000-call.c (builtin_function_type): Set return | |
22904 | value and parameter types to be unsigned for VCLZDM and VCTZDM. | |
22905 | * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add | |
22906 | support for TARGET_FUTURE flag. | |
22907 | * config/rs6000/rs6000.h (RS6000_BTM_FUTURE): New macro constant. | |
22908 | * doc/extend.texi (PowerPC Altivec Built-in Functions Available | |
22909 | for a Future Architecture): New subsubsection. | |
22910 | ||
22911 | 2020-05-11 Richard Biener <rguenther@suse.de> | |
22912 | ||
22913 | PR tree-optimization/94988 | |
22914 | PR tree-optimization/95025 | |
22915 | * tree-ssa-loop-im.c (seq_entry): Make a struct, add from. | |
22916 | (sm_seq_push_down): Take extra parameter denoting where we | |
22917 | moved the ref to. | |
22918 | (execute_sm_exit): Re-issue sm_other stores in the correct | |
22919 | order. | |
22920 | (sm_seq_valid_bb): When always executed, allow sm_other to | |
22921 | prevail inbetween sm_ord and record their stored value. | |
22922 | (hoist_memory_references): Adjust refs_not_supported propagation | |
22923 | and prune sm_other from the end of the ordered sequences. | |
22924 | ||
22925 | 2020-05-11 Felix Yang <felix.yang@huawei.com> | |
22926 | ||
22927 | PR target/94991 | |
22928 | * config/aarch64/aarch64.md (mov<mode>): | |
22929 | Bitcasts to the equivalent integer mode using gen_lowpart | |
22930 | instead of doing FAIL for scalar floating point move. | |
22931 | ||
22932 | 2020-05-11 Alex Coplan <alex.coplan@arm.com> | |
22933 | ||
22934 | * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Add case | |
22935 | to correctly calculate cost for new pattern (*csinv3_uxtw_insn3). | |
22936 | * config/aarch64/aarch64.md (*csinv3_utxw_insn1): New. | |
22937 | (*csinv3_uxtw_insn2): New. | |
22938 | (*csinv3_uxtw_insn3): New. | |
22939 | * config/aarch64/iterators.md (neg_not_cs): New. | |
22940 | ||
22941 | 2020-05-11 Uroš Bizjak <ubizjak@gmail.com> | |
22942 | ||
22943 | PR target/95046 | |
22944 | * config/i386/mmx.md (mmx_addv2sf3): Use "v" constraint | |
22945 | instead of "Yv" for AVX alternatives. Add "prefix" attribute. | |
22946 | (*mmx_addv2sf3): Ditto. | |
22947 | (*mmx_subv2sf3): Ditto. | |
22948 | (*mmx_mulv2sf3): Ditto. | |
22949 | (*mmx_<code>v2sf3): Ditto. | |
22950 | (mmx_ieee_<ieee_maxmin>v2sf3): Ditto. | |
22951 | ||
22952 | 2020-05-11 Uroš Bizjak <ubizjak@gmail.com> | |
22953 | ||
22954 | PR target/95046 | |
22955 | * config/i386/i386.c (ix86_vector_mode_supported_p): | |
22956 | Vectorize 3dNOW! vector modes for TARGET_MMX_WITH_SSE. | |
22957 | * config/i386/mmx.md (*mov<mode>_internal): Do not set | |
22958 | mode of alternative 13 to V2SF for TARGET_MMX_WITH_SSE. | |
22959 | ||
22960 | (mmx_addv2sf3): Change operand predicates from | |
22961 | nonimmediate_operand to register_mmxmem_operand. | |
22962 | (addv2sf3): New expander. | |
22963 | (*mmx_addv2sf3): Add SSE/AVX alternatives. Change operand | |
22964 | predicates from nonimmediate_operand to register_mmxmem_operand. | |
22965 | Enable instruction pattern for TARGET_MMX_WITH_SSE. | |
22966 | ||
22967 | (mmx_subv2sf3): Change operand predicate from | |
22968 | nonimmediate_operand to register_mmxmem_operand. | |
22969 | (mmx_subrv2sf3): Ditto. | |
22970 | (subv2sf3): New expander. | |
22971 | (*mmx_subv2sf3): Add SSE/AVX alternatives. Change operand | |
22972 | predicates from nonimmediate_operand to register_mmxmem_operand. | |
22973 | Enable instruction pattern for TARGET_MMX_WITH_SSE. | |
22974 | ||
22975 | (mmx_mulv2sf3): Change operand predicates from | |
22976 | nonimmediate_operand to register_mmxmem_operand. | |
22977 | (mulv2sf3): New expander. | |
22978 | (*mmx_mulv2sf3): Add SSE/AVX alternatives. Change operand | |
22979 | predicates from nonimmediate_operand to register_mmxmem_operand. | |
22980 | Enable instruction pattern for TARGET_MMX_WITH_SSE. | |
22981 | ||
22982 | (mmx_<code>v2sf3): Change operand predicates from | |
22983 | nonimmediate_operand to register_mmxmem_operand. | |
22984 | (<code>v2sf3): New expander. | |
22985 | (*mmx_<code>v2sf3): Add SSE/AVX alternatives. Change operand | |
22986 | predicates from nonimmediate_operand to register_mmxmem_operand. | |
22987 | Enable instruction pattern for TARGET_MMX_WITH_SSE. | |
22988 | (mmx_ieee_<ieee_maxmin>v2sf3): Ditto. | |
22989 | ||
22990 | 2020-05-11 Martin Liska <mliska@suse.cz> | |
22991 | ||
22992 | PR c/95040 | |
22993 | * common.opt: Fix typo in option description. | |
22994 | ||
22995 | 2020-05-11 Martin Liska <mliska@suse.cz> | |
22996 | ||
22997 | PR gcov-profile/94928 | |
22998 | * gcov-io.h: Add caveat about coverage format parsing and | |
22999 | possible outdated documentation. | |
23000 | ||
23001 | 2020-05-11 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
23002 | ||
23003 | PR tree-optimization/83403 | |
23004 | * tree-affine.c (expr_to_aff_combination): Replace SSA_NAME with | |
23005 | determine_value_range, Add fold conversion of MULT_EXPR, fix the | |
23006 | previous PLUS_EXPR. | |
23007 | ||
23008 | 2020-05-10 Gerald Pfeifer <gerald@pfeifer.com> | |
23009 | ||
23010 | * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 and | |
23011 | __ILP32__ for 32-bit targets. | |
23012 | ||
23013 | 2020-05-09 Eric Botcazou <ebotcazou@adacore.com> | |
23014 | ||
23015 | * tree.h (expr_align): Delete. | |
23016 | * tree.c (expr_align): Likewise. | |
23017 | ||
23018 | 2020-05-09 Hans-Peter Nilsson <hp@axis.com> | |
23019 | ||
23020 | * resource.c (init_resource_info): Filter-out TARGET_FLAGS_REGNUM | |
23021 | from end_of_function_needs. | |
23022 | ||
23023 | * config.gcc: Remove support for crisv32-*-* and cris-*-linux*. | |
23024 | * config/cris/t-linux, config/cris/linux.h, config/cris/linux.opt: | |
23025 | Remove. | |
23026 | * config/cris/t-elfmulti: Remove crisv32 multilib. | |
23027 | * config/cris: Remove shared-library and CRIS v32 support. | |
23028 | ||
23029 | Move trivially from cc0 to reg:CC model, removing most optimizations. | |
23030 | * config/cris/cris.md: Remove all side-effect patterns and their | |
23031 | splitters. Remove most peepholes. Add clobbers of CRIS_CC0_REGNUM | |
23032 | to all but post-reload control-flow and movem insns. Remove | |
23033 | constraints on all modified expanders. Remove obsoleted cc0-related | |
23034 | references. | |
23035 | (attr "cc"): Remove alternative "rev". | |
23036 | (mode_iterator BWDD, DI_, SI_): New. | |
23037 | (mode_attr sCC_destc, cmp_op1c, cmp_op2c): New. | |
23038 | ("tst<mode>"): Remove; fold as "M" alternative into compare insn. | |
23039 | ("mstep_shift", "mstep_mul"): Remove patterns. | |
23040 | ("s<rcond>", "s<ocond>", "s<ncond>"): Anonymize. | |
23041 | * config/cris/cris.c: Change all non-condition-code, | |
23042 | non-control-flow emitted insns to add a parallel with clobber of | |
23043 | CRIS_CC0_REGNUM, mostly by changing from gen_rtx_SET with | |
23044 | emit_insn to use of emit_move_insn, gen_add2_insn or | |
23045 | cris_emit_insn, as convenient. | |
23046 | (cris_reg_overlap_mentioned_p) | |
23047 | (cris_normal_notice_update_cc, cris_notice_update_cc): Remove. | |
23048 | (cris_movem_load_rest_p): Don't assume all elements in a | |
23049 | PARALLEL are SETs. | |
23050 | (cris_store_multiple_op_p): Ditto. | |
23051 | (cris_emit_insn): New function. | |
23052 | * cris/cris-protos.h (cris_emit_insn): Declare. | |
23053 | ||
23054 | PR target/93372 | |
23055 | * config/cris/cris.md (zcond): New code_iterator. | |
23056 | ("*cbranch<mode>4_btstq<CC>"): New insn_and_split. | |
23057 | ||
23058 | * config/cris/cris.c (TARGET_FLAGS_REGNUM): Define. | |
23059 | ||
23060 | * config/cris/cris.h (REVERSIBLE_CC_MODE): Define to true. | |
23061 | ||
23062 | * config/cris/cris.md ("movsi"): For memory destination | |
23063 | post-reload, generate clobberless variant. Similarly for a | |
23064 | zero-source post-reload. | |
23065 | ("*mov_tomem<mode>_split"): New split. | |
23066 | ("*mov_tomem<mode>"): New insn. | |
23067 | ("enabled", mov_tomem_enabled): Define and use to exclude "x" -> | |
23068 | "Q>m" for less-than-SImode. | |
23069 | ("*mov_fromzero<mode>_split"): New split. | |
23070 | ("*mov_fromzero<mode>"): New insn. | |
23071 | ||
23072 | Prepare for cmpelim pass to eliminate redundant compare insns. | |
23073 | * config/cris/cris-modes.def: New file. | |
23074 | * config/cris/cris-protos.h (cris_select_cc_mode): Declare. | |
23075 | (cris_notice_update_cc): Remove left-over declaration. | |
23076 | * config/cris/cris.c (TARGET_CC_MODES_COMPATIBLE): Define. | |
23077 | (cris_select_cc_mode, cris_cc_modes_compatible): New functions. | |
23078 | * config/cris/cris.h (SELECT_CC_MODE): Define. | |
23079 | * config/cris/cris.md (NZSET, NZUSE, NZVCSET, NZVCUSE): New | |
23080 | mode_iterators. | |
23081 | (cond): New code_iterator. | |
23082 | (nzcond): Replacement for incorrect ncond. All callers changed. | |
23083 | (nzvccond): Replacement for ocond. All callers changed. | |
23084 | (rnzcond): Replacement for rcond. All callers changed. | |
23085 | (xCC): New code_attr. | |
23086 | (cmp_op1c, cmp_op0c): Renumber from cmp_op1c and cmp_op2c. All | |
23087 | users changed. | |
23088 | ("*cmpdi<NZVCSET:mode>"): Rename from "*cmpdi". Replace | |
23089 | CCmode with iteration over NZVCSET. | |
23090 | ("*cmp_ext<BW:mode><NZVCSET:mode>"): Similarly; rename from | |
23091 | "*cmp_ext<mode>". | |
23092 | ("*cmpsi<NZVCSET:mode>"): Similarly, from "*cmpsi". | |
23093 | ("*cmp<BW:mode><NZVCSET:mode>"): Similarly from "*cmp<mode>". | |
23094 | ("*btst<mode>"): Similarly, from "*btst". | |
23095 | ("*cbranch<mode><code>4"): Rename from "*cbranch<mode>4", | |
23096 | iterating over cond instead of matching the comparison with | |
23097 | ordered_comparison_operator. | |
23098 | ("*cbranch<mode>4_btstq<CC>"): Correct label operand number. | |
23099 | ("b<zcond:code><mode>"): Rename from "b<ncond:code>", iterating | |
23100 | over NZUSE. | |
23101 | ("b<nzvccond:code><mode>"): Similarly from "b<ocond:code>", over | |
23102 | NZVCUSE. Remove FIXME. | |
23103 | ("*b<nzcond:code>_reversed<mode>"): Similarly from | |
23104 | "*b<ncond:code>_reversed", over NZUSE. | |
23105 | ("*b<nzvccond:code>_reversed<mode>"): Similarly from | |
23106 | "*b<ocond:code>_reversed", over NZVCUSE. Remove FIXME. | |
23107 | ("b<rnzcond:code><mode>"): Similarly from "b<rcond:code>", | |
23108 | over NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice, | |
23109 | depending on CC_NZmode vs. CCmode. Remove FIXME. | |
23110 | ("*b<rnzcond:code>_reversed<mode>"): Similarly from | |
23111 | "*b<rcond:code>_reversed", over NZUSE. | |
23112 | ("*cstore<mode><code>4"): Rename from "*cstore<mode>4", | |
23113 | iterating over cond instead of matching the comparison with | |
23114 | ordered_comparison_operator. | |
23115 | ("*s<nzcond:code><mode>"): Rename from "*s<ncond:code>", | |
23116 | iterating over NZUSE. | |
23117 | ("*s<rnzcond:code><mode>"): Similar from "*s<rcond:code>", over | |
23118 | NZUSE. Reinstate "b<oCC>" vs. "b<CC>" mnemonic choice, | |
23119 | depending on CC_NZmode vs. CCmode. | |
23120 | ("*s<nzvccond:code><mode>"): Simlar from "*s<ocond:code>", over | |
23121 | NZVCUSE. Remove FIXME. | |
23122 | ("cc"): Comment on new use. | |
23123 | ("cc_enabled"): New attribute. | |
23124 | ("enabled"): Make default fall back to cc_enabled. | |
23125 | ("setnz", "ccnz", "setnzvc", "ccnzvc", "setcc", "cccc"): New | |
23126 | default_subst_attrs. | |
23127 | ("setnz_subst", "setnzvc_subst", "setcc_subst"): New default_subst. | |
23128 | ("*movsi_internal<setcc><setnz><setnzvc>"): Rename from | |
23129 | "*movsi_internal". Correct contents of, and rename attribute | |
23130 | "cc" to "cc<cccc><ccnz><ccnzvc>". | |
23131 | ("anz", "anzvc", "acc"): New define_subst_attrs. | |
23132 | ("<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"): Rename from | |
23133 | "movhi". Rename "cc" attribute to "cc<cccc><ccnz><ccnzvc>". | |
23134 | ("<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"): Similar from | |
23135 | "movqi". Correct contents of, and rename "cc" attribute to | |
23136 | "cc<cccc><ccnz><ccnzvc>". | |
23137 | ("*b<zcond:code><mode>"): Rename from "b<zcond:code><mode>". | |
23138 | ("*b<nzvccond:code><mode>"): Rename from "b<nzvccond:code><mode>". | |
23139 | ("*b<rnzcond:code><mode>"): Rename from "*b<rnzcond:code><mode>". | |
23140 | ("<acc><anz><anzvc>extend<mode>si2<setcc><setnz><setnzvc>"): | |
23141 | Rename from "extend<mode>si2". | |
23142 | ("<acc><anz><anzvc>zero_extend<mode>si2<setcc><setnz><setnzvc>"): | |
23143 | Similar, from "zero_extend<mode>si2". | |
23144 | ("*adddi3<setnz>"): Rename from "*adddi3". | |
23145 | ("*subdi3<setnz>"): Similarly from "*subdi3". | |
23146 | ("*addsi3<setnz>"): Similarly from "*addsi3". | |
23147 | ("*subsi3<setnz>"): Similarly from "*subsi3". | |
23148 | ("*addhi3<setnz>"): Similarly from "*addhi3" and decorate the | |
23149 | "cc" attribute to "cc<ccnz>". | |
23150 | ("*addqi3<setnz>"): Similarly from "*addqi3". | |
23151 | ("*sub<mode>3<setnz>"): Similarly from "*sub<mode>3". | |
23152 | ("*expanded_andsi<setcc><setnz><setnzvc>"): Rename from | |
23153 | "*expanded_andsi". | |
23154 | ("*iorsi3<setcc><setnz><setnzvc>"): Similar from "*iorsi3". | |
23155 | Decorate "cc" attribute to make "cc<cccc><ccnz><ccnzvc>". | |
23156 | ("*iorhi3<setcc><setnz><setnzvc>"): Similar from "*iorhi3". | |
23157 | ("*iorqi3<setcc><setnz><setnzvc>"): Similar from "*iorqi3". | |
23158 | ("*expanded_andhi<setcc><setnz><setnzvc>"): Similar from | |
23159 | "*expanded_andhi". Add quick cc-setting alternative for 0..31. | |
23160 | ("*andqi3<setcc><setnz><setnzvc>"): Similar from "*andqi3". | |
23161 | ("<acc><anz><anzvc>xorsi3<setcc><setnz><setnzvc>"): Rename | |
23162 | from "xorsi3". | |
23163 | ("<acc><anz><anzvc>one_cmplsi2<setcc><setnz><setnzvc>"): Rename | |
23164 | from "one_cmplsi2". | |
23165 | ("<acc><anz><anzvc><shlr>si3<setcc><setnz><setnzvc>"): Rename | |
23166 | from "<shlr>si3". | |
23167 | ("<acc><anz><anzvc>clzsi2<setcc><setnz><setnzvc>"): Rename | |
23168 | from "clzsi2". | |
23169 | ("<acc><anz><anzvc>bswapsi2<setcc><setnz><setnzvc>"): Rename | |
23170 | from "bswapsi2". | |
23171 | ("*uminsi3<setcc><setnz><setnzvc>"): Rename from "*uminsi3". | |
23172 | ||
23173 | * config/cris/cris-modes.def (CC_ZnN): New CC_MODE. | |
23174 | * config/cris/cris.c (cris_rtx_costs): Handle pre-split bit-test | |
23175 | * config/cris/cris.md (ZnNNZSET, ZnNNZUSE): New mode_iterators. | |
23176 | (znnCC, rznnCC): New code_attrs. | |
23177 | ("*btst<mode>"): Iterator over ZnNNZSET instead of NZVCSET. Remove | |
23178 | obseolete comment. Add belt-and-suspenders mode-test to condition. | |
23179 | Add fixme regarding remaining matched-but-not-generated case. | |
23180 | ("*cbranch<mode>4_btstrq1_<CC>"): New insn_and_split. | |
23181 | ("*cbranch<mode>4_btstqb0_<CC>"): Rename from | |
23182 | "*cbranch<mode>4_btstq<CC>". Split to CC_NZ instead of CC. | |
23183 | ("*b<zcond:code><mode>"): Iterate over ZnNNZUSE instead of NZUSE. | |
23184 | Handle output of CC_ZnNmode. | |
23185 | ("*b<nzcond:code>_reversed<mode>"): Ditto. | |
23186 | ||
23187 | * config/cris/cris.c (cris_select_cc_mode): Return CC_NZmode for | |
23188 | NEG too. Correct comment. | |
23189 | * config/cris/cris.md ("<anz>neg<mode>2<setnz>"): Rename from | |
23190 | "neg<mode>2". | |
23191 | ||
23192 | 2020-05-08 Vladimir Makarov <vmakarov@redhat.com> | |
23193 | ||
23194 | * ira-color.c (update_costs_from_allocno): Remove | |
23195 | conflict_cost_update_p argument. Propagate costs only along | |
23196 | threads. Always do conflict cost update. Add printing debugging | |
23197 | info. | |
23198 | (update_costs_from_copies): Add printing debugging info. | |
23199 | (restore_costs_from_copies): Ditto. | |
23200 | (assign_hard_reg): Improve debug info. | |
23201 | (push_only_colorable): Ditto. Call update_costs_from_prefs. | |
23202 | (color_allocnos): Remove update_costs_from_prefs. | |
23203 | ||
23204 | 2020-05-08 Richard Biener <rguenther@suse.de> | |
23205 | ||
23206 | * tree-vectorizer.h (vec_info::slp_loads): New. | |
23207 | (vect_optimize_slp): Declare. | |
23208 | * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Do | |
23209 | nothing when there are no loads. | |
23210 | (vect_gather_slp_loads): Gather loads into a vector. | |
23211 | (vect_supported_load_permutation_p): Remove. | |
23212 | (vect_analyze_slp_instance): Do not verify permutation | |
23213 | validity here. | |
23214 | (vect_analyze_slp): Optimize permutations of reductions | |
23215 | after all SLP instances have been gathered and gather | |
23216 | all loads. | |
23217 | (vect_optimize_slp): New function split out from | |
23218 | vect_supported_load_permutation_p. Elide some permutations. | |
23219 | (vect_slp_analyze_bb_1): Call vect_optimize_slp. | |
23220 | * tree-vect-loop.c (vect_analyze_loop_2): Likewise. | |
23221 | * tree-vect-stmts.c (vectorizable_load): Check whether | |
23222 | the load can be permuted. When generating code assert we can. | |
23223 | ||
23224 | 2020-05-08 Richard Biener <rguenther@suse.de> | |
23225 | ||
23226 | * tree-ssa-sccvn.c (rpo_avail): Change type to | |
23227 | eliminate_dom_walker *. | |
23228 | (eliminate_with_rpo_vn): Adjust rpo_avail to make vn_valueize | |
23229 | use the DOM walker availability. | |
23230 | (vn_reference_fold_indirect): Use get_addr_base_and_unit_offset_1 | |
23231 | with vn_valueize as valueization callback. | |
23232 | (vn_reference_maybe_forwprop_address): Likewise. | |
23233 | * tree-dfa.c (get_addr_base_and_unit_offset_1): Also valueize | |
23234 | array_ref_low_bound. | |
23235 | ||
23236 | 2020-05-08 Jakub Jelinek <jakub@redhat.com> | |
23237 | ||
23238 | PR tree-optimization/94786 | |
23239 | * match.pd (A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A): New | |
23240 | simplification. | |
23241 | ||
23242 | PR target/94857 | |
23243 | * config/i386/i386.md (peephole2 after *add<mode>3_cc_overflow_1): New | |
23244 | define_peephole2. | |
23245 | ||
23246 | PR middle-end/94724 | |
23247 | * tree.c (get_narrower): Reuse the op temporary instead of | |
23248 | shadowing it. | |
23249 | ||
23250 | PR tree-optimization/94783 | |
23251 | * match.pd ((X + (X >> (prec - 1))) ^ (X >> (prec - 1)) to abs (X)): | |
23252 | New simplification. | |
23253 | ||
23254 | PR tree-optimization/94956 | |
23255 | * match.pd (FFS): Optimize __builtin_ffs* of non-zero argument into | |
23256 | __builtin_ctz* + 1 if direct IFN_CTZ is supported. | |
23257 | ||
23258 | PR tree-optimization/94913 | |
23259 | * match.pd (A - B + -1 >= A to B >= A): New simplification. | |
23260 | (A - B > A to A < B): Don't test TYPE_OVERFLOW_WRAPS which is always | |
23261 | true for TYPE_UNSIGNED integral types. | |
23262 | ||
23263 | PR bootstrap/94961 | |
23264 | PR rtl-optimization/94516 | |
23265 | * rtl.h (remove_reg_equal_equiv_notes): Add a bool argument defaulted | |
23266 | to false. | |
23267 | * rtlanal.c (remove_reg_equal_equiv_notes): Add no_rescan argument. | |
23268 | Call df_notes_rescan if that argument is not true and returning true. | |
23269 | * combine.c (adjust_for_new_dest): Pass true as second argument to | |
23270 | remove_reg_equal_equiv_notes. | |
23271 | * postreload.c (reload_combine_recognize_pattern): Don't call | |
23272 | df_notes_rescan. | |
23273 | ||
23274 | 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org> | |
23275 | ||
23276 | * config/rs6000/rs6000.md (*setnbc_<un>signed_<GPR:mode>): New | |
23277 | define_insn. | |
23278 | (*setnbcr_<un>signed_<GPR:mode>): New define_insn. | |
23279 | (*neg_eq_<mode>): Avoid for TARGET_FUTURE; add missing && 1. | |
23280 | (*neg_ne_<mode>): Likewise. | |
23281 | ||
23282 | 2020-05-07 Segher Boessenkool <segher@kernel.crashing.org> | |
23283 | ||
23284 | * config/rs6000/rs6000.md (setbc_<un>signed_<GPR:mode>): New | |
23285 | define_insn. | |
23286 | (*setbcr_<un>signed_<GPR:mode>): Likewise. | |
23287 | (cstore<mode>4): Use setbc[r] if available. | |
23288 | (<code><GPR:mode><GPR2:mode>2_isel): Avoid for TARGET_FUTURE. | |
23289 | (eq<mode>3): Use setbc for TARGET_FUTURE. | |
23290 | (*eq<mode>3): Avoid for TARGET_FUTURE. | |
23291 | (ne<mode>3): Replace :P with :GPR; use setbc for TARGET_FUTURE; | |
23292 | else for non-Pmode, use gen_eq and gen_xor. | |
23293 | (*ne<mode>3): Avoid for TARGET_FUTURE. | |
23294 | (*eqsi3_ext<mode>): Avoid for TARGET_FUTURE; fix missing && 1. | |
23295 | ||
23296 | 2020-05-07 Jeff Law <law@redhat.com> | |
23297 | ||
23298 | * config/h8300/h8300.md: Move expanders and patterns into | |
23299 | files based on functionality. | |
23300 | * config/h8300/addsub.md: New file. | |
23301 | * config/h8300/bitfield.md: New file | |
23302 | * config/h8300/combiner.md: New file | |
23303 | * config/h8300/divmod.md: New file | |
23304 | * config/h8300/extensions.md: New file | |
23305 | * config/h8300/jumpcall.md: New file | |
23306 | * config/h8300/logical.md: New file | |
23307 | * config/h8300/movepush.md: New file | |
23308 | * config/h8300/multiply.md: New file | |
23309 | * config/h8300/other.md: New file | |
23310 | * config/h8300/proepi.md: New file | |
23311 | * config/h8300/shiftrotate.md: New file | |
23312 | * config/h8300/testcompare.md: New file | |
23313 | ||
23314 | * config/h8300/h8300.md (adds/subs splitters): Merge into single | |
23315 | splitter. | |
23316 | (negation expanders and patterns): Simplify and combine using | |
23317 | iterators. | |
23318 | (one_cmpl expanders and patterns): Likewise. | |
23319 | (tablejump, indirect_jump patterns ): Likewise. | |
23320 | (shift and rotate expanders and patterns): Likewise. | |
23321 | (absolute value expander and pattern): Drop expander, rename pattern | |
23322 | to just "abssf2" | |
23323 | (peephole2 patterns): Move into... | |
23324 | * config/h8300/peepholes.md: New file. | |
23325 | ||
23326 | * config/h8300/constraints.md (L and N): Simplify now that we're not | |
23327 | longer supporting the original H8/300 chip. | |
23328 | * config/h8300/elf.h (LINK_SPEC): Likewise. Default to H8/300H. | |
23329 | * config/h8300/h8300.c (shift_alg_qi): Drop H8/300 support. | |
23330 | (shift_alg_hi, shift_alg_si): Similarly. | |
23331 | (h8300_option_overrides): Similarly. Default to H8/300H. If | |
23332 | compiling for H8/S, then turn off H8/300H. Do not update the | |
23333 | shift_alg tables for H8/300 port. | |
23334 | (h8300_emit_stack_adjustment): Remove support for H8/300. Simplify | |
23335 | where possible. | |
23336 | (push, split_adds_subs, h8300_rtx_costs): Likewise. | |
23337 | (h8300_print_operand, compute_mov_length): Likewise. | |
23338 | (output_plussi, compute_plussi_length): Likewise. | |
23339 | (compute_plussi_cc, output_logical_op): Likewise. | |
23340 | (compute_logical_op_length, compute_logical_op_cc): Likewise. | |
23341 | (get_shift_alg, h8300_shift_needs_scratch): Likewise. | |
23342 | (output_a_shift, compute_a_shift_length): Likewise. | |
23343 | (output_a_rotate, compute_a_rotate_length): Likewise. | |
23344 | (output_simode_bld, h8300_hard_regno_mode_ok): Likewise. | |
23345 | (h8300_modes_tieable_p, h8300_return_in_memory): Likewise. | |
23346 | * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise. | |
23347 | (attr_cpu, TARGET_H8300): Remove. | |
23348 | (TARGET_DEFAULT): Update. | |
23349 | (UNITS_PER_WORD, PARM_BOUNDARY): Simplify where possible. | |
23350 | (BIGGEST_ALIGNMENT, STACK_BOUNDARY): Likewise. | |
23351 | (CONSTANT_ADDRESS_P, MOVE_MAX, Pmode): Likewise. | |
23352 | (SIZE_TYPE, POINTER_SIZE, ASM_WORD_OP): Likewise. | |
23353 | * config/h8300/h8300.md: Simplify patterns throughout. | |
23354 | * config/h8300/t-h8300: Update multilib configuration. | |
23355 | ||
23356 | * config/h8300/h8300.h (LINK_SPEC): Remove. | |
23357 | (USER_LABEL_PREFIX): Likewise. | |
23358 | ||
23359 | * config/h8300/h8300.c (h8300_asm_named_section): Remove. | |
23360 | (h8300_option_override): Remove remnants of COFF support. | |
23361 | ||
23362 | 2020-05-07 Alan Modra <amodra@gmail.com> | |
23363 | ||
23364 | * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Replace | |
23365 | set_rtx_cost with set_src_cost. | |
23366 | * tree-switch-conversion.c (bit_test_cluster::emit): Likewise. | |
23367 | ||
23368 | 2020-05-07 Kewen Lin <linkw@gcc.gnu.org> | |
23369 | ||
23370 | * tree-vect-stmts.c (vectorizable_load): Check alignment to avoid | |
23371 | redundant half vector handlings for no peeling gaps. | |
23372 | ||
23373 | 2020-05-07 Giuliano Belinassi <giuliano.belinassi@usp.br> | |
23374 | ||
23375 | * tree-ssa-operands.c (operands_scanner): New class. | |
23376 | (operands_bitmap_obstack): Remove. | |
23377 | (n_initialized): Remove. | |
23378 | (build_uses): Move to operands_scanner class. | |
23379 | (build_vuse): Same as above. | |
23380 | (build_vdef): Same as above. | |
23381 | (verify_ssa_operands): Same as above. | |
23382 | (finalize_ssa_uses): Same as above. | |
23383 | (cleanup_build_arrays): Same as above. | |
23384 | (finalize_ssa_stmt_operands): Same as above. | |
23385 | (start_ssa_stmt_operands): Same as above. | |
23386 | (append_use): Same as above. | |
23387 | (append_vdef): Same as above. | |
23388 | (add_virtual_operand): Same as above. | |
23389 | (add_stmt_operand): Same as above. | |
23390 | (get_mem_ref_operands): Same as above. | |
23391 | (get_tmr_operands): Same as above. | |
23392 | (maybe_add_call_vops): Same as above. | |
23393 | (get_asm_stmt_operands): Same as above. | |
23394 | (get_expr_operands): Same as above. | |
23395 | (parse_ssa_operands): Same as above. | |
23396 | (finalize_ssa_defs): Same as above. | |
23397 | (build_ssa_operands): Same as above, plus create a C-like wrapper. | |
23398 | (update_stmt_operands): Create an instance of operands_scanner. | |
23399 | ||
23400 | 2020-05-07 Richard Biener <rguenther@suse.de> | |
23401 | ||
23402 | PR ipa/94947 | |
23403 | * tree-ssa-structalias.c (refered_from_nonlocal_fn): Use | |
23404 | DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible. | |
23405 | (refered_from_nonlocal_var): Likewise. | |
23406 | (ipa_pta_execute): Likewise. | |
23407 | ||
23408 | 2020-05-07 Erick Ochoa <erick.ochoa@theobroma-systems.com> | |
23409 | ||
23410 | * gcc/tree-ssa-struct-alias.c: Fix comments | |
23411 | ||
23412 | 2020-05-07 Martin Liska <mliska@suse.cz> | |
23413 | ||
23414 | * doc/invoke.texi: Fix 2 optindex entries. | |
23415 | ||
23416 | 2020-05-07 Richard Biener <rguenther@suse.de> | |
23417 | ||
23418 | PR middle-end/94703 | |
23419 | * tree-core.h (tree_decl_common::gimple_reg_flag): Rename ... | |
23420 | (tree_decl_common::not_gimple_reg_flag): ... to this. | |
23421 | * tree.h (DECL_GIMPLE_REG_P): Rename ... | |
23422 | (DECL_NOT_GIMPLE_REG_P): ... to this. | |
23423 | * gimple-expr.c (copy_var_decl): Copy DECL_NOT_GIMPLE_REG_P. | |
23424 | (create_tmp_reg): Simplify. | |
23425 | (create_tmp_reg_fn): Likewise. | |
23426 | (is_gimple_reg): Check DECL_NOT_GIMPLE_REG_P for all regs. | |
23427 | * gimplify.c (create_tmp_from_val): Simplify. | |
23428 | (gimplify_bind_expr): Likewise. | |
23429 | (gimplify_compound_literal_expr): Likewise. | |
23430 | (gimplify_function_tree): Likewise. | |
23431 | (prepare_gimple_addressable): Set DECL_NOT_GIMPLE_REG_P. | |
23432 | * asan.c (create_odr_indicator): Do not clear DECL_GIMPLE_REG_P. | |
23433 | (asan_add_global): Copy it. | |
23434 | * cgraphunit.c (cgraph_node::expand_thunk): Force args | |
23435 | to be GIMPLE regs. | |
23436 | * function.c (gimplify_parameters): Copy | |
23437 | DECL_NOT_GIMPLE_REG_P. | |
23438 | * ipa-param-manipulation.c | |
23439 | (ipa_param_body_adjustments::common_initialization): Simplify. | |
23440 | (ipa_param_body_adjustments::reset_debug_stmts): Copy | |
23441 | DECL_NOT_GIMPLE_REG_P. | |
23442 | * omp-low.c (lower_omp_for_scan): Do not set DECL_GIMPLE_REG_P. | |
23443 | * sanopt.c (sanitize_rewrite_addressable_params): Likewise. | |
23444 | * tree-cfg.c (make_blocks_1): Simplify. | |
23445 | (verify_address): Do not verify DECL_GIMPLE_REG_P setting. | |
23446 | * tree-eh.c (lower_eh_constructs_2): Simplify. | |
23447 | * tree-inline.c (declare_return_variable): Adjust and | |
23448 | generalize. | |
23449 | (copy_decl_to_var): Copy DECL_NOT_GIMPLE_REG_P. | |
23450 | (copy_result_decl_to_var): Likewise. | |
23451 | * tree-into-ssa.c (pass_build_ssa::execute): Adjust comment. | |
23452 | * tree-nested.c (create_tmp_var_for): Simplify. | |
23453 | * tree-parloops.c (separate_decls_in_region_name): Copy | |
23454 | DECL_NOT_GIMPLE_REG_P. | |
23455 | * tree-sra.c (create_access_replacement): Adjust and | |
23456 | generalize partial def support. | |
23457 | * tree-ssa-forwprop.c (pass_forwprop::execute): Set | |
23458 | DECL_NOT_GIMPLE_REG_P on decls we introduce partial defs on. | |
23459 | * tree-ssa.c (maybe_optimize_var): Handle clearing of | |
23460 | TREE_ADDRESSABLE and setting/clearing DECL_NOT_GIMPLE_REG_P | |
23461 | independently. | |
23462 | * lto-streamer-out.c (hash_tree): Hash DECL_NOT_GIMPLE_REG_P. | |
23463 | * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream | |
23464 | DECL_NOT_GIMPLE_REG_P. | |
23465 | * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise. | |
23466 | * cfgexpand.c (avoid_type_punning_on_regs): New. | |
23467 | (discover_nonconstant_array_refs): Call | |
23468 | avoid_type_punning_on_regs to avoid unsupported mode punning. | |
23469 | ||
23470 | 2020-05-07 Alex Coplan <alex.coplan@arm.com> | |
23471 | ||
23472 | * config/arm/arm.c (arm_add_stmt_cost): Fix declaration, remove class | |
23473 | from definition. | |
23474 | ||
23475 | 2020-05-07 Richard Biener <rguenther@suse.de> | |
23476 | ||
23477 | PR tree-optimization/57359 | |
23478 | * tree-ssa-loop-im.c (im_mem_ref::indep_loop): Remove. | |
23479 | (in_mem_ref::dep_loop): Repurpose. | |
23480 | (LOOP_DEP_BIT): Remove. | |
23481 | (enum dep_kind): New. | |
23482 | (enum dep_state): Likewise. | |
23483 | (record_loop_dependence): New function to populate the | |
23484 | dependence cache. | |
23485 | (query_loop_dependence): New function to query the dependence | |
23486 | cache. | |
23487 | (memory_accesses::refs_in_loop): Rename to ... | |
23488 | (memory_accesses::refs_loaded_in_loop): ... this and change to | |
23489 | only record loads. | |
23490 | (outermost_indep_loop): Adjust. | |
23491 | (mem_ref_alloc): Likewise. | |
23492 | (gather_mem_refs_stmt): Likewise. | |
23493 | (mem_refs_may_alias_p): Add tbaa_p parameter and pass it down. | |
23494 | (struct sm_aux): New. | |
23495 | (execute_sm): Split code generation on exits, record state | |
23496 | into new hash-map. | |
23497 | (enum sm_kind): New. | |
23498 | (execute_sm_exit): Exit code generation part. | |
23499 | (sm_seq_push_down): Helper for sm_seq_valid_bb performing | |
23500 | dependence checking on stores reached from exits. | |
23501 | (sm_seq_valid_bb): New function gathering SM stores on exits. | |
23502 | (hoist_memory_references): Re-implement. | |
23503 | (refs_independent_p): Add tbaa_p parameter and pass it down. | |
23504 | (record_dep_loop): Remove. | |
23505 | (ref_indep_loop_p_1): Fold into ... | |
23506 | (ref_indep_loop_p): ... this and generalize for three kinds | |
23507 | of dependence queries. | |
23508 | (can_sm_ref_p): Adjust according to hoist_memory_references | |
23509 | changes. | |
23510 | (store_motion_loop): Don't do anything if the set of SM | |
23511 | candidates is empty. | |
23512 | (tree_ssa_lim_initialize): Adjust. | |
23513 | (tree_ssa_lim_finalize): Likewise. | |
23514 | ||
23515 | 2020-05-07 Eric Botcazou <ebotcazou@adacore.com> | |
23516 | Pierre-Marie de Rodat <derodat@adacore.com> | |
23517 | ||
23518 | * dwarf2out.c (add_data_member_location_attribute): Take into account | |
23519 | the variant part offset in the computation of the data bit offset. | |
23520 | (add_bit_offset_attribute): Remove CTX parameter. Pass a new context | |
23521 | in the call to field_byte_offset. | |
23522 | (gen_field_die): Adjust call to add_bit_offset_attribute and remove | |
23523 | confusing assertion. | |
23524 | (analyze_variant_discr): Deal with boolean subtypes. | |
23525 | ||
23526 | 2020-05-07 Martin Liska <mliska@suse.cz> | |
23527 | ||
23528 | * lto-wrapper.c: Split arguments of MAKE environment | |
23529 | variable. | |
23530 | ||
23531 | 2020-05-07 Uroš Bizjak <ubizjak@gmail.com> | |
23532 | ||
23533 | * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use | |
23534 | TARGET_EXPR instead of MODIFY_EXPR for the first assignments to | |
23535 | fenv_var and new_fenv_var. | |
23536 | ||
23537 | 2020-05-06 Jakub Jelinek <jakub@redhat.com> | |
23538 | ||
23539 | PR target/93069 | |
23540 | * config/i386/subst.md (store_mask_constraint, store_mask_predicate): | |
23541 | Remove. | |
23542 | (avx512dq_vextract<shuffletype>64x2_1_maskm, | |
23543 | avx512f_vextract<shuffletype>32x4_1_maskm, | |
23544 | vec_extract_lo_<mode>_maskm, vec_extract_hi_<mode>_maskm): Remove. | |
23545 | (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>): Split | |
23546 | into ... | |
23547 | (*avx512dq_vextract<shuffletype>64x2_1, | |
23548 | avx512dq_vextract<shuffletype>64x2_1_mask): ... these new | |
23549 | define_insns. Even in the masked variant allow memory output but in | |
23550 | that case use 0 rather than 0C constraint on the source of masked-out | |
23551 | elts. | |
23552 | (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Split | |
23553 | into ... | |
23554 | (*avx512f_vextract<shuffletype>32x4_1, | |
23555 | avx512f_vextract<shuffletype>32x4_1_mask): ... these new define_insns. | |
23556 | Even in the masked variant allow memory output but in that case use | |
23557 | 0 rather than 0C constraint on the source of masked-out elts. | |
23558 | (vec_extract_lo_<mode><mask_name>): Split into ... | |
23559 | (vec_extract_lo_<mode>, vec_extract_lo_<mode>_mask): ... these new | |
23560 | define_insns. Even in the masked variant allow memory output but in | |
23561 | that case use 0 rather than 0C constraint on the source of masked-out | |
23562 | elts. | |
23563 | (vec_extract_hi_<mode><mask_name>): Split into ... | |
23564 | (vec_extract_hi_<mode>, vec_extract_hi_<mode>_mask): ... these new | |
23565 | define_insns. Even in the masked variant allow memory output but in | |
23566 | that case use 0 rather than 0C constraint on the source of masked-out | |
23567 | elts. | |
23568 | ||
23569 | 2020-05-06 qing zhao <qing.zhao@oracle.com> | |
23570 | ||
23571 | PR c/94230 | |
23572 | * common.opt: Add -flarge-source-files. | |
23573 | * doc/invoke.texi: Document it. | |
23574 | * toplev.c (process_options): set line_table->default_range_bits | |
23575 | to 0 when flag_large_source_files is true. | |
23576 | ||
23577 | 2020-05-06 Uroš Bizjak <ubizjak@gmail.com> | |
23578 | ||
23579 | PR target/94913 | |
23580 | * config/i386/predicates.md (add_comparison_operator): New predicate. | |
23581 | * config/i386/i386.md (compare->add splitter): New splitters. | |
23582 | ||
23583 | 2020-05-06 Richard Biener <rguenther@suse.de> | |
23584 | ||
23585 | * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust. | |
23586 | * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): | |
23587 | Remove slp_instance parameter, just iterate over all scalar stmts. | |
23588 | (vect_slp_analyze_instance_dependence): Adjust and likewise. | |
23589 | * tree-vect-slp.c (vect_bb_slp_scalar_cost): Remove unused BB | |
23590 | parameter. | |
23591 | (vect_schedule_slp): Just iterate over all scalar stmts. | |
23592 | (vect_supported_load_permutation_p): Adjust. | |
23593 | (vect_transform_slp_perm_load): Remove slp_instance parameter, | |
23594 | instead use the number of lanes in the node as group size. | |
23595 | * tree-vect-stmts.c (vect_model_load_cost): Get vectorization | |
23596 | factor instead of slp_instance as parameter. | |
23597 | (vectorizable_load): Adjust. | |
23598 | ||
23599 | 2020-05-06 Andreas Schwab <schwab@suse.de> | |
23600 | ||
23601 | * config/aarch64/driver-aarch64.c: Include "aarch64-protos.h". | |
23602 | (aarch64_get_extension_string_for_isa_flags): Don't declare. | |
23603 | ||
23604 | 2020-05-06 Richard Biener <rguenther@suse.de> | |
23605 | ||
23606 | PR middle-end/94964 | |
23607 | * cfgloopmanip.c (create_preheader): Require non-complex | |
23608 | preheader edge for CP_SIMPLE_PREHEADERS. | |
23609 | ||
23610 | 2020-05-06 Richard Biener <rguenther@suse.de> | |
23611 | ||
23612 | PR tree-optimization/94963 | |
23613 | * tree-ssa-loop-im.c (execute_sm_if_changed): Remove | |
23614 | no-warning marking of the conditional store. | |
23615 | (execute_sm): Instead mark the uninitialized state | |
23616 | on loop entry to be not warned about. | |
23617 | ||
23618 | 2020-05-06 Hongtao Liu <hongtao.liu@intel.com> | |
23619 | ||
23620 | * common/config/i386/i386-common.c (OPTION_MASK_ISA2_TSXLDTRK_SET, | |
23621 | OPTION_MASK_ISA2_TSXLDTRK_UNSET): New macros. | |
23622 | * config.gcc: Add tsxldtrkintrin.h to extra_headers. | |
23623 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect | |
23624 | TSXLDTRK. | |
23625 | * config/i386/i386-builtin.def: Add new builtins. | |
23626 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
23627 | __TSXLDTRK__. | |
23628 | * config/i386/i386-options.c (ix86_target_string): Add | |
23629 | -mtsxldtrk. | |
23630 | (ix86_valid_target_attribute_inner_p): Add attribute tsxldtrk. | |
23631 | * config/i386/i386.h (TARGET_TSXLDTRK, TARGET_TSXLDTRK_P): | |
23632 | New. | |
23633 | * config/i386/i386.md (define_c_enum "unspec"): Add | |
23634 | UNSPECV_SUSLDTRK, UNSPECV_RESLDTRK. | |
23635 | (TSXLDTRK): New define_int_iterator. | |
23636 | ("<tsxldtrk>"): New define_insn. | |
23637 | * config/i386/i386.opt: Add -mtsxldtrk. | |
23638 | * config/i386/immintrin.h: Include tsxldtrkintrin.h. | |
23639 | * config/i386/tsxldtrkintrin.h: New. | |
23640 | * doc/invoke.texi: Document -mtsxldtrk. | |
23641 | ||
23642 | 2020-05-06 Jakub Jelinek <jakub@redhat.com> | |
23643 | ||
23644 | PR tree-optimization/94921 | |
23645 | * match.pd (~(~X - Y) -> X + Y, ~(~X + Y) -> X - Y): New | |
23646 | simplifications. | |
23647 | ||
23648 | 2020-05-06 Richard Biener <rguenther@suse.de> | |
23649 | ||
23650 | PR tree-optimization/94965 | |
23651 | * tree-vect-stmts.c (vectorizable_load): Fix typo. | |
23652 | ||
23653 | 2020-05-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
23654 | ||
23655 | * doc/install.texi: Replace Sun with Solaris as appropriate. | |
23656 | (Tools/packages necessary for building GCC, Perl version between | |
23657 | 5.6.1 and 5.6.24): Remove Solaris 8 reference. | |
23658 | (Installing GCC: Binaries, Solaris 2 (SPARC, Intel)): Remove | |
23659 | TGCware reference. | |
23660 | (Specific, i?86-*-solaris2*): Update version references for | |
23661 | Solaris 11.3 and later. Remove gas 2.26 caveat. | |
23662 | (Specific, *-*-solaris2*): Update version references for | |
23663 | Solaris 11.3 and later. Remove boehm-gc reference. | |
23664 | Document GMP, MPFR caveats on Solaris 11.3. | |
23665 | (Specific, sparc-sun-solaris2*): Update Solaris 9 references. | |
23666 | (Specific, sparc64-*-solaris2*): Likewise. | |
23667 | Document --build requirement. | |
23668 | ||
23669 | 2020-05-06 Jakub Jelinek <jakub@redhat.com> | |
23670 | ||
23671 | PR target/94950 | |
23672 | * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use | |
23673 | TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags. | |
23674 | ||
23675 | PR rtl-optimization/94873 | |
23676 | * combine.c (combine_instructions): Don't optimize using REG_EQUAL | |
23677 | note if SET_SRC (set) has side-effects. | |
23678 | ||
23679 | 2020-05-06 Hongtao Liu <hongtao.liu@intel.com> | |
23680 | Wei Xiao <wei3.xiao@intel.com> | |
23681 | ||
23682 | * common/config/i386/i386-common.c (OPTION_MASK_ISA2_SERIALIZE_SET, | |
23683 | OPTION_MASK_ISA2_SERIALIZE_UNSET): New macros. | |
23684 | (ix86_handle_option): Handle -mserialize. | |
23685 | * config.gcc (serializeintrin.h): New header file. | |
23686 | * config/i386/cpuid.h (bit_SERIALIZE): New bit. | |
23687 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect | |
23688 | -mserialize. | |
23689 | * config/i386/i386-builtin.def: Add new builtin. | |
23690 | * config/i386/i386-c.c (__SERIALIZE__): New macro. | |
23691 | * config/i386/i386-options.c (ix86_target_opts_isa2_opts): | |
23692 | Add -mserialize. | |
23693 | * (ix86_valid_target_attribute_inner_p): Add target attribute | |
23694 | * for serialize. | |
23695 | * config/i386/i386.h (TARGET_SERIALIZE, TARGET_SERIALIZE_P): | |
23696 | New macros. | |
23697 | * config/i386/i386.md (UNSPECV_SERIALIZE): New unspec. | |
23698 | (serialize): New define_insn. | |
23699 | * config/i386/i386.opt (mserialize): New option | |
23700 | * config/i386/immintrin.h: Include serailizeintrin.h. | |
23701 | * config/i386/serializeintrin.h: New header file. | |
23702 | * doc/invoke.texi: Add documents for -mserialize. | |
23703 | ||
23704 | 2020-05-06 Richard Biener <rguenther@suse.de> | |
23705 | ||
23706 | * tree-cfg.c (verify_gimple_assign_unary): Adjust integer | |
23707 | to/from pointer conversion checking. | |
23708 | ||
23709 | 2020-05-05 Michael Meissner <meissner@linux.ibm.com> | |
23710 | ||
23711 | * config/rs6000/rs6000-builtin.def: Delete changes meant for a | |
23712 | private branch. | |
23713 | * config/rs6000/rs6000-c.c: Likewise. | |
23714 | * config/rs6000/rs6000-call.c: Likewise. | |
23715 | * config/rs6000/rs6000.c: Likewise. | |
23716 | ||
23717 | 2020-05-05 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
23718 | ||
23719 | * config/rtems.h (RTEMS_STARTFILE_SPEC): Define if undefined. | |
23720 | (RTEMS_ENDFILE_SPEC): Likewise. | |
23721 | (STARTFILE_SPEC): Update comment. Add RTEMS_STARTFILE_SPEC. | |
23722 | (ENDFILE_SPEC): Add RTEMS_ENDFILE_SPEC. | |
23723 | (LIB_SPECS): Support -nodefaultlibs option. | |
23724 | * config/or1k/rtems.h (RTEMS_STARTFILE_SPEC): Define. | |
23725 | (RTEMS_ENDFILE_SPEC): Likewise. | |
23726 | * config/rs6000/rtems.h (RTEMS_STARTFILE_SPEC): Likewise. | |
23727 | (RTEMS_ENDFILE_SPEC): Likewise. | |
23728 | * config/v850/rtems.h (RTEMS_STARTFILE_SPEC): Likewise. | |
23729 | (RTEMS_ENDFILE_SPEC): Likewise. | |
23730 | ||
23731 | 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu> | |
23732 | ||
23733 | * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Remove. | |
23734 | (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Remove. | |
23735 | ||
23736 | 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu> | |
23737 | ||
23738 | * config/pru/pru.h: Mark R3.w0 as caller saved. | |
23739 | ||
23740 | 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu> | |
23741 | ||
23742 | * config/pru/pru.c (pru_emit_doloop): Use new gen_doloop_end_internal | |
23743 | and gen_doloop_begin_internal. | |
23744 | (pru_reorg_loop): Use gen_pruloop with mode. | |
23745 | * config/pru/pru.md: Use new @insn syntax. | |
23746 | ||
23747 | 2020-05-05 Dimitar Dimitrov <dimitar@dinux.eu> | |
23748 | ||
23749 | * config/pru/pru.c (pru_print_operand): Fix fall through comment. | |
23750 | ||
23751 | 2020-05-05 Uroš Bizjak <ubizjak@gmail.com> | |
23752 | ||
23753 | * config/i386/i386.md (fixuns_trunc<mode>si2): Use | |
23754 | "clobber (scratch:M)" instad of "clobber (match_scratch:M N)". | |
23755 | (addqi3_cconly_overflow): Ditto. | |
23756 | (umulv<mode>4): Ditto. | |
23757 | (<s>mul<mode>3_highpart): Ditto. | |
23758 | (tls_global_dynamic_32): Ditto. | |
23759 | (tls_local_dynamic_base_32): Ditto. | |
23760 | (atanxf2): Ditto. | |
23761 | (asinxf2): Ditto. | |
23762 | (acosxf2): Ditto. | |
23763 | (logxf2): Ditto. | |
23764 | (log10xf2): Ditto. | |
23765 | (log2xf2): Ditto. | |
23766 | (*adddi_4): Remove "m" constraint from scratch operand. | |
23767 | (*add<mode>_4): Ditto. | |
23768 | ||
23769 | 2020-05-05 Jakub Jelinek <jakub@redhat.com> | |
23770 | ||
23771 | PR rtl-optimization/94516 | |
23772 | * postreload.c (reload_cse_simplify): When replacing sp = sp + const | |
23773 | with sp = reg, add REG_EQUAL note with sp + const. | |
23774 | * combine-stack-adj.c (try_apply_stack_adjustment): Change return | |
23775 | type from int to bool. Add LIVE and OTHER_INSN arguments. Undo | |
23776 | postreload sp = sp + const to sp = reg optimization if needed and | |
23777 | possible. | |
23778 | (combine_stack_adjustments_for_block): Add LIVE argument. Handle | |
23779 | reg = sp insn with sp + const REG_EQUAL note. Adjust | |
23780 | try_apply_stack_adjustment caller, call | |
23781 | df_simulate_initialize_forwards and df_simulate_one_insn_forwards. | |
23782 | (combine_stack_adjustments): Allocate and free LIVE bitmap, | |
23783 | adjust combine_stack_adjustments_for_block caller. | |
23784 | ||
23785 | 2020-05-05 Martin Liska <mliska@suse.cz> | |
23786 | ||
23787 | PR gcov-profile/93623 | |
23788 | * tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect | |
23789 | reality. | |
23790 | ||
23791 | 2020-05-05 Martin Liska <mliska@suse.cz> | |
23792 | ||
23793 | * opt-functions.awk (opt_args_non_empty): New function. | |
23794 | * opt-read.awk: Use the function for various option arguments. | |
23795 | ||
23796 | 2020-05-05 Martin Liska <mliska@suse.cz> | |
23797 | ||
23798 | PR driver/94330 | |
23799 | * lto-wrapper.c (run_gcc): When using -flto=jobserver, | |
23800 | report warning when the jobserver is not detected. | |
23801 | ||
23802 | 2020-05-05 Martin Liska <mliska@suse.cz> | |
23803 | ||
23804 | PR gcov-profile/94636 | |
23805 | * gcov.c (main): Print total lines summary at the end. | |
23806 | (generate_results): Expect file_name always being non-null. | |
23807 | Print newline after intermediate file is printed in order to align with | |
23808 | what we do for normal files. | |
23809 | ||
23810 | 2020-05-05 Martin Liska <mliska@suse.cz> | |
23811 | ||
23812 | * dumpfile.c (dump_switch_p): Change return type | |
23813 | and print option suggestion. | |
23814 | * dumpfile.h: Change return type. | |
23815 | * opts-global.c (handle_common_deferred_options): | |
23816 | Move error into dump_switch_p function. | |
23817 | ||
23818 | 2020-05-05 Martin Liska <mliska@suse.cz> | |
23819 | ||
23820 | PR c/92472 | |
23821 | * alloc-pool.h: Use const for some arguments. | |
23822 | * bitmap.h: Likewise. | |
23823 | * mem-stats.h: Likewise. | |
23824 | * sese.h (get_entry_bb): Likewise. | |
23825 | (get_exit_bb): Likewise. | |
23826 | ||
23827 | 2020-05-05 Richard Biener <rguenther@suse.de> | |
23828 | ||
23829 | * tree-vect-slp.c (struct vdhs_data): New. | |
23830 | (vect_detect_hybrid_slp): New walker. | |
23831 | (vect_detect_hybrid_slp): Rewrite. | |
23832 | ||
23833 | 2020-05-05 Richard Biener <rguenther@suse.de> | |
23834 | ||
23835 | PR ipa/94947 | |
23836 | * tree-ssa-structalias.c (ipa_pta_execute): Use | |
23837 | varpool_node::externally_visible_p (). | |
23838 | (refered_from_nonlocal_var): Likewise. | |
23839 | ||
23840 | 2020-05-05 Eric Botcazou <ebotcazou@adacore.com> | |
23841 | ||
23842 | * gcc.c (LTO_PLUGIN_SPEC): Define if not already. | |
23843 | (LINK_PLUGIN_SPEC): Execute LTO_PLUGIN_SPEC. | |
23844 | * config/vxworks.h (LTO_PLUGIN_SPEC): Define. | |
23845 | ||
23846 | 2020-05-05 Eric Botcazou <ebotcazou@adacore.com> | |
23847 | ||
23848 | * gimplify.c (gimplify_init_constructor): Do not put the constructor | |
23849 | into static memory if it is not complete. | |
23850 | ||
23851 | 2020-05-05 Richard Biener <rguenther@suse.de> | |
23852 | ||
23853 | PR tree-optimization/94949 | |
23854 | * tree-ssa-loop-im.c (execute_sm): Check whether we use | |
23855 | the multithreaded model or always compute the stored value | |
23856 | before eliding a load. | |
23857 | ||
23858 | 2020-05-05 Alex Coplan <alex.coplan@arm.com> | |
23859 | ||
23860 | * config/aarch64/aarch64.md (*one_cmpl_zero_extend): New. | |
23861 | ||
23862 | 2020-05-05 Jakub Jelinek <jakub@redhat.com> | |
23863 | ||
23864 | PR tree-optimization/94800 | |
23865 | * match.pd (X + (X << C) to X * (1 + (1 << C)), | |
23866 | (X << C1) + (X << C2) to X * ((1 << C1) + (1 << C2))): New | |
23867 | canonicalizations. | |
23868 | ||
23869 | PR target/94942 | |
23870 | * config/i386/mmx.md (*vec_dupv4hi): Use xYw constraints instead of Yv. | |
23871 | ||
23872 | PR tree-optimization/94914 | |
23873 | * match.pd ((((type)A * B) >> prec) != 0 to .MUL_OVERFLOW(A, B) != 0): | |
23874 | New simplification. | |
23875 | ||
23876 | 2020-05-05 Uroš Bizjak <ubizjak@gmail.com> | |
23877 | ||
23878 | * config/i386/i386.md (*testqi_ext_3): Use | |
23879 | int_nonimmediate_operand instead of manual mode checks. | |
23880 | (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>): | |
23881 | Use int_nonimmediate_operand predicate. Rewrite | |
23882 | define_insn_and_split pattern to a combine pass splitter. | |
23883 | ||
23884 | 2020-05-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
23885 | ||
23886 | * configure.ac <i[34567]86-*-*>: Add --32 to tls_as_opt on Solaris. | |
23887 | * configure: Regenerate. | |
23888 | ||
23889 | 2020-05-05 Jakub Jelinek <jakub@redhat.com> | |
23890 | ||
23891 | PR target/94460 | |
23892 | * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3, | |
23893 | ssse3_ph<plusminus_mnemonic>wv8hi3, ssse3_ph<plusminus_mnemonic>wv4hi3, | |
23894 | avx2_ph<plusminus_mnemonic>dv8si3, ssse3_ph<plusminus_mnemonic>dv4si3, | |
23895 | ssse3_ph<plusminus_mnemonic>dv2si3): Simplify RTL patterns. | |
23896 | ||
23897 | 2020-05-04 Clement Chigot <clement.chigot@atos.net> | |
23898 | David Edelsohn <dje.gcc@gmail.com> | |
23899 | ||
23900 | * config/rs6000/rs6000-call.c (rs6000_init_builtins): Override explicit | |
23901 | for fmodl, frexpl, ldexpl and modfl builtins. | |
23902 | ||
23903 | 2020-05-04 Richard Sandiford <richard.sandiford@arm.com> | |
23904 | ||
23905 | PR middle-end/94941 | |
23906 | * internal-fn.c (expand_load_lanes_optab_fn): Emit a move if the | |
23907 | chosen lhs is different from the gcall lhs. | |
23908 | (expand_mask_load_optab_fn): Likewise. | |
23909 | (expand_gather_load_optab_fn): Likewise. | |
23910 | ||
23911 | 2020-05-04 Uroš Bizjak <ubizjak@gmail.com> | |
23912 | ||
23913 | PR target/94795 | |
23914 | * config/i386/i386.md (*neg<mode>_ccc): New insn pattern. | |
23915 | (EQ compare->LTU compare splitter): New splitter. | |
23916 | (NE compare->NEG splitter): Ditto. | |
23917 | ||
23918 | 2020-05-04 Marek Polacek <polacek@redhat.com> | |
23919 | ||
23920 | Revert: | |
23921 | 2020-04-30 Marek Polacek <polacek@redhat.com> | |
23922 | ||
23923 | PR c++/94775 | |
23924 | * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match. | |
23925 | (check_aligned_type): Check if TYPE_USER_ALIGN match. | |
23926 | ||
23927 | 2020-05-04 Richard Biener <rguenther@suse.de> | |
23928 | ||
23929 | PR tree-optimization/93891 | |
23930 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Fall back to | |
23931 | the original reference tree for assessing access alignment. | |
23932 | ||
23933 | 2020-05-04 Richard Biener <rguenther@suse.de> | |
23934 | ||
23935 | PR tree-optimization/39612 | |
23936 | * tree-ssa-loop-im.c (im_mem_ref::loaded): New member. | |
23937 | (set_ref_loaded_in_loop): New. | |
23938 | (mark_ref_loaded): Likewise. | |
23939 | (gather_mem_refs_stmt): Call mark_ref_loaded for loads. | |
23940 | (execute_sm): Avoid issueing a load when it was not there. | |
23941 | (execute_sm_if_changed): Avoid issueing warnings for the | |
23942 | conditional store. | |
23943 | ||
23944 | 2020-05-04 Martin Jambor <mjambor@suse.cz> | |
23945 | ||
23946 | PR ipa/93385 | |
23947 | * tree-inline.c (tree_function_versioning): Leave any type conversion | |
23948 | of replacements to setup_one_parameter and its friend | |
23949 | force_value_to_type. | |
23950 | ||
23951 | 2020-05-04 Uroš Bizjak <ubizjak@gmail.com> | |
23952 | ||
23953 | PR target/94650 | |
23954 | * config/i386/predicates.md (shr_comparison_operator): New predicate. | |
23955 | * config/i386/i386.md (compare->shr splitter): New splitters. | |
23956 | ||
23957 | 2020-05-04 Jakub Jelinek <jakub@redhat.com> | |
23958 | ||
23959 | PR tree-optimization/94718 | |
23960 | * match.pd ((X < 0) != (Y < 0) into (X ^ Y) < 0): New simplification. | |
23961 | ||
23962 | PR tree-optimization/94718 | |
23963 | * match.pd (bitop (convert @0) (convert? @1)): For GIMPLE, if we can, | |
23964 | replace two nop conversions on bit_{and,ior,xor} argument | |
23965 | and result with just one conversion on the result or another argument. | |
23966 | ||
23967 | PR tree-optimization/94718 | |
23968 | * fold-const.c (fold_binary_loc): Move (X & C) eqne (Y & C) | |
23969 | -> (X ^ Y) & C eqne 0 optimization to ... | |
23970 | * match.pd ((X & C) op (Y & C) into (X ^ Y) & C op 0): ... here. | |
23971 | ||
23972 | * opts.c (get_option_html_page): Instead of hardcoding a list of | |
23973 | options common between C/C++ and Fortran only use gfortran/ | |
23974 | documentation for warnings that have CL_Fortran set but not | |
23975 | CL_C or CL_CXX. | |
23976 | ||
23977 | 2020-05-03 Uroš Bizjak <ubizjak@gmail.com> | |
23978 | ||
23979 | * config/i386/i386-expand.c (ix86_expand_int_movcc): | |
23980 | Use plus_constant instead of gen_rtx_PLUS with GEN_INT. | |
23981 | (emit_memmov): Ditto. | |
23982 | (emit_memset): Ditto. | |
23983 | (ix86_expand_strlensi_unroll_1): Ditto. | |
23984 | (release_scratch_register_on_entry): Ditto. | |
23985 | (gen_frame_set): Ditto. | |
23986 | (ix86_emit_restore_reg_using_pop): Ditto. | |
23987 | (ix86_emit_outlined_ms2sysv_restore): Ditto. | |
23988 | (ix86_expand_epilogue): Ditto. | |
23989 | (ix86_expand_split_stack_prologue): Ditto. | |
23990 | * config/i386/i386.md (push immediate splitter): Ditto. | |
23991 | (strmov): Ditto. | |
23992 | (strset): Ditto. | |
23993 | ||
23994 | 2020-05-02 Iain Sandoe <iain@sandoe.co.uk> | |
23995 | ||
23996 | PR translation/93861 | |
23997 | * config/darwin-driver.c (darwin_driver_init): Adjust spelling in | |
23998 | a warning. | |
23999 | ||
24000 | 2020-05-02 Jakub Jelinek <jakub@redhat.com> | |
24001 | ||
24002 | * config/tilegx/tilegx.md | |
24003 | (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n> | |
24004 | rather than just <n>. | |
24005 | ||
24006 | 2020-05-01 H.J. Lu <hongjiu.lu@intel.com> | |
24007 | ||
24008 | PR target/93492 | |
24009 | * cfgexpand.c (pass_expand::execute): Set crtl->patch_area_size | |
24010 | and crtl->patch_area_entry. | |
24011 | * emit-rtl.h (rtl_data): Add patch_area_size and patch_area_entry. | |
24012 | * opts.c (common_handle_option): Limit | |
24013 | function_entry_patch_area_size and function_entry_patch_area_start | |
24014 | to USHRT_MAX. Fix a typo in error message. | |
24015 | * varasm.c (assemble_start_function): Use crtl->patch_area_size | |
24016 | and crtl->patch_area_entry. | |
24017 | * doc/invoke.texi: Document the maximum value for | |
24018 | -fpatchable-function-entry. | |
24019 | ||
24020 | 2020-05-01 Iain Sandoe <iain@sandoe.co.uk> | |
24021 | ||
24022 | * config/i386/darwin.h: Repair SUBTARGET_INIT_BUILTINS. | |
24023 | Override SUBTARGET_SHADOW_OFFSET macro. | |
24024 | ||
24025 | 2020-05-01 Andreas Tobler <andreast@gcc.gnu.org> | |
24026 | ||
24027 | * config/i386/i386.h: Define a new macro: SUBTARGET_SHADOW_OFFSET. | |
24028 | * config/i386/i386.c (ix86_asan_shadow_offset): Use this macro. | |
24029 | * config/i386/darwin.h: Override the SUBTARGET_SHADOW_OFFSET macro. | |
24030 | * config/i386/freebsd.h: Likewise. | |
24031 | * config/freebsd.h (LIBASAN_EARLY_SPEC): Define. | |
24032 | LIBTSAN_EARLY_SPEC): Likewise. (LIBLSAN_EARLY_SPEC): Likewise. | |
24033 | ||
24034 | 2020-04-30 Alexandre Oliva <oliva@adacore.com> | |
24035 | ||
24036 | * doc/sourcebuild.texi (Effective-Target Keywords): Document | |
24037 | the newly-introduced fileio effective target. | |
24038 | ||
24039 | 2020-04-30 Richard Sandiford <richard.sandiford@arm.com> | |
24040 | ||
24041 | PR rtl-optimization/94740 | |
24042 | * cse.c (cse_process_notes_1): Replace with... | |
24043 | (cse_process_note_1): ...this new function, acting as a | |
24044 | simplify_replace_fn_rtx callback to process_note. Handle only | |
24045 | REGs and MEMs directly. Validate the MEM if cse_process_note | |
24046 | changes its address. | |
24047 | (cse_process_notes): Replace with... | |
24048 | (cse_process_note): ...this new function. | |
24049 | (cse_extended_basic_block): Update accordingly, iterating over | |
24050 | the register notes and passing individual notes to cse_process_note. | |
24051 | ||
24052 | 2020-04-30 Carl Love <cel@us.ibm.com> | |
24053 | ||
24054 | * config/rs6000/emmintrin.h (_mm_movemask_epi8): Fix comment. | |
24055 | ||
24056 | 2020-04-30 Martin Jambor <mjambor@suse.cz> | |
24057 | ||
24058 | PR ipa/94856 | |
24059 | * cgraph.c (clone_of_p): Also consider thunks whih had their bodies | |
24060 | saved by the inliner and thunks which had their call inlined. | |
24061 | * ipa-inline-transform.c (save_inline_function_body): Fill in | |
24062 | former_clone_of of new body holders. | |
24063 | ||
24064 | 2020-04-30 Jakub Jelinek <jakub@redhat.com> | |
24065 | ||
24066 | * BASE-VER: Set to 11.0.0. | |
24067 | ||
24068 | 2020-04-30 Jonathan Wakely <jwakely@redhat.com> | |
24069 | ||
24070 | * pretty-print.c (pp_take_prefix): Fix spelling in comment. | |
24071 | ||
24072 | 2020-04-30 Marek Polacek <polacek@redhat.com> | |
24073 | ||
24074 | PR c++/94775 | |
24075 | * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match. | |
24076 | (check_aligned_type): Check if TYPE_USER_ALIGN match. | |
24077 | ||
24078 | 2020-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24079 | ||
24080 | * config/aarch64/aarch64.h (TARGET_OUTLINE_ATOMICS): Define. | |
24081 | * config/aarch64/aarch64.opt (moutline-atomics): Change to Int variable. | |
24082 | * doc/invoke.texi (moutline-atomics): Document as on by default. | |
24083 | ||
24084 | 2020-04-30 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
24085 | ||
24086 | PR target/94748 | |
24087 | * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Remove | |
24088 | the check for NOTE_INSN_DELETED_LABEL. | |
24089 | ||
24090 | 2020-04-30 Jakub Jelinek <jakub@redhat.com> | |
24091 | ||
24092 | * configure.ac (--with-documentation-root-url, | |
24093 | --with-changes-root-url): Diagnose URL not ending with /, | |
24094 | use AC_DEFINE_UNQUOTED instead of AC_SUBST. | |
24095 | * opts.h (get_changes_url): Remove. | |
24096 | * opts.c (get_changes_url): Remove. | |
24097 | * Makefile.in (CFLAGS-opts.o): Don't add -DDOCUMENTATION_ROOT_URL | |
24098 | or -DCHANGES_ROOT_URL. | |
24099 | * doc/install.texi (--with-documentation-root-url, | |
24100 | --with-changes-root-url): Document. | |
24101 | * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Don't call | |
24102 | get_changes_url and free, change url variable type to const char * and | |
24103 | set it to CHANGES_ROOT_URL "gcc-10/changes.html#empty_base". | |
24104 | * config/s390/s390.c (s390_function_arg_vector, | |
24105 | s390_function_arg_float): Likewise. | |
24106 | * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate): | |
24107 | Likewise. | |
24108 | * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate): | |
24109 | Likewise. | |
24110 | * config.in: Regenerate. | |
24111 | * configure: Regenerate. | |
24112 | ||
24113 | 2020-04-30 Christophe Lyon <christophe.lyon@linaro.org> | |
24114 | ||
24115 | PR target/57002 | |
24116 | * config/arm/arm.c (isr_attribute_args): Remove duplicate entries. | |
24117 | ||
24118 | 2020-04-30 Andreas Krebbel <krebbel@linux.ibm.com> | |
24119 | ||
24120 | * config/s390/constraints.md ("j>f", "jb4"): New constraints. | |
24121 | * config/s390/vecintrin.h (vec_load_len_r, vec_store_len_r): Fix | |
24122 | macro definitions. | |
24123 | * config/s390/vx-builtins.md ("vlrlrv16qi", "vstrlrv16qi"): Add a | |
24124 | separate expander. | |
24125 | ("*vlrlrv16qi", "*vstrlrv16qi"): Add alternative for vl/vst. | |
24126 | Change constraint for vlrl/vstrl to jb4. | |
24127 | ||
24128 | 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
24129 | ||
24130 | * var-tracking.c (vt_initialize): Move variables pre and post | |
24131 | into inner block and initialize both in order to fix warning | |
24132 | about uninitialized use. Remove unnecessary checks for | |
24133 | frame_pointer_needed. | |
24134 | ||
24135 | 2020-04-30 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
24136 | ||
24137 | * toplev.c (output_stack_usage_1): Ensure that first | |
24138 | argument to fprintf is not null. | |
24139 | ||
24140 | 2020-04-29 Jakub Jelinek <jakub@redhat.com> | |
24141 | ||
24142 | * configure.ac (-with-changes-root-url): New configure option, | |
24143 | defaulting to https://gcc.gnu.org/. | |
24144 | * Makefile.in (CFLAGS-opts.o): Define CHANGES_ROOT_URL for | |
24145 | opts.c. | |
24146 | * pretty-print.c (get_end_url_string): New function. | |
24147 | (pp_format): Handle %{ and %} for URLs. | |
24148 | (pp_begin_url): Use pp_string instead of pp_printf. | |
24149 | (pp_end_url): Use get_end_url_string. | |
24150 | * opts.h (get_changes_url): Declare. | |
24151 | * opts.c (get_changes_url): New function. | |
24152 | * config/rs6000/rs6000-call.c: Include opts.h. | |
24153 | (rs6000_discover_homogeneous_aggregate): Use %{in GCC 10.1%} instead | |
24154 | of just in GCC 10.1 in diagnostics and add URL. | |
24155 | * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Likewise. | |
24156 | * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate): | |
24157 | Likewise. | |
24158 | * config/s390/s390.c (s390_function_arg_vector, | |
24159 | s390_function_arg_float): Likewise. | |
24160 | * configure: Regenerated. | |
24161 | ||
24162 | PR target/94704 | |
24163 | * config/s390/s390.c (s390_function_arg_vector, | |
24164 | s390_function_arg_float): Use DECL_FIELD_ABI_IGNORED instead of | |
24165 | cxx17_empty_base_field_p. In -Wpsabi diagnostics use the type | |
24166 | passed to the function rather than the type of the single element. | |
24167 | Rename cxx17_empty_base_seen variable to empty_base_seen, change | |
24168 | type to int, and adjust diagnostics depending on if the field | |
24169 | has [[no_unique_attribute]] or not. | |
24170 | ||
24171 | PR target/94832 | |
24172 | * config/i386/avx512bwintrin.h (_mm512_alignr_epi8, | |
24173 | _mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands | |
24174 | used in casts into parens. | |
24175 | * config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph, | |
24176 | _mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph, | |
24177 | _mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph, | |
24178 | _mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask, | |
24179 | _mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask, | |
24180 | _mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask, | |
24181 | _mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise. | |
24182 | * config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8, | |
24183 | _mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8, | |
24184 | _mm256_mask_cmp_epu8_mask): Likewise. | |
24185 | * config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph, | |
24186 | _mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise. | |
24187 | * config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise. | |
24188 | * config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise. | |
24189 | ||
24190 | PR target/94832 | |
24191 | * config/i386/avx2intrin.h (_mm_mask_i32gather_pd, | |
24192 | _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd, | |
24193 | _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps, | |
24194 | _mm256_mask_i32gather_ps, _mm_mask_i64gather_ps, | |
24195 | _mm256_mask_i64gather_ps, _mm_i32gather_epi64, | |
24196 | _mm_mask_i32gather_epi64, _mm256_i32gather_epi64, | |
24197 | _mm256_mask_i32gather_epi64, _mm_i64gather_epi64, | |
24198 | _mm_mask_i64gather_epi64, _mm256_i64gather_epi64, | |
24199 | _mm256_mask_i64gather_epi64, _mm_i32gather_epi32, | |
24200 | _mm_mask_i32gather_epi32, _mm256_i32gather_epi32, | |
24201 | _mm256_mask_i32gather_epi32, _mm_i64gather_epi32, | |
24202 | _mm_mask_i64gather_epi32, _mm256_i64gather_epi32, | |
24203 | _mm256_mask_i64gather_epi32): Surround macro parameter uses with | |
24204 | parens. | |
24205 | (_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd, | |
24206 | _mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps, | |
24207 | _mm_i64gather_ps, _mm256_i64gather_ps): Likewise. Don't use | |
24208 | as mask vector containing -1.0 or -1.0f elts, but instead vector | |
24209 | with all bits set using _mm*_cmpeq_p? with zero operands. | |
24210 | * config/i386/avx512fintrin.h (_mm512_i32gather_ps, | |
24211 | _mm512_mask_i32gather_ps, _mm512_i32gather_pd, | |
24212 | _mm512_mask_i32gather_pd, _mm512_i64gather_ps, | |
24213 | _mm512_mask_i64gather_ps, _mm512_i64gather_pd, | |
24214 | _mm512_mask_i64gather_pd, _mm512_i32gather_epi32, | |
24215 | _mm512_mask_i32gather_epi32, _mm512_i32gather_epi64, | |
24216 | _mm512_mask_i32gather_epi64, _mm512_i64gather_epi32, | |
24217 | _mm512_mask_i64gather_epi32, _mm512_i64gather_epi64, | |
24218 | _mm512_mask_i64gather_epi64, _mm512_i32scatter_ps, | |
24219 | _mm512_mask_i32scatter_ps, _mm512_i32scatter_pd, | |
24220 | _mm512_mask_i32scatter_pd, _mm512_i64scatter_ps, | |
24221 | _mm512_mask_i64scatter_ps, _mm512_i64scatter_pd, | |
24222 | _mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32, | |
24223 | _mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64, | |
24224 | _mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32, | |
24225 | _mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64, | |
24226 | _mm512_mask_i64scatter_epi64): Surround macro parameter uses with | |
24227 | parens. | |
24228 | * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd, | |
24229 | _mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd, | |
24230 | _mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd, | |
24231 | _mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd, | |
24232 | _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd, | |
24233 | _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd, | |
24234 | _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd, | |
24235 | _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd, | |
24236 | _mm512_mask_prefetch_i64scatter_ps): Likewise. | |
24237 | * config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps, | |
24238 | _mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd, | |
24239 | _mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps, | |
24240 | _mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd, | |
24241 | _mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32, | |
24242 | _mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64, | |
24243 | _mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32, | |
24244 | _mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64, | |
24245 | _mm_mmask_i64gather_epi64, _mm256_i32scatter_ps, | |
24246 | _mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps, | |
24247 | _mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd, | |
24248 | _mm_mask_i32scatter_pd, _mm256_i64scatter_ps, | |
24249 | _mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps, | |
24250 | _mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd, | |
24251 | _mm_mask_i64scatter_pd, _mm256_i32scatter_epi32, | |
24252 | _mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32, | |
24253 | _mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64, | |
24254 | _mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64, | |
24255 | _mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32, | |
24256 | _mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32, | |
24257 | _mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64, | |
24258 | _mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64, | |
24259 | _mm_mask_i64scatter_epi64): Likewise. | |
24260 | ||
24261 | 2020-04-29 Jeff Law <law@redhat.com> | |
24262 | ||
24263 | * config/h8300/h8300.md (H8/SX div patterns): All H8/SX specific | |
24264 | division instructions are 4 bytes long. | |
24265 | ||
24266 | 2020-04-29 Jakub Jelinek <jakub@redhat.com> | |
24267 | ||
24268 | PR target/94826 | |
24269 | * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use | |
24270 | TARGET_EXPR instead of MODIFY_EXPR for first assignment to | |
24271 | fenv_var, fenv_clear and old_fenv variables. For fenv_addr | |
24272 | take address of TARGET_EXPR of fenv_var with void_node initializer. | |
24273 | Formatting fixes. | |
24274 | ||
24275 | 2020-04-29 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | |
24276 | ||
24277 | PR tree-optimization/94774 | |
24278 | * gimple-ssa-sprintf.c (try_substitute_return_value): Initialize | |
24279 | variable retval. | |
24280 | ||
24281 | 2020-04-29 Richard Sandiford <richard.sandiford@arm.com> | |
24282 | ||
24283 | * calls.h (cxx17_empty_base_field_p): Turn into a function declaration. | |
24284 | * calls.c (cxx17_empty_base_field_p): New function. Check | |
24285 | DECL_ARTIFICIAL and RECORD_OR_UNION_TYPE_P in addition to the | |
24286 | previous checks. | |
24287 | ||
24288 | 2020-04-29 H.J. Lu <hongjiu.lu@intel.com> | |
24289 | ||
24290 | PR target/93654 | |
24291 | * config/i386/i386-options.c (ix86_set_indirect_branch_type): | |
24292 | Allow -fcf-protection with -mindirect-branch=thunk-extern and | |
24293 | -mfunction-return=thunk-extern. | |
24294 | * doc/invoke.texi: Update notes for -fcf-protection=branch with | |
24295 | -mindirect-branch=thunk-extern and -mindirect-return=thunk-extern. | |
24296 | ||
24297 | 2020-04-29 Richard Sandiford <richard.sandiford@arm.com> | |
24298 | ||
24299 | * doc/sourcebuild.texi: Add missing arm_arch_v8a_hard_ok anchor. | |
24300 | ||
24301 | 2020-04-29 Richard Sandiford <richard.sandiford@arm.com> | |
24302 | ||
24303 | * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use | |
24304 | TARGET_EXPR instead of MODIFY_EXPR for the first assignments to | |
24305 | fenv_var and new_fenv_var. | |
24306 | ||
24307 | 2020-04-29 Richard Sandiford <richard.sandiford@arm.com> | |
24308 | ||
24309 | * doc/sourcebuild.texi (arm_arch_v8a_hard_ok): Document new | |
24310 | effective-target keyword. | |
24311 | (arm_arch_v8a_hard_multilib): Likewise. | |
24312 | (arm_arch_v8a_hard): Document new dg-add-options keyword. | |
24313 | * config/arm/arm.c (arm_return_in_memory): Note that the APCS | |
24314 | code is deprecated and has not been updated to handle | |
24315 | DECL_FIELD_ABI_IGNORED. | |
24316 | (WARN_PSABI_EMPTY_CXX17_BASE): New constant. | |
24317 | (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise. | |
24318 | (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter | |
24319 | avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields | |
24320 | whose DECL_FIELD_ABI_IGNORED bit is set when determining whether | |
24321 | something actually is a HFA or HVA. Record whether we see a | |
24322 | [[no_unique_address]] field that previous GCCs would not have | |
24323 | ignored in this way. | |
24324 | (aapcs_vfp_is_call_or_return_candidate): Update the calls to | |
24325 | aapcs_vfp_sub_candidate and report a -Wpsabi warning for the | |
24326 | [[no_unique_address]] case. Use TYPE_MAIN_VARIANT in the | |
24327 | diagnostic messages. | |
24328 | (arm_needs_doubleword_align): Add a comment explaining why we | |
24329 | consider even zero-sized fields. | |
24330 | ||
24331 | 2020-04-29 Richard Biener <rguenther@suse.de> | |
24332 | Li Zekun <lizekun1@huawei.com> | |
24333 | ||
24334 | PR lto/94822 | |
24335 | * tree.c (component_ref_size): Guard against error_mark_node | |
24336 | DECL_INITIAL as it happens with LTO. | |
24337 | ||
24338 | 2020-04-29 Richard Sandiford <richard.sandiford@arm.com> | |
24339 | ||
24340 | * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add a | |
24341 | comment explaining why we consider even zero-sized fields. | |
24342 | (WARN_PSABI_EMPTY_CXX17_BASE): New constant. | |
24343 | (WARN_PSABI_NO_UNIQUE_ADDRESS): Likewise. | |
24344 | (aapcs_vfp_sub_candidate): Replace the boolean pointer parameter | |
24345 | avoid_cxx17_empty_base with a pointer to a bitmask. Ignore fields | |
24346 | whose DECL_FIELD_ABI_IGNORED bit is set when determining whether | |
24347 | something actually is a HFA or HVA. Record whether we see a | |
24348 | [[no_unique_address]] field that previous GCCs would not have | |
24349 | ignored in this way. | |
24350 | (aarch64_vfp_is_call_or_return_candidate): Add a parameter to say | |
24351 | whether diagnostics should be suppressed. Update the calls to | |
24352 | aapcs_vfp_sub_candidate and report a -Wpsabi warning for the | |
24353 | [[no_unique_address]] case. | |
24354 | (aarch64_return_in_msb): Update call accordingly, never silencing | |
24355 | diagnostics. | |
24356 | (aarch64_function_value): Likewise. | |
24357 | (aarch64_return_in_memory_1): Likewise. | |
24358 | (aarch64_init_cumulative_args): Likewise. | |
24359 | (aarch64_gimplify_va_arg_expr): Likewise. | |
24360 | (aarch64_pass_by_reference_1): Take a CUMULATIVE_ARGS pointer and | |
24361 | use it to decide whether arch64_vfp_is_call_or_return_candidate | |
24362 | should be silent. | |
24363 | (aarch64_pass_by_reference): Update calls accordingly. | |
24364 | (aarch64_vfp_is_call_candidate): Use the CUMULATIVE_ARGS argument | |
24365 | to decide whether arch64_vfp_is_call_or_return_candidate should be | |
24366 | silent. | |
24367 | ||
24368 | 2020-04-29 Haijian Zhang <z.zhanghaijian@huawei.com> | |
24369 | ||
24370 | PR target/94820 | |
24371 | * config/aarch64/aarch64-builtins.c | |
24372 | (aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of | |
24373 | MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and | |
24374 | new_fenv_var. | |
24375 | ||
24376 | 2020-04-29 Thomas Schwinge <thomas@codesourcery.com> | |
24377 | ||
24378 | * configure.ac <$enable_offload_targets>: Do parsing as done | |
24379 | elsewhere. | |
24380 | * configure: Regenerate. | |
24381 | ||
24382 | * configure.ac <$enable_offload_targets>: 'amdgcn' is 'gcn'. | |
24383 | * configure: Regenerate. | |
24384 | ||
24385 | PR target/94279 | |
24386 | * rtlanal.c (set_noop_p): Handle non-constant selectors. | |
24387 | ||
24388 | PR target/94282 | |
24389 | * common/config/gcn/gcn-common.c (gcn_except_unwind_info): New | |
24390 | function. | |
24391 | (TARGET_EXCEPT_UNWIND_INFO): Define. | |
24392 | ||
24393 | 2020-04-29 Jakub Jelinek <jakub@redhat.com> | |
24394 | ||
24395 | PR target/94248 | |
24396 | * config/gcn/gcn.md (*mov<mode>_insn): Use | |
24397 | 'reg_overlap_mentioned_p' to check for overlap. | |
24398 | ||
24399 | PR target/94706 | |
24400 | * config/ia64/ia64.c (hfa_element_mode): Use DECL_FIELD_ABI_IGNORED | |
24401 | instead of cxx17_empty_base_field_p. | |
24402 | ||
24403 | PR target/94707 | |
24404 | * tree-core.h (tree_decl_common): Note decl_flag_0 used for | |
24405 | DECL_FIELD_ABI_IGNORED. | |
24406 | * tree.h (DECL_FIELD_ABI_IGNORED): Define. | |
24407 | * calls.h (cxx17_empty_base_field_p): Change into a temporary | |
24408 | macro, check DECL_FIELD_ABI_IGNORED flag with no "no_unique_address" | |
24409 | attribute. | |
24410 | * calls.c (cxx17_empty_base_field_p): Remove. | |
24411 | * tree-streamer-out.c (pack_ts_decl_common_value_fields): Handle | |
24412 | DECL_FIELD_ABI_IGNORED. | |
24413 | * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise. | |
24414 | * lto-streamer-out.c (hash_tree): Likewise. | |
24415 | * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Rename | |
24416 | cxx17_empty_base_seen to empty_base_seen, change type to int *, | |
24417 | adjust recursive calls, use DECL_FIELD_ABI_IGNORED instead of | |
24418 | cxx17_empty_base_field_p, if "no_unique_address" attribute is | |
24419 | present, propagate that to the caller too. | |
24420 | (rs6000_discover_homogeneous_aggregate): Adjust | |
24421 | rs6000_aggregate_candidate caller, emit different diagnostics | |
24422 | when c++17 empty base fields are present and when empty | |
24423 | [[no_unique_address]] fields are present. | |
24424 | * config/rs6000/rs6000.c (rs6000_special_round_type_align, | |
24425 | darwin_rs6000_special_round_type_align): Skip DECL_FIELD_ABI_IGNORED | |
24426 | fields. | |
24427 | ||
24428 | 2020-04-29 Richard Biener <rguenther@suse.de> | |
24429 | ||
24430 | * tree-ssa-loop-im.c (ref_always_accessed::operator ()): | |
24431 | Just check whether the stmt stores. | |
24432 | ||
24433 | 2020-04-28 Alexandre Oliva <oliva@adacore.com> | |
24434 | ||
24435 | PR target/94812 | |
24436 | * config/rs6000/rs6000.md (rs6000_mffsl): Copy result to | |
24437 | output operand in emulation. Don't overwrite pseudos. | |
24438 | ||
24439 | 2020-04-28 Jeff Law <law@redhat.com> | |
24440 | ||
24441 | * config/h8300/h8300.md (H8/SX mult patterns): All H8/SX specific | |
24442 | multiply patterns are 4 bytes long. | |
24443 | ||
24444 | 2020-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24445 | ||
24446 | * config/arm/arm-cpus.in (cortex-m55): Remove +nofp option. | |
24447 | * doc/invoke.texi (Arm Options): Remove -mcpu=cortex-m55 from +nofp option. | |
24448 | ||
24449 | 2020-04-28 Matthew Malcomson <matthew.malcomson@arm.com> | |
24450 | Jakub Jelinek <jakub@redhat.com> | |
24451 | ||
24452 | PR target/94711 | |
24453 | * config/arm/arm.c (aapcs_vfp_sub_candidate): Account for C++17 empty | |
24454 | base class artificial fields. | |
24455 | (aapcs_vfp_is_call_or_return_candidate): Warn when PCS ABI | |
24456 | decision is different after this fix. | |
24457 | ||
24458 | 2020-04-28 David Malcolm <dmalcolm@redhat.com> | |
24459 | ||
24460 | PR analyzer/94447 | |
24461 | PR analyzer/94639 | |
24462 | PR analyzer/94732 | |
24463 | PR analyzer/94754 | |
24464 | * doc/invoke.texi (Static Analyzer Options): Remove | |
24465 | -Wanalyzer-use-of-uninitialized-value. | |
24466 | (-Wno-analyzer-use-of-uninitialized-value): Remove item. | |
24467 | ||
24468 | 2020-04-28 Jakub Jelinek <jakub@redhat.com> | |
24469 | ||
24470 | PR tree-optimization/94809 | |
24471 | * tree.c (build_call_expr_internal_loc_array): Call | |
24472 | process_call_operands. | |
24473 | ||
24474 | 2020-04-27 Anton Youdkevitch <anton.youdkevitch@bell-sw.com> | |
24475 | ||
24476 | * config/aarch64/aarch64-cores.def (thunderx3t110): Add the chip name. | |
24477 | * config/aarch64/aarch64-tune.md: Regenerate. | |
24478 | * config/aarch64/aarch64.c (thunderx3t110_addrcost_table): Define. | |
24479 | (thunderx3t110_regmove_cost): Likewise. | |
24480 | (thunderx3t110_vector_cost): Likewise. | |
24481 | (thunderx3t110_prefetch_tune): Likewise. | |
24482 | (thunderx3t110_tunings): Likewise. | |
24483 | * config/aarch64/aarch64-cost-tables.h (thunderx3t110_extra_costs): | |
24484 | Define. | |
24485 | * config/aarch64/thunderx3t110.md: New file. | |
24486 | * config/aarch64/aarch64.md: Include thunderx3t110.md. | |
24487 | * doc/invoke.texi (AArch64 options): Add thunderx3t110. | |
24488 | ||
24489 | 2020-04-28 Jakub Jelinek <jakub@redhat.com> | |
24490 | ||
24491 | PR target/94704 | |
24492 | * config/s390/s390.c (s390_function_arg_vector, | |
24493 | s390_function_arg_float): Emit -Wpsabi diagnostics if the ABI changed. | |
24494 | ||
24495 | 2020-04-28 Richard Sandiford <richard.sandiford@arm.com> | |
24496 | ||
24497 | PR tree-optimization/94727 | |
24498 | * tree-vect-stmts.c (vect_is_simple_cond): If both comparison | |
24499 | operands are invariant booleans, use the mask type associated with the | |
24500 | STMT_VINFO_VECTYPE. Use !slp_node instead of !vectype to exclude SLP. | |
24501 | (vectorizable_condition): Pass vectype unconditionally to | |
24502 | vect_is_simple_cond. | |
24503 | ||
24504 | 2020-04-27 Jakub Jelinek <jakub@redhat.com> | |
24505 | ||
24506 | PR target/94780 | |
24507 | * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use | |
24508 | TARGET_EXPR instead of MODIFY_EXPR for first assignment to | |
24509 | sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var. | |
24510 | ||
24511 | 2020-04-27 David Malcolm <dmalcolm@redhat.com> | |
24512 | ||
24513 | PR 92830 | |
24514 | * configure.ac (DOCUMENTATION_ROOT_URL): Drop trailing "gcc/" from | |
24515 | default value, so that it can by supplied by get_option_html_page. | |
24516 | * configure: Regenerate. | |
24517 | * opts.c: Include "selftest.h". | |
24518 | (get_option_html_page): New function. | |
24519 | (get_option_url): Use it. Reformat to place comments next to the | |
24520 | expressions they refer to. | |
24521 | (selftest::test_get_option_html_page): New. | |
24522 | (selftest::opts_c_tests): New. | |
24523 | * selftest-run-tests.c (selftest::run_tests): Call | |
24524 | selftest::opts_c_tests. | |
24525 | * selftest.h (selftest::opts_c_tests): New decl. | |
24526 | ||
24527 | 2020-04-27 Richard Sandiford <richard.sandiford@arm.com> | |
24528 | ||
24529 | * config/arm/arm-builtins.c (arm_expand_builtin_args): Only apply | |
24530 | UINTVAL to CONST_INTs. | |
24531 | ||
24532 | 2020-04-27 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
24533 | ||
24534 | * config/arm/constraints.md (e): Remove constraint. | |
24535 | (Te): Define constraint. | |
24536 | * config/arm/mve.md (vaddvq_<supf><mode>): Modify constraint in | |
24537 | operand 0 from "e" to "Te". | |
24538 | (vaddvaq_<supf><mode>): Likewise. | |
24539 | (vaddvq_p_<supf><mode>): Likewise. | |
24540 | (vmladavq_<supf><mode>): Likewise. | |
24541 | (vmladavxq_s<mode>): Likewise. | |
24542 | (vmlsdavq_s<mode>): Likewise. | |
24543 | (vmlsdavxq_s<mode>): Likewise. | |
24544 | (vaddvaq_p_<supf><mode>): Likewise. | |
24545 | (vmladavaq_<supf><mode>): Likewise. | |
24546 | (vmladavq_p_<supf><mode>): Likewise. | |
24547 | (vmladavxq_p_s<mode>): Likewise. | |
24548 | (vmlsdavq_p_s<mode>): Likewise. | |
24549 | (vmlsdavxq_p_s<mode>): Likewise. | |
24550 | (vmlsdavaxq_s<mode>): Likewise. | |
24551 | (vmlsdavaq_s<mode>): Likewise. | |
24552 | (vmladavaxq_s<mode>): Likewise. | |
24553 | (vmladavaq_p_<supf><mode>): Likewise. | |
24554 | (vmladavaxq_p_s<mode>): Likewise. | |
24555 | (vmlsdavaq_p_s<mode>): Likewise. | |
24556 | (vmlsdavaxq_p_s<mode>): Likewise. | |
24557 | ||
24558 | 2020-04-27 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
24559 | ||
24560 | * config/arm/arm.c (output_move_neon): Only get the first operand if | |
24561 | addr is PLUS. | |
24562 | ||
24563 | 2020-04-27 Felix Yang <felix.yang@huawei.com> | |
24564 | ||
24565 | PR tree-optimization/94784 | |
24566 | * tree-ssa-forwprop.c (simplify_vector_constructor): Flip the | |
24567 | assert around so that it checks that the two vectors have equal | |
24568 | TYPE_VECTOR_SUBPARTS and that converting the corresponding element | |
24569 | types is a useless_type_conversion_p. | |
24570 | ||
24571 | 2020-04-27 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
24572 | ||
24573 | PR target/94515 | |
24574 | * dwarf2cfi.c (struct GTY): Add ra_mangled. | |
24575 | (cfi_row_equal_p): Check ra_mangled. | |
24576 | (dwarf2out_frame_debug_cfa_window_save): Remove the argument, | |
24577 | this only handles the sparc logic now. | |
24578 | (dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for | |
24579 | the aarch64 specific logic. | |
24580 | (dwarf2out_frame_debug): Update to use the new subroutines. | |
24581 | (change_cfi_row): Check ra_mangled. | |
24582 | ||
24583 | 2020-04-27 Jakub Jelinek <jakub@redhat.com> | |
24584 | ||
24585 | PR target/94704 | |
24586 | * config/s390/s390.c (s390_function_arg_vector, | |
24587 | s390_function_arg_float): Ignore cxx17_empty_base_field_p fields. | |
24588 | ||
24589 | 2020-04-27 Jiufu Guo <guojiufu@cn.ibm.com> | |
24590 | ||
24591 | * common/config/rs6000/rs6000-common.c | |
24592 | (rs6000_option_optimization_table) [OPT_LEVELS_ALL]: Remove turn off | |
24593 | -fweb. | |
24594 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Avoid to | |
24595 | set flag_web. | |
24596 | ||
24597 | 2020-04-27 Martin Liska <mliska@suse.cz> | |
24598 | ||
24599 | PR lto/94659 | |
24600 | * cgraph.h (cgraph_node::can_remove_if_no_direct_calls_and_refs_p): | |
24601 | Do not remove ifunc_resolvers in remove unreachable nodes in LTO. | |
24602 | ||
24603 | 2020-04-27 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
24604 | ||
24605 | PR target/91518 | |
24606 | * config/rs6000/rs6000-logue.c (frame_pointer_needed_indeed): | |
24607 | New variable. | |
24608 | (rs6000_emit_prologue_components): | |
24609 | Check with frame_pointer_needed_indeed. | |
24610 | (rs6000_emit_epilogue_components): Likewise. | |
24611 | (rs6000_emit_prologue): Likewise. | |
24612 | (rs6000_emit_epilogue): Set frame_pointer_needed_indeed. | |
24613 | ||
24614 | 2020-04-25 David Edelsohn <dje.gcc@gmail.com> | |
24615 | ||
24616 | * config/rs6000/rs6000-logue.c (rs6000_stack_info): Don't push a | |
24617 | stack frame when debugging and flag_compare_debug is enabled. | |
24618 | ||
24619 | 2020-04-25 Michael Meissner <meissner@linux.ibm.com> | |
24620 | ||
24621 | * config/rs6000/linux64.h (PCREL_SUPPORTED_BY_OS): Define to | |
24622 | enable PC-relative addressing for -mcpu=future. | |
24623 | * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Move | |
24624 | after OTHER_FUTURE_MASKS. Use OTHER_FUTURE_MASKS. | |
24625 | * config/rs6000/rs6000.c (PCREL_SUPPORTED_BY_OS): If not defined, | |
24626 | suppress PC-relative addressing. | |
24627 | (rs6000_option_override_internal): Split up error messages | |
24628 | checking for -mprefixed and -mpcrel. Enable -mpcrel if the target | |
24629 | system supports it. | |
24630 | ||
24631 | 2020-04-25 Jakub Jelinek <jakub@redhat.com> | |
24632 | Richard Biener <rguenther@suse.de> | |
24633 | ||
24634 | PR tree-optimization/94734 | |
24635 | PR tree-optimization/89430 | |
24636 | * tree-ssa-phiopt.c: Include tree-eh.h. | |
24637 | (cond_store_replacement): Return false if an automatic variable | |
24638 | access could trap. If -fstore-data-races, don't return false | |
24639 | just because an automatic variable is addressable. | |
24640 | ||
24641 | 2020-04-24 Andrew Stubbs <ams@codesourcery.com> | |
24642 | ||
24643 | * config/gcn/gcn-valu.md (add<mode>_zext_dup2_exec): Fix merge | |
24644 | of high-part. | |
24645 | (add<mode>_sext_dup2_exec): Likewise. | |
24646 | ||
24647 | 2020-04-24 Segher Boessenkool <segher@kernel.crashing.org> | |
24648 | ||
24649 | PR target/94710 | |
24650 | * config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little | |
24651 | endian byteshift_val calculation. | |
24652 | ||
24653 | 2020-04-24 Andrew Stubbs <ams@codesourcery.com> | |
24654 | ||
24655 | * config/gcn/gcn.md (*mov<mode>_insn): Only split post-reload. | |
24656 | ||
24657 | 2020-04-24 Richard Sandiford <richard.sandiford@arm.com> | |
24658 | ||
24659 | * config/aarch64/arm_sve.h: Add a comment. | |
24660 | ||
24661 | 2020-04-24 Haijian Zhang <z.zhanghaijian@huawei.com> | |
24662 | ||
24663 | PR rtl-optimization/94708 | |
24664 | * combine.c (simplify_if_then_else): Add check for | |
24665 | !HONOR_NANS (mode) && !HONOR_SIGNED_ZEROS (mode). | |
24666 | ||
24667 | 2020-04-23 Martin Sebor <msebor@redhat.com> | |
24668 | ||
24669 | PR driver/90983 | |
24670 | * common.opt (-Wno-frame-larger-than): New option. | |
24671 | (-Wno-larger-than, -Wno-stack-usage): Same. | |
24672 | ||
24673 | 2020-04-23 Andrew Stubbs <ams@codesourcery.com> | |
24674 | ||
24675 | * config/gcn/gcn-valu.md (mov<mode>_exec): Swap the numbers on operands | |
24676 | 2 and 3. | |
24677 | (mov<mode>_exec): Likewise. | |
24678 | (trunc<vndi><mode>2_exec): Swap parameters to gen_mov<mode>_exec. | |
24679 | (<convop><mode><vndi>2_exec): Likewise. | |
24680 | ||
24681 | 2019-04-23 Eric Botcazou <ebotcazou@adacore.com> | |
24682 | ||
24683 | PR tree-optimization/94717 | |
24684 | * gimple-ssa-store-merging.c (try_coalesce_bswap): Return false if one | |
24685 | of the stores doesn't have the same landing pad number as the first. | |
24686 | (coalesce_immediate_stores): Do not try to coalesce the store using | |
24687 | bswap if it doesn't have the same landing pad number as the first. | |
24688 | ||
24689 | 2020-04-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
24690 | ||
24691 | * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): | |
24692 | Replace outdated link to ELFv2 ABI. | |
24693 | ||
24694 | 2020-04-23 Jakub Jelinek <jakub@redhat.com> | |
24695 | ||
24696 | PR target/94710 | |
24697 | * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx | |
24698 | just return v2. | |
24699 | ||
24700 | PR middle-end/94724 | |
24701 | * tree.c (get_narrower): Instead of creating COMPOUND_EXPRs | |
24702 | temporarily with non-final second operand and updating it later, | |
24703 | push COMPOUND_EXPRs into a vector and process it in reverse, | |
24704 | creating COMPOUND_EXPRs with the final operands. | |
24705 | ||
24706 | 2020-04-23 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
24707 | ||
24708 | PR target/94697 | |
24709 | * config/aarch64/aarch64-bti-insert.c (rest_of_insert_bti): Swap | |
24710 | bti c and bti j handling. | |
24711 | ||
24712 | 2020-04-23 Andrew Stubbs <ams@codesourcery.com> | |
24713 | Thomas Schwinge <thomas@codesourcery.com> | |
24714 | ||
24715 | PR middle-end/93488 | |
24716 | ||
24717 | * omp-expand.c (expand_omp_target): Use force_gimple_operand_gsi on | |
24718 | t_async and the wait arguments. | |
24719 | ||
24720 | 2020-04-23 Richard Sandiford <richard.sandiford@arm.com> | |
24721 | ||
24722 | PR tree-optimization/94727 | |
24723 | * tree-vect-stmts.c (vectorizable_comparison): Use mask_type when | |
24724 | comparing invariant scalar booleans. | |
24725 | ||
24726 | 2020-04-23 Matthew Malcomson <matthew.malcomson@arm.com> | |
24727 | Jakub Jelinek <jakub@redhat.com> | |
24728 | ||
24729 | PR target/94383 | |
24730 | * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Account for C++17 | |
24731 | empty base class artificial fields. | |
24732 | (aarch64_vfp_is_call_or_return_candidate): Warn when ABI PCS decision is | |
24733 | different after this fix. | |
24734 | ||
24735 | 2020-04-23 Jakub Jelinek <jakub@redhat.com> | |
24736 | ||
24737 | PR target/94707 | |
24738 | * config/rs6000/rs6000-call.c (rs6000_discover_homogeneous_aggregate): | |
24739 | Use TYPE_UID (TYPE_MAIN_VARIANT (type)) instead of type to check | |
24740 | if the same type has been diagnosed most recently already. | |
24741 | ||
24742 | 2020-04-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
24743 | ||
24744 | * config/arm/arm_mve.h (__arm_vbicq_n_u16): Modify function parameter's | |
24745 | datatype. | |
24746 | (__arm_vbicq_n_s16): Likewise. | |
24747 | (__arm_vbicq_n_u32): Likewise. | |
24748 | (__arm_vbicq_n_s32): Likewise. | |
24749 | (__arm_vbicq): Likewise. | |
24750 | (__arm_vbicq_n_s16): Modify MVE polymorphic variant argument's datatype. | |
24751 | (__arm_vbicq_n_s32): Likewise. | |
24752 | (__arm_vbicq_n_u16): Likewise. | |
24753 | (__arm_vbicq_n_u32): Likewise. | |
24754 | (__arm_vdupq_m_n_s8): Likewise. | |
24755 | (__arm_vdupq_m_n_s16): Likewise. | |
24756 | (__arm_vdupq_m_n_s32): Likewise. | |
24757 | (__arm_vdupq_m_n_u8): Likewise. | |
24758 | (__arm_vdupq_m_n_u16): Likewise. | |
24759 | (__arm_vdupq_m_n_u32): Likewise. | |
24760 | (__arm_vdupq_m_n_f16): Likewise. | |
24761 | (__arm_vdupq_m_n_f32): Likewise. | |
24762 | (__arm_vldrhq_gather_offset_s16): Likewise. | |
24763 | (__arm_vldrhq_gather_offset_s32): Likewise. | |
24764 | (__arm_vldrhq_gather_offset_u16): Likewise. | |
24765 | (__arm_vldrhq_gather_offset_u32): Likewise. | |
24766 | (__arm_vldrhq_gather_offset_f16): Likewise. | |
24767 | (__arm_vldrhq_gather_offset_z_s16): Likewise. | |
24768 | (__arm_vldrhq_gather_offset_z_s32): Likewise. | |
24769 | (__arm_vldrhq_gather_offset_z_u16): Likewise. | |
24770 | (__arm_vldrhq_gather_offset_z_u32): Likewise. | |
24771 | (__arm_vldrhq_gather_offset_z_f16): Likewise. | |
24772 | (__arm_vldrhq_gather_shifted_offset_s16): Likewise. | |
24773 | (__arm_vldrhq_gather_shifted_offset_s32): Likewise. | |
24774 | (__arm_vldrhq_gather_shifted_offset_u16): Likewise. | |
24775 | (__arm_vldrhq_gather_shifted_offset_u32): Likewise. | |
24776 | (__arm_vldrhq_gather_shifted_offset_f16): Likewise. | |
24777 | (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise. | |
24778 | (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise. | |
24779 | (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise. | |
24780 | (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise. | |
24781 | (__arm_vldrhq_gather_shifted_offset_z_f16): Likewise. | |
24782 | (__arm_vldrwq_gather_offset_s32): Likewise. | |
24783 | (__arm_vldrwq_gather_offset_u32): Likewise. | |
24784 | (__arm_vldrwq_gather_offset_f32): Likewise. | |
24785 | (__arm_vldrwq_gather_offset_z_s32): Likewise. | |
24786 | (__arm_vldrwq_gather_offset_z_u32): Likewise. | |
24787 | (__arm_vldrwq_gather_offset_z_f32): Likewise. | |
24788 | (__arm_vldrwq_gather_shifted_offset_s32): Likewise. | |
24789 | (__arm_vldrwq_gather_shifted_offset_u32): Likewise. | |
24790 | (__arm_vldrwq_gather_shifted_offset_f32): Likewise. | |
24791 | (__arm_vldrwq_gather_shifted_offset_z_s32): Likewise. | |
24792 | (__arm_vldrwq_gather_shifted_offset_z_u32): Likewise. | |
24793 | (__arm_vldrwq_gather_shifted_offset_z_f32): Likewise. | |
24794 | (__arm_vdwdupq_x_n_u8): Likewise. | |
24795 | (__arm_vdwdupq_x_n_u16): Likewise. | |
24796 | (__arm_vdwdupq_x_n_u32): Likewise. | |
24797 | (__arm_viwdupq_x_n_u8): Likewise. | |
24798 | (__arm_viwdupq_x_n_u16): Likewise. | |
24799 | (__arm_viwdupq_x_n_u32): Likewise. | |
24800 | (__arm_vidupq_x_n_u8): Likewise. | |
24801 | (__arm_vddupq_x_n_u8): Likewise. | |
24802 | (__arm_vidupq_x_n_u16): Likewise. | |
24803 | (__arm_vddupq_x_n_u16): Likewise. | |
24804 | (__arm_vidupq_x_n_u32): Likewise. | |
24805 | (__arm_vddupq_x_n_u32): Likewise. | |
24806 | (__arm_vldrdq_gather_offset_s64): Likewise. | |
24807 | (__arm_vldrdq_gather_offset_u64): Likewise. | |
24808 | (__arm_vldrdq_gather_offset_z_s64): Likewise. | |
24809 | (__arm_vldrdq_gather_offset_z_u64): Likewise. | |
24810 | (__arm_vldrdq_gather_shifted_offset_s64): Likewise. | |
24811 | (__arm_vldrdq_gather_shifted_offset_u64): Likewise. | |
24812 | (__arm_vldrdq_gather_shifted_offset_z_s64): Likewise. | |
24813 | (__arm_vldrdq_gather_shifted_offset_z_u64): Likewise. | |
24814 | (__arm_vidupq_m_n_u8): Likewise. | |
24815 | (__arm_vidupq_m_n_u16): Likewise. | |
24816 | (__arm_vidupq_m_n_u32): Likewise. | |
24817 | (__arm_vddupq_m_n_u8): Likewise. | |
24818 | (__arm_vddupq_m_n_u16): Likewise. | |
24819 | (__arm_vddupq_m_n_u32): Likewise. | |
24820 | (__arm_vidupq_n_u16): Likewise. | |
24821 | (__arm_vidupq_n_u32): Likewise. | |
24822 | (__arm_vidupq_n_u8): Likewise. | |
24823 | (__arm_vddupq_n_u16): Likewise. | |
24824 | (__arm_vddupq_n_u32): Likewise. | |
24825 | (__arm_vddupq_n_u8): Likewise. | |
24826 | ||
24827 | 2020-04-23 Iain Buclaw <ibuclaw@gdcproject.org> | |
24828 | ||
24829 | * doc/install.texi (D-Specific Options): Document | |
24830 | --enable-libphobos-checking and --with-libphobos-druntime-only. | |
24831 | ||
24832 | 2020-04-23 Jakub Jelinek <jakub@redhat.com> | |
24833 | ||
24834 | PR target/94707 | |
24835 | * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Add | |
24836 | cxx17_empty_base_seen argument. Pass it to recursive calls. | |
24837 | Ignore cxx17_empty_base_field_p fields after setting | |
24838 | *cxx17_empty_base_seen to true. | |
24839 | (rs6000_discover_homogeneous_aggregate): Adjust | |
24840 | rs6000_aggregate_candidate caller. With -Wpsabi, diagnose homogeneous | |
24841 | aggregates with C++17 empty base fields. | |
24842 | ||
24843 | PR c/94705 | |
24844 | * attribs.c (decl_attribute): Don't diagnose attribute exclusions | |
24845 | if last_decl is error_mark_node or has such a TREE_TYPE. | |
24846 | ||
24847 | PR c/94705 | |
24848 | * attribs.c (decl_attribute): Don't diagnose attribute exclusions | |
24849 | if last_decl is error_mark_node or has such a TREE_TYPE. | |
24850 | ||
24851 | 2020-04-22 Felix Yang <felix.yang@huawei.com> | |
24852 | ||
24853 | PR target/94678 | |
24854 | * config/aarch64/aarch64.h (TARGET_SVE): | |
24855 | Add && !TARGET_GENERAL_REGS_ONLY. | |
24856 | (TARGET_SVE2): Add && TARGET_SVE. | |
24857 | (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3, | |
24858 | TARGET_SVE2_SM4): Add && TARGET_SVE2. | |
24859 | * config/aarch64/aarch64-sve-builtins.h | |
24860 | (sve_switcher::m_old_general_regs_only): New member. | |
24861 | * config/aarch64/aarch64-sve-builtins.cc (check_required_registers): | |
24862 | New function. | |
24863 | (reported_missing_registers_p): New variable. | |
24864 | (check_required_extensions): Call check_required_registers before | |
24865 | return if all required extenstions are present. | |
24866 | (sve_switcher::sve_switcher): Save TARGET_GENERAL_REGS_ONLY in | |
24867 | m_old_general_regs_only and clear MASK_GENERAL_REGS_ONLY in | |
24868 | global_options.x_target_flags. | |
24869 | (sve_switcher::~sve_switcher): Set MASK_GENERAL_REGS_ONLY in | |
24870 | global_options.x_target_flags if m_old_general_regs_only is true. | |
24871 | ||
24872 | 2020-04-22 Zackery Spytz <zspytz@gmail.com> | |
24873 | ||
24874 | * doc/extend.exi: Add "free" to list of other builtin functions | |
24875 | supported by GCC. | |
24876 | ||
24877 | 2020-04-20 Aaron Sawdey <acsawdey@linux.ibm.com> | |
24878 | ||
24879 | PR target/94622 | |
24880 | * config/rs6000/sync.md (load_quadpti): Add attr "prefixed" | |
24881 | if TARGET_PREFIXED. | |
24882 | (store_quadpti): Ditto. | |
24883 | (atomic_load<mode>): Do not swap doublewords if TARGET_PREFIXED as | |
24884 | plq will be used and doesn't need it. | |
24885 | (atomic_store<mode>): Ditto, for pstq. | |
24886 | ||
24887 | 2020-04-22 Erick Ochoa <erick.ochoa@theobroma-systems.com> | |
24888 | ||
24889 | * doc/invoke.texi: Update flags turned on by -O3. | |
24890 | ||
24891 | 2020-04-22 Jakub Jelinek <jakub@redhat.com> | |
24892 | ||
24893 | PR target/94706 | |
24894 | * config/ia64/ia64.c (hfa_element_mode): Ignore | |
24895 | cxx17_empty_base_field_p fields. | |
24896 | ||
24897 | PR target/94383 | |
24898 | * calls.h (cxx17_empty_base_field_p): Declare. | |
24899 | * calls.c (cxx17_empty_base_field_p): Define. | |
24900 | ||
24901 | 2020-04-22 Christophe Lyon <christophe.lyon@linaro.org> | |
24902 | ||
24903 | * doc/sourcebuild.texi (arm_softfp_ok, arm_hard_ok): Document. | |
24904 | ||
24905 | 2020-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24906 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
24907 | Mihail Ionescu <mihail.ionescu@arm.com> | |
24908 | ||
24909 | * config/arm/arm.c (arm_file_start): Handle isa_bit_quirk_no_asmcpu. | |
24910 | * config/arm/arm-cpus.in (quirk_no_asmcpu): Define. | |
24911 | (ALL_QUIRKS): Add quirk_no_asmcpu. | |
24912 | (cortex-m55): Define new cpu. | |
24913 | * config/arm/arm-tables.opt: Regenerate. | |
24914 | * config/arm/arm-tune.md: Likewise. | |
24915 | * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55. | |
24916 | ||
24917 | 2020-04-22 Richard Sandiford <richard.sandiford@arm.com> | |
24918 | ||
24919 | PR tree-optimization/94700 | |
24920 | * tree-ssa-forwprop.c (simplify_vector_constructor): When processing | |
24921 | an identity constructor, use a VIEW_CONVERT_EXPR to handle mixtures | |
24922 | of similarly-structured but distinct vector types. | |
24923 | ||
24924 | 2020-04-21 Martin Sebor <msebor@redhat.com> | |
24925 | ||
24926 | PR middle-end/94647 | |
24927 | * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Correct | |
24928 | the computation of the lower bound of the source access size. | |
24929 | (builtin_access::generic_overlap): Remove a hack for setting ranges | |
24930 | of overlap offsets. | |
24931 | ||
24932 | 2020-04-21 John David Anglin <danglin@gcc.gnu.org> | |
24933 | ||
24934 | * config/pa/som.h (ASM_WEAKEN_LABEL): Delete. | |
24935 | (ASM_WEAKEN_DECL): New define. | |
24936 | (HAVE_GAS_WEAKREF): Undefine. | |
24937 | ||
24938 | 2020-04-21 Richard Sandiford <richard.sandiford@arm.com> | |
24939 | ||
24940 | PR tree-optimization/94683 | |
24941 | * tree-ssa-forwprop.c (simplify_vector_constructor): Use a | |
24942 | VIEW_CONVERT_EXPR to handle mixtures of similarly-structured | |
24943 | but distinct vector types. | |
24944 | ||
24945 | 2020-04-21 Jakub Jelinek <jakub@redhat.com> | |
24946 | ||
24947 | PR c/94641 | |
24948 | * stor-layout.c (place_field, finalize_record_size): Don't emit | |
24949 | -Wpadded warning on TYPE_ARTIFICIAL rli->t. | |
24950 | * ubsan.c (ubsan_get_type_descriptor_type, | |
24951 | ubsan_get_source_location_type, ubsan_create_data): Set | |
24952 | TYPE_ARTIFICIAL. | |
24953 | * asan.c (asan_global_struct): Likewise. | |
24954 | ||
24955 | 2020-04-21 Duan bo <duanbo3@huawei.com> | |
24956 | ||
24957 | PR target/94577 | |
24958 | * config/aarch64/aarch64.c: Add an error message for option conflict. | |
24959 | * doc/invoke.texi (-mcmodel=large): Mention that -mcmodel=large is | |
24960 | incompatible with -fpic, -fPIC and -mabi=ilp32. | |
24961 | ||
24962 | 2020-04-21 Frederik Harwath <frederik@codesourcery.com> | |
24963 | ||
24964 | PR other/94629 | |
24965 | * omp-low.c (new_omp_context): Remove assignments to | |
24966 | ctx->outer_reduction_clauses and ctx->local_reduction_clauses. | |
24967 | ||
24968 | 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com> | |
24969 | ||
24970 | * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx") | |
24971 | ("popcountv2di2_vx"): Use simplify_gen_subreg. | |
24972 | ||
24973 | 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com> | |
24974 | ||
24975 | PR target/94613 | |
24976 | * config/s390/s390-builtin-types.def: Add 3 new function modes. | |
24977 | * config/s390/s390-builtins.def: Add mode dependent low-level | |
24978 | builtin and map the overloaded builtins to these. | |
24979 | * config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ... | |
24980 | ("vsel<V_HW"): ... this and rewrite the pattern with bitops. | |
24981 | ||
24982 | 2020-04-20 Richard Sandiford <richard.sandiford@arm.com> | |
24983 | ||
24984 | * tree-vect-loop.c (vect_better_loop_vinfo_p): If old_loop_vinfo | |
24985 | has a variable VF, prefer new_loop_vinfo if it is cheaper for the | |
24986 | estimated VF and is no worse at double the estimated VF. | |
24987 | ||
24988 | 2020-04-20 Richard Sandiford <richard.sandiford@arm.com> | |
24989 | ||
24990 | PR target/94668 | |
24991 | * config/aarch64/aarch64.c (aarch64_sve_expand_vector_init): Fix | |
24992 | order of arguments to rtx_vector_builder. | |
24993 | (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise. | |
24994 | When extending the trailing constants to a full vector, replace any | |
24995 | variables with zeros. | |
24996 | ||
24997 | 2020-04-20 Jan Hubicka <hubicka@ucw.cz> | |
24998 | ||
24999 | PR ipa/94582 | |
25000 | * tree-inline.c (optimize_inline_calls): Recompute calls_comdat_local | |
25001 | flag. | |
25002 | ||
25003 | 2020-04-20 Martin Liska <mliska@suse.cz> | |
25004 | ||
25005 | * symtab.c (symtab_node::dump_references): Add space after | |
25006 | one entry. | |
25007 | (symtab_node::dump_referring): Likewise. | |
25008 | ||
25009 | 2020-04-18 Jeff Law <law@redhat.com> | |
25010 | ||
25011 | PR debug/94439 | |
25012 | * regrename.c (check_new_reg_p): Ignore DEBUG_INSNs when walking | |
25013 | the chain. | |
25014 | ||
25015 | 2020-04-18 Iain Buclaw <ibuclaw@gdcproject.org> | |
25016 | ||
25017 | * doc/sourcebuild.texi (Effective-Target Keywords, Environment | |
25018 | attributes): Document d_runtime_has_std_library. | |
25019 | ||
25020 | 2020-04-17 Jeff Law <law@redhat.com> | |
25021 | ||
25022 | PR rtl-optimization/90275 | |
25023 | * cse.c (cse_insn): Avoid recording nop sets in multi-set parallels | |
25024 | when the destination has a REG_UNUSED note. | |
25025 | ||
25026 | 2020-04-17 Tobias Burnus <tobias@codesourcery.com> | |
25027 | ||
25028 | PR middle-end/94635 | |
25029 | * gimplify.c (gimplify_scan_omp_clauses): Turn MAP_TO_PSET to | |
25030 | MAP_DELETE. | |
25031 | ||
25032 | 2020-04-17 Richard Sandiford <richard.sandiford@arm.com> | |
25033 | ||
25034 | * config/aarch64/aarch64.c (aarch64_advsimd_ldp_stp_p): New function. | |
25035 | (aarch64_sve_adjust_stmt_cost): Add a vectype parameter. Double the | |
25036 | cost of load and store insns if one loop iteration has enough scalar | |
25037 | elements to use an Advanced SIMD LDP or STP. | |
25038 | (aarch64_add_stmt_cost): Update call accordingly. | |
25039 | ||
25040 | 2020-04-17 Jakub Jelinek <jakub@redhat.com> | |
25041 | Jeff Law <law@redhat.com> | |
25042 | ||
25043 | PR target/94567 | |
25044 | * config/i386/i386.md (*testqi_ext_3): Use CCZmode rather than | |
25045 | CCNOmode in ix86_match_ccmode if len is equal to <MODE>mode precision, | |
25046 | or pos + len >= 32, or pos + len is equal to operands[2] precision | |
25047 | and operands[2] is not a register operand. During splitting perform | |
25048 | SImode AND if operands[0] doesn't have CCZmode and pos + len is | |
25049 | equal to mode precision. | |
25050 | ||
25051 | 2020-04-17 Richard Biener <rguenther@suse.de> | |
25052 | ||
25053 | PR other/94629 | |
25054 | * cgraphclones.c (cgraph_node::create_clone): Remove duplicate | |
25055 | initialization. | |
25056 | * dwarf2out.c (dw_val_equal_p): Fix pasto in | |
25057 | dw_val_class_vms_delta comparison. | |
25058 | * optabs.c (expand_binop_directly): Fix pasto in commutation | |
25059 | check. | |
25060 | * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Fix pasto in | |
25061 | initialization. | |
25062 | ||
25063 | 2020-04-17 Jakub Jelinek <jakub@redhat.com> | |
25064 | ||
25065 | PR rtl-optimization/94618 | |
25066 | * cfgrtl.c (delete_insn_and_edges): Set purge not just when | |
25067 | insn is the BB_END of its block, but also when it is only followed | |
25068 | by DEBUG_INSNs in its block. | |
25069 | ||
25070 | PR tree-optimization/94621 | |
25071 | * tree-inline.c (remap_type_1): Don't dereference NULL TYPE_DOMAIN. | |
25072 | Move id->adjust_array_error_bounds check first in the condition. | |
25073 | ||
25074 | 2020-04-17 Martin Liska <mliska@suse.cz> | |
25075 | Jonathan Yong <10walls@gmail.com> | |
25076 | ||
25077 | PR gcov-profile/94570 | |
25078 | * coverage.c (coverage_init): Use separator properly. | |
25079 | ||
25080 | 2020-04-16 Peter Bergner <bergner@linux.ibm.com> | |
25081 | ||
25082 | PR rtl-optimization/93974 | |
25083 | * config/rs6000/rs6000.c (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define. | |
25084 | (rs6000_cannot_substitute_mem_equiv_p): New function. | |
25085 | ||
25086 | 2020-04-16 Martin Jambor <mjambor@suse.cz> | |
25087 | ||
25088 | PR ipa/93621 | |
25089 | * ipa-inline.h (ipa_saved_clone_sources): Declare. | |
25090 | * ipa-inline-transform.c (ipa_saved_clone_sources): New variable. | |
25091 | (save_inline_function_body): Link the new body holder with the | |
25092 | previous one. | |
25093 | * cgraph.c: Include ipa-inline.h. | |
25094 | (cgraph_edge::redirect_call_stmt_to_callee): Try to find the decl from | |
25095 | the statement in ipa_saved_clone_sources. | |
25096 | * cgraphunit.c: Include ipa-inline.h. | |
25097 | (expand_all_functions): Free ipa_saved_clone_sources. | |
25098 | ||
25099 | 2020-04-16 Richard Sandiford <richard.sandiford@arm.com> | |
25100 | ||
25101 | PR target/94606 | |
25102 | * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor): Take | |
25103 | the VNx16BI lowpart of the recursively-generated constant. | |
25104 | ||
25105 | 2020-04-16 Martin Liska <mliska@suse.cz> | |
25106 | Jakub Jelinek <jakub@redhat.com> | |
25107 | ||
25108 | PR c++/94314 | |
25109 | * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop | |
25110 | DECL_IS_REPLACEABLE_OPERATOR during cloning. | |
25111 | * tree-ssa-dce.c (valid_new_delete_pair_p): New function. | |
25112 | (propagate_necessity): Check operator names. | |
25113 | ||
25114 | 2020-04-16 Richard Sandiford <richard.sandiford@arm.com> | |
25115 | ||
25116 | PR rtl-optimization/94605 | |
25117 | * early-remat.c (early_remat::process_block): Handle insns that | |
25118 | set multiple candidate registers. | |
25119 | 2020-04-16 Jan Hubicka <hubicka@ucw.cz> | |
25120 | ||
25121 | PR gcov-profile/93401 | |
25122 | * common.opt (profile-prefix-path): New option. | |
25123 | * coverae.c: Include diagnostics.h. | |
25124 | (coverage_init): Strip profile prefix path. | |
25125 | * doc/invoke.texi (-fprofile-prefix-path): Document. | |
25126 | ||
25127 | 2020-04-16 Richard Biener <rguenther@suse.de> | |
25128 | ||
25129 | PR middle-end/94614 | |
25130 | * expr.c (emit_move_multi_word): Do not generate code when | |
25131 | the destination part is undefined_operand_subword_p. | |
25132 | * lower-subreg.c (resolve_clobber): Look through a paradoxica | |
25133 | subreg. | |
25134 | ||
25135 | 2020-04-16 Martin Jambor <mjambor@suse.cz> | |
25136 | ||
25137 | PR tree-optimization/94598 | |
25138 | * tree-sra.c (verify_sra_access_forest): Fix verification of total | |
25139 | scalarization accesses under access to one-element arrays. | |
25140 | ||
25141 | 2020-04-16 Jakub Jelinek <jakub@redhat.com> | |
25142 | ||
25143 | PR bootstrap/89494 | |
25144 | * function.c (assign_parm_find_data_types): Add workaround for | |
25145 | BROKEN_VALUE_INITIALIZATION compilers. | |
25146 | ||
25147 | 2020-04-16 Richard Biener <rguenther@suse.de> | |
25148 | ||
25149 | * gdbhooks.py (TreePrinter): Print SSA_NAME_VERSION of SSA_NAME | |
25150 | nodes. | |
25151 | ||
25152 | 2020-04-15 Uroš Bizjak <ubizjak@gmail.com> | |
25153 | ||
25154 | PR target/94603 | |
25155 | * config/i386/i386-builtin.def (__builtin_ia32_movq128): | |
25156 | Require OPTION_MASK_ISA_SSE2. | |
25157 | ||
25158 | 2020-04-15 Gustavo Romero <gromero@linux.ibm.com> | |
25159 | ||
25160 | PR bootstrap/89494 | |
25161 | * dumpfile.c (selftest::temp_dump_context::temp_dump_context): | |
25162 | Don't construct a dump_context temporary to call static method. | |
25163 | ||
25164 | 2020-04-15 Andrea Corallo <andrea.corallo@arm.com> | |
25165 | ||
25166 | * config/aarch64/falkor-tag-collision-avoidance.c | |
25167 | (valid_src_p): Check for aarch64_address_info type before | |
25168 | accessing base field. | |
25169 | ||
25170 | 2020-04-15 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25171 | ||
25172 | * config/arm/mve.md (mve_vec_duplicate<mode>): New pattern. | |
25173 | (V_sz_elem2): Remove unused mode attribute. | |
25174 | ||
25175 | 2020-04-15 Matthew Malcomson <matthew.malcomson@arm.com> | |
25176 | ||
25177 | * config/arm/arm.md (arm_movdi): Disallow for MVE. | |
25178 | ||
25179 | 2020-04-15 Richard Biener <rguenther@suse.de> | |
25180 | ||
25181 | PR middle-end/94539 | |
25182 | * tree-ssa-alias.c (same_type_for_tbaa): Defer to | |
25183 | alias_sets_conflict_p for pointers. | |
25184 | ||
25185 | 2020-04-14 Max Filippov <jcmvbkbc@gmail.com> | |
25186 | ||
25187 | PR target/94584 | |
25188 | * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2) | |
25189 | (extendhisi2_internal): Add %v1 before the load instructions. | |
25190 | ||
25191 | 2020-04-14 Aaron Sawdey <acsawdey@linux.ibm.com> | |
25192 | ||
25193 | PR target/94542 | |
25194 | * config/rs6000/rs6000.c (address_to_insn_form): Do not attempt to | |
25195 | use PC-relative addressing for TLS references. | |
25196 | ||
25197 | 2020-04-14 Martin Jambor <mjambor@suse.cz> | |
25198 | ||
25199 | PR ipa/94434 | |
25200 | * ipa-sra.c: Include internal-fn.h. | |
25201 | (enum isra_scan_context): Update comment. | |
25202 | (scan_function): Treat calls to internal_functions like loads or stores. | |
25203 | ||
25204 | 2020-04-14 Yang Yang <yangyang305@huawei.com> | |
25205 | ||
25206 | PR tree-optimization/94574 | |
25207 | * tree-ssa.c (non_rewritable_lvalue_p): Add size check when analyzing | |
25208 | whether a vector-insert is rewritable using a BIT_INSERT_EXPR. | |
25209 | ||
25210 | 2020-04-14 H.J. Lu <hongjiu.lu@intel.com> | |
25211 | ||
25212 | PR target/94561 | |
25213 | * config/i386/i386.c (ix86_get_ssemov): Remove mode size check. | |
25214 | ||
25215 | 2020-04-13 Martin Sebor <msebor@redhat.com> | |
25216 | ||
25217 | * doc/extend.texi (-Wall): Mention -Wformat-overflow and | |
25218 | -Wformat-truncation. Move -Wzero-length-bounds last. | |
25219 | (-Wrestrict): Document positive form of option enabled by -Wall. | |
25220 | ||
25221 | 2020-04-13 Zachary Spytz <zspytz@gmail.com> | |
25222 | ||
25223 | * doc/extend.texi: Add realloc to list of built-in functions | |
25224 | are recognized by the compiler. | |
25225 | ||
25226 | 2020-04-13 H.J. Lu <hongjiu.lu@intel.com> | |
25227 | ||
25228 | PR target/94556 | |
25229 | * config/i386/i386.c (ix86_expand_epilogue): Restore the frame | |
25230 | pointer in word_mode for eh_return epilogues. | |
25231 | ||
25232 | 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
25233 | ||
25234 | * config/msp430/msp430.c (msp430_print_operand): Don't add offsets to | |
25235 | memory references in %B, %C and %D operand selectors when the inner | |
25236 | operand is a post increment address. | |
25237 | ||
25238 | 2020-04-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
25239 | ||
25240 | * config/msp430/msp430.c (msp430_print_operand): Offset a %C memory | |
25241 | reference by 4 bytes, and %D memory reference by 6 bytes. | |
25242 | ||
25243 | 2020-04-11 Uroš Bizjak <ubizjak@gmail.com> | |
25244 | ||
25245 | PR target/94494 | |
25246 | * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE2 | |
25247 | condition for V4SI, V8HI and V16QI modes. | |
25248 | ||
25249 | 2020-04-11 Jakub Jelinek <jakub@redhat.com> | |
25250 | ||
25251 | PR debug/94495 | |
25252 | PR target/94551 | |
25253 | * cselib.c (cselib_record_sp_cfa_base_equiv): Set PRESERVED_VALUE_P on | |
25254 | val->val_rtx. | |
25255 | ||
25256 | 2020-04-10 Thomas Schwinge <thomas@codesourcery.com> | |
25257 | ||
25258 | PR middle-end/89433 | |
25259 | PR middle-end/93465 | |
25260 | * omp-general.c (oacc_verify_routine_clauses): Diagnose if | |
25261 | "#pragma omp declare target" has also been applied. | |
25262 | ||
25263 | 2020-04-09 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
25264 | ||
25265 | * config/msp430/msp430.c (msp430_expand_epilogue): Use emit_jump_insn | |
25266 | when to emit the epilogue_helper insn. | |
25267 | * config/msp430/msp430.md (epilogue_helper): Add a return insn to the | |
25268 | RTL pattern. | |
25269 | ||
25270 | 2020-04-09 Jakub Jelinek <jakub@redhat.com> | |
25271 | ||
25272 | PR debug/94495 | |
25273 | * cselib.h (cselib_record_sp_cfa_base_equiv, | |
25274 | cselib_sp_derived_value_p): Declare. | |
25275 | * cselib.c (cselib_record_sp_cfa_base_equiv, | |
25276 | cselib_sp_derived_value_p): New functions. | |
25277 | * var-tracking.c (add_stores): Don't record MO_VAL_SET for | |
25278 | cselib_sp_derived_value_p values. | |
25279 | (vt_initialize): Call cselib_record_sp_cfa_base_equiv at the | |
25280 | start of extended basic blocks other than the first one | |
25281 | for !frame_pointer_needed functions. | |
25282 | ||
25283 | 2020-04-09 Richard Sandiford <richard.sandiford@arm.com> | |
25284 | ||
25285 | * doc/sourcebuild.texi (aarch64_sve_hw, aarch64_sve128_hw) | |
25286 | (aarch64_sve256_hw, aarch64_sve512_hw, aarch64_sve1024_hw) | |
25287 | (aarch64_sve2048_hw): Document. | |
25288 | * config/aarch64/aarch64-protos.h | |
25289 | (aarch64_sve::handle_arm_sve_vector_bits_attribute): Declare. | |
25290 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
25291 | __ARM_FEATURE_SVE_VECTOR_OPERATIONS when SVE is enabled. | |
25292 | * config/aarch64/aarch64-sve-builtins.cc (matches_type_p): New | |
25293 | function. | |
25294 | (find_type_suffix_for_scalar_type): Use it instead of comparing | |
25295 | TYPE_MAIN_VARIANTs. | |
25296 | (function_resolver::infer_vector_or_tuple_type): Likewise. | |
25297 | (function_resolver::require_vector_type): Likewise. | |
25298 | (handle_arm_sve_vector_bits_attribute): New function. | |
25299 | * config/aarch64/aarch64.c (pure_scalable_type_info): New class. | |
25300 | (aarch64_attribute_table): Add arm_sve_vector_bits. | |
25301 | (aarch64_return_in_memory_1): | |
25302 | (pure_scalable_type_info::piece::get_rtx): New function. | |
25303 | (pure_scalable_type_info::num_zr): Likewise. | |
25304 | (pure_scalable_type_info::num_pr): Likewise. | |
25305 | (pure_scalable_type_info::get_rtx): Likewise. | |
25306 | (pure_scalable_type_info::analyze): Likewise. | |
25307 | (pure_scalable_type_info::analyze_registers): Likewise. | |
25308 | (pure_scalable_type_info::analyze_array): Likewise. | |
25309 | (pure_scalable_type_info::analyze_record): Likewise. | |
25310 | (pure_scalable_type_info::add_piece): Likewise. | |
25311 | (aarch64_some_values_include_pst_objects_p): Likewise. | |
25312 | (aarch64_returns_value_in_sve_regs_p): Use pure_scalable_type_info | |
25313 | to analyze whether the type is returned in SVE registers. | |
25314 | (aarch64_takes_arguments_in_sve_regs_p): Likwise whether the type | |
25315 | is passed in SVE registers. | |
25316 | (aarch64_pass_by_reference_1): New function, extracted from... | |
25317 | (aarch64_pass_by_reference): ...here. Use pure_scalable_type_info | |
25318 | to analyze whether the type is a pure scalable type and, if so, | |
25319 | whether it should be passed by reference. | |
25320 | (aarch64_return_in_msb): Return false for pure scalable types. | |
25321 | (aarch64_function_value_1): Fold back into... | |
25322 | (aarch64_function_value): ...this function. Use | |
25323 | pure_scalable_type_info to analyze whether the type is a pure | |
25324 | scalable type and, if so, which registers it should use. Handle | |
25325 | types that include pure scalable types but are not themselves | |
25326 | pure scalable types. | |
25327 | (aarch64_return_in_memory_1): New function, split out from... | |
25328 | (aarch64_return_in_memory): ...here. Use pure_scalable_type_info | |
25329 | to analyze whether the type is a pure scalable type and, if so, | |
25330 | whether it should be returned by reference. | |
25331 | (aarch64_layout_arg): Remove orig_mode argument. Use | |
25332 | pure_scalable_type_info to analyze whether the type is a pure | |
25333 | scalable type and, if so, which registers it should use. Handle | |
25334 | types that include pure scalable types but are not themselves | |
25335 | pure scalable types. | |
25336 | (aarch64_function_arg): Update call accordingly. | |
25337 | (aarch64_function_arg_advance): Likewise. | |
25338 | (aarch64_pad_reg_upward): On big-endian targets, return false for | |
25339 | pure scalable types that are smaller than 16 bytes. | |
25340 | (aarch64_member_type_forces_blk): New function. | |
25341 | (aapcs_vfp_sub_candidate): Exit early for built-in SVE types. | |
25342 | (aarch64_short_vector_p): Return false for VECTOR_TYPEs that | |
25343 | correspond to built-in SVE types. Do not rely on a vector mode | |
25344 | if the type includes an pure scalable type. When returning true, | |
25345 | assert that the mode is not an SVE mode. | |
25346 | (aarch64_vfp_is_call_or_return_candidate): Do not check for SVE | |
25347 | built-in types here. When returning true, assert that the type | |
25348 | does not have an SVE mode. | |
25349 | (aarch64_can_change_mode_class): Don't allow anything to change | |
25350 | between a predicate mode and a non-predicate mode. Also don't | |
25351 | allow changes between SVE vector modes and other modes that | |
25352 | might be bigger than 128 bits. | |
25353 | (aarch64_invalid_binary_op): Reject binary operations that mix | |
25354 | SVE and GNU vector types. | |
25355 | (TARGET_MEMBER_TYPE_FORCES_BLK): Define. | |
25356 | ||
25357 | 2020-04-09 Richard Sandiford <richard.sandiford@arm.com> | |
25358 | ||
25359 | * config/aarch64/aarch64.c (aarch64_attribute_table): Add | |
25360 | "SVE sizeless type". | |
25361 | * config/aarch64/aarch64-sve-builtins.cc (make_type_sizeless) | |
25362 | (sizeless_type_p): New functions. | |
25363 | (register_builtin_types): Apply make_type_sizeless to the type. | |
25364 | (register_tuple_type): Likewise. | |
25365 | (verify_type_context): Use sizeless_type_p instead of builin_type_p. | |
25366 | ||
25367 | 2020-04-09 Matthew Malcomson <matthew.malcomson@arm.com> | |
25368 | ||
25369 | * config/arm/arm_cde.h: Remove `extern "C"` when compiling for | |
25370 | C++. | |
25371 | ||
25372 | 2020-04-09 Martin Jambor <mjambor@suse.cz> | |
25373 | Richard Biener <rguenther@suse.de> | |
25374 | ||
25375 | PR tree-optimization/94482 | |
25376 | * tree-sra.c (create_access_replacement): Dump new replacement with | |
25377 | TDF_UID. | |
25378 | (sra_modify_expr): Fix handling of cases when the original EXPR writes | |
25379 | to only part of the replacement. | |
25380 | * tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify | |
25381 | the first operand of combinations into REAL/IMAGPART_EXPR and | |
25382 | BIT_FIELD_REF. | |
25383 | ||
25384 | 2020-04-09 Richard Sandiford <richard.sandiford@arm.com> | |
25385 | ||
25386 | * doc/sourcebuild.texi (check-function-bodies): Treat the third | |
25387 | parameter as a list of option regexps and require each regexp | |
25388 | to match. | |
25389 | ||
25390 | 2020-04-09 Andrea Corallo <andrea.corallo@arm.com> | |
25391 | ||
25392 | PR target/94530 | |
25393 | * config/aarch64/falkor-tag-collision-avoidance.c | |
25394 | (valid_src_p): Fix missing rtx type check. | |
25395 | ||
25396 | 2020-04-09 Bin Cheng <bin.cheng@linux.alibaba.com> | |
25397 | Richard Biener <rguenther@suse.de> | |
25398 | ||
25399 | PR tree-optimization/93674 | |
25400 | * tree-ssa-loop-ivopts.c (langhooks.h): New include. | |
25401 | (add_iv_candidate_for_use): For iv_use of non integer or pointer type, | |
25402 | or non-mode precision type, add candidate in unsigned type with the | |
25403 | same precision. | |
25404 | ||
25405 | 2020-04-08 Clement Chigot <clement.chigot@atos.net> | |
25406 | ||
25407 | * config/rs6000/aix61.h (LIB_SPEC): Add -lc128 with -mlong-double-128. | |
25408 | * config/rs6000/aix71.h (LIB_SPEC): Likewise. | |
25409 | * config/rs6000/aix72.h (LIB_SPEC): Likewise. | |
25410 | ||
25411 | 2020-04-08 Jakub Jelinek <jakub@redhat.com> | |
25412 | ||
25413 | PR middle-end/94526 | |
25414 | * cselib.c (autoinc_split): Handle e->val_rtx being SP_DERIVED_VALUE_P | |
25415 | with zero offset. | |
25416 | * reload1.c (eliminate_regs_1): Avoid creating | |
25417 | (plus (reg) (const_int 0)) in DEBUG_INSNs. | |
25418 | ||
25419 | PR tree-optimization/94524 | |
25420 | * tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is | |
25421 | negative for signed TRUNC_MOD_EXPR, multiply with absolute value of | |
25422 | op1 rather than op1 itself at the end. Punt for signed modulo by | |
25423 | most negative constant. | |
25424 | * tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed | |
25425 | modulo by most negative constant. | |
25426 | ||
25427 | 2020-04-08 Richard Biener <rguenther@suse.de> | |
25428 | ||
25429 | PR rtl-optimization/93946 | |
25430 | * cse.c (cse_insn): Record the tabled expression in | |
25431 | src_related. Verify a redundant store removal is valid. | |
25432 | ||
25433 | 2020-04-08 H.J. Lu <hongjiu.lu@intel.com> | |
25434 | ||
25435 | PR target/94417 | |
25436 | * config/i386/i386-features.c (rest_of_insert_endbranch): Insert | |
25437 | ENDBR at function entry if function will be called indirectly. | |
25438 | ||
25439 | 2020-04-08 Jakub Jelinek <jakub@redhat.com> | |
25440 | ||
25441 | PR target/94438 | |
25442 | * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size | |
25443 | 1, 2, 4 and 8. | |
25444 | ||
25445 | 2020-04-08 Martin Liska <mliska@suse.cz> | |
25446 | ||
25447 | PR c++/94314 | |
25448 | * gimple.c (gimple_call_operator_delete_p): Rename to... | |
25449 | (gimple_call_replaceable_operator_delete_p): ... this. | |
25450 | Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P. | |
25451 | * gimple.h (gimple_call_operator_delete_p): Rename to ... | |
25452 | (gimple_call_replaceable_operator_delete_p): ... this. | |
25453 | * tree-core.h (tree_function_decl): Add replaceable_operator | |
25454 | flag. | |
25455 | * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): | |
25456 | Use DECL_IS_REPLACEABLE_OPERATOR_DELETE_P. | |
25457 | (propagate_necessity): Use gimple_call_replaceable_operator_delete_p. | |
25458 | (eliminate_unnecessary_stmts): Likewise. | |
25459 | * tree-streamer-in.c (unpack_ts_function_decl_value_fields): | |
25460 | Pack DECL_IS_REPLACEABLE_OPERATOR. | |
25461 | * tree-streamer-out.c (pack_ts_function_decl_value_fields): | |
25462 | Unpack the field here. | |
25463 | * tree.h (DECL_IS_REPLACEABLE_OPERATOR): New. | |
25464 | (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): New. | |
25465 | (DECL_IS_REPLACEABLE_OPERATOR_DELETE_P): New. | |
25466 | * cgraph.c (cgraph_node::dump): Dump if an operator is replaceable. | |
25467 | * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Compare | |
25468 | replaceable operator flags. | |
25469 | ||
25470 | 2020-04-08 Dennis Zhang <dennis.zhang@arm.com> | |
25471 | Matthew Malcomson <matthew.malcomson@arm.com> | |
25472 | ||
25473 | * config/arm/arm-builtins.c (CX_IMM_QUALIFIERS): New macro. | |
25474 | (CX_UNARY_QUALIFIERS, CX_BINARY_QUALIFIERS): Likewise. | |
25475 | (CX_TERNARY_QUALIFIERS): Likewise. | |
25476 | (ARM_BUILTIN_CDE_PATTERN_START): Likewise. | |
25477 | (ARM_BUILTIN_CDE_PATTERN_END): Likewise. | |
25478 | (arm_init_acle_builtins): Initialize CDE builtins. | |
25479 | (arm_expand_acle_builtin): Check CDE constant operands. | |
25480 | * config/arm/arm.h (ARM_CDE_CONST_COPROC): New macro to set the range | |
25481 | of CDE constant operand. | |
25482 | * config/arm/arm.c (arm_hard_regno_mode_ok): Support DImode for | |
25483 | TARGET_VFP_BASE. | |
25484 | (ARM_VCDE_CONST_1, ARM_VCDE_CONST_2, ARM_VCDE_CONST_3): Likewise. | |
25485 | * config/arm/arm_cde.h (__arm_vcx1_u32): New macro of ACLE interface. | |
25486 | (__arm_vcx1a_u32, __arm_vcx2_u32, __arm_vcx2a_u32): Likewise. | |
25487 | (__arm_vcx3_u32, __arm_vcx3a_u32, __arm_vcx1d_u64): Likewise. | |
25488 | (__arm_vcx1da_u64, __arm_vcx2d_u64, __arm_vcx2da_u64): Likewise. | |
25489 | (__arm_vcx3d_u64, __arm_vcx3da_u64): Likewise. | |
25490 | * config/arm/arm_cde_builtins.def: New file. | |
25491 | * config/arm/iterators.md (V_reg): New attribute of SI. | |
25492 | * config/arm/predicates.md (const_int_coproc_operand): New. | |
25493 | (const_int_vcde1_operand, const_int_vcde2_operand): New. | |
25494 | (const_int_vcde3_operand): New. | |
25495 | * config/arm/unspecs.md (UNSPEC_VCDE, UNSPEC_VCDEA): New. | |
25496 | * config/arm/vfp.md (arm_vcx1<mode>): New entry. | |
25497 | (arm_vcx1a<mode>, arm_vcx2<mode>, arm_vcx2a<mode>): Likewise. | |
25498 | (arm_vcx3<mode>, arm_vcx3a<mode>): Likewise. | |
25499 | ||
25500 | 2020-04-08 Dennis Zhang <dennis.zhang@arm.com> | |
25501 | ||
25502 | * config.gcc: Add arm_cde.h. | |
25503 | * config/arm/arm-c.c (arm_cpu_builtins): Define or undefine | |
25504 | __ARM_FEATURE_CDE and __ARM_FEATURE_CDE_COPROC. | |
25505 | * config/arm/arm-cpus.in (cdecp0, cdecp1, ..., cdecp7): New options. | |
25506 | * config/arm/arm.c (arm_option_reconfigure_globals): Configure | |
25507 | arm_arch_cde and arm_arch_cde_coproc to store the feature bits. | |
25508 | * config/arm/arm.h (TARGET_CDE): New macro. | |
25509 | * config/arm/arm_cde.h: New file. | |
25510 | * doc/invoke.texi: Document CDE options +cdecp[0-7]. | |
25511 | * doc/sourcebuild.texi (arm_v8m_main_cde_ok): Document new target | |
25512 | supports option. | |
25513 | (arm_v8m_main_cde_fp, arm_v8_1m_main_cde_mve): Likewise. | |
25514 | ||
25515 | 2020-04-08 Jakub Jelinek <jakub@redhat.com> | |
25516 | ||
25517 | PR rtl-optimization/94516 | |
25518 | * postreload.c: Include rtl-iter.h. | |
25519 | (reload_cse_move2add): Handle SP autoinc here by FOR_EACH_SUBRTX_VAR | |
25520 | looking for all MEMs with RTX_AUTOINC operand. | |
25521 | (move2add_note_store): Remove {PRE,POST}_{INC,DEC} handling. | |
25522 | ||
25523 | 2020-04-08 Tobias Burnus <tobias@codesourcery.com> | |
25524 | ||
25525 | * omp-grid.c (grid_eliminate_combined_simd_part): Use | |
25526 | OMP_CLAUSE_CODE to access the omp clause code. | |
25527 | ||
25528 | 2020-04-07 Jeff Law <law@redhat.com> | |
25529 | ||
25530 | PR rtl-optimization/92264 | |
25531 | * config/h8300/h8300.md (mov;add peephole2): Avoid applying when | |
25532 | the destination is the stack pointer. | |
25533 | ||
25534 | 2020-04-07 Jakub Jelinek <jakub@redhat.com> | |
25535 | ||
25536 | PR rtl-optimization/94291 | |
25537 | PR rtl-optimization/84169 | |
25538 | * combine.c (try_combine): For split_i2i3, don't assume SET_DEST | |
25539 | must be a REG or SUBREG of REG; if it is not one of these, don't | |
25540 | update LOG_LINKs. | |
25541 | ||
25542 | 2020-04-07 Richard Biener <rguenther@suse.de> | |
25543 | ||
25544 | PR middle-end/94479 | |
25545 | * gimplify.c (gimplify_addr_expr): Also consider generated | |
25546 | MEM_REFs. | |
25547 | ||
25548 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25549 | ||
25550 | * config/arm/arm_mve.h: Add C++ polymorphism and fix preserve MACROs. | |
25551 | ||
25552 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25553 | ||
25554 | * config/arm/arm_mve.h: Cast some pointers to expected types. | |
25555 | ||
25556 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25557 | ||
25558 | * config/arm/arm_mve.h: Replace all uses of vuninitializedq_* with the | |
25559 | same with '__arm_' prefix. | |
25560 | ||
25561 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25562 | ||
25563 | * config/arm/mve.md (mve_vec_extract*): Allow memory operands in set. | |
25564 | ||
25565 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25566 | ||
25567 | * config/arm/arm.c (arm_mve_immediate_check): Removed. | |
25568 | * config/arm/mve.md (MVE_pred2, MVE_constraint2): Added FP types. | |
25569 | (mve_vcvtq_n_to_f_*, mve_vcvtq_n_from_f_*, mve_vqshrnbq_n_*, | |
25570 | mve_vqshrntq_n_*, mve_vqshrunbq_n_s*, mve_vqshruntq_n_s*, | |
25571 | mve_vcvtq_m_n_from_f_*, mve_vcvtq_m_n_to_f_*, mve_vqshrnbq_m_n_*, | |
25572 | mve_vqrshruntq_m_n_s*, mve_vqshrunbq_m_n_s*, | |
25573 | mve_vqshruntq_m_n_s*): Fixed immediate constraints. | |
25574 | ||
25575 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25576 | ||
25577 | * config/arm/arm.d (ashldi3): Don't use lsll for constant 32-bit shifts. | |
25578 | ||
25579 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25580 | ||
25581 | * config/arm/arm_mve.h: Fix v[id]wdup intrinsics. | |
25582 | * config/arm/mve/md: Fix v[id]wdup patterns. | |
25583 | ||
25584 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25585 | ||
25586 | * config/arm/arm.c (output_move_neon): Deal with label + offset cases. | |
25587 | * config/arm/mve.md (*mve_mov<mode>): Handle const vectors. | |
25588 | ||
25589 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25590 | ||
25591 | * config/arm/arm_mve.h: Remove use of typeof for addr pointer parameters | |
25592 | and remove const_ptr enums. | |
25593 | ||
25594 | 2020-04-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25595 | ||
25596 | * config/arm/arm_mve.h (vsubq_n): Merge with... | |
25597 | (vsubq): ... this. | |
25598 | (vmulq_n): Merge with... | |
25599 | (vmulq): ... this. | |
25600 | (__ARM_mve_typeid): Simplify scalar and constant detection. | |
25601 | ||
25602 | 2020-04-07 Jakub Jelinek <jakub@redhat.com> | |
25603 | ||
25604 | PR target/94509 | |
25605 | * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix the check | |
25606 | for inter-lane permutation for 64-byte modes. | |
25607 | ||
25608 | PR target/94488 | |
25609 | * config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3, | |
25610 | ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT. | |
25611 | Assume it is a REG after that instead of testing it and doing FAIL | |
25612 | otherwise. Formatting fix. | |
25613 | ||
25614 | 2020-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
25615 | ||
25616 | * config/rs6000/t-rtems: Delete mcpu=8540 multilib. | |
25617 | ||
25618 | 2020-04-07 Jakub Jelinek <jakub@redhat.com> | |
25619 | ||
25620 | PR target/94500 | |
25621 | * config/i386/i386-expand.c (emit_reduc_half): For V{64QI,32HI}mode | |
25622 | handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes. | |
25623 | ||
25624 | 2020-04-06 Jakub Jelinek <jakub@redhat.com> | |
25625 | ||
25626 | * cselib.c (cselib_subst_to_values): For SP_DERIVED_VALUE_P | |
25627 | + const0_rtx return the SP_DERIVED_VALUE_P. | |
25628 | ||
25629 | 2020-04-06 Richard Sandiford <richard.sandiford@arm.com> | |
25630 | ||
25631 | PR rtl-optimization/92989 | |
25632 | * lra-lives.c (process_bb_lives): Do not treat eh_return data | |
25633 | registers as being live at the beginning of the EH receiver. | |
25634 | ||
25635 | 2020-04-05 Zachary Spytz <zspytz@gmail.com> | |
25636 | ||
25637 | * extend.texi: Add free to list of ISO C90 functions that | |
25638 | are recognized by the compiler. | |
25639 | ||
25640 | 2020-04-05 Nagaraju Mekala <nmekala@xilix.com> | |
25641 | ||
25642 | * config/microblaze/microblaze.c (microblaze_must_save_register): Check | |
25643 | for fast_interrupt. | |
25644 | ||
25645 | * config/microblaze/microblaze.md (trap): Update output pattern. | |
25646 | ||
25647 | 2020-04-04 Hannes Domani <ssbssa@yahoo.de> | |
25648 | Jakub Jelinek <jakub@redhat.com> | |
25649 | ||
25650 | PR debug/94459 | |
25651 | * dwarf2out.c (gen_subprogram_die): Look through references, pointers, | |
25652 | arrays, pointer-to-members, function types and qualifiers when | |
25653 | checking if in-class DIE had an 'auto' or 'decltype(auto)' return type | |
25654 | to emit type again on definition. | |
25655 | ||
25656 | 2020-04-04 Jan Hubicka <hubicka@ucw.cz> | |
25657 | ||
25658 | PR ipa/93940 | |
25659 | * ipa-fnsummary.c (vrp_will_run_p): New function. | |
25660 | (fre_will_run_p): New function. | |
25661 | (evaluate_properties_for_edge): Use it. | |
25662 | * ipa-inline.c (can_inline_edge_by_limits_p): Do not inline | |
25663 | !optimize_debug to optimize_debug. | |
25664 | ||
25665 | 2020-04-04 Jakub Jelinek <jakub@redhat.com> | |
25666 | ||
25667 | PR rtl-optimization/94468 | |
25668 | * cselib.c (references_value_p): Formatting fix. | |
25669 | (cselib_useless_value_p): New function. | |
25670 | (discard_useless_locs, discard_useless_values, | |
25671 | cselib_invalidate_regno_val, cselib_invalidate_mem, | |
25672 | cselib_record_set): Use it instead of | |
25673 | v->locs == 0 && !PRESERVED_VALUE_P (v->val_rtx). | |
25674 | ||
25675 | PR debug/94441 | |
25676 | * tree-iterator.h (expr_single): Declare. | |
25677 | * tree-iterator.c (expr_single): New function. | |
25678 | * tree.h (protected_set_expr_location_if_unset): Declare. | |
25679 | * tree.c (protected_set_expr_location): Use expr_single. | |
25680 | (protected_set_expr_location_if_unset): New function. | |
25681 | ||
25682 | 2020-04-03 Jeff Law <law@redhat.com> | |
25683 | ||
25684 | PR rtl-optimization/92264 | |
25685 | * config/stormy16/stormy16.c (xstormy16_preferred_reload_class): Handle | |
25686 | reloading of auto-increment addressing modes. | |
25687 | ||
25688 | 2020-04-03 H.J. Lu <hongjiu.lu@intel.com> | |
25689 | ||
25690 | PR target/94467 | |
25691 | * config/i386/sse.md (ssse3_pshufbv8qi3): Mark scratch operand | |
25692 | as earlyclobber. | |
25693 | ||
25694 | 2020-04-03 Jeff Law <law@redhat.com> | |
25695 | ||
25696 | PR rtl-optimization/92264 | |
25697 | * config/m32r/m32r.c (m32r_output_block_move): Properly account for | |
25698 | post-increment addressing of source operands as well as residuals | |
25699 | when computing any adjustments to the input pointer. | |
25700 | ||
25701 | 2020-04-03 Jakub Jelinek <jakub@redhat.com> | |
25702 | ||
25703 | PR target/94460 | |
25704 | * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3, | |
25705 | avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do | |
25706 | second half of first lane from first lane of second operand and | |
25707 | first half of second lane from second lane of first operand. | |
25708 | ||
25709 | 2020-04-03 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
25710 | ||
25711 | * config/arm/arm_mve.h: Condition the header file on __ARM_FEATURE_MVE. | |
25712 | ||
25713 | 2020-04-03 Tamar Christina <tamar.christina@arm.com> | |
25714 | ||
25715 | PR target/94396 | |
25716 | * common/config/aarch64/aarch64-common.c | |
25717 | (aarch64_get_extension_string_for_isa_flags): Handle default flags. | |
25718 | ||
25719 | 2020-04-03 Richard Biener <rguenther@suse.de> | |
25720 | ||
25721 | PR middle-end/94465 | |
25722 | * tree.c (array_ref_low_bound): Deal with released SSA names | |
25723 | in index position. | |
25724 | ||
25725 | 2020-04-03 Kwok Cheung Yeung <kcy@codesourcery.com> | |
25726 | ||
25727 | * config/gcn/gcn.c (print_operand): Handle unordered comparison | |
25728 | operators. | |
25729 | * config/gcn/predicates.md (gcn_fp_compare_operator): Add unordered | |
25730 | comparison operators. | |
25731 | ||
25732 | 2020-04-03 Kewen Lin <linkw@gcc.gnu.org> | |
25733 | ||
25734 | PR tree-optimization/94443 | |
25735 | * tree-vect-loop.c (vectorizable_live_operation): Use | |
25736 | gsi_insert_seq_before to replace gsi_insert_before. | |
25737 | ||
25738 | 2020-04-03 Martin Liska <mliska@suse.cz> | |
25739 | ||
25740 | PR ipa/94445 | |
25741 | * ipa-icf-gimple.c (func_checker::compare_gimple_call): | |
25742 | Compare type attributes for gimple_call_fntypes. | |
25743 | ||
25744 | 2020-04-02 Sandra Loosemore <sandra@codesourcery.com> | |
25745 | ||
25746 | * alias.c (get_alias_set): Fix comment typos. | |
25747 | ||
25748 | 2020-04-02 Fritz Reese <foreese@gcc.gnu.org> | |
25749 | ||
25750 | PR fortran/85982 | |
25751 | * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into | |
25752 | attribute checking used by TYPE. | |
25753 | ||
25754 | 2020-04-02 Martin Jambor <mjambor@suse.cz> | |
25755 | ||
25756 | PR ipa/92676 | |
25757 | * ipa-sra.c (struct caller_issues): New fields candidate and | |
25758 | call_from_outside_comdat. | |
25759 | (check_for_caller_issues): Check for calls from outsied of | |
25760 | candidate's same_comdat_group. | |
25761 | (check_all_callers_for_issues): Set up issues.candidate, check result | |
25762 | of the new check. | |
25763 | (mark_callers_calls_comdat_local): New function. | |
25764 | (process_isra_node_results): Set calls_comdat_local of callers if | |
25765 | appropriate. | |
25766 | ||
25767 | 2020-04-02 Richard Biener <rguenther@suse.de> | |
25768 | ||
25769 | PR c/94392 | |
25770 | * common.opt (ffinite-loops): Initialize to zero. | |
25771 | * opts.c (default_options_table): Remove OPT_ffinite_loops | |
25772 | entry. | |
25773 | * cfgloop.h (loop::finite_p): New member. | |
25774 | * cfgloopmanip.c (copy_loop_info): Copy finite_p. | |
25775 | * ipa-icf-gimple.c (func_checker::compare_loops): Compare | |
25776 | finite_p. | |
25777 | * lto-streamer-in.c (input_cfg): Stream finite_p. | |
25778 | * lto-streamer-out.c (output_cfg): Likewise. | |
25779 | * tree-cfg.c (replace_loop_annotate): Initialize finite_p | |
25780 | from flag_finite_loops at CFG build time. | |
25781 | * tree-ssa-loop-niter.c (finite_loop_p): Check the loops | |
25782 | finite_p flag instead of flag_finite_loops. | |
25783 | * doc/invoke.texi (ffinite-loops): Adjust documentation of | |
25784 | default setting. | |
25785 | ||
25786 | 2020-04-02 Richard Biener <rguenther@suse.de> | |
25787 | ||
25788 | PR debug/94450 | |
25789 | * dwarf2out.c (dwarf2out_early_finish): Remove code emitting | |
25790 | DW_TAG_imported_unit. | |
25791 | ||
25792 | 2020-04-02 Maciej W. Rozycki <macro@wdc.com> | |
25793 | ||
25794 | * doc/install.texi (Specific) <riscv32-*-elf, riscv32-*-linux> | |
25795 | <riscv64-*-elf, riscv64-*-linux>: Update binutils requirement to | |
25796 | 2.30. | |
25797 | ||
25798 | 2020-04-02 Kewen Lin <linkw@gcc.gnu.org> | |
25799 | ||
25800 | PR tree-optimization/94401 | |
25801 | * tree-vect-loop.c (vectorizable_load): Handle VMAT_CONTIGUOUS_REVERSE | |
25802 | access type when loading halves of vector to avoid peeling for gaps. | |
25803 | ||
25804 | 2020-04-02 Jakub Jelinek <jakub@redhat.com> | |
25805 | ||
25806 | * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add a space in | |
25807 | between a string literal and MIPS_SYSVERSION_SPEC macro. | |
25808 | ||
25809 | 2020-04-02 Martin Jambor <mjambor@suse.cz> | |
25810 | ||
25811 | * doc/invoke.texi (Optimize Options): Document sra-max-propagations. | |
25812 | ||
25813 | 2020-04-02 Jakub Jelinek <jakub@redhat.com> | |
25814 | ||
25815 | PR rtl-optimization/92264 | |
25816 | * params.opt (-param=max-find-base-term-values=): Decrease default | |
25817 | from 2000 to 200. | |
25818 | ||
25819 | PR rtl-optimization/92264 | |
25820 | * rtl.h (struct rtx_def): Mention that call bit is used as | |
25821 | SP_DERIVED_VALUE_P in cselib.c. | |
25822 | * cselib.c (SP_DERIVED_VALUE_P): Define. | |
25823 | (PRESERVED_VALUE_P, SP_BASED_VALUE_P): Move definitions earlier. | |
25824 | (cselib_hasher::equal): Handle equality between SP_DERIVED_VALUE_P | |
25825 | val_rtx and sp based expression where offsets cancel each other. | |
25826 | (preserve_constants_and_equivs): Formatting fix. | |
25827 | (cselib_reset_table): Add reverse op loc to SP_DERIVED_VALUE_P | |
25828 | locs list for cfa_base_preserved_val if needed. Formatting fix. | |
25829 | (autoinc_split): If the to be returned value is a REG, MEM or | |
25830 | VALUE which has SP_DERIVED_VALUE_P + CONST_INT as one of its | |
25831 | locs, return the SP_DERIVED_VALUE_P VALUE and adjust *off. | |
25832 | (rtx_equal_for_cselib_1): Call autoinc_split even if both | |
25833 | expressions are PLUS in Pmode with CONST_INT second operands. | |
25834 | Handle SP_DERIVED_VALUE_P cases. | |
25835 | (cselib_hash_plus_const_int): New function. | |
25836 | (cselib_hash_rtx): Use it for PLUS in Pmode with CONST_INT | |
25837 | second operand, as well as for PRE_DEC etc. that ought to be | |
25838 | hashed the same way. | |
25839 | (cselib_subst_to_values): Substitute PLUS with Pmode and | |
25840 | CONST_INT operand if the first operand is a VALUE which has | |
25841 | SP_DERIVED_VALUE_P + CONST_INT as one of its locs for the | |
25842 | SP_DERIVED_VALUE_P + adjusted offset. | |
25843 | (cselib_lookup_1): When creating a new VALUE for stack_pointer_rtx, | |
25844 | set SP_DERIVED_VALUE_P on it. Set PRESERVED_VALUE_P when adding | |
25845 | SP_DERIVED_VALUE_P PRESERVED_VALUE_P subseted VALUE location. | |
25846 | * var-tracking.c (vt_initialize): Call cselib_add_permanent_equiv | |
25847 | on the sp value before calling cselib_add_permanent_equiv on the | |
25848 | cfa_base value. | |
25849 | * dse.c (check_for_inc_dec_1, check_for_inc_dec): Punt on RTX_AUTOINC | |
25850 | in the insn without REG_INC note. | |
25851 | (replace_read): Punt on RTX_AUTOINC in the *loc being replaced. | |
25852 | Punt on invalid insns added by copy_to_mode_reg. Formatting fixes. | |
25853 | ||
25854 | PR target/94435 | |
25855 | * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For | |
25856 | y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode. | |
25857 | ||
25858 | 2020-04-02 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
25859 | ||
25860 | PR target/94317 | |
25861 | * config/arm/arm-builtins.c (LDRGBWBXU_QUALIFIERS): Define. | |
25862 | (LDRGBWBXU_Z_QUALIFIERS): Likewise. | |
25863 | * config/arm/arm_mve.h (__arm_vldrdq_gather_base_wb_s64): Modify | |
25864 | intrinsic defintion by adding a new builtin call to writeback into base | |
25865 | address. | |
25866 | (__arm_vldrdq_gather_base_wb_u64): Likewise. | |
25867 | (__arm_vldrdq_gather_base_wb_z_s64): Likewise. | |
25868 | (__arm_vldrdq_gather_base_wb_z_u64): Likewise. | |
25869 | (__arm_vldrwq_gather_base_wb_s32): Likewise. | |
25870 | (__arm_vldrwq_gather_base_wb_u32): Likewise. | |
25871 | (__arm_vldrwq_gather_base_wb_z_s32): Likewise. | |
25872 | (__arm_vldrwq_gather_base_wb_z_u32): Likewise. | |
25873 | (__arm_vldrwq_gather_base_wb_f32): Likewise. | |
25874 | (__arm_vldrwq_gather_base_wb_z_f32): Likewise. | |
25875 | * config/arm/arm_mve_builtins.def (vldrwq_gather_base_wb_z_u): Modify | |
25876 | builtin's qualifier. | |
25877 | (vldrdq_gather_base_wb_z_u): Likewise. | |
25878 | (vldrwq_gather_base_wb_u): Likewise. | |
25879 | (vldrdq_gather_base_wb_u): Likewise. | |
25880 | (vldrwq_gather_base_wb_z_s): Likewise. | |
25881 | (vldrwq_gather_base_wb_z_f): Likewise. | |
25882 | (vldrdq_gather_base_wb_z_s): Likewise. | |
25883 | (vldrwq_gather_base_wb_s): Likewise. | |
25884 | (vldrwq_gather_base_wb_f): Likewise. | |
25885 | (vldrdq_gather_base_wb_s): Likewise. | |
25886 | (vldrwq_gather_base_nowb_z_u): Define builtin. | |
25887 | (vldrdq_gather_base_nowb_z_u): Likewise. | |
25888 | (vldrwq_gather_base_nowb_u): Likewise. | |
25889 | (vldrdq_gather_base_nowb_u): Likewise. | |
25890 | (vldrwq_gather_base_nowb_z_s): Likewise. | |
25891 | (vldrwq_gather_base_nowb_z_f): Likewise. | |
25892 | (vldrdq_gather_base_nowb_z_s): Likewise. | |
25893 | (vldrwq_gather_base_nowb_s): Likewise. | |
25894 | (vldrwq_gather_base_nowb_f): Likewise. | |
25895 | (vldrdq_gather_base_nowb_s): Likewise. | |
25896 | * config/arm/mve.md (mve_vldrwq_gather_base_nowb_<supf>v4si): Define RTL | |
25897 | pattern. | |
25898 | (mve_vldrwq_gather_base_wb_<supf>v4si): Modify RTL pattern. | |
25899 | (mve_vldrwq_gather_base_nowb_z_<supf>v4si): Define RTL pattern. | |
25900 | (mve_vldrwq_gather_base_wb_z_<supf>v4si): Modify RTL pattern. | |
25901 | (mve_vldrwq_gather_base_wb_fv4sf): Modify RTL pattern. | |
25902 | (mve_vldrwq_gather_base_nowb_fv4sf): Define RTL pattern. | |
25903 | (mve_vldrwq_gather_base_wb_z_fv4sf): Modify RTL pattern. | |
25904 | (mve_vldrwq_gather_base_nowb_z_fv4sf): Define RTL pattern. | |
25905 | (mve_vldrdq_gather_base_nowb_<supf>v4di): Define RTL pattern. | |
25906 | (mve_vldrdq_gather_base_wb_<supf>v4di): Modify RTL pattern. | |
25907 | (mve_vldrdq_gather_base_nowb_z_<supf>v4di): Define RTL pattern. | |
25908 | (mve_vldrdq_gather_base_wb_z_<supf>v4di): Modify RTL pattern. | |
25909 | ||
25910 | 2020-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
25911 | ||
25912 | * config/s390/vector.md ("<ti*>add<mode>3", "mul<mode>3") | |
25913 | ("and<mode>3", "notand<mode>3", "ior<mode>3", "ior_not<mode>3") | |
25914 | ("xor<mode>3", "notxor<mode>3", "smin<mode>3", "smax<mode>3") | |
25915 | ("umin<mode>3", "umax<mode>3", "vec_widen_smult_even_<mode>") | |
25916 | ("vec_widen_umult_even_<mode>", "vec_widen_smult_odd_<mode>") | |
25917 | ("vec_widen_umult_odd_<mode>", "add<mode>3", "sub<mode>3") | |
25918 | ("mul<mode>3", "fma<mode>4", "fms<mode>4", "neg_fma<mode>4") | |
25919 | ("neg_fms<mode>4", "*smax<mode>3_vxe", "*smaxv2df3_vx") | |
25920 | ("*smin<mode>3_vxe", "*sminv2df3_vx"): Remove % constraint | |
25921 | modifier. | |
25922 | ("vec_widen_umult_lo_<mode>", "vec_widen_umult_hi_<mode>") | |
25923 | ("vec_widen_smult_lo_<mode>", "vec_widen_smult_hi_<mode>"): | |
25924 | Remove constraints from expander. | |
25925 | * config/s390/vx-builtins.md ("vacc<bhfgq>_<mode>", "vacq") | |
25926 | ("vacccq", "vec_avg<mode>", "vec_avgu<mode>", "vec_vmal<mode>") | |
25927 | ("vec_vmah<mode>", "vec_vmalh<mode>", "vec_vmae<mode>") | |
25928 | ("vec_vmale<mode>", "vec_vmao<mode>", "vec_vmalo<mode>") | |
25929 | ("vec_smulh<mode>", "vec_umulh<mode>", "vec_nor<mode>3") | |
25930 | ("vfmin<mode>", "vfmax<mode>"): Remove % constraint modifier. | |
25931 | ||
25932 | 2020-04-01 Peter Bergner <bergner@linux.ibm.com> | |
25933 | ||
25934 | PR rtl-optimization/94123 | |
25935 | * lower-subreg.c (pass_lower_subreg3::gate): Remove test for | |
25936 | flag_split_wide_types_early. | |
25937 | ||
25938 | 2020-04-01 Joerg Sonnenberger <joerg@bec.de> | |
25939 | ||
25940 | * doc/extend.texi (Common Function Attributes): Fix typo. | |
25941 | ||
25942 | 2020-04-01 Segher Boessenkool <segher@kernel.crashing.org> | |
25943 | ||
25944 | PR target/94420 | |
25945 | * config/rs6000/rs6000.md (*tocref<mode> for P): Add insn condition | |
25946 | on operands[1]. | |
25947 | ||
25948 | 2020-04-01 Zackery Spytz <zspytz@gmail.com> | |
25949 | ||
25950 | * doc/extend.texi: Fix a typo in the documentation of the | |
25951 | copy function attribute. | |
25952 | ||
25953 | 2020-04-01 Jakub Jelinek <jakub@redhat.com> | |
25954 | ||
25955 | PR middle-end/94423 | |
25956 | * tree-object-size.c (pass_object_sizes::execute): Don't call | |
25957 | replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead | |
25958 | call replace_call_with_value. | |
25959 | ||
25960 | 2020-04-01 Kewen Lin <linkw@gcc.gnu.org> | |
25961 | ||
25962 | PR tree-optimization/94043 | |
25963 | * tree-vect-loop.c (vectorizable_live_operation): Generate loop-closed | |
25964 | phi for vec_lhs and use it for lane extraction. | |
25965 | ||
25966 | 2020-03-31 Felix Yang <felix.yang@huawei.com> | |
25967 | ||
25968 | PR tree-optimization/94398 | |
25969 | * tree-vect-stmts.c (vectorizable_store): Instead of calling | |
25970 | vect_supportable_dr_alignment, set alignment_support_scheme to | |
25971 | dr_unaligned_supported for gather-scatter accesses. | |
25972 | (vectorizable_load): Likewise. | |
25973 | ||
25974 | 2020-03-31 Andrew Stubbs <ams@codesourcery.com> | |
25975 | ||
25976 | * config/gcn/gcn-valu.md (V_QI, V_HI, V_HF, V_SI, V_SF, V_DI, V_DF): | |
25977 | New mode iterators. | |
25978 | (vnsi, VnSI, vndi, VnDI): New mode attributes. | |
25979 | (mov<mode>): Use <VnDI> in place of V64DI. | |
25980 | (mov<mode>_exec): Likewise. | |
25981 | (mov<mode>_sgprbase): Likewise. | |
25982 | (reload_out<mode>): Likewise. | |
25983 | (*vec_set<mode>_1): Use GET_MODE_NUNITS instead of constant 64. | |
25984 | (gather_load<mode>v64si): Rename to ... | |
25985 | (gather_load<mode><vnsi>): ... this, and use <VnSI> in place of V64SI, | |
25986 | and <VnDI> in place of V64DI. | |
25987 | (gather<mode>_insn_1offset<exec>): Use <VnDI> in place of V64DI. | |
25988 | (gather<mode>_insn_1offset_ds<exec>): Use <VnSI> in place of V64SI. | |
25989 | (gather<mode>_insn_2offsets<exec>): Use <VnSI> and <VnDI>. | |
25990 | (scatter_store<mode>v64si): Rename to ... | |
25991 | (scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>. | |
25992 | (scatter<mode>_expr<exec_scatter>): Use <VnSI> and <VnDI>. | |
25993 | (scatter<mode>_insn_1offset<exec_scatter>): Likewise. | |
25994 | (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise. | |
25995 | (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. | |
25996 | (ds_bpermute<mode>): Use <VnSI>. | |
25997 | (addv64si3_vcc<exec_vcc>): Rename to ... | |
25998 | (add<mode>3_vcc<exec_vcc>): ... this, and use V_SI. | |
25999 | (addv64si3_vcc_dup<exec_vcc>): Rename to ... | |
26000 | (add<mode>3_vcc_dup<exec_vcc>): ... this, and use V_SI. | |
26001 | (addcv64si3<exec_vcc>): Rename to ... | |
26002 | (addc<mode>3<exec_vcc>): ... this, and use V_SI. | |
26003 | (subv64si3_vcc<exec_vcc>): Rename to ... | |
26004 | (sub<mode>3_vcc<exec_vcc>): ... this, and use V_SI. | |
26005 | (subcv64si3<exec_vcc>): Rename to ... | |
26006 | (subc<mode>3<exec_vcc>): ... this, and use V_SI. | |
26007 | (addv64di3): Rename to ... | |
26008 | (add<mode>3): ... this, and use V_DI. | |
26009 | (addv64di3_exec): Rename to ... | |
26010 | (add<mode>3_exec): ... this, and use V_DI. | |
26011 | (subv64di3): Rename to ... | |
26012 | (sub<mode>3): ... this, and use V_DI. | |
26013 | (subv64di3_exec): Rename to ... | |
26014 | (sub<mode>3_exec): ... this, and use V_DI. | |
26015 | (addv64di3_zext): Rename to ... | |
26016 | (add<mode>3_zext): ... this, and use V_DI and <VnSI>. | |
26017 | (addv64di3_zext_exec): Rename to ... | |
26018 | (add<mode>3_zext_exec): ... this, and use V_DI and <VnSI>. | |
26019 | (addv64di3_zext_dup): Rename to ... | |
26020 | (add<mode>3_zext_dup): ... this, and use V_DI and <VnSI>. | |
26021 | (addv64di3_zext_dup_exec): Rename to ... | |
26022 | (add<mode>3_zext_dup_exec): ... this, and use V_DI and <VnSI>. | |
26023 | (addv64di3_zext_dup2): Rename to ... | |
26024 | (add<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>. | |
26025 | (addv64di3_zext_dup2_exec): Rename to ... | |
26026 | (add<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>. | |
26027 | (addv64di3_sext_dup2): Rename to ... | |
26028 | (add<mode>3_sext_dup2): ... this, and use V_DI and <VnSI>. | |
26029 | (addv64di3_sext_dup2_exec): Rename to ... | |
26030 | (add<mode>3_sext_dup2_exec): ... this, and use V_DI and <VnSI>. | |
26031 | (<su>mulv64si3_highpart<exec>): Rename to ... | |
26032 | (<su>mul<mode>3_highpart<exec>): ... this and use V_SI and <VnDI>. | |
26033 | (mulv64di3): Rename to ... | |
26034 | (mul<mode>3): ... this, and use V_DI and <VnSI>. | |
26035 | (mulv64di3_exec): Rename to ... | |
26036 | (mul<mode>3_exec): ... this, and use V_DI and <VnSI>. | |
26037 | (mulv64di3_zext): Rename to ... | |
26038 | (mul<mode>3_zext): ... this, and use V_DI and <VnSI>. | |
26039 | (mulv64di3_zext_exec): Rename to ... | |
26040 | (mul<mode>3_zext_exec): ... this, and use V_DI and <VnSI>. | |
26041 | (mulv64di3_zext_dup2): Rename to ... | |
26042 | (mul<mode>3_zext_dup2): ... this, and use V_DI and <VnSI>. | |
26043 | (mulv64di3_zext_dup2_exec): Rename to ... | |
26044 | (mul<mode>3_zext_dup2_exec): ... this, and use V_DI and <VnSI>. | |
26045 | (<expander>v64di3): Rename to ... | |
26046 | (<expander><mode>3): ... this, and use V_DI and <VnSI>. | |
26047 | (<expander>v64di3_exec): Rename to ... | |
26048 | (<expander><mode>3_exec): ... this, and use V_DI and <VnSI>. | |
26049 | (<expander>v64si3<exec>): Rename to ... | |
26050 | (<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>. | |
26051 | (v<expander>v64si3<exec>): Rename to ... | |
26052 | (v<expander><mode>3<exec>): ... this, and use V_SI and <VnSI>. | |
26053 | (<expander>v64si3<exec>): Rename to ... | |
26054 | (<expander><vnsi>3<exec>): ... this, and use V_SI. | |
26055 | (subv64df3<exec>): Rename to ... | |
26056 | (sub<mode>3<exec>): ... this, and use V_DF. | |
26057 | (truncv64di<mode>2): Rename to ... | |
26058 | (trunc<vndi><mode>2): ... this, and use <VnDI>. | |
26059 | (truncv64di<mode>2_exec): Rename to ... | |
26060 | (trunc<vndi><mode>2_exec): ... this, and use <VnDI>. | |
26061 | (<convop><mode>v64di2): Rename to ... | |
26062 | (<convop><mode><vndi>2): ... this, and use <VnDI>. | |
26063 | (<convop><mode>v64di2_exec): Rename to ... | |
26064 | (<convop><mode><vndi>2_exec): ... this, and use <VnDI>. | |
26065 | (vec_cmp<u>v64qidi): Rename to ... | |
26066 | (vec_cmp<u><mode>di): ... this, and use <VnSI>. | |
26067 | (vec_cmp<u>v64qidi_exec): Rename to ... | |
26068 | (vec_cmp<u><mode>di_exec): ... this, and use <VnSI>. | |
26069 | (vcond_mask_<mode>di): Use <VnDI>. | |
26070 | (maskload<mode>di): Likewise. | |
26071 | (maskstore<mode>di): Likewise. | |
26072 | (mask_gather_load<mode>v64si): Rename to ... | |
26073 | (mask_gather_load<mode><vnsi>): ... this, and use <VnSI> and <VnDI>. | |
26074 | (mask_scatter_store<mode>v64si): Rename to ... | |
26075 | (mask_scatter_store<mode><vnsi>): ... this, and use <VnSI> and <VnDI>. | |
26076 | (*<reduc_op>_dpp_shr_v64di): Rename to ... | |
26077 | (*<reduc_op>_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>. | |
26078 | (*plus_carry_in_dpp_shr_v64si): Rename to ... | |
26079 | (*plus_carry_in_dpp_shr_<mode>): ... this, and use V_SI. | |
26080 | (*plus_carry_dpp_shr_v64di): Rename to ... | |
26081 | (*plus_carry_dpp_shr_<mode>): ... this, and use V_DI and <VnSI>. | |
26082 | (vec_seriesv64si): Rename to ... | |
26083 | (vec_series<mode>): ... this, and use V_SI. | |
26084 | (vec_seriesv64di): Rename to ... | |
26085 | (vec_series<mode>): ... this, and use V_DI. | |
26086 | ||
26087 | 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com> | |
26088 | ||
26089 | * config/arc/arc.c (arc_print_operand): Use | |
26090 | HOST_WIDE_INT_PRINT_DEC macro. | |
26091 | ||
26092 | 2020-03-31 Claudiu Zissulescu <claziss@synopsys.com> | |
26093 | ||
26094 | * config/arc/arc.h (ASM_FORMAT_PRIVATE_NAME): Fix it. | |
26095 | ||
26096 | 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
26097 | ||
26098 | * config/arm/arm_mve.h (vbicq): Define MVE intrinsic polymorphic | |
26099 | variant. | |
26100 | (__arm_vbicq): Likewise. | |
26101 | ||
26102 | 2020-03-31 Vineet Gupta <vgupta@synopsys.com> | |
26103 | ||
26104 | * config/arc/linux.h: GLIBC_DYNAMIC_LINKER support BE/arc700. | |
26105 | ||
26106 | 2020-03-31 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
26107 | ||
26108 | * config/arm/arm_mve.h (vaddlvq): Move the polymorphic variant to the | |
26109 | common section of both MVE Integer and MVE Floating Point. | |
26110 | (vaddvq): Likewise. | |
26111 | (vaddlvq_p): Likewise. | |
26112 | (vaddvaq): Likewise. | |
26113 | (vaddvq_p): Likewise. | |
26114 | (vcmpcsq): Likewise. | |
26115 | (vmlsdavxq): Likewise. | |
26116 | (vmlsdavq): Likewise. | |
26117 | (vmladavxq): Likewise. | |
26118 | (vmladavq): Likewise. | |
26119 | (vminvq): Likewise. | |
26120 | (vminavq): Likewise. | |
26121 | (vmaxvq): Likewise. | |
26122 | (vmaxavq): Likewise. | |
26123 | (vmlaldavq): Likewise. | |
26124 | (vcmphiq): Likewise. | |
26125 | (vaddlvaq): Likewise. | |
26126 | (vrmlaldavhq): Likewise. | |
26127 | (vrmlaldavhxq): Likewise. | |
26128 | (vrmlsldavhq): Likewise. | |
26129 | (vrmlsldavhxq): Likewise. | |
26130 | (vmlsldavxq): Likewise. | |
26131 | (vmlsldavq): Likewise. | |
26132 | (vabavq): Likewise. | |
26133 | (vrmlaldavhaq): Likewise. | |
26134 | (vcmpgeq_m_n): Likewise. | |
26135 | (vmlsdavxq_p): Likewise. | |
26136 | (vmlsdavq_p): Likewise. | |
26137 | (vmlsdavaxq): Likewise. | |
26138 | (vmlsdavaq): Likewise. | |
26139 | (vaddvaq_p): Likewise. | |
26140 | (vcmpcsq_m_n): Likewise. | |
26141 | (vcmpcsq_m): Likewise. | |
26142 | (vmladavxq_p): Likewise. | |
26143 | (vmladavq_p): Likewise. | |
26144 | (vmladavaxq): Likewise. | |
26145 | (vmladavaq): Likewise. | |
26146 | (vminvq_p): Likewise. | |
26147 | (vminavq_p): Likewise. | |
26148 | (vmaxvq_p): Likewise. | |
26149 | (vmaxavq_p): Likewise. | |
26150 | (vcmphiq_m): Likewise. | |
26151 | (vaddlvaq_p): Likewise. | |
26152 | (vmlaldavaq): Likewise. | |
26153 | (vmlaldavaxq): Likewise. | |
26154 | (vmlaldavq_p): Likewise. | |
26155 | (vmlaldavxq_p): Likewise. | |
26156 | (vmlsldavaq): Likewise. | |
26157 | (vmlsldavaxq): Likewise. | |
26158 | (vmlsldavq_p): Likewise. | |
26159 | (vmlsldavxq_p): Likewise. | |
26160 | (vrmlaldavhaxq): Likewise. | |
26161 | (vrmlaldavhq_p): Likewise. | |
26162 | (vrmlaldavhxq_p): Likewise. | |
26163 | (vrmlsldavhaq): Likewise. | |
26164 | (vrmlsldavhaxq): Likewise. | |
26165 | (vrmlsldavhq_p): Likewise. | |
26166 | (vrmlsldavhxq_p): Likewise. | |
26167 | (vabavq_p): Likewise. | |
26168 | (vmladavaq_p): Likewise. | |
26169 | (vstrbq_scatter_offset): Likewise. | |
26170 | (vstrbq_p): Likewise. | |
26171 | (vstrbq_scatter_offset_p): Likewise. | |
26172 | (vstrdq_scatter_base_p): Likewise. | |
26173 | (vstrdq_scatter_base): Likewise. | |
26174 | (vstrdq_scatter_offset_p): Likewise. | |
26175 | (vstrdq_scatter_offset): Likewise. | |
26176 | (vstrdq_scatter_shifted_offset_p): Likewise. | |
26177 | (vstrdq_scatter_shifted_offset): Likewise. | |
26178 | (vmaxq_x): Likewise. | |
26179 | (vminq_x): Likewise. | |
26180 | (vmovlbq_x): Likewise. | |
26181 | (vmovltq_x): Likewise. | |
26182 | (vmulhq_x): Likewise. | |
26183 | (vmullbq_int_x): Likewise. | |
26184 | (vmullbq_poly_x): Likewise. | |
26185 | (vmulltq_int_x): Likewise. | |
26186 | (vmulltq_poly_x): Likewise. | |
26187 | (vstrbq): Likewise. | |
26188 | ||
26189 | 2020-03-31 Jakub Jelinek <jakub@redhat.com> | |
26190 | ||
26191 | PR target/94368 | |
26192 | * config/aarch64/constraints.md (Uph): New constraint. | |
26193 | * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr. | |
26194 | (@aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's | |
26195 | constraint. | |
26196 | ||
26197 | 2020-03-31 Marc Glisse <marc.glisse@inria.fr> | |
26198 | Jakub Jelinek <jakub@redhat.com> | |
26199 | ||
26200 | PR middle-end/94412 | |
26201 | * fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use | |
26202 | ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P. | |
26203 | ||
26204 | 2020-03-31 Jakub Jelinek <jakub@redhat.com> | |
26205 | ||
26206 | PR tree-optimization/94403 | |
26207 | * gimple-ssa-store-merging.c (verify_symbolic_number_p): Allow also | |
26208 | ENUMERAL_TYPE lhs_type. | |
26209 | ||
26210 | PR rtl-optimization/94344 | |
26211 | * tree-ssa-forwprop.c (simplify_rotate): Handle also same precision | |
26212 | conversions, either on both operands of |^+ or just one. Handle | |
26213 | also extra same precision conversion on RSHIFT_EXPR first operand | |
26214 | provided RSHIFT_EXPR is performed in unsigned type. | |
26215 | ||
26216 | 2020-03-30 David Malcolm <dmalcolm@redhat.com> | |
26217 | ||
26218 | * lra.c (finish_insn_code_data_once): Set the array elements | |
26219 | to NULL after freeing them. | |
26220 | ||
26221 | 2020-03-30 Andreas Schwab <schwab@suse.de> | |
26222 | ||
26223 | * config/host-linux.c (TRY_EMPTY_VM_SPACE) [__riscv && __LP64__]: | |
26224 | Define. | |
26225 | ||
26226 | 2020-03-30 Will Schmidt <will_schmidt@vnet.ibm.com> | |
26227 | ||
26228 | * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove code | |
26229 | to skip defining builtins based on builtin_mask. | |
26230 | ||
26231 | 2020-03-30 Jakub Jelinek <jakub@redhat.com> | |
26232 | ||
26233 | PR target/94343 | |
26234 | * config/i386/sse.md (<mask_codefor>one_cmpl<mode>2<mask_name>): If | |
26235 | !TARGET_AVX512VL, use 512-bit vpternlog and make sure the input | |
26236 | operand is a register. Don't enable masked variants for V*[QH]Imode. | |
26237 | ||
26238 | PR target/93069 | |
26239 | * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use | |
26240 | <store_mask_constraint> instead of m in output operand constraint. | |
26241 | (vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of | |
26242 | %{%3%}. | |
26243 | ||
26244 | 2020-03-30 Alan Modra <amodra@gmail.com> | |
26245 | ||
26246 | * config/rs6000/rs6000.c (rs6000_call_aix): Emit cookie to pattern. | |
26247 | (rs6000_indirect_call_template_1): Adjust to suit. | |
26248 | * config/rs6000/rs6000.md (call_local): Merge call_local32, | |
26249 | call_local64, and call_local_aix. | |
26250 | (call_value_local): Simlarly. | |
26251 | (call_nonlocal_aix, call_value_nonlocal_aix): Adjust rtl to suit, | |
26252 | and disable pattern when CALL_LONG. | |
26253 | (call_indirect_aix, call_value_indirect_aix): Adjust rtl. | |
26254 | (call_indirect_elfv2, call_indirect_pcrel): Likewise. | |
26255 | (call_value_indirect_elfv2, call_value_indirect_pcrel): Likewise. | |
26256 | ||
26257 | 2020-03-29 H.J. Lu <hongjiu.lu@intel.com> | |
26258 | ||
26259 | PR driver/94381 | |
26260 | * doc/invoke.texi: Update -falign-functions, -falign-loops and | |
26261 | -falign-jumps documentation. | |
26262 | ||
26263 | 2020-03-29 Martin Liska <mliska@suse.cz> | |
26264 | ||
26265 | PR ipa/94363 | |
26266 | * cgraphunit.c (process_function_and_variable_attributes): Remove | |
26267 | double 'attribute' words. | |
26268 | ||
26269 | 2020-03-29 John David Anglin <dave.anglin@bell.net> | |
26270 | ||
26271 | * config/pa/pa.c (pa_asm_output_aligned_bss): Delete duplicate | |
26272 | .align output. | |
26273 | ||
26274 | 2020-03-28 Jakub Jelinek <jakub@redhat.com> | |
26275 | ||
26276 | PR c/93573 | |
26277 | * c-decl.c (grokdeclarator): After issuing errors, set size_int_const | |
26278 | to true after setting size to integer_one_node. | |
26279 | ||
26280 | PR tree-optimization/94329 | |
26281 | * tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt | |
26282 | on the last stmt in a bb, make sure gsi_prev isn't done immediately | |
26283 | after gsi_last_bb. | |
26284 | ||
26285 | 2020-03-27 Alan Modra <amodra@gmail.com> | |
26286 | ||
26287 | PR target/94145 | |
26288 | * config/rs6000/rs6000.c (rs6000_longcall_ref): Use unspec_volatile | |
26289 | for PLT16_LO and PLT_PCREL. | |
26290 | * config/rs6000/rs6000.md (UNSPEC_PLT16_LO, UNSPEC_PLT_PCREL): Remove. | |
26291 | (UNSPECV_PLT16_LO, UNSPECV_PLT_PCREL): Define. | |
26292 | (pltseq_plt16_lo_, pltseq_plt_pcrel): Use unspec_volatile. | |
26293 | ||
26294 | 2020-03-27 Martin Sebor <msebor@redhat.com> | |
26295 | ||
26296 | PR c++/94098 | |
26297 | * calls.c (init_attr_rdwr_indices): Iterate over all access attributes. | |
26298 | ||
26299 | 2020-03-27 Andrew Stubbs <ams@codesourcery.com> | |
26300 | ||
26301 | * config/gcn/gcn-valu.md: | |
26302 | (VEC_SUBDWORD_MODE): Rename to V_QIHI throughout. | |
26303 | (VEC_1REG_MODE): Delete. | |
26304 | (VEC_1REG_ALT): Delete. | |
26305 | (VEC_ALL1REG_MODE): Rename to V_1REG throughout. | |
26306 | (VEC_1REG_INT_MODE): Delete. | |
26307 | (VEC_ALL1REG_INT_MODE): Rename to V_INT_1REG throughout. | |
26308 | (VEC_ALL1REG_INT_ALT): Rename to V_INT_1REG_ALT throughout. | |
26309 | (VEC_2REG_MODE): Rename to V_2REG throughout. | |
26310 | (VEC_REG_MODE): Rename to V_noHI throughout. | |
26311 | (VEC_ALLREG_MODE): Rename to V_ALL throughout. | |
26312 | (VEC_ALLREG_ALT): Rename to V_ALL_ALT throughout. | |
26313 | (VEC_ALLREG_INT_MODE): Rename to V_INT throughout. | |
26314 | (VEC_INT_MODE): Delete. | |
26315 | (VEC_FP_MODE): Rename to V_FP throughout and move to top. | |
26316 | (VEC_FP_1REG_MODE): Rename to V_FP_1REG throughout and move to top. | |
26317 | (FP_MODE): Delete and replace with FP throughout. | |
26318 | (FP_1REG_MODE): Delete and replace with FP_1REG throughout. | |
26319 | (VCMP_MODE): Rename to V_noQI throughout and move to top. | |
26320 | (VCMP_MODE_INT): Rename to V_INT_noQI throughout and move to top. | |
26321 | * config/gcn/gcn.md (FP): New mode iterator. | |
26322 | (FP_1REG): New mode iterator. | |
26323 | ||
26324 | 2020-03-27 David Malcolm <dmalcolm@redhat.com> | |
26325 | ||
26326 | * doc/invoke.texi (-fdump-analyzer-supergraph): Document that this | |
26327 | now emits two .dot files. | |
26328 | * graphviz.cc (graphviz_out::begin_tr): Only emit a TR, not a TD. | |
26329 | (graphviz_out::end_tr): Only close a TR, not a TD. | |
26330 | (graphviz_out::begin_td): New. | |
26331 | (graphviz_out::end_td): New. | |
26332 | (graphviz_out::begin_trtd): New, replacing the old implementation | |
26333 | of graphviz_out::begin_tr. | |
26334 | (graphviz_out::end_tdtr): New, replacing the old implementation | |
26335 | of graphviz_out::end_tr. | |
26336 | * graphviz.h (graphviz_out::begin_td): New decl. | |
26337 | (graphviz_out::end_td): New decl. | |
26338 | (graphviz_out::begin_trtd): New decl. | |
26339 | (graphviz_out::end_tdtr): New decl. | |
26340 | ||
26341 | 2020-03-27 Richard Biener <rguenther@suse.de> | |
26342 | ||
26343 | PR debug/94273 | |
26344 | * dwarf2out.c (should_emit_struct_debug): Return false for | |
26345 | DINFO_LEVEL_TERSE. | |
26346 | ||
26347 | 2020-03-27 Richard Biener <rguenther@suse.de> | |
26348 | ||
26349 | PR tree-optimization/94352 | |
26350 | * tree-ssa-propagate.c (ssa_prop_init): Move seeding of the | |
26351 | worklist ... | |
26352 | (ssa_propagation_engine::ssa_propagate): ... here after | |
26353 | initializing curr_order. | |
26354 | ||
26355 | 2020-03-27 Kewen Lin <linkw@gcc.gnu.org> | |
26356 | ||
26357 | PR tree-optimization/90332 | |
26358 | * tree-vect-stmts.c (vector_vector_composition_type): New function. | |
26359 | (get_group_load_store_type): Adjust to call | |
26360 | vector_vector_composition_type, extend it to construct with scalar | |
26361 | types. | |
26362 | (vectorizable_load): Likewise. | |
26363 | ||
26364 | 2020-03-27 Roman Zhuykov <zhroma@ispras.ru> | |
26365 | ||
26366 | * ddg.c (create_ddg_dep_from_intra_loop_link): Remove assertions. | |
26367 | (create_ddg_dep_no_link): Likewise. | |
26368 | (add_cross_iteration_register_deps): Move debug instruction check. | |
26369 | Other minor refactoring. | |
26370 | (add_intra_loop_mem_dep): Do not check for debug instructions. | |
26371 | (add_inter_loop_mem_dep): Likewise. | |
26372 | (build_intra_loop_deps): Likewise. | |
26373 | (create_ddg): Do not include debug insns into the graph. | |
26374 | * ddg.h (struct ddg): Remove num_debug field. | |
26375 | * modulo-sched.c (doloop_register_get): Adjust condition. | |
26376 | (res_MII): Remove DDG num_debug field usage. | |
26377 | (sms_schedule_by_order): Use assertion against debug insns. | |
26378 | (ps_has_conflicts): Drop debug insn check. | |
26379 | ||
26380 | 2020-03-26 Jakub Jelinek <jakub@redhat.com> | |
26381 | ||
26382 | PR debug/94323 | |
26383 | * tree.c (protected_set_expr_location): Recurse on STATEMENT_LIST | |
26384 | that contains exactly one non-DEBUG_BEGIN_STMT statement. | |
26385 | ||
26386 | PR debug/94281 | |
26387 | * gimple.h (gimple_seq_first_nondebug_stmt): New function. | |
26388 | (gimple_seq_last_nondebug_stmt): Don't return NULL if seq contains | |
26389 | a single non-debug stmt followed by one or more debug stmts. | |
26390 | * gimplify.c (gimplify_body): Use gimple_seq_first_nondebug_stmt | |
26391 | instead of gimple_seq_first_stmt, use gimple_seq_first_nondebug_stmt | |
26392 | and gimple_seq_last_nondebug_stmt instead of gimple_seq_first and | |
26393 | gimple_seq_last to check if outer_stmt gbind could be reused and | |
26394 | if yes and it is surrounded by any debug stmts, move them into the | |
26395 | gbind body. | |
26396 | ||
26397 | PR rtl-optimization/92264 | |
26398 | * var-tracking.c (add_stores): Call cselib_set_value_sp_based even | |
26399 | for sp based values in !frame_pointer_needed | |
26400 | && !ACCUMULATE_OUTGOING_ARGS functions. | |
26401 | ||
26402 | 2020-03-26 Felix Yang <felix.yang@huawei.com> | |
26403 | ||
26404 | PR tree-optimization/94269 | |
26405 | * tree-ssa-math-opts.c (convert_plusminus_to_widen): Restrict | |
26406 | this | |
26407 | operation to single basic block. | |
26408 | ||
26409 | 2020-03-25 Jeff Law <law@redhat.com> | |
26410 | ||
26411 | PR rtl-optimization/90275 | |
26412 | * config/sh/sh.md (mov_neg_si_t): Clobber the T register in the | |
26413 | pattern. | |
26414 | ||
26415 | 2020-03-25 Jakub Jelinek <jakub@redhat.com> | |
26416 | ||
26417 | PR target/94292 | |
26418 | * config/arm/arm.c (arm_gen_dicompare_reg): Set mode of COMPARE to | |
26419 | mode rather than VOIDmode. | |
26420 | ||
26421 | 2020-03-25 Martin Sebor <msebor@redhat.com> | |
26422 | ||
26423 | PR middle-end/94004 | |
26424 | * gimple-ssa-warn-alloca.c (pass_walloca::execute): Issue warnings | |
26425 | even for alloca calls resulting from system macro expansion. | |
26426 | Include inlining context in all warnings. | |
26427 | ||
26428 | 2020-03-25 Richard Sandiford <richard.sandiford@arm.com> | |
26429 | ||
26430 | PR target/94254 | |
26431 | * config/rs6000/rs6000.c (rs6000_can_change_mode_class): Allow | |
26432 | FPRs to change between SDmode and DDmode. | |
26433 | ||
26434 | 2020-03-25 Martin Sebor <msebor@redhat.com> | |
26435 | ||
26436 | PR tree-optimization/94131 | |
26437 | * gimple-fold.c (get_range_strlen_tree): Fail for variable-length | |
26438 | types and decls. | |
26439 | * tree-ssa-strlen.c (get_range_strlen_dynamic): Avoid assuming | |
26440 | types have constant sizes. | |
26441 | ||
26442 | 2020-03-25 Martin Liska <mliska@suse.cz> | |
26443 | ||
26444 | PR lto/94259 | |
26445 | * configure.ac: Report error only when --with-zstd | |
26446 | is used. | |
26447 | * configure: Regenerate. | |
26448 | ||
26449 | 2020-03-25 Jakub Jelinek <jakub@redhat.com> | |
26450 | ||
26451 | PR target/94308 | |
26452 | * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Set | |
26453 | INSN_CODE (insn) to -1 when changing the pattern. | |
26454 | ||
26455 | 2020-03-25 Martin Liska <mliska@suse.cz> | |
26456 | ||
26457 | PR target/93274 | |
26458 | PR ipa/94271 | |
26459 | * config/i386/i386-features.c (make_resolver_func): Drop | |
26460 | public flag for resolver. | |
26461 | * config/rs6000/rs6000.c (make_resolver_func): Add comdat | |
26462 | group for resolver and drop public flag if possible. | |
26463 | * multiple_target.c (create_dispatcher_calls): Drop unique_name | |
26464 | and resolution as we want to enable LTO privatization of the default | |
26465 | symbol. | |
26466 | ||
26467 | 2020-03-25 Martin Liska <mliska@suse.cz> | |
26468 | ||
26469 | PR lto/94259 | |
26470 | * configure.ac: Respect --without-zstd and report | |
26471 | error when we can't find header file with --with-zstd. | |
26472 | * configure: Regenerate. | |
26473 | ||
26474 | 2020-03-25 Jakub Jelinek <jakub@redhat.com> | |
26475 | ||
26476 | PR middle-end/94303 | |
26477 | * varasm.c (output_constructor_array_range): If local->index | |
26478 | RANGE_EXPR doesn't start at the current location in the constructor, | |
26479 | skip needed number of bytes using assemble_zeros or assert we don't | |
26480 | go backwards. | |
26481 | ||
26482 | PR c++/94223 | |
26483 | * langhooks.c (lhd_set_decl_assembler_name): Use a static ulong | |
26484 | counter instead of DECL_UID. | |
26485 | ||
26486 | PR tree-optimization/94300 | |
26487 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): If pd.offset | |
26488 | is positive, make sure that off + size isn't larger than needed_len. | |
26489 | ||
26490 | 2020-03-25 Richard Biener <rguenther@suse.de> | |
26491 | Jakub Jelinek <jakub@redhat.com> | |
26492 | ||
26493 | PR debug/94283 | |
26494 | * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards. | |
26495 | ||
26496 | 2020-03-24 Christophe Lyon <christophe.lyon@linaro.org> | |
26497 | ||
26498 | * doc/sourcebuild.texi (ARM-specific attributes): Add | |
26499 | arm_fp_dp_ok. | |
26500 | (Features for dg-add-options): Add arm_fp_dp. | |
26501 | ||
26502 | 2020-03-24 John David Anglin <danglin@gcc.gnu.org> | |
26503 | ||
26504 | PR lto/94249 | |
26505 | * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__. | |
26506 | ||
26507 | 2020-03-24 Tobias Burnus <tobias@codesourcery.com> | |
26508 | ||
26509 | PR libgomp/81689 | |
26510 | * omp-offload.c (omp_finish_file): Fix target-link handling if | |
26511 | targetm_common.have_named_sections is false. | |
26512 | ||
26513 | 2020-03-24 Jakub Jelinek <jakub@redhat.com> | |
26514 | ||
26515 | PR target/94286 | |
26516 | * config/arm/arm.md (subvdi4, usubvsi4, usubvdi4): Use gen_int_mode | |
26517 | instead of GEN_INT. | |
26518 | ||
26519 | PR debug/94285 | |
26520 | * tree-ssa-loop-manip.c (create_iv): If after, set stmt location to | |
26521 | e->goto_locus even if gsi_bb (*incr_pos) contains only debug stmts. | |
26522 | If not after and at *incr_pos is a debug stmt, set stmt location to | |
26523 | location of next non-debug stmt after it if any. | |
26524 | ||
26525 | PR debug/94283 | |
26526 | * tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set | |
26527 | GF_PLF_2, but don't add them to worklist. Don't add an assigment to | |
26528 | worklist or set GF_PLF_2 just because it is used in a debug stmt in | |
26529 | another bb. Formatting improvements. | |
26530 | ||
26531 | PR debug/94277 | |
26532 | * cgraphunit.c (check_global_declaration): For DECL_EXTERNAL and | |
26533 | non-TREE_PUBLIC non-DECL_ARTIFICIAL FUNCTION_DECLs, set TREE_PUBLIC | |
26534 | regardless of whether TREE_NO_WARNING is set on it or whether | |
26535 | warn_unused_function is true or not. | |
26536 | ||
26537 | 2020-03-23 Jeff Law <law@redhat.com> | |
26538 | ||
26539 | PR rtl-optimization/90275 | |
26540 | PR target/94238 | |
26541 | PR target/94144 | |
26542 | * simplify-rtx.c (comparison_code_valid_for_mode): New function. | |
26543 | (simplify_logical_relational_operation): Use it. | |
26544 | ||
26545 | 2020-03-23 Jakub Jelinek <jakub@redhat.com> | |
26546 | ||
26547 | PR c++/91993 | |
26548 | * tree.c (get_narrower): Handle COMPOUND_EXPR by recursing on | |
26549 | ultimate rhs and if returned something different, reconstructing | |
26550 | the COMPOUND_EXPRs. | |
26551 | ||
26552 | 2020-03-23 Lewis Hyatt <lhyatt@gmail.com> | |
26553 | ||
26554 | * opts.c (print_filtered_help): Improve the help text for alias options. | |
26555 | ||
26556 | 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
26557 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
26558 | Mihail Ionescu <mihail.ionescu@arm.com> | |
26559 | ||
26560 | * config/arm/arm_mve.h (vshlcq_m_s8): Define macro. | |
26561 | (vshlcq_m_u8): Likewise. | |
26562 | (vshlcq_m_s16): Likewise. | |
26563 | (vshlcq_m_u16): Likewise. | |
26564 | (vshlcq_m_s32): Likewise. | |
26565 | (vshlcq_m_u32): Likewise. | |
26566 | (__arm_vshlcq_m_s8): Define intrinsic. | |
26567 | (__arm_vshlcq_m_u8): Likewise. | |
26568 | (__arm_vshlcq_m_s16): Likewise. | |
26569 | (__arm_vshlcq_m_u16): Likewise. | |
26570 | (__arm_vshlcq_m_s32): Likewise. | |
26571 | (__arm_vshlcq_m_u32): Likewise. | |
26572 | (vshlcq_m): Define polymorphic variant. | |
26573 | * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_UNONE_IMM_UNONE): | |
26574 | Use builtin qualifier. | |
26575 | (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise. | |
26576 | * config/arm/mve.md (mve_vshlcq_m_vec_<supf><mode>): Define RTL pattern. | |
26577 | (mve_vshlcq_m_carry_<supf><mode>): Likewise. | |
26578 | (mve_vshlcq_m_<supf><mode>): Likewise. | |
26579 | ||
26580 | 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
26581 | ||
26582 | * config/arm/arm-builtins.c (LSLL_QUALIFIERS): Define builtin qualifier. | |
26583 | (UQSHL_QUALIFIERS): Likewise. | |
26584 | (ASRL_QUALIFIERS): Likewise. | |
26585 | (SQSHL_QUALIFIERS): Likewise. | |
26586 | * config/arm/arm_mve.h (__ARM_BIG_ENDIAN): Check to not support MVE in | |
26587 | Big-Endian Mode. | |
26588 | (sqrshr): Define macro. | |
26589 | (sqrshrl): Likewise. | |
26590 | (sqrshrl_sat48): Likewise. | |
26591 | (sqshl): Likewise. | |
26592 | (sqshll): Likewise. | |
26593 | (srshr): Likewise. | |
26594 | (srshrl): Likewise. | |
26595 | (uqrshl): Likewise. | |
26596 | (uqrshll): Likewise. | |
26597 | (uqrshll_sat48): Likewise. | |
26598 | (uqshl): Likewise. | |
26599 | (uqshll): Likewise. | |
26600 | (urshr): Likewise. | |
26601 | (urshrl): Likewise. | |
26602 | (lsll): Likewise. | |
26603 | (asrl): Likewise. | |
26604 | (__arm_lsll): Define intrinsic. | |
26605 | (__arm_asrl): Likewise. | |
26606 | (__arm_uqrshll): Likewise. | |
26607 | (__arm_uqrshll_sat48): Likewise. | |
26608 | (__arm_sqrshrl): Likewise. | |
26609 | (__arm_sqrshrl_sat48): Likewise. | |
26610 | (__arm_uqshll): Likewise. | |
26611 | (__arm_urshrl): Likewise. | |
26612 | (__arm_srshrl): Likewise. | |
26613 | (__arm_sqshll): Likewise. | |
26614 | (__arm_uqrshl): Likewise. | |
26615 | (__arm_sqrshr): Likewise. | |
26616 | (__arm_uqshl): Likewise. | |
26617 | (__arm_urshr): Likewise. | |
26618 | (__arm_sqshl): Likewise. | |
26619 | (__arm_srshr): Likewise. | |
26620 | * config/arm/arm_mve_builtins.def (LSLL_QUALIFIERS): Use builtin | |
26621 | qualifier. | |
26622 | (UQSHL_QUALIFIERS): Likewise. | |
26623 | (ASRL_QUALIFIERS): Likewise. | |
26624 | (SQSHL_QUALIFIERS): Likewise. | |
26625 | * config/arm/mve.md (mve_uqrshll_sat<supf>_di): Define RTL pattern. | |
26626 | (mve_sqrshrl_sat<supf>_di): Likewise. | |
26627 | (mve_uqrshl_si): Likewise. | |
26628 | (mve_sqrshr_si): Likewise. | |
26629 | (mve_uqshll_di): Likewise. | |
26630 | (mve_urshrl_di): Likewise. | |
26631 | (mve_uqshl_si): Likewise. | |
26632 | (mve_urshr_si): Likewise. | |
26633 | (mve_sqshl_si): Likewise. | |
26634 | (mve_srshr_si): Likewise. | |
26635 | (mve_srshrl_di): Likewise. | |
26636 | (mve_sqshll_di): Likewise. | |
26637 | ||
26638 | 2020-03-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
26639 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
26640 | Mihail Ionescu <mihail.ionescu@arm.com> | |
26641 | ||
26642 | * config/arm/arm_mve.h (vsetq_lane_f16): Define macro. | |
26643 | (vsetq_lane_f32): Likewise. | |
26644 | (vsetq_lane_s16): Likewise. | |
26645 | (vsetq_lane_s32): Likewise. | |
26646 | (vsetq_lane_s8): Likewise. | |
26647 | (vsetq_lane_s64): Likewise. | |
26648 | (vsetq_lane_u8): Likewise. | |
26649 | (vsetq_lane_u16): Likewise. | |
26650 | (vsetq_lane_u32): Likewise. | |
26651 | (vsetq_lane_u64): Likewise. | |
26652 | (vgetq_lane_f16): Likewise. | |
26653 | (vgetq_lane_f32): Likewise. | |
26654 | (vgetq_lane_s16): Likewise. | |
26655 | (vgetq_lane_s32): Likewise. | |
26656 | (vgetq_lane_s8): Likewise. | |
26657 | (vgetq_lane_s64): Likewise. | |
26658 | (vgetq_lane_u8): Likewise. | |
26659 | (vgetq_lane_u16): Likewise. | |
26660 | (vgetq_lane_u32): Likewise. | |
26661 | (vgetq_lane_u64): Likewise. | |
26662 | (__ARM_NUM_LANES): Likewise. | |
26663 | (__ARM_LANEQ): Likewise. | |
26664 | (__ARM_CHECK_LANEQ): Likewise. | |
26665 | (__arm_vsetq_lane_s16): Define intrinsic. | |
26666 | (__arm_vsetq_lane_s32): Likewise. | |
26667 | (__arm_vsetq_lane_s8): Likewise. | |
26668 | (__arm_vsetq_lane_s64): Likewise. | |
26669 | (__arm_vsetq_lane_u8): Likewise. | |
26670 | (__arm_vsetq_lane_u16): Likewise. | |
26671 | (__arm_vsetq_lane_u32): Likewise. | |
26672 | (__arm_vsetq_lane_u64): Likewise. | |
26673 | (__arm_vgetq_lane_s16): Likewise. | |
26674 | (__arm_vgetq_lane_s32): Likewise. | |
26675 | (__arm_vgetq_lane_s8): Likewise. | |
26676 | (__arm_vgetq_lane_s64): Likewise. | |
26677 | (__arm_vgetq_lane_u8): Likewise. | |
26678 | (__arm_vgetq_lane_u16): Likewise. | |
26679 | (__arm_vgetq_lane_u32): Likewise. | |
26680 | (__arm_vgetq_lane_u64): Likewise. | |
26681 | (__arm_vsetq_lane_f16): Likewise. | |
26682 | (__arm_vsetq_lane_f32): Likewise. | |
26683 | (__arm_vgetq_lane_f16): Likewise. | |
26684 | (__arm_vgetq_lane_f32): Likewise. | |
26685 | (vgetq_lane): Define polymorphic variant. | |
26686 | (vsetq_lane): Likewise. | |
26687 | * config/arm/mve.md (mve_vec_extract<mode><V_elem_l>): Define RTL | |
26688 | pattern. | |
26689 | (mve_vec_extractv2didi): Likewise. | |
26690 | (mve_vec_extract_sext_internal<mode>): Likewise. | |
26691 | (mve_vec_extract_zext_internal<mode>): Likewise. | |
26692 | (mve_vec_set<mode>_internal): Likewise. | |
26693 | (mve_vec_setv2di_internal): Likewise. | |
26694 | * config/arm/neon.md (vec_set<mode>): Move RTL pattern to vec-common.md | |
26695 | file. | |
26696 | (vec_extract<mode><V_elem_l>): Rename to | |
26697 | "neon_vec_extract<mode><V_elem_l>". | |
26698 | (vec_extractv2didi): Rename to "neon_vec_extractv2didi". | |
26699 | * config/arm/vec-common.md (vec_extract<mode><V_elem_l>): Define RTL | |
26700 | pattern common for MVE and NEON. | |
26701 | (vec_set<mode>): Move RTL pattern from neon.md and modify to accept both | |
26702 | MVE and NEON. | |
26703 | ||
26704 | 2020-03-23 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
26705 | ||
26706 | * config/arm/mve.md (earlyclobber_32): New mode attribute. | |
26707 | (mve_vrev64q_*, mve_vcaddq*, mve_vhcaddq_*, mve_vcmulq_*, | |
26708 | mve_vmull[bt]q_*, mve_vqdmull[bt]q_*): Add appropriate early clobbers. | |
26709 | ||
26710 | 2020-03-23 Richard Biener <rguenther@suse.de> | |
26711 | ||
26712 | PR tree-optimization/94261 | |
26713 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove | |
26714 | IL operand swapping code. | |
26715 | (vect_slp_rearrange_stmts): Do not arrange isomorphic | |
26716 | nodes that would need operation code adjustments. | |
26717 | ||
26718 | 2020-03-23 Tobias Burnus <tobias@codesourcery.com> | |
26719 | ||
26720 | * doc/install.texi (amdgcn-*-amdhsa): Renamed | |
26721 | from amdgcn-unknown-amdhsa; change | |
26722 | amdgcn-unknown-amdhsa to amdgcn-amdhsa. | |
26723 | ||
26724 | 2020-03-23 Richard Biener <rguenther@suse.de> | |
26725 | ||
26726 | PR ipa/94245 | |
26727 | * ipa-prop.c (ipa_read_jump_function): Build the ADDR_EXRP | |
26728 | directly rather than also folding it via build_fold_addr_expr. | |
26729 | ||
26730 | 2020-03-23 Richard Biener <rguenther@suse.de> | |
26731 | ||
26732 | PR tree-optimization/94266 | |
26733 | * tree-ssa-forwprop.c (pass_forwprop::execute): Do not propagate | |
26734 | addresses of TARGET_MEM_REFs. | |
26735 | ||
26736 | 2020-03-23 Martin Liska <mliska@suse.cz> | |
26737 | ||
26738 | PR ipa/94250 | |
26739 | * symtab.c (symtab_node::clone_references): Save speculative_id | |
26740 | as ref may be overwritten by create_reference. | |
26741 | (symtab_node::clone_referring): Likewise. | |
26742 | (symtab_node::clone_reference): Likewise. | |
26743 | ||
26744 | 2020-03-22 Iain Sandoe <iain@sandoe.co.uk> | |
26745 | ||
26746 | * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove | |
26747 | references to Darwin. | |
26748 | * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this | |
26749 | unconditionally and comment on why. | |
26750 | ||
26751 | 2020-03-21 Iain Sandoe <iain@sandoe.co.uk> | |
26752 | ||
26753 | * config/darwin.c (darwin_mergeable_constant_section): Collect | |
26754 | section anchor checks into the caller. | |
26755 | (machopic_select_section): Collect section anchor checks into | |
26756 | the determination of 'effective zero-size' objects. When the | |
26757 | size is unknown, assume it is non-zero, and thus return the | |
26758 | 'generic' section for the DECL. | |
26759 | ||
26760 | 2020-03-21 Iain Sandoe <iain@sandoe.co.uk> | |
26761 | ||
26762 | PR target/93694 | |
26763 | * config/darwin.opt: Amend options descriptions. | |
26764 | ||
26765 | 2020-03-21 Richard Sandiford <richard.sandiford@arm.com> | |
26766 | ||
26767 | PR rtl-optimization/94052 | |
26768 | * lra-constraints.c (simplify_operand_subreg): Reload the inner | |
26769 | register of a paradoxical subreg if simplify_subreg_regno fails | |
26770 | to give a valid hard register for the outer mode. | |
26771 | ||
26772 | 2020-03-20 Martin Jambor <mjambor@suse.cz> | |
26773 | ||
26774 | PR tree-optimization/93435 | |
26775 | * params.opt (sra-max-propagations): New parameter. | |
26776 | * tree-sra.c (propagation_budget): New variable. | |
26777 | (budget_for_propagation_access): New function. | |
26778 | (propagate_subaccesses_from_rhs): Use it. | |
26779 | (propagate_subaccesses_from_lhs): Likewise. | |
26780 | (propagate_all_subaccesses): Set up and destroy propagation_budget. | |
26781 | ||
26782 | 2020-03-20 Carl Love <cel@us.ibm.com> | |
26783 | ||
26784 | PR/target 87583 | |
26785 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
26786 | Add check for TARGET_FPRND for Power 7 or newer. | |
26787 | ||
26788 | 2020-03-20 Jan Hubicka <hubicka@ucw.cz> | |
26789 | ||
26790 | PR ipa/93347 | |
26791 | * cgraph.c (symbol_table::create_edge): Update calls_comdat_local flag. | |
26792 | (cgraph_edge::redirect_callee): Move here; likewise. | |
26793 | (cgraph_node::remove_callees): Update calls_comdat_local flag. | |
26794 | (cgraph_node::verify_node): Verify that calls_comdat_local flag match | |
26795 | reality. | |
26796 | (cgraph_node::check_calls_comdat_local_p): New member function. | |
26797 | * cgraph.h (cgraph_node::check_calls_comdat_local_p): Declare. | |
26798 | (cgraph_edge::redirect_callee): Move offline. | |
26799 | * ipa-fnsummary.c (compute_fn_summary): Do not compute | |
26800 | calls_comdat_local flag here. | |
26801 | * ipa-inline-transform.c (inline_call): Fix updating of | |
26802 | calls_comdat_local flag. | |
26803 | * ipa-split.c (split_function): Use true instead of 1 to set the flag. | |
26804 | * symtab.c (symtab_node::add_to_same_comdat_group): Update | |
26805 | calls_comdat_local flag. | |
26806 | ||
26807 | 2020-03-20 Richard Biener <rguenther@suse.de> | |
26808 | ||
26809 | * tree-vect-slp.c (vect_analyze_slp_instance): Dump SLP tree | |
26810 | from the possibly modified root. | |
26811 | ||
26812 | 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
26813 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
26814 | Mihail Ionescu <mihail.ionescu@arm.com> | |
26815 | ||
26816 | * config/arm/arm_mve.h (vst1q_p_u8): Define macro. | |
26817 | (vst1q_p_s8): Likewise. | |
26818 | (vst2q_s8): Likewise. | |
26819 | (vst2q_u8): Likewise. | |
26820 | (vld1q_z_u8): Likewise. | |
26821 | (vld1q_z_s8): Likewise. | |
26822 | (vld2q_s8): Likewise. | |
26823 | (vld2q_u8): Likewise. | |
26824 | (vld4q_s8): Likewise. | |
26825 | (vld4q_u8): Likewise. | |
26826 | (vst1q_p_u16): Likewise. | |
26827 | (vst1q_p_s16): Likewise. | |
26828 | (vst2q_s16): Likewise. | |
26829 | (vst2q_u16): Likewise. | |
26830 | (vld1q_z_u16): Likewise. | |
26831 | (vld1q_z_s16): Likewise. | |
26832 | (vld2q_s16): Likewise. | |
26833 | (vld2q_u16): Likewise. | |
26834 | (vld4q_s16): Likewise. | |
26835 | (vld4q_u16): Likewise. | |
26836 | (vst1q_p_u32): Likewise. | |
26837 | (vst1q_p_s32): Likewise. | |
26838 | (vst2q_s32): Likewise. | |
26839 | (vst2q_u32): Likewise. | |
26840 | (vld1q_z_u32): Likewise. | |
26841 | (vld1q_z_s32): Likewise. | |
26842 | (vld2q_s32): Likewise. | |
26843 | (vld2q_u32): Likewise. | |
26844 | (vld4q_s32): Likewise. | |
26845 | (vld4q_u32): Likewise. | |
26846 | (vld4q_f16): Likewise. | |
26847 | (vld2q_f16): Likewise. | |
26848 | (vld1q_z_f16): Likewise. | |
26849 | (vst2q_f16): Likewise. | |
26850 | (vst1q_p_f16): Likewise. | |
26851 | (vld4q_f32): Likewise. | |
26852 | (vld2q_f32): Likewise. | |
26853 | (vld1q_z_f32): Likewise. | |
26854 | (vst2q_f32): Likewise. | |
26855 | (vst1q_p_f32): Likewise. | |
26856 | (__arm_vst1q_p_u8): Define intrinsic. | |
26857 | (__arm_vst1q_p_s8): Likewise. | |
26858 | (__arm_vst2q_s8): Likewise. | |
26859 | (__arm_vst2q_u8): Likewise. | |
26860 | (__arm_vld1q_z_u8): Likewise. | |
26861 | (__arm_vld1q_z_s8): Likewise. | |
26862 | (__arm_vld2q_s8): Likewise. | |
26863 | (__arm_vld2q_u8): Likewise. | |
26864 | (__arm_vld4q_s8): Likewise. | |
26865 | (__arm_vld4q_u8): Likewise. | |
26866 | (__arm_vst1q_p_u16): Likewise. | |
26867 | (__arm_vst1q_p_s16): Likewise. | |
26868 | (__arm_vst2q_s16): Likewise. | |
26869 | (__arm_vst2q_u16): Likewise. | |
26870 | (__arm_vld1q_z_u16): Likewise. | |
26871 | (__arm_vld1q_z_s16): Likewise. | |
26872 | (__arm_vld2q_s16): Likewise. | |
26873 | (__arm_vld2q_u16): Likewise. | |
26874 | (__arm_vld4q_s16): Likewise. | |
26875 | (__arm_vld4q_u16): Likewise. | |
26876 | (__arm_vst1q_p_u32): Likewise. | |
26877 | (__arm_vst1q_p_s32): Likewise. | |
26878 | (__arm_vst2q_s32): Likewise. | |
26879 | (__arm_vst2q_u32): Likewise. | |
26880 | (__arm_vld1q_z_u32): Likewise. | |
26881 | (__arm_vld1q_z_s32): Likewise. | |
26882 | (__arm_vld2q_s32): Likewise. | |
26883 | (__arm_vld2q_u32): Likewise. | |
26884 | (__arm_vld4q_s32): Likewise. | |
26885 | (__arm_vld4q_u32): Likewise. | |
26886 | (__arm_vld4q_f16): Likewise. | |
26887 | (__arm_vld2q_f16): Likewise. | |
26888 | (__arm_vld1q_z_f16): Likewise. | |
26889 | (__arm_vst2q_f16): Likewise. | |
26890 | (__arm_vst1q_p_f16): Likewise. | |
26891 | (__arm_vld4q_f32): Likewise. | |
26892 | (__arm_vld2q_f32): Likewise. | |
26893 | (__arm_vld1q_z_f32): Likewise. | |
26894 | (__arm_vst2q_f32): Likewise. | |
26895 | (__arm_vst1q_p_f32): Likewise. | |
26896 | (vld1q_z): Define polymorphic variant. | |
26897 | (vld2q): Likewise. | |
26898 | (vld4q): Likewise. | |
26899 | (vst1q_p): Likewise. | |
26900 | (vst2q): Likewise. | |
26901 | * config/arm/arm_mve_builtins.def (STORE1): Use builtin qualifier. | |
26902 | (LOAD1): Likewise. | |
26903 | * config/arm/mve.md (mve_vst2q<mode>): Define RTL pattern. | |
26904 | (mve_vld2q<mode>): Likewise. | |
26905 | (mve_vld4q<mode>): Likewise. | |
26906 | ||
26907 | 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
26908 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
26909 | Mihail Ionescu <mihail.ionescu@arm.com> | |
26910 | ||
26911 | * config/arm/arm-builtins.c (ARM_BUILTIN_GET_FPSCR_NZCVQC): Define. | |
26912 | (ARM_BUILTIN_SET_FPSCR_NZCVQC): Likewise. | |
26913 | (arm_init_mve_builtins): Add "__builtin_arm_get_fpscr_nzcvqc" and | |
26914 | "__builtin_arm_set_fpscr_nzcvqc" to arm_builtin_decls array. | |
26915 | (arm_expand_builtin): Define case ARM_BUILTIN_GET_FPSCR_NZCVQC | |
26916 | and ARM_BUILTIN_SET_FPSCR_NZCVQC. | |
26917 | * config/arm/arm_mve.h (vadciq_s32): Define macro. | |
26918 | (vadciq_u32): Likewise. | |
26919 | (vadciq_m_s32): Likewise. | |
26920 | (vadciq_m_u32): Likewise. | |
26921 | (vadcq_s32): Likewise. | |
26922 | (vadcq_u32): Likewise. | |
26923 | (vadcq_m_s32): Likewise. | |
26924 | (vadcq_m_u32): Likewise. | |
26925 | (vsbciq_s32): Likewise. | |
26926 | (vsbciq_u32): Likewise. | |
26927 | (vsbciq_m_s32): Likewise. | |
26928 | (vsbciq_m_u32): Likewise. | |
26929 | (vsbcq_s32): Likewise. | |
26930 | (vsbcq_u32): Likewise. | |
26931 | (vsbcq_m_s32): Likewise. | |
26932 | (vsbcq_m_u32): Likewise. | |
26933 | (__arm_vadciq_s32): Define intrinsic. | |
26934 | (__arm_vadciq_u32): Likewise. | |
26935 | (__arm_vadciq_m_s32): Likewise. | |
26936 | (__arm_vadciq_m_u32): Likewise. | |
26937 | (__arm_vadcq_s32): Likewise. | |
26938 | (__arm_vadcq_u32): Likewise. | |
26939 | (__arm_vadcq_m_s32): Likewise. | |
26940 | (__arm_vadcq_m_u32): Likewise. | |
26941 | (__arm_vsbciq_s32): Likewise. | |
26942 | (__arm_vsbciq_u32): Likewise. | |
26943 | (__arm_vsbciq_m_s32): Likewise. | |
26944 | (__arm_vsbciq_m_u32): Likewise. | |
26945 | (__arm_vsbcq_s32): Likewise. | |
26946 | (__arm_vsbcq_u32): Likewise. | |
26947 | (__arm_vsbcq_m_s32): Likewise. | |
26948 | (__arm_vsbcq_m_u32): Likewise. | |
26949 | (vadciq_m): Define polymorphic variant. | |
26950 | (vadciq): Likewise. | |
26951 | (vadcq_m): Likewise. | |
26952 | (vadcq): Likewise. | |
26953 | (vsbciq_m): Likewise. | |
26954 | (vsbciq): Likewise. | |
26955 | (vsbcq_m): Likewise. | |
26956 | (vsbcq): Likewise. | |
26957 | * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE): Use builtin | |
26958 | qualifier. | |
26959 | (BINOP_UNONE_UNONE_UNONE): Likewise. | |
26960 | (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise. | |
26961 | (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise. | |
26962 | * config/arm/mve.md (VADCIQ): Define iterator. | |
26963 | (VADCIQ_M): Likewise. | |
26964 | (VSBCQ): Likewise. | |
26965 | (VSBCQ_M): Likewise. | |
26966 | (VSBCIQ): Likewise. | |
26967 | (VSBCIQ_M): Likewise. | |
26968 | (VADCQ): Likewise. | |
26969 | (VADCQ_M): Likewise. | |
26970 | (mve_vadciq_m_<supf>v4si): Define RTL pattern. | |
26971 | (mve_vadciq_<supf>v4si): Likewise. | |
26972 | (mve_vadcq_m_<supf>v4si): Likewise. | |
26973 | (mve_vadcq_<supf>v4si): Likewise. | |
26974 | (mve_vsbciq_m_<supf>v4si): Likewise. | |
26975 | (mve_vsbciq_<supf>v4si): Likewise. | |
26976 | (mve_vsbcq_m_<supf>v4si): Likewise. | |
26977 | (mve_vsbcq_<supf>v4si): Likewise. | |
26978 | (get_fpscr_nzcvqc): Define isns. | |
26979 | (set_fpscr_nzcvqc): Define isns. | |
26980 | * config/arm/unspecs.md (UNSPEC_GET_FPSCR_NZCVQC): Define. | |
26981 | (UNSPEC_SET_FPSCR_NZCVQC): Define. | |
26982 | ||
26983 | 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
26984 | ||
26985 | * config/arm/arm_mve.h (vddupq_x_n_u8): Define macro. | |
26986 | (vddupq_x_n_u16): Likewise. | |
26987 | (vddupq_x_n_u32): Likewise. | |
26988 | (vddupq_x_wb_u8): Likewise. | |
26989 | (vddupq_x_wb_u16): Likewise. | |
26990 | (vddupq_x_wb_u32): Likewise. | |
26991 | (vdwdupq_x_n_u8): Likewise. | |
26992 | (vdwdupq_x_n_u16): Likewise. | |
26993 | (vdwdupq_x_n_u32): Likewise. | |
26994 | (vdwdupq_x_wb_u8): Likewise. | |
26995 | (vdwdupq_x_wb_u16): Likewise. | |
26996 | (vdwdupq_x_wb_u32): Likewise. | |
26997 | (vidupq_x_n_u8): Likewise. | |
26998 | (vidupq_x_n_u16): Likewise. | |
26999 | (vidupq_x_n_u32): Likewise. | |
27000 | (vidupq_x_wb_u8): Likewise. | |
27001 | (vidupq_x_wb_u16): Likewise. | |
27002 | (vidupq_x_wb_u32): Likewise. | |
27003 | (viwdupq_x_n_u8): Likewise. | |
27004 | (viwdupq_x_n_u16): Likewise. | |
27005 | (viwdupq_x_n_u32): Likewise. | |
27006 | (viwdupq_x_wb_u8): Likewise. | |
27007 | (viwdupq_x_wb_u16): Likewise. | |
27008 | (viwdupq_x_wb_u32): Likewise. | |
27009 | (vdupq_x_n_s8): Likewise. | |
27010 | (vdupq_x_n_s16): Likewise. | |
27011 | (vdupq_x_n_s32): Likewise. | |
27012 | (vdupq_x_n_u8): Likewise. | |
27013 | (vdupq_x_n_u16): Likewise. | |
27014 | (vdupq_x_n_u32): Likewise. | |
27015 | (vminq_x_s8): Likewise. | |
27016 | (vminq_x_s16): Likewise. | |
27017 | (vminq_x_s32): Likewise. | |
27018 | (vminq_x_u8): Likewise. | |
27019 | (vminq_x_u16): Likewise. | |
27020 | (vminq_x_u32): Likewise. | |
27021 | (vmaxq_x_s8): Likewise. | |
27022 | (vmaxq_x_s16): Likewise. | |
27023 | (vmaxq_x_s32): Likewise. | |
27024 | (vmaxq_x_u8): Likewise. | |
27025 | (vmaxq_x_u16): Likewise. | |
27026 | (vmaxq_x_u32): Likewise. | |
27027 | (vabdq_x_s8): Likewise. | |
27028 | (vabdq_x_s16): Likewise. | |
27029 | (vabdq_x_s32): Likewise. | |
27030 | (vabdq_x_u8): Likewise. | |
27031 | (vabdq_x_u16): Likewise. | |
27032 | (vabdq_x_u32): Likewise. | |
27033 | (vabsq_x_s8): Likewise. | |
27034 | (vabsq_x_s16): Likewise. | |
27035 | (vabsq_x_s32): Likewise. | |
27036 | (vaddq_x_s8): Likewise. | |
27037 | (vaddq_x_s16): Likewise. | |
27038 | (vaddq_x_s32): Likewise. | |
27039 | (vaddq_x_n_s8): Likewise. | |
27040 | (vaddq_x_n_s16): Likewise. | |
27041 | (vaddq_x_n_s32): Likewise. | |
27042 | (vaddq_x_u8): Likewise. | |
27043 | (vaddq_x_u16): Likewise. | |
27044 | (vaddq_x_u32): Likewise. | |
27045 | (vaddq_x_n_u8): Likewise. | |
27046 | (vaddq_x_n_u16): Likewise. | |
27047 | (vaddq_x_n_u32): Likewise. | |
27048 | (vclsq_x_s8): Likewise. | |
27049 | (vclsq_x_s16): Likewise. | |
27050 | (vclsq_x_s32): Likewise. | |
27051 | (vclzq_x_s8): Likewise. | |
27052 | (vclzq_x_s16): Likewise. | |
27053 | (vclzq_x_s32): Likewise. | |
27054 | (vclzq_x_u8): Likewise. | |
27055 | (vclzq_x_u16): Likewise. | |
27056 | (vclzq_x_u32): Likewise. | |
27057 | (vnegq_x_s8): Likewise. | |
27058 | (vnegq_x_s16): Likewise. | |
27059 | (vnegq_x_s32): Likewise. | |
27060 | (vmulhq_x_s8): Likewise. | |
27061 | (vmulhq_x_s16): Likewise. | |
27062 | (vmulhq_x_s32): Likewise. | |
27063 | (vmulhq_x_u8): Likewise. | |
27064 | (vmulhq_x_u16): Likewise. | |
27065 | (vmulhq_x_u32): Likewise. | |
27066 | (vmullbq_poly_x_p8): Likewise. | |
27067 | (vmullbq_poly_x_p16): Likewise. | |
27068 | (vmullbq_int_x_s8): Likewise. | |
27069 | (vmullbq_int_x_s16): Likewise. | |
27070 | (vmullbq_int_x_s32): Likewise. | |
27071 | (vmullbq_int_x_u8): Likewise. | |
27072 | (vmullbq_int_x_u16): Likewise. | |
27073 | (vmullbq_int_x_u32): Likewise. | |
27074 | (vmulltq_poly_x_p8): Likewise. | |
27075 | (vmulltq_poly_x_p16): Likewise. | |
27076 | (vmulltq_int_x_s8): Likewise. | |
27077 | (vmulltq_int_x_s16): Likewise. | |
27078 | (vmulltq_int_x_s32): Likewise. | |
27079 | (vmulltq_int_x_u8): Likewise. | |
27080 | (vmulltq_int_x_u16): Likewise. | |
27081 | (vmulltq_int_x_u32): Likewise. | |
27082 | (vmulq_x_s8): Likewise. | |
27083 | (vmulq_x_s16): Likewise. | |
27084 | (vmulq_x_s32): Likewise. | |
27085 | (vmulq_x_n_s8): Likewise. | |
27086 | (vmulq_x_n_s16): Likewise. | |
27087 | (vmulq_x_n_s32): Likewise. | |
27088 | (vmulq_x_u8): Likewise. | |
27089 | (vmulq_x_u16): Likewise. | |
27090 | (vmulq_x_u32): Likewise. | |
27091 | (vmulq_x_n_u8): Likewise. | |
27092 | (vmulq_x_n_u16): Likewise. | |
27093 | (vmulq_x_n_u32): Likewise. | |
27094 | (vsubq_x_s8): Likewise. | |
27095 | (vsubq_x_s16): Likewise. | |
27096 | (vsubq_x_s32): Likewise. | |
27097 | (vsubq_x_n_s8): Likewise. | |
27098 | (vsubq_x_n_s16): Likewise. | |
27099 | (vsubq_x_n_s32): Likewise. | |
27100 | (vsubq_x_u8): Likewise. | |
27101 | (vsubq_x_u16): Likewise. | |
27102 | (vsubq_x_u32): Likewise. | |
27103 | (vsubq_x_n_u8): Likewise. | |
27104 | (vsubq_x_n_u16): Likewise. | |
27105 | (vsubq_x_n_u32): Likewise. | |
27106 | (vcaddq_rot90_x_s8): Likewise. | |
27107 | (vcaddq_rot90_x_s16): Likewise. | |
27108 | (vcaddq_rot90_x_s32): Likewise. | |
27109 | (vcaddq_rot90_x_u8): Likewise. | |
27110 | (vcaddq_rot90_x_u16): Likewise. | |
27111 | (vcaddq_rot90_x_u32): Likewise. | |
27112 | (vcaddq_rot270_x_s8): Likewise. | |
27113 | (vcaddq_rot270_x_s16): Likewise. | |
27114 | (vcaddq_rot270_x_s32): Likewise. | |
27115 | (vcaddq_rot270_x_u8): Likewise. | |
27116 | (vcaddq_rot270_x_u16): Likewise. | |
27117 | (vcaddq_rot270_x_u32): Likewise. | |
27118 | (vhaddq_x_n_s8): Likewise. | |
27119 | (vhaddq_x_n_s16): Likewise. | |
27120 | (vhaddq_x_n_s32): Likewise. | |
27121 | (vhaddq_x_n_u8): Likewise. | |
27122 | (vhaddq_x_n_u16): Likewise. | |
27123 | (vhaddq_x_n_u32): Likewise. | |
27124 | (vhaddq_x_s8): Likewise. | |
27125 | (vhaddq_x_s16): Likewise. | |
27126 | (vhaddq_x_s32): Likewise. | |
27127 | (vhaddq_x_u8): Likewise. | |
27128 | (vhaddq_x_u16): Likewise. | |
27129 | (vhaddq_x_u32): Likewise. | |
27130 | (vhcaddq_rot90_x_s8): Likewise. | |
27131 | (vhcaddq_rot90_x_s16): Likewise. | |
27132 | (vhcaddq_rot90_x_s32): Likewise. | |
27133 | (vhcaddq_rot270_x_s8): Likewise. | |
27134 | (vhcaddq_rot270_x_s16): Likewise. | |
27135 | (vhcaddq_rot270_x_s32): Likewise. | |
27136 | (vhsubq_x_n_s8): Likewise. | |
27137 | (vhsubq_x_n_s16): Likewise. | |
27138 | (vhsubq_x_n_s32): Likewise. | |
27139 | (vhsubq_x_n_u8): Likewise. | |
27140 | (vhsubq_x_n_u16): Likewise. | |
27141 | (vhsubq_x_n_u32): Likewise. | |
27142 | (vhsubq_x_s8): Likewise. | |
27143 | (vhsubq_x_s16): Likewise. | |
27144 | (vhsubq_x_s32): Likewise. | |
27145 | (vhsubq_x_u8): Likewise. | |
27146 | (vhsubq_x_u16): Likewise. | |
27147 | (vhsubq_x_u32): Likewise. | |
27148 | (vrhaddq_x_s8): Likewise. | |
27149 | (vrhaddq_x_s16): Likewise. | |
27150 | (vrhaddq_x_s32): Likewise. | |
27151 | (vrhaddq_x_u8): Likewise. | |
27152 | (vrhaddq_x_u16): Likewise. | |
27153 | (vrhaddq_x_u32): Likewise. | |
27154 | (vrmulhq_x_s8): Likewise. | |
27155 | (vrmulhq_x_s16): Likewise. | |
27156 | (vrmulhq_x_s32): Likewise. | |
27157 | (vrmulhq_x_u8): Likewise. | |
27158 | (vrmulhq_x_u16): Likewise. | |
27159 | (vrmulhq_x_u32): Likewise. | |
27160 | (vandq_x_s8): Likewise. | |
27161 | (vandq_x_s16): Likewise. | |
27162 | (vandq_x_s32): Likewise. | |
27163 | (vandq_x_u8): Likewise. | |
27164 | (vandq_x_u16): Likewise. | |
27165 | (vandq_x_u32): Likewise. | |
27166 | (vbicq_x_s8): Likewise. | |
27167 | (vbicq_x_s16): Likewise. | |
27168 | (vbicq_x_s32): Likewise. | |
27169 | (vbicq_x_u8): Likewise. | |
27170 | (vbicq_x_u16): Likewise. | |
27171 | (vbicq_x_u32): Likewise. | |
27172 | (vbrsrq_x_n_s8): Likewise. | |
27173 | (vbrsrq_x_n_s16): Likewise. | |
27174 | (vbrsrq_x_n_s32): Likewise. | |
27175 | (vbrsrq_x_n_u8): Likewise. | |
27176 | (vbrsrq_x_n_u16): Likewise. | |
27177 | (vbrsrq_x_n_u32): Likewise. | |
27178 | (veorq_x_s8): Likewise. | |
27179 | (veorq_x_s16): Likewise. | |
27180 | (veorq_x_s32): Likewise. | |
27181 | (veorq_x_u8): Likewise. | |
27182 | (veorq_x_u16): Likewise. | |
27183 | (veorq_x_u32): Likewise. | |
27184 | (vmovlbq_x_s8): Likewise. | |
27185 | (vmovlbq_x_s16): Likewise. | |
27186 | (vmovlbq_x_u8): Likewise. | |
27187 | (vmovlbq_x_u16): Likewise. | |
27188 | (vmovltq_x_s8): Likewise. | |
27189 | (vmovltq_x_s16): Likewise. | |
27190 | (vmovltq_x_u8): Likewise. | |
27191 | (vmovltq_x_u16): Likewise. | |
27192 | (vmvnq_x_s8): Likewise. | |
27193 | (vmvnq_x_s16): Likewise. | |
27194 | (vmvnq_x_s32): Likewise. | |
27195 | (vmvnq_x_u8): Likewise. | |
27196 | (vmvnq_x_u16): Likewise. | |
27197 | (vmvnq_x_u32): Likewise. | |
27198 | (vmvnq_x_n_s16): Likewise. | |
27199 | (vmvnq_x_n_s32): Likewise. | |
27200 | (vmvnq_x_n_u16): Likewise. | |
27201 | (vmvnq_x_n_u32): Likewise. | |
27202 | (vornq_x_s8): Likewise. | |
27203 | (vornq_x_s16): Likewise. | |
27204 | (vornq_x_s32): Likewise. | |
27205 | (vornq_x_u8): Likewise. | |
27206 | (vornq_x_u16): Likewise. | |
27207 | (vornq_x_u32): Likewise. | |
27208 | (vorrq_x_s8): Likewise. | |
27209 | (vorrq_x_s16): Likewise. | |
27210 | (vorrq_x_s32): Likewise. | |
27211 | (vorrq_x_u8): Likewise. | |
27212 | (vorrq_x_u16): Likewise. | |
27213 | (vorrq_x_u32): Likewise. | |
27214 | (vrev16q_x_s8): Likewise. | |
27215 | (vrev16q_x_u8): Likewise. | |
27216 | (vrev32q_x_s8): Likewise. | |
27217 | (vrev32q_x_s16): Likewise. | |
27218 | (vrev32q_x_u8): Likewise. | |
27219 | (vrev32q_x_u16): Likewise. | |
27220 | (vrev64q_x_s8): Likewise. | |
27221 | (vrev64q_x_s16): Likewise. | |
27222 | (vrev64q_x_s32): Likewise. | |
27223 | (vrev64q_x_u8): Likewise. | |
27224 | (vrev64q_x_u16): Likewise. | |
27225 | (vrev64q_x_u32): Likewise. | |
27226 | (vrshlq_x_s8): Likewise. | |
27227 | (vrshlq_x_s16): Likewise. | |
27228 | (vrshlq_x_s32): Likewise. | |
27229 | (vrshlq_x_u8): Likewise. | |
27230 | (vrshlq_x_u16): Likewise. | |
27231 | (vrshlq_x_u32): Likewise. | |
27232 | (vshllbq_x_n_s8): Likewise. | |
27233 | (vshllbq_x_n_s16): Likewise. | |
27234 | (vshllbq_x_n_u8): Likewise. | |
27235 | (vshllbq_x_n_u16): Likewise. | |
27236 | (vshlltq_x_n_s8): Likewise. | |
27237 | (vshlltq_x_n_s16): Likewise. | |
27238 | (vshlltq_x_n_u8): Likewise. | |
27239 | (vshlltq_x_n_u16): Likewise. | |
27240 | (vshlq_x_s8): Likewise. | |
27241 | (vshlq_x_s16): Likewise. | |
27242 | (vshlq_x_s32): Likewise. | |
27243 | (vshlq_x_u8): Likewise. | |
27244 | (vshlq_x_u16): Likewise. | |
27245 | (vshlq_x_u32): Likewise. | |
27246 | (vshlq_x_n_s8): Likewise. | |
27247 | (vshlq_x_n_s16): Likewise. | |
27248 | (vshlq_x_n_s32): Likewise. | |
27249 | (vshlq_x_n_u8): Likewise. | |
27250 | (vshlq_x_n_u16): Likewise. | |
27251 | (vshlq_x_n_u32): Likewise. | |
27252 | (vrshrq_x_n_s8): Likewise. | |
27253 | (vrshrq_x_n_s16): Likewise. | |
27254 | (vrshrq_x_n_s32): Likewise. | |
27255 | (vrshrq_x_n_u8): Likewise. | |
27256 | (vrshrq_x_n_u16): Likewise. | |
27257 | (vrshrq_x_n_u32): Likewise. | |
27258 | (vshrq_x_n_s8): Likewise. | |
27259 | (vshrq_x_n_s16): Likewise. | |
27260 | (vshrq_x_n_s32): Likewise. | |
27261 | (vshrq_x_n_u8): Likewise. | |
27262 | (vshrq_x_n_u16): Likewise. | |
27263 | (vshrq_x_n_u32): Likewise. | |
27264 | (vdupq_x_n_f16): Likewise. | |
27265 | (vdupq_x_n_f32): Likewise. | |
27266 | (vminnmq_x_f16): Likewise. | |
27267 | (vminnmq_x_f32): Likewise. | |
27268 | (vmaxnmq_x_f16): Likewise. | |
27269 | (vmaxnmq_x_f32): Likewise. | |
27270 | (vabdq_x_f16): Likewise. | |
27271 | (vabdq_x_f32): Likewise. | |
27272 | (vabsq_x_f16): Likewise. | |
27273 | (vabsq_x_f32): Likewise. | |
27274 | (vaddq_x_f16): Likewise. | |
27275 | (vaddq_x_f32): Likewise. | |
27276 | (vaddq_x_n_f16): Likewise. | |
27277 | (vaddq_x_n_f32): Likewise. | |
27278 | (vnegq_x_f16): Likewise. | |
27279 | (vnegq_x_f32): Likewise. | |
27280 | (vmulq_x_f16): Likewise. | |
27281 | (vmulq_x_f32): Likewise. | |
27282 | (vmulq_x_n_f16): Likewise. | |
27283 | (vmulq_x_n_f32): Likewise. | |
27284 | (vsubq_x_f16): Likewise. | |
27285 | (vsubq_x_f32): Likewise. | |
27286 | (vsubq_x_n_f16): Likewise. | |
27287 | (vsubq_x_n_f32): Likewise. | |
27288 | (vcaddq_rot90_x_f16): Likewise. | |
27289 | (vcaddq_rot90_x_f32): Likewise. | |
27290 | (vcaddq_rot270_x_f16): Likewise. | |
27291 | (vcaddq_rot270_x_f32): Likewise. | |
27292 | (vcmulq_x_f16): Likewise. | |
27293 | (vcmulq_x_f32): Likewise. | |
27294 | (vcmulq_rot90_x_f16): Likewise. | |
27295 | (vcmulq_rot90_x_f32): Likewise. | |
27296 | (vcmulq_rot180_x_f16): Likewise. | |
27297 | (vcmulq_rot180_x_f32): Likewise. | |
27298 | (vcmulq_rot270_x_f16): Likewise. | |
27299 | (vcmulq_rot270_x_f32): Likewise. | |
27300 | (vcvtaq_x_s16_f16): Likewise. | |
27301 | (vcvtaq_x_s32_f32): Likewise. | |
27302 | (vcvtaq_x_u16_f16): Likewise. | |
27303 | (vcvtaq_x_u32_f32): Likewise. | |
27304 | (vcvtnq_x_s16_f16): Likewise. | |
27305 | (vcvtnq_x_s32_f32): Likewise. | |
27306 | (vcvtnq_x_u16_f16): Likewise. | |
27307 | (vcvtnq_x_u32_f32): Likewise. | |
27308 | (vcvtpq_x_s16_f16): Likewise. | |
27309 | (vcvtpq_x_s32_f32): Likewise. | |
27310 | (vcvtpq_x_u16_f16): Likewise. | |
27311 | (vcvtpq_x_u32_f32): Likewise. | |
27312 | (vcvtmq_x_s16_f16): Likewise. | |
27313 | (vcvtmq_x_s32_f32): Likewise. | |
27314 | (vcvtmq_x_u16_f16): Likewise. | |
27315 | (vcvtmq_x_u32_f32): Likewise. | |
27316 | (vcvtbq_x_f32_f16): Likewise. | |
27317 | (vcvttq_x_f32_f16): Likewise. | |
27318 | (vcvtq_x_f16_u16): Likewise. | |
27319 | (vcvtq_x_f16_s16): Likewise. | |
27320 | (vcvtq_x_f32_s32): Likewise. | |
27321 | (vcvtq_x_f32_u32): Likewise. | |
27322 | (vcvtq_x_n_f16_s16): Likewise. | |
27323 | (vcvtq_x_n_f16_u16): Likewise. | |
27324 | (vcvtq_x_n_f32_s32): Likewise. | |
27325 | (vcvtq_x_n_f32_u32): Likewise. | |
27326 | (vcvtq_x_s16_f16): Likewise. | |
27327 | (vcvtq_x_s32_f32): Likewise. | |
27328 | (vcvtq_x_u16_f16): Likewise. | |
27329 | (vcvtq_x_u32_f32): Likewise. | |
27330 | (vcvtq_x_n_s16_f16): Likewise. | |
27331 | (vcvtq_x_n_s32_f32): Likewise. | |
27332 | (vcvtq_x_n_u16_f16): Likewise. | |
27333 | (vcvtq_x_n_u32_f32): Likewise. | |
27334 | (vrndq_x_f16): Likewise. | |
27335 | (vrndq_x_f32): Likewise. | |
27336 | (vrndnq_x_f16): Likewise. | |
27337 | (vrndnq_x_f32): Likewise. | |
27338 | (vrndmq_x_f16): Likewise. | |
27339 | (vrndmq_x_f32): Likewise. | |
27340 | (vrndpq_x_f16): Likewise. | |
27341 | (vrndpq_x_f32): Likewise. | |
27342 | (vrndaq_x_f16): Likewise. | |
27343 | (vrndaq_x_f32): Likewise. | |
27344 | (vrndxq_x_f16): Likewise. | |
27345 | (vrndxq_x_f32): Likewise. | |
27346 | (vandq_x_f16): Likewise. | |
27347 | (vandq_x_f32): Likewise. | |
27348 | (vbicq_x_f16): Likewise. | |
27349 | (vbicq_x_f32): Likewise. | |
27350 | (vbrsrq_x_n_f16): Likewise. | |
27351 | (vbrsrq_x_n_f32): Likewise. | |
27352 | (veorq_x_f16): Likewise. | |
27353 | (veorq_x_f32): Likewise. | |
27354 | (vornq_x_f16): Likewise. | |
27355 | (vornq_x_f32): Likewise. | |
27356 | (vorrq_x_f16): Likewise. | |
27357 | (vorrq_x_f32): Likewise. | |
27358 | (vrev32q_x_f16): Likewise. | |
27359 | (vrev64q_x_f16): Likewise. | |
27360 | (vrev64q_x_f32): Likewise. | |
27361 | (__arm_vddupq_x_n_u8): Define intrinsic. | |
27362 | (__arm_vddupq_x_n_u16): Likewise. | |
27363 | (__arm_vddupq_x_n_u32): Likewise. | |
27364 | (__arm_vddupq_x_wb_u8): Likewise. | |
27365 | (__arm_vddupq_x_wb_u16): Likewise. | |
27366 | (__arm_vddupq_x_wb_u32): Likewise. | |
27367 | (__arm_vdwdupq_x_n_u8): Likewise. | |
27368 | (__arm_vdwdupq_x_n_u16): Likewise. | |
27369 | (__arm_vdwdupq_x_n_u32): Likewise. | |
27370 | (__arm_vdwdupq_x_wb_u8): Likewise. | |
27371 | (__arm_vdwdupq_x_wb_u16): Likewise. | |
27372 | (__arm_vdwdupq_x_wb_u32): Likewise. | |
27373 | (__arm_vidupq_x_n_u8): Likewise. | |
27374 | (__arm_vidupq_x_n_u16): Likewise. | |
27375 | (__arm_vidupq_x_n_u32): Likewise. | |
27376 | (__arm_vidupq_x_wb_u8): Likewise. | |
27377 | (__arm_vidupq_x_wb_u16): Likewise. | |
27378 | (__arm_vidupq_x_wb_u32): Likewise. | |
27379 | (__arm_viwdupq_x_n_u8): Likewise. | |
27380 | (__arm_viwdupq_x_n_u16): Likewise. | |
27381 | (__arm_viwdupq_x_n_u32): Likewise. | |
27382 | (__arm_viwdupq_x_wb_u8): Likewise. | |
27383 | (__arm_viwdupq_x_wb_u16): Likewise. | |
27384 | (__arm_viwdupq_x_wb_u32): Likewise. | |
27385 | (__arm_vdupq_x_n_s8): Likewise. | |
27386 | (__arm_vdupq_x_n_s16): Likewise. | |
27387 | (__arm_vdupq_x_n_s32): Likewise. | |
27388 | (__arm_vdupq_x_n_u8): Likewise. | |
27389 | (__arm_vdupq_x_n_u16): Likewise. | |
27390 | (__arm_vdupq_x_n_u32): Likewise. | |
27391 | (__arm_vminq_x_s8): Likewise. | |
27392 | (__arm_vminq_x_s16): Likewise. | |
27393 | (__arm_vminq_x_s32): Likewise. | |
27394 | (__arm_vminq_x_u8): Likewise. | |
27395 | (__arm_vminq_x_u16): Likewise. | |
27396 | (__arm_vminq_x_u32): Likewise. | |
27397 | (__arm_vmaxq_x_s8): Likewise. | |
27398 | (__arm_vmaxq_x_s16): Likewise. | |
27399 | (__arm_vmaxq_x_s32): Likewise. | |
27400 | (__arm_vmaxq_x_u8): Likewise. | |
27401 | (__arm_vmaxq_x_u16): Likewise. | |
27402 | (__arm_vmaxq_x_u32): Likewise. | |
27403 | (__arm_vabdq_x_s8): Likewise. | |
27404 | (__arm_vabdq_x_s16): Likewise. | |
27405 | (__arm_vabdq_x_s32): Likewise. | |
27406 | (__arm_vabdq_x_u8): Likewise. | |
27407 | (__arm_vabdq_x_u16): Likewise. | |
27408 | (__arm_vabdq_x_u32): Likewise. | |
27409 | (__arm_vabsq_x_s8): Likewise. | |
27410 | (__arm_vabsq_x_s16): Likewise. | |
27411 | (__arm_vabsq_x_s32): Likewise. | |
27412 | (__arm_vaddq_x_s8): Likewise. | |
27413 | (__arm_vaddq_x_s16): Likewise. | |
27414 | (__arm_vaddq_x_s32): Likewise. | |
27415 | (__arm_vaddq_x_n_s8): Likewise. | |
27416 | (__arm_vaddq_x_n_s16): Likewise. | |
27417 | (__arm_vaddq_x_n_s32): Likewise. | |
27418 | (__arm_vaddq_x_u8): Likewise. | |
27419 | (__arm_vaddq_x_u16): Likewise. | |
27420 | (__arm_vaddq_x_u32): Likewise. | |
27421 | (__arm_vaddq_x_n_u8): Likewise. | |
27422 | (__arm_vaddq_x_n_u16): Likewise. | |
27423 | (__arm_vaddq_x_n_u32): Likewise. | |
27424 | (__arm_vclsq_x_s8): Likewise. | |
27425 | (__arm_vclsq_x_s16): Likewise. | |
27426 | (__arm_vclsq_x_s32): Likewise. | |
27427 | (__arm_vclzq_x_s8): Likewise. | |
27428 | (__arm_vclzq_x_s16): Likewise. | |
27429 | (__arm_vclzq_x_s32): Likewise. | |
27430 | (__arm_vclzq_x_u8): Likewise. | |
27431 | (__arm_vclzq_x_u16): Likewise. | |
27432 | (__arm_vclzq_x_u32): Likewise. | |
27433 | (__arm_vnegq_x_s8): Likewise. | |
27434 | (__arm_vnegq_x_s16): Likewise. | |
27435 | (__arm_vnegq_x_s32): Likewise. | |
27436 | (__arm_vmulhq_x_s8): Likewise. | |
27437 | (__arm_vmulhq_x_s16): Likewise. | |
27438 | (__arm_vmulhq_x_s32): Likewise. | |
27439 | (__arm_vmulhq_x_u8): Likewise. | |
27440 | (__arm_vmulhq_x_u16): Likewise. | |
27441 | (__arm_vmulhq_x_u32): Likewise. | |
27442 | (__arm_vmullbq_poly_x_p8): Likewise. | |
27443 | (__arm_vmullbq_poly_x_p16): Likewise. | |
27444 | (__arm_vmullbq_int_x_s8): Likewise. | |
27445 | (__arm_vmullbq_int_x_s16): Likewise. | |
27446 | (__arm_vmullbq_int_x_s32): Likewise. | |
27447 | (__arm_vmullbq_int_x_u8): Likewise. | |
27448 | (__arm_vmullbq_int_x_u16): Likewise. | |
27449 | (__arm_vmullbq_int_x_u32): Likewise. | |
27450 | (__arm_vmulltq_poly_x_p8): Likewise. | |
27451 | (__arm_vmulltq_poly_x_p16): Likewise. | |
27452 | (__arm_vmulltq_int_x_s8): Likewise. | |
27453 | (__arm_vmulltq_int_x_s16): Likewise. | |
27454 | (__arm_vmulltq_int_x_s32): Likewise. | |
27455 | (__arm_vmulltq_int_x_u8): Likewise. | |
27456 | (__arm_vmulltq_int_x_u16): Likewise. | |
27457 | (__arm_vmulltq_int_x_u32): Likewise. | |
27458 | (__arm_vmulq_x_s8): Likewise. | |
27459 | (__arm_vmulq_x_s16): Likewise. | |
27460 | (__arm_vmulq_x_s32): Likewise. | |
27461 | (__arm_vmulq_x_n_s8): Likewise. | |
27462 | (__arm_vmulq_x_n_s16): Likewise. | |
27463 | (__arm_vmulq_x_n_s32): Likewise. | |
27464 | (__arm_vmulq_x_u8): Likewise. | |
27465 | (__arm_vmulq_x_u16): Likewise. | |
27466 | (__arm_vmulq_x_u32): Likewise. | |
27467 | (__arm_vmulq_x_n_u8): Likewise. | |
27468 | (__arm_vmulq_x_n_u16): Likewise. | |
27469 | (__arm_vmulq_x_n_u32): Likewise. | |
27470 | (__arm_vsubq_x_s8): Likewise. | |
27471 | (__arm_vsubq_x_s16): Likewise. | |
27472 | (__arm_vsubq_x_s32): Likewise. | |
27473 | (__arm_vsubq_x_n_s8): Likewise. | |
27474 | (__arm_vsubq_x_n_s16): Likewise. | |
27475 | (__arm_vsubq_x_n_s32): Likewise. | |
27476 | (__arm_vsubq_x_u8): Likewise. | |
27477 | (__arm_vsubq_x_u16): Likewise. | |
27478 | (__arm_vsubq_x_u32): Likewise. | |
27479 | (__arm_vsubq_x_n_u8): Likewise. | |
27480 | (__arm_vsubq_x_n_u16): Likewise. | |
27481 | (__arm_vsubq_x_n_u32): Likewise. | |
27482 | (__arm_vcaddq_rot90_x_s8): Likewise. | |
27483 | (__arm_vcaddq_rot90_x_s16): Likewise. | |
27484 | (__arm_vcaddq_rot90_x_s32): Likewise. | |
27485 | (__arm_vcaddq_rot90_x_u8): Likewise. | |
27486 | (__arm_vcaddq_rot90_x_u16): Likewise. | |
27487 | (__arm_vcaddq_rot90_x_u32): Likewise. | |
27488 | (__arm_vcaddq_rot270_x_s8): Likewise. | |
27489 | (__arm_vcaddq_rot270_x_s16): Likewise. | |
27490 | (__arm_vcaddq_rot270_x_s32): Likewise. | |
27491 | (__arm_vcaddq_rot270_x_u8): Likewise. | |
27492 | (__arm_vcaddq_rot270_x_u16): Likewise. | |
27493 | (__arm_vcaddq_rot270_x_u32): Likewise. | |
27494 | (__arm_vhaddq_x_n_s8): Likewise. | |
27495 | (__arm_vhaddq_x_n_s16): Likewise. | |
27496 | (__arm_vhaddq_x_n_s32): Likewise. | |
27497 | (__arm_vhaddq_x_n_u8): Likewise. | |
27498 | (__arm_vhaddq_x_n_u16): Likewise. | |
27499 | (__arm_vhaddq_x_n_u32): Likewise. | |
27500 | (__arm_vhaddq_x_s8): Likewise. | |
27501 | (__arm_vhaddq_x_s16): Likewise. | |
27502 | (__arm_vhaddq_x_s32): Likewise. | |
27503 | (__arm_vhaddq_x_u8): Likewise. | |
27504 | (__arm_vhaddq_x_u16): Likewise. | |
27505 | (__arm_vhaddq_x_u32): Likewise. | |
27506 | (__arm_vhcaddq_rot90_x_s8): Likewise. | |
27507 | (__arm_vhcaddq_rot90_x_s16): Likewise. | |
27508 | (__arm_vhcaddq_rot90_x_s32): Likewise. | |
27509 | (__arm_vhcaddq_rot270_x_s8): Likewise. | |
27510 | (__arm_vhcaddq_rot270_x_s16): Likewise. | |
27511 | (__arm_vhcaddq_rot270_x_s32): Likewise. | |
27512 | (__arm_vhsubq_x_n_s8): Likewise. | |
27513 | (__arm_vhsubq_x_n_s16): Likewise. | |
27514 | (__arm_vhsubq_x_n_s32): Likewise. | |
27515 | (__arm_vhsubq_x_n_u8): Likewise. | |
27516 | (__arm_vhsubq_x_n_u16): Likewise. | |
27517 | (__arm_vhsubq_x_n_u32): Likewise. | |
27518 | (__arm_vhsubq_x_s8): Likewise. | |
27519 | (__arm_vhsubq_x_s16): Likewise. | |
27520 | (__arm_vhsubq_x_s32): Likewise. | |
27521 | (__arm_vhsubq_x_u8): Likewise. | |
27522 | (__arm_vhsubq_x_u16): Likewise. | |
27523 | (__arm_vhsubq_x_u32): Likewise. | |
27524 | (__arm_vrhaddq_x_s8): Likewise. | |
27525 | (__arm_vrhaddq_x_s16): Likewise. | |
27526 | (__arm_vrhaddq_x_s32): Likewise. | |
27527 | (__arm_vrhaddq_x_u8): Likewise. | |
27528 | (__arm_vrhaddq_x_u16): Likewise. | |
27529 | (__arm_vrhaddq_x_u32): Likewise. | |
27530 | (__arm_vrmulhq_x_s8): Likewise. | |
27531 | (__arm_vrmulhq_x_s16): Likewise. | |
27532 | (__arm_vrmulhq_x_s32): Likewise. | |
27533 | (__arm_vrmulhq_x_u8): Likewise. | |
27534 | (__arm_vrmulhq_x_u16): Likewise. | |
27535 | (__arm_vrmulhq_x_u32): Likewise. | |
27536 | (__arm_vandq_x_s8): Likewise. | |
27537 | (__arm_vandq_x_s16): Likewise. | |
27538 | (__arm_vandq_x_s32): Likewise. | |
27539 | (__arm_vandq_x_u8): Likewise. | |
27540 | (__arm_vandq_x_u16): Likewise. | |
27541 | (__arm_vandq_x_u32): Likewise. | |
27542 | (__arm_vbicq_x_s8): Likewise. | |
27543 | (__arm_vbicq_x_s16): Likewise. | |
27544 | (__arm_vbicq_x_s32): Likewise. | |
27545 | (__arm_vbicq_x_u8): Likewise. | |
27546 | (__arm_vbicq_x_u16): Likewise. | |
27547 | (__arm_vbicq_x_u32): Likewise. | |
27548 | (__arm_vbrsrq_x_n_s8): Likewise. | |
27549 | (__arm_vbrsrq_x_n_s16): Likewise. | |
27550 | (__arm_vbrsrq_x_n_s32): Likewise. | |
27551 | (__arm_vbrsrq_x_n_u8): Likewise. | |
27552 | (__arm_vbrsrq_x_n_u16): Likewise. | |
27553 | (__arm_vbrsrq_x_n_u32): Likewise. | |
27554 | (__arm_veorq_x_s8): Likewise. | |
27555 | (__arm_veorq_x_s16): Likewise. | |
27556 | (__arm_veorq_x_s32): Likewise. | |
27557 | (__arm_veorq_x_u8): Likewise. | |
27558 | (__arm_veorq_x_u16): Likewise. | |
27559 | (__arm_veorq_x_u32): Likewise. | |
27560 | (__arm_vmovlbq_x_s8): Likewise. | |
27561 | (__arm_vmovlbq_x_s16): Likewise. | |
27562 | (__arm_vmovlbq_x_u8): Likewise. | |
27563 | (__arm_vmovlbq_x_u16): Likewise. | |
27564 | (__arm_vmovltq_x_s8): Likewise. | |
27565 | (__arm_vmovltq_x_s16): Likewise. | |
27566 | (__arm_vmovltq_x_u8): Likewise. | |
27567 | (__arm_vmovltq_x_u16): Likewise. | |
27568 | (__arm_vmvnq_x_s8): Likewise. | |
27569 | (__arm_vmvnq_x_s16): Likewise. | |
27570 | (__arm_vmvnq_x_s32): Likewise. | |
27571 | (__arm_vmvnq_x_u8): Likewise. | |
27572 | (__arm_vmvnq_x_u16): Likewise. | |
27573 | (__arm_vmvnq_x_u32): Likewise. | |
27574 | (__arm_vmvnq_x_n_s16): Likewise. | |
27575 | (__arm_vmvnq_x_n_s32): Likewise. | |
27576 | (__arm_vmvnq_x_n_u16): Likewise. | |
27577 | (__arm_vmvnq_x_n_u32): Likewise. | |
27578 | (__arm_vornq_x_s8): Likewise. | |
27579 | (__arm_vornq_x_s16): Likewise. | |
27580 | (__arm_vornq_x_s32): Likewise. | |
27581 | (__arm_vornq_x_u8): Likewise. | |
27582 | (__arm_vornq_x_u16): Likewise. | |
27583 | (__arm_vornq_x_u32): Likewise. | |
27584 | (__arm_vorrq_x_s8): Likewise. | |
27585 | (__arm_vorrq_x_s16): Likewise. | |
27586 | (__arm_vorrq_x_s32): Likewise. | |
27587 | (__arm_vorrq_x_u8): Likewise. | |
27588 | (__arm_vorrq_x_u16): Likewise. | |
27589 | (__arm_vorrq_x_u32): Likewise. | |
27590 | (__arm_vrev16q_x_s8): Likewise. | |
27591 | (__arm_vrev16q_x_u8): Likewise. | |
27592 | (__arm_vrev32q_x_s8): Likewise. | |
27593 | (__arm_vrev32q_x_s16): Likewise. | |
27594 | (__arm_vrev32q_x_u8): Likewise. | |
27595 | (__arm_vrev32q_x_u16): Likewise. | |
27596 | (__arm_vrev64q_x_s8): Likewise. | |
27597 | (__arm_vrev64q_x_s16): Likewise. | |
27598 | (__arm_vrev64q_x_s32): Likewise. | |
27599 | (__arm_vrev64q_x_u8): Likewise. | |
27600 | (__arm_vrev64q_x_u16): Likewise. | |
27601 | (__arm_vrev64q_x_u32): Likewise. | |
27602 | (__arm_vrshlq_x_s8): Likewise. | |
27603 | (__arm_vrshlq_x_s16): Likewise. | |
27604 | (__arm_vrshlq_x_s32): Likewise. | |
27605 | (__arm_vrshlq_x_u8): Likewise. | |
27606 | (__arm_vrshlq_x_u16): Likewise. | |
27607 | (__arm_vrshlq_x_u32): Likewise. | |
27608 | (__arm_vshllbq_x_n_s8): Likewise. | |
27609 | (__arm_vshllbq_x_n_s16): Likewise. | |
27610 | (__arm_vshllbq_x_n_u8): Likewise. | |
27611 | (__arm_vshllbq_x_n_u16): Likewise. | |
27612 | (__arm_vshlltq_x_n_s8): Likewise. | |
27613 | (__arm_vshlltq_x_n_s16): Likewise. | |
27614 | (__arm_vshlltq_x_n_u8): Likewise. | |
27615 | (__arm_vshlltq_x_n_u16): Likewise. | |
27616 | (__arm_vshlq_x_s8): Likewise. | |
27617 | (__arm_vshlq_x_s16): Likewise. | |
27618 | (__arm_vshlq_x_s32): Likewise. | |
27619 | (__arm_vshlq_x_u8): Likewise. | |
27620 | (__arm_vshlq_x_u16): Likewise. | |
27621 | (__arm_vshlq_x_u32): Likewise. | |
27622 | (__arm_vshlq_x_n_s8): Likewise. | |
27623 | (__arm_vshlq_x_n_s16): Likewise. | |
27624 | (__arm_vshlq_x_n_s32): Likewise. | |
27625 | (__arm_vshlq_x_n_u8): Likewise. | |
27626 | (__arm_vshlq_x_n_u16): Likewise. | |
27627 | (__arm_vshlq_x_n_u32): Likewise. | |
27628 | (__arm_vrshrq_x_n_s8): Likewise. | |
27629 | (__arm_vrshrq_x_n_s16): Likewise. | |
27630 | (__arm_vrshrq_x_n_s32): Likewise. | |
27631 | (__arm_vrshrq_x_n_u8): Likewise. | |
27632 | (__arm_vrshrq_x_n_u16): Likewise. | |
27633 | (__arm_vrshrq_x_n_u32): Likewise. | |
27634 | (__arm_vshrq_x_n_s8): Likewise. | |
27635 | (__arm_vshrq_x_n_s16): Likewise. | |
27636 | (__arm_vshrq_x_n_s32): Likewise. | |
27637 | (__arm_vshrq_x_n_u8): Likewise. | |
27638 | (__arm_vshrq_x_n_u16): Likewise. | |
27639 | (__arm_vshrq_x_n_u32): Likewise. | |
27640 | (__arm_vdupq_x_n_f16): Likewise. | |
27641 | (__arm_vdupq_x_n_f32): Likewise. | |
27642 | (__arm_vminnmq_x_f16): Likewise. | |
27643 | (__arm_vminnmq_x_f32): Likewise. | |
27644 | (__arm_vmaxnmq_x_f16): Likewise. | |
27645 | (__arm_vmaxnmq_x_f32): Likewise. | |
27646 | (__arm_vabdq_x_f16): Likewise. | |
27647 | (__arm_vabdq_x_f32): Likewise. | |
27648 | (__arm_vabsq_x_f16): Likewise. | |
27649 | (__arm_vabsq_x_f32): Likewise. | |
27650 | (__arm_vaddq_x_f16): Likewise. | |
27651 | (__arm_vaddq_x_f32): Likewise. | |
27652 | (__arm_vaddq_x_n_f16): Likewise. | |
27653 | (__arm_vaddq_x_n_f32): Likewise. | |
27654 | (__arm_vnegq_x_f16): Likewise. | |
27655 | (__arm_vnegq_x_f32): Likewise. | |
27656 | (__arm_vmulq_x_f16): Likewise. | |
27657 | (__arm_vmulq_x_f32): Likewise. | |
27658 | (__arm_vmulq_x_n_f16): Likewise. | |
27659 | (__arm_vmulq_x_n_f32): Likewise. | |
27660 | (__arm_vsubq_x_f16): Likewise. | |
27661 | (__arm_vsubq_x_f32): Likewise. | |
27662 | (__arm_vsubq_x_n_f16): Likewise. | |
27663 | (__arm_vsubq_x_n_f32): Likewise. | |
27664 | (__arm_vcaddq_rot90_x_f16): Likewise. | |
27665 | (__arm_vcaddq_rot90_x_f32): Likewise. | |
27666 | (__arm_vcaddq_rot270_x_f16): Likewise. | |
27667 | (__arm_vcaddq_rot270_x_f32): Likewise. | |
27668 | (__arm_vcmulq_x_f16): Likewise. | |
27669 | (__arm_vcmulq_x_f32): Likewise. | |
27670 | (__arm_vcmulq_rot90_x_f16): Likewise. | |
27671 | (__arm_vcmulq_rot90_x_f32): Likewise. | |
27672 | (__arm_vcmulq_rot180_x_f16): Likewise. | |
27673 | (__arm_vcmulq_rot180_x_f32): Likewise. | |
27674 | (__arm_vcmulq_rot270_x_f16): Likewise. | |
27675 | (__arm_vcmulq_rot270_x_f32): Likewise. | |
27676 | (__arm_vcvtaq_x_s16_f16): Likewise. | |
27677 | (__arm_vcvtaq_x_s32_f32): Likewise. | |
27678 | (__arm_vcvtaq_x_u16_f16): Likewise. | |
27679 | (__arm_vcvtaq_x_u32_f32): Likewise. | |
27680 | (__arm_vcvtnq_x_s16_f16): Likewise. | |
27681 | (__arm_vcvtnq_x_s32_f32): Likewise. | |
27682 | (__arm_vcvtnq_x_u16_f16): Likewise. | |
27683 | (__arm_vcvtnq_x_u32_f32): Likewise. | |
27684 | (__arm_vcvtpq_x_s16_f16): Likewise. | |
27685 | (__arm_vcvtpq_x_s32_f32): Likewise. | |
27686 | (__arm_vcvtpq_x_u16_f16): Likewise. | |
27687 | (__arm_vcvtpq_x_u32_f32): Likewise. | |
27688 | (__arm_vcvtmq_x_s16_f16): Likewise. | |
27689 | (__arm_vcvtmq_x_s32_f32): Likewise. | |
27690 | (__arm_vcvtmq_x_u16_f16): Likewise. | |
27691 | (__arm_vcvtmq_x_u32_f32): Likewise. | |
27692 | (__arm_vcvtbq_x_f32_f16): Likewise. | |
27693 | (__arm_vcvttq_x_f32_f16): Likewise. | |
27694 | (__arm_vcvtq_x_f16_u16): Likewise. | |
27695 | (__arm_vcvtq_x_f16_s16): Likewise. | |
27696 | (__arm_vcvtq_x_f32_s32): Likewise. | |
27697 | (__arm_vcvtq_x_f32_u32): Likewise. | |
27698 | (__arm_vcvtq_x_n_f16_s16): Likewise. | |
27699 | (__arm_vcvtq_x_n_f16_u16): Likewise. | |
27700 | (__arm_vcvtq_x_n_f32_s32): Likewise. | |
27701 | (__arm_vcvtq_x_n_f32_u32): Likewise. | |
27702 | (__arm_vcvtq_x_s16_f16): Likewise. | |
27703 | (__arm_vcvtq_x_s32_f32): Likewise. | |
27704 | (__arm_vcvtq_x_u16_f16): Likewise. | |
27705 | (__arm_vcvtq_x_u32_f32): Likewise. | |
27706 | (__arm_vcvtq_x_n_s16_f16): Likewise. | |
27707 | (__arm_vcvtq_x_n_s32_f32): Likewise. | |
27708 | (__arm_vcvtq_x_n_u16_f16): Likewise. | |
27709 | (__arm_vcvtq_x_n_u32_f32): Likewise. | |
27710 | (__arm_vrndq_x_f16): Likewise. | |
27711 | (__arm_vrndq_x_f32): Likewise. | |
27712 | (__arm_vrndnq_x_f16): Likewise. | |
27713 | (__arm_vrndnq_x_f32): Likewise. | |
27714 | (__arm_vrndmq_x_f16): Likewise. | |
27715 | (__arm_vrndmq_x_f32): Likewise. | |
27716 | (__arm_vrndpq_x_f16): Likewise. | |
27717 | (__arm_vrndpq_x_f32): Likewise. | |
27718 | (__arm_vrndaq_x_f16): Likewise. | |
27719 | (__arm_vrndaq_x_f32): Likewise. | |
27720 | (__arm_vrndxq_x_f16): Likewise. | |
27721 | (__arm_vrndxq_x_f32): Likewise. | |
27722 | (__arm_vandq_x_f16): Likewise. | |
27723 | (__arm_vandq_x_f32): Likewise. | |
27724 | (__arm_vbicq_x_f16): Likewise. | |
27725 | (__arm_vbicq_x_f32): Likewise. | |
27726 | (__arm_vbrsrq_x_n_f16): Likewise. | |
27727 | (__arm_vbrsrq_x_n_f32): Likewise. | |
27728 | (__arm_veorq_x_f16): Likewise. | |
27729 | (__arm_veorq_x_f32): Likewise. | |
27730 | (__arm_vornq_x_f16): Likewise. | |
27731 | (__arm_vornq_x_f32): Likewise. | |
27732 | (__arm_vorrq_x_f16): Likewise. | |
27733 | (__arm_vorrq_x_f32): Likewise. | |
27734 | (__arm_vrev32q_x_f16): Likewise. | |
27735 | (__arm_vrev64q_x_f16): Likewise. | |
27736 | (__arm_vrev64q_x_f32): Likewise. | |
27737 | (vabdq_x): Define polymorphic variant. | |
27738 | (vabsq_x): Likewise. | |
27739 | (vaddq_x): Likewise. | |
27740 | (vandq_x): Likewise. | |
27741 | (vbicq_x): Likewise. | |
27742 | (vbrsrq_x): Likewise. | |
27743 | (vcaddq_rot270_x): Likewise. | |
27744 | (vcaddq_rot90_x): Likewise. | |
27745 | (vcmulq_rot180_x): Likewise. | |
27746 | (vcmulq_rot270_x): Likewise. | |
27747 | (vcmulq_x): Likewise. | |
27748 | (vcvtq_x): Likewise. | |
27749 | (vcvtq_x_n): Likewise. | |
27750 | (vcvtnq_m): Likewise. | |
27751 | (veorq_x): Likewise. | |
27752 | (vmaxnmq_x): Likewise. | |
27753 | (vminnmq_x): Likewise. | |
27754 | (vmulq_x): Likewise. | |
27755 | (vnegq_x): Likewise. | |
27756 | (vornq_x): Likewise. | |
27757 | (vorrq_x): Likewise. | |
27758 | (vrev32q_x): Likewise. | |
27759 | (vrev64q_x): Likewise. | |
27760 | (vrndaq_x): Likewise. | |
27761 | (vrndmq_x): Likewise. | |
27762 | (vrndnq_x): Likewise. | |
27763 | (vrndpq_x): Likewise. | |
27764 | (vrndq_x): Likewise. | |
27765 | (vrndxq_x): Likewise. | |
27766 | (vsubq_x): Likewise. | |
27767 | (vcmulq_rot90_x): Likewise. | |
27768 | (vadciq): Likewise. | |
27769 | (vclsq_x): Likewise. | |
27770 | (vclzq_x): Likewise. | |
27771 | (vhaddq_x): Likewise. | |
27772 | (vhcaddq_rot270_x): Likewise. | |
27773 | (vhcaddq_rot90_x): Likewise. | |
27774 | (vhsubq_x): Likewise. | |
27775 | (vmaxq_x): Likewise. | |
27776 | (vminq_x): Likewise. | |
27777 | (vmovlbq_x): Likewise. | |
27778 | (vmovltq_x): Likewise. | |
27779 | (vmulhq_x): Likewise. | |
27780 | (vmullbq_int_x): Likewise. | |
27781 | (vmullbq_poly_x): Likewise. | |
27782 | (vmulltq_int_x): Likewise. | |
27783 | (vmulltq_poly_x): Likewise. | |
27784 | (vmvnq_x): Likewise. | |
27785 | (vrev16q_x): Likewise. | |
27786 | (vrhaddq_x): Likewise. | |
27787 | (vrmulhq_x): Likewise. | |
27788 | (vrshlq_x): Likewise. | |
27789 | (vrshrq_x): Likewise. | |
27790 | (vshllbq_x): Likewise. | |
27791 | (vshlltq_x): Likewise. | |
27792 | (vshlq_x_n): Likewise. | |
27793 | (vshlq_x): Likewise. | |
27794 | (vdwdupq_x_u8): Likewise. | |
27795 | (vdwdupq_x_u16): Likewise. | |
27796 | (vdwdupq_x_u32): Likewise. | |
27797 | (viwdupq_x_u8): Likewise. | |
27798 | (viwdupq_x_u16): Likewise. | |
27799 | (viwdupq_x_u32): Likewise. | |
27800 | (vidupq_x_u8): Likewise. | |
27801 | (vddupq_x_u8): Likewise. | |
27802 | (vidupq_x_u16): Likewise. | |
27803 | (vddupq_x_u16): Likewise. | |
27804 | (vidupq_x_u32): Likewise. | |
27805 | (vddupq_x_u32): Likewise. | |
27806 | (vshrq_x): Likewise. | |
27807 | ||
27808 | 2020-03-20 Richard Biener <rguenther@suse.de> | |
27809 | ||
27810 | * tree-vect-slp.c (vect_analyze_slp_instance): Push the stmts | |
27811 | to vectorize for CTOR defs. | |
27812 | ||
27813 | 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
27814 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
27815 | Mihail Ionescu <mihail.ionescu@arm.com> | |
27816 | ||
27817 | * config/arm/arm-builtins.c (LDRGBWBS_QUALIFIERS): Define builtin | |
27818 | qualifier. | |
27819 | (LDRGBWBU_QUALIFIERS): Likewise. | |
27820 | (LDRGBWBS_Z_QUALIFIERS): Likewise. | |
27821 | (LDRGBWBU_Z_QUALIFIERS): Likewise. | |
27822 | (STRSBWBS_QUALIFIERS): Likewise. | |
27823 | (STRSBWBU_QUALIFIERS): Likewise. | |
27824 | (STRSBWBS_P_QUALIFIERS): Likewise. | |
27825 | (STRSBWBU_P_QUALIFIERS): Likewise. | |
27826 | * config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Define macro. | |
27827 | (vldrdq_gather_base_wb_u64): Likewise. | |
27828 | (vldrdq_gather_base_wb_z_s64): Likewise. | |
27829 | (vldrdq_gather_base_wb_z_u64): Likewise. | |
27830 | (vldrwq_gather_base_wb_f32): Likewise. | |
27831 | (vldrwq_gather_base_wb_s32): Likewise. | |
27832 | (vldrwq_gather_base_wb_u32): Likewise. | |
27833 | (vldrwq_gather_base_wb_z_f32): Likewise. | |
27834 | (vldrwq_gather_base_wb_z_s32): Likewise. | |
27835 | (vldrwq_gather_base_wb_z_u32): Likewise. | |
27836 | (vstrdq_scatter_base_wb_p_s64): Likewise. | |
27837 | (vstrdq_scatter_base_wb_p_u64): Likewise. | |
27838 | (vstrdq_scatter_base_wb_s64): Likewise. | |
27839 | (vstrdq_scatter_base_wb_u64): Likewise. | |
27840 | (vstrwq_scatter_base_wb_p_s32): Likewise. | |
27841 | (vstrwq_scatter_base_wb_p_f32): Likewise. | |
27842 | (vstrwq_scatter_base_wb_p_u32): Likewise. | |
27843 | (vstrwq_scatter_base_wb_s32): Likewise. | |
27844 | (vstrwq_scatter_base_wb_u32): Likewise. | |
27845 | (vstrwq_scatter_base_wb_f32): Likewise. | |
27846 | (__arm_vldrdq_gather_base_wb_s64): Define intrinsic. | |
27847 | (__arm_vldrdq_gather_base_wb_u64): Likewise. | |
27848 | (__arm_vldrdq_gather_base_wb_z_s64): Likewise. | |
27849 | (__arm_vldrdq_gather_base_wb_z_u64): Likewise. | |
27850 | (__arm_vldrwq_gather_base_wb_s32): Likewise. | |
27851 | (__arm_vldrwq_gather_base_wb_u32): Likewise. | |
27852 | (__arm_vldrwq_gather_base_wb_z_s32): Likewise. | |
27853 | (__arm_vldrwq_gather_base_wb_z_u32): Likewise. | |
27854 | (__arm_vstrdq_scatter_base_wb_s64): Likewise. | |
27855 | (__arm_vstrdq_scatter_base_wb_u64): Likewise. | |
27856 | (__arm_vstrdq_scatter_base_wb_p_s64): Likewise. | |
27857 | (__arm_vstrdq_scatter_base_wb_p_u64): Likewise. | |
27858 | (__arm_vstrwq_scatter_base_wb_p_s32): Likewise. | |
27859 | (__arm_vstrwq_scatter_base_wb_p_u32): Likewise. | |
27860 | (__arm_vstrwq_scatter_base_wb_s32): Likewise. | |
27861 | (__arm_vstrwq_scatter_base_wb_u32): Likewise. | |
27862 | (__arm_vldrwq_gather_base_wb_f32): Likewise. | |
27863 | (__arm_vldrwq_gather_base_wb_z_f32): Likewise. | |
27864 | (__arm_vstrwq_scatter_base_wb_f32): Likewise. | |
27865 | (__arm_vstrwq_scatter_base_wb_p_f32): Likewise. | |
27866 | (vstrwq_scatter_base_wb): Define polymorphic variant. | |
27867 | (vstrwq_scatter_base_wb_p): Likewise. | |
27868 | (vstrdq_scatter_base_wb_p): Likewise. | |
27869 | (vstrdq_scatter_base_wb): Likewise. | |
27870 | * config/arm/arm_mve_builtins.def (LDRGBWBS_QUALIFIERS): Use builtin | |
27871 | qualifier. | |
27872 | * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Define RTL | |
27873 | pattern. | |
27874 | (mve_vstrwq_scatter_base_wb_add_<supf>v4si): Likewise. | |
27875 | (mve_vstrwq_scatter_base_wb_<supf>v4si_insn): Likewise. | |
27876 | (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise. | |
27877 | (mve_vstrwq_scatter_base_wb_p_add_<supf>v4si): Likewise. | |
27878 | (mve_vstrwq_scatter_base_wb_p_<supf>v4si_insn): Likewise. | |
27879 | (mve_vstrwq_scatter_base_wb_fv4sf): Likewise. | |
27880 | (mve_vstrwq_scatter_base_wb_add_fv4sf): Likewise. | |
27881 | (mve_vstrwq_scatter_base_wb_fv4sf_insn): Likewise. | |
27882 | (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise. | |
27883 | (mve_vstrwq_scatter_base_wb_p_add_fv4sf): Likewise. | |
27884 | (mve_vstrwq_scatter_base_wb_p_fv4sf_insn): Likewise. | |
27885 | (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise. | |
27886 | (mve_vstrdq_scatter_base_wb_add_<supf>v2di): Likewise. | |
27887 | (mve_vstrdq_scatter_base_wb_<supf>v2di_insn): Likewise. | |
27888 | (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise. | |
27889 | (mve_vstrdq_scatter_base_wb_p_add_<supf>v2di): Likewise. | |
27890 | (mve_vstrdq_scatter_base_wb_p_<supf>v2di_insn): Likewise. | |
27891 | (mve_vldrwq_gather_base_wb_<supf>v4si): Likewise. | |
27892 | (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise. | |
27893 | (mve_vldrwq_gather_base_wb_z_<supf>v4si): Likewise. | |
27894 | (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise. | |
27895 | (mve_vldrwq_gather_base_wb_fv4sf): Likewise. | |
27896 | (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise. | |
27897 | (mve_vldrwq_gather_base_wb_z_fv4sf): Likewise. | |
27898 | (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise. | |
27899 | (mve_vldrdq_gather_base_wb_<supf>v2di): Likewise. | |
27900 | (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise. | |
27901 | (mve_vldrdq_gather_base_wb_z_<supf>v2di): Likewise. | |
27902 | (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise. | |
27903 | ||
27904 | 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
27905 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
27906 | Mihail Ionescu <mihail.ionescu@arm.com> | |
27907 | ||
27908 | * config/arm/arm-builtins.c | |
27909 | (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Define quinary | |
27910 | builtin qualifier. | |
27911 | * config/arm/arm_mve.h (vddupq_m_n_u8): Define macro. | |
27912 | (vddupq_m_n_u32): Likewise. | |
27913 | (vddupq_m_n_u16): Likewise. | |
27914 | (vddupq_m_wb_u8): Likewise. | |
27915 | (vddupq_m_wb_u16): Likewise. | |
27916 | (vddupq_m_wb_u32): Likewise. | |
27917 | (vddupq_n_u8): Likewise. | |
27918 | (vddupq_n_u32): Likewise. | |
27919 | (vddupq_n_u16): Likewise. | |
27920 | (vddupq_wb_u8): Likewise. | |
27921 | (vddupq_wb_u16): Likewise. | |
27922 | (vddupq_wb_u32): Likewise. | |
27923 | (vdwdupq_m_n_u8): Likewise. | |
27924 | (vdwdupq_m_n_u32): Likewise. | |
27925 | (vdwdupq_m_n_u16): Likewise. | |
27926 | (vdwdupq_m_wb_u8): Likewise. | |
27927 | (vdwdupq_m_wb_u32): Likewise. | |
27928 | (vdwdupq_m_wb_u16): Likewise. | |
27929 | (vdwdupq_n_u8): Likewise. | |
27930 | (vdwdupq_n_u32): Likewise. | |
27931 | (vdwdupq_n_u16): Likewise. | |
27932 | (vdwdupq_wb_u8): Likewise. | |
27933 | (vdwdupq_wb_u32): Likewise. | |
27934 | (vdwdupq_wb_u16): Likewise. | |
27935 | (vidupq_m_n_u8): Likewise. | |
27936 | (vidupq_m_n_u32): Likewise. | |
27937 | (vidupq_m_n_u16): Likewise. | |
27938 | (vidupq_m_wb_u8): Likewise. | |
27939 | (vidupq_m_wb_u16): Likewise. | |
27940 | (vidupq_m_wb_u32): Likewise. | |
27941 | (vidupq_n_u8): Likewise. | |
27942 | (vidupq_n_u32): Likewise. | |
27943 | (vidupq_n_u16): Likewise. | |
27944 | (vidupq_wb_u8): Likewise. | |
27945 | (vidupq_wb_u16): Likewise. | |
27946 | (vidupq_wb_u32): Likewise. | |
27947 | (viwdupq_m_n_u8): Likewise. | |
27948 | (viwdupq_m_n_u32): Likewise. | |
27949 | (viwdupq_m_n_u16): Likewise. | |
27950 | (viwdupq_m_wb_u8): Likewise. | |
27951 | (viwdupq_m_wb_u32): Likewise. | |
27952 | (viwdupq_m_wb_u16): Likewise. | |
27953 | (viwdupq_n_u8): Likewise. | |
27954 | (viwdupq_n_u32): Likewise. | |
27955 | (viwdupq_n_u16): Likewise. | |
27956 | (viwdupq_wb_u8): Likewise. | |
27957 | (viwdupq_wb_u32): Likewise. | |
27958 | (viwdupq_wb_u16): Likewise. | |
27959 | (__arm_vddupq_m_n_u8): Define intrinsic. | |
27960 | (__arm_vddupq_m_n_u32): Likewise. | |
27961 | (__arm_vddupq_m_n_u16): Likewise. | |
27962 | (__arm_vddupq_m_wb_u8): Likewise. | |
27963 | (__arm_vddupq_m_wb_u16): Likewise. | |
27964 | (__arm_vddupq_m_wb_u32): Likewise. | |
27965 | (__arm_vddupq_n_u8): Likewise. | |
27966 | (__arm_vddupq_n_u32): Likewise. | |
27967 | (__arm_vddupq_n_u16): Likewise. | |
27968 | (__arm_vdwdupq_m_n_u8): Likewise. | |
27969 | (__arm_vdwdupq_m_n_u32): Likewise. | |
27970 | (__arm_vdwdupq_m_n_u16): Likewise. | |
27971 | (__arm_vdwdupq_m_wb_u8): Likewise. | |
27972 | (__arm_vdwdupq_m_wb_u32): Likewise. | |
27973 | (__arm_vdwdupq_m_wb_u16): Likewise. | |
27974 | (__arm_vdwdupq_n_u8): Likewise. | |
27975 | (__arm_vdwdupq_n_u32): Likewise. | |
27976 | (__arm_vdwdupq_n_u16): Likewise. | |
27977 | (__arm_vdwdupq_wb_u8): Likewise. | |
27978 | (__arm_vdwdupq_wb_u32): Likewise. | |
27979 | (__arm_vdwdupq_wb_u16): Likewise. | |
27980 | (__arm_vidupq_m_n_u8): Likewise. | |
27981 | (__arm_vidupq_m_n_u32): Likewise. | |
27982 | (__arm_vidupq_m_n_u16): Likewise. | |
27983 | (__arm_vidupq_n_u8): Likewise. | |
27984 | (__arm_vidupq_m_wb_u8): Likewise. | |
27985 | (__arm_vidupq_m_wb_u16): Likewise. | |
27986 | (__arm_vidupq_m_wb_u32): Likewise. | |
27987 | (__arm_vidupq_n_u32): Likewise. | |
27988 | (__arm_vidupq_n_u16): Likewise. | |
27989 | (__arm_vidupq_wb_u8): Likewise. | |
27990 | (__arm_vidupq_wb_u16): Likewise. | |
27991 | (__arm_vidupq_wb_u32): Likewise. | |
27992 | (__arm_vddupq_wb_u8): Likewise. | |
27993 | (__arm_vddupq_wb_u16): Likewise. | |
27994 | (__arm_vddupq_wb_u32): Likewise. | |
27995 | (__arm_viwdupq_m_n_u8): Likewise. | |
27996 | (__arm_viwdupq_m_n_u32): Likewise. | |
27997 | (__arm_viwdupq_m_n_u16): Likewise. | |
27998 | (__arm_viwdupq_m_wb_u8): Likewise. | |
27999 | (__arm_viwdupq_m_wb_u32): Likewise. | |
28000 | (__arm_viwdupq_m_wb_u16): Likewise. | |
28001 | (__arm_viwdupq_n_u8): Likewise. | |
28002 | (__arm_viwdupq_n_u32): Likewise. | |
28003 | (__arm_viwdupq_n_u16): Likewise. | |
28004 | (__arm_viwdupq_wb_u8): Likewise. | |
28005 | (__arm_viwdupq_wb_u32): Likewise. | |
28006 | (__arm_viwdupq_wb_u16): Likewise. | |
28007 | (vidupq_m): Define polymorphic variant. | |
28008 | (vddupq_m): Likewise. | |
28009 | (vidupq_u16): Likewise. | |
28010 | (vidupq_u32): Likewise. | |
28011 | (vidupq_u8): Likewise. | |
28012 | (vddupq_u16): Likewise. | |
28013 | (vddupq_u32): Likewise. | |
28014 | (vddupq_u8): Likewise. | |
28015 | (viwdupq_m): Likewise. | |
28016 | (viwdupq_u16): Likewise. | |
28017 | (viwdupq_u32): Likewise. | |
28018 | (viwdupq_u8): Likewise. | |
28019 | (vdwdupq_m): Likewise. | |
28020 | (vdwdupq_u16): Likewise. | |
28021 | (vdwdupq_u32): Likewise. | |
28022 | (vdwdupq_u8): Likewise. | |
28023 | * config/arm/arm_mve_builtins.def | |
28024 | (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Use builtin | |
28025 | qualifier. | |
28026 | * config/arm/mve.md (mve_vidupq_n_u<mode>): Define RTL pattern. | |
28027 | (mve_vidupq_u<mode>_insn): Likewise. | |
28028 | (mve_vidupq_m_n_u<mode>): Likewise. | |
28029 | (mve_vidupq_m_wb_u<mode>_insn): Likewise. | |
28030 | (mve_vddupq_n_u<mode>): Likewise. | |
28031 | (mve_vddupq_u<mode>_insn): Likewise. | |
28032 | (mve_vddupq_m_n_u<mode>): Likewise. | |
28033 | (mve_vddupq_m_wb_u<mode>_insn): Likewise. | |
28034 | (mve_vdwdupq_n_u<mode>): Likewise. | |
28035 | (mve_vdwdupq_wb_u<mode>): Likewise. | |
28036 | (mve_vdwdupq_wb_u<mode>_insn): Likewise. | |
28037 | (mve_vdwdupq_m_n_u<mode>): Likewise. | |
28038 | (mve_vdwdupq_m_wb_u<mode>): Likewise. | |
28039 | (mve_vdwdupq_m_wb_u<mode>_insn): Likewise. | |
28040 | (mve_viwdupq_n_u<mode>): Likewise. | |
28041 | (mve_viwdupq_wb_u<mode>): Likewise. | |
28042 | (mve_viwdupq_wb_u<mode>_insn): Likewise. | |
28043 | (mve_viwdupq_m_n_u<mode>): Likewise. | |
28044 | (mve_viwdupq_m_wb_u<mode>): Likewise. | |
28045 | (mve_viwdupq_m_wb_u<mode>_insn): Likewise. | |
28046 | ||
28047 | 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
28048 | ||
28049 | * config/arm/arm_mve.h (vreinterpretq_s16_s32): Define macro. | |
28050 | (vreinterpretq_s16_s64): Likewise. | |
28051 | (vreinterpretq_s16_s8): Likewise. | |
28052 | (vreinterpretq_s16_u16): Likewise. | |
28053 | (vreinterpretq_s16_u32): Likewise. | |
28054 | (vreinterpretq_s16_u64): Likewise. | |
28055 | (vreinterpretq_s16_u8): Likewise. | |
28056 | (vreinterpretq_s32_s16): Likewise. | |
28057 | (vreinterpretq_s32_s64): Likewise. | |
28058 | (vreinterpretq_s32_s8): Likewise. | |
28059 | (vreinterpretq_s32_u16): Likewise. | |
28060 | (vreinterpretq_s32_u32): Likewise. | |
28061 | (vreinterpretq_s32_u64): Likewise. | |
28062 | (vreinterpretq_s32_u8): Likewise. | |
28063 | (vreinterpretq_s64_s16): Likewise. | |
28064 | (vreinterpretq_s64_s32): Likewise. | |
28065 | (vreinterpretq_s64_s8): Likewise. | |
28066 | (vreinterpretq_s64_u16): Likewise. | |
28067 | (vreinterpretq_s64_u32): Likewise. | |
28068 | (vreinterpretq_s64_u64): Likewise. | |
28069 | (vreinterpretq_s64_u8): Likewise. | |
28070 | (vreinterpretq_s8_s16): Likewise. | |
28071 | (vreinterpretq_s8_s32): Likewise. | |
28072 | (vreinterpretq_s8_s64): Likewise. | |
28073 | (vreinterpretq_s8_u16): Likewise. | |
28074 | (vreinterpretq_s8_u32): Likewise. | |
28075 | (vreinterpretq_s8_u64): Likewise. | |
28076 | (vreinterpretq_s8_u8): Likewise. | |
28077 | (vreinterpretq_u16_s16): Likewise. | |
28078 | (vreinterpretq_u16_s32): Likewise. | |
28079 | (vreinterpretq_u16_s64): Likewise. | |
28080 | (vreinterpretq_u16_s8): Likewise. | |
28081 | (vreinterpretq_u16_u32): Likewise. | |
28082 | (vreinterpretq_u16_u64): Likewise. | |
28083 | (vreinterpretq_u16_u8): Likewise. | |
28084 | (vreinterpretq_u32_s16): Likewise. | |
28085 | (vreinterpretq_u32_s32): Likewise. | |
28086 | (vreinterpretq_u32_s64): Likewise. | |
28087 | (vreinterpretq_u32_s8): Likewise. | |
28088 | (vreinterpretq_u32_u16): Likewise. | |
28089 | (vreinterpretq_u32_u64): Likewise. | |
28090 | (vreinterpretq_u32_u8): Likewise. | |
28091 | (vreinterpretq_u64_s16): Likewise. | |
28092 | (vreinterpretq_u64_s32): Likewise. | |
28093 | (vreinterpretq_u64_s64): Likewise. | |
28094 | (vreinterpretq_u64_s8): Likewise. | |
28095 | (vreinterpretq_u64_u16): Likewise. | |
28096 | (vreinterpretq_u64_u32): Likewise. | |
28097 | (vreinterpretq_u64_u8): Likewise. | |
28098 | (vreinterpretq_u8_s16): Likewise. | |
28099 | (vreinterpretq_u8_s32): Likewise. | |
28100 | (vreinterpretq_u8_s64): Likewise. | |
28101 | (vreinterpretq_u8_s8): Likewise. | |
28102 | (vreinterpretq_u8_u16): Likewise. | |
28103 | (vreinterpretq_u8_u32): Likewise. | |
28104 | (vreinterpretq_u8_u64): Likewise. | |
28105 | (vreinterpretq_s32_f16): Likewise. | |
28106 | (vreinterpretq_s32_f32): Likewise. | |
28107 | (vreinterpretq_u16_f16): Likewise. | |
28108 | (vreinterpretq_u16_f32): Likewise. | |
28109 | (vreinterpretq_u32_f16): Likewise. | |
28110 | (vreinterpretq_u32_f32): Likewise. | |
28111 | (vreinterpretq_u64_f16): Likewise. | |
28112 | (vreinterpretq_u64_f32): Likewise. | |
28113 | (vreinterpretq_u8_f16): Likewise. | |
28114 | (vreinterpretq_u8_f32): Likewise. | |
28115 | (vreinterpretq_f16_f32): Likewise. | |
28116 | (vreinterpretq_f16_s16): Likewise. | |
28117 | (vreinterpretq_f16_s32): Likewise. | |
28118 | (vreinterpretq_f16_s64): Likewise. | |
28119 | (vreinterpretq_f16_s8): Likewise. | |
28120 | (vreinterpretq_f16_u16): Likewise. | |
28121 | (vreinterpretq_f16_u32): Likewise. | |
28122 | (vreinterpretq_f16_u64): Likewise. | |
28123 | (vreinterpretq_f16_u8): Likewise. | |
28124 | (vreinterpretq_f32_f16): Likewise. | |
28125 | (vreinterpretq_f32_s16): Likewise. | |
28126 | (vreinterpretq_f32_s32): Likewise. | |
28127 | (vreinterpretq_f32_s64): Likewise. | |
28128 | (vreinterpretq_f32_s8): Likewise. | |
28129 | (vreinterpretq_f32_u16): Likewise. | |
28130 | (vreinterpretq_f32_u32): Likewise. | |
28131 | (vreinterpretq_f32_u64): Likewise. | |
28132 | (vreinterpretq_f32_u8): Likewise. | |
28133 | (vreinterpretq_s16_f16): Likewise. | |
28134 | (vreinterpretq_s16_f32): Likewise. | |
28135 | (vreinterpretq_s64_f16): Likewise. | |
28136 | (vreinterpretq_s64_f32): Likewise. | |
28137 | (vreinterpretq_s8_f16): Likewise. | |
28138 | (vreinterpretq_s8_f32): Likewise. | |
28139 | (vuninitializedq_u8): Likewise. | |
28140 | (vuninitializedq_u16): Likewise. | |
28141 | (vuninitializedq_u32): Likewise. | |
28142 | (vuninitializedq_u64): Likewise. | |
28143 | (vuninitializedq_s8): Likewise. | |
28144 | (vuninitializedq_s16): Likewise. | |
28145 | (vuninitializedq_s32): Likewise. | |
28146 | (vuninitializedq_s64): Likewise. | |
28147 | (vuninitializedq_f16): Likewise. | |
28148 | (vuninitializedq_f32): Likewise. | |
28149 | (__arm_vuninitializedq_u8): Define intrinsic. | |
28150 | (__arm_vuninitializedq_u16): Likewise. | |
28151 | (__arm_vuninitializedq_u32): Likewise. | |
28152 | (__arm_vuninitializedq_u64): Likewise. | |
28153 | (__arm_vuninitializedq_s8): Likewise. | |
28154 | (__arm_vuninitializedq_s16): Likewise. | |
28155 | (__arm_vuninitializedq_s32): Likewise. | |
28156 | (__arm_vuninitializedq_s64): Likewise. | |
28157 | (__arm_vreinterpretq_s16_s32): Likewise. | |
28158 | (__arm_vreinterpretq_s16_s64): Likewise. | |
28159 | (__arm_vreinterpretq_s16_s8): Likewise. | |
28160 | (__arm_vreinterpretq_s16_u16): Likewise. | |
28161 | (__arm_vreinterpretq_s16_u32): Likewise. | |
28162 | (__arm_vreinterpretq_s16_u64): Likewise. | |
28163 | (__arm_vreinterpretq_s16_u8): Likewise. | |
28164 | (__arm_vreinterpretq_s32_s16): Likewise. | |
28165 | (__arm_vreinterpretq_s32_s64): Likewise. | |
28166 | (__arm_vreinterpretq_s32_s8): Likewise. | |
28167 | (__arm_vreinterpretq_s32_u16): Likewise. | |
28168 | (__arm_vreinterpretq_s32_u32): Likewise. | |
28169 | (__arm_vreinterpretq_s32_u64): Likewise. | |
28170 | (__arm_vreinterpretq_s32_u8): Likewise. | |
28171 | (__arm_vreinterpretq_s64_s16): Likewise. | |
28172 | (__arm_vreinterpretq_s64_s32): Likewise. | |
28173 | (__arm_vreinterpretq_s64_s8): Likewise. | |
28174 | (__arm_vreinterpretq_s64_u16): Likewise. | |
28175 | (__arm_vreinterpretq_s64_u32): Likewise. | |
28176 | (__arm_vreinterpretq_s64_u64): Likewise. | |
28177 | (__arm_vreinterpretq_s64_u8): Likewise. | |
28178 | (__arm_vreinterpretq_s8_s16): Likewise. | |
28179 | (__arm_vreinterpretq_s8_s32): Likewise. | |
28180 | (__arm_vreinterpretq_s8_s64): Likewise. | |
28181 | (__arm_vreinterpretq_s8_u16): Likewise. | |
28182 | (__arm_vreinterpretq_s8_u32): Likewise. | |
28183 | (__arm_vreinterpretq_s8_u64): Likewise. | |
28184 | (__arm_vreinterpretq_s8_u8): Likewise. | |
28185 | (__arm_vreinterpretq_u16_s16): Likewise. | |
28186 | (__arm_vreinterpretq_u16_s32): Likewise. | |
28187 | (__arm_vreinterpretq_u16_s64): Likewise. | |
28188 | (__arm_vreinterpretq_u16_s8): Likewise. | |
28189 | (__arm_vreinterpretq_u16_u32): Likewise. | |
28190 | (__arm_vreinterpretq_u16_u64): Likewise. | |
28191 | (__arm_vreinterpretq_u16_u8): Likewise. | |
28192 | (__arm_vreinterpretq_u32_s16): Likewise. | |
28193 | (__arm_vreinterpretq_u32_s32): Likewise. | |
28194 | (__arm_vreinterpretq_u32_s64): Likewise. | |
28195 | (__arm_vreinterpretq_u32_s8): Likewise. | |
28196 | (__arm_vreinterpretq_u32_u16): Likewise. | |
28197 | (__arm_vreinterpretq_u32_u64): Likewise. | |
28198 | (__arm_vreinterpretq_u32_u8): Likewise. | |
28199 | (__arm_vreinterpretq_u64_s16): Likewise. | |
28200 | (__arm_vreinterpretq_u64_s32): Likewise. | |
28201 | (__arm_vreinterpretq_u64_s64): Likewise. | |
28202 | (__arm_vreinterpretq_u64_s8): Likewise. | |
28203 | (__arm_vreinterpretq_u64_u16): Likewise. | |
28204 | (__arm_vreinterpretq_u64_u32): Likewise. | |
28205 | (__arm_vreinterpretq_u64_u8): Likewise. | |
28206 | (__arm_vreinterpretq_u8_s16): Likewise. | |
28207 | (__arm_vreinterpretq_u8_s32): Likewise. | |
28208 | (__arm_vreinterpretq_u8_s64): Likewise. | |
28209 | (__arm_vreinterpretq_u8_s8): Likewise. | |
28210 | (__arm_vreinterpretq_u8_u16): Likewise. | |
28211 | (__arm_vreinterpretq_u8_u32): Likewise. | |
28212 | (__arm_vreinterpretq_u8_u64): Likewise. | |
28213 | (__arm_vuninitializedq_f16): Likewise. | |
28214 | (__arm_vuninitializedq_f32): Likewise. | |
28215 | (__arm_vreinterpretq_s32_f16): Likewise. | |
28216 | (__arm_vreinterpretq_s32_f32): Likewise. | |
28217 | (__arm_vreinterpretq_s16_f16): Likewise. | |
28218 | (__arm_vreinterpretq_s16_f32): Likewise. | |
28219 | (__arm_vreinterpretq_s64_f16): Likewise. | |
28220 | (__arm_vreinterpretq_s64_f32): Likewise. | |
28221 | (__arm_vreinterpretq_s8_f16): Likewise. | |
28222 | (__arm_vreinterpretq_s8_f32): Likewise. | |
28223 | (__arm_vreinterpretq_u16_f16): Likewise. | |
28224 | (__arm_vreinterpretq_u16_f32): Likewise. | |
28225 | (__arm_vreinterpretq_u32_f16): Likewise. | |
28226 | (__arm_vreinterpretq_u32_f32): Likewise. | |
28227 | (__arm_vreinterpretq_u64_f16): Likewise. | |
28228 | (__arm_vreinterpretq_u64_f32): Likewise. | |
28229 | (__arm_vreinterpretq_u8_f16): Likewise. | |
28230 | (__arm_vreinterpretq_u8_f32): Likewise. | |
28231 | (__arm_vreinterpretq_f16_f32): Likewise. | |
28232 | (__arm_vreinterpretq_f16_s16): Likewise. | |
28233 | (__arm_vreinterpretq_f16_s32): Likewise. | |
28234 | (__arm_vreinterpretq_f16_s64): Likewise. | |
28235 | (__arm_vreinterpretq_f16_s8): Likewise. | |
28236 | (__arm_vreinterpretq_f16_u16): Likewise. | |
28237 | (__arm_vreinterpretq_f16_u32): Likewise. | |
28238 | (__arm_vreinterpretq_f16_u64): Likewise. | |
28239 | (__arm_vreinterpretq_f16_u8): Likewise. | |
28240 | (__arm_vreinterpretq_f32_f16): Likewise. | |
28241 | (__arm_vreinterpretq_f32_s16): Likewise. | |
28242 | (__arm_vreinterpretq_f32_s32): Likewise. | |
28243 | (__arm_vreinterpretq_f32_s64): Likewise. | |
28244 | (__arm_vreinterpretq_f32_s8): Likewise. | |
28245 | (__arm_vreinterpretq_f32_u16): Likewise. | |
28246 | (__arm_vreinterpretq_f32_u32): Likewise. | |
28247 | (__arm_vreinterpretq_f32_u64): Likewise. | |
28248 | (__arm_vreinterpretq_f32_u8): Likewise. | |
28249 | (vuninitializedq): Define polymorphic variant. | |
28250 | (vreinterpretq_f16): Likewise. | |
28251 | (vreinterpretq_f32): Likewise. | |
28252 | (vreinterpretq_s16): Likewise. | |
28253 | (vreinterpretq_s32): Likewise. | |
28254 | (vreinterpretq_s64): Likewise. | |
28255 | (vreinterpretq_s8): Likewise. | |
28256 | (vreinterpretq_u16): Likewise. | |
28257 | (vreinterpretq_u32): Likewise. | |
28258 | (vreinterpretq_u64): Likewise. | |
28259 | (vreinterpretq_u8): Likewise. | |
28260 | ||
28261 | 2020-03-20 Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
28262 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28263 | Mihail Ionescu <mihail.ionescu@arm.com> | |
28264 | ||
28265 | * config/arm/arm_mve.h (vaddq_s8): Define macro. | |
28266 | (vaddq_s16): Likewise. | |
28267 | (vaddq_s32): Likewise. | |
28268 | (vaddq_u8): Likewise. | |
28269 | (vaddq_u16): Likewise. | |
28270 | (vaddq_u32): Likewise. | |
28271 | (vaddq_f16): Likewise. | |
28272 | (vaddq_f32): Likewise. | |
28273 | (__arm_vaddq_s8): Define intrinsic. | |
28274 | (__arm_vaddq_s16): Likewise. | |
28275 | (__arm_vaddq_s32): Likewise. | |
28276 | (__arm_vaddq_u8): Likewise. | |
28277 | (__arm_vaddq_u16): Likewise. | |
28278 | (__arm_vaddq_u32): Likewise. | |
28279 | (__arm_vaddq_f16): Likewise. | |
28280 | (__arm_vaddq_f32): Likewise. | |
28281 | (vaddq): Define polymorphic variant. | |
28282 | * config/arm/iterators.md (VNIM): Define mode iterator for common types | |
28283 | Neon, IWMMXT and MVE. | |
28284 | (VNINOTM): Likewise. | |
28285 | * config/arm/mve.md (mve_vaddq<mode>): Define RTL pattern. | |
28286 | (mve_vaddq_f<mode>): Define RTL pattern. | |
28287 | * config/arm/neon.md (add<mode>3): Rename to addv4hf3 RTL pattern. | |
28288 | (addv8hf3_neon): Define RTL pattern. | |
28289 | * config/arm/vec-common.md (add<mode>3): Modify standard add RTL pattern | |
28290 | to support MVE. | |
28291 | (addv8hf3): Define standard RTL pattern for MVE and Neon. | |
28292 | (add<mode>3): Modify existing standard add RTL pattern for Neon and IWMMXT. | |
28293 | ||
28294 | 2020-03-20 Martin Liska <mliska@suse.cz> | |
28295 | ||
28296 | PR ipa/94232 | |
28297 | * ipa-cp.c (ipa_get_jf_ancestor_result): Use offset in bytes. Previously | |
28298 | build_ref_for_offset function was used and it transforms off to bytes | |
28299 | from bits. | |
28300 | ||
28301 | 2020-03-20 Richard Biener <rguenther@suse.de> | |
28302 | ||
28303 | PR tree-optimization/94266 | |
28304 | * gimple-ssa-sprintf.c (get_origin_and_offset): Use the | |
28305 | type of the underlying object to adjust for the containing | |
28306 | field if available. | |
28307 | ||
28308 | 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28309 | ||
28310 | * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Rename this to ... | |
28311 | (VUNSPEC_GET_FPSCR): ... this, and move it to vunspec. | |
28312 | * config/arm/vfp.md: (get_fpscr, set_fpscr): Revert to old patterns. | |
28313 | ||
28314 | 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28315 | ||
28316 | * config/arm/mve.md (mve_mov<mode>): Fix R->R case. | |
28317 | ||
28318 | 2020-03-20 Jakub Jelinek <jakub@redhat.com> | |
28319 | ||
28320 | PR tree-optimization/94224 | |
28321 | * gimple-ssa-store-merging.c | |
28322 | (imm_store_chain_info::coalesce_immediate): Don't consider overlapping | |
28323 | or adjacent INTEGER_CST rhs_code stores as mergeable if they have | |
28324 | different lp_nr. | |
28325 | ||
28326 | 2020-03-20 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28327 | ||
28328 | * config/arm/arm.md (define_attr "conds"): Fix logic for neon and mve. | |
28329 | ||
28330 | 2020-03-19 Jan Hubicka <hubicka@ucw.cz> | |
28331 | ||
28332 | PR ipa/94202 | |
28333 | * cgraph.c (cgraph_node::function_symbol): Fix availability computation. | |
28334 | (cgraph_node::function_or_virtual_thunk_symbol): Likewise. | |
28335 | ||
28336 | 2020-03-19 Jan Hubicka <hubicka@ucw.cz> | |
28337 | ||
28338 | PR ipa/92372 | |
28339 | * cgraphunit.c (process_function_and_variable_attributes): warn | |
28340 | for flatten attribute on alias. | |
28341 | * ipa-inline.c (ipa_inline): Do not ICE on flatten attribute on alias. | |
28342 | ||
28343 | 2020-03-19 Martin Liska <mliska@suse.cz> | |
28344 | ||
28345 | * lto-section-in.c: Add ext_symtab. | |
28346 | * lto-streamer-out.c (write_symbol_extension_info): New. | |
28347 | (produce_symtab_extension): New. | |
28348 | (produce_asm_for_decls): Stream also produce_symtab_extension. | |
28349 | * lto-streamer.h (enum lto_section_type): New section. | |
28350 | ||
28351 | 2020-03-19 Jakub Jelinek <jakub@redhat.com> | |
28352 | ||
28353 | PR tree-optimization/94211 | |
28354 | * tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq | |
28355 | instead of estimate_num_insns for bb_seq (middle_bb). Rename | |
28356 | emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust | |
28357 | all uses. | |
28358 | ||
28359 | 2020-03-19 Richard Biener <rguenther@suse.de> | |
28360 | ||
28361 | PR ipa/94217 | |
28362 | * ipa-cp.c (ipa_get_jf_ancestor_result): Avoid build_fold_addr_expr | |
28363 | and build_ref_for_offset. | |
28364 | ||
28365 | 2020-03-19 Richard Biener <rguenther@suse.de> | |
28366 | ||
28367 | PR middle-end/94216 | |
28368 | * fold-const.c (fold_binary_loc): Avoid using | |
28369 | build_fold_addr_expr when we really want an ADDR_EXPR. | |
28370 | ||
28371 | 2020-03-18 Segher Boessenkool <segher@kernel.crashing.org> | |
28372 | ||
28373 | * config/rs6000/constraints.md (wd, wf, wi, ws, ww): New undocumented | |
28374 | aliases for "wa". | |
28375 | ||
28376 | 2020-03-12 Richard Sandiford <richard.sandiford@arm.com> | |
28377 | ||
28378 | PR rtl-optimization/90275 | |
28379 | * cse.c (cse_insn): Delete no-op register moves too. | |
28380 | ||
28381 | 2020-03-18 Martin Sebor <msebor@redhat.com> | |
28382 | ||
28383 | PR ipa/92799 | |
28384 | * cgraphunit.c (process_function_and_variable_attributes): Also | |
28385 | complain about weakref function definitions and drop all effects | |
28386 | of the attribute. | |
28387 | ||
28388 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28389 | Mihail Ionescu <mihail.ionescu@arm.com> | |
28390 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
28391 | ||
28392 | * config/arm/arm_mve.h (vstrdq_scatter_base_p_s64): Define macro. | |
28393 | (vstrdq_scatter_base_p_u64): Likewise. | |
28394 | (vstrdq_scatter_base_s64): Likewise. | |
28395 | (vstrdq_scatter_base_u64): Likewise. | |
28396 | (vstrdq_scatter_offset_p_s64): Likewise. | |
28397 | (vstrdq_scatter_offset_p_u64): Likewise. | |
28398 | (vstrdq_scatter_offset_s64): Likewise. | |
28399 | (vstrdq_scatter_offset_u64): Likewise. | |
28400 | (vstrdq_scatter_shifted_offset_p_s64): Likewise. | |
28401 | (vstrdq_scatter_shifted_offset_p_u64): Likewise. | |
28402 | (vstrdq_scatter_shifted_offset_s64): Likewise. | |
28403 | (vstrdq_scatter_shifted_offset_u64): Likewise. | |
28404 | (vstrhq_scatter_offset_f16): Likewise. | |
28405 | (vstrhq_scatter_offset_p_f16): Likewise. | |
28406 | (vstrhq_scatter_shifted_offset_f16): Likewise. | |
28407 | (vstrhq_scatter_shifted_offset_p_f16): Likewise. | |
28408 | (vstrwq_scatter_base_f32): Likewise. | |
28409 | (vstrwq_scatter_base_p_f32): Likewise. | |
28410 | (vstrwq_scatter_offset_f32): Likewise. | |
28411 | (vstrwq_scatter_offset_p_f32): Likewise. | |
28412 | (vstrwq_scatter_offset_p_s32): Likewise. | |
28413 | (vstrwq_scatter_offset_p_u32): Likewise. | |
28414 | (vstrwq_scatter_offset_s32): Likewise. | |
28415 | (vstrwq_scatter_offset_u32): Likewise. | |
28416 | (vstrwq_scatter_shifted_offset_f32): Likewise. | |
28417 | (vstrwq_scatter_shifted_offset_p_f32): Likewise. | |
28418 | (vstrwq_scatter_shifted_offset_p_s32): Likewise. | |
28419 | (vstrwq_scatter_shifted_offset_p_u32): Likewise. | |
28420 | (vstrwq_scatter_shifted_offset_s32): Likewise. | |
28421 | (vstrwq_scatter_shifted_offset_u32): Likewise. | |
28422 | (__arm_vstrdq_scatter_base_p_s64): Define intrinsic. | |
28423 | (__arm_vstrdq_scatter_base_p_u64): Likewise. | |
28424 | (__arm_vstrdq_scatter_base_s64): Likewise. | |
28425 | (__arm_vstrdq_scatter_base_u64): Likewise. | |
28426 | (__arm_vstrdq_scatter_offset_p_s64): Likewise. | |
28427 | (__arm_vstrdq_scatter_offset_p_u64): Likewise. | |
28428 | (__arm_vstrdq_scatter_offset_s64): Likewise. | |
28429 | (__arm_vstrdq_scatter_offset_u64): Likewise. | |
28430 | (__arm_vstrdq_scatter_shifted_offset_p_s64): Likewise. | |
28431 | (__arm_vstrdq_scatter_shifted_offset_p_u64): Likewise. | |
28432 | (__arm_vstrdq_scatter_shifted_offset_s64): Likewise. | |
28433 | (__arm_vstrdq_scatter_shifted_offset_u64): Likewise. | |
28434 | (__arm_vstrwq_scatter_offset_p_s32): Likewise. | |
28435 | (__arm_vstrwq_scatter_offset_p_u32): Likewise. | |
28436 | (__arm_vstrwq_scatter_offset_s32): Likewise. | |
28437 | (__arm_vstrwq_scatter_offset_u32): Likewise. | |
28438 | (__arm_vstrwq_scatter_shifted_offset_p_s32): Likewise. | |
28439 | (__arm_vstrwq_scatter_shifted_offset_p_u32): Likewise. | |
28440 | (__arm_vstrwq_scatter_shifted_offset_s32): Likewise. | |
28441 | (__arm_vstrwq_scatter_shifted_offset_u32): Likewise. | |
28442 | (__arm_vstrhq_scatter_offset_f16): Likewise. | |
28443 | (__arm_vstrhq_scatter_offset_p_f16): Likewise. | |
28444 | (__arm_vstrhq_scatter_shifted_offset_f16): Likewise. | |
28445 | (__arm_vstrhq_scatter_shifted_offset_p_f16): Likewise. | |
28446 | (__arm_vstrwq_scatter_base_f32): Likewise. | |
28447 | (__arm_vstrwq_scatter_base_p_f32): Likewise. | |
28448 | (__arm_vstrwq_scatter_offset_f32): Likewise. | |
28449 | (__arm_vstrwq_scatter_offset_p_f32): Likewise. | |
28450 | (__arm_vstrwq_scatter_shifted_offset_f32): Likewise. | |
28451 | (__arm_vstrwq_scatter_shifted_offset_p_f32): Likewise. | |
28452 | (vstrhq_scatter_offset): Define polymorphic variant. | |
28453 | (vstrhq_scatter_offset_p): Likewise. | |
28454 | (vstrhq_scatter_shifted_offset): Likewise. | |
28455 | (vstrhq_scatter_shifted_offset_p): Likewise. | |
28456 | (vstrwq_scatter_base): Likewise. | |
28457 | (vstrwq_scatter_base_p): Likewise. | |
28458 | (vstrwq_scatter_offset): Likewise. | |
28459 | (vstrwq_scatter_offset_p): Likewise. | |
28460 | (vstrwq_scatter_shifted_offset): Likewise. | |
28461 | (vstrwq_scatter_shifted_offset_p): Likewise. | |
28462 | (vstrdq_scatter_base_p): Likewise. | |
28463 | (vstrdq_scatter_base): Likewise. | |
28464 | (vstrdq_scatter_offset_p): Likewise. | |
28465 | (vstrdq_scatter_offset): Likewise. | |
28466 | (vstrdq_scatter_shifted_offset_p): Likewise. | |
28467 | (vstrdq_scatter_shifted_offset): Likewise. | |
28468 | * config/arm/arm_mve_builtins.def (STRSBS): Use builtin qualifier. | |
28469 | (STRSBS_P): Likewise. | |
28470 | (STRSBU): Likewise. | |
28471 | (STRSBU_P): Likewise. | |
28472 | (STRSS): Likewise. | |
28473 | (STRSS_P): Likewise. | |
28474 | (STRSU): Likewise. | |
28475 | (STRSU_P): Likewise. | |
28476 | * config/arm/constraints.md (Ri): Define. | |
28477 | * config/arm/mve.md (VSTRDSBQ): Define iterator. | |
28478 | (VSTRDSOQ): Likewise. | |
28479 | (VSTRDSSOQ): Likewise. | |
28480 | (VSTRWSOQ): Likewise. | |
28481 | (VSTRWSSOQ): Likewise. | |
28482 | (mve_vstrdq_scatter_base_p_<supf>v2di): Define RTL pattern. | |
28483 | (mve_vstrdq_scatter_base_<supf>v2di): Likewise. | |
28484 | (mve_vstrdq_scatter_offset_p_<supf>v2di): Likewise. | |
28485 | (mve_vstrdq_scatter_offset_<supf>v2di): Likewise. | |
28486 | (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Likewise. | |
28487 | (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Likewise. | |
28488 | (mve_vstrhq_scatter_offset_fv8hf): Likewise. | |
28489 | (mve_vstrhq_scatter_offset_p_fv8hf): Likewise. | |
28490 | (mve_vstrhq_scatter_shifted_offset_fv8hf): Likewise. | |
28491 | (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Likewise. | |
28492 | (mve_vstrwq_scatter_base_fv4sf): Likewise. | |
28493 | (mve_vstrwq_scatter_base_p_fv4sf): Likewise. | |
28494 | (mve_vstrwq_scatter_offset_fv4sf): Likewise. | |
28495 | (mve_vstrwq_scatter_offset_p_fv4sf): Likewise. | |
28496 | (mve_vstrwq_scatter_offset_p_<supf>v4si): Likewise. | |
28497 | (mve_vstrwq_scatter_offset_<supf>v4si): Likewise. | |
28498 | (mve_vstrwq_scatter_shifted_offset_fv4sf): Likewise. | |
28499 | (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Likewise. | |
28500 | (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Likewise. | |
28501 | (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Likewise. | |
28502 | * config/arm/predicates.md (Ri): Define predicate to check immediate | |
28503 | is the range +/-1016 and multiple of 8. | |
28504 | ||
28505 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28506 | Mihail Ionescu <mihail.ionescu@arm.com> | |
28507 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
28508 | ||
28509 | * config/arm/arm_mve.h (vst1q_f32): Define macro. | |
28510 | (vst1q_f16): Likewise. | |
28511 | (vst1q_s8): Likewise. | |
28512 | (vst1q_s32): Likewise. | |
28513 | (vst1q_s16): Likewise. | |
28514 | (vst1q_u8): Likewise. | |
28515 | (vst1q_u32): Likewise. | |
28516 | (vst1q_u16): Likewise. | |
28517 | (vstrhq_f16): Likewise. | |
28518 | (vstrhq_scatter_offset_s32): Likewise. | |
28519 | (vstrhq_scatter_offset_s16): Likewise. | |
28520 | (vstrhq_scatter_offset_u32): Likewise. | |
28521 | (vstrhq_scatter_offset_u16): Likewise. | |
28522 | (vstrhq_scatter_offset_p_s32): Likewise. | |
28523 | (vstrhq_scatter_offset_p_s16): Likewise. | |
28524 | (vstrhq_scatter_offset_p_u32): Likewise. | |
28525 | (vstrhq_scatter_offset_p_u16): Likewise. | |
28526 | (vstrhq_scatter_shifted_offset_s32): Likewise. | |
28527 | (vstrhq_scatter_shifted_offset_s16): Likewise. | |
28528 | (vstrhq_scatter_shifted_offset_u32): Likewise. | |
28529 | (vstrhq_scatter_shifted_offset_u16): Likewise. | |
28530 | (vstrhq_scatter_shifted_offset_p_s32): Likewise. | |
28531 | (vstrhq_scatter_shifted_offset_p_s16): Likewise. | |
28532 | (vstrhq_scatter_shifted_offset_p_u32): Likewise. | |
28533 | (vstrhq_scatter_shifted_offset_p_u16): Likewise. | |
28534 | (vstrhq_s32): Likewise. | |
28535 | (vstrhq_s16): Likewise. | |
28536 | (vstrhq_u32): Likewise. | |
28537 | (vstrhq_u16): Likewise. | |
28538 | (vstrhq_p_f16): Likewise. | |
28539 | (vstrhq_p_s32): Likewise. | |
28540 | (vstrhq_p_s16): Likewise. | |
28541 | (vstrhq_p_u32): Likewise. | |
28542 | (vstrhq_p_u16): Likewise. | |
28543 | (vstrwq_f32): Likewise. | |
28544 | (vstrwq_s32): Likewise. | |
28545 | (vstrwq_u32): Likewise. | |
28546 | (vstrwq_p_f32): Likewise. | |
28547 | (vstrwq_p_s32): Likewise. | |
28548 | (vstrwq_p_u32): Likewise. | |
28549 | (__arm_vst1q_s8): Define intrinsic. | |
28550 | (__arm_vst1q_s32): Likewise. | |
28551 | (__arm_vst1q_s16): Likewise. | |
28552 | (__arm_vst1q_u8): Likewise. | |
28553 | (__arm_vst1q_u32): Likewise. | |
28554 | (__arm_vst1q_u16): Likewise. | |
28555 | (__arm_vstrhq_scatter_offset_s32): Likewise. | |
28556 | (__arm_vstrhq_scatter_offset_s16): Likewise. | |
28557 | (__arm_vstrhq_scatter_offset_u32): Likewise. | |
28558 | (__arm_vstrhq_scatter_offset_u16): Likewise. | |
28559 | (__arm_vstrhq_scatter_offset_p_s32): Likewise. | |
28560 | (__arm_vstrhq_scatter_offset_p_s16): Likewise. | |
28561 | (__arm_vstrhq_scatter_offset_p_u32): Likewise. | |
28562 | (__arm_vstrhq_scatter_offset_p_u16): Likewise. | |
28563 | (__arm_vstrhq_scatter_shifted_offset_s32): Likewise. | |
28564 | (__arm_vstrhq_scatter_shifted_offset_s16): Likewise. | |
28565 | (__arm_vstrhq_scatter_shifted_offset_u32): Likewise. | |
28566 | (__arm_vstrhq_scatter_shifted_offset_u16): Likewise. | |
28567 | (__arm_vstrhq_scatter_shifted_offset_p_s32): Likewise. | |
28568 | (__arm_vstrhq_scatter_shifted_offset_p_s16): Likewise. | |
28569 | (__arm_vstrhq_scatter_shifted_offset_p_u32): Likewise. | |
28570 | (__arm_vstrhq_scatter_shifted_offset_p_u16): Likewise. | |
28571 | (__arm_vstrhq_s32): Likewise. | |
28572 | (__arm_vstrhq_s16): Likewise. | |
28573 | (__arm_vstrhq_u32): Likewise. | |
28574 | (__arm_vstrhq_u16): Likewise. | |
28575 | (__arm_vstrhq_p_s32): Likewise. | |
28576 | (__arm_vstrhq_p_s16): Likewise. | |
28577 | (__arm_vstrhq_p_u32): Likewise. | |
28578 | (__arm_vstrhq_p_u16): Likewise. | |
28579 | (__arm_vstrwq_s32): Likewise. | |
28580 | (__arm_vstrwq_u32): Likewise. | |
28581 | (__arm_vstrwq_p_s32): Likewise. | |
28582 | (__arm_vstrwq_p_u32): Likewise. | |
28583 | (__arm_vstrwq_p_f32): Likewise. | |
28584 | (__arm_vstrwq_f32): Likewise. | |
28585 | (__arm_vst1q_f32): Likewise. | |
28586 | (__arm_vst1q_f16): Likewise. | |
28587 | (__arm_vstrhq_f16): Likewise. | |
28588 | (__arm_vstrhq_p_f16): Likewise. | |
28589 | (vst1q): Define polymorphic variant. | |
28590 | (vstrhq): Likewise. | |
28591 | (vstrhq_p): Likewise. | |
28592 | (vstrhq_scatter_offset_p): Likewise. | |
28593 | (vstrhq_scatter_offset): Likewise. | |
28594 | (vstrhq_scatter_shifted_offset_p): Likewise. | |
28595 | (vstrhq_scatter_shifted_offset): Likewise. | |
28596 | (vstrwq_p): Likewise. | |
28597 | (vstrwq): Likewise. | |
28598 | * config/arm/arm_mve_builtins.def (STRS): Use builtin qualifier. | |
28599 | (STRS_P): Likewise. | |
28600 | (STRSS): Likewise. | |
28601 | (STRSS_P): Likewise. | |
28602 | (STRSU): Likewise. | |
28603 | (STRSU_P): Likewise. | |
28604 | (STRU): Likewise. | |
28605 | (STRU_P): Likewise. | |
28606 | * config/arm/mve.md (VST1Q): Define iterator. | |
28607 | (VSTRHSOQ): Likewise. | |
28608 | (VSTRHSSOQ): Likewise. | |
28609 | (VSTRHQ): Likewise. | |
28610 | (VSTRWQ): Likewise. | |
28611 | (mve_vstrhq_fv8hf): Define RTL pattern. | |
28612 | (mve_vstrhq_p_fv8hf): Likewise. | |
28613 | (mve_vstrhq_p_<supf><mode>): Likewise. | |
28614 | (mve_vstrhq_scatter_offset_p_<supf><mode>): Likewise. | |
28615 | (mve_vstrhq_scatter_offset_<supf><mode>): Likewise. | |
28616 | (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Likewise. | |
28617 | (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Likewise. | |
28618 | (mve_vstrhq_<supf><mode>): Likewise. | |
28619 | (mve_vstrwq_fv4sf): Likewise. | |
28620 | (mve_vstrwq_p_fv4sf): Likewise. | |
28621 | (mve_vstrwq_p_<supf>v4si): Likewise. | |
28622 | (mve_vstrwq_<supf>v4si): Likewise. | |
28623 | (mve_vst1q_f<mode>): Define expand. | |
28624 | (mve_vst1q_<supf><mode>): Likewise. | |
28625 | ||
28626 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28627 | Mihail Ionescu <mihail.ionescu@arm.com> | |
28628 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
28629 | ||
28630 | * config/arm/arm_mve.h (vld1q_s8): Define macro. | |
28631 | (vld1q_s32): Likewise. | |
28632 | (vld1q_s16): Likewise. | |
28633 | (vld1q_u8): Likewise. | |
28634 | (vld1q_u32): Likewise. | |
28635 | (vld1q_u16): Likewise. | |
28636 | (vldrhq_gather_offset_s32): Likewise. | |
28637 | (vldrhq_gather_offset_s16): Likewise. | |
28638 | (vldrhq_gather_offset_u32): Likewise. | |
28639 | (vldrhq_gather_offset_u16): Likewise. | |
28640 | (vldrhq_gather_offset_z_s32): Likewise. | |
28641 | (vldrhq_gather_offset_z_s16): Likewise. | |
28642 | (vldrhq_gather_offset_z_u32): Likewise. | |
28643 | (vldrhq_gather_offset_z_u16): Likewise. | |
28644 | (vldrhq_gather_shifted_offset_s32): Likewise. | |
28645 | (vldrhq_gather_shifted_offset_s16): Likewise. | |
28646 | (vldrhq_gather_shifted_offset_u32): Likewise. | |
28647 | (vldrhq_gather_shifted_offset_u16): Likewise. | |
28648 | (vldrhq_gather_shifted_offset_z_s32): Likewise. | |
28649 | (vldrhq_gather_shifted_offset_z_s16): Likewise. | |
28650 | (vldrhq_gather_shifted_offset_z_u32): Likewise. | |
28651 | (vldrhq_gather_shifted_offset_z_u16): Likewise. | |
28652 | (vldrhq_s32): Likewise. | |
28653 | (vldrhq_s16): Likewise. | |
28654 | (vldrhq_u32): Likewise. | |
28655 | (vldrhq_u16): Likewise. | |
28656 | (vldrhq_z_s32): Likewise. | |
28657 | (vldrhq_z_s16): Likewise. | |
28658 | (vldrhq_z_u32): Likewise. | |
28659 | (vldrhq_z_u16): Likewise. | |
28660 | (vldrwq_s32): Likewise. | |
28661 | (vldrwq_u32): Likewise. | |
28662 | (vldrwq_z_s32): Likewise. | |
28663 | (vldrwq_z_u32): Likewise. | |
28664 | (vld1q_f32): Likewise. | |
28665 | (vld1q_f16): Likewise. | |
28666 | (vldrhq_f16): Likewise. | |
28667 | (vldrhq_z_f16): Likewise. | |
28668 | (vldrwq_f32): Likewise. | |
28669 | (vldrwq_z_f32): Likewise. | |
28670 | (__arm_vld1q_s8): Define intrinsic. | |
28671 | (__arm_vld1q_s32): Likewise. | |
28672 | (__arm_vld1q_s16): Likewise. | |
28673 | (__arm_vld1q_u8): Likewise. | |
28674 | (__arm_vld1q_u32): Likewise. | |
28675 | (__arm_vld1q_u16): Likewise. | |
28676 | (__arm_vldrhq_gather_offset_s32): Likewise. | |
28677 | (__arm_vldrhq_gather_offset_s16): Likewise. | |
28678 | (__arm_vldrhq_gather_offset_u32): Likewise. | |
28679 | (__arm_vldrhq_gather_offset_u16): Likewise. | |
28680 | (__arm_vldrhq_gather_offset_z_s32): Likewise. | |
28681 | (__arm_vldrhq_gather_offset_z_s16): Likewise. | |
28682 | (__arm_vldrhq_gather_offset_z_u32): Likewise. | |
28683 | (__arm_vldrhq_gather_offset_z_u16): Likewise. | |
28684 | (__arm_vldrhq_gather_shifted_offset_s32): Likewise. | |
28685 | (__arm_vldrhq_gather_shifted_offset_s16): Likewise. | |
28686 | (__arm_vldrhq_gather_shifted_offset_u32): Likewise. | |
28687 | (__arm_vldrhq_gather_shifted_offset_u16): Likewise. | |
28688 | (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise. | |
28689 | (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise. | |
28690 | (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise. | |
28691 | (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise. | |
28692 | (__arm_vldrhq_s32): Likewise. | |
28693 | (__arm_vldrhq_s16): Likewise. | |
28694 | (__arm_vldrhq_u32): Likewise. | |
28695 | (__arm_vldrhq_u16): Likewise. | |
28696 | (__arm_vldrhq_z_s32): Likewise. | |
28697 | (__arm_vldrhq_z_s16): Likewise. | |
28698 | (__arm_vldrhq_z_u32): Likewise. | |
28699 | (__arm_vldrhq_z_u16): Likewise. | |
28700 | (__arm_vldrwq_s32): Likewise. | |
28701 | (__arm_vldrwq_u32): Likewise. | |
28702 | (__arm_vldrwq_z_s32): Likewise. | |
28703 | (__arm_vldrwq_z_u32): Likewise. | |
28704 | (__arm_vld1q_f32): Likewise. | |
28705 | (__arm_vld1q_f16): Likewise. | |
28706 | (__arm_vldrwq_f32): Likewise. | |
28707 | (__arm_vldrwq_z_f32): Likewise. | |
28708 | (__arm_vldrhq_z_f16): Likewise. | |
28709 | (__arm_vldrhq_f16): Likewise. | |
28710 | (vld1q): Define polymorphic variant. | |
28711 | (vldrhq_gather_offset): Likewise. | |
28712 | (vldrhq_gather_offset_z): Likewise. | |
28713 | (vldrhq_gather_shifted_offset): Likewise. | |
28714 | (vldrhq_gather_shifted_offset_z): Likewise. | |
28715 | * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier. | |
28716 | (LDRS): Likewise. | |
28717 | (LDRU_Z): Likewise. | |
28718 | (LDRS_Z): Likewise. | |
28719 | (LDRGU_Z): Likewise. | |
28720 | (LDRGU): Likewise. | |
28721 | (LDRGS_Z): Likewise. | |
28722 | (LDRGS): Likewise. | |
28723 | * config/arm/mve.md (MVE_H_ELEM): Define mode iterator. | |
28724 | (V_sz_elem1): Likewise. | |
28725 | (VLD1Q): Define iterator. | |
28726 | (VLDRHGOQ): Likewise. | |
28727 | (VLDRHGSOQ): Likewise. | |
28728 | (VLDRHQ): Likewise. | |
28729 | (VLDRWQ): Likewise. | |
28730 | (mve_vldrhq_fv8hf): Define RTL pattern. | |
28731 | (mve_vldrhq_gather_offset_<supf><mode>): Likewise. | |
28732 | (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise. | |
28733 | (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise. | |
28734 | (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise. | |
28735 | (mve_vldrhq_<supf><mode>): Likewise. | |
28736 | (mve_vldrhq_z_fv8hf): Likewise. | |
28737 | (mve_vldrhq_z_<supf><mode>): Likewise. | |
28738 | (mve_vldrwq_fv4sf): Likewise. | |
28739 | (mve_vldrwq_<supf>v4si): Likewise. | |
28740 | (mve_vldrwq_z_fv4sf): Likewise. | |
28741 | (mve_vldrwq_z_<supf>v4si): Likewise. | |
28742 | (mve_vld1q_f<mode>): Define RTL expand pattern. | |
28743 | (mve_vld1q_<supf><mode>): Likewise. | |
28744 | ||
28745 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28746 | Mihail Ionescu <mihail.ionescu@arm.com> | |
28747 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
28748 | ||
28749 | * config/arm/arm_mve.h (vld1q_s8): Define macro. | |
28750 | (vld1q_s32): Likewise. | |
28751 | (vld1q_s16): Likewise. | |
28752 | (vld1q_u8): Likewise. | |
28753 | (vld1q_u32): Likewise. | |
28754 | (vld1q_u16): Likewise. | |
28755 | (vldrhq_gather_offset_s32): Likewise. | |
28756 | (vldrhq_gather_offset_s16): Likewise. | |
28757 | (vldrhq_gather_offset_u32): Likewise. | |
28758 | (vldrhq_gather_offset_u16): Likewise. | |
28759 | (vldrhq_gather_offset_z_s32): Likewise. | |
28760 | (vldrhq_gather_offset_z_s16): Likewise. | |
28761 | (vldrhq_gather_offset_z_u32): Likewise. | |
28762 | (vldrhq_gather_offset_z_u16): Likewise. | |
28763 | (vldrhq_gather_shifted_offset_s32): Likewise. | |
28764 | (vldrhq_gather_shifted_offset_s16): Likewise. | |
28765 | (vldrhq_gather_shifted_offset_u32): Likewise. | |
28766 | (vldrhq_gather_shifted_offset_u16): Likewise. | |
28767 | (vldrhq_gather_shifted_offset_z_s32): Likewise. | |
28768 | (vldrhq_gather_shifted_offset_z_s16): Likewise. | |
28769 | (vldrhq_gather_shifted_offset_z_u32): Likewise. | |
28770 | (vldrhq_gather_shifted_offset_z_u16): Likewise. | |
28771 | (vldrhq_s32): Likewise. | |
28772 | (vldrhq_s16): Likewise. | |
28773 | (vldrhq_u32): Likewise. | |
28774 | (vldrhq_u16): Likewise. | |
28775 | (vldrhq_z_s32): Likewise. | |
28776 | (vldrhq_z_s16): Likewise. | |
28777 | (vldrhq_z_u32): Likewise. | |
28778 | (vldrhq_z_u16): Likewise. | |
28779 | (vldrwq_s32): Likewise. | |
28780 | (vldrwq_u32): Likewise. | |
28781 | (vldrwq_z_s32): Likewise. | |
28782 | (vldrwq_z_u32): Likewise. | |
28783 | (vld1q_f32): Likewise. | |
28784 | (vld1q_f16): Likewise. | |
28785 | (vldrhq_f16): Likewise. | |
28786 | (vldrhq_z_f16): Likewise. | |
28787 | (vldrwq_f32): Likewise. | |
28788 | (vldrwq_z_f32): Likewise. | |
28789 | (__arm_vld1q_s8): Define intrinsic. | |
28790 | (__arm_vld1q_s32): Likewise. | |
28791 | (__arm_vld1q_s16): Likewise. | |
28792 | (__arm_vld1q_u8): Likewise. | |
28793 | (__arm_vld1q_u32): Likewise. | |
28794 | (__arm_vld1q_u16): Likewise. | |
28795 | (__arm_vldrhq_gather_offset_s32): Likewise. | |
28796 | (__arm_vldrhq_gather_offset_s16): Likewise. | |
28797 | (__arm_vldrhq_gather_offset_u32): Likewise. | |
28798 | (__arm_vldrhq_gather_offset_u16): Likewise. | |
28799 | (__arm_vldrhq_gather_offset_z_s32): Likewise. | |
28800 | (__arm_vldrhq_gather_offset_z_s16): Likewise. | |
28801 | (__arm_vldrhq_gather_offset_z_u32): Likewise. | |
28802 | (__arm_vldrhq_gather_offset_z_u16): Likewise. | |
28803 | (__arm_vldrhq_gather_shifted_offset_s32): Likewise. | |
28804 | (__arm_vldrhq_gather_shifted_offset_s16): Likewise. | |
28805 | (__arm_vldrhq_gather_shifted_offset_u32): Likewise. | |
28806 | (__arm_vldrhq_gather_shifted_offset_u16): Likewise. | |
28807 | (__arm_vldrhq_gather_shifted_offset_z_s32): Likewise. | |
28808 | (__arm_vldrhq_gather_shifted_offset_z_s16): Likewise. | |
28809 | (__arm_vldrhq_gather_shifted_offset_z_u32): Likewise. | |
28810 | (__arm_vldrhq_gather_shifted_offset_z_u16): Likewise. | |
28811 | (__arm_vldrhq_s32): Likewise. | |
28812 | (__arm_vldrhq_s16): Likewise. | |
28813 | (__arm_vldrhq_u32): Likewise. | |
28814 | (__arm_vldrhq_u16): Likewise. | |
28815 | (__arm_vldrhq_z_s32): Likewise. | |
28816 | (__arm_vldrhq_z_s16): Likewise. | |
28817 | (__arm_vldrhq_z_u32): Likewise. | |
28818 | (__arm_vldrhq_z_u16): Likewise. | |
28819 | (__arm_vldrwq_s32): Likewise. | |
28820 | (__arm_vldrwq_u32): Likewise. | |
28821 | (__arm_vldrwq_z_s32): Likewise. | |
28822 | (__arm_vldrwq_z_u32): Likewise. | |
28823 | (__arm_vld1q_f32): Likewise. | |
28824 | (__arm_vld1q_f16): Likewise. | |
28825 | (__arm_vldrwq_f32): Likewise. | |
28826 | (__arm_vldrwq_z_f32): Likewise. | |
28827 | (__arm_vldrhq_z_f16): Likewise. | |
28828 | (__arm_vldrhq_f16): Likewise. | |
28829 | (vld1q): Define polymorphic variant. | |
28830 | (vldrhq_gather_offset): Likewise. | |
28831 | (vldrhq_gather_offset_z): Likewise. | |
28832 | (vldrhq_gather_shifted_offset): Likewise. | |
28833 | (vldrhq_gather_shifted_offset_z): Likewise. | |
28834 | * config/arm/arm_mve_builtins.def (LDRU): Use builtin qualifier. | |
28835 | (LDRS): Likewise. | |
28836 | (LDRU_Z): Likewise. | |
28837 | (LDRS_Z): Likewise. | |
28838 | (LDRGU_Z): Likewise. | |
28839 | (LDRGU): Likewise. | |
28840 | (LDRGS_Z): Likewise. | |
28841 | (LDRGS): Likewise. | |
28842 | * config/arm/mve.md (MVE_H_ELEM): Define mode iterator. | |
28843 | (V_sz_elem1): Likewise. | |
28844 | (VLD1Q): Define iterator. | |
28845 | (VLDRHGOQ): Likewise. | |
28846 | (VLDRHGSOQ): Likewise. | |
28847 | (VLDRHQ): Likewise. | |
28848 | (VLDRWQ): Likewise. | |
28849 | (mve_vldrhq_fv8hf): Define RTL pattern. | |
28850 | (mve_vldrhq_gather_offset_<supf><mode>): Likewise. | |
28851 | (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise. | |
28852 | (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise. | |
28853 | (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise. | |
28854 | (mve_vldrhq_<supf><mode>): Likewise. | |
28855 | (mve_vldrhq_z_fv8hf): Likewise. | |
28856 | (mve_vldrhq_z_<supf><mode>): Likewise. | |
28857 | (mve_vldrwq_fv4sf): Likewise. | |
28858 | (mve_vldrwq_<supf>v4si): Likewise. | |
28859 | (mve_vldrwq_z_fv4sf): Likewise. | |
28860 | (mve_vldrwq_z_<supf>v4si): Likewise. | |
28861 | (mve_vld1q_f<mode>): Define RTL expand pattern. | |
28862 | (mve_vld1q_<supf><mode>): Likewise. | |
28863 | ||
28864 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28865 | Mihail Ionescu <mihail.ionescu@arm.com> | |
28866 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
28867 | ||
28868 | * config/arm/arm-builtins.c (LDRGBS_Z_QUALIFIERS): Define builtin | |
28869 | qualifier. | |
28870 | (LDRGBU_Z_QUALIFIERS): Likewise. | |
28871 | (LDRGS_Z_QUALIFIERS): Likewise. | |
28872 | (LDRGU_Z_QUALIFIERS): Likewise. | |
28873 | (LDRS_Z_QUALIFIERS): Likewise. | |
28874 | (LDRU_Z_QUALIFIERS): Likewise. | |
28875 | * config/arm/arm_mve.h (vldrbq_gather_offset_z_s16): Define macro. | |
28876 | (vldrbq_gather_offset_z_u8): Likewise. | |
28877 | (vldrbq_gather_offset_z_s32): Likewise. | |
28878 | (vldrbq_gather_offset_z_u16): Likewise. | |
28879 | (vldrbq_gather_offset_z_u32): Likewise. | |
28880 | (vldrbq_gather_offset_z_s8): Likewise. | |
28881 | (vldrbq_z_s16): Likewise. | |
28882 | (vldrbq_z_u8): Likewise. | |
28883 | (vldrbq_z_s8): Likewise. | |
28884 | (vldrbq_z_s32): Likewise. | |
28885 | (vldrbq_z_u16): Likewise. | |
28886 | (vldrbq_z_u32): Likewise. | |
28887 | (vldrwq_gather_base_z_u32): Likewise. | |
28888 | (vldrwq_gather_base_z_s32): Likewise. | |
28889 | (__arm_vldrbq_gather_offset_z_s8): Define intrinsic. | |
28890 | (__arm_vldrbq_gather_offset_z_s32): Likewise. | |
28891 | (__arm_vldrbq_gather_offset_z_s16): Likewise. | |
28892 | (__arm_vldrbq_gather_offset_z_u8): Likewise. | |
28893 | (__arm_vldrbq_gather_offset_z_u32): Likewise. | |
28894 | (__arm_vldrbq_gather_offset_z_u16): Likewise. | |
28895 | (__arm_vldrbq_z_s8): Likewise. | |
28896 | (__arm_vldrbq_z_s32): Likewise. | |
28897 | (__arm_vldrbq_z_s16): Likewise. | |
28898 | (__arm_vldrbq_z_u8): Likewise. | |
28899 | (__arm_vldrbq_z_u32): Likewise. | |
28900 | (__arm_vldrbq_z_u16): Likewise. | |
28901 | (__arm_vldrwq_gather_base_z_s32): Likewise. | |
28902 | (__arm_vldrwq_gather_base_z_u32): Likewise. | |
28903 | (vldrbq_gather_offset_z): Define polymorphic variant. | |
28904 | * config/arm/arm_mve_builtins.def (LDRGBS_Z_QUALIFIERS): Use builtin | |
28905 | qualifier. | |
28906 | (LDRGBU_Z_QUALIFIERS): Likewise. | |
28907 | (LDRGS_Z_QUALIFIERS): Likewise. | |
28908 | (LDRGU_Z_QUALIFIERS): Likewise. | |
28909 | (LDRS_Z_QUALIFIERS): Likewise. | |
28910 | (LDRU_Z_QUALIFIERS): Likewise. | |
28911 | * config/arm/mve.md (mve_vldrbq_gather_offset_z_<supf><mode>): Define | |
28912 | RTL pattern. | |
28913 | (mve_vldrbq_z_<supf><mode>): Likewise. | |
28914 | (mve_vldrwq_gather_base_z_<supf>v4si): Likewise. | |
28915 | ||
28916 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28917 | Mihail Ionescu <mihail.ionescu@arm.com> | |
28918 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
28919 | ||
28920 | * config/arm/arm-builtins.c (STRS_P_QUALIFIERS): Define builtin | |
28921 | qualifier. | |
28922 | (STRU_P_QUALIFIERS): Likewise. | |
28923 | (STRSU_P_QUALIFIERS): Likewise. | |
28924 | (STRSS_P_QUALIFIERS): Likewise. | |
28925 | (STRSBS_P_QUALIFIERS): Likewise. | |
28926 | (STRSBU_P_QUALIFIERS): Likewise. | |
28927 | * config/arm/arm_mve.h (vstrbq_p_s8): Define macro. | |
28928 | (vstrbq_p_s32): Likewise. | |
28929 | (vstrbq_p_s16): Likewise. | |
28930 | (vstrbq_p_u8): Likewise. | |
28931 | (vstrbq_p_u32): Likewise. | |
28932 | (vstrbq_p_u16): Likewise. | |
28933 | (vstrbq_scatter_offset_p_s8): Likewise. | |
28934 | (vstrbq_scatter_offset_p_s32): Likewise. | |
28935 | (vstrbq_scatter_offset_p_s16): Likewise. | |
28936 | (vstrbq_scatter_offset_p_u8): Likewise. | |
28937 | (vstrbq_scatter_offset_p_u32): Likewise. | |
28938 | (vstrbq_scatter_offset_p_u16): Likewise. | |
28939 | (vstrwq_scatter_base_p_s32): Likewise. | |
28940 | (vstrwq_scatter_base_p_u32): Likewise. | |
28941 | (__arm_vstrbq_p_s8): Define intrinsic. | |
28942 | (__arm_vstrbq_p_s32): Likewise. | |
28943 | (__arm_vstrbq_p_s16): Likewise. | |
28944 | (__arm_vstrbq_p_u8): Likewise. | |
28945 | (__arm_vstrbq_p_u32): Likewise. | |
28946 | (__arm_vstrbq_p_u16): Likewise. | |
28947 | (__arm_vstrbq_scatter_offset_p_s8): Likewise. | |
28948 | (__arm_vstrbq_scatter_offset_p_s32): Likewise. | |
28949 | (__arm_vstrbq_scatter_offset_p_s16): Likewise. | |
28950 | (__arm_vstrbq_scatter_offset_p_u8): Likewise. | |
28951 | (__arm_vstrbq_scatter_offset_p_u32): Likewise. | |
28952 | (__arm_vstrbq_scatter_offset_p_u16): Likewise. | |
28953 | (__arm_vstrwq_scatter_base_p_s32): Likewise. | |
28954 | (__arm_vstrwq_scatter_base_p_u32): Likewise. | |
28955 | (vstrbq_p): Define polymorphic variant. | |
28956 | (vstrbq_scatter_offset_p): Likewise. | |
28957 | (vstrwq_scatter_base_p): Likewise. | |
28958 | * config/arm/arm_mve_builtins.def (STRS_P_QUALIFIERS): Use builtin | |
28959 | qualifier. | |
28960 | (STRU_P_QUALIFIERS): Likewise. | |
28961 | (STRSU_P_QUALIFIERS): Likewise. | |
28962 | (STRSS_P_QUALIFIERS): Likewise. | |
28963 | (STRSBS_P_QUALIFIERS): Likewise. | |
28964 | (STRSBU_P_QUALIFIERS): Likewise. | |
28965 | * config/arm/mve.md (mve_vstrbq_scatter_offset_p_<supf><mode>): Define | |
28966 | RTL pattern. | |
28967 | (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise. | |
28968 | (mve_vstrbq_p_<supf><mode>): Likewise. | |
28969 | ||
28970 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
28971 | Mihail Ionescu <mihail.ionescu@arm.com> | |
28972 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
28973 | ||
28974 | * config/arm/arm-builtins.c (LDRGU_QUALIFIERS): Define builtin | |
28975 | qualifier. | |
28976 | (LDRGS_QUALIFIERS): Likewise. | |
28977 | (LDRS_QUALIFIERS): Likewise. | |
28978 | (LDRU_QUALIFIERS): Likewise. | |
28979 | (LDRGBS_QUALIFIERS): Likewise. | |
28980 | (LDRGBU_QUALIFIERS): Likewise. | |
28981 | * config/arm/arm_mve.h (vldrbq_gather_offset_u8): Define macro. | |
28982 | (vldrbq_gather_offset_s8): Likewise. | |
28983 | (vldrbq_s8): Likewise. | |
28984 | (vldrbq_u8): Likewise. | |
28985 | (vldrbq_gather_offset_u16): Likewise. | |
28986 | (vldrbq_gather_offset_s16): Likewise. | |
28987 | (vldrbq_s16): Likewise. | |
28988 | (vldrbq_u16): Likewise. | |
28989 | (vldrbq_gather_offset_u32): Likewise. | |
28990 | (vldrbq_gather_offset_s32): Likewise. | |
28991 | (vldrbq_s32): Likewise. | |
28992 | (vldrbq_u32): Likewise. | |
28993 | (vldrwq_gather_base_s32): Likewise. | |
28994 | (vldrwq_gather_base_u32): Likewise. | |
28995 | (__arm_vldrbq_gather_offset_u8): Define intrinsic. | |
28996 | (__arm_vldrbq_gather_offset_s8): Likewise. | |
28997 | (__arm_vldrbq_s8): Likewise. | |
28998 | (__arm_vldrbq_u8): Likewise. | |
28999 | (__arm_vldrbq_gather_offset_u16): Likewise. | |
29000 | (__arm_vldrbq_gather_offset_s16): Likewise. | |
29001 | (__arm_vldrbq_s16): Likewise. | |
29002 | (__arm_vldrbq_u16): Likewise. | |
29003 | (__arm_vldrbq_gather_offset_u32): Likewise. | |
29004 | (__arm_vldrbq_gather_offset_s32): Likewise. | |
29005 | (__arm_vldrbq_s32): Likewise. | |
29006 | (__arm_vldrbq_u32): Likewise. | |
29007 | (__arm_vldrwq_gather_base_s32): Likewise. | |
29008 | (__arm_vldrwq_gather_base_u32): Likewise. | |
29009 | (vldrbq_gather_offset): Define polymorphic variant. | |
29010 | * config/arm/arm_mve_builtins.def (LDRGU_QUALIFIERS): Use builtin | |
29011 | qualifier. | |
29012 | (LDRGS_QUALIFIERS): Likewise. | |
29013 | (LDRS_QUALIFIERS): Likewise. | |
29014 | (LDRU_QUALIFIERS): Likewise. | |
29015 | (LDRGBS_QUALIFIERS): Likewise. | |
29016 | (LDRGBU_QUALIFIERS): Likewise. | |
29017 | * config/arm/mve.md (VLDRBGOQ): Define iterator. | |
29018 | (VLDRBQ): Likewise. | |
29019 | (VLDRWGBQ): Likewise. | |
29020 | (mve_vldrbq_gather_offset_<supf><mode>): Define RTL pattern. | |
29021 | (mve_vldrbq_<supf><mode>): Likewise. | |
29022 | (mve_vldrwq_gather_base_<supf>v4si): Likewise. | |
29023 | ||
29024 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
29025 | Mihail Ionescu <mihail.ionescu@arm.com> | |
29026 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
29027 | ||
29028 | * config/arm/arm-builtins.c (STRS_QUALIFIERS): Define builtin qualifier. | |
29029 | (STRU_QUALIFIERS): Likewise. | |
29030 | (STRSS_QUALIFIERS): Likewise. | |
29031 | (STRSU_QUALIFIERS): Likewise. | |
29032 | (STRSBS_QUALIFIERS): Likewise. | |
29033 | (STRSBU_QUALIFIERS): Likewise. | |
29034 | * config/arm/arm_mve.h (vstrbq_s8): Define macro. | |
29035 | (vstrbq_u8): Likewise. | |
29036 | (vstrbq_u16): Likewise. | |
29037 | (vstrbq_scatter_offset_s8): Likewise. | |
29038 | (vstrbq_scatter_offset_u8): Likewise. | |
29039 | (vstrbq_scatter_offset_u16): Likewise. | |
29040 | (vstrbq_s16): Likewise. | |
29041 | (vstrbq_u32): Likewise. | |
29042 | (vstrbq_scatter_offset_s16): Likewise. | |
29043 | (vstrbq_scatter_offset_u32): Likewise. | |
29044 | (vstrbq_s32): Likewise. | |
29045 | (vstrbq_scatter_offset_s32): Likewise. | |
29046 | (vstrwq_scatter_base_s32): Likewise. | |
29047 | (vstrwq_scatter_base_u32): Likewise. | |
29048 | (__arm_vstrbq_scatter_offset_s8): Define intrinsic. | |
29049 | (__arm_vstrbq_scatter_offset_s32): Likewise. | |
29050 | (__arm_vstrbq_scatter_offset_s16): Likewise. | |
29051 | (__arm_vstrbq_scatter_offset_u8): Likewise. | |
29052 | (__arm_vstrbq_scatter_offset_u32): Likewise. | |
29053 | (__arm_vstrbq_scatter_offset_u16): Likewise. | |
29054 | (__arm_vstrbq_s8): Likewise. | |
29055 | (__arm_vstrbq_s32): Likewise. | |
29056 | (__arm_vstrbq_s16): Likewise. | |
29057 | (__arm_vstrbq_u8): Likewise. | |
29058 | (__arm_vstrbq_u32): Likewise. | |
29059 | (__arm_vstrbq_u16): Likewise. | |
29060 | (__arm_vstrwq_scatter_base_s32): Likewise. | |
29061 | (__arm_vstrwq_scatter_base_u32): Likewise. | |
29062 | (vstrbq): Define polymorphic variant. | |
29063 | (vstrbq_scatter_offset): Likewise. | |
29064 | (vstrwq_scatter_base): Likewise. | |
29065 | * config/arm/arm_mve_builtins.def (STRS_QUALIFIERS): Use builtin | |
29066 | qualifier. | |
29067 | (STRU_QUALIFIERS): Likewise. | |
29068 | (STRSS_QUALIFIERS): Likewise. | |
29069 | (STRSU_QUALIFIERS): Likewise. | |
29070 | (STRSBS_QUALIFIERS): Likewise. | |
29071 | (STRSBU_QUALIFIERS): Likewise. | |
29072 | * config/arm/mve.md (MVE_B_ELEM): Define mode attribute iterator. | |
29073 | (VSTRWSBQ): Define iterators. | |
29074 | (VSTRBSOQ): Likewise. | |
29075 | (VSTRBQ): Likewise. | |
29076 | (mve_vstrbq_<supf><mode>): Define RTL pattern. | |
29077 | (mve_vstrbq_scatter_offset_<supf><mode>): Likewise. | |
29078 | (mve_vstrwq_scatter_base_<supf>v4si): Likewise. | |
29079 | ||
29080 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
29081 | Mihail Ionescu <mihail.ionescu@arm.com> | |
29082 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
29083 | ||
29084 | * config/arm/arm_mve.h (vabdq_m_f32): Define macro. | |
29085 | (vabdq_m_f16): Likewise. | |
29086 | (vaddq_m_f32): Likewise. | |
29087 | (vaddq_m_f16): Likewise. | |
29088 | (vaddq_m_n_f32): Likewise. | |
29089 | (vaddq_m_n_f16): Likewise. | |
29090 | (vandq_m_f32): Likewise. | |
29091 | (vandq_m_f16): Likewise. | |
29092 | (vbicq_m_f32): Likewise. | |
29093 | (vbicq_m_f16): Likewise. | |
29094 | (vbrsrq_m_n_f32): Likewise. | |
29095 | (vbrsrq_m_n_f16): Likewise. | |
29096 | (vcaddq_rot270_m_f32): Likewise. | |
29097 | (vcaddq_rot270_m_f16): Likewise. | |
29098 | (vcaddq_rot90_m_f32): Likewise. | |
29099 | (vcaddq_rot90_m_f16): Likewise. | |
29100 | (vcmlaq_m_f32): Likewise. | |
29101 | (vcmlaq_m_f16): Likewise. | |
29102 | (vcmlaq_rot180_m_f32): Likewise. | |
29103 | (vcmlaq_rot180_m_f16): Likewise. | |
29104 | (vcmlaq_rot270_m_f32): Likewise. | |
29105 | (vcmlaq_rot270_m_f16): Likewise. | |
29106 | (vcmlaq_rot90_m_f32): Likewise. | |
29107 | (vcmlaq_rot90_m_f16): Likewise. | |
29108 | (vcmulq_m_f32): Likewise. | |
29109 | (vcmulq_m_f16): Likewise. | |
29110 | (vcmulq_rot180_m_f32): Likewise. | |
29111 | (vcmulq_rot180_m_f16): Likewise. | |
29112 | (vcmulq_rot270_m_f32): Likewise. | |
29113 | (vcmulq_rot270_m_f16): Likewise. | |
29114 | (vcmulq_rot90_m_f32): Likewise. | |
29115 | (vcmulq_rot90_m_f16): Likewise. | |
29116 | (vcvtq_m_n_s32_f32): Likewise. | |
29117 | (vcvtq_m_n_s16_f16): Likewise. | |
29118 | (vcvtq_m_n_u32_f32): Likewise. | |
29119 | (vcvtq_m_n_u16_f16): Likewise. | |
29120 | (veorq_m_f32): Likewise. | |
29121 | (veorq_m_f16): Likewise. | |
29122 | (vfmaq_m_f32): Likewise. | |
29123 | (vfmaq_m_f16): Likewise. | |
29124 | (vfmaq_m_n_f32): Likewise. | |
29125 | (vfmaq_m_n_f16): Likewise. | |
29126 | (vfmasq_m_n_f32): Likewise. | |
29127 | (vfmasq_m_n_f16): Likewise. | |
29128 | (vfmsq_m_f32): Likewise. | |
29129 | (vfmsq_m_f16): Likewise. | |
29130 | (vmaxnmq_m_f32): Likewise. | |
29131 | (vmaxnmq_m_f16): Likewise. | |
29132 | (vminnmq_m_f32): Likewise. | |
29133 | (vminnmq_m_f16): Likewise. | |
29134 | (vmulq_m_f32): Likewise. | |
29135 | (vmulq_m_f16): Likewise. | |
29136 | (vmulq_m_n_f32): Likewise. | |
29137 | (vmulq_m_n_f16): Likewise. | |
29138 | (vornq_m_f32): Likewise. | |
29139 | (vornq_m_f16): Likewise. | |
29140 | (vorrq_m_f32): Likewise. | |
29141 | (vorrq_m_f16): Likewise. | |
29142 | (vsubq_m_f32): Likewise. | |
29143 | (vsubq_m_f16): Likewise. | |
29144 | (vsubq_m_n_f32): Likewise. | |
29145 | (vsubq_m_n_f16): Likewise. | |
29146 | (__attribute__): Likewise. | |
29147 | (__arm_vabdq_m_f32): Likewise. | |
29148 | (__arm_vabdq_m_f16): Likewise. | |
29149 | (__arm_vaddq_m_f32): Likewise. | |
29150 | (__arm_vaddq_m_f16): Likewise. | |
29151 | (__arm_vaddq_m_n_f32): Likewise. | |
29152 | (__arm_vaddq_m_n_f16): Likewise. | |
29153 | (__arm_vandq_m_f32): Likewise. | |
29154 | (__arm_vandq_m_f16): Likewise. | |
29155 | (__arm_vbicq_m_f32): Likewise. | |
29156 | (__arm_vbicq_m_f16): Likewise. | |
29157 | (__arm_vbrsrq_m_n_f32): Likewise. | |
29158 | (__arm_vbrsrq_m_n_f16): Likewise. | |
29159 | (__arm_vcaddq_rot270_m_f32): Likewise. | |
29160 | (__arm_vcaddq_rot270_m_f16): Likewise. | |
29161 | (__arm_vcaddq_rot90_m_f32): Likewise. | |
29162 | (__arm_vcaddq_rot90_m_f16): Likewise. | |
29163 | (__arm_vcmlaq_m_f32): Likewise. | |
29164 | (__arm_vcmlaq_m_f16): Likewise. | |
29165 | (__arm_vcmlaq_rot180_m_f32): Likewise. | |
29166 | (__arm_vcmlaq_rot180_m_f16): Likewise. | |
29167 | (__arm_vcmlaq_rot270_m_f32): Likewise. | |
29168 | (__arm_vcmlaq_rot270_m_f16): Likewise. | |
29169 | (__arm_vcmlaq_rot90_m_f32): Likewise. | |
29170 | (__arm_vcmlaq_rot90_m_f16): Likewise. | |
29171 | (__arm_vcmulq_m_f32): Likewise. | |
29172 | (__arm_vcmulq_m_f16): Likewise. | |
29173 | (__arm_vcmulq_rot180_m_f32): Define intrinsic. | |
29174 | (__arm_vcmulq_rot180_m_f16): Likewise. | |
29175 | (__arm_vcmulq_rot270_m_f32): Likewise. | |
29176 | (__arm_vcmulq_rot270_m_f16): Likewise. | |
29177 | (__arm_vcmulq_rot90_m_f32): Likewise. | |
29178 | (__arm_vcmulq_rot90_m_f16): Likewise. | |
29179 | (__arm_vcvtq_m_n_s32_f32): Likewise. | |
29180 | (__arm_vcvtq_m_n_s16_f16): Likewise. | |
29181 | (__arm_vcvtq_m_n_u32_f32): Likewise. | |
29182 | (__arm_vcvtq_m_n_u16_f16): Likewise. | |
29183 | (__arm_veorq_m_f32): Likewise. | |
29184 | (__arm_veorq_m_f16): Likewise. | |
29185 | (__arm_vfmaq_m_f32): Likewise. | |
29186 | (__arm_vfmaq_m_f16): Likewise. | |
29187 | (__arm_vfmaq_m_n_f32): Likewise. | |
29188 | (__arm_vfmaq_m_n_f16): Likewise. | |
29189 | (__arm_vfmasq_m_n_f32): Likewise. | |
29190 | (__arm_vfmasq_m_n_f16): Likewise. | |
29191 | (__arm_vfmsq_m_f32): Likewise. | |
29192 | (__arm_vfmsq_m_f16): Likewise. | |
29193 | (__arm_vmaxnmq_m_f32): Likewise. | |
29194 | (__arm_vmaxnmq_m_f16): Likewise. | |
29195 | (__arm_vminnmq_m_f32): Likewise. | |
29196 | (__arm_vminnmq_m_f16): Likewise. | |
29197 | (__arm_vmulq_m_f32): Likewise. | |
29198 | (__arm_vmulq_m_f16): Likewise. | |
29199 | (__arm_vmulq_m_n_f32): Likewise. | |
29200 | (__arm_vmulq_m_n_f16): Likewise. | |
29201 | (__arm_vornq_m_f32): Likewise. | |
29202 | (__arm_vornq_m_f16): Likewise. | |
29203 | (__arm_vorrq_m_f32): Likewise. | |
29204 | (__arm_vorrq_m_f16): Likewise. | |
29205 | (__arm_vsubq_m_f32): Likewise. | |
29206 | (__arm_vsubq_m_f16): Likewise. | |
29207 | (__arm_vsubq_m_n_f32): Likewise. | |
29208 | (__arm_vsubq_m_n_f16): Likewise. | |
29209 | (vabdq_m): Define polymorphic variant. | |
29210 | (vaddq_m): Likewise. | |
29211 | (vaddq_m_n): Likewise. | |
29212 | (vandq_m): Likewise. | |
29213 | (vbicq_m): Likewise. | |
29214 | (vbrsrq_m_n): Likewise. | |
29215 | (vcaddq_rot270_m): Likewise. | |
29216 | (vcaddq_rot90_m): Likewise. | |
29217 | (vcmlaq_m): Likewise. | |
29218 | (vcmlaq_rot180_m): Likewise. | |
29219 | (vcmlaq_rot270_m): Likewise. | |
29220 | (vcmlaq_rot90_m): Likewise. | |
29221 | (vcmulq_m): Likewise. | |
29222 | (vcmulq_rot180_m): Likewise. | |
29223 | (vcmulq_rot270_m): Likewise. | |
29224 | (vcmulq_rot90_m): Likewise. | |
29225 | (veorq_m): Likewise. | |
29226 | (vfmaq_m): Likewise. | |
29227 | (vfmaq_m_n): Likewise. | |
29228 | (vfmasq_m_n): Likewise. | |
29229 | (vfmsq_m): Likewise. | |
29230 | (vmaxnmq_m): Likewise. | |
29231 | (vminnmq_m): Likewise. | |
29232 | (vmulq_m): Likewise. | |
29233 | (vmulq_m_n): Likewise. | |
29234 | (vornq_m): Likewise. | |
29235 | (vsubq_m): Likewise. | |
29236 | (vsubq_m_n): Likewise. | |
29237 | (vorrq_m): Likewise. | |
29238 | * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use | |
29239 | builtin qualifier. | |
29240 | (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise. | |
29241 | (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise. | |
29242 | * config/arm/mve.md (mve_vabdq_m_f<mode>): Define RTL pattern. | |
29243 | (mve_vaddq_m_f<mode>): Likewise. | |
29244 | (mve_vaddq_m_n_f<mode>): Likewise. | |
29245 | (mve_vandq_m_f<mode>): Likewise. | |
29246 | (mve_vbicq_m_f<mode>): Likewise. | |
29247 | (mve_vbrsrq_m_n_f<mode>): Likewise. | |
29248 | (mve_vcaddq_rot270_m_f<mode>): Likewise. | |
29249 | (mve_vcaddq_rot90_m_f<mode>): Likewise. | |
29250 | (mve_vcmlaq_m_f<mode>): Likewise. | |
29251 | (mve_vcmlaq_rot180_m_f<mode>): Likewise. | |
29252 | (mve_vcmlaq_rot270_m_f<mode>): Likewise. | |
29253 | (mve_vcmlaq_rot90_m_f<mode>): Likewise. | |
29254 | (mve_vcmulq_m_f<mode>): Likewise. | |
29255 | (mve_vcmulq_rot180_m_f<mode>): Likewise. | |
29256 | (mve_vcmulq_rot270_m_f<mode>): Likewise. | |
29257 | (mve_vcmulq_rot90_m_f<mode>): Likewise. | |
29258 | (mve_veorq_m_f<mode>): Likewise. | |
29259 | (mve_vfmaq_m_f<mode>): Likewise. | |
29260 | (mve_vfmaq_m_n_f<mode>): Likewise. | |
29261 | (mve_vfmasq_m_n_f<mode>): Likewise. | |
29262 | (mve_vfmsq_m_f<mode>): Likewise. | |
29263 | (mve_vmaxnmq_m_f<mode>): Likewise. | |
29264 | (mve_vminnmq_m_f<mode>): Likewise. | |
29265 | (mve_vmulq_m_f<mode>): Likewise. | |
29266 | (mve_vmulq_m_n_f<mode>): Likewise. | |
29267 | (mve_vornq_m_f<mode>): Likewise. | |
29268 | (mve_vorrq_m_f<mode>): Likewise. | |
29269 | (mve_vsubq_m_f<mode>): Likewise. | |
29270 | (mve_vsubq_m_n_f<mode>): Likewise. | |
29271 | ||
29272 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
29273 | Mihail Ionescu <mihail.ionescu@arm.com> | |
29274 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
29275 | ||
29276 | * config/arm/arm-protos.h (arm_mve_immediate_check): | |
29277 | * config/arm/arm.c (arm_mve_immediate_check): Define fuction to check | |
29278 | mode and interger value. | |
29279 | * config/arm/arm_mve.h (vmlaldavaq_p_s32): Define macro. | |
29280 | (vmlaldavaq_p_s16): Likewise. | |
29281 | (vmlaldavaq_p_u32): Likewise. | |
29282 | (vmlaldavaq_p_u16): Likewise. | |
29283 | (vmlaldavaxq_p_s32): Likewise. | |
29284 | (vmlaldavaxq_p_s16): Likewise. | |
29285 | (vmlaldavaxq_p_u32): Likewise. | |
29286 | (vmlaldavaxq_p_u16): Likewise. | |
29287 | (vmlsldavaq_p_s32): Likewise. | |
29288 | (vmlsldavaq_p_s16): Likewise. | |
29289 | (vmlsldavaxq_p_s32): Likewise. | |
29290 | (vmlsldavaxq_p_s16): Likewise. | |
29291 | (vmullbq_poly_m_p8): Likewise. | |
29292 | (vmullbq_poly_m_p16): Likewise. | |
29293 | (vmulltq_poly_m_p8): Likewise. | |
29294 | (vmulltq_poly_m_p16): Likewise. | |
29295 | (vqdmullbq_m_n_s32): Likewise. | |
29296 | (vqdmullbq_m_n_s16): Likewise. | |
29297 | (vqdmullbq_m_s32): Likewise. | |
29298 | (vqdmullbq_m_s16): Likewise. | |
29299 | (vqdmulltq_m_n_s32): Likewise. | |
29300 | (vqdmulltq_m_n_s16): Likewise. | |
29301 | (vqdmulltq_m_s32): Likewise. | |
29302 | (vqdmulltq_m_s16): Likewise. | |
29303 | (vqrshrnbq_m_n_s32): Likewise. | |
29304 | (vqrshrnbq_m_n_s16): Likewise. | |
29305 | (vqrshrnbq_m_n_u32): Likewise. | |
29306 | (vqrshrnbq_m_n_u16): Likewise. | |
29307 | (vqrshrntq_m_n_s32): Likewise. | |
29308 | (vqrshrntq_m_n_s16): Likewise. | |
29309 | (vqrshrntq_m_n_u32): Likewise. | |
29310 | (vqrshrntq_m_n_u16): Likewise. | |
29311 | (vqrshrunbq_m_n_s32): Likewise. | |
29312 | (vqrshrunbq_m_n_s16): Likewise. | |
29313 | (vqrshruntq_m_n_s32): Likewise. | |
29314 | (vqrshruntq_m_n_s16): Likewise. | |
29315 | (vqshrnbq_m_n_s32): Likewise. | |
29316 | (vqshrnbq_m_n_s16): Likewise. | |
29317 | (vqshrnbq_m_n_u32): Likewise. | |
29318 | (vqshrnbq_m_n_u16): Likewise. | |
29319 | (vqshrntq_m_n_s32): Likewise. | |
29320 | (vqshrntq_m_n_s16): Likewise. | |
29321 | (vqshrntq_m_n_u32): Likewise. | |
29322 | (vqshrntq_m_n_u16): Likewise. | |
29323 | (vqshrunbq_m_n_s32): Likewise. | |
29324 | (vqshrunbq_m_n_s16): Likewise. | |
29325 | (vqshruntq_m_n_s32): Likewise. | |
29326 | (vqshruntq_m_n_s16): Likewise. | |
29327 | (vrmlaldavhaq_p_s32): Likewise. | |
29328 | (vrmlaldavhaq_p_u32): Likewise. | |
29329 | (vrmlaldavhaxq_p_s32): Likewise. | |
29330 | (vrmlsldavhaq_p_s32): Likewise. | |
29331 | (vrmlsldavhaxq_p_s32): Likewise. | |
29332 | (vrshrnbq_m_n_s32): Likewise. | |
29333 | (vrshrnbq_m_n_s16): Likewise. | |
29334 | (vrshrnbq_m_n_u32): Likewise. | |
29335 | (vrshrnbq_m_n_u16): Likewise. | |
29336 | (vrshrntq_m_n_s32): Likewise. | |
29337 | (vrshrntq_m_n_s16): Likewise. | |
29338 | (vrshrntq_m_n_u32): Likewise. | |
29339 | (vrshrntq_m_n_u16): Likewise. | |
29340 | (vshllbq_m_n_s8): Likewise. | |
29341 | (vshllbq_m_n_s16): Likewise. | |
29342 | (vshllbq_m_n_u8): Likewise. | |
29343 | (vshllbq_m_n_u16): Likewise. | |
29344 | (vshlltq_m_n_s8): Likewise. | |
29345 | (vshlltq_m_n_s16): Likewise. | |
29346 | (vshlltq_m_n_u8): Likewise. | |
29347 | (vshlltq_m_n_u16): Likewise. | |
29348 | (vshrnbq_m_n_s32): Likewise. | |
29349 | (vshrnbq_m_n_s16): Likewise. | |
29350 | (vshrnbq_m_n_u32): Likewise. | |
29351 | (vshrnbq_m_n_u16): Likewise. | |
29352 | (vshrntq_m_n_s32): Likewise. | |
29353 | (vshrntq_m_n_s16): Likewise. | |
29354 | (vshrntq_m_n_u32): Likewise. | |
29355 | (vshrntq_m_n_u16): Likewise. | |
29356 | (__arm_vmlaldavaq_p_s32): Define intrinsic. | |
29357 | (__arm_vmlaldavaq_p_s16): Likewise. | |
29358 | (__arm_vmlaldavaq_p_u32): Likewise. | |
29359 | (__arm_vmlaldavaq_p_u16): Likewise. | |
29360 | (__arm_vmlaldavaxq_p_s32): Likewise. | |
29361 | (__arm_vmlaldavaxq_p_s16): Likewise. | |
29362 | (__arm_vmlaldavaxq_p_u32): Likewise. | |
29363 | (__arm_vmlaldavaxq_p_u16): Likewise. | |
29364 | (__arm_vmlsldavaq_p_s32): Likewise. | |
29365 | (__arm_vmlsldavaq_p_s16): Likewise. | |
29366 | (__arm_vmlsldavaxq_p_s32): Likewise. | |
29367 | (__arm_vmlsldavaxq_p_s16): Likewise. | |
29368 | (__arm_vmullbq_poly_m_p8): Likewise. | |
29369 | (__arm_vmullbq_poly_m_p16): Likewise. | |
29370 | (__arm_vmulltq_poly_m_p8): Likewise. | |
29371 | (__arm_vmulltq_poly_m_p16): Likewise. | |
29372 | (__arm_vqdmullbq_m_n_s32): Likewise. | |
29373 | (__arm_vqdmullbq_m_n_s16): Likewise. | |
29374 | (__arm_vqdmullbq_m_s32): Likewise. | |
29375 | (__arm_vqdmullbq_m_s16): Likewise. | |
29376 | (__arm_vqdmulltq_m_n_s32): Likewise. | |
29377 | (__arm_vqdmulltq_m_n_s16): Likewise. | |
29378 | (__arm_vqdmulltq_m_s32): Likewise. | |
29379 | (__arm_vqdmulltq_m_s16): Likewise. | |
29380 | (__arm_vqrshrnbq_m_n_s32): Likewise. | |
29381 | (__arm_vqrshrnbq_m_n_s16): Likewise. | |
29382 | (__arm_vqrshrnbq_m_n_u32): Likewise. | |
29383 | (__arm_vqrshrnbq_m_n_u16): Likewise. | |
29384 | (__arm_vqrshrntq_m_n_s32): Likewise. | |
29385 | (__arm_vqrshrntq_m_n_s16): Likewise. | |
29386 | (__arm_vqrshrntq_m_n_u32): Likewise. | |
29387 | (__arm_vqrshrntq_m_n_u16): Likewise. | |
29388 | (__arm_vqrshrunbq_m_n_s32): Likewise. | |
29389 | (__arm_vqrshrunbq_m_n_s16): Likewise. | |
29390 | (__arm_vqrshruntq_m_n_s32): Likewise. | |
29391 | (__arm_vqrshruntq_m_n_s16): Likewise. | |
29392 | (__arm_vqshrnbq_m_n_s32): Likewise. | |
29393 | (__arm_vqshrnbq_m_n_s16): Likewise. | |
29394 | (__arm_vqshrnbq_m_n_u32): Likewise. | |
29395 | (__arm_vqshrnbq_m_n_u16): Likewise. | |
29396 | (__arm_vqshrntq_m_n_s32): Likewise. | |
29397 | (__arm_vqshrntq_m_n_s16): Likewise. | |
29398 | (__arm_vqshrntq_m_n_u32): Likewise. | |
29399 | (__arm_vqshrntq_m_n_u16): Likewise. | |
29400 | (__arm_vqshrunbq_m_n_s32): Likewise. | |
29401 | (__arm_vqshrunbq_m_n_s16): Likewise. | |
29402 | (__arm_vqshruntq_m_n_s32): Likewise. | |
29403 | (__arm_vqshruntq_m_n_s16): Likewise. | |
29404 | (__arm_vrmlaldavhaq_p_s32): Likewise. | |
29405 | (__arm_vrmlaldavhaq_p_u32): Likewise. | |
29406 | (__arm_vrmlaldavhaxq_p_s32): Likewise. | |
29407 | (__arm_vrmlsldavhaq_p_s32): Likewise. | |
29408 | (__arm_vrmlsldavhaxq_p_s32): Likewise. | |
29409 | (__arm_vrshrnbq_m_n_s32): Likewise. | |
29410 | (__arm_vrshrnbq_m_n_s16): Likewise. | |
29411 | (__arm_vrshrnbq_m_n_u32): Likewise. | |
29412 | (__arm_vrshrnbq_m_n_u16): Likewise. | |
29413 | (__arm_vrshrntq_m_n_s32): Likewise. | |
29414 | (__arm_vrshrntq_m_n_s16): Likewise. | |
29415 | (__arm_vrshrntq_m_n_u32): Likewise. | |
29416 | (__arm_vrshrntq_m_n_u16): Likewise. | |
29417 | (__arm_vshllbq_m_n_s8): Likewise. | |
29418 | (__arm_vshllbq_m_n_s16): Likewise. | |
29419 | (__arm_vshllbq_m_n_u8): Likewise. | |
29420 | (__arm_vshllbq_m_n_u16): Likewise. | |
29421 | (__arm_vshlltq_m_n_s8): Likewise. | |
29422 | (__arm_vshlltq_m_n_s16): Likewise. | |
29423 | (__arm_vshlltq_m_n_u8): Likewise. | |
29424 | (__arm_vshlltq_m_n_u16): Likewise. | |
29425 | (__arm_vshrnbq_m_n_s32): Likewise. | |
29426 | (__arm_vshrnbq_m_n_s16): Likewise. | |
29427 | (__arm_vshrnbq_m_n_u32): Likewise. | |
29428 | (__arm_vshrnbq_m_n_u16): Likewise. | |
29429 | (__arm_vshrntq_m_n_s32): Likewise. | |
29430 | (__arm_vshrntq_m_n_s16): Likewise. | |
29431 | (__arm_vshrntq_m_n_u32): Likewise. | |
29432 | (__arm_vshrntq_m_n_u16): Likewise. | |
29433 | (vmullbq_poly_m): Define polymorphic variant. | |
29434 | (vmulltq_poly_m): Likewise. | |
29435 | (vshllbq_m): Likewise. | |
29436 | (vshrntq_m_n): Likewise. | |
29437 | (vshrnbq_m_n): Likewise. | |
29438 | (vshlltq_m_n): Likewise. | |
29439 | (vshllbq_m_n): Likewise. | |
29440 | (vrshrntq_m_n): Likewise. | |
29441 | (vrshrnbq_m_n): Likewise. | |
29442 | (vqshruntq_m_n): Likewise. | |
29443 | (vqshrunbq_m_n): Likewise. | |
29444 | (vqdmullbq_m_n): Likewise. | |
29445 | (vqdmullbq_m): Likewise. | |
29446 | (vqdmulltq_m_n): Likewise. | |
29447 | (vqdmulltq_m): Likewise. | |
29448 | (vqrshrnbq_m_n): Likewise. | |
29449 | (vqrshrntq_m_n): Likewise. | |
29450 | (vqrshrunbq_m_n): Likewise. | |
29451 | (vqrshruntq_m_n): Likewise. | |
29452 | (vqshrnbq_m_n): Likewise. | |
29453 | (vqshrntq_m_n): Likewise. | |
29454 | * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use | |
29455 | builtin qualifiers. | |
29456 | (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise. | |
29457 | (QUADOP_UNONE_UNONE_NONE_IMM_UNONE): Likewise. | |
29458 | (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise. | |
29459 | (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise. | |
29460 | * config/arm/mve.md (VMLALDAVAQ_P): Define iterator. | |
29461 | (VMLALDAVAXQ_P): Likewise. | |
29462 | (VQRSHRNBQ_M_N): Likewise. | |
29463 | (VQRSHRNTQ_M_N): Likewise. | |
29464 | (VQSHRNBQ_M_N): Likewise. | |
29465 | (VQSHRNTQ_M_N): Likewise. | |
29466 | (VRSHRNBQ_M_N): Likewise. | |
29467 | (VRSHRNTQ_M_N): Likewise. | |
29468 | (VSHLLBQ_M_N): Likewise. | |
29469 | (VSHLLTQ_M_N): Likewise. | |
29470 | (VSHRNBQ_M_N): Likewise. | |
29471 | (VSHRNTQ_M_N): Likewise. | |
29472 | (mve_vmlaldavaq_p_<supf><mode>): Define RTL pattern. | |
29473 | (mve_vmlaldavaxq_p_<supf><mode>): Likewise. | |
29474 | (mve_vqrshrnbq_m_n_<supf><mode>): Likewise. | |
29475 | (mve_vqrshrntq_m_n_<supf><mode>): Likewise. | |
29476 | (mve_vqshrnbq_m_n_<supf><mode>): Likewise. | |
29477 | (mve_vqshrntq_m_n_<supf><mode>): Likewise. | |
29478 | (mve_vrmlaldavhaq_p_sv4si): Likewise. | |
29479 | (mve_vrshrnbq_m_n_<supf><mode>): Likewise. | |
29480 | (mve_vrshrntq_m_n_<supf><mode>): Likewise. | |
29481 | (mve_vshllbq_m_n_<supf><mode>): Likewise. | |
29482 | (mve_vshlltq_m_n_<supf><mode>): Likewise. | |
29483 | (mve_vshrnbq_m_n_<supf><mode>): Likewise. | |
29484 | (mve_vshrntq_m_n_<supf><mode>): Likewise. | |
29485 | (mve_vmlsldavaq_p_s<mode>): Likewise. | |
29486 | (mve_vmlsldavaxq_p_s<mode>): Likewise. | |
29487 | (mve_vmullbq_poly_m_p<mode>): Likewise. | |
29488 | (mve_vmulltq_poly_m_p<mode>): Likewise. | |
29489 | (mve_vqdmullbq_m_n_s<mode>): Likewise. | |
29490 | (mve_vqdmullbq_m_s<mode>): Likewise. | |
29491 | (mve_vqdmulltq_m_n_s<mode>): Likewise. | |
29492 | (mve_vqdmulltq_m_s<mode>): Likewise. | |
29493 | (mve_vqrshrunbq_m_n_s<mode>): Likewise. | |
29494 | (mve_vqrshruntq_m_n_s<mode>): Likewise. | |
29495 | (mve_vqshrunbq_m_n_s<mode>): Likewise. | |
29496 | (mve_vqshruntq_m_n_s<mode>): Likewise. | |
29497 | (mve_vrmlaldavhaq_p_uv4si): Likewise. | |
29498 | (mve_vrmlaldavhaxq_p_sv4si): Likewise. | |
29499 | (mve_vrmlsldavhaq_p_sv4si): Likewise. | |
29500 | (mve_vrmlsldavhaxq_p_sv4si): Likewise. | |
29501 | ||
29502 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
29503 | Mihail Ionescu <mihail.ionescu@arm.com> | |
29504 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
29505 | ||
29506 | * config/arm/arm_mve.h (vabdq_m_s8): Define macro. | |
29507 | (vabdq_m_s32): Likewise. | |
29508 | (vabdq_m_s16): Likewise. | |
29509 | (vabdq_m_u8): Likewise. | |
29510 | (vabdq_m_u32): Likewise. | |
29511 | (vabdq_m_u16): Likewise. | |
29512 | (vaddq_m_n_s8): Likewise. | |
29513 | (vaddq_m_n_s32): Likewise. | |
29514 | (vaddq_m_n_s16): Likewise. | |
29515 | (vaddq_m_n_u8): Likewise. | |
29516 | (vaddq_m_n_u32): Likewise. | |
29517 | (vaddq_m_n_u16): Likewise. | |
29518 | (vaddq_m_s8): Likewise. | |
29519 | (vaddq_m_s32): Likewise. | |
29520 | (vaddq_m_s16): Likewise. | |
29521 | (vaddq_m_u8): Likewise. | |
29522 | (vaddq_m_u32): Likewise. | |
29523 | (vaddq_m_u16): Likewise. | |
29524 | (vandq_m_s8): Likewise. | |
29525 | (vandq_m_s32): Likewise. | |
29526 | (vandq_m_s16): Likewise. | |
29527 | (vandq_m_u8): Likewise. | |
29528 | (vandq_m_u32): Likewise. | |
29529 | (vandq_m_u16): Likewise. | |
29530 | (vbicq_m_s8): Likewise. | |
29531 | (vbicq_m_s32): Likewise. | |
29532 | (vbicq_m_s16): Likewise. | |
29533 | (vbicq_m_u8): Likewise. | |
29534 | (vbicq_m_u32): Likewise. | |
29535 | (vbicq_m_u16): Likewise. | |
29536 | (vbrsrq_m_n_s8): Likewise. | |
29537 | (vbrsrq_m_n_s32): Likewise. | |
29538 | (vbrsrq_m_n_s16): Likewise. | |
29539 | (vbrsrq_m_n_u8): Likewise. | |
29540 | (vbrsrq_m_n_u32): Likewise. | |
29541 | (vbrsrq_m_n_u16): Likewise. | |
29542 | (vcaddq_rot270_m_s8): Likewise. | |
29543 | (vcaddq_rot270_m_s32): Likewise. | |
29544 | (vcaddq_rot270_m_s16): Likewise. | |
29545 | (vcaddq_rot270_m_u8): Likewise. | |
29546 | (vcaddq_rot270_m_u32): Likewise. | |
29547 | (vcaddq_rot270_m_u16): Likewise. | |
29548 | (vcaddq_rot90_m_s8): Likewise. | |
29549 | (vcaddq_rot90_m_s32): Likewise. | |
29550 | (vcaddq_rot90_m_s16): Likewise. | |
29551 | (vcaddq_rot90_m_u8): Likewise. | |
29552 | (vcaddq_rot90_m_u32): Likewise. | |
29553 | (vcaddq_rot90_m_u16): Likewise. | |
29554 | (veorq_m_s8): Likewise. | |
29555 | (veorq_m_s32): Likewise. | |
29556 | (veorq_m_s16): Likewise. | |
29557 | (veorq_m_u8): Likewise. | |
29558 | (veorq_m_u32): Likewise. | |
29559 | (veorq_m_u16): Likewise. | |
29560 | (vhaddq_m_n_s8): Likewise. | |
29561 | (vhaddq_m_n_s32): Likewise. | |
29562 | (vhaddq_m_n_s16): Likewise. | |
29563 | (vhaddq_m_n_u8): Likewise. | |
29564 | (vhaddq_m_n_u32): Likewise. | |
29565 | (vhaddq_m_n_u16): Likewise. | |
29566 | (vhaddq_m_s8): Likewise. | |
29567 | (vhaddq_m_s32): Likewise. | |
29568 | (vhaddq_m_s16): Likewise. | |
29569 | (vhaddq_m_u8): Likewise. | |
29570 | (vhaddq_m_u32): Likewise. | |
29571 | (vhaddq_m_u16): Likewise. | |
29572 | (vhcaddq_rot270_m_s8): Likewise. | |
29573 | (vhcaddq_rot270_m_s32): Likewise. | |
29574 | (vhcaddq_rot270_m_s16): Likewise. | |
29575 | (vhcaddq_rot90_m_s8): Likewise. | |
29576 | (vhcaddq_rot90_m_s32): Likewise. | |
29577 | (vhcaddq_rot90_m_s16): Likewise. | |
29578 | (vhsubq_m_n_s8): Likewise. | |
29579 | (vhsubq_m_n_s32): Likewise. | |
29580 | (vhsubq_m_n_s16): Likewise. | |
29581 | (vhsubq_m_n_u8): Likewise. | |
29582 | (vhsubq_m_n_u32): Likewise. | |
29583 | (vhsubq_m_n_u16): Likewise. | |
29584 | (vhsubq_m_s8): Likewise. | |
29585 | (vhsubq_m_s32): Likewise. | |
29586 | (vhsubq_m_s16): Likewise. | |
29587 | (vhsubq_m_u8): Likewise. | |
29588 | (vhsubq_m_u32): Likewise. | |
29589 | (vhsubq_m_u16): Likewise. | |
29590 | (vmaxq_m_s8): Likewise. | |
29591 | (vmaxq_m_s32): Likewise. | |
29592 | (vmaxq_m_s16): Likewise. | |
29593 | (vmaxq_m_u8): Likewise. | |
29594 | (vmaxq_m_u32): Likewise. | |
29595 | (vmaxq_m_u16): Likewise. | |
29596 | (vminq_m_s8): Likewise. | |
29597 | (vminq_m_s32): Likewise. | |
29598 | (vminq_m_s16): Likewise. | |
29599 | (vminq_m_u8): Likewise. | |
29600 | (vminq_m_u32): Likewise. | |
29601 | (vminq_m_u16): Likewise. | |
29602 | (vmladavaq_p_s8): Likewise. | |
29603 | (vmladavaq_p_s32): Likewise. | |
29604 | (vmladavaq_p_s16): Likewise. | |
29605 | (vmladavaq_p_u8): Likewise. | |
29606 | (vmladavaq_p_u32): Likewise. | |
29607 | (vmladavaq_p_u16): Likewise. | |
29608 | (vmladavaxq_p_s8): Likewise. | |
29609 | (vmladavaxq_p_s32): Likewise. | |
29610 | (vmladavaxq_p_s16): Likewise. | |
29611 | (vmlaq_m_n_s8): Likewise. | |
29612 | (vmlaq_m_n_s32): Likewise. | |
29613 | (vmlaq_m_n_s16): Likewise. | |
29614 | (vmlaq_m_n_u8): Likewise. | |
29615 | (vmlaq_m_n_u32): Likewise. | |
29616 | (vmlaq_m_n_u16): Likewise. | |
29617 | (vmlasq_m_n_s8): Likewise. | |
29618 | (vmlasq_m_n_s32): Likewise. | |
29619 | (vmlasq_m_n_s16): Likewise. | |
29620 | (vmlasq_m_n_u8): Likewise. | |
29621 | (vmlasq_m_n_u32): Likewise. | |
29622 | (vmlasq_m_n_u16): Likewise. | |
29623 | (vmlsdavaq_p_s8): Likewise. | |
29624 | (vmlsdavaq_p_s32): Likewise. | |
29625 | (vmlsdavaq_p_s16): Likewise. | |
29626 | (vmlsdavaxq_p_s8): Likewise. | |
29627 | (vmlsdavaxq_p_s32): Likewise. | |
29628 | (vmlsdavaxq_p_s16): Likewise. | |
29629 | (vmulhq_m_s8): Likewise. | |
29630 | (vmulhq_m_s32): Likewise. | |
29631 | (vmulhq_m_s16): Likewise. | |
29632 | (vmulhq_m_u8): Likewise. | |
29633 | (vmulhq_m_u32): Likewise. | |
29634 | (vmulhq_m_u16): Likewise. | |
29635 | (vmullbq_int_m_s8): Likewise. | |
29636 | (vmullbq_int_m_s32): Likewise. | |
29637 | (vmullbq_int_m_s16): Likewise. | |
29638 | (vmullbq_int_m_u8): Likewise. | |
29639 | (vmullbq_int_m_u32): Likewise. | |
29640 | (vmullbq_int_m_u16): Likewise. | |
29641 | (vmulltq_int_m_s8): Likewise. | |
29642 | (vmulltq_int_m_s32): Likewise. | |
29643 | (vmulltq_int_m_s16): Likewise. | |
29644 | (vmulltq_int_m_u8): Likewise. | |
29645 | (vmulltq_int_m_u32): Likewise. | |
29646 | (vmulltq_int_m_u16): Likewise. | |
29647 | (vmulq_m_n_s8): Likewise. | |
29648 | (vmulq_m_n_s32): Likewise. | |
29649 | (vmulq_m_n_s16): Likewise. | |
29650 | (vmulq_m_n_u8): Likewise. | |
29651 | (vmulq_m_n_u32): Likewise. | |
29652 | (vmulq_m_n_u16): Likewise. | |
29653 | (vmulq_m_s8): Likewise. | |
29654 | (vmulq_m_s32): Likewise. | |
29655 | (vmulq_m_s16): Likewise. | |
29656 | (vmulq_m_u8): Likewise. | |
29657 | (vmulq_m_u32): Likewise. | |
29658 | (vmulq_m_u16): Likewise. | |
29659 | (vornq_m_s8): Likewise. | |
29660 | (vornq_m_s32): Likewise. | |
29661 | (vornq_m_s16): Likewise. | |
29662 | (vornq_m_u8): Likewise. | |
29663 | (vornq_m_u32): Likewise. | |
29664 | (vornq_m_u16): Likewise. | |
29665 | (vorrq_m_s8): Likewise. | |
29666 | (vorrq_m_s32): Likewise. | |
29667 | (vorrq_m_s16): Likewise. | |
29668 | (vorrq_m_u8): Likewise. | |
29669 | (vorrq_m_u32): Likewise. | |
29670 | (vorrq_m_u16): Likewise. | |
29671 | (vqaddq_m_n_s8): Likewise. | |
29672 | (vqaddq_m_n_s32): Likewise. | |
29673 | (vqaddq_m_n_s16): Likewise. | |
29674 | (vqaddq_m_n_u8): Likewise. | |
29675 | (vqaddq_m_n_u32): Likewise. | |
29676 | (vqaddq_m_n_u16): Likewise. | |
29677 | (vqaddq_m_s8): Likewise. | |
29678 | (vqaddq_m_s32): Likewise. | |
29679 | (vqaddq_m_s16): Likewise. | |
29680 | (vqaddq_m_u8): Likewise. | |
29681 | (vqaddq_m_u32): Likewise. | |
29682 | (vqaddq_m_u16): Likewise. | |
29683 | (vqdmladhq_m_s8): Likewise. | |
29684 | (vqdmladhq_m_s32): Likewise. | |
29685 | (vqdmladhq_m_s16): Likewise. | |
29686 | (vqdmladhxq_m_s8): Likewise. | |
29687 | (vqdmladhxq_m_s32): Likewise. | |
29688 | (vqdmladhxq_m_s16): Likewise. | |
29689 | (vqdmlahq_m_n_s8): Likewise. | |
29690 | (vqdmlahq_m_n_s32): Likewise. | |
29691 | (vqdmlahq_m_n_s16): Likewise. | |
29692 | (vqdmlahq_m_n_u8): Likewise. | |
29693 | (vqdmlahq_m_n_u32): Likewise. | |
29694 | (vqdmlahq_m_n_u16): Likewise. | |
29695 | (vqdmlsdhq_m_s8): Likewise. | |
29696 | (vqdmlsdhq_m_s32): Likewise. | |
29697 | (vqdmlsdhq_m_s16): Likewise. | |
29698 | (vqdmlsdhxq_m_s8): Likewise. | |
29699 | (vqdmlsdhxq_m_s32): Likewise. | |
29700 | (vqdmlsdhxq_m_s16): Likewise. | |
29701 | (vqdmulhq_m_n_s8): Likewise. | |
29702 | (vqdmulhq_m_n_s32): Likewise. | |
29703 | (vqdmulhq_m_n_s16): Likewise. | |
29704 | (vqdmulhq_m_s8): Likewise. | |
29705 | (vqdmulhq_m_s32): Likewise. | |
29706 | (vqdmulhq_m_s16): Likewise. | |
29707 | (vqrdmladhq_m_s8): Likewise. | |
29708 | (vqrdmladhq_m_s32): Likewise. | |
29709 | (vqrdmladhq_m_s16): Likewise. | |
29710 | (vqrdmladhxq_m_s8): Likewise. | |
29711 | (vqrdmladhxq_m_s32): Likewise. | |
29712 | (vqrdmladhxq_m_s16): Likewise. | |
29713 | (vqrdmlahq_m_n_s8): Likewise. | |
29714 | (vqrdmlahq_m_n_s32): Likewise. | |
29715 | (vqrdmlahq_m_n_s16): Likewise. | |
29716 | (vqrdmlahq_m_n_u8): Likewise. | |
29717 | (vqrdmlahq_m_n_u32): Likewise. | |
29718 | (vqrdmlahq_m_n_u16): Likewise. | |
29719 | (vqrdmlashq_m_n_s8): Likewise. | |
29720 | (vqrdmlashq_m_n_s32): Likewise. | |
29721 | (vqrdmlashq_m_n_s16): Likewise. | |
29722 | (vqrdmlashq_m_n_u8): Likewise. | |
29723 | (vqrdmlashq_m_n_u32): Likewise. | |
29724 | (vqrdmlashq_m_n_u16): Likewise. | |
29725 | (vqrdmlsdhq_m_s8): Likewise. | |
29726 | (vqrdmlsdhq_m_s32): Likewise. | |
29727 | (vqrdmlsdhq_m_s16): Likewise. | |
29728 | (vqrdmlsdhxq_m_s8): Likewise. | |
29729 | (vqrdmlsdhxq_m_s32): Likewise. | |
29730 | (vqrdmlsdhxq_m_s16): Likewise. | |
29731 | (vqrdmulhq_m_n_s8): Likewise. | |
29732 | (vqrdmulhq_m_n_s32): Likewise. | |
29733 | (vqrdmulhq_m_n_s16): Likewise. | |
29734 | (vqrdmulhq_m_s8): Likewise. | |
29735 | (vqrdmulhq_m_s32): Likewise. | |
29736 | (vqrdmulhq_m_s16): Likewise. | |
29737 | (vqrshlq_m_s8): Likewise. | |
29738 | (vqrshlq_m_s32): Likewise. | |
29739 | (vqrshlq_m_s16): Likewise. | |
29740 | (vqrshlq_m_u8): Likewise. | |
29741 | (vqrshlq_m_u32): Likewise. | |
29742 | (vqrshlq_m_u16): Likewise. | |
29743 | (vqshlq_m_n_s8): Likewise. | |
29744 | (vqshlq_m_n_s32): Likewise. | |
29745 | (vqshlq_m_n_s16): Likewise. | |
29746 | (vqshlq_m_n_u8): Likewise. | |
29747 | (vqshlq_m_n_u32): Likewise. | |
29748 | (vqshlq_m_n_u16): Likewise. | |
29749 | (vqshlq_m_s8): Likewise. | |
29750 | (vqshlq_m_s32): Likewise. | |
29751 | (vqshlq_m_s16): Likewise. | |
29752 | (vqshlq_m_u8): Likewise. | |
29753 | (vqshlq_m_u32): Likewise. | |
29754 | (vqshlq_m_u16): Likewise. | |
29755 | (vqsubq_m_n_s8): Likewise. | |
29756 | (vqsubq_m_n_s32): Likewise. | |
29757 | (vqsubq_m_n_s16): Likewise. | |
29758 | (vqsubq_m_n_u8): Likewise. | |
29759 | (vqsubq_m_n_u32): Likewise. | |
29760 | (vqsubq_m_n_u16): Likewise. | |
29761 | (vqsubq_m_s8): Likewise. | |
29762 | (vqsubq_m_s32): Likewise. | |
29763 | (vqsubq_m_s16): Likewise. | |
29764 | (vqsubq_m_u8): Likewise. | |
29765 | (vqsubq_m_u32): Likewise. | |
29766 | (vqsubq_m_u16): Likewise. | |
29767 | (vrhaddq_m_s8): Likewise. | |
29768 | (vrhaddq_m_s32): Likewise. | |
29769 | (vrhaddq_m_s16): Likewise. | |
29770 | (vrhaddq_m_u8): Likewise. | |
29771 | (vrhaddq_m_u32): Likewise. | |
29772 | (vrhaddq_m_u16): Likewise. | |
29773 | (vrmulhq_m_s8): Likewise. | |
29774 | (vrmulhq_m_s32): Likewise. | |
29775 | (vrmulhq_m_s16): Likewise. | |
29776 | (vrmulhq_m_u8): Likewise. | |
29777 | (vrmulhq_m_u32): Likewise. | |
29778 | (vrmulhq_m_u16): Likewise. | |
29779 | (vrshlq_m_s8): Likewise. | |
29780 | (vrshlq_m_s32): Likewise. | |
29781 | (vrshlq_m_s16): Likewise. | |
29782 | (vrshlq_m_u8): Likewise. | |
29783 | (vrshlq_m_u32): Likewise. | |
29784 | (vrshlq_m_u16): Likewise. | |
29785 | (vrshrq_m_n_s8): Likewise. | |
29786 | (vrshrq_m_n_s32): Likewise. | |
29787 | (vrshrq_m_n_s16): Likewise. | |
29788 | (vrshrq_m_n_u8): Likewise. | |
29789 | (vrshrq_m_n_u32): Likewise. | |
29790 | (vrshrq_m_n_u16): Likewise. | |
29791 | (vshlq_m_n_s8): Likewise. | |
29792 | (vshlq_m_n_s32): Likewise. | |
29793 | (vshlq_m_n_s16): Likewise. | |
29794 | (vshlq_m_n_u8): Likewise. | |
29795 | (vshlq_m_n_u32): Likewise. | |
29796 | (vshlq_m_n_u16): Likewise. | |
29797 | (vshrq_m_n_s8): Likewise. | |
29798 | (vshrq_m_n_s32): Likewise. | |
29799 | (vshrq_m_n_s16): Likewise. | |
29800 | (vshrq_m_n_u8): Likewise. | |
29801 | (vshrq_m_n_u32): Likewise. | |
29802 | (vshrq_m_n_u16): Likewise. | |
29803 | (vsliq_m_n_s8): Likewise. | |
29804 | (vsliq_m_n_s32): Likewise. | |
29805 | (vsliq_m_n_s16): Likewise. | |
29806 | (vsliq_m_n_u8): Likewise. | |
29807 | (vsliq_m_n_u32): Likewise. | |
29808 | (vsliq_m_n_u16): Likewise. | |
29809 | (vsubq_m_n_s8): Likewise. | |
29810 | (vsubq_m_n_s32): Likewise. | |
29811 | (vsubq_m_n_s16): Likewise. | |
29812 | (vsubq_m_n_u8): Likewise. | |
29813 | (vsubq_m_n_u32): Likewise. | |
29814 | (vsubq_m_n_u16): Likewise. | |
29815 | (__arm_vabdq_m_s8): Define intrinsic. | |
29816 | (__arm_vabdq_m_s32): Likewise. | |
29817 | (__arm_vabdq_m_s16): Likewise. | |
29818 | (__arm_vabdq_m_u8): Likewise. | |
29819 | (__arm_vabdq_m_u32): Likewise. | |
29820 | (__arm_vabdq_m_u16): Likewise. | |
29821 | (__arm_vaddq_m_n_s8): Likewise. | |
29822 | (__arm_vaddq_m_n_s32): Likewise. | |
29823 | (__arm_vaddq_m_n_s16): Likewise. | |
29824 | (__arm_vaddq_m_n_u8): Likewise. | |
29825 | (__arm_vaddq_m_n_u32): Likewise. | |
29826 | (__arm_vaddq_m_n_u16): Likewise. | |
29827 | (__arm_vaddq_m_s8): Likewise. | |
29828 | (__arm_vaddq_m_s32): Likewise. | |
29829 | (__arm_vaddq_m_s16): Likewise. | |
29830 | (__arm_vaddq_m_u8): Likewise. | |
29831 | (__arm_vaddq_m_u32): Likewise. | |
29832 | (__arm_vaddq_m_u16): Likewise. | |
29833 | (__arm_vandq_m_s8): Likewise. | |
29834 | (__arm_vandq_m_s32): Likewise. | |
29835 | (__arm_vandq_m_s16): Likewise. | |
29836 | (__arm_vandq_m_u8): Likewise. | |
29837 | (__arm_vandq_m_u32): Likewise. | |
29838 | (__arm_vandq_m_u16): Likewise. | |
29839 | (__arm_vbicq_m_s8): Likewise. | |
29840 | (__arm_vbicq_m_s32): Likewise. | |
29841 | (__arm_vbicq_m_s16): Likewise. | |
29842 | (__arm_vbicq_m_u8): Likewise. | |
29843 | (__arm_vbicq_m_u32): Likewise. | |
29844 | (__arm_vbicq_m_u16): Likewise. | |
29845 | (__arm_vbrsrq_m_n_s8): Likewise. | |
29846 | (__arm_vbrsrq_m_n_s32): Likewise. | |
29847 | (__arm_vbrsrq_m_n_s16): Likewise. | |
29848 | (__arm_vbrsrq_m_n_u8): Likewise. | |
29849 | (__arm_vbrsrq_m_n_u32): Likewise. | |
29850 | (__arm_vbrsrq_m_n_u16): Likewise. | |
29851 | (__arm_vcaddq_rot270_m_s8): Likewise. | |
29852 | (__arm_vcaddq_rot270_m_s32): Likewise. | |
29853 | (__arm_vcaddq_rot270_m_s16): Likewise. | |
29854 | (__arm_vcaddq_rot270_m_u8): Likewise. | |
29855 | (__arm_vcaddq_rot270_m_u32): Likewise. | |
29856 | (__arm_vcaddq_rot270_m_u16): Likewise. | |
29857 | (__arm_vcaddq_rot90_m_s8): Likewise. | |
29858 | (__arm_vcaddq_rot90_m_s32): Likewise. | |
29859 | (__arm_vcaddq_rot90_m_s16): Likewise. | |
29860 | (__arm_vcaddq_rot90_m_u8): Likewise. | |
29861 | (__arm_vcaddq_rot90_m_u32): Likewise. | |
29862 | (__arm_vcaddq_rot90_m_u16): Likewise. | |
29863 | (__arm_veorq_m_s8): Likewise. | |
29864 | (__arm_veorq_m_s32): Likewise. | |
29865 | (__arm_veorq_m_s16): Likewise. | |
29866 | (__arm_veorq_m_u8): Likewise. | |
29867 | (__arm_veorq_m_u32): Likewise. | |
29868 | (__arm_veorq_m_u16): Likewise. | |
29869 | (__arm_vhaddq_m_n_s8): Likewise. | |
29870 | (__arm_vhaddq_m_n_s32): Likewise. | |
29871 | (__arm_vhaddq_m_n_s16): Likewise. | |
29872 | (__arm_vhaddq_m_n_u8): Likewise. | |
29873 | (__arm_vhaddq_m_n_u32): Likewise. | |
29874 | (__arm_vhaddq_m_n_u16): Likewise. | |
29875 | (__arm_vhaddq_m_s8): Likewise. | |
29876 | (__arm_vhaddq_m_s32): Likewise. | |
29877 | (__arm_vhaddq_m_s16): Likewise. | |
29878 | (__arm_vhaddq_m_u8): Likewise. | |
29879 | (__arm_vhaddq_m_u32): Likewise. | |
29880 | (__arm_vhaddq_m_u16): Likewise. | |
29881 | (__arm_vhcaddq_rot270_m_s8): Likewise. | |
29882 | (__arm_vhcaddq_rot270_m_s32): Likewise. | |
29883 | (__arm_vhcaddq_rot270_m_s16): Likewise. | |
29884 | (__arm_vhcaddq_rot90_m_s8): Likewise. | |
29885 | (__arm_vhcaddq_rot90_m_s32): Likewise. | |
29886 | (__arm_vhcaddq_rot90_m_s16): Likewise. | |
29887 | (__arm_vhsubq_m_n_s8): Likewise. | |
29888 | (__arm_vhsubq_m_n_s32): Likewise. | |
29889 | (__arm_vhsubq_m_n_s16): Likewise. | |
29890 | (__arm_vhsubq_m_n_u8): Likewise. | |
29891 | (__arm_vhsubq_m_n_u32): Likewise. | |
29892 | (__arm_vhsubq_m_n_u16): Likewise. | |
29893 | (__arm_vhsubq_m_s8): Likewise. | |
29894 | (__arm_vhsubq_m_s32): Likewise. | |
29895 | (__arm_vhsubq_m_s16): Likewise. | |
29896 | (__arm_vhsubq_m_u8): Likewise. | |
29897 | (__arm_vhsubq_m_u32): Likewise. | |
29898 | (__arm_vhsubq_m_u16): Likewise. | |
29899 | (__arm_vmaxq_m_s8): Likewise. | |
29900 | (__arm_vmaxq_m_s32): Likewise. | |
29901 | (__arm_vmaxq_m_s16): Likewise. | |
29902 | (__arm_vmaxq_m_u8): Likewise. | |
29903 | (__arm_vmaxq_m_u32): Likewise. | |
29904 | (__arm_vmaxq_m_u16): Likewise. | |
29905 | (__arm_vminq_m_s8): Likewise. | |
29906 | (__arm_vminq_m_s32): Likewise. | |
29907 | (__arm_vminq_m_s16): Likewise. | |
29908 | (__arm_vminq_m_u8): Likewise. | |
29909 | (__arm_vminq_m_u32): Likewise. | |
29910 | (__arm_vminq_m_u16): Likewise. | |
29911 | (__arm_vmladavaq_p_s8): Likewise. | |
29912 | (__arm_vmladavaq_p_s32): Likewise. | |
29913 | (__arm_vmladavaq_p_s16): Likewise. | |
29914 | (__arm_vmladavaq_p_u8): Likewise. | |
29915 | (__arm_vmladavaq_p_u32): Likewise. | |
29916 | (__arm_vmladavaq_p_u16): Likewise. | |
29917 | (__arm_vmladavaxq_p_s8): Likewise. | |
29918 | (__arm_vmladavaxq_p_s32): Likewise. | |
29919 | (__arm_vmladavaxq_p_s16): Likewise. | |
29920 | (__arm_vmlaq_m_n_s8): Likewise. | |
29921 | (__arm_vmlaq_m_n_s32): Likewise. | |
29922 | (__arm_vmlaq_m_n_s16): Likewise. | |
29923 | (__arm_vmlaq_m_n_u8): Likewise. | |
29924 | (__arm_vmlaq_m_n_u32): Likewise. | |
29925 | (__arm_vmlaq_m_n_u16): Likewise. | |
29926 | (__arm_vmlasq_m_n_s8): Likewise. | |
29927 | (__arm_vmlasq_m_n_s32): Likewise. | |
29928 | (__arm_vmlasq_m_n_s16): Likewise. | |
29929 | (__arm_vmlasq_m_n_u8): Likewise. | |
29930 | (__arm_vmlasq_m_n_u32): Likewise. | |
29931 | (__arm_vmlasq_m_n_u16): Likewise. | |
29932 | (__arm_vmlsdavaq_p_s8): Likewise. | |
29933 | (__arm_vmlsdavaq_p_s32): Likewise. | |
29934 | (__arm_vmlsdavaq_p_s16): Likewise. | |
29935 | (__arm_vmlsdavaxq_p_s8): Likewise. | |
29936 | (__arm_vmlsdavaxq_p_s32): Likewise. | |
29937 | (__arm_vmlsdavaxq_p_s16): Likewise. | |
29938 | (__arm_vmulhq_m_s8): Likewise. | |
29939 | (__arm_vmulhq_m_s32): Likewise. | |
29940 | (__arm_vmulhq_m_s16): Likewise. | |
29941 | (__arm_vmulhq_m_u8): Likewise. | |
29942 | (__arm_vmulhq_m_u32): Likewise. | |
29943 | (__arm_vmulhq_m_u16): Likewise. | |
29944 | (__arm_vmullbq_int_m_s8): Likewise. | |
29945 | (__arm_vmullbq_int_m_s32): Likewise. | |
29946 | (__arm_vmullbq_int_m_s16): Likewise. | |
29947 | (__arm_vmullbq_int_m_u8): Likewise. | |
29948 | (__arm_vmullbq_int_m_u32): Likewise. | |
29949 | (__arm_vmullbq_int_m_u16): Likewise. | |
29950 | (__arm_vmulltq_int_m_s8): Likewise. | |
29951 | (__arm_vmulltq_int_m_s32): Likewise. | |
29952 | (__arm_vmulltq_int_m_s16): Likewise. | |
29953 | (__arm_vmulltq_int_m_u8): Likewise. | |
29954 | (__arm_vmulltq_int_m_u32): Likewise. | |
29955 | (__arm_vmulltq_int_m_u16): Likewise. | |
29956 | (__arm_vmulq_m_n_s8): Likewise. | |
29957 | (__arm_vmulq_m_n_s32): Likewise. | |
29958 | (__arm_vmulq_m_n_s16): Likewise. | |
29959 | (__arm_vmulq_m_n_u8): Likewise. | |
29960 | (__arm_vmulq_m_n_u32): Likewise. | |
29961 | (__arm_vmulq_m_n_u16): Likewise. | |
29962 | (__arm_vmulq_m_s8): Likewise. | |
29963 | (__arm_vmulq_m_s32): Likewise. | |
29964 | (__arm_vmulq_m_s16): Likewise. | |
29965 | (__arm_vmulq_m_u8): Likewise. | |
29966 | (__arm_vmulq_m_u32): Likewise. | |
29967 | (__arm_vmulq_m_u16): Likewise. | |
29968 | (__arm_vornq_m_s8): Likewise. | |
29969 | (__arm_vornq_m_s32): Likewise. | |
29970 | (__arm_vornq_m_s16): Likewise. | |
29971 | (__arm_vornq_m_u8): Likewise. | |
29972 | (__arm_vornq_m_u32): Likewise. | |
29973 | (__arm_vornq_m_u16): Likewise. | |
29974 | (__arm_vorrq_m_s8): Likewise. | |
29975 | (__arm_vorrq_m_s32): Likewise. | |
29976 | (__arm_vorrq_m_s16): Likewise. | |
29977 | (__arm_vorrq_m_u8): Likewise. | |
29978 | (__arm_vorrq_m_u32): Likewise. | |
29979 | (__arm_vorrq_m_u16): Likewise. | |
29980 | (__arm_vqaddq_m_n_s8): Likewise. | |
29981 | (__arm_vqaddq_m_n_s32): Likewise. | |
29982 | (__arm_vqaddq_m_n_s16): Likewise. | |
29983 | (__arm_vqaddq_m_n_u8): Likewise. | |
29984 | (__arm_vqaddq_m_n_u32): Likewise. | |
29985 | (__arm_vqaddq_m_n_u16): Likewise. | |
29986 | (__arm_vqaddq_m_s8): Likewise. | |
29987 | (__arm_vqaddq_m_s32): Likewise. | |
29988 | (__arm_vqaddq_m_s16): Likewise. | |
29989 | (__arm_vqaddq_m_u8): Likewise. | |
29990 | (__arm_vqaddq_m_u32): Likewise. | |
29991 | (__arm_vqaddq_m_u16): Likewise. | |
29992 | (__arm_vqdmladhq_m_s8): Likewise. | |
29993 | (__arm_vqdmladhq_m_s32): Likewise. | |
29994 | (__arm_vqdmladhq_m_s16): Likewise. | |
29995 | (__arm_vqdmladhxq_m_s8): Likewise. | |
29996 | (__arm_vqdmladhxq_m_s32): Likewise. | |
29997 | (__arm_vqdmladhxq_m_s16): Likewise. | |
29998 | (__arm_vqdmlahq_m_n_s8): Likewise. | |
29999 | (__arm_vqdmlahq_m_n_s32): Likewise. | |
30000 | (__arm_vqdmlahq_m_n_s16): Likewise. | |
30001 | (__arm_vqdmlahq_m_n_u8): Likewise. | |
30002 | (__arm_vqdmlahq_m_n_u32): Likewise. | |
30003 | (__arm_vqdmlahq_m_n_u16): Likewise. | |
30004 | (__arm_vqdmlsdhq_m_s8): Likewise. | |
30005 | (__arm_vqdmlsdhq_m_s32): Likewise. | |
30006 | (__arm_vqdmlsdhq_m_s16): Likewise. | |
30007 | (__arm_vqdmlsdhxq_m_s8): Likewise. | |
30008 | (__arm_vqdmlsdhxq_m_s32): Likewise. | |
30009 | (__arm_vqdmlsdhxq_m_s16): Likewise. | |
30010 | (__arm_vqdmulhq_m_n_s8): Likewise. | |
30011 | (__arm_vqdmulhq_m_n_s32): Likewise. | |
30012 | (__arm_vqdmulhq_m_n_s16): Likewise. | |
30013 | (__arm_vqdmulhq_m_s8): Likewise. | |
30014 | (__arm_vqdmulhq_m_s32): Likewise. | |
30015 | (__arm_vqdmulhq_m_s16): Likewise. | |
30016 | (__arm_vqrdmladhq_m_s8): Likewise. | |
30017 | (__arm_vqrdmladhq_m_s32): Likewise. | |
30018 | (__arm_vqrdmladhq_m_s16): Likewise. | |
30019 | (__arm_vqrdmladhxq_m_s8): Likewise. | |
30020 | (__arm_vqrdmladhxq_m_s32): Likewise. | |
30021 | (__arm_vqrdmladhxq_m_s16): Likewise. | |
30022 | (__arm_vqrdmlahq_m_n_s8): Likewise. | |
30023 | (__arm_vqrdmlahq_m_n_s32): Likewise. | |
30024 | (__arm_vqrdmlahq_m_n_s16): Likewise. | |
30025 | (__arm_vqrdmlahq_m_n_u8): Likewise. | |
30026 | (__arm_vqrdmlahq_m_n_u32): Likewise. | |
30027 | (__arm_vqrdmlahq_m_n_u16): Likewise. | |
30028 | (__arm_vqrdmlashq_m_n_s8): Likewise. | |
30029 | (__arm_vqrdmlashq_m_n_s32): Likewise. | |
30030 | (__arm_vqrdmlashq_m_n_s16): Likewise. | |
30031 | (__arm_vqrdmlashq_m_n_u8): Likewise. | |
30032 | (__arm_vqrdmlashq_m_n_u32): Likewise. | |
30033 | (__arm_vqrdmlashq_m_n_u16): Likewise. | |
30034 | (__arm_vqrdmlsdhq_m_s8): Likewise. | |
30035 | (__arm_vqrdmlsdhq_m_s32): Likewise. | |
30036 | (__arm_vqrdmlsdhq_m_s16): Likewise. | |
30037 | (__arm_vqrdmlsdhxq_m_s8): Likewise. | |
30038 | (__arm_vqrdmlsdhxq_m_s32): Likewise. | |
30039 | (__arm_vqrdmlsdhxq_m_s16): Likewise. | |
30040 | (__arm_vqrdmulhq_m_n_s8): Likewise. | |
30041 | (__arm_vqrdmulhq_m_n_s32): Likewise. | |
30042 | (__arm_vqrdmulhq_m_n_s16): Likewise. | |
30043 | (__arm_vqrdmulhq_m_s8): Likewise. | |
30044 | (__arm_vqrdmulhq_m_s32): Likewise. | |
30045 | (__arm_vqrdmulhq_m_s16): Likewise. | |
30046 | (__arm_vqrshlq_m_s8): Likewise. | |
30047 | (__arm_vqrshlq_m_s32): Likewise. | |
30048 | (__arm_vqrshlq_m_s16): Likewise. | |
30049 | (__arm_vqrshlq_m_u8): Likewise. | |
30050 | (__arm_vqrshlq_m_u32): Likewise. | |
30051 | (__arm_vqrshlq_m_u16): Likewise. | |
30052 | (__arm_vqshlq_m_n_s8): Likewise. | |
30053 | (__arm_vqshlq_m_n_s32): Likewise. | |
30054 | (__arm_vqshlq_m_n_s16): Likewise. | |
30055 | (__arm_vqshlq_m_n_u8): Likewise. | |
30056 | (__arm_vqshlq_m_n_u32): Likewise. | |
30057 | (__arm_vqshlq_m_n_u16): Likewise. | |
30058 | (__arm_vqshlq_m_s8): Likewise. | |
30059 | (__arm_vqshlq_m_s32): Likewise. | |
30060 | (__arm_vqshlq_m_s16): Likewise. | |
30061 | (__arm_vqshlq_m_u8): Likewise. | |
30062 | (__arm_vqshlq_m_u32): Likewise. | |
30063 | (__arm_vqshlq_m_u16): Likewise. | |
30064 | (__arm_vqsubq_m_n_s8): Likewise. | |
30065 | (__arm_vqsubq_m_n_s32): Likewise. | |
30066 | (__arm_vqsubq_m_n_s16): Likewise. | |
30067 | (__arm_vqsubq_m_n_u8): Likewise. | |
30068 | (__arm_vqsubq_m_n_u32): Likewise. | |
30069 | (__arm_vqsubq_m_n_u16): Likewise. | |
30070 | (__arm_vqsubq_m_s8): Likewise. | |
30071 | (__arm_vqsubq_m_s32): Likewise. | |
30072 | (__arm_vqsubq_m_s16): Likewise. | |
30073 | (__arm_vqsubq_m_u8): Likewise. | |
30074 | (__arm_vqsubq_m_u32): Likewise. | |
30075 | (__arm_vqsubq_m_u16): Likewise. | |
30076 | (__arm_vrhaddq_m_s8): Likewise. | |
30077 | (__arm_vrhaddq_m_s32): Likewise. | |
30078 | (__arm_vrhaddq_m_s16): Likewise. | |
30079 | (__arm_vrhaddq_m_u8): Likewise. | |
30080 | (__arm_vrhaddq_m_u32): Likewise. | |
30081 | (__arm_vrhaddq_m_u16): Likewise. | |
30082 | (__arm_vrmulhq_m_s8): Likewise. | |
30083 | (__arm_vrmulhq_m_s32): Likewise. | |
30084 | (__arm_vrmulhq_m_s16): Likewise. | |
30085 | (__arm_vrmulhq_m_u8): Likewise. | |
30086 | (__arm_vrmulhq_m_u32): Likewise. | |
30087 | (__arm_vrmulhq_m_u16): Likewise. | |
30088 | (__arm_vrshlq_m_s8): Likewise. | |
30089 | (__arm_vrshlq_m_s32): Likewise. | |
30090 | (__arm_vrshlq_m_s16): Likewise. | |
30091 | (__arm_vrshlq_m_u8): Likewise. | |
30092 | (__arm_vrshlq_m_u32): Likewise. | |
30093 | (__arm_vrshlq_m_u16): Likewise. | |
30094 | (__arm_vrshrq_m_n_s8): Likewise. | |
30095 | (__arm_vrshrq_m_n_s32): Likewise. | |
30096 | (__arm_vrshrq_m_n_s16): Likewise. | |
30097 | (__arm_vrshrq_m_n_u8): Likewise. | |
30098 | (__arm_vrshrq_m_n_u32): Likewise. | |
30099 | (__arm_vrshrq_m_n_u16): Likewise. | |
30100 | (__arm_vshlq_m_n_s8): Likewise. | |
30101 | (__arm_vshlq_m_n_s32): Likewise. | |
30102 | (__arm_vshlq_m_n_s16): Likewise. | |
30103 | (__arm_vshlq_m_n_u8): Likewise. | |
30104 | (__arm_vshlq_m_n_u32): Likewise. | |
30105 | (__arm_vshlq_m_n_u16): Likewise. | |
30106 | (__arm_vshrq_m_n_s8): Likewise. | |
30107 | (__arm_vshrq_m_n_s32): Likewise. | |
30108 | (__arm_vshrq_m_n_s16): Likewise. | |
30109 | (__arm_vshrq_m_n_u8): Likewise. | |
30110 | (__arm_vshrq_m_n_u32): Likewise. | |
30111 | (__arm_vshrq_m_n_u16): Likewise. | |
30112 | (__arm_vsliq_m_n_s8): Likewise. | |
30113 | (__arm_vsliq_m_n_s32): Likewise. | |
30114 | (__arm_vsliq_m_n_s16): Likewise. | |
30115 | (__arm_vsliq_m_n_u8): Likewise. | |
30116 | (__arm_vsliq_m_n_u32): Likewise. | |
30117 | (__arm_vsliq_m_n_u16): Likewise. | |
30118 | (__arm_vsubq_m_n_s8): Likewise. | |
30119 | (__arm_vsubq_m_n_s32): Likewise. | |
30120 | (__arm_vsubq_m_n_s16): Likewise. | |
30121 | (__arm_vsubq_m_n_u8): Likewise. | |
30122 | (__arm_vsubq_m_n_u32): Likewise. | |
30123 | (__arm_vsubq_m_n_u16): Likewise. | |
30124 | (vqdmladhq_m): Define polymorphic variant. | |
30125 | (vqdmladhxq_m): Likewise. | |
30126 | (vqdmlsdhq_m): Likewise. | |
30127 | (vqdmlsdhxq_m): Likewise. | |
30128 | (vabdq_m): Likewise. | |
30129 | (vandq_m): Likewise. | |
30130 | (vbicq_m): Likewise. | |
30131 | (vbrsrq_m_n): Likewise. | |
30132 | (vcaddq_rot270_m): Likewise. | |
30133 | (vcaddq_rot90_m): Likewise. | |
30134 | (veorq_m): Likewise. | |
30135 | (vmaxq_m): Likewise. | |
30136 | (vminq_m): Likewise. | |
30137 | (vmladavaq_p): Likewise. | |
30138 | (vmlaq_m_n): Likewise. | |
30139 | (vmlasq_m_n): Likewise. | |
30140 | (vmulhq_m): Likewise. | |
30141 | (vmullbq_int_m): Likewise. | |
30142 | (vmulltq_int_m): Likewise. | |
30143 | (vornq_m): Likewise. | |
30144 | (vorrq_m): Likewise. | |
30145 | (vqdmlahq_m_n): Likewise. | |
30146 | (vqrdmlahq_m_n): Likewise. | |
30147 | (vqrdmlashq_m_n): Likewise. | |
30148 | (vqrshlq_m): Likewise. | |
30149 | (vqshlq_m_n): Likewise. | |
30150 | (vqshlq_m): Likewise. | |
30151 | (vrhaddq_m): Likewise. | |
30152 | (vrmulhq_m): Likewise. | |
30153 | (vrshlq_m): Likewise. | |
30154 | (vrshrq_m_n): Likewise. | |
30155 | (vshlq_m_n): Likewise. | |
30156 | (vshrq_m_n): Likewise. | |
30157 | (vsliq_m): Likewise. | |
30158 | (vaddq_m_n): Likewise. | |
30159 | (vaddq_m): Likewise. | |
30160 | (vhaddq_m_n): Likewise. | |
30161 | (vhaddq_m): Likewise. | |
30162 | (vhcaddq_rot270_m): Likewise. | |
30163 | (vhcaddq_rot90_m): Likewise. | |
30164 | (vhsubq_m): Likewise. | |
30165 | (vhsubq_m_n): Likewise. | |
30166 | (vmulq_m_n): Likewise. | |
30167 | (vmulq_m): Likewise. | |
30168 | (vqaddq_m_n): Likewise. | |
30169 | (vqaddq_m): Likewise. | |
30170 | (vqdmulhq_m_n): Likewise. | |
30171 | (vqdmulhq_m): Likewise. | |
30172 | (vsubq_m_n): Likewise. | |
30173 | (vsliq_m_n): Likewise. | |
30174 | (vqsubq_m_n): Likewise. | |
30175 | (vqsubq_m): Likewise. | |
30176 | (vqrdmulhq_m): Likewise. | |
30177 | (vqrdmulhq_m_n): Likewise. | |
30178 | (vqrdmlsdhxq_m): Likewise. | |
30179 | (vqrdmlsdhq_m): Likewise. | |
30180 | (vqrdmladhq_m): Likewise. | |
30181 | (vqrdmladhxq_m): Likewise. | |
30182 | (vmlsdavaxq_p): Likewise. | |
30183 | (vmlsdavaq_p): Likewise. | |
30184 | (vmladavaxq_p): Likewise. | |
30185 | * config/arm/arm_mve_builtins.def (QUADOP_NONE_NONE_NONE_IMM_UNONE): Use | |
30186 | builtin qualifier. | |
30187 | (QUADOP_NONE_NONE_NONE_NONE_UNONE): Likewise. | |
30188 | (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE): Likewise. | |
30189 | (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE): Likewise. | |
30190 | (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE): Likewise. | |
30191 | * config/arm/mve.md (VHSUBQ_M): Define iterators. | |
30192 | (VSLIQ_M_N): Likewise. | |
30193 | (VQRDMLAHQ_M_N): Likewise. | |
30194 | (VRSHLQ_M): Likewise. | |
30195 | (VMINQ_M): Likewise. | |
30196 | (VMULLBQ_INT_M): Likewise. | |
30197 | (VMULHQ_M): Likewise. | |
30198 | (VMULQ_M): Likewise. | |
30199 | (VHSUBQ_M_N): Likewise. | |
30200 | (VHADDQ_M_N): Likewise. | |
30201 | (VORRQ_M): Likewise. | |
30202 | (VRMULHQ_M): Likewise. | |
30203 | (VQADDQ_M): Likewise. | |
30204 | (VRSHRQ_M_N): Likewise. | |
30205 | (VQSUBQ_M_N): Likewise. | |
30206 | (VADDQ_M): Likewise. | |
30207 | (VORNQ_M): Likewise. | |
30208 | (VQDMLAHQ_M_N): Likewise. | |
30209 | (VRHADDQ_M): Likewise. | |
30210 | (VQSHLQ_M): Likewise. | |
30211 | (VANDQ_M): Likewise. | |
30212 | (VBICQ_M): Likewise. | |
30213 | (VSHLQ_M_N): Likewise. | |
30214 | (VCADDQ_ROT270_M): Likewise. | |
30215 | (VQRSHLQ_M): Likewise. | |
30216 | (VQADDQ_M_N): Likewise. | |
30217 | (VADDQ_M_N): Likewise. | |
30218 | (VMAXQ_M): Likewise. | |
30219 | (VQSUBQ_M): Likewise. | |
30220 | (VMLASQ_M_N): Likewise. | |
30221 | (VMLADAVAQ_P): Likewise. | |
30222 | (VBRSRQ_M_N): Likewise. | |
30223 | (VMULQ_M_N): Likewise. | |
30224 | (VCADDQ_ROT90_M): Likewise. | |
30225 | (VMULLTQ_INT_M): Likewise. | |
30226 | (VEORQ_M): Likewise. | |
30227 | (VSHRQ_M_N): Likewise. | |
30228 | (VSUBQ_M_N): Likewise. | |
30229 | (VHADDQ_M): Likewise. | |
30230 | (VABDQ_M): Likewise. | |
30231 | (VQRDMLASHQ_M_N): Likewise. | |
30232 | (VMLAQ_M_N): Likewise. | |
30233 | (VQSHLQ_M_N): Likewise. | |
30234 | (mve_vabdq_m_<supf><mode>): Define RTL pattern. | |
30235 | (mve_vaddq_m_n_<supf><mode>): Likewise. | |
30236 | (mve_vaddq_m_<supf><mode>): Likewise. | |
30237 | (mve_vandq_m_<supf><mode>): Likewise. | |
30238 | (mve_vbicq_m_<supf><mode>): Likewise. | |
30239 | (mve_vbrsrq_m_n_<supf><mode>): Likewise. | |
30240 | (mve_vcaddq_rot270_m_<supf><mode>): Likewise. | |
30241 | (mve_vcaddq_rot90_m_<supf><mode>): Likewise. | |
30242 | (mve_veorq_m_<supf><mode>): Likewise. | |
30243 | (mve_vhaddq_m_n_<supf><mode>): Likewise. | |
30244 | (mve_vhaddq_m_<supf><mode>): Likewise. | |
30245 | (mve_vhsubq_m_n_<supf><mode>): Likewise. | |
30246 | (mve_vhsubq_m_<supf><mode>): Likewise. | |
30247 | (mve_vmaxq_m_<supf><mode>): Likewise. | |
30248 | (mve_vminq_m_<supf><mode>): Likewise. | |
30249 | (mve_vmladavaq_p_<supf><mode>): Likewise. | |
30250 | (mve_vmlaq_m_n_<supf><mode>): Likewise. | |
30251 | (mve_vmlasq_m_n_<supf><mode>): Likewise. | |
30252 | (mve_vmulhq_m_<supf><mode>): Likewise. | |
30253 | (mve_vmullbq_int_m_<supf><mode>): Likewise. | |
30254 | (mve_vmulltq_int_m_<supf><mode>): Likewise. | |
30255 | (mve_vmulq_m_n_<supf><mode>): Likewise. | |
30256 | (mve_vmulq_m_<supf><mode>): Likewise. | |
30257 | (mve_vornq_m_<supf><mode>): Likewise. | |
30258 | (mve_vorrq_m_<supf><mode>): Likewise. | |
30259 | (mve_vqaddq_m_n_<supf><mode>): Likewise. | |
30260 | (mve_vqaddq_m_<supf><mode>): Likewise. | |
30261 | (mve_vqdmlahq_m_n_<supf><mode>): Likewise. | |
30262 | (mve_vqrdmlahq_m_n_<supf><mode>): Likewise. | |
30263 | (mve_vqrdmlashq_m_n_<supf><mode>): Likewise. | |
30264 | (mve_vqrshlq_m_<supf><mode>): Likewise. | |
30265 | (mve_vqshlq_m_n_<supf><mode>): Likewise. | |
30266 | (mve_vqshlq_m_<supf><mode>): Likewise. | |
30267 | (mve_vqsubq_m_n_<supf><mode>): Likewise. | |
30268 | (mve_vqsubq_m_<supf><mode>): Likewise. | |
30269 | (mve_vrhaddq_m_<supf><mode>): Likewise. | |
30270 | (mve_vrmulhq_m_<supf><mode>): Likewise. | |
30271 | (mve_vrshlq_m_<supf><mode>): Likewise. | |
30272 | (mve_vrshrq_m_n_<supf><mode>): Likewise. | |
30273 | (mve_vshlq_m_n_<supf><mode>): Likewise. | |
30274 | (mve_vshrq_m_n_<supf><mode>): Likewise. | |
30275 | (mve_vsliq_m_n_<supf><mode>): Likewise. | |
30276 | (mve_vsubq_m_n_<supf><mode>): Likewise. | |
30277 | (mve_vhcaddq_rot270_m_s<mode>): Likewise. | |
30278 | (mve_vhcaddq_rot90_m_s<mode>): Likewise. | |
30279 | (mve_vmladavaxq_p_s<mode>): Likewise. | |
30280 | (mve_vmlsdavaq_p_s<mode>): Likewise. | |
30281 | (mve_vmlsdavaxq_p_s<mode>): Likewise. | |
30282 | (mve_vqdmladhq_m_s<mode>): Likewise. | |
30283 | (mve_vqdmladhxq_m_s<mode>): Likewise. | |
30284 | (mve_vqdmlsdhq_m_s<mode>): Likewise. | |
30285 | (mve_vqdmlsdhxq_m_s<mode>): Likewise. | |
30286 | (mve_vqdmulhq_m_n_s<mode>): Likewise. | |
30287 | (mve_vqdmulhq_m_s<mode>): Likewise. | |
30288 | (mve_vqrdmladhq_m_s<mode>): Likewise. | |
30289 | (mve_vqrdmladhxq_m_s<mode>): Likewise. | |
30290 | (mve_vqrdmlsdhq_m_s<mode>): Likewise. | |
30291 | (mve_vqrdmlsdhxq_m_s<mode>): Likewise. | |
30292 | (mve_vqrdmulhq_m_n_s<mode>): Likewise. | |
30293 | (mve_vqrdmulhq_m_s<mode>): Likewise. | |
30294 | ||
30295 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
30296 | Mihail Ionescu <mihail.ionescu@arm.com> | |
30297 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
30298 | ||
30299 | * config/arm/arm-builtins.c (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): | |
30300 | Define builtin qualifier. | |
30301 | (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. | |
30302 | (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. | |
30303 | (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
30304 | (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. | |
30305 | (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. | |
30306 | (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. | |
30307 | (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise. | |
30308 | * config/arm/arm_mve.h (vsriq_m_n_s8): Define macro. | |
30309 | (vsubq_m_s8): Likewise. | |
30310 | (vcvtq_m_n_f16_u16): Likewise. | |
30311 | (vqshluq_m_n_s8): Likewise. | |
30312 | (vabavq_p_s8): Likewise. | |
30313 | (vsriq_m_n_u8): Likewise. | |
30314 | (vshlq_m_u8): Likewise. | |
30315 | (vsubq_m_u8): Likewise. | |
30316 | (vabavq_p_u8): Likewise. | |
30317 | (vshlq_m_s8): Likewise. | |
30318 | (vcvtq_m_n_f16_s16): Likewise. | |
30319 | (vsriq_m_n_s16): Likewise. | |
30320 | (vsubq_m_s16): Likewise. | |
30321 | (vcvtq_m_n_f32_u32): Likewise. | |
30322 | (vqshluq_m_n_s16): Likewise. | |
30323 | (vabavq_p_s16): Likewise. | |
30324 | (vsriq_m_n_u16): Likewise. | |
30325 | (vshlq_m_u16): Likewise. | |
30326 | (vsubq_m_u16): Likewise. | |
30327 | (vabavq_p_u16): Likewise. | |
30328 | (vshlq_m_s16): Likewise. | |
30329 | (vcvtq_m_n_f32_s32): Likewise. | |
30330 | (vsriq_m_n_s32): Likewise. | |
30331 | (vsubq_m_s32): Likewise. | |
30332 | (vqshluq_m_n_s32): Likewise. | |
30333 | (vabavq_p_s32): Likewise. | |
30334 | (vsriq_m_n_u32): Likewise. | |
30335 | (vshlq_m_u32): Likewise. | |
30336 | (vsubq_m_u32): Likewise. | |
30337 | (vabavq_p_u32): Likewise. | |
30338 | (vshlq_m_s32): Likewise. | |
30339 | (__arm_vsriq_m_n_s8): Define intrinsic. | |
30340 | (__arm_vsubq_m_s8): Likewise. | |
30341 | (__arm_vqshluq_m_n_s8): Likewise. | |
30342 | (__arm_vabavq_p_s8): Likewise. | |
30343 | (__arm_vsriq_m_n_u8): Likewise. | |
30344 | (__arm_vshlq_m_u8): Likewise. | |
30345 | (__arm_vsubq_m_u8): Likewise. | |
30346 | (__arm_vabavq_p_u8): Likewise. | |
30347 | (__arm_vshlq_m_s8): Likewise. | |
30348 | (__arm_vsriq_m_n_s16): Likewise. | |
30349 | (__arm_vsubq_m_s16): Likewise. | |
30350 | (__arm_vqshluq_m_n_s16): Likewise. | |
30351 | (__arm_vabavq_p_s16): Likewise. | |
30352 | (__arm_vsriq_m_n_u16): Likewise. | |
30353 | (__arm_vshlq_m_u16): Likewise. | |
30354 | (__arm_vsubq_m_u16): Likewise. | |
30355 | (__arm_vabavq_p_u16): Likewise. | |
30356 | (__arm_vshlq_m_s16): Likewise. | |
30357 | (__arm_vsriq_m_n_s32): Likewise. | |
30358 | (__arm_vsubq_m_s32): Likewise. | |
30359 | (__arm_vqshluq_m_n_s32): Likewise. | |
30360 | (__arm_vabavq_p_s32): Likewise. | |
30361 | (__arm_vsriq_m_n_u32): Likewise. | |
30362 | (__arm_vshlq_m_u32): Likewise. | |
30363 | (__arm_vsubq_m_u32): Likewise. | |
30364 | (__arm_vabavq_p_u32): Likewise. | |
30365 | (__arm_vshlq_m_s32): Likewise. | |
30366 | (__arm_vcvtq_m_n_f16_u16): Likewise. | |
30367 | (__arm_vcvtq_m_n_f16_s16): Likewise. | |
30368 | (__arm_vcvtq_m_n_f32_u32): Likewise. | |
30369 | (__arm_vcvtq_m_n_f32_s32): Likewise. | |
30370 | (vcvtq_m_n): Define polymorphic variant. | |
30371 | (vqshluq_m_n): Likewise. | |
30372 | (vshlq_m): Likewise. | |
30373 | (vsriq_m_n): Likewise. | |
30374 | (vsubq_m): Likewise. | |
30375 | (vabavq_p): Likewise. | |
30376 | * config/arm/arm_mve_builtins.def | |
30377 | (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Use builtin qualifier. | |
30378 | (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. | |
30379 | (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. | |
30380 | (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
30381 | (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. | |
30382 | (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. | |
30383 | (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. | |
30384 | (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise. | |
30385 | * config/arm/mve.md (VABAVQ_P): Define iterator. | |
30386 | (VSHLQ_M): Likewise. | |
30387 | (VSRIQ_M_N): Likewise. | |
30388 | (VSUBQ_M): Likewise. | |
30389 | (VCVTQ_M_N_TO_F): Likewise. | |
30390 | (mve_vabavq_p_<supf><mode>): Define RTL pattern. | |
30391 | (mve_vqshluq_m_n_s<mode>): Likewise. | |
30392 | (mve_vshlq_m_<supf><mode>): Likewise. | |
30393 | (mve_vsriq_m_n_<supf><mode>): Likewise. | |
30394 | (mve_vsubq_m_<supf><mode>): Likewise. | |
30395 | (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise. | |
30396 | ||
30397 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
30398 | Mihail Ionescu <mihail.ionescu@arm.com> | |
30399 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
30400 | ||
30401 | * config/arm/arm_mve.h (vrmlaldavhaxq_s32): Define macro. | |
30402 | (vrmlsldavhaq_s32): Likewise. | |
30403 | (vrmlsldavhaxq_s32): Likewise. | |
30404 | (vaddlvaq_p_s32): Likewise. | |
30405 | (vcvtbq_m_f16_f32): Likewise. | |
30406 | (vcvtbq_m_f32_f16): Likewise. | |
30407 | (vcvttq_m_f16_f32): Likewise. | |
30408 | (vcvttq_m_f32_f16): Likewise. | |
30409 | (vrev16q_m_s8): Likewise. | |
30410 | (vrev32q_m_f16): Likewise. | |
30411 | (vrmlaldavhq_p_s32): Likewise. | |
30412 | (vrmlaldavhxq_p_s32): Likewise. | |
30413 | (vrmlsldavhq_p_s32): Likewise. | |
30414 | (vrmlsldavhxq_p_s32): Likewise. | |
30415 | (vaddlvaq_p_u32): Likewise. | |
30416 | (vrev16q_m_u8): Likewise. | |
30417 | (vrmlaldavhq_p_u32): Likewise. | |
30418 | (vmvnq_m_n_s16): Likewise. | |
30419 | (vorrq_m_n_s16): Likewise. | |
30420 | (vqrshrntq_n_s16): Likewise. | |
30421 | (vqshrnbq_n_s16): Likewise. | |
30422 | (vqshrntq_n_s16): Likewise. | |
30423 | (vrshrnbq_n_s16): Likewise. | |
30424 | (vrshrntq_n_s16): Likewise. | |
30425 | (vshrnbq_n_s16): Likewise. | |
30426 | (vshrntq_n_s16): Likewise. | |
30427 | (vcmlaq_f16): Likewise. | |
30428 | (vcmlaq_rot180_f16): Likewise. | |
30429 | (vcmlaq_rot270_f16): Likewise. | |
30430 | (vcmlaq_rot90_f16): Likewise. | |
30431 | (vfmaq_f16): Likewise. | |
30432 | (vfmaq_n_f16): Likewise. | |
30433 | (vfmasq_n_f16): Likewise. | |
30434 | (vfmsq_f16): Likewise. | |
30435 | (vmlaldavaq_s16): Likewise. | |
30436 | (vmlaldavaxq_s16): Likewise. | |
30437 | (vmlsldavaq_s16): Likewise. | |
30438 | (vmlsldavaxq_s16): Likewise. | |
30439 | (vabsq_m_f16): Likewise. | |
30440 | (vcvtmq_m_s16_f16): Likewise. | |
30441 | (vcvtnq_m_s16_f16): Likewise. | |
30442 | (vcvtpq_m_s16_f16): Likewise. | |
30443 | (vcvtq_m_s16_f16): Likewise. | |
30444 | (vdupq_m_n_f16): Likewise. | |
30445 | (vmaxnmaq_m_f16): Likewise. | |
30446 | (vmaxnmavq_p_f16): Likewise. | |
30447 | (vmaxnmvq_p_f16): Likewise. | |
30448 | (vminnmaq_m_f16): Likewise. | |
30449 | (vminnmavq_p_f16): Likewise. | |
30450 | (vminnmvq_p_f16): Likewise. | |
30451 | (vmlaldavq_p_s16): Likewise. | |
30452 | (vmlaldavxq_p_s16): Likewise. | |
30453 | (vmlsldavq_p_s16): Likewise. | |
30454 | (vmlsldavxq_p_s16): Likewise. | |
30455 | (vmovlbq_m_s8): Likewise. | |
30456 | (vmovltq_m_s8): Likewise. | |
30457 | (vmovnbq_m_s16): Likewise. | |
30458 | (vmovntq_m_s16): Likewise. | |
30459 | (vnegq_m_f16): Likewise. | |
30460 | (vpselq_f16): Likewise. | |
30461 | (vqmovnbq_m_s16): Likewise. | |
30462 | (vqmovntq_m_s16): Likewise. | |
30463 | (vrev32q_m_s8): Likewise. | |
30464 | (vrev64q_m_f16): Likewise. | |
30465 | (vrndaq_m_f16): Likewise. | |
30466 | (vrndmq_m_f16): Likewise. | |
30467 | (vrndnq_m_f16): Likewise. | |
30468 | (vrndpq_m_f16): Likewise. | |
30469 | (vrndq_m_f16): Likewise. | |
30470 | (vrndxq_m_f16): Likewise. | |
30471 | (vcmpeqq_m_n_f16): Likewise. | |
30472 | (vcmpgeq_m_f16): Likewise. | |
30473 | (vcmpgeq_m_n_f16): Likewise. | |
30474 | (vcmpgtq_m_f16): Likewise. | |
30475 | (vcmpgtq_m_n_f16): Likewise. | |
30476 | (vcmpleq_m_f16): Likewise. | |
30477 | (vcmpleq_m_n_f16): Likewise. | |
30478 | (vcmpltq_m_f16): Likewise. | |
30479 | (vcmpltq_m_n_f16): Likewise. | |
30480 | (vcmpneq_m_f16): Likewise. | |
30481 | (vcmpneq_m_n_f16): Likewise. | |
30482 | (vmvnq_m_n_u16): Likewise. | |
30483 | (vorrq_m_n_u16): Likewise. | |
30484 | (vqrshruntq_n_s16): Likewise. | |
30485 | (vqshrunbq_n_s16): Likewise. | |
30486 | (vqshruntq_n_s16): Likewise. | |
30487 | (vcvtmq_m_u16_f16): Likewise. | |
30488 | (vcvtnq_m_u16_f16): Likewise. | |
30489 | (vcvtpq_m_u16_f16): Likewise. | |
30490 | (vcvtq_m_u16_f16): Likewise. | |
30491 | (vqmovunbq_m_s16): Likewise. | |
30492 | (vqmovuntq_m_s16): Likewise. | |
30493 | (vqrshrntq_n_u16): Likewise. | |
30494 | (vqshrnbq_n_u16): Likewise. | |
30495 | (vqshrntq_n_u16): Likewise. | |
30496 | (vrshrnbq_n_u16): Likewise. | |
30497 | (vrshrntq_n_u16): Likewise. | |
30498 | (vshrnbq_n_u16): Likewise. | |
30499 | (vshrntq_n_u16): Likewise. | |
30500 | (vmlaldavaq_u16): Likewise. | |
30501 | (vmlaldavaxq_u16): Likewise. | |
30502 | (vmlaldavq_p_u16): Likewise. | |
30503 | (vmlaldavxq_p_u16): Likewise. | |
30504 | (vmovlbq_m_u8): Likewise. | |
30505 | (vmovltq_m_u8): Likewise. | |
30506 | (vmovnbq_m_u16): Likewise. | |
30507 | (vmovntq_m_u16): Likewise. | |
30508 | (vqmovnbq_m_u16): Likewise. | |
30509 | (vqmovntq_m_u16): Likewise. | |
30510 | (vrev32q_m_u8): Likewise. | |
30511 | (vmvnq_m_n_s32): Likewise. | |
30512 | (vorrq_m_n_s32): Likewise. | |
30513 | (vqrshrntq_n_s32): Likewise. | |
30514 | (vqshrnbq_n_s32): Likewise. | |
30515 | (vqshrntq_n_s32): Likewise. | |
30516 | (vrshrnbq_n_s32): Likewise. | |
30517 | (vrshrntq_n_s32): Likewise. | |
30518 | (vshrnbq_n_s32): Likewise. | |
30519 | (vshrntq_n_s32): Likewise. | |
30520 | (vcmlaq_f32): Likewise. | |
30521 | (vcmlaq_rot180_f32): Likewise. | |
30522 | (vcmlaq_rot270_f32): Likewise. | |
30523 | (vcmlaq_rot90_f32): Likewise. | |
30524 | (vfmaq_f32): Likewise. | |
30525 | (vfmaq_n_f32): Likewise. | |
30526 | (vfmasq_n_f32): Likewise. | |
30527 | (vfmsq_f32): Likewise. | |
30528 | (vmlaldavaq_s32): Likewise. | |
30529 | (vmlaldavaxq_s32): Likewise. | |
30530 | (vmlsldavaq_s32): Likewise. | |
30531 | (vmlsldavaxq_s32): Likewise. | |
30532 | (vabsq_m_f32): Likewise. | |
30533 | (vcvtmq_m_s32_f32): Likewise. | |
30534 | (vcvtnq_m_s32_f32): Likewise. | |
30535 | (vcvtpq_m_s32_f32): Likewise. | |
30536 | (vcvtq_m_s32_f32): Likewise. | |
30537 | (vdupq_m_n_f32): Likewise. | |
30538 | (vmaxnmaq_m_f32): Likewise. | |
30539 | (vmaxnmavq_p_f32): Likewise. | |
30540 | (vmaxnmvq_p_f32): Likewise. | |
30541 | (vminnmaq_m_f32): Likewise. | |
30542 | (vminnmavq_p_f32): Likewise. | |
30543 | (vminnmvq_p_f32): Likewise. | |
30544 | (vmlaldavq_p_s32): Likewise. | |
30545 | (vmlaldavxq_p_s32): Likewise. | |
30546 | (vmlsldavq_p_s32): Likewise. | |
30547 | (vmlsldavxq_p_s32): Likewise. | |
30548 | (vmovlbq_m_s16): Likewise. | |
30549 | (vmovltq_m_s16): Likewise. | |
30550 | (vmovnbq_m_s32): Likewise. | |
30551 | (vmovntq_m_s32): Likewise. | |
30552 | (vnegq_m_f32): Likewise. | |
30553 | (vpselq_f32): Likewise. | |
30554 | (vqmovnbq_m_s32): Likewise. | |
30555 | (vqmovntq_m_s32): Likewise. | |
30556 | (vrev32q_m_s16): Likewise. | |
30557 | (vrev64q_m_f32): Likewise. | |
30558 | (vrndaq_m_f32): Likewise. | |
30559 | (vrndmq_m_f32): Likewise. | |
30560 | (vrndnq_m_f32): Likewise. | |
30561 | (vrndpq_m_f32): Likewise. | |
30562 | (vrndq_m_f32): Likewise. | |
30563 | (vrndxq_m_f32): Likewise. | |
30564 | (vcmpeqq_m_n_f32): Likewise. | |
30565 | (vcmpgeq_m_f32): Likewise. | |
30566 | (vcmpgeq_m_n_f32): Likewise. | |
30567 | (vcmpgtq_m_f32): Likewise. | |
30568 | (vcmpgtq_m_n_f32): Likewise. | |
30569 | (vcmpleq_m_f32): Likewise. | |
30570 | (vcmpleq_m_n_f32): Likewise. | |
30571 | (vcmpltq_m_f32): Likewise. | |
30572 | (vcmpltq_m_n_f32): Likewise. | |
30573 | (vcmpneq_m_f32): Likewise. | |
30574 | (vcmpneq_m_n_f32): Likewise. | |
30575 | (vmvnq_m_n_u32): Likewise. | |
30576 | (vorrq_m_n_u32): Likewise. | |
30577 | (vqrshruntq_n_s32): Likewise. | |
30578 | (vqshrunbq_n_s32): Likewise. | |
30579 | (vqshruntq_n_s32): Likewise. | |
30580 | (vcvtmq_m_u32_f32): Likewise. | |
30581 | (vcvtnq_m_u32_f32): Likewise. | |
30582 | (vcvtpq_m_u32_f32): Likewise. | |
30583 | (vcvtq_m_u32_f32): Likewise. | |
30584 | (vqmovunbq_m_s32): Likewise. | |
30585 | (vqmovuntq_m_s32): Likewise. | |
30586 | (vqrshrntq_n_u32): Likewise. | |
30587 | (vqshrnbq_n_u32): Likewise. | |
30588 | (vqshrntq_n_u32): Likewise. | |
30589 | (vrshrnbq_n_u32): Likewise. | |
30590 | (vrshrntq_n_u32): Likewise. | |
30591 | (vshrnbq_n_u32): Likewise. | |
30592 | (vshrntq_n_u32): Likewise. | |
30593 | (vmlaldavaq_u32): Likewise. | |
30594 | (vmlaldavaxq_u32): Likewise. | |
30595 | (vmlaldavq_p_u32): Likewise. | |
30596 | (vmlaldavxq_p_u32): Likewise. | |
30597 | (vmovlbq_m_u16): Likewise. | |
30598 | (vmovltq_m_u16): Likewise. | |
30599 | (vmovnbq_m_u32): Likewise. | |
30600 | (vmovntq_m_u32): Likewise. | |
30601 | (vqmovnbq_m_u32): Likewise. | |
30602 | (vqmovntq_m_u32): Likewise. | |
30603 | (vrev32q_m_u16): Likewise. | |
30604 | (__arm_vrmlaldavhaxq_s32): Define intrinsic. | |
30605 | (__arm_vrmlsldavhaq_s32): Likewise. | |
30606 | (__arm_vrmlsldavhaxq_s32): Likewise. | |
30607 | (__arm_vaddlvaq_p_s32): Likewise. | |
30608 | (__arm_vrev16q_m_s8): Likewise. | |
30609 | (__arm_vrmlaldavhq_p_s32): Likewise. | |
30610 | (__arm_vrmlaldavhxq_p_s32): Likewise. | |
30611 | (__arm_vrmlsldavhq_p_s32): Likewise. | |
30612 | (__arm_vrmlsldavhxq_p_s32): Likewise. | |
30613 | (__arm_vaddlvaq_p_u32): Likewise. | |
30614 | (__arm_vrev16q_m_u8): Likewise. | |
30615 | (__arm_vrmlaldavhq_p_u32): Likewise. | |
30616 | (__arm_vmvnq_m_n_s16): Likewise. | |
30617 | (__arm_vorrq_m_n_s16): Likewise. | |
30618 | (__arm_vqrshrntq_n_s16): Likewise. | |
30619 | (__arm_vqshrnbq_n_s16): Likewise. | |
30620 | (__arm_vqshrntq_n_s16): Likewise. | |
30621 | (__arm_vrshrnbq_n_s16): Likewise. | |
30622 | (__arm_vrshrntq_n_s16): Likewise. | |
30623 | (__arm_vshrnbq_n_s16): Likewise. | |
30624 | (__arm_vshrntq_n_s16): Likewise. | |
30625 | (__arm_vmlaldavaq_s16): Likewise. | |
30626 | (__arm_vmlaldavaxq_s16): Likewise. | |
30627 | (__arm_vmlsldavaq_s16): Likewise. | |
30628 | (__arm_vmlsldavaxq_s16): Likewise. | |
30629 | (__arm_vmlaldavq_p_s16): Likewise. | |
30630 | (__arm_vmlaldavxq_p_s16): Likewise. | |
30631 | (__arm_vmlsldavq_p_s16): Likewise. | |
30632 | (__arm_vmlsldavxq_p_s16): Likewise. | |
30633 | (__arm_vmovlbq_m_s8): Likewise. | |
30634 | (__arm_vmovltq_m_s8): Likewise. | |
30635 | (__arm_vmovnbq_m_s16): Likewise. | |
30636 | (__arm_vmovntq_m_s16): Likewise. | |
30637 | (__arm_vqmovnbq_m_s16): Likewise. | |
30638 | (__arm_vqmovntq_m_s16): Likewise. | |
30639 | (__arm_vrev32q_m_s8): Likewise. | |
30640 | (__arm_vmvnq_m_n_u16): Likewise. | |
30641 | (__arm_vorrq_m_n_u16): Likewise. | |
30642 | (__arm_vqrshruntq_n_s16): Likewise. | |
30643 | (__arm_vqshrunbq_n_s16): Likewise. | |
30644 | (__arm_vqshruntq_n_s16): Likewise. | |
30645 | (__arm_vqmovunbq_m_s16): Likewise. | |
30646 | (__arm_vqmovuntq_m_s16): Likewise. | |
30647 | (__arm_vqrshrntq_n_u16): Likewise. | |
30648 | (__arm_vqshrnbq_n_u16): Likewise. | |
30649 | (__arm_vqshrntq_n_u16): Likewise. | |
30650 | (__arm_vrshrnbq_n_u16): Likewise. | |
30651 | (__arm_vrshrntq_n_u16): Likewise. | |
30652 | (__arm_vshrnbq_n_u16): Likewise. | |
30653 | (__arm_vshrntq_n_u16): Likewise. | |
30654 | (__arm_vmlaldavaq_u16): Likewise. | |
30655 | (__arm_vmlaldavaxq_u16): Likewise. | |
30656 | (__arm_vmlaldavq_p_u16): Likewise. | |
30657 | (__arm_vmlaldavxq_p_u16): Likewise. | |
30658 | (__arm_vmovlbq_m_u8): Likewise. | |
30659 | (__arm_vmovltq_m_u8): Likewise. | |
30660 | (__arm_vmovnbq_m_u16): Likewise. | |
30661 | (__arm_vmovntq_m_u16): Likewise. | |
30662 | (__arm_vqmovnbq_m_u16): Likewise. | |
30663 | (__arm_vqmovntq_m_u16): Likewise. | |
30664 | (__arm_vrev32q_m_u8): Likewise. | |
30665 | (__arm_vmvnq_m_n_s32): Likewise. | |
30666 | (__arm_vorrq_m_n_s32): Likewise. | |
30667 | (__arm_vqrshrntq_n_s32): Likewise. | |
30668 | (__arm_vqshrnbq_n_s32): Likewise. | |
30669 | (__arm_vqshrntq_n_s32): Likewise. | |
30670 | (__arm_vrshrnbq_n_s32): Likewise. | |
30671 | (__arm_vrshrntq_n_s32): Likewise. | |
30672 | (__arm_vshrnbq_n_s32): Likewise. | |
30673 | (__arm_vshrntq_n_s32): Likewise. | |
30674 | (__arm_vmlaldavaq_s32): Likewise. | |
30675 | (__arm_vmlaldavaxq_s32): Likewise. | |
30676 | (__arm_vmlsldavaq_s32): Likewise. | |
30677 | (__arm_vmlsldavaxq_s32): Likewise. | |
30678 | (__arm_vmlaldavq_p_s32): Likewise. | |
30679 | (__arm_vmlaldavxq_p_s32): Likewise. | |
30680 | (__arm_vmlsldavq_p_s32): Likewise. | |
30681 | (__arm_vmlsldavxq_p_s32): Likewise. | |
30682 | (__arm_vmovlbq_m_s16): Likewise. | |
30683 | (__arm_vmovltq_m_s16): Likewise. | |
30684 | (__arm_vmovnbq_m_s32): Likewise. | |
30685 | (__arm_vmovntq_m_s32): Likewise. | |
30686 | (__arm_vqmovnbq_m_s32): Likewise. | |
30687 | (__arm_vqmovntq_m_s32): Likewise. | |
30688 | (__arm_vrev32q_m_s16): Likewise. | |
30689 | (__arm_vmvnq_m_n_u32): Likewise. | |
30690 | (__arm_vorrq_m_n_u32): Likewise. | |
30691 | (__arm_vqrshruntq_n_s32): Likewise. | |
30692 | (__arm_vqshrunbq_n_s32): Likewise. | |
30693 | (__arm_vqshruntq_n_s32): Likewise. | |
30694 | (__arm_vqmovunbq_m_s32): Likewise. | |
30695 | (__arm_vqmovuntq_m_s32): Likewise. | |
30696 | (__arm_vqrshrntq_n_u32): Likewise. | |
30697 | (__arm_vqshrnbq_n_u32): Likewise. | |
30698 | (__arm_vqshrntq_n_u32): Likewise. | |
30699 | (__arm_vrshrnbq_n_u32): Likewise. | |
30700 | (__arm_vrshrntq_n_u32): Likewise. | |
30701 | (__arm_vshrnbq_n_u32): Likewise. | |
30702 | (__arm_vshrntq_n_u32): Likewise. | |
30703 | (__arm_vmlaldavaq_u32): Likewise. | |
30704 | (__arm_vmlaldavaxq_u32): Likewise. | |
30705 | (__arm_vmlaldavq_p_u32): Likewise. | |
30706 | (__arm_vmlaldavxq_p_u32): Likewise. | |
30707 | (__arm_vmovlbq_m_u16): Likewise. | |
30708 | (__arm_vmovltq_m_u16): Likewise. | |
30709 | (__arm_vmovnbq_m_u32): Likewise. | |
30710 | (__arm_vmovntq_m_u32): Likewise. | |
30711 | (__arm_vqmovnbq_m_u32): Likewise. | |
30712 | (__arm_vqmovntq_m_u32): Likewise. | |
30713 | (__arm_vrev32q_m_u16): Likewise. | |
30714 | (__arm_vcvtbq_m_f16_f32): Likewise. | |
30715 | (__arm_vcvtbq_m_f32_f16): Likewise. | |
30716 | (__arm_vcvttq_m_f16_f32): Likewise. | |
30717 | (__arm_vcvttq_m_f32_f16): Likewise. | |
30718 | (__arm_vrev32q_m_f16): Likewise. | |
30719 | (__arm_vcmlaq_f16): Likewise. | |
30720 | (__arm_vcmlaq_rot180_f16): Likewise. | |
30721 | (__arm_vcmlaq_rot270_f16): Likewise. | |
30722 | (__arm_vcmlaq_rot90_f16): Likewise. | |
30723 | (__arm_vfmaq_f16): Likewise. | |
30724 | (__arm_vfmaq_n_f16): Likewise. | |
30725 | (__arm_vfmasq_n_f16): Likewise. | |
30726 | (__arm_vfmsq_f16): Likewise. | |
30727 | (__arm_vabsq_m_f16): Likewise. | |
30728 | (__arm_vcvtmq_m_s16_f16): Likewise. | |
30729 | (__arm_vcvtnq_m_s16_f16): Likewise. | |
30730 | (__arm_vcvtpq_m_s16_f16): Likewise. | |
30731 | (__arm_vcvtq_m_s16_f16): Likewise. | |
30732 | (__arm_vdupq_m_n_f16): Likewise. | |
30733 | (__arm_vmaxnmaq_m_f16): Likewise. | |
30734 | (__arm_vmaxnmavq_p_f16): Likewise. | |
30735 | (__arm_vmaxnmvq_p_f16): Likewise. | |
30736 | (__arm_vminnmaq_m_f16): Likewise. | |
30737 | (__arm_vminnmavq_p_f16): Likewise. | |
30738 | (__arm_vminnmvq_p_f16): Likewise. | |
30739 | (__arm_vnegq_m_f16): Likewise. | |
30740 | (__arm_vpselq_f16): Likewise. | |
30741 | (__arm_vrev64q_m_f16): Likewise. | |
30742 | (__arm_vrndaq_m_f16): Likewise. | |
30743 | (__arm_vrndmq_m_f16): Likewise. | |
30744 | (__arm_vrndnq_m_f16): Likewise. | |
30745 | (__arm_vrndpq_m_f16): Likewise. | |
30746 | (__arm_vrndq_m_f16): Likewise. | |
30747 | (__arm_vrndxq_m_f16): Likewise. | |
30748 | (__arm_vcmpeqq_m_n_f16): Likewise. | |
30749 | (__arm_vcmpgeq_m_f16): Likewise. | |
30750 | (__arm_vcmpgeq_m_n_f16): Likewise. | |
30751 | (__arm_vcmpgtq_m_f16): Likewise. | |
30752 | (__arm_vcmpgtq_m_n_f16): Likewise. | |
30753 | (__arm_vcmpleq_m_f16): Likewise. | |
30754 | (__arm_vcmpleq_m_n_f16): Likewise. | |
30755 | (__arm_vcmpltq_m_f16): Likewise. | |
30756 | (__arm_vcmpltq_m_n_f16): Likewise. | |
30757 | (__arm_vcmpneq_m_f16): Likewise. | |
30758 | (__arm_vcmpneq_m_n_f16): Likewise. | |
30759 | (__arm_vcvtmq_m_u16_f16): Likewise. | |
30760 | (__arm_vcvtnq_m_u16_f16): Likewise. | |
30761 | (__arm_vcvtpq_m_u16_f16): Likewise. | |
30762 | (__arm_vcvtq_m_u16_f16): Likewise. | |
30763 | (__arm_vcmlaq_f32): Likewise. | |
30764 | (__arm_vcmlaq_rot180_f32): Likewise. | |
30765 | (__arm_vcmlaq_rot270_f32): Likewise. | |
30766 | (__arm_vcmlaq_rot90_f32): Likewise. | |
30767 | (__arm_vfmaq_f32): Likewise. | |
30768 | (__arm_vfmaq_n_f32): Likewise. | |
30769 | (__arm_vfmasq_n_f32): Likewise. | |
30770 | (__arm_vfmsq_f32): Likewise. | |
30771 | (__arm_vabsq_m_f32): Likewise. | |
30772 | (__arm_vcvtmq_m_s32_f32): Likewise. | |
30773 | (__arm_vcvtnq_m_s32_f32): Likewise. | |
30774 | (__arm_vcvtpq_m_s32_f32): Likewise. | |
30775 | (__arm_vcvtq_m_s32_f32): Likewise. | |
30776 | (__arm_vdupq_m_n_f32): Likewise. | |
30777 | (__arm_vmaxnmaq_m_f32): Likewise. | |
30778 | (__arm_vmaxnmavq_p_f32): Likewise. | |
30779 | (__arm_vmaxnmvq_p_f32): Likewise. | |
30780 | (__arm_vminnmaq_m_f32): Likewise. | |
30781 | (__arm_vminnmavq_p_f32): Likewise. | |
30782 | (__arm_vminnmvq_p_f32): Likewise. | |
30783 | (__arm_vnegq_m_f32): Likewise. | |
30784 | (__arm_vpselq_f32): Likewise. | |
30785 | (__arm_vrev64q_m_f32): Likewise. | |
30786 | (__arm_vrndaq_m_f32): Likewise. | |
30787 | (__arm_vrndmq_m_f32): Likewise. | |
30788 | (__arm_vrndnq_m_f32): Likewise. | |
30789 | (__arm_vrndpq_m_f32): Likewise. | |
30790 | (__arm_vrndq_m_f32): Likewise. | |
30791 | (__arm_vrndxq_m_f32): Likewise. | |
30792 | (__arm_vcmpeqq_m_n_f32): Likewise. | |
30793 | (__arm_vcmpgeq_m_f32): Likewise. | |
30794 | (__arm_vcmpgeq_m_n_f32): Likewise. | |
30795 | (__arm_vcmpgtq_m_f32): Likewise. | |
30796 | (__arm_vcmpgtq_m_n_f32): Likewise. | |
30797 | (__arm_vcmpleq_m_f32): Likewise. | |
30798 | (__arm_vcmpleq_m_n_f32): Likewise. | |
30799 | (__arm_vcmpltq_m_f32): Likewise. | |
30800 | (__arm_vcmpltq_m_n_f32): Likewise. | |
30801 | (__arm_vcmpneq_m_f32): Likewise. | |
30802 | (__arm_vcmpneq_m_n_f32): Likewise. | |
30803 | (__arm_vcvtmq_m_u32_f32): Likewise. | |
30804 | (__arm_vcvtnq_m_u32_f32): Likewise. | |
30805 | (__arm_vcvtpq_m_u32_f32): Likewise. | |
30806 | (__arm_vcvtq_m_u32_f32): Likewise. | |
30807 | (vcvtq_m): Define polymorphic variant. | |
30808 | (vabsq_m): Likewise. | |
30809 | (vcmlaq): Likewise. | |
30810 | (vcmlaq_rot180): Likewise. | |
30811 | (vcmlaq_rot270): Likewise. | |
30812 | (vcmlaq_rot90): Likewise. | |
30813 | (vcmpeqq_m_n): Likewise. | |
30814 | (vcmpgeq_m_n): Likewise. | |
30815 | (vrndxq_m): Likewise. | |
30816 | (vrndq_m): Likewise. | |
30817 | (vrndpq_m): Likewise. | |
30818 | (vcmpgtq_m_n): Likewise. | |
30819 | (vcmpgtq_m): Likewise. | |
30820 | (vcmpleq_m): Likewise. | |
30821 | (vcmpleq_m_n): Likewise. | |
30822 | (vcmpltq_m_n): Likewise. | |
30823 | (vcmpltq_m): Likewise. | |
30824 | (vcmpneq_m): Likewise. | |
30825 | (vcmpneq_m_n): Likewise. | |
30826 | (vcvtbq_m): Likewise. | |
30827 | (vcvttq_m): Likewise. | |
30828 | (vcvtmq_m): Likewise. | |
30829 | (vcvtnq_m): Likewise. | |
30830 | (vcvtpq_m): Likewise. | |
30831 | (vdupq_m_n): Likewise. | |
30832 | (vfmaq_n): Likewise. | |
30833 | (vfmaq): Likewise. | |
30834 | (vfmasq_n): Likewise. | |
30835 | (vfmsq): Likewise. | |
30836 | (vmaxnmaq_m): Likewise. | |
30837 | (vmaxnmavq_m): Likewise. | |
30838 | (vmaxnmvq_m): Likewise. | |
30839 | (vmaxnmavq_p): Likewise. | |
30840 | (vmaxnmvq_p): Likewise. | |
30841 | (vminnmaq_m): Likewise. | |
30842 | (vminnmavq_p): Likewise. | |
30843 | (vminnmvq_p): Likewise. | |
30844 | (vrndnq_m): Likewise. | |
30845 | (vrndaq_m): Likewise. | |
30846 | (vrndmq_m): Likewise. | |
30847 | (vrev64q_m): Likewise. | |
30848 | (vrev32q_m): Likewise. | |
30849 | (vpselq): Likewise. | |
30850 | (vnegq_m): Likewise. | |
30851 | (vcmpgeq_m): Likewise. | |
30852 | (vshrntq_n): Likewise. | |
30853 | (vrshrntq_n): Likewise. | |
30854 | (vmovlbq_m): Likewise. | |
30855 | (vmovnbq_m): Likewise. | |
30856 | (vmovntq_m): Likewise. | |
30857 | (vmvnq_m_n): Likewise. | |
30858 | (vmvnq_m): Likewise. | |
30859 | (vshrnbq_n): Likewise. | |
30860 | (vrshrnbq_n): Likewise. | |
30861 | (vqshruntq_n): Likewise. | |
30862 | (vrev16q_m): Likewise. | |
30863 | (vqshrunbq_n): Likewise. | |
30864 | (vqshrntq_n): Likewise. | |
30865 | (vqrshruntq_n): Likewise. | |
30866 | (vqrshrntq_n): Likewise. | |
30867 | (vqshrnbq_n): Likewise. | |
30868 | (vqmovuntq_m): Likewise. | |
30869 | (vqmovntq_m): Likewise. | |
30870 | (vqmovnbq_m): Likewise. | |
30871 | (vorrq_m_n): Likewise. | |
30872 | (vmovltq_m): Likewise. | |
30873 | (vqmovunbq_m): Likewise. | |
30874 | (vaddlvaq_p): Likewise. | |
30875 | (vmlaldavaq): Likewise. | |
30876 | (vmlaldavaxq): Likewise. | |
30877 | (vmlaldavq_p): Likewise. | |
30878 | (vmlaldavxq_p): Likewise. | |
30879 | (vmlsldavaq): Likewise. | |
30880 | (vmlsldavaxq): Likewise. | |
30881 | (vmlsldavq_p): Likewise. | |
30882 | (vmlsldavxq_p): Likewise. | |
30883 | (vrmlaldavhaxq): Likewise. | |
30884 | (vrmlaldavhq_p): Likewise. | |
30885 | (vrmlaldavhxq_p): Likewise. | |
30886 | (vrmlsldavhaq): Likewise. | |
30887 | (vrmlsldavhaxq): Likewise. | |
30888 | (vrmlsldavhq_p): Likewise. | |
30889 | (vrmlsldavhxq_p): Likewise. | |
30890 | * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_IMM_UNONE): Use | |
30891 | builtin qualifier. | |
30892 | (TERNOP_NONE_NONE_NONE_IMM): Likewise. | |
30893 | (TERNOP_NONE_NONE_NONE_NONE): Likewise. | |
30894 | (TERNOP_NONE_NONE_NONE_UNONE): Likewise. | |
30895 | (TERNOP_UNONE_NONE_NONE_UNONE): Likewise. | |
30896 | (TERNOP_UNONE_UNONE_IMM_UNONE): Likewise. | |
30897 | (TERNOP_UNONE_UNONE_NONE_IMM): Likewise. | |
30898 | (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise. | |
30899 | (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise. | |
30900 | (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise. | |
30901 | * config/arm/mve.md (MVE_constraint3): Define mode attribute iterator. | |
30902 | (MVE_pred3): Likewise. | |
30903 | (MVE_constraint1): Likewise. | |
30904 | (MVE_pred1): Likewise. | |
30905 | (VMLALDAVQ_P): Define iterator. | |
30906 | (VQMOVNBQ_M): Likewise. | |
30907 | (VMOVLTQ_M): Likewise. | |
30908 | (VMOVNBQ_M): Likewise. | |
30909 | (VRSHRNTQ_N): Likewise. | |
30910 | (VORRQ_M_N): Likewise. | |
30911 | (VREV32Q_M): Likewise. | |
30912 | (VREV16Q_M): Likewise. | |
30913 | (VQRSHRNTQ_N): Likewise. | |
30914 | (VMOVNTQ_M): Likewise. | |
30915 | (VMOVLBQ_M): Likewise. | |
30916 | (VMLALDAVAQ): Likewise. | |
30917 | (VQSHRNBQ_N): Likewise. | |
30918 | (VSHRNBQ_N): Likewise. | |
30919 | (VRSHRNBQ_N): Likewise. | |
30920 | (VMLALDAVXQ_P): Likewise. | |
30921 | (VQMOVNTQ_M): Likewise. | |
30922 | (VMVNQ_M_N): Likewise. | |
30923 | (VQSHRNTQ_N): Likewise. | |
30924 | (VMLALDAVAXQ): Likewise. | |
30925 | (VSHRNTQ_N): Likewise. | |
30926 | (VCVTMQ_M): Likewise. | |
30927 | (VCVTNQ_M): Likewise. | |
30928 | (VCVTPQ_M): Likewise. | |
30929 | (VCVTQ_M_N_FROM_F): Likewise. | |
30930 | (VCVTQ_M_FROM_F): Likewise. | |
30931 | (VRMLALDAVHQ_P): Likewise. | |
30932 | (VADDLVAQ_P): Likewise. | |
30933 | (mve_vrndq_m_f<mode>): Define RTL pattern. | |
30934 | (mve_vabsq_m_f<mode>): Likewise. | |
30935 | (mve_vaddlvaq_p_<supf>v4si): Likewise. | |
30936 | (mve_vcmlaq_f<mode>): Likewise. | |
30937 | (mve_vcmlaq_rot180_f<mode>): Likewise. | |
30938 | (mve_vcmlaq_rot270_f<mode>): Likewise. | |
30939 | (mve_vcmlaq_rot90_f<mode>): Likewise. | |
30940 | (mve_vcmpeqq_m_n_f<mode>): Likewise. | |
30941 | (mve_vcmpgeq_m_f<mode>): Likewise. | |
30942 | (mve_vcmpgeq_m_n_f<mode>): Likewise. | |
30943 | (mve_vcmpgtq_m_f<mode>): Likewise. | |
30944 | (mve_vcmpgtq_m_n_f<mode>): Likewise. | |
30945 | (mve_vcmpleq_m_f<mode>): Likewise. | |
30946 | (mve_vcmpleq_m_n_f<mode>): Likewise. | |
30947 | (mve_vcmpltq_m_f<mode>): Likewise. | |
30948 | (mve_vcmpltq_m_n_f<mode>): Likewise. | |
30949 | (mve_vcmpneq_m_f<mode>): Likewise. | |
30950 | (mve_vcmpneq_m_n_f<mode>): Likewise. | |
30951 | (mve_vcvtbq_m_f16_f32v8hf): Likewise. | |
30952 | (mve_vcvtbq_m_f32_f16v4sf): Likewise. | |
30953 | (mve_vcvttq_m_f16_f32v8hf): Likewise. | |
30954 | (mve_vcvttq_m_f32_f16v4sf): Likewise. | |
30955 | (mve_vdupq_m_n_f<mode>): Likewise. | |
30956 | (mve_vfmaq_f<mode>): Likewise. | |
30957 | (mve_vfmaq_n_f<mode>): Likewise. | |
30958 | (mve_vfmasq_n_f<mode>): Likewise. | |
30959 | (mve_vfmsq_f<mode>): Likewise. | |
30960 | (mve_vmaxnmaq_m_f<mode>): Likewise. | |
30961 | (mve_vmaxnmavq_p_f<mode>): Likewise. | |
30962 | (mve_vmaxnmvq_p_f<mode>): Likewise. | |
30963 | (mve_vminnmaq_m_f<mode>): Likewise. | |
30964 | (mve_vminnmavq_p_f<mode>): Likewise. | |
30965 | (mve_vminnmvq_p_f<mode>): Likewise. | |
30966 | (mve_vmlaldavaq_<supf><mode>): Likewise. | |
30967 | (mve_vmlaldavaxq_<supf><mode>): Likewise. | |
30968 | (mve_vmlaldavq_p_<supf><mode>): Likewise. | |
30969 | (mve_vmlaldavxq_p_<supf><mode>): Likewise. | |
30970 | (mve_vmlsldavaq_s<mode>): Likewise. | |
30971 | (mve_vmlsldavaxq_s<mode>): Likewise. | |
30972 | (mve_vmlsldavq_p_s<mode>): Likewise. | |
30973 | (mve_vmlsldavxq_p_s<mode>): Likewise. | |
30974 | (mve_vmovlbq_m_<supf><mode>): Likewise. | |
30975 | (mve_vmovltq_m_<supf><mode>): Likewise. | |
30976 | (mve_vmovnbq_m_<supf><mode>): Likewise. | |
30977 | (mve_vmovntq_m_<supf><mode>): Likewise. | |
30978 | (mve_vmvnq_m_n_<supf><mode>): Likewise. | |
30979 | (mve_vnegq_m_f<mode>): Likewise. | |
30980 | (mve_vorrq_m_n_<supf><mode>): Likewise. | |
30981 | (mve_vpselq_f<mode>): Likewise. | |
30982 | (mve_vqmovnbq_m_<supf><mode>): Likewise. | |
30983 | (mve_vqmovntq_m_<supf><mode>): Likewise. | |
30984 | (mve_vqmovunbq_m_s<mode>): Likewise. | |
30985 | (mve_vqmovuntq_m_s<mode>): Likewise. | |
30986 | (mve_vqrshrntq_n_<supf><mode>): Likewise. | |
30987 | (mve_vqrshruntq_n_s<mode>): Likewise. | |
30988 | (mve_vqshrnbq_n_<supf><mode>): Likewise. | |
30989 | (mve_vqshrntq_n_<supf><mode>): Likewise. | |
30990 | (mve_vqshrunbq_n_s<mode>): Likewise. | |
30991 | (mve_vqshruntq_n_s<mode>): Likewise. | |
30992 | (mve_vrev32q_m_fv8hf): Likewise. | |
30993 | (mve_vrev32q_m_<supf><mode>): Likewise. | |
30994 | (mve_vrev64q_m_f<mode>): Likewise. | |
30995 | (mve_vrmlaldavhaxq_sv4si): Likewise. | |
30996 | (mve_vrmlaldavhxq_p_sv4si): Likewise. | |
30997 | (mve_vrmlsldavhaxq_sv4si): Likewise. | |
30998 | (mve_vrmlsldavhq_p_sv4si): Likewise. | |
30999 | (mve_vrmlsldavhxq_p_sv4si): Likewise. | |
31000 | (mve_vrndaq_m_f<mode>): Likewise. | |
31001 | (mve_vrndmq_m_f<mode>): Likewise. | |
31002 | (mve_vrndnq_m_f<mode>): Likewise. | |
31003 | (mve_vrndpq_m_f<mode>): Likewise. | |
31004 | (mve_vrndxq_m_f<mode>): Likewise. | |
31005 | (mve_vrshrnbq_n_<supf><mode>): Likewise. | |
31006 | (mve_vrshrntq_n_<supf><mode>): Likewise. | |
31007 | (mve_vshrnbq_n_<supf><mode>): Likewise. | |
31008 | (mve_vshrntq_n_<supf><mode>): Likewise. | |
31009 | (mve_vcvtmq_m_<supf><mode>): Likewise. | |
31010 | (mve_vcvtpq_m_<supf><mode>): Likewise. | |
31011 | (mve_vcvtnq_m_<supf><mode>): Likewise. | |
31012 | (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise. | |
31013 | (mve_vrev16q_m_<supf>v16qi): Likewise. | |
31014 | (mve_vcvtq_m_from_f_<supf><mode>): Likewise. | |
31015 | (mve_vrmlaldavhq_p_<supf>v4si): Likewise. | |
31016 | (mve_vrmlsldavhaq_sv4si): Likewise. | |
31017 | ||
31018 | 2020-03-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
31019 | Mihail Ionescu <mihail.ionescu@arm.com> | |
31020 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
31021 | ||
31022 | * config/arm/arm_mve.h (vpselq_u8): Define macro. | |
31023 | (vpselq_s8): Likewise. | |
31024 | (vrev64q_m_u8): Likewise. | |
31025 | (vqrdmlashq_n_u8): Likewise. | |
31026 | (vqrdmlahq_n_u8): Likewise. | |
31027 | (vqdmlahq_n_u8): Likewise. | |
31028 | (vmvnq_m_u8): Likewise. | |
31029 | (vmlasq_n_u8): Likewise. | |
31030 | (vmlaq_n_u8): Likewise. | |
31031 | (vmladavq_p_u8): Likewise. | |
31032 | (vmladavaq_u8): Likewise. | |
31033 | (vminvq_p_u8): Likewise. | |
31034 | (vmaxvq_p_u8): Likewise. | |
31035 | (vdupq_m_n_u8): Likewise. | |
31036 | (vcmpneq_m_u8): Likewise. | |
31037 | (vcmpneq_m_n_u8): Likewise. | |
31038 | (vcmphiq_m_u8): Likewise. | |
31039 | (vcmphiq_m_n_u8): Likewise. | |
31040 | (vcmpeqq_m_u8): Likewise. | |
31041 | (vcmpeqq_m_n_u8): Likewise. | |
31042 | (vcmpcsq_m_u8): Likewise. | |
31043 | (vcmpcsq_m_n_u8): Likewise. | |
31044 | (vclzq_m_u8): Likewise. | |
31045 | (vaddvaq_p_u8): Likewise. | |
31046 | (vsriq_n_u8): Likewise. | |
31047 | (vsliq_n_u8): Likewise. | |
31048 | (vshlq_m_r_u8): Likewise. | |
31049 | (vrshlq_m_n_u8): Likewise. | |
31050 | (vqshlq_m_r_u8): Likewise. | |
31051 | (vqrshlq_m_n_u8): Likewise. | |
31052 | (vminavq_p_s8): Likewise. | |
31053 | (vminaq_m_s8): Likewise. | |
31054 | (vmaxavq_p_s8): Likewise. | |
31055 | (vmaxaq_m_s8): Likewise. | |
31056 | (vcmpneq_m_s8): Likewise. | |
31057 | (vcmpneq_m_n_s8): Likewise. | |
31058 | (vcmpltq_m_s8): Likewise. | |
31059 | (vcmpltq_m_n_s8): Likewise. | |
31060 | (vcmpleq_m_s8): Likewise. | |
31061 | (vcmpleq_m_n_s8): Likewise. | |
31062 | (vcmpgtq_m_s8): Likewise. | |
31063 | (vcmpgtq_m_n_s8): Likewise. | |
31064 | (vcmpgeq_m_s8): Likewise. | |
31065 | (vcmpgeq_m_n_s8): Likewise. | |
31066 | (vcmpeqq_m_s8): Likewise. | |
31067 | (vcmpeqq_m_n_s8): Likewise. | |
31068 | (vshlq_m_r_s8): Likewise. | |
31069 | (vrshlq_m_n_s8): Likewise. | |
31070 | (vrev64q_m_s8): Likewise. | |
31071 | (vqshlq_m_r_s8): Likewise. | |
31072 | (vqrshlq_m_n_s8): Likewise. | |
31073 | (vqnegq_m_s8): Likewise. | |
31074 | (vqabsq_m_s8): Likewise. | |
31075 | (vnegq_m_s8): Likewise. | |
31076 | (vmvnq_m_s8): Likewise. | |
31077 | (vmlsdavxq_p_s8): Likewise. | |
31078 | (vmlsdavq_p_s8): Likewise. | |
31079 | (vmladavxq_p_s8): Likewise. | |
31080 | (vmladavq_p_s8): Likewise. | |
31081 | (vminvq_p_s8): Likewise. | |
31082 | (vmaxvq_p_s8): Likewise. | |
31083 | (vdupq_m_n_s8): Likewise. | |
31084 | (vclzq_m_s8): Likewise. | |
31085 | (vclsq_m_s8): Likewise. | |
31086 | (vaddvaq_p_s8): Likewise. | |
31087 | (vabsq_m_s8): Likewise. | |
31088 | (vqrdmlsdhxq_s8): Likewise. | |
31089 | (vqrdmlsdhq_s8): Likewise. | |
31090 | (vqrdmlashq_n_s8): Likewise. | |
31091 | (vqrdmlahq_n_s8): Likewise. | |
31092 | (vqrdmladhxq_s8): Likewise. | |
31093 | (vqrdmladhq_s8): Likewise. | |
31094 | (vqdmlsdhxq_s8): Likewise. | |
31095 | (vqdmlsdhq_s8): Likewise. | |
31096 | (vqdmlahq_n_s8): Likewise. | |
31097 | (vqdmladhxq_s8): Likewise. | |
31098 | (vqdmladhq_s8): Likewise. | |
31099 | (vmlsdavaxq_s8): Likewise. | |
31100 | (vmlsdavaq_s8): Likewise. | |
31101 | (vmlasq_n_s8): Likewise. | |
31102 | (vmlaq_n_s8): Likewise. | |
31103 | (vmladavaxq_s8): Likewise. | |
31104 | (vmladavaq_s8): Likewise. | |
31105 | (vsriq_n_s8): Likewise. | |
31106 | (vsliq_n_s8): Likewise. | |
31107 | (vpselq_u16): Likewise. | |
31108 | (vpselq_s16): Likewise. | |
31109 | (vrev64q_m_u16): Likewise. | |
31110 | (vqrdmlashq_n_u16): Likewise. | |
31111 | (vqrdmlahq_n_u16): Likewise. | |
31112 | (vqdmlahq_n_u16): Likewise. | |
31113 | (vmvnq_m_u16): Likewise. | |
31114 | (vmlasq_n_u16): Likewise. | |
31115 | (vmlaq_n_u16): Likewise. | |
31116 | (vmladavq_p_u16): Likewise. | |
31117 | (vmladavaq_u16): Likewise. | |
31118 | (vminvq_p_u16): Likewise. | |
31119 | (vmaxvq_p_u16): Likewise. | |
31120 | (vdupq_m_n_u16): Likewise. | |
31121 | (vcmpneq_m_u16): Likewise. | |
31122 | (vcmpneq_m_n_u16): Likewise. | |
31123 | (vcmphiq_m_u16): Likewise. | |
31124 | (vcmphiq_m_n_u16): Likewise. | |
31125 | (vcmpeqq_m_u16): Likewise. | |
31126 | (vcmpeqq_m_n_u16): Likewise. | |
31127 | (vcmpcsq_m_u16): Likewise. | |
31128 | (vcmpcsq_m_n_u16): Likewise. | |
31129 | (vclzq_m_u16): Likewise. | |
31130 | (vaddvaq_p_u16): Likewise. | |
31131 | (vsriq_n_u16): Likewise. | |
31132 | (vsliq_n_u16): Likewise. | |
31133 | (vshlq_m_r_u16): Likewise. | |
31134 | (vrshlq_m_n_u16): Likewise. | |
31135 | (vqshlq_m_r_u16): Likewise. | |
31136 | (vqrshlq_m_n_u16): Likewise. | |
31137 | (vminavq_p_s16): Likewise. | |
31138 | (vminaq_m_s16): Likewise. | |
31139 | (vmaxavq_p_s16): Likewise. | |
31140 | (vmaxaq_m_s16): Likewise. | |
31141 | (vcmpneq_m_s16): Likewise. | |
31142 | (vcmpneq_m_n_s16): Likewise. | |
31143 | (vcmpltq_m_s16): Likewise. | |
31144 | (vcmpltq_m_n_s16): Likewise. | |
31145 | (vcmpleq_m_s16): Likewise. | |
31146 | (vcmpleq_m_n_s16): Likewise. | |
31147 | (vcmpgtq_m_s16): Likewise. | |
31148 | (vcmpgtq_m_n_s16): Likewise. | |
31149 | (vcmpgeq_m_s16): Likewise. | |
31150 | (vcmpgeq_m_n_s16): Likewise. | |
31151 | (vcmpeqq_m_s16): Likewise. | |
31152 | (vcmpeqq_m_n_s16): Likewise. | |
31153 | (vshlq_m_r_s16): Likewise. | |
31154 | (vrshlq_m_n_s16): Likewise. | |
31155 | (vrev64q_m_s16): Likewise. | |
31156 | (vqshlq_m_r_s16): Likewise. | |
31157 | (vqrshlq_m_n_s16): Likewise. | |
31158 | (vqnegq_m_s16): Likewise. | |
31159 | (vqabsq_m_s16): Likewise. | |
31160 | (vnegq_m_s16): Likewise. | |
31161 | (vmvnq_m_s16): Likewise. | |
31162 | (vmlsdavxq_p_s16): Likewise. | |
31163 | (vmlsdavq_p_s16): Likewise. | |
31164 | (vmladavxq_p_s16): Likewise. | |
31165 | (vmladavq_p_s16): Likewise. | |
31166 | (vminvq_p_s16): Likewise. | |
31167 | (vmaxvq_p_s16): Likewise. | |
31168 | (vdupq_m_n_s16): Likewise. | |
31169 | (vclzq_m_s16): Likewise. | |
31170 | (vclsq_m_s16): Likewise. | |
31171 | (vaddvaq_p_s16): Likewise. | |
31172 | (vabsq_m_s16): Likewise. | |
31173 | (vqrdmlsdhxq_s16): Likewise. | |
31174 | (vqrdmlsdhq_s16): Likewise. | |
31175 | (vqrdmlashq_n_s16): Likewise. | |
31176 | (vqrdmlahq_n_s16): Likewise. | |
31177 | (vqrdmladhxq_s16): Likewise. | |
31178 | (vqrdmladhq_s16): Likewise. | |
31179 | (vqdmlsdhxq_s16): Likewise. | |
31180 | (vqdmlsdhq_s16): Likewise. | |
31181 | (vqdmlahq_n_s16): Likewise. | |
31182 | (vqdmladhxq_s16): Likewise. | |
31183 | (vqdmladhq_s16): Likewise. | |
31184 | (vmlsdavaxq_s16): Likewise. | |
31185 | (vmlsdavaq_s16): Likewise. | |
31186 | (vmlasq_n_s16): Likewise. | |
31187 | (vmlaq_n_s16): Likewise. | |
31188 | (vmladavaxq_s16): Likewise. | |
31189 | (vmladavaq_s16): Likewise. | |
31190 | (vsriq_n_s16): Likewise. | |
31191 | (vsliq_n_s16): Likewise. | |
31192 | (vpselq_u32): Likewise. | |
31193 | (vpselq_s32): Likewise. | |
31194 | (vrev64q_m_u32): Likewise. | |
31195 | (vqrdmlashq_n_u32): Likewise. | |
31196 | (vqrdmlahq_n_u32): Likewise. | |
31197 | (vqdmlahq_n_u32): Likewise. | |
31198 | (vmvnq_m_u32): Likewise. | |
31199 | (vmlasq_n_u32): Likewise. | |
31200 | (vmlaq_n_u32): Likewise. | |
31201 | (vmladavq_p_u32): Likewise. | |
31202 | (vmladavaq_u32): Likewise. | |
31203 | (vminvq_p_u32): Likewise. | |
31204 | (vmaxvq_p_u32): Likewise. | |
31205 | (vdupq_m_n_u32): Likewise. | |
31206 | (vcmpneq_m_u32): Likewise. | |
31207 | (vcmpneq_m_n_u32): Likewise. | |
31208 | (vcmphiq_m_u32): Likewise. | |
31209 | (vcmphiq_m_n_u32): Likewise. | |
31210 | (vcmpeqq_m_u32): Likewise. | |
31211 | (vcmpeqq_m_n_u32): Likewise. | |
31212 | (vcmpcsq_m_u32): Likewise. | |
31213 | (vcmpcsq_m_n_u32): Likewise. | |
31214 | (vclzq_m_u32): Likewise. | |
31215 | (vaddvaq_p_u32): Likewise. | |
31216 | (vsriq_n_u32): Likewise. | |
31217 | (vsliq_n_u32): Likewise. | |
31218 | (vshlq_m_r_u32): Likewise. | |
31219 | (vrshlq_m_n_u32): Likewise. | |
31220 | (vqshlq_m_r_u32): Likewise. | |
31221 | (vqrshlq_m_n_u32): Likewise. | |
31222 | (vminavq_p_s32): Likewise. | |
31223 | (vminaq_m_s32): Likewise. | |
31224 | (vmaxavq_p_s32): Likewise. | |
31225 | (vmaxaq_m_s32): Likewise. | |
31226 | (vcmpneq_m_s32): Likewise. | |
31227 | (vcmpneq_m_n_s32): Likewise. | |
31228 | (vcmpltq_m_s32): Likewise. | |
31229 | (vcmpltq_m_n_s32): Likewise. | |
31230 | (vcmpleq_m_s32): Likewise. | |
31231 | (vcmpleq_m_n_s32): Likewise. | |
31232 | (vcmpgtq_m_s32): Likewise. | |
31233 | (vcmpgtq_m_n_s32): Likewise. | |
31234 | (vcmpgeq_m_s32): Likewise. | |
31235 | (vcmpgeq_m_n_s32): Likewise. | |
31236 | (vcmpeqq_m_s32): Likewise. | |
31237 | (vcmpeqq_m_n_s32): Likewise. | |
31238 | (vshlq_m_r_s32): Likewise. | |
31239 | (vrshlq_m_n_s32): Likewise. | |
31240 | (vrev64q_m_s32): Likewise. | |
31241 | (vqshlq_m_r_s32): Likewise. | |
31242 | (vqrshlq_m_n_s32): Likewise. | |
31243 | (vqnegq_m_s32): Likewise. | |
31244 | (vqabsq_m_s32): Likewise. | |
31245 | (vnegq_m_s32): Likewise. | |
31246 | (vmvnq_m_s32): Likewise. | |
31247 | (vmlsdavxq_p_s32): Likewise. | |
31248 | (vmlsdavq_p_s32): Likewise. | |
31249 | (vmladavxq_p_s32): Likewise. | |
31250 | (vmladavq_p_s32): Likewise. | |
31251 | (vminvq_p_s32): Likewise. | |
31252 | (vmaxvq_p_s32): Likewise. | |
31253 | (vdupq_m_n_s32): Likewise. | |
31254 | (vclzq_m_s32): Likewise. | |
31255 | (vclsq_m_s32): Likewise. | |
31256 | (vaddvaq_p_s32): Likewise. | |
31257 | (vabsq_m_s32): Likewise. | |
31258 | (vqrdmlsdhxq_s32): Likewise. | |
31259 | (vqrdmlsdhq_s32): Likewise. | |
31260 | (vqrdmlashq_n_s32): Likewise. | |
31261 | (vqrdmlahq_n_s32): Likewise. | |
31262 | (vqrdmladhxq_s32): Likewise. | |
31263 | (vqrdmladhq_s32): Likewise. | |
31264 | (vqdmlsdhxq_s32): Likewise. | |
31265 | (vqdmlsdhq_s32): Likewise. | |
31266 | (vqdmlahq_n_s32): Likewise. | |
31267 | (vqdmladhxq_s32): Likewise. | |
31268 | (vqdmladhq_s32): Likewise. | |
31269 | (vmlsdavaxq_s32): Likewise. | |
31270 | (vmlsdavaq_s32): Likewise. | |
31271 | (vmlasq_n_s32): Likewise. | |
31272 | (vmlaq_n_s32): Likewise. | |
31273 | (vmladavaxq_s32): Likewise. | |
31274 | (vmladavaq_s32): Likewise. | |
31275 | (vsriq_n_s32): Likewise. | |
31276 | (vsliq_n_s32): Likewise. | |
31277 | (vpselq_u64): Likewise. | |
31278 | (vpselq_s64): Likewise. | |
31279 | (__arm_vpselq_u8): Define intrinsic. | |
31280 | (__arm_vpselq_s8): Likewise. | |
31281 | (__arm_vrev64q_m_u8): Likewise. | |
31282 | (__arm_vqrdmlashq_n_u8): Likewise. | |
31283 | (__arm_vqrdmlahq_n_u8): Likewise. | |
31284 | (__arm_vqdmlahq_n_u8): Likewise. | |
31285 | (__arm_vmvnq_m_u8): Likewise. | |
31286 | (__arm_vmlasq_n_u8): Likewise. | |
31287 | (__arm_vmlaq_n_u8): Likewise. | |
31288 | (__arm_vmladavq_p_u8): Likewise. | |
31289 | (__arm_vmladavaq_u8): Likewise. | |
31290 | (__arm_vminvq_p_u8): Likewise. | |
31291 | (__arm_vmaxvq_p_u8): Likewise. | |
31292 | (__arm_vdupq_m_n_u8): Likewise. | |
31293 | (__arm_vcmpneq_m_u8): Likewise. | |
31294 | (__arm_vcmpneq_m_n_u8): Likewise. | |
31295 | (__arm_vcmphiq_m_u8): Likewise. | |
31296 | (__arm_vcmphiq_m_n_u8): Likewise. | |
31297 | (__arm_vcmpeqq_m_u8): Likewise. | |
31298 | (__arm_vcmpeqq_m_n_u8): Likewise. | |
31299 | (__arm_vcmpcsq_m_u8): Likewise. | |
31300 | (__arm_vcmpcsq_m_n_u8): Likewise. | |
31301 | (__arm_vclzq_m_u8): Likewise. | |
31302 | (__arm_vaddvaq_p_u8): Likewise. | |
31303 | (__arm_vsriq_n_u8): Likewise. | |
31304 | (__arm_vsliq_n_u8): Likewise. | |
31305 | (__arm_vshlq_m_r_u8): Likewise. | |
31306 | (__arm_vrshlq_m_n_u8): Likewise. | |
31307 | (__arm_vqshlq_m_r_u8): Likewise. | |
31308 | (__arm_vqrshlq_m_n_u8): Likewise. | |
31309 | (__arm_vminavq_p_s8): Likewise. | |
31310 | (__arm_vminaq_m_s8): Likewise. | |
31311 | (__arm_vmaxavq_p_s8): Likewise. | |
31312 | (__arm_vmaxaq_m_s8): Likewise. | |
31313 | (__arm_vcmpneq_m_s8): Likewise. | |
31314 | (__arm_vcmpneq_m_n_s8): Likewise. | |
31315 | (__arm_vcmpltq_m_s8): Likewise. | |
31316 | (__arm_vcmpltq_m_n_s8): Likewise. | |
31317 | (__arm_vcmpleq_m_s8): Likewise. | |
31318 | (__arm_vcmpleq_m_n_s8): Likewise. | |
31319 | (__arm_vcmpgtq_m_s8): Likewise. | |
31320 | (__arm_vcmpgtq_m_n_s8): Likewise. | |
31321 | (__arm_vcmpgeq_m_s8): Likewise. | |
31322 | (__arm_vcmpgeq_m_n_s8): Likewise. | |
31323 | (__arm_vcmpeqq_m_s8): Likewise. | |
31324 | (__arm_vcmpeqq_m_n_s8): Likewise. | |
31325 | (__arm_vshlq_m_r_s8): Likewise. | |
31326 | (__arm_vrshlq_m_n_s8): Likewise. | |
31327 | (__arm_vrev64q_m_s8): Likewise. | |
31328 | (__arm_vqshlq_m_r_s8): Likewise. | |
31329 | (__arm_vqrshlq_m_n_s8): Likewise. | |
31330 | (__arm_vqnegq_m_s8): Likewise. | |
31331 | (__arm_vqabsq_m_s8): Likewise. | |
31332 | (__arm_vnegq_m_s8): Likewise. | |
31333 | (__arm_vmvnq_m_s8): Likewise. | |
31334 | (__arm_vmlsdavxq_p_s8): Likewise. | |
31335 | (__arm_vmlsdavq_p_s8): Likewise. | |
31336 | (__arm_vmladavxq_p_s8): Likewise. | |
31337 | (__arm_vmladavq_p_s8): Likewise. | |
31338 | (__arm_vminvq_p_s8): Likewise. | |
31339 | (__arm_vmaxvq_p_s8): Likewise. | |
31340 | (__arm_vdupq_m_n_s8): Likewise. | |
31341 | (__arm_vclzq_m_s8): Likewise. | |
31342 | (__arm_vclsq_m_s8): Likewise. | |
31343 | (__arm_vaddvaq_p_s8): Likewise. | |
31344 | (__arm_vabsq_m_s8): Likewise. | |
31345 | (__arm_vqrdmlsdhxq_s8): Likewise. | |
31346 | (__arm_vqrdmlsdhq_s8): Likewise. | |
31347 | (__arm_vqrdmlashq_n_s8): Likewise. | |
31348 | (__arm_vqrdmlahq_n_s8): Likewise. | |
31349 | (__arm_vqrdmladhxq_s8): Likewise. | |
31350 | (__arm_vqrdmladhq_s8): Likewise. | |
31351 | (__arm_vqdmlsdhxq_s8): Likewise. | |
31352 | (__arm_vqdmlsdhq_s8): Likewise. | |
31353 | (__arm_vqdmlahq_n_s8): Likewise. | |
31354 | (__arm_vqdmladhxq_s8): Likewise. | |
31355 | (__arm_vqdmladhq_s8): Likewise. | |
31356 | (__arm_vmlsdavaxq_s8): Likewise. | |
31357 | (__arm_vmlsdavaq_s8): Likewise. | |
31358 | (__arm_vmlasq_n_s8): Likewise. | |
31359 | (__arm_vmlaq_n_s8): Likewise. | |
31360 | (__arm_vmladavaxq_s8): Likewise. | |
31361 | (__arm_vmladavaq_s8): Likewise. | |
31362 | (__arm_vsriq_n_s8): Likewise. | |
31363 | (__arm_vsliq_n_s8): Likewise. | |
31364 | (__arm_vpselq_u16): Likewise. | |
31365 | (__arm_vpselq_s16): Likewise. | |
31366 | (__arm_vrev64q_m_u16): Likewise. | |
31367 | (__arm_vqrdmlashq_n_u16): Likewise. | |
31368 | (__arm_vqrdmlahq_n_u16): Likewise. | |
31369 | (__arm_vqdmlahq_n_u16): Likewise. | |
31370 | (__arm_vmvnq_m_u16): Likewise. | |
31371 | (__arm_vmlasq_n_u16): Likewise. | |
31372 | (__arm_vmlaq_n_u16): Likewise. | |
31373 | (__arm_vmladavq_p_u16): Likewise. | |
31374 | (__arm_vmladavaq_u16): Likewise. | |
31375 | (__arm_vminvq_p_u16): Likewise. | |
31376 | (__arm_vmaxvq_p_u16): Likewise. | |
31377 | (__arm_vdupq_m_n_u16): Likewise. | |
31378 | (__arm_vcmpneq_m_u16): Likewise. | |
31379 | (__arm_vcmpneq_m_n_u16): Likewise. | |
31380 | (__arm_vcmphiq_m_u16): Likewise. | |
31381 | (__arm_vcmphiq_m_n_u16): Likewise. | |
31382 | (__arm_vcmpeqq_m_u16): Likewise. | |
31383 | (__arm_vcmpeqq_m_n_u16): Likewise. | |
31384 | (__arm_vcmpcsq_m_u16): Likewise. | |
31385 | (__arm_vcmpcsq_m_n_u16): Likewise. | |
31386 | (__arm_vclzq_m_u16): Likewise. | |
31387 | (__arm_vaddvaq_p_u16): Likewise. | |
31388 | (__arm_vsriq_n_u16): Likewise. | |
31389 | (__arm_vsliq_n_u16): Likewise. | |
31390 | (__arm_vshlq_m_r_u16): Likewise. | |
31391 | (__arm_vrshlq_m_n_u16): Likewise. | |
31392 | (__arm_vqshlq_m_r_u16): Likewise. | |
31393 | (__arm_vqrshlq_m_n_u16): Likewise. | |
31394 | (__arm_vminavq_p_s16): Likewise. | |
31395 | (__arm_vminaq_m_s16): Likewise. | |
31396 | (__arm_vmaxavq_p_s16): Likewise. | |
31397 | (__arm_vmaxaq_m_s16): Likewise. | |
31398 | (__arm_vcmpneq_m_s16): Likewise. | |
31399 | (__arm_vcmpneq_m_n_s16): Likewise. | |
31400 | (__arm_vcmpltq_m_s16): Likewise. | |
31401 | (__arm_vcmpltq_m_n_s16): Likewise. | |
31402 | (__arm_vcmpleq_m_s16): Likewise. | |
31403 | (__arm_vcmpleq_m_n_s16): Likewise. | |
31404 | (__arm_vcmpgtq_m_s16): Likewise. | |
31405 | (__arm_vcmpgtq_m_n_s16): Likewise. | |
31406 | (__arm_vcmpgeq_m_s16): Likewise. | |
31407 | (__arm_vcmpgeq_m_n_s16): Likewise. | |
31408 | (__arm_vcmpeqq_m_s16): Likewise. | |
31409 | (__arm_vcmpeqq_m_n_s16): Likewise. | |
31410 | (__arm_vshlq_m_r_s16): Likewise. | |
31411 | (__arm_vrshlq_m_n_s16): Likewise. | |
31412 | (__arm_vrev64q_m_s16): Likewise. | |
31413 | (__arm_vqshlq_m_r_s16): Likewise. | |
31414 | (__arm_vqrshlq_m_n_s16): Likewise. | |
31415 | (__arm_vqnegq_m_s16): Likewise. | |
31416 | (__arm_vqabsq_m_s16): Likewise. | |
31417 | (__arm_vnegq_m_s16): Likewise. | |
31418 | (__arm_vmvnq_m_s16): Likewise. | |
31419 | (__arm_vmlsdavxq_p_s16): Likewise. | |
31420 | (__arm_vmlsdavq_p_s16): Likewise. | |
31421 | (__arm_vmladavxq_p_s16): Likewise. | |
31422 | (__arm_vmladavq_p_s16): Likewise. | |
31423 | (__arm_vminvq_p_s16): Likewise. | |
31424 | (__arm_vmaxvq_p_s16): Likewise. | |
31425 | (__arm_vdupq_m_n_s16): Likewise. | |
31426 | (__arm_vclzq_m_s16): Likewise. | |
31427 | (__arm_vclsq_m_s16): Likewise. | |
31428 | (__arm_vaddvaq_p_s16): Likewise. | |
31429 | (__arm_vabsq_m_s16): Likewise. | |
31430 | (__arm_vqrdmlsdhxq_s16): Likewise. | |
31431 | (__arm_vqrdmlsdhq_s16): Likewise. | |
31432 | (__arm_vqrdmlashq_n_s16): Likewise. | |
31433 | (__arm_vqrdmlahq_n_s16): Likewise. | |
31434 | (__arm_vqrdmladhxq_s16): Likewise. | |
31435 | (__arm_vqrdmladhq_s16): Likewise. | |
31436 | (__arm_vqdmlsdhxq_s16): Likewise. | |
31437 | (__arm_vqdmlsdhq_s16): Likewise. | |
31438 | (__arm_vqdmlahq_n_s16): Likewise. | |
31439 | (__arm_vqdmladhxq_s16): Likewise. | |
31440 | (__arm_vqdmladhq_s16): Likewise. | |
31441 | (__arm_vmlsdavaxq_s16): Likewise. | |
31442 | (__arm_vmlsdavaq_s16): Likewise. | |
31443 | (__arm_vmlasq_n_s16): Likewise. | |
31444 | (__arm_vmlaq_n_s16): Likewise. | |
31445 | (__arm_vmladavaxq_s16): Likewise. | |
31446 | (__arm_vmladavaq_s16): Likewise. | |
31447 | (__arm_vsriq_n_s16): Likewise. | |
31448 | (__arm_vsliq_n_s16): Likewise. | |
31449 | (__arm_vpselq_u32): Likewise. | |
31450 | (__arm_vpselq_s32): Likewise. | |
31451 | (__arm_vrev64q_m_u32): Likewise. | |
31452 | (__arm_vqrdmlashq_n_u32): Likewise. | |
31453 | (__arm_vqrdmlahq_n_u32): Likewise. | |
31454 | (__arm_vqdmlahq_n_u32): Likewise. | |
31455 | (__arm_vmvnq_m_u32): Likewise. | |
31456 | (__arm_vmlasq_n_u32): Likewise. | |
31457 | (__arm_vmlaq_n_u32): Likewise. | |
31458 | (__arm_vmladavq_p_u32): Likewise. | |
31459 | (__arm_vmladavaq_u32): Likewise. | |
31460 | (__arm_vminvq_p_u32): Likewise. | |
31461 | (__arm_vmaxvq_p_u32): Likewise. | |
31462 | (__arm_vdupq_m_n_u32): Likewise. | |
31463 | (__arm_vcmpneq_m_u32): Likewise. | |
31464 | (__arm_vcmpneq_m_n_u32): Likewise. | |
31465 | (__arm_vcmphiq_m_u32): Likewise. | |
31466 | (__arm_vcmphiq_m_n_u32): Likewise. | |
31467 | (__arm_vcmpeqq_m_u32): Likewise. | |
31468 | (__arm_vcmpeqq_m_n_u32): Likewise. | |
31469 | (__arm_vcmpcsq_m_u32): Likewise. | |
31470 | (__arm_vcmpcsq_m_n_u32): Likewise. | |
31471 | (__arm_vclzq_m_u32): Likewise. | |
31472 | (__arm_vaddvaq_p_u32): Likewise. | |
31473 | (__arm_vsriq_n_u32): Likewise. | |
31474 | (__arm_vsliq_n_u32): Likewise. | |
31475 | (__arm_vshlq_m_r_u32): Likewise. | |
31476 | (__arm_vrshlq_m_n_u32): Likewise. | |
31477 | (__arm_vqshlq_m_r_u32): Likewise. | |
31478 | (__arm_vqrshlq_m_n_u32): Likewise. | |
31479 | (__arm_vminavq_p_s32): Likewise. | |
31480 | (__arm_vminaq_m_s32): Likewise. | |
31481 | (__arm_vmaxavq_p_s32): Likewise. | |
31482 | (__arm_vmaxaq_m_s32): Likewise. | |
31483 | (__arm_vcmpneq_m_s32): Likewise. | |
31484 | (__arm_vcmpneq_m_n_s32): Likewise. | |
31485 | (__arm_vcmpltq_m_s32): Likewise. | |
31486 | (__arm_vcmpltq_m_n_s32): Likewise. | |
31487 | (__arm_vcmpleq_m_s32): Likewise. | |
31488 | (__arm_vcmpleq_m_n_s32): Likewise. | |
31489 | (__arm_vcmpgtq_m_s32): Likewise. | |
31490 | (__arm_vcmpgtq_m_n_s32): Likewise. | |
31491 | (__arm_vcmpgeq_m_s32): Likewise. | |
31492 | (__arm_vcmpgeq_m_n_s32): Likewise. | |
31493 | (__arm_vcmpeqq_m_s32): Likewise. | |
31494 | (__arm_vcmpeqq_m_n_s32): Likewise. | |
31495 | (__arm_vshlq_m_r_s32): Likewise. | |
31496 | (__arm_vrshlq_m_n_s32): Likewise. | |
31497 | (__arm_vrev64q_m_s32): Likewise. | |
31498 | (__arm_vqshlq_m_r_s32): Likewise. | |
31499 | (__arm_vqrshlq_m_n_s32): Likewise. | |
31500 | (__arm_vqnegq_m_s32): Likewise. | |
31501 | (__arm_vqabsq_m_s32): Likewise. | |
31502 | (__arm_vnegq_m_s32): Likewise. | |
31503 | (__arm_vmvnq_m_s32): Likewise. | |
31504 | (__arm_vmlsdavxq_p_s32): Likewise. | |
31505 | (__arm_vmlsdavq_p_s32): Likewise. | |
31506 | (__arm_vmladavxq_p_s32): Likewise. | |
31507 | (__arm_vmladavq_p_s32): Likewise. | |
31508 | (__arm_vminvq_p_s32): Likewise. | |
31509 | (__arm_vmaxvq_p_s32): Likewise. | |
31510 | (__arm_vdupq_m_n_s32): Likewise. | |
31511 | (__arm_vclzq_m_s32): Likewise. | |
31512 | (__arm_vclsq_m_s32): Likewise. | |
31513 | (__arm_vaddvaq_p_s32): Likewise. | |
31514 | (__arm_vabsq_m_s32): Likewise. | |
31515 | (__arm_vqrdmlsdhxq_s32): Likewise. | |
31516 | (__arm_vqrdmlsdhq_s32): Likewise. | |
31517 | (__arm_vqrdmlashq_n_s32): Likewise. | |
31518 | (__arm_vqrdmlahq_n_s32): Likewise. | |
31519 | (__arm_vqrdmladhxq_s32): Likewise. | |
31520 | (__arm_vqrdmladhq_s32): Likewise. | |
31521 | (__arm_vqdmlsdhxq_s32): Likewise. | |
31522 | (__arm_vqdmlsdhq_s32): Likewise. | |
31523 | (__arm_vqdmlahq_n_s32): Likewise. | |
31524 | (__arm_vqdmladhxq_s32): Likewise. | |
31525 | (__arm_vqdmladhq_s32): Likewise. | |
31526 | (__arm_vmlsdavaxq_s32): Likewise. | |
31527 | (__arm_vmlsdavaq_s32): Likewise. | |
31528 | (__arm_vmlasq_n_s32): Likewise. | |
31529 | (__arm_vmlaq_n_s32): Likewise. | |
31530 | (__arm_vmladavaxq_s32): Likewise. | |
31531 | (__arm_vmladavaq_s32): Likewise. | |
31532 | (__arm_vsriq_n_s32): Likewise. | |
31533 | (__arm_vsliq_n_s32): Likewise. | |
31534 | (__arm_vpselq_u64): Likewise. | |
31535 | (__arm_vpselq_s64): Likewise. | |
31536 | (vcmpneq_m_n): Define polymorphic variant. | |
31537 | (vcmpneq_m): Likewise. | |
31538 | (vqrdmlsdhq): Likewise. | |
31539 | (vqrdmlsdhxq): Likewise. | |
31540 | (vqrshlq_m_n): Likewise. | |
31541 | (vqshlq_m_r): Likewise. | |
31542 | (vrev64q_m): Likewise. | |
31543 | (vrshlq_m_n): Likewise. | |
31544 | (vshlq_m_r): Likewise. | |
31545 | (vsliq_n): Likewise. | |
31546 | (vsriq_n): Likewise. | |
31547 | (vqrdmlashq_n): Likewise. | |
31548 | (vqrdmlahq): Likewise. | |
31549 | (vqrdmladhxq): Likewise. | |
31550 | (vqrdmladhq): Likewise. | |
31551 | (vqnegq_m): Likewise. | |
31552 | (vqdmlsdhxq): Likewise. | |
31553 | (vabsq_m): Likewise. | |
31554 | (vclsq_m): Likewise. | |
31555 | (vclzq_m): Likewise. | |
31556 | (vcmpgeq_m): Likewise. | |
31557 | (vcmpgeq_m_n): Likewise. | |
31558 | (vdupq_m_n): Likewise. | |
31559 | (vmaxaq_m): Likewise. | |
31560 | (vmlaq_n): Likewise. | |
31561 | (vmlasq_n): Likewise. | |
31562 | (vmvnq_m): Likewise. | |
31563 | (vnegq_m): Likewise. | |
31564 | (vpselq): Likewise. | |
31565 | (vqdmlahq_n): Likewise. | |
31566 | (vqrdmlahq_n): Likewise. | |
31567 | (vqdmlsdhq): Likewise. | |
31568 | (vqdmladhq): Likewise. | |
31569 | (vqabsq_m): Likewise. | |
31570 | (vminaq_m): Likewise. | |
31571 | (vrmlaldavhaq): Likewise. | |
31572 | (vmlsdavxq_p): Likewise. | |
31573 | (vmlsdavq_p): Likewise. | |
31574 | (vmlsdavaxq): Likewise. | |
31575 | (vmlsdavaq): Likewise. | |
31576 | (vaddvaq_p): Likewise. | |
31577 | (vcmpcsq_m_n): Likewise. | |
31578 | (vcmpcsq_m): Likewise. | |
31579 | (vcmpeqq_m_n): Likewise. | |
31580 | (vcmpeqq_m): Likewise. | |
31581 | (vmladavxq_p): Likewise. | |
31582 | (vmladavq_p): Likewise. | |
31583 | (vmladavaxq): Likewise. | |
31584 | (vmladavaq): Likewise. | |
31585 | (vminvq_p): Likewise. | |
31586 | (vminavq_p): Likewise. | |
31587 | (vmaxvq_p): Likewise. | |
31588 | (vmaxavq_p): Likewise. | |
31589 | (vcmpltq_m_n): Likewise. | |
31590 | (vcmpltq_m): Likewise. | |
31591 | (vcmpleq_m): Likewise. | |
31592 | (vcmpleq_m_n): Likewise. | |
31593 | (vcmphiq_m_n): Likewise. | |
31594 | (vcmphiq_m): Likewise. | |
31595 | (vcmpgtq_m_n): Likewise. | |
31596 | (vcmpgtq_m): Likewise. | |
31597 | * config/arm/arm_mve_builtins.def (TERNOP_NONE_NONE_NONE_IMM): Use | |
31598 | builtin qualifier. | |
31599 | (TERNOP_NONE_NONE_NONE_NONE): Likewise. | |
31600 | (TERNOP_NONE_NONE_NONE_UNONE): Likewise. | |
31601 | (TERNOP_UNONE_NONE_NONE_UNONE): Likewise. | |
31602 | (TERNOP_UNONE_UNONE_NONE_UNONE): Likewise. | |
31603 | (TERNOP_UNONE_UNONE_UNONE_IMM): Likewise. | |
31604 | (TERNOP_UNONE_UNONE_UNONE_UNONE): Likewise. | |
31605 | * config/arm/constraints.md (Rc): Define constraint to check constant is | |
31606 | in the range of 0 to 15. | |
31607 | (Re): Define constraint to check constant is in the range of 0 to 31. | |
31608 | * config/arm/mve.md (VADDVAQ_P): Define iterator. | |
31609 | (VCLZQ_M): Likewise. | |
31610 | (VCMPEQQ_M_N): Likewise. | |
31611 | (VCMPEQQ_M): Likewise. | |
31612 | (VCMPNEQ_M_N): Likewise. | |
31613 | (VCMPNEQ_M): Likewise. | |
31614 | (VDUPQ_M_N): Likewise. | |
31615 | (VMAXVQ_P): Likewise. | |
31616 | (VMINVQ_P): Likewise. | |
31617 | (VMLADAVAQ): Likewise. | |
31618 | (VMLADAVQ_P): Likewise. | |
31619 | (VMLAQ_N): Likewise. | |
31620 | (VMLASQ_N): Likewise. | |
31621 | (VMVNQ_M): Likewise. | |
31622 | (VPSELQ): Likewise. | |
31623 | (VQDMLAHQ_N): Likewise. | |
31624 | (VQRDMLAHQ_N): Likewise. | |
31625 | (VQRDMLASHQ_N): Likewise. | |
31626 | (VQRSHLQ_M_N): Likewise. | |
31627 | (VQSHLQ_M_R): Likewise. | |
31628 | (VREV64Q_M): Likewise. | |
31629 | (VRSHLQ_M_N): Likewise. | |
31630 | (VSHLQ_M_R): Likewise. | |
31631 | (VSLIQ_N): Likewise. | |
31632 | (VSRIQ_N): Likewise. | |
31633 | (mve_vabsq_m_s<mode>): Define RTL pattern. | |
31634 | (mve_vaddvaq_p_<supf><mode>): Likewise. | |
31635 | (mve_vclsq_m_s<mode>): Likewise. | |
31636 | (mve_vclzq_m_<supf><mode>): Likewise. | |
31637 | (mve_vcmpcsq_m_n_u<mode>): Likewise. | |
31638 | (mve_vcmpcsq_m_u<mode>): Likewise. | |
31639 | (mve_vcmpeqq_m_n_<supf><mode>): Likewise. | |
31640 | (mve_vcmpeqq_m_<supf><mode>): Likewise. | |
31641 | (mve_vcmpgeq_m_n_s<mode>): Likewise. | |
31642 | (mve_vcmpgeq_m_s<mode>): Likewise. | |
31643 | (mve_vcmpgtq_m_n_s<mode>): Likewise. | |
31644 | (mve_vcmpgtq_m_s<mode>): Likewise. | |
31645 | (mve_vcmphiq_m_n_u<mode>): Likewise. | |
31646 | (mve_vcmphiq_m_u<mode>): Likewise. | |
31647 | (mve_vcmpleq_m_n_s<mode>): Likewise. | |
31648 | (mve_vcmpleq_m_s<mode>): Likewise. | |
31649 | (mve_vcmpltq_m_n_s<mode>): Likewise. | |
31650 | (mve_vcmpltq_m_s<mode>): Likewise. | |
31651 | (mve_vcmpneq_m_n_<supf><mode>): Likewise. | |
31652 | (mve_vcmpneq_m_<supf><mode>): Likewise. | |
31653 | (mve_vdupq_m_n_<supf><mode>): Likewise. | |
31654 | (mve_vmaxaq_m_s<mode>): Likewise. | |
31655 | (mve_vmaxavq_p_s<mode>): Likewise. | |
31656 | (mve_vmaxvq_p_<supf><mode>): Likewise. | |
31657 | (mve_vminaq_m_s<mode>): Likewise. | |
31658 | (mve_vminavq_p_s<mode>): Likewise. | |
31659 | (mve_vminvq_p_<supf><mode>): Likewise. | |
31660 | (mve_vmladavaq_<supf><mode>): Likewise. | |
31661 | (mve_vmladavq_p_<supf><mode>): Likewise. | |
31662 | (mve_vmladavxq_p_s<mode>): Likewise. | |
31663 | (mve_vmlaq_n_<supf><mode>): Likewise. | |
31664 | (mve_vmlasq_n_<supf><mode>): Likewise. | |
31665 | (mve_vmlsdavq_p_s<mode>): Likewise. | |
31666 | (mve_vmlsdavxq_p_s<mode>): Likewise. | |
31667 | (mve_vmvnq_m_<supf><mode>): Likewise. | |
31668 | (mve_vnegq_m_s<mode>): Likewise. | |
31669 | (mve_vpselq_<supf><mode>): Likewise. | |
31670 | (mve_vqabsq_m_s<mode>): Likewise. | |
31671 | (mve_vqdmlahq_n_<supf><mode>): Likewise. | |
31672 | (mve_vqnegq_m_s<mode>): Likewise. | |
31673 | (mve_vqrdmladhq_s<mode>): Likewise. | |
31674 | (mve_vqrdmladhxq_s<mode>): Likewise. | |
31675 | (mve_vqrdmlahq_n_<supf><mode>): Likewise. | |
31676 | (mve_vqrdmlashq_n_<supf><mode>): Likewise. | |
31677 | (mve_vqrdmlsdhq_s<mode>): Likewise. | |
31678 | (mve_vqrdmlsdhxq_s<mode>): Likewise. | |
31679 | (mve_vqrshlq_m_n_<supf><mode>): Likewise. | |
31680 | (mve_vqshlq_m_r_<supf><mode>): Likewise. | |
31681 | (mve_vrev64q_m_<supf><mode>): Likewise. | |
31682 | (mve_vrshlq_m_n_<supf><mode>): Likewise. | |
31683 | (mve_vshlq_m_r_<supf><mode>): Likewise. | |
31684 | (mve_vsliq_n_<supf><mode>): Likewise. | |
31685 | (mve_vsriq_n_<supf><mode>): Likewise. | |
31686 | (mve_vqdmlsdhxq_s<mode>): Likewise. | |
31687 | (mve_vqdmlsdhq_s<mode>): Likewise. | |
31688 | (mve_vqdmladhxq_s<mode>): Likewise. | |
31689 | (mve_vqdmladhq_s<mode>): Likewise. | |
31690 | (mve_vmlsdavaxq_s<mode>): Likewise. | |
31691 | (mve_vmlsdavaq_s<mode>): Likewise. | |
31692 | (mve_vmladavaxq_s<mode>): Likewise. | |
31693 | * config/arm/predicates.md (mve_imm_15):Define predicate to check the | |
31694 | matching constraint Rc. | |
31695 | (mve_imm_31): Define predicate to check the matching constraint Re. | |
31696 | ||
31697 | 2020-03-18 Andrew Stubbs <ams@codesourcery.com> | |
31698 | ||
31699 | * config/gcn/gcn-valu.md (vec_cmp<mode>di): Set operand 1 to DImode. | |
31700 | (vec_cmp<mode>di_dup): Likewise. | |
31701 | * config/gcn/gcn.h (STORE_FLAG_VALUE): Set to -1. | |
31702 | ||
31703 | 2020-03-18 Andrew Stubbs <ams@codesourcery.com> | |
31704 | ||
31705 | * config/gcn/gcn-valu.md (COND_MODE): Delete. | |
31706 | (COND_INT_MODE): Delete. | |
31707 | (cond_op): Add "mult". | |
31708 | (cond_<expander><mode>): Use VEC_ALLREG_MODE. | |
31709 | (cond_<expander><mode>): Use VEC_ALLREG_INT_MODE. | |
31710 | ||
31711 | 2020-03-18 Richard Biener <rguenther@suse.de> | |
31712 | ||
31713 | PR middle-end/94206 | |
31714 | * gimple-fold.c (gimple_fold_builtin_memset): Avoid using | |
31715 | partial int modes or not mode-precision integer types for | |
31716 | the store. | |
31717 | ||
31718 | 2020-03-18 Jakub Jelinek <jakub@redhat.com> | |
31719 | ||
31720 | * asan.c (get_mem_refs_of_builtin_call): Fix up duplicated word issue | |
31721 | in a comment. | |
31722 | * config/arc/arc.c (frame_stack_add): Likewise. | |
31723 | * gimple-loop-versioning.cc (loop_versioning::analyze_arbitrary_term): | |
31724 | Likewise. | |
31725 | * ipa-predicate.c (predicate::remap_after_inlining): Likewise. | |
31726 | * tree-ssa-strlen.h (handle_printf_call): Likewise. | |
31727 | * tree-ssa-strlen.c (is_strlen_related_p): Likewise. | |
31728 | * optinfo-emit-json.cc (optrecord_json_writer::add_record): Likewise. | |
31729 | ||
31730 | 2020-03-18 Duan bo <duanbo3@huawei.com> | |
31731 | ||
31732 | PR target/94201 | |
31733 | * config/aarch64/aarch64.md (ldr_got_tiny): Delete. | |
31734 | (@ldr_got_tiny_<mode>): New pattern. | |
31735 | (ldr_got_tiny_sidi): Likewise. | |
31736 | * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Use | |
31737 | them to handle SYMBOL_TINY_GOT for ILP32. | |
31738 | ||
31739 | 2020-03-18 Richard Sandiford <richard.sandiford@arm.com> | |
31740 | ||
31741 | * config/aarch64/aarch64.c (aarch64_sve_abi): Treat p12-p15 as | |
31742 | call-preserved for SVE PCS functions. | |
31743 | (aarch64_layout_frame): Cope with up to 12 predicate save slots. | |
31744 | Optimize the case in which there are no following vector save slots. | |
31745 | ||
31746 | 2020-03-18 Richard Biener <rguenther@suse.de> | |
31747 | ||
31748 | PR middle-end/94188 | |
31749 | * fold-const.c (build_fold_addr_expr): Convert address to | |
31750 | correct type. | |
31751 | * asan.c (maybe_create_ssa_name): Strip useless type conversions. | |
31752 | * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use build1 | |
31753 | to build the ADDR_EXPR which we don't really want to simplify. | |
31754 | * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise. | |
31755 | * tree-ssa-loop-im.c (gather_mem_refs_stmt): Likewise. | |
31756 | * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Likewise. | |
31757 | (simplify_builtin_call): Strip useless type conversions. | |
31758 | * tree-ssa-strlen.c (new_strinfo): Likewise. | |
31759 | ||
31760 | 2020-03-17 Alexey Neyman <stilor@att.net> | |
31761 | ||
31762 | PR debug/93751 | |
31763 | * dwarf2out.c (gen_decl_die): Proceed to generating the DIE if | |
31764 | the debug level is terse and the declaration is public. Do not | |
31765 | generate type info. | |
31766 | (dwarf2out_decl): Same. | |
31767 | (add_type_attribute): Return immediately if debug level is | |
31768 | terse. | |
31769 | ||
31770 | 2020-03-17 Richard Sandiford <richard.sandiford@arm.com> | |
31771 | ||
31772 | * config/aarch64/iterators.md (Vmtype): Handle V4BF and V8BF. | |
31773 | ||
31774 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
31775 | Mihail Ionescu <mihail.ionescu@arm.com> | |
31776 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
31777 | ||
31778 | * config/arm/arm-builtins.c (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS): | |
31779 | Define qualifier for ternary operands. | |
31780 | (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise. | |
31781 | (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise. | |
31782 | (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise. | |
31783 | (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise. | |
31784 | (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise. | |
31785 | (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. | |
31786 | (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. | |
31787 | (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise. | |
31788 | (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. | |
31789 | (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. | |
31790 | (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
31791 | (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
31792 | (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise. | |
31793 | * config/arm/arm_mve.h (vabavq_s8): Define macro. | |
31794 | (vabavq_s16): Likewise. | |
31795 | (vabavq_s32): Likewise. | |
31796 | (vbicq_m_n_s16): Likewise. | |
31797 | (vbicq_m_n_s32): Likewise. | |
31798 | (vbicq_m_n_u16): Likewise. | |
31799 | (vbicq_m_n_u32): Likewise. | |
31800 | (vcmpeqq_m_f16): Likewise. | |
31801 | (vcmpeqq_m_f32): Likewise. | |
31802 | (vcvtaq_m_s16_f16): Likewise. | |
31803 | (vcvtaq_m_u16_f16): Likewise. | |
31804 | (vcvtaq_m_s32_f32): Likewise. | |
31805 | (vcvtaq_m_u32_f32): Likewise. | |
31806 | (vcvtq_m_f16_s16): Likewise. | |
31807 | (vcvtq_m_f16_u16): Likewise. | |
31808 | (vcvtq_m_f32_s32): Likewise. | |
31809 | (vcvtq_m_f32_u32): Likewise. | |
31810 | (vqrshrnbq_n_s16): Likewise. | |
31811 | (vqrshrnbq_n_u16): Likewise. | |
31812 | (vqrshrnbq_n_s32): Likewise. | |
31813 | (vqrshrnbq_n_u32): Likewise. | |
31814 | (vqrshrunbq_n_s16): Likewise. | |
31815 | (vqrshrunbq_n_s32): Likewise. | |
31816 | (vrmlaldavhaq_s32): Likewise. | |
31817 | (vrmlaldavhaq_u32): Likewise. | |
31818 | (vshlcq_s8): Likewise. | |
31819 | (vshlcq_u8): Likewise. | |
31820 | (vshlcq_s16): Likewise. | |
31821 | (vshlcq_u16): Likewise. | |
31822 | (vshlcq_s32): Likewise. | |
31823 | (vshlcq_u32): Likewise. | |
31824 | (vabavq_u8): Likewise. | |
31825 | (vabavq_u16): Likewise. | |
31826 | (vabavq_u32): Likewise. | |
31827 | (__arm_vabavq_s8): Define intrinsic. | |
31828 | (__arm_vabavq_s16): Likewise. | |
31829 | (__arm_vabavq_s32): Likewise. | |
31830 | (__arm_vabavq_u8): Likewise. | |
31831 | (__arm_vabavq_u16): Likewise. | |
31832 | (__arm_vabavq_u32): Likewise. | |
31833 | (__arm_vbicq_m_n_s16): Likewise. | |
31834 | (__arm_vbicq_m_n_s32): Likewise. | |
31835 | (__arm_vbicq_m_n_u16): Likewise. | |
31836 | (__arm_vbicq_m_n_u32): Likewise. | |
31837 | (__arm_vqrshrnbq_n_s16): Likewise. | |
31838 | (__arm_vqrshrnbq_n_u16): Likewise. | |
31839 | (__arm_vqrshrnbq_n_s32): Likewise. | |
31840 | (__arm_vqrshrnbq_n_u32): Likewise. | |
31841 | (__arm_vqrshrunbq_n_s16): Likewise. | |
31842 | (__arm_vqrshrunbq_n_s32): Likewise. | |
31843 | (__arm_vrmlaldavhaq_s32): Likewise. | |
31844 | (__arm_vrmlaldavhaq_u32): Likewise. | |
31845 | (__arm_vshlcq_s8): Likewise. | |
31846 | (__arm_vshlcq_u8): Likewise. | |
31847 | (__arm_vshlcq_s16): Likewise. | |
31848 | (__arm_vshlcq_u16): Likewise. | |
31849 | (__arm_vshlcq_s32): Likewise. | |
31850 | (__arm_vshlcq_u32): Likewise. | |
31851 | (__arm_vcmpeqq_m_f16): Likewise. | |
31852 | (__arm_vcmpeqq_m_f32): Likewise. | |
31853 | (__arm_vcvtaq_m_s16_f16): Likewise. | |
31854 | (__arm_vcvtaq_m_u16_f16): Likewise. | |
31855 | (__arm_vcvtaq_m_s32_f32): Likewise. | |
31856 | (__arm_vcvtaq_m_u32_f32): Likewise. | |
31857 | (__arm_vcvtq_m_f16_s16): Likewise. | |
31858 | (__arm_vcvtq_m_f16_u16): Likewise. | |
31859 | (__arm_vcvtq_m_f32_s32): Likewise. | |
31860 | (__arm_vcvtq_m_f32_u32): Likewise. | |
31861 | (vcvtaq_m): Define polymorphic variant. | |
31862 | (vcvtq_m): Likewise. | |
31863 | (vabavq): Likewise. | |
31864 | (vshlcq): Likewise. | |
31865 | (vbicq_m_n): Likewise. | |
31866 | (vqrshrnbq_n): Likewise. | |
31867 | (vqrshrunbq_n): Likewise. | |
31868 | * config/arm/arm_mve_builtins.def | |
31869 | (TERNOP_UNONE_UNONE_UNONE_IMM_QUALIFIERS): Use the builtin qualifer. | |
31870 | (TERNOP_UNONE_UNONE_NONE_NONE_QUALIFIERS): Likewise. | |
31871 | (TERNOP_UNONE_NONE_UNONE_IMM_QUALIFIERS): Likewise. | |
31872 | (TERNOP_NONE_NONE_UNONE_IMM_QUALIFIERS): Likewise. | |
31873 | (TERNOP_UNONE_UNONE_NONE_IMM_QUALIFIERS): Likewise. | |
31874 | (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Likewise. | |
31875 | (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Likewise. | |
31876 | (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. | |
31877 | (TERNOP_NONE_NONE_NONE_IMM_QUALIFIERS): Likewise. | |
31878 | (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Likewise. | |
31879 | (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Likewise. | |
31880 | (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
31881 | (TERNOP_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
31882 | (TERNOP_NONE_NONE_NONE_NONE_QUALIFIERS): Likewise. | |
31883 | * config/arm/mve.md (VBICQ_M_N): Define iterator. | |
31884 | (VCVTAQ_M): Likewise. | |
31885 | (VCVTQ_M_TO_F): Likewise. | |
31886 | (VQRSHRNBQ_N): Likewise. | |
31887 | (VABAVQ): Likewise. | |
31888 | (VSHLCQ): Likewise. | |
31889 | (VRMLALDAVHAQ): Likewise. | |
31890 | (mve_vbicq_m_n_<supf><mode>): Define RTL pattern. | |
31891 | (mve_vcmpeqq_m_f<mode>): Likewise. | |
31892 | (mve_vcvtaq_m_<supf><mode>): Likewise. | |
31893 | (mve_vcvtq_m_to_f_<supf><mode>): Likewise. | |
31894 | (mve_vqrshrnbq_n_<supf><mode>): Likewise. | |
31895 | (mve_vqrshrunbq_n_s<mode>): Likewise. | |
31896 | (mve_vrmlaldavhaq_<supf>v4si): Likewise. | |
31897 | (mve_vabavq_<supf><mode>): Likewise. | |
31898 | (mve_vshlcq_<supf><mode>): Likewise. | |
31899 | (mve_vshlcq_<supf><mode>): Likewise. | |
31900 | (mve_vshlcq_vec_<supf><mode>): Define RTL expand. | |
31901 | (mve_vshlcq_carry_<supf><mode>): Likewise. | |
31902 | ||
31903 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
31904 | Mihail Ionescu <mihail.ionescu@arm.com> | |
31905 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
31906 | ||
31907 | * config/arm/arm_mve.h (vqmovntq_u16): Define macro. | |
31908 | (vqmovnbq_u16): Likewise. | |
31909 | (vmulltq_poly_p8): Likewise. | |
31910 | (vmullbq_poly_p8): Likewise. | |
31911 | (vmovntq_u16): Likewise. | |
31912 | (vmovnbq_u16): Likewise. | |
31913 | (vmlaldavxq_u16): Likewise. | |
31914 | (vmlaldavq_u16): Likewise. | |
31915 | (vqmovuntq_s16): Likewise. | |
31916 | (vqmovunbq_s16): Likewise. | |
31917 | (vshlltq_n_u8): Likewise. | |
31918 | (vshllbq_n_u8): Likewise. | |
31919 | (vorrq_n_u16): Likewise. | |
31920 | (vbicq_n_u16): Likewise. | |
31921 | (vcmpneq_n_f16): Likewise. | |
31922 | (vcmpneq_f16): Likewise. | |
31923 | (vcmpltq_n_f16): Likewise. | |
31924 | (vcmpltq_f16): Likewise. | |
31925 | (vcmpleq_n_f16): Likewise. | |
31926 | (vcmpleq_f16): Likewise. | |
31927 | (vcmpgtq_n_f16): Likewise. | |
31928 | (vcmpgtq_f16): Likewise. | |
31929 | (vcmpgeq_n_f16): Likewise. | |
31930 | (vcmpgeq_f16): Likewise. | |
31931 | (vcmpeqq_n_f16): Likewise. | |
31932 | (vcmpeqq_f16): Likewise. | |
31933 | (vsubq_f16): Likewise. | |
31934 | (vqmovntq_s16): Likewise. | |
31935 | (vqmovnbq_s16): Likewise. | |
31936 | (vqdmulltq_s16): Likewise. | |
31937 | (vqdmulltq_n_s16): Likewise. | |
31938 | (vqdmullbq_s16): Likewise. | |
31939 | (vqdmullbq_n_s16): Likewise. | |
31940 | (vorrq_f16): Likewise. | |
31941 | (vornq_f16): Likewise. | |
31942 | (vmulq_n_f16): Likewise. | |
31943 | (vmulq_f16): Likewise. | |
31944 | (vmovntq_s16): Likewise. | |
31945 | (vmovnbq_s16): Likewise. | |
31946 | (vmlsldavxq_s16): Likewise. | |
31947 | (vmlsldavq_s16): Likewise. | |
31948 | (vmlaldavxq_s16): Likewise. | |
31949 | (vmlaldavq_s16): Likewise. | |
31950 | (vminnmvq_f16): Likewise. | |
31951 | (vminnmq_f16): Likewise. | |
31952 | (vminnmavq_f16): Likewise. | |
31953 | (vminnmaq_f16): Likewise. | |
31954 | (vmaxnmvq_f16): Likewise. | |
31955 | (vmaxnmq_f16): Likewise. | |
31956 | (vmaxnmavq_f16): Likewise. | |
31957 | (vmaxnmaq_f16): Likewise. | |
31958 | (veorq_f16): Likewise. | |
31959 | (vcmulq_rot90_f16): Likewise. | |
31960 | (vcmulq_rot270_f16): Likewise. | |
31961 | (vcmulq_rot180_f16): Likewise. | |
31962 | (vcmulq_f16): Likewise. | |
31963 | (vcaddq_rot90_f16): Likewise. | |
31964 | (vcaddq_rot270_f16): Likewise. | |
31965 | (vbicq_f16): Likewise. | |
31966 | (vandq_f16): Likewise. | |
31967 | (vaddq_n_f16): Likewise. | |
31968 | (vabdq_f16): Likewise. | |
31969 | (vshlltq_n_s8): Likewise. | |
31970 | (vshllbq_n_s8): Likewise. | |
31971 | (vorrq_n_s16): Likewise. | |
31972 | (vbicq_n_s16): Likewise. | |
31973 | (vqmovntq_u32): Likewise. | |
31974 | (vqmovnbq_u32): Likewise. | |
31975 | (vmulltq_poly_p16): Likewise. | |
31976 | (vmullbq_poly_p16): Likewise. | |
31977 | (vmovntq_u32): Likewise. | |
31978 | (vmovnbq_u32): Likewise. | |
31979 | (vmlaldavxq_u32): Likewise. | |
31980 | (vmlaldavq_u32): Likewise. | |
31981 | (vqmovuntq_s32): Likewise. | |
31982 | (vqmovunbq_s32): Likewise. | |
31983 | (vshlltq_n_u16): Likewise. | |
31984 | (vshllbq_n_u16): Likewise. | |
31985 | (vorrq_n_u32): Likewise. | |
31986 | (vbicq_n_u32): Likewise. | |
31987 | (vcmpneq_n_f32): Likewise. | |
31988 | (vcmpneq_f32): Likewise. | |
31989 | (vcmpltq_n_f32): Likewise. | |
31990 | (vcmpltq_f32): Likewise. | |
31991 | (vcmpleq_n_f32): Likewise. | |
31992 | (vcmpleq_f32): Likewise. | |
31993 | (vcmpgtq_n_f32): Likewise. | |
31994 | (vcmpgtq_f32): Likewise. | |
31995 | (vcmpgeq_n_f32): Likewise. | |
31996 | (vcmpgeq_f32): Likewise. | |
31997 | (vcmpeqq_n_f32): Likewise. | |
31998 | (vcmpeqq_f32): Likewise. | |
31999 | (vsubq_f32): Likewise. | |
32000 | (vqmovntq_s32): Likewise. | |
32001 | (vqmovnbq_s32): Likewise. | |
32002 | (vqdmulltq_s32): Likewise. | |
32003 | (vqdmulltq_n_s32): Likewise. | |
32004 | (vqdmullbq_s32): Likewise. | |
32005 | (vqdmullbq_n_s32): Likewise. | |
32006 | (vorrq_f32): Likewise. | |
32007 | (vornq_f32): Likewise. | |
32008 | (vmulq_n_f32): Likewise. | |
32009 | (vmulq_f32): Likewise. | |
32010 | (vmovntq_s32): Likewise. | |
32011 | (vmovnbq_s32): Likewise. | |
32012 | (vmlsldavxq_s32): Likewise. | |
32013 | (vmlsldavq_s32): Likewise. | |
32014 | (vmlaldavxq_s32): Likewise. | |
32015 | (vmlaldavq_s32): Likewise. | |
32016 | (vminnmvq_f32): Likewise. | |
32017 | (vminnmq_f32): Likewise. | |
32018 | (vminnmavq_f32): Likewise. | |
32019 | (vminnmaq_f32): Likewise. | |
32020 | (vmaxnmvq_f32): Likewise. | |
32021 | (vmaxnmq_f32): Likewise. | |
32022 | (vmaxnmavq_f32): Likewise. | |
32023 | (vmaxnmaq_f32): Likewise. | |
32024 | (veorq_f32): Likewise. | |
32025 | (vcmulq_rot90_f32): Likewise. | |
32026 | (vcmulq_rot270_f32): Likewise. | |
32027 | (vcmulq_rot180_f32): Likewise. | |
32028 | (vcmulq_f32): Likewise. | |
32029 | (vcaddq_rot90_f32): Likewise. | |
32030 | (vcaddq_rot270_f32): Likewise. | |
32031 | (vbicq_f32): Likewise. | |
32032 | (vandq_f32): Likewise. | |
32033 | (vaddq_n_f32): Likewise. | |
32034 | (vabdq_f32): Likewise. | |
32035 | (vshlltq_n_s16): Likewise. | |
32036 | (vshllbq_n_s16): Likewise. | |
32037 | (vorrq_n_s32): Likewise. | |
32038 | (vbicq_n_s32): Likewise. | |
32039 | (vrmlaldavhq_u32): Likewise. | |
32040 | (vctp8q_m): Likewise. | |
32041 | (vctp64q_m): Likewise. | |
32042 | (vctp32q_m): Likewise. | |
32043 | (vctp16q_m): Likewise. | |
32044 | (vaddlvaq_u32): Likewise. | |
32045 | (vrmlsldavhxq_s32): Likewise. | |
32046 | (vrmlsldavhq_s32): Likewise. | |
32047 | (vrmlaldavhxq_s32): Likewise. | |
32048 | (vrmlaldavhq_s32): Likewise. | |
32049 | (vcvttq_f16_f32): Likewise. | |
32050 | (vcvtbq_f16_f32): Likewise. | |
32051 | (vaddlvaq_s32): Likewise. | |
32052 | (__arm_vqmovntq_u16): Define intrinsic. | |
32053 | (__arm_vqmovnbq_u16): Likewise. | |
32054 | (__arm_vmulltq_poly_p8): Likewise. | |
32055 | (__arm_vmullbq_poly_p8): Likewise. | |
32056 | (__arm_vmovntq_u16): Likewise. | |
32057 | (__arm_vmovnbq_u16): Likewise. | |
32058 | (__arm_vmlaldavxq_u16): Likewise. | |
32059 | (__arm_vmlaldavq_u16): Likewise. | |
32060 | (__arm_vqmovuntq_s16): Likewise. | |
32061 | (__arm_vqmovunbq_s16): Likewise. | |
32062 | (__arm_vshlltq_n_u8): Likewise. | |
32063 | (__arm_vshllbq_n_u8): Likewise. | |
32064 | (__arm_vorrq_n_u16): Likewise. | |
32065 | (__arm_vbicq_n_u16): Likewise. | |
32066 | (__arm_vcmpneq_n_f16): Likewise. | |
32067 | (__arm_vcmpneq_f16): Likewise. | |
32068 | (__arm_vcmpltq_n_f16): Likewise. | |
32069 | (__arm_vcmpltq_f16): Likewise. | |
32070 | (__arm_vcmpleq_n_f16): Likewise. | |
32071 | (__arm_vcmpleq_f16): Likewise. | |
32072 | (__arm_vcmpgtq_n_f16): Likewise. | |
32073 | (__arm_vcmpgtq_f16): Likewise. | |
32074 | (__arm_vcmpgeq_n_f16): Likewise. | |
32075 | (__arm_vcmpgeq_f16): Likewise. | |
32076 | (__arm_vcmpeqq_n_f16): Likewise. | |
32077 | (__arm_vcmpeqq_f16): Likewise. | |
32078 | (__arm_vsubq_f16): Likewise. | |
32079 | (__arm_vqmovntq_s16): Likewise. | |
32080 | (__arm_vqmovnbq_s16): Likewise. | |
32081 | (__arm_vqdmulltq_s16): Likewise. | |
32082 | (__arm_vqdmulltq_n_s16): Likewise. | |
32083 | (__arm_vqdmullbq_s16): Likewise. | |
32084 | (__arm_vqdmullbq_n_s16): Likewise. | |
32085 | (__arm_vorrq_f16): Likewise. | |
32086 | (__arm_vornq_f16): Likewise. | |
32087 | (__arm_vmulq_n_f16): Likewise. | |
32088 | (__arm_vmulq_f16): Likewise. | |
32089 | (__arm_vmovntq_s16): Likewise. | |
32090 | (__arm_vmovnbq_s16): Likewise. | |
32091 | (__arm_vmlsldavxq_s16): Likewise. | |
32092 | (__arm_vmlsldavq_s16): Likewise. | |
32093 | (__arm_vmlaldavxq_s16): Likewise. | |
32094 | (__arm_vmlaldavq_s16): Likewise. | |
32095 | (__arm_vminnmvq_f16): Likewise. | |
32096 | (__arm_vminnmq_f16): Likewise. | |
32097 | (__arm_vminnmavq_f16): Likewise. | |
32098 | (__arm_vminnmaq_f16): Likewise. | |
32099 | (__arm_vmaxnmvq_f16): Likewise. | |
32100 | (__arm_vmaxnmq_f16): Likewise. | |
32101 | (__arm_vmaxnmavq_f16): Likewise. | |
32102 | (__arm_vmaxnmaq_f16): Likewise. | |
32103 | (__arm_veorq_f16): Likewise. | |
32104 | (__arm_vcmulq_rot90_f16): Likewise. | |
32105 | (__arm_vcmulq_rot270_f16): Likewise. | |
32106 | (__arm_vcmulq_rot180_f16): Likewise. | |
32107 | (__arm_vcmulq_f16): Likewise. | |
32108 | (__arm_vcaddq_rot90_f16): Likewise. | |
32109 | (__arm_vcaddq_rot270_f16): Likewise. | |
32110 | (__arm_vbicq_f16): Likewise. | |
32111 | (__arm_vandq_f16): Likewise. | |
32112 | (__arm_vaddq_n_f16): Likewise. | |
32113 | (__arm_vabdq_f16): Likewise. | |
32114 | (__arm_vshlltq_n_s8): Likewise. | |
32115 | (__arm_vshllbq_n_s8): Likewise. | |
32116 | (__arm_vorrq_n_s16): Likewise. | |
32117 | (__arm_vbicq_n_s16): Likewise. | |
32118 | (__arm_vqmovntq_u32): Likewise. | |
32119 | (__arm_vqmovnbq_u32): Likewise. | |
32120 | (__arm_vmulltq_poly_p16): Likewise. | |
32121 | (__arm_vmullbq_poly_p16): Likewise. | |
32122 | (__arm_vmovntq_u32): Likewise. | |
32123 | (__arm_vmovnbq_u32): Likewise. | |
32124 | (__arm_vmlaldavxq_u32): Likewise. | |
32125 | (__arm_vmlaldavq_u32): Likewise. | |
32126 | (__arm_vqmovuntq_s32): Likewise. | |
32127 | (__arm_vqmovunbq_s32): Likewise. | |
32128 | (__arm_vshlltq_n_u16): Likewise. | |
32129 | (__arm_vshllbq_n_u16): Likewise. | |
32130 | (__arm_vorrq_n_u32): Likewise. | |
32131 | (__arm_vbicq_n_u32): Likewise. | |
32132 | (__arm_vcmpneq_n_f32): Likewise. | |
32133 | (__arm_vcmpneq_f32): Likewise. | |
32134 | (__arm_vcmpltq_n_f32): Likewise. | |
32135 | (__arm_vcmpltq_f32): Likewise. | |
32136 | (__arm_vcmpleq_n_f32): Likewise. | |
32137 | (__arm_vcmpleq_f32): Likewise. | |
32138 | (__arm_vcmpgtq_n_f32): Likewise. | |
32139 | (__arm_vcmpgtq_f32): Likewise. | |
32140 | (__arm_vcmpgeq_n_f32): Likewise. | |
32141 | (__arm_vcmpgeq_f32): Likewise. | |
32142 | (__arm_vcmpeqq_n_f32): Likewise. | |
32143 | (__arm_vcmpeqq_f32): Likewise. | |
32144 | (__arm_vsubq_f32): Likewise. | |
32145 | (__arm_vqmovntq_s32): Likewise. | |
32146 | (__arm_vqmovnbq_s32): Likewise. | |
32147 | (__arm_vqdmulltq_s32): Likewise. | |
32148 | (__arm_vqdmulltq_n_s32): Likewise. | |
32149 | (__arm_vqdmullbq_s32): Likewise. | |
32150 | (__arm_vqdmullbq_n_s32): Likewise. | |
32151 | (__arm_vorrq_f32): Likewise. | |
32152 | (__arm_vornq_f32): Likewise. | |
32153 | (__arm_vmulq_n_f32): Likewise. | |
32154 | (__arm_vmulq_f32): Likewise. | |
32155 | (__arm_vmovntq_s32): Likewise. | |
32156 | (__arm_vmovnbq_s32): Likewise. | |
32157 | (__arm_vmlsldavxq_s32): Likewise. | |
32158 | (__arm_vmlsldavq_s32): Likewise. | |
32159 | (__arm_vmlaldavxq_s32): Likewise. | |
32160 | (__arm_vmlaldavq_s32): Likewise. | |
32161 | (__arm_vminnmvq_f32): Likewise. | |
32162 | (__arm_vminnmq_f32): Likewise. | |
32163 | (__arm_vminnmavq_f32): Likewise. | |
32164 | (__arm_vminnmaq_f32): Likewise. | |
32165 | (__arm_vmaxnmvq_f32): Likewise. | |
32166 | (__arm_vmaxnmq_f32): Likewise. | |
32167 | (__arm_vmaxnmavq_f32): Likewise. | |
32168 | (__arm_vmaxnmaq_f32): Likewise. | |
32169 | (__arm_veorq_f32): Likewise. | |
32170 | (__arm_vcmulq_rot90_f32): Likewise. | |
32171 | (__arm_vcmulq_rot270_f32): Likewise. | |
32172 | (__arm_vcmulq_rot180_f32): Likewise. | |
32173 | (__arm_vcmulq_f32): Likewise. | |
32174 | (__arm_vcaddq_rot90_f32): Likewise. | |
32175 | (__arm_vcaddq_rot270_f32): Likewise. | |
32176 | (__arm_vbicq_f32): Likewise. | |
32177 | (__arm_vandq_f32): Likewise. | |
32178 | (__arm_vaddq_n_f32): Likewise. | |
32179 | (__arm_vabdq_f32): Likewise. | |
32180 | (__arm_vshlltq_n_s16): Likewise. | |
32181 | (__arm_vshllbq_n_s16): Likewise. | |
32182 | (__arm_vorrq_n_s32): Likewise. | |
32183 | (__arm_vbicq_n_s32): Likewise. | |
32184 | (__arm_vrmlaldavhq_u32): Likewise. | |
32185 | (__arm_vctp8q_m): Likewise. | |
32186 | (__arm_vctp64q_m): Likewise. | |
32187 | (__arm_vctp32q_m): Likewise. | |
32188 | (__arm_vctp16q_m): Likewise. | |
32189 | (__arm_vaddlvaq_u32): Likewise. | |
32190 | (__arm_vrmlsldavhxq_s32): Likewise. | |
32191 | (__arm_vrmlsldavhq_s32): Likewise. | |
32192 | (__arm_vrmlaldavhxq_s32): Likewise. | |
32193 | (__arm_vrmlaldavhq_s32): Likewise. | |
32194 | (__arm_vcvttq_f16_f32): Likewise. | |
32195 | (__arm_vcvtbq_f16_f32): Likewise. | |
32196 | (__arm_vaddlvaq_s32): Likewise. | |
32197 | (vst4q): Define polymorphic variant. | |
32198 | (vrndxq): Likewise. | |
32199 | (vrndq): Likewise. | |
32200 | (vrndpq): Likewise. | |
32201 | (vrndnq): Likewise. | |
32202 | (vrndmq): Likewise. | |
32203 | (vrndaq): Likewise. | |
32204 | (vrev64q): Likewise. | |
32205 | (vnegq): Likewise. | |
32206 | (vdupq_n): Likewise. | |
32207 | (vabsq): Likewise. | |
32208 | (vrev32q): Likewise. | |
32209 | (vcvtbq_f32): Likewise. | |
32210 | (vcvttq_f32): Likewise. | |
32211 | (vcvtq): Likewise. | |
32212 | (vsubq_n): Likewise. | |
32213 | (vbrsrq_n): Likewise. | |
32214 | (vcvtq_n): Likewise. | |
32215 | (vsubq): Likewise. | |
32216 | (vorrq): Likewise. | |
32217 | (vabdq): Likewise. | |
32218 | (vaddq_n): Likewise. | |
32219 | (vandq): Likewise. | |
32220 | (vbicq): Likewise. | |
32221 | (vornq): Likewise. | |
32222 | (vmulq_n): Likewise. | |
32223 | (vmulq): Likewise. | |
32224 | (vcaddq_rot270): Likewise. | |
32225 | (vcmpeqq_n): Likewise. | |
32226 | (vcmpeqq): Likewise. | |
32227 | (vcaddq_rot90): Likewise. | |
32228 | (vcmpgeq_n): Likewise. | |
32229 | (vcmpgeq): Likewise. | |
32230 | (vcmpgtq_n): Likewise. | |
32231 | (vcmpgtq): Likewise. | |
32232 | (vcmpgtq): Likewise. | |
32233 | (vcmpleq_n): Likewise. | |
32234 | (vcmpleq_n): Likewise. | |
32235 | (vcmpleq): Likewise. | |
32236 | (vcmpleq): Likewise. | |
32237 | (vcmpltq_n): Likewise. | |
32238 | (vcmpltq_n): Likewise. | |
32239 | (vcmpltq): Likewise. | |
32240 | (vcmpltq): Likewise. | |
32241 | (vcmpneq_n): Likewise. | |
32242 | (vcmpneq_n): Likewise. | |
32243 | (vcmpneq): Likewise. | |
32244 | (vcmpneq): Likewise. | |
32245 | (vcmulq): Likewise. | |
32246 | (vcmulq): Likewise. | |
32247 | (vcmulq_rot180): Likewise. | |
32248 | (vcmulq_rot180): Likewise. | |
32249 | (vcmulq_rot270): Likewise. | |
32250 | (vcmulq_rot270): Likewise. | |
32251 | (vcmulq_rot90): Likewise. | |
32252 | (vcmulq_rot90): Likewise. | |
32253 | (veorq): Likewise. | |
32254 | (veorq): Likewise. | |
32255 | (vmaxnmaq): Likewise. | |
32256 | (vmaxnmaq): Likewise. | |
32257 | (vmaxnmavq): Likewise. | |
32258 | (vmaxnmavq): Likewise. | |
32259 | (vmaxnmq): Likewise. | |
32260 | (vmaxnmq): Likewise. | |
32261 | (vmaxnmvq): Likewise. | |
32262 | (vmaxnmvq): Likewise. | |
32263 | (vminnmaq): Likewise. | |
32264 | (vminnmaq): Likewise. | |
32265 | (vminnmavq): Likewise. | |
32266 | (vminnmavq): Likewise. | |
32267 | (vminnmq): Likewise. | |
32268 | (vminnmq): Likewise. | |
32269 | (vminnmvq): Likewise. | |
32270 | (vminnmvq): Likewise. | |
32271 | (vbicq_n): Likewise. | |
32272 | (vqmovntq): Likewise. | |
32273 | (vqmovntq): Likewise. | |
32274 | (vqmovnbq): Likewise. | |
32275 | (vqmovnbq): Likewise. | |
32276 | (vmulltq_poly): Likewise. | |
32277 | (vmulltq_poly): Likewise. | |
32278 | (vmullbq_poly): Likewise. | |
32279 | (vmullbq_poly): Likewise. | |
32280 | (vmovntq): Likewise. | |
32281 | (vmovntq): Likewise. | |
32282 | (vmovnbq): Likewise. | |
32283 | (vmovnbq): Likewise. | |
32284 | (vmlaldavxq): Likewise. | |
32285 | (vmlaldavxq): Likewise. | |
32286 | (vqmovuntq): Likewise. | |
32287 | (vqmovuntq): Likewise. | |
32288 | (vshlltq_n): Likewise. | |
32289 | (vshlltq_n): Likewise. | |
32290 | (vshllbq_n): Likewise. | |
32291 | (vshllbq_n): Likewise. | |
32292 | (vorrq_n): Likewise. | |
32293 | (vorrq_n): Likewise. | |
32294 | (vmlaldavq): Likewise. | |
32295 | (vmlaldavq): Likewise. | |
32296 | (vqmovunbq): Likewise. | |
32297 | (vqmovunbq): Likewise. | |
32298 | (vqdmulltq_n): Likewise. | |
32299 | (vqdmulltq_n): Likewise. | |
32300 | (vqdmulltq): Likewise. | |
32301 | (vqdmulltq): Likewise. | |
32302 | (vqdmullbq_n): Likewise. | |
32303 | (vqdmullbq_n): Likewise. | |
32304 | (vqdmullbq): Likewise. | |
32305 | (vqdmullbq): Likewise. | |
32306 | (vaddlvaq): Likewise. | |
32307 | (vaddlvaq): Likewise. | |
32308 | (vrmlaldavhq): Likewise. | |
32309 | (vrmlaldavhq): Likewise. | |
32310 | (vrmlaldavhxq): Likewise. | |
32311 | (vrmlaldavhxq): Likewise. | |
32312 | (vrmlsldavhq): Likewise. | |
32313 | (vrmlsldavhq): Likewise. | |
32314 | (vrmlsldavhxq): Likewise. | |
32315 | (vrmlsldavhxq): Likewise. | |
32316 | (vmlsldavxq): Likewise. | |
32317 | (vmlsldavxq): Likewise. | |
32318 | (vmlsldavq): Likewise. | |
32319 | (vmlsldavq): Likewise. | |
32320 | * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it. | |
32321 | (BINOP_NONE_NONE_NONE): Likewise. | |
32322 | (BINOP_UNONE_NONE_NONE): Likewise. | |
32323 | (BINOP_UNONE_UNONE_IMM): Likewise. | |
32324 | (BINOP_UNONE_UNONE_NONE): Likewise. | |
32325 | (BINOP_UNONE_UNONE_UNONE): Likewise. | |
32326 | * config/arm/mve.md (mve_vabdq_f<mode>): Define RTL pattern. | |
32327 | (mve_vaddlvaq_<supf>v4si): Likewise. | |
32328 | (mve_vaddq_n_f<mode>): Likewise. | |
32329 | (mve_vandq_f<mode>): Likewise. | |
32330 | (mve_vbicq_f<mode>): Likewise. | |
32331 | (mve_vbicq_n_<supf><mode>): Likewise. | |
32332 | (mve_vcaddq_rot270_f<mode>): Likewise. | |
32333 | (mve_vcaddq_rot90_f<mode>): Likewise. | |
32334 | (mve_vcmpeqq_f<mode>): Likewise. | |
32335 | (mve_vcmpeqq_n_f<mode>): Likewise. | |
32336 | (mve_vcmpgeq_f<mode>): Likewise. | |
32337 | (mve_vcmpgeq_n_f<mode>): Likewise. | |
32338 | (mve_vcmpgtq_f<mode>): Likewise. | |
32339 | (mve_vcmpgtq_n_f<mode>): Likewise. | |
32340 | (mve_vcmpleq_f<mode>): Likewise. | |
32341 | (mve_vcmpleq_n_f<mode>): Likewise. | |
32342 | (mve_vcmpltq_f<mode>): Likewise. | |
32343 | (mve_vcmpltq_n_f<mode>): Likewise. | |
32344 | (mve_vcmpneq_f<mode>): Likewise. | |
32345 | (mve_vcmpneq_n_f<mode>): Likewise. | |
32346 | (mve_vcmulq_f<mode>): Likewise. | |
32347 | (mve_vcmulq_rot180_f<mode>): Likewise. | |
32348 | (mve_vcmulq_rot270_f<mode>): Likewise. | |
32349 | (mve_vcmulq_rot90_f<mode>): Likewise. | |
32350 | (mve_vctp<mode1>q_mhi): Likewise. | |
32351 | (mve_vcvtbq_f16_f32v8hf): Likewise. | |
32352 | (mve_vcvttq_f16_f32v8hf): Likewise. | |
32353 | (mve_veorq_f<mode>): Likewise. | |
32354 | (mve_vmaxnmaq_f<mode>): Likewise. | |
32355 | (mve_vmaxnmavq_f<mode>): Likewise. | |
32356 | (mve_vmaxnmq_f<mode>): Likewise. | |
32357 | (mve_vmaxnmvq_f<mode>): Likewise. | |
32358 | (mve_vminnmaq_f<mode>): Likewise. | |
32359 | (mve_vminnmavq_f<mode>): Likewise. | |
32360 | (mve_vminnmq_f<mode>): Likewise. | |
32361 | (mve_vminnmvq_f<mode>): Likewise. | |
32362 | (mve_vmlaldavq_<supf><mode>): Likewise. | |
32363 | (mve_vmlaldavxq_<supf><mode>): Likewise. | |
32364 | (mve_vmlsldavq_s<mode>): Likewise. | |
32365 | (mve_vmlsldavxq_s<mode>): Likewise. | |
32366 | (mve_vmovnbq_<supf><mode>): Likewise. | |
32367 | (mve_vmovntq_<supf><mode>): Likewise. | |
32368 | (mve_vmulq_f<mode>): Likewise. | |
32369 | (mve_vmulq_n_f<mode>): Likewise. | |
32370 | (mve_vornq_f<mode>): Likewise. | |
32371 | (mve_vorrq_f<mode>): Likewise. | |
32372 | (mve_vorrq_n_<supf><mode>): Likewise. | |
32373 | (mve_vqdmullbq_n_s<mode>): Likewise. | |
32374 | (mve_vqdmullbq_s<mode>): Likewise. | |
32375 | (mve_vqdmulltq_n_s<mode>): Likewise. | |
32376 | (mve_vqdmulltq_s<mode>): Likewise. | |
32377 | (mve_vqmovnbq_<supf><mode>): Likewise. | |
32378 | (mve_vqmovntq_<supf><mode>): Likewise. | |
32379 | (mve_vqmovunbq_s<mode>): Likewise. | |
32380 | (mve_vqmovuntq_s<mode>): Likewise. | |
32381 | (mve_vrmlaldavhxq_sv4si): Likewise. | |
32382 | (mve_vrmlsldavhq_sv4si): Likewise. | |
32383 | (mve_vrmlsldavhxq_sv4si): Likewise. | |
32384 | (mve_vshllbq_n_<supf><mode>): Likewise. | |
32385 | (mve_vshlltq_n_<supf><mode>): Likewise. | |
32386 | (mve_vsubq_f<mode>): Likewise. | |
32387 | (mve_vmulltq_poly_p<mode>): Likewise. | |
32388 | (mve_vmullbq_poly_p<mode>): Likewise. | |
32389 | (mve_vrmlaldavhq_<supf>v4si): Likewise. | |
32390 | ||
32391 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
32392 | Mihail Ionescu <mihail.ionescu@arm.com> | |
32393 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
32394 | ||
32395 | * config/arm/arm_mve.h (vsubq_u8): Define macro. | |
32396 | (vsubq_n_u8): Likewise. | |
32397 | (vrmulhq_u8): Likewise. | |
32398 | (vrhaddq_u8): Likewise. | |
32399 | (vqsubq_u8): Likewise. | |
32400 | (vqsubq_n_u8): Likewise. | |
32401 | (vqaddq_u8): Likewise. | |
32402 | (vqaddq_n_u8): Likewise. | |
32403 | (vorrq_u8): Likewise. | |
32404 | (vornq_u8): Likewise. | |
32405 | (vmulq_u8): Likewise. | |
32406 | (vmulq_n_u8): Likewise. | |
32407 | (vmulltq_int_u8): Likewise. | |
32408 | (vmullbq_int_u8): Likewise. | |
32409 | (vmulhq_u8): Likewise. | |
32410 | (vmladavq_u8): Likewise. | |
32411 | (vminvq_u8): Likewise. | |
32412 | (vminq_u8): Likewise. | |
32413 | (vmaxvq_u8): Likewise. | |
32414 | (vmaxq_u8): Likewise. | |
32415 | (vhsubq_u8): Likewise. | |
32416 | (vhsubq_n_u8): Likewise. | |
32417 | (vhaddq_u8): Likewise. | |
32418 | (vhaddq_n_u8): Likewise. | |
32419 | (veorq_u8): Likewise. | |
32420 | (vcmpneq_n_u8): Likewise. | |
32421 | (vcmphiq_u8): Likewise. | |
32422 | (vcmphiq_n_u8): Likewise. | |
32423 | (vcmpeqq_u8): Likewise. | |
32424 | (vcmpeqq_n_u8): Likewise. | |
32425 | (vcmpcsq_u8): Likewise. | |
32426 | (vcmpcsq_n_u8): Likewise. | |
32427 | (vcaddq_rot90_u8): Likewise. | |
32428 | (vcaddq_rot270_u8): Likewise. | |
32429 | (vbicq_u8): Likewise. | |
32430 | (vandq_u8): Likewise. | |
32431 | (vaddvq_p_u8): Likewise. | |
32432 | (vaddvaq_u8): Likewise. | |
32433 | (vaddq_n_u8): Likewise. | |
32434 | (vabdq_u8): Likewise. | |
32435 | (vshlq_r_u8): Likewise. | |
32436 | (vrshlq_u8): Likewise. | |
32437 | (vrshlq_n_u8): Likewise. | |
32438 | (vqshlq_u8): Likewise. | |
32439 | (vqshlq_r_u8): Likewise. | |
32440 | (vqrshlq_u8): Likewise. | |
32441 | (vqrshlq_n_u8): Likewise. | |
32442 | (vminavq_s8): Likewise. | |
32443 | (vminaq_s8): Likewise. | |
32444 | (vmaxavq_s8): Likewise. | |
32445 | (vmaxaq_s8): Likewise. | |
32446 | (vbrsrq_n_u8): Likewise. | |
32447 | (vshlq_n_u8): Likewise. | |
32448 | (vrshrq_n_u8): Likewise. | |
32449 | (vqshlq_n_u8): Likewise. | |
32450 | (vcmpneq_n_s8): Likewise. | |
32451 | (vcmpltq_s8): Likewise. | |
32452 | (vcmpltq_n_s8): Likewise. | |
32453 | (vcmpleq_s8): Likewise. | |
32454 | (vcmpleq_n_s8): Likewise. | |
32455 | (vcmpgtq_s8): Likewise. | |
32456 | (vcmpgtq_n_s8): Likewise. | |
32457 | (vcmpgeq_s8): Likewise. | |
32458 | (vcmpgeq_n_s8): Likewise. | |
32459 | (vcmpeqq_s8): Likewise. | |
32460 | (vcmpeqq_n_s8): Likewise. | |
32461 | (vqshluq_n_s8): Likewise. | |
32462 | (vaddvq_p_s8): Likewise. | |
32463 | (vsubq_s8): Likewise. | |
32464 | (vsubq_n_s8): Likewise. | |
32465 | (vshlq_r_s8): Likewise. | |
32466 | (vrshlq_s8): Likewise. | |
32467 | (vrshlq_n_s8): Likewise. | |
32468 | (vrmulhq_s8): Likewise. | |
32469 | (vrhaddq_s8): Likewise. | |
32470 | (vqsubq_s8): Likewise. | |
32471 | (vqsubq_n_s8): Likewise. | |
32472 | (vqshlq_s8): Likewise. | |
32473 | (vqshlq_r_s8): Likewise. | |
32474 | (vqrshlq_s8): Likewise. | |
32475 | (vqrshlq_n_s8): Likewise. | |
32476 | (vqrdmulhq_s8): Likewise. | |
32477 | (vqrdmulhq_n_s8): Likewise. | |
32478 | (vqdmulhq_s8): Likewise. | |
32479 | (vqdmulhq_n_s8): Likewise. | |
32480 | (vqaddq_s8): Likewise. | |
32481 | (vqaddq_n_s8): Likewise. | |
32482 | (vorrq_s8): Likewise. | |
32483 | (vornq_s8): Likewise. | |
32484 | (vmulq_s8): Likewise. | |
32485 | (vmulq_n_s8): Likewise. | |
32486 | (vmulltq_int_s8): Likewise. | |
32487 | (vmullbq_int_s8): Likewise. | |
32488 | (vmulhq_s8): Likewise. | |
32489 | (vmlsdavxq_s8): Likewise. | |
32490 | (vmlsdavq_s8): Likewise. | |
32491 | (vmladavxq_s8): Likewise. | |
32492 | (vmladavq_s8): Likewise. | |
32493 | (vminvq_s8): Likewise. | |
32494 | (vminq_s8): Likewise. | |
32495 | (vmaxvq_s8): Likewise. | |
32496 | (vmaxq_s8): Likewise. | |
32497 | (vhsubq_s8): Likewise. | |
32498 | (vhsubq_n_s8): Likewise. | |
32499 | (vhcaddq_rot90_s8): Likewise. | |
32500 | (vhcaddq_rot270_s8): Likewise. | |
32501 | (vhaddq_s8): Likewise. | |
32502 | (vhaddq_n_s8): Likewise. | |
32503 | (veorq_s8): Likewise. | |
32504 | (vcaddq_rot90_s8): Likewise. | |
32505 | (vcaddq_rot270_s8): Likewise. | |
32506 | (vbrsrq_n_s8): Likewise. | |
32507 | (vbicq_s8): Likewise. | |
32508 | (vandq_s8): Likewise. | |
32509 | (vaddvaq_s8): Likewise. | |
32510 | (vaddq_n_s8): Likewise. | |
32511 | (vabdq_s8): Likewise. | |
32512 | (vshlq_n_s8): Likewise. | |
32513 | (vrshrq_n_s8): Likewise. | |
32514 | (vqshlq_n_s8): Likewise. | |
32515 | (vsubq_u16): Likewise. | |
32516 | (vsubq_n_u16): Likewise. | |
32517 | (vrmulhq_u16): Likewise. | |
32518 | (vrhaddq_u16): Likewise. | |
32519 | (vqsubq_u16): Likewise. | |
32520 | (vqsubq_n_u16): Likewise. | |
32521 | (vqaddq_u16): Likewise. | |
32522 | (vqaddq_n_u16): Likewise. | |
32523 | (vorrq_u16): Likewise. | |
32524 | (vornq_u16): Likewise. | |
32525 | (vmulq_u16): Likewise. | |
32526 | (vmulq_n_u16): Likewise. | |
32527 | (vmulltq_int_u16): Likewise. | |
32528 | (vmullbq_int_u16): Likewise. | |
32529 | (vmulhq_u16): Likewise. | |
32530 | (vmladavq_u16): Likewise. | |
32531 | (vminvq_u16): Likewise. | |
32532 | (vminq_u16): Likewise. | |
32533 | (vmaxvq_u16): Likewise. | |
32534 | (vmaxq_u16): Likewise. | |
32535 | (vhsubq_u16): Likewise. | |
32536 | (vhsubq_n_u16): Likewise. | |
32537 | (vhaddq_u16): Likewise. | |
32538 | (vhaddq_n_u16): Likewise. | |
32539 | (veorq_u16): Likewise. | |
32540 | (vcmpneq_n_u16): Likewise. | |
32541 | (vcmphiq_u16): Likewise. | |
32542 | (vcmphiq_n_u16): Likewise. | |
32543 | (vcmpeqq_u16): Likewise. | |
32544 | (vcmpeqq_n_u16): Likewise. | |
32545 | (vcmpcsq_u16): Likewise. | |
32546 | (vcmpcsq_n_u16): Likewise. | |
32547 | (vcaddq_rot90_u16): Likewise. | |
32548 | (vcaddq_rot270_u16): Likewise. | |
32549 | (vbicq_u16): Likewise. | |
32550 | (vandq_u16): Likewise. | |
32551 | (vaddvq_p_u16): Likewise. | |
32552 | (vaddvaq_u16): Likewise. | |
32553 | (vaddq_n_u16): Likewise. | |
32554 | (vabdq_u16): Likewise. | |
32555 | (vshlq_r_u16): Likewise. | |
32556 | (vrshlq_u16): Likewise. | |
32557 | (vrshlq_n_u16): Likewise. | |
32558 | (vqshlq_u16): Likewise. | |
32559 | (vqshlq_r_u16): Likewise. | |
32560 | (vqrshlq_u16): Likewise. | |
32561 | (vqrshlq_n_u16): Likewise. | |
32562 | (vminavq_s16): Likewise. | |
32563 | (vminaq_s16): Likewise. | |
32564 | (vmaxavq_s16): Likewise. | |
32565 | (vmaxaq_s16): Likewise. | |
32566 | (vbrsrq_n_u16): Likewise. | |
32567 | (vshlq_n_u16): Likewise. | |
32568 | (vrshrq_n_u16): Likewise. | |
32569 | (vqshlq_n_u16): Likewise. | |
32570 | (vcmpneq_n_s16): Likewise. | |
32571 | (vcmpltq_s16): Likewise. | |
32572 | (vcmpltq_n_s16): Likewise. | |
32573 | (vcmpleq_s16): Likewise. | |
32574 | (vcmpleq_n_s16): Likewise. | |
32575 | (vcmpgtq_s16): Likewise. | |
32576 | (vcmpgtq_n_s16): Likewise. | |
32577 | (vcmpgeq_s16): Likewise. | |
32578 | (vcmpgeq_n_s16): Likewise. | |
32579 | (vcmpeqq_s16): Likewise. | |
32580 | (vcmpeqq_n_s16): Likewise. | |
32581 | (vqshluq_n_s16): Likewise. | |
32582 | (vaddvq_p_s16): Likewise. | |
32583 | (vsubq_s16): Likewise. | |
32584 | (vsubq_n_s16): Likewise. | |
32585 | (vshlq_r_s16): Likewise. | |
32586 | (vrshlq_s16): Likewise. | |
32587 | (vrshlq_n_s16): Likewise. | |
32588 | (vrmulhq_s16): Likewise. | |
32589 | (vrhaddq_s16): Likewise. | |
32590 | (vqsubq_s16): Likewise. | |
32591 | (vqsubq_n_s16): Likewise. | |
32592 | (vqshlq_s16): Likewise. | |
32593 | (vqshlq_r_s16): Likewise. | |
32594 | (vqrshlq_s16): Likewise. | |
32595 | (vqrshlq_n_s16): Likewise. | |
32596 | (vqrdmulhq_s16): Likewise. | |
32597 | (vqrdmulhq_n_s16): Likewise. | |
32598 | (vqdmulhq_s16): Likewise. | |
32599 | (vqdmulhq_n_s16): Likewise. | |
32600 | (vqaddq_s16): Likewise. | |
32601 | (vqaddq_n_s16): Likewise. | |
32602 | (vorrq_s16): Likewise. | |
32603 | (vornq_s16): Likewise. | |
32604 | (vmulq_s16): Likewise. | |
32605 | (vmulq_n_s16): Likewise. | |
32606 | (vmulltq_int_s16): Likewise. | |
32607 | (vmullbq_int_s16): Likewise. | |
32608 | (vmulhq_s16): Likewise. | |
32609 | (vmlsdavxq_s16): Likewise. | |
32610 | (vmlsdavq_s16): Likewise. | |
32611 | (vmladavxq_s16): Likewise. | |
32612 | (vmladavq_s16): Likewise. | |
32613 | (vminvq_s16): Likewise. | |
32614 | (vminq_s16): Likewise. | |
32615 | (vmaxvq_s16): Likewise. | |
32616 | (vmaxq_s16): Likewise. | |
32617 | (vhsubq_s16): Likewise. | |
32618 | (vhsubq_n_s16): Likewise. | |
32619 | (vhcaddq_rot90_s16): Likewise. | |
32620 | (vhcaddq_rot270_s16): Likewise. | |
32621 | (vhaddq_s16): Likewise. | |
32622 | (vhaddq_n_s16): Likewise. | |
32623 | (veorq_s16): Likewise. | |
32624 | (vcaddq_rot90_s16): Likewise. | |
32625 | (vcaddq_rot270_s16): Likewise. | |
32626 | (vbrsrq_n_s16): Likewise. | |
32627 | (vbicq_s16): Likewise. | |
32628 | (vandq_s16): Likewise. | |
32629 | (vaddvaq_s16): Likewise. | |
32630 | (vaddq_n_s16): Likewise. | |
32631 | (vabdq_s16): Likewise. | |
32632 | (vshlq_n_s16): Likewise. | |
32633 | (vrshrq_n_s16): Likewise. | |
32634 | (vqshlq_n_s16): Likewise. | |
32635 | (vsubq_u32): Likewise. | |
32636 | (vsubq_n_u32): Likewise. | |
32637 | (vrmulhq_u32): Likewise. | |
32638 | (vrhaddq_u32): Likewise. | |
32639 | (vqsubq_u32): Likewise. | |
32640 | (vqsubq_n_u32): Likewise. | |
32641 | (vqaddq_u32): Likewise. | |
32642 | (vqaddq_n_u32): Likewise. | |
32643 | (vorrq_u32): Likewise. | |
32644 | (vornq_u32): Likewise. | |
32645 | (vmulq_u32): Likewise. | |
32646 | (vmulq_n_u32): Likewise. | |
32647 | (vmulltq_int_u32): Likewise. | |
32648 | (vmullbq_int_u32): Likewise. | |
32649 | (vmulhq_u32): Likewise. | |
32650 | (vmladavq_u32): Likewise. | |
32651 | (vminvq_u32): Likewise. | |
32652 | (vminq_u32): Likewise. | |
32653 | (vmaxvq_u32): Likewise. | |
32654 | (vmaxq_u32): Likewise. | |
32655 | (vhsubq_u32): Likewise. | |
32656 | (vhsubq_n_u32): Likewise. | |
32657 | (vhaddq_u32): Likewise. | |
32658 | (vhaddq_n_u32): Likewise. | |
32659 | (veorq_u32): Likewise. | |
32660 | (vcmpneq_n_u32): Likewise. | |
32661 | (vcmphiq_u32): Likewise. | |
32662 | (vcmphiq_n_u32): Likewise. | |
32663 | (vcmpeqq_u32): Likewise. | |
32664 | (vcmpeqq_n_u32): Likewise. | |
32665 | (vcmpcsq_u32): Likewise. | |
32666 | (vcmpcsq_n_u32): Likewise. | |
32667 | (vcaddq_rot90_u32): Likewise. | |
32668 | (vcaddq_rot270_u32): Likewise. | |
32669 | (vbicq_u32): Likewise. | |
32670 | (vandq_u32): Likewise. | |
32671 | (vaddvq_p_u32): Likewise. | |
32672 | (vaddvaq_u32): Likewise. | |
32673 | (vaddq_n_u32): Likewise. | |
32674 | (vabdq_u32): Likewise. | |
32675 | (vshlq_r_u32): Likewise. | |
32676 | (vrshlq_u32): Likewise. | |
32677 | (vrshlq_n_u32): Likewise. | |
32678 | (vqshlq_u32): Likewise. | |
32679 | (vqshlq_r_u32): Likewise. | |
32680 | (vqrshlq_u32): Likewise. | |
32681 | (vqrshlq_n_u32): Likewise. | |
32682 | (vminavq_s32): Likewise. | |
32683 | (vminaq_s32): Likewise. | |
32684 | (vmaxavq_s32): Likewise. | |
32685 | (vmaxaq_s32): Likewise. | |
32686 | (vbrsrq_n_u32): Likewise. | |
32687 | (vshlq_n_u32): Likewise. | |
32688 | (vrshrq_n_u32): Likewise. | |
32689 | (vqshlq_n_u32): Likewise. | |
32690 | (vcmpneq_n_s32): Likewise. | |
32691 | (vcmpltq_s32): Likewise. | |
32692 | (vcmpltq_n_s32): Likewise. | |
32693 | (vcmpleq_s32): Likewise. | |
32694 | (vcmpleq_n_s32): Likewise. | |
32695 | (vcmpgtq_s32): Likewise. | |
32696 | (vcmpgtq_n_s32): Likewise. | |
32697 | (vcmpgeq_s32): Likewise. | |
32698 | (vcmpgeq_n_s32): Likewise. | |
32699 | (vcmpeqq_s32): Likewise. | |
32700 | (vcmpeqq_n_s32): Likewise. | |
32701 | (vqshluq_n_s32): Likewise. | |
32702 | (vaddvq_p_s32): Likewise. | |
32703 | (vsubq_s32): Likewise. | |
32704 | (vsubq_n_s32): Likewise. | |
32705 | (vshlq_r_s32): Likewise. | |
32706 | (vrshlq_s32): Likewise. | |
32707 | (vrshlq_n_s32): Likewise. | |
32708 | (vrmulhq_s32): Likewise. | |
32709 | (vrhaddq_s32): Likewise. | |
32710 | (vqsubq_s32): Likewise. | |
32711 | (vqsubq_n_s32): Likewise. | |
32712 | (vqshlq_s32): Likewise. | |
32713 | (vqshlq_r_s32): Likewise. | |
32714 | (vqrshlq_s32): Likewise. | |
32715 | (vqrshlq_n_s32): Likewise. | |
32716 | (vqrdmulhq_s32): Likewise. | |
32717 | (vqrdmulhq_n_s32): Likewise. | |
32718 | (vqdmulhq_s32): Likewise. | |
32719 | (vqdmulhq_n_s32): Likewise. | |
32720 | (vqaddq_s32): Likewise. | |
32721 | (vqaddq_n_s32): Likewise. | |
32722 | (vorrq_s32): Likewise. | |
32723 | (vornq_s32): Likewise. | |
32724 | (vmulq_s32): Likewise. | |
32725 | (vmulq_n_s32): Likewise. | |
32726 | (vmulltq_int_s32): Likewise. | |
32727 | (vmullbq_int_s32): Likewise. | |
32728 | (vmulhq_s32): Likewise. | |
32729 | (vmlsdavxq_s32): Likewise. | |
32730 | (vmlsdavq_s32): Likewise. | |
32731 | (vmladavxq_s32): Likewise. | |
32732 | (vmladavq_s32): Likewise. | |
32733 | (vminvq_s32): Likewise. | |
32734 | (vminq_s32): Likewise. | |
32735 | (vmaxvq_s32): Likewise. | |
32736 | (vmaxq_s32): Likewise. | |
32737 | (vhsubq_s32): Likewise. | |
32738 | (vhsubq_n_s32): Likewise. | |
32739 | (vhcaddq_rot90_s32): Likewise. | |
32740 | (vhcaddq_rot270_s32): Likewise. | |
32741 | (vhaddq_s32): Likewise. | |
32742 | (vhaddq_n_s32): Likewise. | |
32743 | (veorq_s32): Likewise. | |
32744 | (vcaddq_rot90_s32): Likewise. | |
32745 | (vcaddq_rot270_s32): Likewise. | |
32746 | (vbrsrq_n_s32): Likewise. | |
32747 | (vbicq_s32): Likewise. | |
32748 | (vandq_s32): Likewise. | |
32749 | (vaddvaq_s32): Likewise. | |
32750 | (vaddq_n_s32): Likewise. | |
32751 | (vabdq_s32): Likewise. | |
32752 | (vshlq_n_s32): Likewise. | |
32753 | (vrshrq_n_s32): Likewise. | |
32754 | (vqshlq_n_s32): Likewise. | |
32755 | (__arm_vsubq_u8): Define intrinsic. | |
32756 | (__arm_vsubq_n_u8): Likewise. | |
32757 | (__arm_vrmulhq_u8): Likewise. | |
32758 | (__arm_vrhaddq_u8): Likewise. | |
32759 | (__arm_vqsubq_u8): Likewise. | |
32760 | (__arm_vqsubq_n_u8): Likewise. | |
32761 | (__arm_vqaddq_u8): Likewise. | |
32762 | (__arm_vqaddq_n_u8): Likewise. | |
32763 | (__arm_vorrq_u8): Likewise. | |
32764 | (__arm_vornq_u8): Likewise. | |
32765 | (__arm_vmulq_u8): Likewise. | |
32766 | (__arm_vmulq_n_u8): Likewise. | |
32767 | (__arm_vmulltq_int_u8): Likewise. | |
32768 | (__arm_vmullbq_int_u8): Likewise. | |
32769 | (__arm_vmulhq_u8): Likewise. | |
32770 | (__arm_vmladavq_u8): Likewise. | |
32771 | (__arm_vminvq_u8): Likewise. | |
32772 | (__arm_vminq_u8): Likewise. | |
32773 | (__arm_vmaxvq_u8): Likewise. | |
32774 | (__arm_vmaxq_u8): Likewise. | |
32775 | (__arm_vhsubq_u8): Likewise. | |
32776 | (__arm_vhsubq_n_u8): Likewise. | |
32777 | (__arm_vhaddq_u8): Likewise. | |
32778 | (__arm_vhaddq_n_u8): Likewise. | |
32779 | (__arm_veorq_u8): Likewise. | |
32780 | (__arm_vcmpneq_n_u8): Likewise. | |
32781 | (__arm_vcmphiq_u8): Likewise. | |
32782 | (__arm_vcmphiq_n_u8): Likewise. | |
32783 | (__arm_vcmpeqq_u8): Likewise. | |
32784 | (__arm_vcmpeqq_n_u8): Likewise. | |
32785 | (__arm_vcmpcsq_u8): Likewise. | |
32786 | (__arm_vcmpcsq_n_u8): Likewise. | |
32787 | (__arm_vcaddq_rot90_u8): Likewise. | |
32788 | (__arm_vcaddq_rot270_u8): Likewise. | |
32789 | (__arm_vbicq_u8): Likewise. | |
32790 | (__arm_vandq_u8): Likewise. | |
32791 | (__arm_vaddvq_p_u8): Likewise. | |
32792 | (__arm_vaddvaq_u8): Likewise. | |
32793 | (__arm_vaddq_n_u8): Likewise. | |
32794 | (__arm_vabdq_u8): Likewise. | |
32795 | (__arm_vshlq_r_u8): Likewise. | |
32796 | (__arm_vrshlq_u8): Likewise. | |
32797 | (__arm_vrshlq_n_u8): Likewise. | |
32798 | (__arm_vqshlq_u8): Likewise. | |
32799 | (__arm_vqshlq_r_u8): Likewise. | |
32800 | (__arm_vqrshlq_u8): Likewise. | |
32801 | (__arm_vqrshlq_n_u8): Likewise. | |
32802 | (__arm_vminavq_s8): Likewise. | |
32803 | (__arm_vminaq_s8): Likewise. | |
32804 | (__arm_vmaxavq_s8): Likewise. | |
32805 | (__arm_vmaxaq_s8): Likewise. | |
32806 | (__arm_vbrsrq_n_u8): Likewise. | |
32807 | (__arm_vshlq_n_u8): Likewise. | |
32808 | (__arm_vrshrq_n_u8): Likewise. | |
32809 | (__arm_vqshlq_n_u8): Likewise. | |
32810 | (__arm_vcmpneq_n_s8): Likewise. | |
32811 | (__arm_vcmpltq_s8): Likewise. | |
32812 | (__arm_vcmpltq_n_s8): Likewise. | |
32813 | (__arm_vcmpleq_s8): Likewise. | |
32814 | (__arm_vcmpleq_n_s8): Likewise. | |
32815 | (__arm_vcmpgtq_s8): Likewise. | |
32816 | (__arm_vcmpgtq_n_s8): Likewise. | |
32817 | (__arm_vcmpgeq_s8): Likewise. | |
32818 | (__arm_vcmpgeq_n_s8): Likewise. | |
32819 | (__arm_vcmpeqq_s8): Likewise. | |
32820 | (__arm_vcmpeqq_n_s8): Likewise. | |
32821 | (__arm_vqshluq_n_s8): Likewise. | |
32822 | (__arm_vaddvq_p_s8): Likewise. | |
32823 | (__arm_vsubq_s8): Likewise. | |
32824 | (__arm_vsubq_n_s8): Likewise. | |
32825 | (__arm_vshlq_r_s8): Likewise. | |
32826 | (__arm_vrshlq_s8): Likewise. | |
32827 | (__arm_vrshlq_n_s8): Likewise. | |
32828 | (__arm_vrmulhq_s8): Likewise. | |
32829 | (__arm_vrhaddq_s8): Likewise. | |
32830 | (__arm_vqsubq_s8): Likewise. | |
32831 | (__arm_vqsubq_n_s8): Likewise. | |
32832 | (__arm_vqshlq_s8): Likewise. | |
32833 | (__arm_vqshlq_r_s8): Likewise. | |
32834 | (__arm_vqrshlq_s8): Likewise. | |
32835 | (__arm_vqrshlq_n_s8): Likewise. | |
32836 | (__arm_vqrdmulhq_s8): Likewise. | |
32837 | (__arm_vqrdmulhq_n_s8): Likewise. | |
32838 | (__arm_vqdmulhq_s8): Likewise. | |
32839 | (__arm_vqdmulhq_n_s8): Likewise. | |
32840 | (__arm_vqaddq_s8): Likewise. | |
32841 | (__arm_vqaddq_n_s8): Likewise. | |
32842 | (__arm_vorrq_s8): Likewise. | |
32843 | (__arm_vornq_s8): Likewise. | |
32844 | (__arm_vmulq_s8): Likewise. | |
32845 | (__arm_vmulq_n_s8): Likewise. | |
32846 | (__arm_vmulltq_int_s8): Likewise. | |
32847 | (__arm_vmullbq_int_s8): Likewise. | |
32848 | (__arm_vmulhq_s8): Likewise. | |
32849 | (__arm_vmlsdavxq_s8): Likewise. | |
32850 | (__arm_vmlsdavq_s8): Likewise. | |
32851 | (__arm_vmladavxq_s8): Likewise. | |
32852 | (__arm_vmladavq_s8): Likewise. | |
32853 | (__arm_vminvq_s8): Likewise. | |
32854 | (__arm_vminq_s8): Likewise. | |
32855 | (__arm_vmaxvq_s8): Likewise. | |
32856 | (__arm_vmaxq_s8): Likewise. | |
32857 | (__arm_vhsubq_s8): Likewise. | |
32858 | (__arm_vhsubq_n_s8): Likewise. | |
32859 | (__arm_vhcaddq_rot90_s8): Likewise. | |
32860 | (__arm_vhcaddq_rot270_s8): Likewise. | |
32861 | (__arm_vhaddq_s8): Likewise. | |
32862 | (__arm_vhaddq_n_s8): Likewise. | |
32863 | (__arm_veorq_s8): Likewise. | |
32864 | (__arm_vcaddq_rot90_s8): Likewise. | |
32865 | (__arm_vcaddq_rot270_s8): Likewise. | |
32866 | (__arm_vbrsrq_n_s8): Likewise. | |
32867 | (__arm_vbicq_s8): Likewise. | |
32868 | (__arm_vandq_s8): Likewise. | |
32869 | (__arm_vaddvaq_s8): Likewise. | |
32870 | (__arm_vaddq_n_s8): Likewise. | |
32871 | (__arm_vabdq_s8): Likewise. | |
32872 | (__arm_vshlq_n_s8): Likewise. | |
32873 | (__arm_vrshrq_n_s8): Likewise. | |
32874 | (__arm_vqshlq_n_s8): Likewise. | |
32875 | (__arm_vsubq_u16): Likewise. | |
32876 | (__arm_vsubq_n_u16): Likewise. | |
32877 | (__arm_vrmulhq_u16): Likewise. | |
32878 | (__arm_vrhaddq_u16): Likewise. | |
32879 | (__arm_vqsubq_u16): Likewise. | |
32880 | (__arm_vqsubq_n_u16): Likewise. | |
32881 | (__arm_vqaddq_u16): Likewise. | |
32882 | (__arm_vqaddq_n_u16): Likewise. | |
32883 | (__arm_vorrq_u16): Likewise. | |
32884 | (__arm_vornq_u16): Likewise. | |
32885 | (__arm_vmulq_u16): Likewise. | |
32886 | (__arm_vmulq_n_u16): Likewise. | |
32887 | (__arm_vmulltq_int_u16): Likewise. | |
32888 | (__arm_vmullbq_int_u16): Likewise. | |
32889 | (__arm_vmulhq_u16): Likewise. | |
32890 | (__arm_vmladavq_u16): Likewise. | |
32891 | (__arm_vminvq_u16): Likewise. | |
32892 | (__arm_vminq_u16): Likewise. | |
32893 | (__arm_vmaxvq_u16): Likewise. | |
32894 | (__arm_vmaxq_u16): Likewise. | |
32895 | (__arm_vhsubq_u16): Likewise. | |
32896 | (__arm_vhsubq_n_u16): Likewise. | |
32897 | (__arm_vhaddq_u16): Likewise. | |
32898 | (__arm_vhaddq_n_u16): Likewise. | |
32899 | (__arm_veorq_u16): Likewise. | |
32900 | (__arm_vcmpneq_n_u16): Likewise. | |
32901 | (__arm_vcmphiq_u16): Likewise. | |
32902 | (__arm_vcmphiq_n_u16): Likewise. | |
32903 | (__arm_vcmpeqq_u16): Likewise. | |
32904 | (__arm_vcmpeqq_n_u16): Likewise. | |
32905 | (__arm_vcmpcsq_u16): Likewise. | |
32906 | (__arm_vcmpcsq_n_u16): Likewise. | |
32907 | (__arm_vcaddq_rot90_u16): Likewise. | |
32908 | (__arm_vcaddq_rot270_u16): Likewise. | |
32909 | (__arm_vbicq_u16): Likewise. | |
32910 | (__arm_vandq_u16): Likewise. | |
32911 | (__arm_vaddvq_p_u16): Likewise. | |
32912 | (__arm_vaddvaq_u16): Likewise. | |
32913 | (__arm_vaddq_n_u16): Likewise. | |
32914 | (__arm_vabdq_u16): Likewise. | |
32915 | (__arm_vshlq_r_u16): Likewise. | |
32916 | (__arm_vrshlq_u16): Likewise. | |
32917 | (__arm_vrshlq_n_u16): Likewise. | |
32918 | (__arm_vqshlq_u16): Likewise. | |
32919 | (__arm_vqshlq_r_u16): Likewise. | |
32920 | (__arm_vqrshlq_u16): Likewise. | |
32921 | (__arm_vqrshlq_n_u16): Likewise. | |
32922 | (__arm_vminavq_s16): Likewise. | |
32923 | (__arm_vminaq_s16): Likewise. | |
32924 | (__arm_vmaxavq_s16): Likewise. | |
32925 | (__arm_vmaxaq_s16): Likewise. | |
32926 | (__arm_vbrsrq_n_u16): Likewise. | |
32927 | (__arm_vshlq_n_u16): Likewise. | |
32928 | (__arm_vrshrq_n_u16): Likewise. | |
32929 | (__arm_vqshlq_n_u16): Likewise. | |
32930 | (__arm_vcmpneq_n_s16): Likewise. | |
32931 | (__arm_vcmpltq_s16): Likewise. | |
32932 | (__arm_vcmpltq_n_s16): Likewise. | |
32933 | (__arm_vcmpleq_s16): Likewise. | |
32934 | (__arm_vcmpleq_n_s16): Likewise. | |
32935 | (__arm_vcmpgtq_s16): Likewise. | |
32936 | (__arm_vcmpgtq_n_s16): Likewise. | |
32937 | (__arm_vcmpgeq_s16): Likewise. | |
32938 | (__arm_vcmpgeq_n_s16): Likewise. | |
32939 | (__arm_vcmpeqq_s16): Likewise. | |
32940 | (__arm_vcmpeqq_n_s16): Likewise. | |
32941 | (__arm_vqshluq_n_s16): Likewise. | |
32942 | (__arm_vaddvq_p_s16): Likewise. | |
32943 | (__arm_vsubq_s16): Likewise. | |
32944 | (__arm_vsubq_n_s16): Likewise. | |
32945 | (__arm_vshlq_r_s16): Likewise. | |
32946 | (__arm_vrshlq_s16): Likewise. | |
32947 | (__arm_vrshlq_n_s16): Likewise. | |
32948 | (__arm_vrmulhq_s16): Likewise. | |
32949 | (__arm_vrhaddq_s16): Likewise. | |
32950 | (__arm_vqsubq_s16): Likewise. | |
32951 | (__arm_vqsubq_n_s16): Likewise. | |
32952 | (__arm_vqshlq_s16): Likewise. | |
32953 | (__arm_vqshlq_r_s16): Likewise. | |
32954 | (__arm_vqrshlq_s16): Likewise. | |
32955 | (__arm_vqrshlq_n_s16): Likewise. | |
32956 | (__arm_vqrdmulhq_s16): Likewise. | |
32957 | (__arm_vqrdmulhq_n_s16): Likewise. | |
32958 | (__arm_vqdmulhq_s16): Likewise. | |
32959 | (__arm_vqdmulhq_n_s16): Likewise. | |
32960 | (__arm_vqaddq_s16): Likewise. | |
32961 | (__arm_vqaddq_n_s16): Likewise. | |
32962 | (__arm_vorrq_s16): Likewise. | |
32963 | (__arm_vornq_s16): Likewise. | |
32964 | (__arm_vmulq_s16): Likewise. | |
32965 | (__arm_vmulq_n_s16): Likewise. | |
32966 | (__arm_vmulltq_int_s16): Likewise. | |
32967 | (__arm_vmullbq_int_s16): Likewise. | |
32968 | (__arm_vmulhq_s16): Likewise. | |
32969 | (__arm_vmlsdavxq_s16): Likewise. | |
32970 | (__arm_vmlsdavq_s16): Likewise. | |
32971 | (__arm_vmladavxq_s16): Likewise. | |
32972 | (__arm_vmladavq_s16): Likewise. | |
32973 | (__arm_vminvq_s16): Likewise. | |
32974 | (__arm_vminq_s16): Likewise. | |
32975 | (__arm_vmaxvq_s16): Likewise. | |
32976 | (__arm_vmaxq_s16): Likewise. | |
32977 | (__arm_vhsubq_s16): Likewise. | |
32978 | (__arm_vhsubq_n_s16): Likewise. | |
32979 | (__arm_vhcaddq_rot90_s16): Likewise. | |
32980 | (__arm_vhcaddq_rot270_s16): Likewise. | |
32981 | (__arm_vhaddq_s16): Likewise. | |
32982 | (__arm_vhaddq_n_s16): Likewise. | |
32983 | (__arm_veorq_s16): Likewise. | |
32984 | (__arm_vcaddq_rot90_s16): Likewise. | |
32985 | (__arm_vcaddq_rot270_s16): Likewise. | |
32986 | (__arm_vbrsrq_n_s16): Likewise. | |
32987 | (__arm_vbicq_s16): Likewise. | |
32988 | (__arm_vandq_s16): Likewise. | |
32989 | (__arm_vaddvaq_s16): Likewise. | |
32990 | (__arm_vaddq_n_s16): Likewise. | |
32991 | (__arm_vabdq_s16): Likewise. | |
32992 | (__arm_vshlq_n_s16): Likewise. | |
32993 | (__arm_vrshrq_n_s16): Likewise. | |
32994 | (__arm_vqshlq_n_s16): Likewise. | |
32995 | (__arm_vsubq_u32): Likewise. | |
32996 | (__arm_vsubq_n_u32): Likewise. | |
32997 | (__arm_vrmulhq_u32): Likewise. | |
32998 | (__arm_vrhaddq_u32): Likewise. | |
32999 | (__arm_vqsubq_u32): Likewise. | |
33000 | (__arm_vqsubq_n_u32): Likewise. | |
33001 | (__arm_vqaddq_u32): Likewise. | |
33002 | (__arm_vqaddq_n_u32): Likewise. | |
33003 | (__arm_vorrq_u32): Likewise. | |
33004 | (__arm_vornq_u32): Likewise. | |
33005 | (__arm_vmulq_u32): Likewise. | |
33006 | (__arm_vmulq_n_u32): Likewise. | |
33007 | (__arm_vmulltq_int_u32): Likewise. | |
33008 | (__arm_vmullbq_int_u32): Likewise. | |
33009 | (__arm_vmulhq_u32): Likewise. | |
33010 | (__arm_vmladavq_u32): Likewise. | |
33011 | (__arm_vminvq_u32): Likewise. | |
33012 | (__arm_vminq_u32): Likewise. | |
33013 | (__arm_vmaxvq_u32): Likewise. | |
33014 | (__arm_vmaxq_u32): Likewise. | |
33015 | (__arm_vhsubq_u32): Likewise. | |
33016 | (__arm_vhsubq_n_u32): Likewise. | |
33017 | (__arm_vhaddq_u32): Likewise. | |
33018 | (__arm_vhaddq_n_u32): Likewise. | |
33019 | (__arm_veorq_u32): Likewise. | |
33020 | (__arm_vcmpneq_n_u32): Likewise. | |
33021 | (__arm_vcmphiq_u32): Likewise. | |
33022 | (__arm_vcmphiq_n_u32): Likewise. | |
33023 | (__arm_vcmpeqq_u32): Likewise. | |
33024 | (__arm_vcmpeqq_n_u32): Likewise. | |
33025 | (__arm_vcmpcsq_u32): Likewise. | |
33026 | (__arm_vcmpcsq_n_u32): Likewise. | |
33027 | (__arm_vcaddq_rot90_u32): Likewise. | |
33028 | (__arm_vcaddq_rot270_u32): Likewise. | |
33029 | (__arm_vbicq_u32): Likewise. | |
33030 | (__arm_vandq_u32): Likewise. | |
33031 | (__arm_vaddvq_p_u32): Likewise. | |
33032 | (__arm_vaddvaq_u32): Likewise. | |
33033 | (__arm_vaddq_n_u32): Likewise. | |
33034 | (__arm_vabdq_u32): Likewise. | |
33035 | (__arm_vshlq_r_u32): Likewise. | |
33036 | (__arm_vrshlq_u32): Likewise. | |
33037 | (__arm_vrshlq_n_u32): Likewise. | |
33038 | (__arm_vqshlq_u32): Likewise. | |
33039 | (__arm_vqshlq_r_u32): Likewise. | |
33040 | (__arm_vqrshlq_u32): Likewise. | |
33041 | (__arm_vqrshlq_n_u32): Likewise. | |
33042 | (__arm_vminavq_s32): Likewise. | |
33043 | (__arm_vminaq_s32): Likewise. | |
33044 | (__arm_vmaxavq_s32): Likewise. | |
33045 | (__arm_vmaxaq_s32): Likewise. | |
33046 | (__arm_vbrsrq_n_u32): Likewise. | |
33047 | (__arm_vshlq_n_u32): Likewise. | |
33048 | (__arm_vrshrq_n_u32): Likewise. | |
33049 | (__arm_vqshlq_n_u32): Likewise. | |
33050 | (__arm_vcmpneq_n_s32): Likewise. | |
33051 | (__arm_vcmpltq_s32): Likewise. | |
33052 | (__arm_vcmpltq_n_s32): Likewise. | |
33053 | (__arm_vcmpleq_s32): Likewise. | |
33054 | (__arm_vcmpleq_n_s32): Likewise. | |
33055 | (__arm_vcmpgtq_s32): Likewise. | |
33056 | (__arm_vcmpgtq_n_s32): Likewise. | |
33057 | (__arm_vcmpgeq_s32): Likewise. | |
33058 | (__arm_vcmpgeq_n_s32): Likewise. | |
33059 | (__arm_vcmpeqq_s32): Likewise. | |
33060 | (__arm_vcmpeqq_n_s32): Likewise. | |
33061 | (__arm_vqshluq_n_s32): Likewise. | |
33062 | (__arm_vaddvq_p_s32): Likewise. | |
33063 | (__arm_vsubq_s32): Likewise. | |
33064 | (__arm_vsubq_n_s32): Likewise. | |
33065 | (__arm_vshlq_r_s32): Likewise. | |
33066 | (__arm_vrshlq_s32): Likewise. | |
33067 | (__arm_vrshlq_n_s32): Likewise. | |
33068 | (__arm_vrmulhq_s32): Likewise. | |
33069 | (__arm_vrhaddq_s32): Likewise. | |
33070 | (__arm_vqsubq_s32): Likewise. | |
33071 | (__arm_vqsubq_n_s32): Likewise. | |
33072 | (__arm_vqshlq_s32): Likewise. | |
33073 | (__arm_vqshlq_r_s32): Likewise. | |
33074 | (__arm_vqrshlq_s32): Likewise. | |
33075 | (__arm_vqrshlq_n_s32): Likewise. | |
33076 | (__arm_vqrdmulhq_s32): Likewise. | |
33077 | (__arm_vqrdmulhq_n_s32): Likewise. | |
33078 | (__arm_vqdmulhq_s32): Likewise. | |
33079 | (__arm_vqdmulhq_n_s32): Likewise. | |
33080 | (__arm_vqaddq_s32): Likewise. | |
33081 | (__arm_vqaddq_n_s32): Likewise. | |
33082 | (__arm_vorrq_s32): Likewise. | |
33083 | (__arm_vornq_s32): Likewise. | |
33084 | (__arm_vmulq_s32): Likewise. | |
33085 | (__arm_vmulq_n_s32): Likewise. | |
33086 | (__arm_vmulltq_int_s32): Likewise. | |
33087 | (__arm_vmullbq_int_s32): Likewise. | |
33088 | (__arm_vmulhq_s32): Likewise. | |
33089 | (__arm_vmlsdavxq_s32): Likewise. | |
33090 | (__arm_vmlsdavq_s32): Likewise. | |
33091 | (__arm_vmladavxq_s32): Likewise. | |
33092 | (__arm_vmladavq_s32): Likewise. | |
33093 | (__arm_vminvq_s32): Likewise. | |
33094 | (__arm_vminq_s32): Likewise. | |
33095 | (__arm_vmaxvq_s32): Likewise. | |
33096 | (__arm_vmaxq_s32): Likewise. | |
33097 | (__arm_vhsubq_s32): Likewise. | |
33098 | (__arm_vhsubq_n_s32): Likewise. | |
33099 | (__arm_vhcaddq_rot90_s32): Likewise. | |
33100 | (__arm_vhcaddq_rot270_s32): Likewise. | |
33101 | (__arm_vhaddq_s32): Likewise. | |
33102 | (__arm_vhaddq_n_s32): Likewise. | |
33103 | (__arm_veorq_s32): Likewise. | |
33104 | (__arm_vcaddq_rot90_s32): Likewise. | |
33105 | (__arm_vcaddq_rot270_s32): Likewise. | |
33106 | (__arm_vbrsrq_n_s32): Likewise. | |
33107 | (__arm_vbicq_s32): Likewise. | |
33108 | (__arm_vandq_s32): Likewise. | |
33109 | (__arm_vaddvaq_s32): Likewise. | |
33110 | (__arm_vaddq_n_s32): Likewise. | |
33111 | (__arm_vabdq_s32): Likewise. | |
33112 | (__arm_vshlq_n_s32): Likewise. | |
33113 | (__arm_vrshrq_n_s32): Likewise. | |
33114 | (__arm_vqshlq_n_s32): Likewise. | |
33115 | (vsubq): Define polymorphic variant. | |
33116 | (vsubq_n): Likewise. | |
33117 | (vshlq_r): Likewise. | |
33118 | (vrshlq_n): Likewise. | |
33119 | (vrshlq): Likewise. | |
33120 | (vrmulhq): Likewise. | |
33121 | (vrhaddq): Likewise. | |
33122 | (vqsubq_n): Likewise. | |
33123 | (vqsubq): Likewise. | |
33124 | (vqshlq): Likewise. | |
33125 | (vqshlq_r): Likewise. | |
33126 | (vqshluq): Likewise. | |
33127 | (vrshrq_n): Likewise. | |
33128 | (vshlq_n): Likewise. | |
33129 | (vqshluq_n): Likewise. | |
33130 | (vqshlq_n): Likewise. | |
33131 | (vqrshlq_n): Likewise. | |
33132 | (vqrshlq): Likewise. | |
33133 | (vqrdmulhq_n): Likewise. | |
33134 | (vqrdmulhq): Likewise. | |
33135 | (vqdmulhq_n): Likewise. | |
33136 | (vqdmulhq): Likewise. | |
33137 | (vqaddq_n): Likewise. | |
33138 | (vqaddq): Likewise. | |
33139 | (vorrq_n): Likewise. | |
33140 | (vorrq): Likewise. | |
33141 | (vornq): Likewise. | |
33142 | (vmulq_n): Likewise. | |
33143 | (vmulq): Likewise. | |
33144 | (vmulltq_int): Likewise. | |
33145 | (vmullbq_int): Likewise. | |
33146 | (vmulhq): Likewise. | |
33147 | (vminq): Likewise. | |
33148 | (vminaq): Likewise. | |
33149 | (vmaxq): Likewise. | |
33150 | (vmaxaq): Likewise. | |
33151 | (vhsubq_n): Likewise. | |
33152 | (vhsubq): Likewise. | |
33153 | (vhcaddq_rot90): Likewise. | |
33154 | (vhcaddq_rot270): Likewise. | |
33155 | (vhaddq_n): Likewise. | |
33156 | (vhaddq): Likewise. | |
33157 | (veorq): Likewise. | |
33158 | (vcaddq_rot90): Likewise. | |
33159 | (vcaddq_rot270): Likewise. | |
33160 | (vbrsrq_n): Likewise. | |
33161 | (vbicq_n): Likewise. | |
33162 | (vbicq): Likewise. | |
33163 | (vaddq): Likewise. | |
33164 | (vaddq_n): Likewise. | |
33165 | (vandq): Likewise. | |
33166 | (vabdq): Likewise. | |
33167 | * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_IMM): Use it. | |
33168 | (BINOP_NONE_NONE_NONE): Likewise. | |
33169 | (BINOP_NONE_NONE_UNONE): Likewise. | |
33170 | (BINOP_UNONE_NONE_IMM): Likewise. | |
33171 | (BINOP_UNONE_NONE_NONE): Likewise. | |
33172 | (BINOP_UNONE_UNONE_IMM): Likewise. | |
33173 | (BINOP_UNONE_UNONE_NONE): Likewise. | |
33174 | (BINOP_UNONE_UNONE_UNONE): Likewise. | |
33175 | * config/arm/constraints.md (Ra): Define constraint to check constant is | |
33176 | in the range of 0 to 7. | |
33177 | (Rg): Define constriant to check the constant is one among 1, 2, 4 | |
33178 | and 8. | |
33179 | * config/arm/mve.md (mve_vabdq_<supf>): Define RTL pattern. | |
33180 | (mve_vaddq_n_<supf>): Likewise. | |
33181 | (mve_vaddvaq_<supf>): Likewise. | |
33182 | (mve_vaddvq_p_<supf>): Likewise. | |
33183 | (mve_vandq_<supf>): Likewise. | |
33184 | (mve_vbicq_<supf>): Likewise. | |
33185 | (mve_vbrsrq_n_<supf>): Likewise. | |
33186 | (mve_vcaddq_rot270_<supf>): Likewise. | |
33187 | (mve_vcaddq_rot90_<supf>): Likewise. | |
33188 | (mve_vcmpcsq_n_u): Likewise. | |
33189 | (mve_vcmpcsq_u): Likewise. | |
33190 | (mve_vcmpeqq_n_<supf>): Likewise. | |
33191 | (mve_vcmpeqq_<supf>): Likewise. | |
33192 | (mve_vcmpgeq_n_s): Likewise. | |
33193 | (mve_vcmpgeq_s): Likewise. | |
33194 | (mve_vcmpgtq_n_s): Likewise. | |
33195 | (mve_vcmpgtq_s): Likewise. | |
33196 | (mve_vcmphiq_n_u): Likewise. | |
33197 | (mve_vcmphiq_u): Likewise. | |
33198 | (mve_vcmpleq_n_s): Likewise. | |
33199 | (mve_vcmpleq_s): Likewise. | |
33200 | (mve_vcmpltq_n_s): Likewise. | |
33201 | (mve_vcmpltq_s): Likewise. | |
33202 | (mve_vcmpneq_n_<supf>): Likewise. | |
33203 | (mve_vddupq_n_u): Likewise. | |
33204 | (mve_veorq_<supf>): Likewise. | |
33205 | (mve_vhaddq_n_<supf>): Likewise. | |
33206 | (mve_vhaddq_<supf>): Likewise. | |
33207 | (mve_vhcaddq_rot270_s): Likewise. | |
33208 | (mve_vhcaddq_rot90_s): Likewise. | |
33209 | (mve_vhsubq_n_<supf>): Likewise. | |
33210 | (mve_vhsubq_<supf>): Likewise. | |
33211 | (mve_vidupq_n_u): Likewise. | |
33212 | (mve_vmaxaq_s): Likewise. | |
33213 | (mve_vmaxavq_s): Likewise. | |
33214 | (mve_vmaxq_<supf>): Likewise. | |
33215 | (mve_vmaxvq_<supf>): Likewise. | |
33216 | (mve_vminaq_s): Likewise. | |
33217 | (mve_vminavq_s): Likewise. | |
33218 | (mve_vminq_<supf>): Likewise. | |
33219 | (mve_vminvq_<supf>): Likewise. | |
33220 | (mve_vmladavq_<supf>): Likewise. | |
33221 | (mve_vmladavxq_s): Likewise. | |
33222 | (mve_vmlsdavq_s): Likewise. | |
33223 | (mve_vmlsdavxq_s): Likewise. | |
33224 | (mve_vmulhq_<supf>): Likewise. | |
33225 | (mve_vmullbq_int_<supf>): Likewise. | |
33226 | (mve_vmulltq_int_<supf>): Likewise. | |
33227 | (mve_vmulq_n_<supf>): Likewise. | |
33228 | (mve_vmulq_<supf>): Likewise. | |
33229 | (mve_vornq_<supf>): Likewise. | |
33230 | (mve_vorrq_<supf>): Likewise. | |
33231 | (mve_vqaddq_n_<supf>): Likewise. | |
33232 | (mve_vqaddq_<supf>): Likewise. | |
33233 | (mve_vqdmulhq_n_s): Likewise. | |
33234 | (mve_vqdmulhq_s): Likewise. | |
33235 | (mve_vqrdmulhq_n_s): Likewise. | |
33236 | (mve_vqrdmulhq_s): Likewise. | |
33237 | (mve_vqrshlq_n_<supf>): Likewise. | |
33238 | (mve_vqrshlq_<supf>): Likewise. | |
33239 | (mve_vqshlq_n_<supf>): Likewise. | |
33240 | (mve_vqshlq_r_<supf>): Likewise. | |
33241 | (mve_vqshlq_<supf>): Likewise. | |
33242 | (mve_vqshluq_n_s): Likewise. | |
33243 | (mve_vqsubq_n_<supf>): Likewise. | |
33244 | (mve_vqsubq_<supf>): Likewise. | |
33245 | (mve_vrhaddq_<supf>): Likewise. | |
33246 | (mve_vrmulhq_<supf>): Likewise. | |
33247 | (mve_vrshlq_n_<supf>): Likewise. | |
33248 | (mve_vrshlq_<supf>): Likewise. | |
33249 | (mve_vrshrq_n_<supf>): Likewise. | |
33250 | (mve_vshlq_n_<supf>): Likewise. | |
33251 | (mve_vshlq_r_<supf>): Likewise. | |
33252 | (mve_vsubq_n_<supf>): Likewise. | |
33253 | (mve_vsubq_<supf>): Likewise. | |
33254 | * config/arm/predicates.md (mve_imm_7): Define predicate to check | |
33255 | the matching constraint Ra. | |
33256 | (mve_imm_selective_upto_8): Define predicate to check the matching | |
33257 | constraint Rg. | |
33258 | ||
33259 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33260 | Mihail Ionescu <mihail.ionescu@arm.com> | |
33261 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33262 | ||
33263 | * config/arm/arm-builtins.c (BINOP_NONE_NONE_UNONE_QUALIFIERS): Define | |
33264 | qualifier for binary operands. | |
33265 | (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise. | |
33266 | (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise. | |
33267 | * config/arm/arm_mve.h (vaddlvq_p_s32): Define macro. | |
33268 | (vaddlvq_p_u32): Likewise. | |
33269 | (vcmpneq_s8): Likewise. | |
33270 | (vcmpneq_s16): Likewise. | |
33271 | (vcmpneq_s32): Likewise. | |
33272 | (vcmpneq_u8): Likewise. | |
33273 | (vcmpneq_u16): Likewise. | |
33274 | (vcmpneq_u32): Likewise. | |
33275 | (vshlq_s8): Likewise. | |
33276 | (vshlq_s16): Likewise. | |
33277 | (vshlq_s32): Likewise. | |
33278 | (vshlq_u8): Likewise. | |
33279 | (vshlq_u16): Likewise. | |
33280 | (vshlq_u32): Likewise. | |
33281 | (__arm_vaddlvq_p_s32): Define intrinsic. | |
33282 | (__arm_vaddlvq_p_u32): Likewise. | |
33283 | (__arm_vcmpneq_s8): Likewise. | |
33284 | (__arm_vcmpneq_s16): Likewise. | |
33285 | (__arm_vcmpneq_s32): Likewise. | |
33286 | (__arm_vcmpneq_u8): Likewise. | |
33287 | (__arm_vcmpneq_u16): Likewise. | |
33288 | (__arm_vcmpneq_u32): Likewise. | |
33289 | (__arm_vshlq_s8): Likewise. | |
33290 | (__arm_vshlq_s16): Likewise. | |
33291 | (__arm_vshlq_s32): Likewise. | |
33292 | (__arm_vshlq_u8): Likewise. | |
33293 | (__arm_vshlq_u16): Likewise. | |
33294 | (__arm_vshlq_u32): Likewise. | |
33295 | (vaddlvq_p): Define polymorphic variant. | |
33296 | (vcmpneq): Likewise. | |
33297 | (vshlq): Likewise. | |
33298 | * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_UNONE_QUALIFIERS): | |
33299 | Use it. | |
33300 | (BINOP_UNONE_NONE_NONE_QUALIFIERS): Likewise. | |
33301 | (BINOP_UNONE_UNONE_NONE_QUALIFIERS): Likewise. | |
33302 | * config/arm/mve.md (mve_vaddlvq_p_<supf>v4si): Define RTL pattern. | |
33303 | (mve_vcmpneq_<supf><mode>): Likewise. | |
33304 | (mve_vshlq_<supf><mode>): Likewise. | |
33305 | ||
33306 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33307 | Mihail Ionescu <mihail.ionescu@arm.com> | |
33308 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33309 | ||
33310 | * config/arm/arm-builtins.c (BINOP_UNONE_UNONE_IMM_QUALIFIERS): Define | |
33311 | qualifier for binary operands. | |
33312 | (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
33313 | (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise. | |
33314 | * config/arm/arm_mve.h (vcvtq_n_s16_f16): Define macro. | |
33315 | (vcvtq_n_s32_f32): Likewise. | |
33316 | (vcvtq_n_u16_f16): Likewise. | |
33317 | (vcvtq_n_u32_f32): Likewise. | |
33318 | (vcreateq_u8): Likewise. | |
33319 | (vcreateq_u16): Likewise. | |
33320 | (vcreateq_u32): Likewise. | |
33321 | (vcreateq_u64): Likewise. | |
33322 | (vcreateq_s8): Likewise. | |
33323 | (vcreateq_s16): Likewise. | |
33324 | (vcreateq_s32): Likewise. | |
33325 | (vcreateq_s64): Likewise. | |
33326 | (vshrq_n_s8): Likewise. | |
33327 | (vshrq_n_s16): Likewise. | |
33328 | (vshrq_n_s32): Likewise. | |
33329 | (vshrq_n_u8): Likewise. | |
33330 | (vshrq_n_u16): Likewise. | |
33331 | (vshrq_n_u32): Likewise. | |
33332 | (__arm_vcreateq_u8): Define intrinsic. | |
33333 | (__arm_vcreateq_u16): Likewise. | |
33334 | (__arm_vcreateq_u32): Likewise. | |
33335 | (__arm_vcreateq_u64): Likewise. | |
33336 | (__arm_vcreateq_s8): Likewise. | |
33337 | (__arm_vcreateq_s16): Likewise. | |
33338 | (__arm_vcreateq_s32): Likewise. | |
33339 | (__arm_vcreateq_s64): Likewise. | |
33340 | (__arm_vshrq_n_s8): Likewise. | |
33341 | (__arm_vshrq_n_s16): Likewise. | |
33342 | (__arm_vshrq_n_s32): Likewise. | |
33343 | (__arm_vshrq_n_u8): Likewise. | |
33344 | (__arm_vshrq_n_u16): Likewise. | |
33345 | (__arm_vshrq_n_u32): Likewise. | |
33346 | (__arm_vcvtq_n_s16_f16): Likewise. | |
33347 | (__arm_vcvtq_n_s32_f32): Likewise. | |
33348 | (__arm_vcvtq_n_u16_f16): Likewise. | |
33349 | (__arm_vcvtq_n_u32_f32): Likewise. | |
33350 | (vshrq_n): Define polymorphic variant. | |
33351 | * config/arm/arm_mve_builtins.def (BINOP_UNONE_UNONE_IMM_QUALIFIERS): | |
33352 | Use it. | |
33353 | (BINOP_UNONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
33354 | (BINOP_UNONE_NONE_IMM_QUALIFIERS): Likewise. | |
33355 | * config/arm/constraints.md (Rb): Define constraint to check constant is | |
33356 | in the range of 1 to 8. | |
33357 | (Rf): Define constraint to check constant is in the range of 1 to 32. | |
33358 | * config/arm/mve.md (mve_vcreateq_<supf><mode>): Define RTL pattern. | |
33359 | (mve_vshrq_n_<supf><mode>): Likewise. | |
33360 | (mve_vcvtq_n_from_f_<supf><mode>): Likewise. | |
33361 | * config/arm/predicates.md (mve_imm_8): Define predicate to check | |
33362 | the matching constraint Rb. | |
33363 | (mve_imm_32): Define predicate to check the matching constraint Rf. | |
33364 | ||
33365 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33366 | Mihail Ionescu <mihail.ionescu@arm.com> | |
33367 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33368 | ||
33369 | * config/arm/arm-builtins.c (BINOP_NONE_NONE_NONE_QUALIFIERS): Define | |
33370 | qualifier for binary operands. | |
33371 | (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise. | |
33372 | (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise. | |
33373 | (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
33374 | * config/arm/arm_mve.h (vsubq_n_f16): Define macro. | |
33375 | (vsubq_n_f32): Likewise. | |
33376 | (vbrsrq_n_f16): Likewise. | |
33377 | (vbrsrq_n_f32): Likewise. | |
33378 | (vcvtq_n_f16_s16): Likewise. | |
33379 | (vcvtq_n_f32_s32): Likewise. | |
33380 | (vcvtq_n_f16_u16): Likewise. | |
33381 | (vcvtq_n_f32_u32): Likewise. | |
33382 | (vcreateq_f16): Likewise. | |
33383 | (vcreateq_f32): Likewise. | |
33384 | (__arm_vsubq_n_f16): Define intrinsic. | |
33385 | (__arm_vsubq_n_f32): Likewise. | |
33386 | (__arm_vbrsrq_n_f16): Likewise. | |
33387 | (__arm_vbrsrq_n_f32): Likewise. | |
33388 | (__arm_vcvtq_n_f16_s16): Likewise. | |
33389 | (__arm_vcvtq_n_f32_s32): Likewise. | |
33390 | (__arm_vcvtq_n_f16_u16): Likewise. | |
33391 | (__arm_vcvtq_n_f32_u32): Likewise. | |
33392 | (__arm_vcreateq_f16): Likewise. | |
33393 | (__arm_vcreateq_f32): Likewise. | |
33394 | (vsubq): Define polymorphic variant. | |
33395 | (vbrsrq): Likewise. | |
33396 | (vcvtq_n): Likewise. | |
33397 | * config/arm/arm_mve_builtins.def (BINOP_NONE_NONE_NONE_QUALIFIERS): Use | |
33398 | it. | |
33399 | (BINOP_NONE_NONE_IMM_QUALIFIERS): Likewise. | |
33400 | (BINOP_NONE_UNONE_IMM_QUALIFIERS): Likewise. | |
33401 | (BINOP_NONE_UNONE_UNONE_QUALIFIERS): Likewise. | |
33402 | * config/arm/constraints.md (Rd): Define constraint to check constant is | |
33403 | in the range of 1 to 16. | |
33404 | * config/arm/mve.md (mve_vsubq_n_f<mode>): Define RTL pattern. | |
33405 | mve_vbrsrq_n_f<mode>: Likewise. | |
33406 | mve_vcvtq_n_to_f_<supf><mode>: Likewise. | |
33407 | mve_vcreateq_f<mode>: Likewise. | |
33408 | * config/arm/predicates.md (mve_imm_16): Define predicate to check | |
33409 | the matching constraint Rd. | |
33410 | ||
33411 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33412 | Mihail Ionescu <mihail.ionescu@arm.com> | |
33413 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33414 | ||
33415 | * config/arm/arm-builtins.c (hi_UP): Define mode. | |
33416 | * config/arm/arm.h (IS_VPR_REGNUM): Move. | |
33417 | * config/arm/arm.md (VPR_REGNUM): Define before APSRQ_REGNUM. | |
33418 | (APSRQ_REGNUM): Modify. | |
33419 | (APSRGE_REGNUM): Modify. | |
33420 | * config/arm/arm_mve.h (vctp16q): Define macro. | |
33421 | (vctp32q): Likewise. | |
33422 | (vctp64q): Likewise. | |
33423 | (vctp8q): Likewise. | |
33424 | (vpnot): Likewise. | |
33425 | (__arm_vctp16q): Define intrinsic. | |
33426 | (__arm_vctp32q): Likewise. | |
33427 | (__arm_vctp64q): Likewise. | |
33428 | (__arm_vctp8q): Likewise. | |
33429 | (__arm_vpnot): Likewise. | |
33430 | * config/arm/arm_mve_builtins.def (UNOP_UNONE_UNONE): Use builtin | |
33431 | qualifier. | |
33432 | * config/arm/mve.md (mve_vctp<mode1>qhi): Define RTL pattern. | |
33433 | (mve_vpnothi): Likewise. | |
33434 | ||
33435 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33436 | Mihail Ionescu <mihail.ionescu@arm.com> | |
33437 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33438 | ||
33439 | * config/arm/arm.h (enum reg_class): Define new class EVEN_REGS. | |
33440 | * config/arm/arm_mve.h (vdupq_n_s8): Define macro. | |
33441 | (vdupq_n_s16): Likewise. | |
33442 | (vdupq_n_s32): Likewise. | |
33443 | (vabsq_s8): Likewise. | |
33444 | (vabsq_s16): Likewise. | |
33445 | (vabsq_s32): Likewise. | |
33446 | (vclsq_s8): Likewise. | |
33447 | (vclsq_s16): Likewise. | |
33448 | (vclsq_s32): Likewise. | |
33449 | (vclzq_s8): Likewise. | |
33450 | (vclzq_s16): Likewise. | |
33451 | (vclzq_s32): Likewise. | |
33452 | (vnegq_s8): Likewise. | |
33453 | (vnegq_s16): Likewise. | |
33454 | (vnegq_s32): Likewise. | |
33455 | (vaddlvq_s32): Likewise. | |
33456 | (vaddvq_s8): Likewise. | |
33457 | (vaddvq_s16): Likewise. | |
33458 | (vaddvq_s32): Likewise. | |
33459 | (vmovlbq_s8): Likewise. | |
33460 | (vmovlbq_s16): Likewise. | |
33461 | (vmovltq_s8): Likewise. | |
33462 | (vmovltq_s16): Likewise. | |
33463 | (vmvnq_s8): Likewise. | |
33464 | (vmvnq_s16): Likewise. | |
33465 | (vmvnq_s32): Likewise. | |
33466 | (vrev16q_s8): Likewise. | |
33467 | (vrev32q_s8): Likewise. | |
33468 | (vrev32q_s16): Likewise. | |
33469 | (vqabsq_s8): Likewise. | |
33470 | (vqabsq_s16): Likewise. | |
33471 | (vqabsq_s32): Likewise. | |
33472 | (vqnegq_s8): Likewise. | |
33473 | (vqnegq_s16): Likewise. | |
33474 | (vqnegq_s32): Likewise. | |
33475 | (vcvtaq_s16_f16): Likewise. | |
33476 | (vcvtaq_s32_f32): Likewise. | |
33477 | (vcvtnq_s16_f16): Likewise. | |
33478 | (vcvtnq_s32_f32): Likewise. | |
33479 | (vcvtpq_s16_f16): Likewise. | |
33480 | (vcvtpq_s32_f32): Likewise. | |
33481 | (vcvtmq_s16_f16): Likewise. | |
33482 | (vcvtmq_s32_f32): Likewise. | |
33483 | (vmvnq_u8): Likewise. | |
33484 | (vmvnq_u16): Likewise. | |
33485 | (vmvnq_u32): Likewise. | |
33486 | (vdupq_n_u8): Likewise. | |
33487 | (vdupq_n_u16): Likewise. | |
33488 | (vdupq_n_u32): Likewise. | |
33489 | (vclzq_u8): Likewise. | |
33490 | (vclzq_u16): Likewise. | |
33491 | (vclzq_u32): Likewise. | |
33492 | (vaddvq_u8): Likewise. | |
33493 | (vaddvq_u16): Likewise. | |
33494 | (vaddvq_u32): Likewise. | |
33495 | (vrev32q_u8): Likewise. | |
33496 | (vrev32q_u16): Likewise. | |
33497 | (vmovltq_u8): Likewise. | |
33498 | (vmovltq_u16): Likewise. | |
33499 | (vmovlbq_u8): Likewise. | |
33500 | (vmovlbq_u16): Likewise. | |
33501 | (vrev16q_u8): Likewise. | |
33502 | (vaddlvq_u32): Likewise. | |
33503 | (vcvtpq_u16_f16): Likewise. | |
33504 | (vcvtpq_u32_f32): Likewise. | |
33505 | (vcvtnq_u16_f16): Likewise. | |
33506 | (vcvtmq_u16_f16): Likewise. | |
33507 | (vcvtmq_u32_f32): Likewise. | |
33508 | (vcvtaq_u16_f16): Likewise. | |
33509 | (vcvtaq_u32_f32): Likewise. | |
33510 | (__arm_vdupq_n_s8): Define intrinsic. | |
33511 | (__arm_vdupq_n_s16): Likewise. | |
33512 | (__arm_vdupq_n_s32): Likewise. | |
33513 | (__arm_vabsq_s8): Likewise. | |
33514 | (__arm_vabsq_s16): Likewise. | |
33515 | (__arm_vabsq_s32): Likewise. | |
33516 | (__arm_vclsq_s8): Likewise. | |
33517 | (__arm_vclsq_s16): Likewise. | |
33518 | (__arm_vclsq_s32): Likewise. | |
33519 | (__arm_vclzq_s8): Likewise. | |
33520 | (__arm_vclzq_s16): Likewise. | |
33521 | (__arm_vclzq_s32): Likewise. | |
33522 | (__arm_vnegq_s8): Likewise. | |
33523 | (__arm_vnegq_s16): Likewise. | |
33524 | (__arm_vnegq_s32): Likewise. | |
33525 | (__arm_vaddlvq_s32): Likewise. | |
33526 | (__arm_vaddvq_s8): Likewise. | |
33527 | (__arm_vaddvq_s16): Likewise. | |
33528 | (__arm_vaddvq_s32): Likewise. | |
33529 | (__arm_vmovlbq_s8): Likewise. | |
33530 | (__arm_vmovlbq_s16): Likewise. | |
33531 | (__arm_vmovltq_s8): Likewise. | |
33532 | (__arm_vmovltq_s16): Likewise. | |
33533 | (__arm_vmvnq_s8): Likewise. | |
33534 | (__arm_vmvnq_s16): Likewise. | |
33535 | (__arm_vmvnq_s32): Likewise. | |
33536 | (__arm_vrev16q_s8): Likewise. | |
33537 | (__arm_vrev32q_s8): Likewise. | |
33538 | (__arm_vrev32q_s16): Likewise. | |
33539 | (__arm_vqabsq_s8): Likewise. | |
33540 | (__arm_vqabsq_s16): Likewise. | |
33541 | (__arm_vqabsq_s32): Likewise. | |
33542 | (__arm_vqnegq_s8): Likewise. | |
33543 | (__arm_vqnegq_s16): Likewise. | |
33544 | (__arm_vqnegq_s32): Likewise. | |
33545 | (__arm_vmvnq_u8): Likewise. | |
33546 | (__arm_vmvnq_u16): Likewise. | |
33547 | (__arm_vmvnq_u32): Likewise. | |
33548 | (__arm_vdupq_n_u8): Likewise. | |
33549 | (__arm_vdupq_n_u16): Likewise. | |
33550 | (__arm_vdupq_n_u32): Likewise. | |
33551 | (__arm_vclzq_u8): Likewise. | |
33552 | (__arm_vclzq_u16): Likewise. | |
33553 | (__arm_vclzq_u32): Likewise. | |
33554 | (__arm_vaddvq_u8): Likewise. | |
33555 | (__arm_vaddvq_u16): Likewise. | |
33556 | (__arm_vaddvq_u32): Likewise. | |
33557 | (__arm_vrev32q_u8): Likewise. | |
33558 | (__arm_vrev32q_u16): Likewise. | |
33559 | (__arm_vmovltq_u8): Likewise. | |
33560 | (__arm_vmovltq_u16): Likewise. | |
33561 | (__arm_vmovlbq_u8): Likewise. | |
33562 | (__arm_vmovlbq_u16): Likewise. | |
33563 | (__arm_vrev16q_u8): Likewise. | |
33564 | (__arm_vaddlvq_u32): Likewise. | |
33565 | (__arm_vcvtpq_u16_f16): Likewise. | |
33566 | (__arm_vcvtpq_u32_f32): Likewise. | |
33567 | (__arm_vcvtnq_u16_f16): Likewise. | |
33568 | (__arm_vcvtmq_u16_f16): Likewise. | |
33569 | (__arm_vcvtmq_u32_f32): Likewise. | |
33570 | (__arm_vcvtaq_u16_f16): Likewise. | |
33571 | (__arm_vcvtaq_u32_f32): Likewise. | |
33572 | (__arm_vcvtaq_s16_f16): Likewise. | |
33573 | (__arm_vcvtaq_s32_f32): Likewise. | |
33574 | (__arm_vcvtnq_s16_f16): Likewise. | |
33575 | (__arm_vcvtnq_s32_f32): Likewise. | |
33576 | (__arm_vcvtpq_s16_f16): Likewise. | |
33577 | (__arm_vcvtpq_s32_f32): Likewise. | |
33578 | (__arm_vcvtmq_s16_f16): Likewise. | |
33579 | (__arm_vcvtmq_s32_f32): Likewise. | |
33580 | (vdupq_n): Define polymorphic variant. | |
33581 | (vabsq): Likewise. | |
33582 | (vclsq): Likewise. | |
33583 | (vclzq): Likewise. | |
33584 | (vnegq): Likewise. | |
33585 | (vaddlvq): Likewise. | |
33586 | (vaddvq): Likewise. | |
33587 | (vmovlbq): Likewise. | |
33588 | (vmovltq): Likewise. | |
33589 | (vmvnq): Likewise. | |
33590 | (vrev16q): Likewise. | |
33591 | (vrev32q): Likewise. | |
33592 | (vqabsq): Likewise. | |
33593 | (vqnegq): Likewise. | |
33594 | * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it. | |
33595 | (UNOP_SNONE_NONE): Likewise. | |
33596 | (UNOP_UNONE_UNONE): Likewise. | |
33597 | (UNOP_UNONE_NONE): Likewise. | |
33598 | * config/arm/constraints.md (e): Define new constriant to allow only | |
33599 | even registers. | |
33600 | * config/arm/mve.md (mve_vqabsq_s<mode>): Define RTL pattern. | |
33601 | (mve_vnegq_s<mode>): Likewise. | |
33602 | (mve_vmvnq_<supf><mode>): Likewise. | |
33603 | (mve_vdupq_n_<supf><mode>): Likewise. | |
33604 | (mve_vclzq_<supf><mode>): Likewise. | |
33605 | (mve_vclsq_s<mode>): Likewise. | |
33606 | (mve_vaddvq_<supf><mode>): Likewise. | |
33607 | (mve_vabsq_s<mode>): Likewise. | |
33608 | (mve_vrev32q_<supf><mode>): Likewise. | |
33609 | (mve_vmovltq_<supf><mode>): Likewise. | |
33610 | (mve_vmovlbq_<supf><mode>): Likewise. | |
33611 | (mve_vcvtpq_<supf><mode>): Likewise. | |
33612 | (mve_vcvtnq_<supf><mode>): Likewise. | |
33613 | (mve_vcvtmq_<supf><mode>): Likewise. | |
33614 | (mve_vcvtaq_<supf><mode>): Likewise. | |
33615 | (mve_vrev16q_<supf>v16qi): Likewise. | |
33616 | (mve_vaddlvq_<supf>v4si): Likewise. | |
33617 | ||
33618 | 2020-03-17 Jakub Jelinek <jakub@redhat.com> | |
33619 | ||
33620 | * lra-spills.c (remove_pseudos): Fix up duplicated word issue in | |
33621 | a dump message. | |
33622 | * tree-sra.c (create_access_replacement): Fix up duplicated word issue | |
33623 | in a comment. | |
33624 | * read-rtl-function.c (find_param_by_name, | |
33625 | function_reader::parse_enum_value, function_reader::get_insn_by_uid): | |
33626 | Likewise. | |
33627 | * spellcheck.c (get_edit_distance_cutoff): Likewise. | |
33628 | * tree-data-ref.c (create_ifn_alias_checks): Likewise. | |
33629 | * tree.def (SWITCH_EXPR): Likewise. | |
33630 | * selftest.c (assert_str_contains): Likewise. | |
33631 | * ipa-param-manipulation.h (class ipa_param_body_adjustments): | |
33632 | Likewise. | |
33633 | * tree-ssa-math-opts.c (convert_expand_mult_copysign): Likewise. | |
33634 | * tree-ssa-loop-split.c (find_vdef_in_loop): Likewise. | |
33635 | * langhooks.h (struct lang_hooks_for_decls): Likewise. | |
33636 | * ipa-prop.h (struct ipa_param_descriptor): Likewise. | |
33637 | * tree-ssa-strlen.c (handle_builtin_string_cmp, handle_store): | |
33638 | Likewise. | |
33639 | * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise. | |
33640 | * tree-ssa-reassoc.c (reassociate_bb): Likewise. | |
33641 | * tree.c (component_ref_size): Likewise. | |
33642 | * hsa-common.c (hsa_init_compilation_unit_data): Likewise. | |
33643 | * gimple-ssa-sprintf.c (get_string_length, format_string, | |
33644 | format_directive): Likewise. | |
33645 | * omp-grid.c (grid_process_kernel_body_copy): Likewise. | |
33646 | * input.c (string_concat_db::get_string_concatenation, | |
33647 | test_lexer_string_locations_ucn4): Likewise. | |
33648 | * cfgexpand.c (pass_expand::execute): Likewise. | |
33649 | * gimple-ssa-warn-restrict.c (builtin_memref::offset_out_of_bounds, | |
33650 | maybe_diag_overlap): Likewise. | |
33651 | * rtl.c (RTX_CODE_HWINT_P_1): Likewise. | |
33652 | * shrink-wrap.c (spread_components): Likewise. | |
33653 | * tree-ssa-dse.c (initialize_ao_ref_for_dse, valid_ao_ref_for_dse): | |
33654 | Likewise. | |
33655 | * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): | |
33656 | Likewise. | |
33657 | * dwarf2out.c (dwarf2out_early_finish): Likewise. | |
33658 | * gimple-ssa-store-merging.c: Likewise. | |
33659 | * ira-costs.c (record_operand_costs): Likewise. | |
33660 | * tree-vect-loop.c (vectorizable_reduction): Likewise. | |
33661 | * target.def (dispatch): Likewise. | |
33662 | (validate_dims, gen_ccmp_first): Fix up duplicated word issue | |
33663 | in documentation text. | |
33664 | * doc/tm.texi: Regenerated. | |
33665 | * config/i386/x86-tune.def (X86_TUNE_PARTIAL_FLAG_REG_STALL): Fix up | |
33666 | duplicated word issue in a comment. | |
33667 | * config/i386/i386.c (ix86_test_loading_unspec): Likewise. | |
33668 | * config/i386/i386-features.c (remove_partial_avx_dependency): | |
33669 | Likewise. | |
33670 | * config/msp430/msp430.c (msp430_select_section): Likewise. | |
33671 | * config/gcn/gcn-run.c (load_image): Likewise. | |
33672 | * config/aarch64/aarch64-sve.md (sve_ld1r<mode>): Likewise. | |
33673 | * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Likewise. | |
33674 | * config/aarch64/falkor-tag-collision-avoidance.c | |
33675 | (single_dest_per_chain): Likewise. | |
33676 | * config/nvptx/nvptx.c (nvptx_record_fndecl): Likewise. | |
33677 | * config/fr30/fr30.c (fr30_arg_partial_bytes): Likewise. | |
33678 | * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Likewise. | |
33679 | * config/rs6000/rs6000-p8swap.c (replace_swapped_load_constant): | |
33680 | Likewise. | |
33681 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Likewise. | |
33682 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. | |
33683 | * config/rs6000/rs6000-logue.c | |
33684 | (rs6000_emit_probe_stack_range_stack_clash): Likewise. | |
33685 | * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Likewise. | |
33686 | Fix various other issues in the comment. | |
33687 | ||
33688 | 2020-03-17 Mihail Ionescu <mihail.ionescu@arm.com> | |
33689 | ||
33690 | * config/arm/t-rmprofile: create new multilib for | |
33691 | armv8.1-m.main+mve hard float and reuse v8-m.main ones for | |
33692 | v8.1-m.main+mve. | |
33693 | ||
33694 | 2020-03-17 Jakub Jelinek <jakub@redhat.com> | |
33695 | ||
33696 | PR tree-optimization/94015 | |
33697 | * tree-ssa-strlen.c (count_nonzero_bytes): Split portions of the | |
33698 | function where EXP is address of the bytes being stored rather than | |
33699 | the bytes themselves into count_nonzero_bytes_addr. Punt on zero | |
33700 | sized MEM_REF. Use VAR_P macro and handle CONST_DECL like VAR_DECLs. | |
33701 | Use ctor_for_folding instead of looking at DECL_INITIAL. Punt before | |
33702 | calling native_encode_expr if host or target doesn't have 8-bit | |
33703 | chars. Formatting fixes. | |
33704 | (count_nonzero_bytes_addr): New function. | |
33705 | ||
33706 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33707 | Mihail Ionescu <mihail.ionescu@arm.com> | |
33708 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33709 | ||
33710 | * config/arm/arm-builtins.c (UNOP_SNONE_SNONE_QUALIFIERS): Define. | |
33711 | (UNOP_SNONE_NONE_QUALIFIERS): Likewise. | |
33712 | (UNOP_SNONE_IMM_QUALIFIERS): Likewise. | |
33713 | (UNOP_UNONE_NONE_QUALIFIERS): Likewise. | |
33714 | (UNOP_UNONE_UNONE_QUALIFIERS): Likewise. | |
33715 | (UNOP_UNONE_IMM_QUALIFIERS): Likewise. | |
33716 | * config/arm/arm_mve.h (vmvnq_n_s16): Define macro. | |
33717 | (vmvnq_n_s32): Likewise. | |
33718 | (vrev64q_s8): Likewise. | |
33719 | (vrev64q_s16): Likewise. | |
33720 | (vrev64q_s32): Likewise. | |
33721 | (vcvtq_s16_f16): Likewise. | |
33722 | (vcvtq_s32_f32): Likewise. | |
33723 | (vrev64q_u8): Likewise. | |
33724 | (vrev64q_u16): Likewise. | |
33725 | (vrev64q_u32): Likewise. | |
33726 | (vmvnq_n_u16): Likewise. | |
33727 | (vmvnq_n_u32): Likewise. | |
33728 | (vcvtq_u16_f16): Likewise. | |
33729 | (vcvtq_u32_f32): Likewise. | |
33730 | (__arm_vmvnq_n_s16): Define intrinsic. | |
33731 | (__arm_vmvnq_n_s32): Likewise. | |
33732 | (__arm_vrev64q_s8): Likewise. | |
33733 | (__arm_vrev64q_s16): Likewise. | |
33734 | (__arm_vrev64q_s32): Likewise. | |
33735 | (__arm_vrev64q_u8): Likewise. | |
33736 | (__arm_vrev64q_u16): Likewise. | |
33737 | (__arm_vrev64q_u32): Likewise. | |
33738 | (__arm_vmvnq_n_u16): Likewise. | |
33739 | (__arm_vmvnq_n_u32): Likewise. | |
33740 | (__arm_vcvtq_s16_f16): Likewise. | |
33741 | (__arm_vcvtq_s32_f32): Likewise. | |
33742 | (__arm_vcvtq_u16_f16): Likewise. | |
33743 | (__arm_vcvtq_u32_f32): Likewise. | |
33744 | (vrev64q): Define polymorphic variant. | |
33745 | * config/arm/arm_mve_builtins.def (UNOP_SNONE_SNONE): Use it. | |
33746 | (UNOP_SNONE_NONE): Likewise. | |
33747 | (UNOP_SNONE_IMM): Likewise. | |
33748 | (UNOP_UNONE_UNONE): Likewise. | |
33749 | (UNOP_UNONE_NONE): Likewise. | |
33750 | (UNOP_UNONE_IMM): Likewise. | |
33751 | * config/arm/mve.md (mve_vrev64q_<supf><mode>): Define RTL pattern. | |
33752 | (mve_vcvtq_from_f_<supf><mode>): Likewise. | |
33753 | (mve_vmvnq_n_<supf><mode>): Likewise. | |
33754 | ||
33755 | 2020-03-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33756 | Mihail Ionescu <mihail.ionescu@arm.com> | |
33757 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33758 | ||
33759 | * config/arm/arm-builtins.c (UNOP_NONE_NONE_QUALIFIERS): Define macro. | |
33760 | (UNOP_NONE_SNONE_QUALIFIERS): Likewise. | |
33761 | (UNOP_NONE_UNONE_QUALIFIERS): Likewise. | |
33762 | * config/arm/arm_mve.h (vrndxq_f16): Define macro. | |
33763 | (vrndxq_f32): Likewise. | |
33764 | (vrndq_f16) Likewise. | |
33765 | (vrndq_f32): Likewise. | |
33766 | (vrndpq_f16): Likewise. | |
33767 | (vrndpq_f32): Likewise. | |
33768 | (vrndnq_f16): Likewise. | |
33769 | (vrndnq_f32): Likewise. | |
33770 | (vrndmq_f16): Likewise. | |
33771 | (vrndmq_f32): Likewise. | |
33772 | (vrndaq_f16): Likewise. | |
33773 | (vrndaq_f32): Likewise. | |
33774 | (vrev64q_f16): Likewise. | |
33775 | (vrev64q_f32): Likewise. | |
33776 | (vnegq_f16): Likewise. | |
33777 | (vnegq_f32): Likewise. | |
33778 | (vdupq_n_f16): Likewise. | |
33779 | (vdupq_n_f32): Likewise. | |
33780 | (vabsq_f16): Likewise. | |
33781 | (vabsq_f32): Likewise. | |
33782 | (vrev32q_f16): Likewise. | |
33783 | (vcvttq_f32_f16): Likewise. | |
33784 | (vcvtbq_f32_f16): Likewise. | |
33785 | (vcvtq_f16_s16): Likewise. | |
33786 | (vcvtq_f32_s32): Likewise. | |
33787 | (vcvtq_f16_u16): Likewise. | |
33788 | (vcvtq_f32_u32): Likewise. | |
33789 | (__arm_vrndxq_f16): Define intrinsic. | |
33790 | (__arm_vrndxq_f32): Likewise. | |
33791 | (__arm_vrndq_f16): Likewise. | |
33792 | (__arm_vrndq_f32): Likewise. | |
33793 | (__arm_vrndpq_f16): Likewise. | |
33794 | (__arm_vrndpq_f32): Likewise. | |
33795 | (__arm_vrndnq_f16): Likewise. | |
33796 | (__arm_vrndnq_f32): Likewise. | |
33797 | (__arm_vrndmq_f16): Likewise. | |
33798 | (__arm_vrndmq_f32): Likewise. | |
33799 | (__arm_vrndaq_f16): Likewise. | |
33800 | (__arm_vrndaq_f32): Likewise. | |
33801 | (__arm_vrev64q_f16): Likewise. | |
33802 | (__arm_vrev64q_f32): Likewise. | |
33803 | (__arm_vnegq_f16): Likewise. | |
33804 | (__arm_vnegq_f32): Likewise. | |
33805 | (__arm_vdupq_n_f16): Likewise. | |
33806 | (__arm_vdupq_n_f32): Likewise. | |
33807 | (__arm_vabsq_f16): Likewise. | |
33808 | (__arm_vabsq_f32): Likewise. | |
33809 | (__arm_vrev32q_f16): Likewise. | |
33810 | (__arm_vcvttq_f32_f16): Likewise. | |
33811 | (__arm_vcvtbq_f32_f16): Likewise. | |
33812 | (__arm_vcvtq_f16_s16): Likewise. | |
33813 | (__arm_vcvtq_f32_s32): Likewise. | |
33814 | (__arm_vcvtq_f16_u16): Likewise. | |
33815 | (__arm_vcvtq_f32_u32): Likewise. | |
33816 | (vrndxq): Define polymorphic variants. | |
33817 | (vrndq): Likewise. | |
33818 | (vrndpq): Likewise. | |
33819 | (vrndnq): Likewise. | |
33820 | (vrndmq): Likewise. | |
33821 | (vrndaq): Likewise. | |
33822 | (vrev64q): Likewise. | |
33823 | (vnegq): Likewise. | |
33824 | (vabsq): Likewise. | |
33825 | (vrev32q): Likewise. | |
33826 | (vcvtbq_f32): Likewise. | |
33827 | (vcvttq_f32): Likewise. | |
33828 | (vcvtq): Likewise. | |
33829 | * config/arm/arm_mve_builtins.def (VAR2): Define. | |
33830 | (VAR1): Define. | |
33831 | * config/arm/mve.md (mve_vrndxq_f<mode>): Add RTL pattern. | |
33832 | (mve_vrndq_f<mode>): Likewise. | |
33833 | (mve_vrndpq_f<mode>): Likewise. | |
33834 | (mve_vrndnq_f<mode>): Likewise. | |
33835 | (mve_vrndmq_f<mode>): Likewise. | |
33836 | (mve_vrndaq_f<mode>): Likewise. | |
33837 | (mve_vrev64q_f<mode>): Likewise. | |
33838 | (mve_vnegq_f<mode>): Likewise. | |
33839 | (mve_vdupq_n_f<mode>): Likewise. | |
33840 | (mve_vabsq_f<mode>): Likewise. | |
33841 | (mve_vrev32q_fv8hf): Likewise. | |
33842 | (mve_vcvttq_f32_f16v4sf): Likewise. | |
33843 | (mve_vcvtbq_f32_f16v4sf): Likewise. | |
33844 | (mve_vcvtq_to_f_<supf><mode>): Likewise. | |
33845 | ||
33846 | 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33847 | Mihail Ionescu <mihail.ionescu@arm.com> | |
33848 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33849 | ||
33850 | * config/arm/arm-builtins.c (CF): Define mve_builtin_data. | |
33851 | (VAR1): Define. | |
33852 | (ARM_BUILTIN_MVE_PATTERN_START): Define. | |
33853 | (arm_init_mve_builtins): Define function. | |
33854 | (arm_init_builtins): Add TARGET_HAVE_MVE check. | |
33855 | (arm_expand_builtin_1): Check the range of fcode. | |
33856 | (arm_expand_mve_builtin): Define function to expand MVE builtins. | |
33857 | (arm_expand_builtin): Check the range of fcode. | |
33858 | * config/arm/arm_mve.h (__ARM_FEATURE_MVE): Define MVE floating point | |
33859 | types. | |
33860 | (__ARM_MVE_PRESERVE_USER_NAMESPACE): Define to protect user namespace. | |
33861 | (vst4q_s8): Define macro. | |
33862 | (vst4q_s16): Likewise. | |
33863 | (vst4q_s32): Likewise. | |
33864 | (vst4q_u8): Likewise. | |
33865 | (vst4q_u16): Likewise. | |
33866 | (vst4q_u32): Likewise. | |
33867 | (vst4q_f16): Likewise. | |
33868 | (vst4q_f32): Likewise. | |
33869 | (__arm_vst4q_s8): Define inline builtin. | |
33870 | (__arm_vst4q_s16): Likewise. | |
33871 | (__arm_vst4q_s32): Likewise. | |
33872 | (__arm_vst4q_u8): Likewise. | |
33873 | (__arm_vst4q_u16): Likewise. | |
33874 | (__arm_vst4q_u32): Likewise. | |
33875 | (__arm_vst4q_f16): Likewise. | |
33876 | (__arm_vst4q_f32): Likewise. | |
33877 | (__ARM_mve_typeid): Define macro with MVE types. | |
33878 | (__ARM_mve_coerce): Define macro with _Generic feature. | |
33879 | (vst4q): Define polymorphic variant for different vst4q builtins. | |
33880 | * config/arm/arm_mve_builtins.def: New file. | |
33881 | * config/arm/iterators.md (VSTRUCT): Modify to allow XI and OI | |
33882 | modes in MVE. | |
33883 | * config/arm/mve.md (MVE_VLD_ST): Define iterator. | |
33884 | (unspec): Define unspec. | |
33885 | (mve_vst4q<mode>): Define RTL pattern. | |
33886 | * config/arm/neon.md (mov<mode>): Modify expand to allow XI and OI | |
33887 | modes in MVE. | |
33888 | (neon_mov<mode>): Modify RTL define_insn to allow XI and OI modes | |
33889 | in MVE. | |
33890 | (define_split): Allow OI mode split for MVE after reload. | |
33891 | (define_split): Allow XI mode split for MVE after reload. | |
33892 | * config/arm/t-arm (arm.o): Add entry for arm_mve_builtins.def. | |
33893 | (arm-builtins.o): Likewise. | |
33894 | ||
33895 | 2020-03-17 Christophe Lyon <christophe.lyon@linaro.org> | |
33896 | ||
33897 | * c-typeck.c (process_init_element): Handle constructor_type with | |
33898 | type size represented by POLY_INT_CST. | |
33899 | ||
33900 | 2020-03-17 Jakub Jelinek <jakub@redhat.com> | |
33901 | ||
33902 | PR tree-optimization/94187 | |
33903 | * tree-ssa-strlen.c (count_nonzero_bytes): Punt if | |
33904 | nchars - offset < nbytes. | |
33905 | ||
33906 | PR middle-end/94189 | |
33907 | * builtins.c (expand_builtin_strnlen): Do return NULL_RTX if we would | |
33908 | emit a warning if it was enabled and don't depend on TREE_NO_WARNING | |
33909 | for code-generation. | |
33910 | ||
33911 | 2020-03-16 Vladimir Makarov <vmakarov@redhat.com> | |
33912 | ||
33913 | PR target/94185 | |
33914 | * lra-spills.c (remove_pseudos): Do not reuse insn alternative | |
33915 | after changing memory subreg. | |
33916 | ||
33917 | 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33918 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33919 | ||
33920 | * config/arm/arm.c (arm_libcall_uses_aapcs_base): Modify function to add | |
33921 | emulator calls for dobule precision arithmetic operations for MVE. | |
33922 | ||
33923 | 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33924 | Mihail Ionescu <mihail.ionescu@arm.com> | |
33925 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
33926 | ||
33927 | * common/config/arm/arm-common.c (arm_asm_auto_mfpu): When vfp_base | |
33928 | feature bit is on and -mfpu=auto is passed as compiler option, do not | |
33929 | generate error on not finding any matching fpu. Because in this case | |
33930 | fpu is not required. | |
33931 | * config/arm/arm-cpus.in (vfp_base): Define feature bit, this bit is | |
33932 | enabled for MVE and also for all VFP extensions. | |
33933 | (VFPv2): Modify fgroup to enable vfp_base feature bit when ever VFPv2 | |
33934 | is enabled. | |
33935 | (MVE): Define fgroup to enable feature bits mve, vfp_base and armv7em. | |
33936 | (MVE_FP): Define fgroup to enable feature bits is fgroup MVE and FPv5 | |
33937 | along with feature bits mve_float. | |
33938 | (mve): Modify add options in armv8.1-m.main arch for MVE. | |
33939 | (mve.fp): Modify add options in armv8.1-m.main arch for MVE with | |
33940 | floating point. | |
33941 | * config/arm/arm.c (use_return_insn): Replace the | |
33942 | check with TARGET_VFP_BASE. | |
33943 | (thumb2_legitimate_index_p): Replace TARGET_HARD_FLOAT with | |
33944 | TARGET_VFP_BASE. | |
33945 | (arm_rtx_costs_internal): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE" | |
33946 | with TARGET_VFP_BASE, to allow cost calculations for copies in MVE as | |
33947 | well. | |
33948 | (arm_get_vfp_saved_size): Replace TARGET_HARD_FLOAT with | |
33949 | TARGET_VFP_BASE, to allow space calculation for VFP registers in MVE | |
33950 | as well. | |
33951 | (arm_compute_frame_layout): Likewise. | |
33952 | (arm_save_coproc_regs): Likewise. | |
33953 | (arm_fixed_condition_code_regs): Modify to enable using VFPCC_REGNUM | |
33954 | in MVE as well. | |
33955 | (arm_hard_regno_mode_ok): Replace "TARGET_HARD_FLOAT || TARGET_HAVE_MVE" | |
33956 | with equivalent macro TARGET_VFP_BASE. | |
33957 | (arm_expand_epilogue_apcs_frame): Likewise. | |
33958 | (arm_expand_epilogue): Likewise. | |
33959 | (arm_conditional_register_usage): Likewise. | |
33960 | (arm_declare_function_name): Add check to skip printing .fpu directive | |
33961 | in assembly file when TARGET_VFP_BASE is enabled and fpu_to_print is | |
33962 | "softvfp". | |
33963 | * config/arm/arm.h (TARGET_VFP_BASE): Define. | |
33964 | * config/arm/arm.md (arch): Add "mve" to arch. | |
33965 | (eq_attr "arch" "mve"): Enable on TARGET_HAVE_MVE is true. | |
33966 | (vfp_pop_multiple_with_writeback): Replace "TARGET_HARD_FLOAT | |
33967 | || TARGET_HAVE_MVE" with equivalent macro TARGET_VFP_BASE. | |
33968 | * config/arm/constraints.md (Uf): Define to allow modification to FPCCR | |
33969 | in MVE. | |
33970 | * config/arm/thumb2.md (thumb2_movsfcc_soft_insn): Modify target guard | |
33971 | to not allow for MVE. | |
33972 | * config/arm/unspecs.md (UNSPEC_GET_FPSCR): Move to volatile unspecs | |
33973 | enum. | |
33974 | (VUNSPEC_GET_FPSCR): Define. | |
33975 | * config/arm/vfp.md (thumb2_movhi_vfp): Add support for VMSR and VMRS | |
33976 | instructions which move to general-purpose Register from Floating-point | |
33977 | Special register and vice-versa. | |
33978 | (thumb2_movhi_fp16): Likewise. | |
33979 | (thumb2_movsi_vfp): Add support for VMSR and VMRS instructions along | |
33980 | with MCR and MRC instructions which set and get Floating-point Status | |
33981 | and Control Register (FPSCR). | |
33982 | (movdi_vfp): Modify pattern to enable Single-precision scalar float move | |
33983 | in MVE. | |
33984 | (thumb2_movdf_vfp): Modify pattern to enable Double-precision scalar | |
33985 | float move patterns in MVE. | |
33986 | (thumb2_movsfcc_vfp): Modify pattern to enable single float conditional | |
33987 | code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check. | |
33988 | (thumb2_movdfcc_vfp): Modify pattern to enable double float conditional | |
33989 | code move patterns of VFP also in MVE by adding TARGET_VFP_BASE check. | |
33990 | (push_multi_vfp): Add support to use VFP VPUSH pattern for MVE by adding | |
33991 | TARGET_VFP_BASE check. | |
33992 | (set_fpscr): Add support to set FPSCR register for MVE. Modify pattern | |
33993 | using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR | |
33994 | register. | |
33995 | (get_fpscr): Add support to get FPSCR register for MVE. Modify pattern | |
33996 | using VFPCC_REGNUM as few MVE intrinsics use carry bit of FPSCR | |
33997 | register. | |
33998 | ||
33999 | ||
34000 | 2020-03-16 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
34001 | Mihail Ionescu <mihail.ionescu@arm.com> | |
34002 | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | |
34003 | ||
34004 | * config.gcc (arm_mve.h): Include mve intrinsics header file. | |
34005 | * config/arm/aout.h (p0): Add new register name for MVE predicated | |
34006 | cases. | |
34007 | * config/arm-builtins.c (ARM_BUILTIN_SIMD_LANE_CHECK): Define macro | |
34008 | common to Neon and MVE. | |
34009 | (ARM_BUILTIN_NEON_LANE_CHECK): Renamed to ARM_BUILTIN_SIMD_LANE_CHECK. | |
34010 | (arm_init_simd_builtin_types): Disable poly types for MVE. | |
34011 | (arm_init_neon_builtins): Move a check to arm_init_builtins function. | |
34012 | (arm_init_builtins): Use ARM_BUILTIN_SIMD_LANE_CHECK instead of | |
34013 | ARM_BUILTIN_NEON_LANE_CHECK. | |
34014 | (mve_dereference_pointer): Add function. | |
34015 | (arm_expand_builtin_args): Call to mve_dereference_pointer when MVE is | |
34016 | enabled. | |
34017 | (arm_expand_neon_builtin): Moved to arm_expand_builtin function. | |
34018 | (arm_expand_builtin): Moved from arm_expand_neon_builtin function. | |
34019 | * config/arm/arm-c.c (__ARM_FEATURE_MVE): Define macro for MVE and MVE | |
34020 | with floating point enabled. | |
34021 | * config/arm/arm-protos.h (neon_immediate_valid_for_move): Renamed to | |
34022 | simd_immediate_valid_for_move. | |
34023 | (simd_immediate_valid_for_move): Renamed from | |
34024 | neon_immediate_valid_for_move function. | |
34025 | * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Generate | |
34026 | error if vfpv2 feature bit is disabled and mve feature bit is also | |
34027 | disabled for HARD_FLOAT_ABI. | |
34028 | (use_return_insn): Check to not push VFP regs for MVE. | |
34029 | (aapcs_vfp_allocate): Add MVE check to have same Procedure Call Standard | |
34030 | as Neon. | |
34031 | (aapcs_vfp_allocate_return_reg): Likewise. | |
34032 | (thumb2_legitimate_address_p): Check to return 0 on valid Thumb-2 | |
34033 | address operand for MVE. | |
34034 | (arm_rtx_costs_internal): MVE check to determine cost of rtx. | |
34035 | (neon_valid_immediate): Rename to simd_valid_immediate. | |
34036 | (simd_valid_immediate): Rename from neon_valid_immediate. | |
34037 | (simd_valid_immediate): MVE check on size of vector is 128 bits. | |
34038 | (neon_immediate_valid_for_move): Rename to | |
34039 | simd_immediate_valid_for_move. | |
34040 | (simd_immediate_valid_for_move): Rename from | |
34041 | neon_immediate_valid_for_move. | |
34042 | (neon_immediate_valid_for_logic): Modify call to neon_valid_immediate | |
34043 | function. | |
34044 | (neon_make_constant): Modify call to neon_valid_immediate function. | |
34045 | (neon_vector_mem_operand): Return VFP register for POST_INC or PRE_DEC | |
34046 | for MVE. | |
34047 | (output_move_neon): Add MVE check to generate vldm/vstm instrcutions. | |
34048 | (arm_compute_frame_layout): Calculate space for saved VFP registers for | |
34049 | MVE. | |
34050 | (arm_save_coproc_regs): Save coproc registers for MVE. | |
34051 | (arm_print_operand): Add case 'E' to print memory operands for MVE. | |
34052 | (arm_print_operand_address): Check to print register number for MVE. | |
34053 | (arm_hard_regno_mode_ok): Check for arm hard regno mode ok for MVE. | |
34054 | (arm_modes_tieable_p): Check to allow structure mode for MVE. | |
34055 | (arm_regno_class): Add VPR_REGNUM check. | |
34056 | (arm_expand_epilogue_apcs_frame): MVE check to calculate epilogue code | |
34057 | for APCS frame. | |
34058 | (arm_expand_epilogue): MVE check for enabling pop instructions in | |
34059 | epilogue. | |
34060 | (arm_print_asm_arch_directives): Modify function to disable print of | |
34061 | .arch_extension "mve" and "fp" for cases where MVE is enabled with | |
34062 | "SOFT FLOAT ABI". | |
34063 | (arm_vector_mode_supported_p): Check for modes available in MVE interger | |
34064 | and MVE floating point. | |
34065 | (arm_array_mode_supported_p): Add TARGET_HAVE_MVE check for array mode | |
34066 | pointer support. | |
34067 | (arm_conditional_register_usage): Enable usage of conditional regsiter | |
34068 | for MVE. | |
34069 | (fixed_regs[VPR_REGNUM]): Enable VPR_REG for MVE. | |
34070 | (arm_declare_function_name): Modify function to disable print of | |
34071 | .arch_extension "mve" and "fp" for cases where MVE is enabled with | |
34072 | "SOFT FLOAT ABI". | |
34073 | * config/arm/arm.h (TARGET_HAVE_MVE): Disable for soft float abi and | |
34074 | when target general registers are required. | |
34075 | (TARGET_HAVE_MVE_FLOAT): Likewise. | |
34076 | (FIXED_REGISTERS): Add bit for VFP_REG class which is enabled in arm.c | |
34077 | for MVE. | |
34078 | (CALL_USED_REGISTERS): Set bit for VFP_REG class in CALL_USED_REGISTERS | |
34079 | which indicate this is not available for across function calls. | |
34080 | (FIRST_PSEUDO_REGISTER): Modify. | |
34081 | (VALID_MVE_MODE): Define valid MVE mode. | |
34082 | (VALID_MVE_SI_MODE): Define valid MVE SI mode. | |
34083 | (VALID_MVE_SF_MODE): Define valid MVE SF mode. | |
34084 | (VALID_MVE_STRUCT_MODE): Define valid MVE struct mode. | |
34085 | (VPR_REGNUM): Add Vector Predication Register in arm_regs_in_sequence | |
34086 | for MVE. | |
34087 | (IS_VPR_REGNUM): Macro to check for VPR_REG register. | |
34088 | (REG_ALLOC_ORDER): Add VPR_REGNUM entry. | |
34089 | (enum reg_class): Add VPR_REG entry. | |
34090 | (REG_CLASS_NAMES): Add VPR_REG entry. | |
34091 | * config/arm/arm.md (VPR_REGNUM): Define. | |
34092 | (conds): Check is_mve_type attrbiute to differentiate "conditional" and | |
34093 | "unconditional" instructions. | |
34094 | (arm_movsf_soft_insn): Modify RTL to not allow for MVE. | |
34095 | (movdf_soft_insn): Modify RTL to not allow for MVE. | |
34096 | (vfp_pop_multiple_with_writeback): Enable for MVE. | |
34097 | (include "mve.md"): Include mve.md file. | |
34098 | * config/arm/arm_mve.h: Add MVE intrinsics head file. | |
34099 | * config/arm/constraints.md (Up): Constraint to enable "p0" register in MVE | |
34100 | for vector predicated operands. | |
34101 | * config/arm/iterators.md (VNIM1): Define. | |
34102 | (VNINOTM1): Define. | |
34103 | (VHFBF_split): Define | |
34104 | * config/arm/mve.md: New file. | |
34105 | (mve_mov<mode>): Define RTL for move, store and load in MVE. | |
34106 | (mve_mov<mode>): Define move RTL pattern with vec_duplicate operator for | |
34107 | second operand. | |
34108 | * config/arm/neon.md (neon_immediate_valid_for_move): Rename with | |
34109 | simd_immediate_valid_for_move. | |
34110 | (neon_mov<mode>): Split pattern and move expand pattern "movv8hf" which | |
34111 | is common to MVE and NEON to vec-common.md file. | |
34112 | (vec_init<mode><V_elem_l>): Add TARGET_HAVE_MVE check. | |
34113 | * config/arm/predicates.md (vpr_register_operand): Define. | |
34114 | * config/arm/t-arm: Add mve.md file. | |
34115 | * config/arm/types.md (mve_move): Add MVE instructions mve_move to | |
34116 | attribute "type". | |
34117 | (mve_store): Add MVE instructions mve_store to attribute "type". | |
34118 | (mve_load): Add MVE instructions mve_load to attribute "type". | |
34119 | (is_mve_type): Define attribute. | |
34120 | * config/arm/vec-common.md (mov<mode>): Modify RTL expand to support | |
34121 | standard move patterns in MVE along with NEON and IWMMXT with mode | |
34122 | iterator VNIM1. | |
34123 | (mov<mode>): Modify RTL expand to support standard move patterns in NEON | |
34124 | and IWMMXT with mode iterator V8HF. | |
34125 | (movv8hf): Define RTL expand to support standard "movv8hf" pattern in | |
34126 | NEON and MVE. | |
34127 | * config/arm/vfp.md (neon_immediate_valid_for_move): Rename to | |
34128 | simd_immediate_valid_for_move. | |
34129 | ||
34130 | ||
34131 | 2020-03-16 H.J. Lu <hongjiu.lu@intel.com> | |
34132 | ||
34133 | PR target/89229 | |
34134 | * config/i386/i386.md (*movsi_internal): Call ix86_output_ssemov | |
34135 | for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL | |
34136 | check. | |
34137 | * config/i386/predicates.md (ext_sse_reg_operand): Removed. | |
34138 | ||
34139 | 2020-03-16 Jakub Jelinek <jakub@redhat.com> | |
34140 | ||
34141 | PR debug/94167 | |
34142 | * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands | |
34143 | DEBUG_STMTs. | |
34144 | ||
34145 | PR tree-optimization/94166 | |
34146 | * tree-ssa-reassoc.c (sort_by_mach_mode): Use SSA_NAME_VERSION | |
34147 | as secondary comparison key. | |
34148 | ||
34149 | 2020-03-16 Bin Cheng <bin.cheng@linux.alibaba.com> | |
34150 | ||
34151 | PR tree-optimization/94125 | |
34152 | * tree-loop-distribution.c | |
34153 | (loop_distribution::break_alias_scc_partitions): Update post order | |
34154 | number for merged scc. | |
34155 | ||
34156 | 2020-03-15 H.J. Lu <hongjiu.lu@intel.com> | |
34157 | ||
34158 | PR target/89229 | |
34159 | * config/i386/i386.c (ix86_output_ssemov): Handle MODE_SI and | |
34160 | MODE_SF. | |
34161 | * config/i386/i386.md (*movsf_internal): Call ix86_output_ssemov | |
34162 | for TYPE_SSEMOV. Remove TARGET_PREFER_AVX256, TARGET_AVX512VL | |
34163 | and ext_sse_reg_operand check. | |
34164 | ||
34165 | 2020-03-15 Lewis Hyatt <lhyatt@gmail.com> | |
34166 | ||
34167 | * common.opt: Avoid redundancy in the help text. | |
34168 | * config/arc/arc.opt: Likewise. | |
34169 | * config/cr16/cr16.opt: Likewise. | |
34170 | ||
34171 | 2020-03-14 Jakub Jelinek <jakub@redhat.com> | |
34172 | ||
34173 | PR middle-end/93566 | |
34174 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
34175 | convert_local_omp_clauses): Handle {,in_,task_}reduction clauses | |
34176 | with C/C++ array sections. | |
34177 | ||
34178 | 2020-03-14 H.J. Lu <hongjiu.lu@intel.com> | |
34179 | ||
34180 | PR target/89229 | |
34181 | * config/i386/i386.md (*movdi_internal): Call ix86_output_ssemov | |
34182 | for TYPE_SSEMOV. Remove ext_sse_reg_operand and TARGET_AVX512VL | |
34183 | check. | |
34184 | ||
34185 | 2020-03-14 Jakub Jelinek <jakub@redhat.com> | |
34186 | ||
34187 | * gimple-fold.c (gimple_fold_builtin_strncpy): Change | |
34188 | "a an" to "an" in a comment. | |
34189 | * hsa-common.h (is_a_helper): Likewise. | |
34190 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. | |
34191 | * config/arc/arc.c (arc600_corereg_hazard): Likewise. | |
34192 | * config/s390/s390.c (s390_indirect_branch_via_thunk): Likewise. | |
34193 | ||
34194 | 2020-03-13 Aaron Sawdey <acsawdey@linux.ibm.com> | |
34195 | ||
34196 | PR target/92379 | |
34197 | * config/rs6000/rs6000.c (num_insns_constant_multi): Don't shift a | |
34198 | 64-bit value by 64 bits (UB). | |
34199 | ||
34200 | 2020-03-13 Vladimir Makarov <vmakarov@redhat.com> | |
34201 | ||
34202 | PR rtl-optimization/92303 | |
34203 | * lra-spills.c (remove_pseudos): Try to simplify memory subreg. | |
34204 | ||
34205 | 2020-03-13 Segher Boessenkool <segher@kernel.crashing.org> | |
34206 | ||
34207 | PR rtl-optimization/94148 | |
34208 | PR rtl-optimization/94042 | |
34209 | * df-core.c (BB_LAST_CHANGE_AGE): Delete. | |
34210 | (df_worklist_propagate_forward): New parameter last_change_age, use | |
34211 | that instead of bb->aux. | |
34212 | (df_worklist_propagate_backward): Ditto. | |
34213 | (df_worklist_dataflow_doublequeue): Use a local array last_change_age. | |
34214 | ||
34215 | 2020-03-13 Richard Biener <rguenther@suse.de> | |
34216 | ||
34217 | PR tree-optimization/94163 | |
34218 | * tree-ssa-pre.c (create_expression_by_pieces): Check | |
34219 | whether alignment would be zero. | |
34220 | ||
34221 | 2020-03-13 Martin Liska <mliska@suse.cz> | |
34222 | ||
34223 | PR lto/94157 | |
34224 | * lto-wrapper.c (run_gcc): Use concat for appending | |
34225 | to collect_gcc_options. | |
34226 | ||
34227 | 2020-03-13 Jakub Jelinek <jakub@redhat.com> | |
34228 | ||
34229 | PR target/94121 | |
34230 | * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode | |
34231 | instead of GEN_INT. | |
34232 | ||
34233 | 2020-03-13 H.J. Lu <hongjiu.lu@intel.com> | |
34234 | ||
34235 | PR target/89229 | |
34236 | * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DF. | |
34237 | * config/i386/i386.md (*movdf_internal): Call ix86_output_ssemov | |
34238 | for TYPE_SSEMOV. Remove TARGET_AVX512F, TARGET_PREFER_AVX256, | |
34239 | TARGET_AVX512VL and ext_sse_reg_operand check. | |
34240 | ||
34241 | 2020-03-13 Bu Le <bule1@huawei.com> | |
34242 | ||
34243 | PR target/94154 | |
34244 | * config/aarch64/aarch64.opt (-param=aarch64-float-recp-precision=) | |
34245 | (-param=aarch64-double-recp-precision=): New options. | |
34246 | * doc/invoke.texi: Document them. | |
34247 | * config/aarch64/aarch64.c (aarch64_emit_approx_div): Use them | |
34248 | instead of hard-coding the choice of 1 for float and 2 for double. | |
34249 | ||
34250 | 2020-03-13 Eric Botcazou <ebotcazou@adacore.com> | |
34251 | ||
34252 | PR rtl-optimization/94119 | |
34253 | * resource.h (clear_hashed_info_until_next_barrier): Declare. | |
34254 | * resource.c (clear_hashed_info_until_next_barrier): New function. | |
34255 | * reorg.c (add_to_delay_list): Fix formatting. | |
34256 | (relax_delay_slots): Call clear_hashed_info_until_next_barrier on | |
34257 | the next instruction after removing a BARRIER. | |
34258 | ||
34259 | 2020-03-13 Eric Botcazou <ebotcazou@adacore.com> | |
34260 | ||
34261 | PR middle-end/92071 | |
34262 | * expmed.c (store_integral_bit_field): For fields larger than a word, | |
34263 | call extract_bit_field on the value if the mode is BLKmode. Remove | |
34264 | specific path for big-endian targets and tidy things up a little bit. | |
34265 | ||
34266 | 2020-03-12 Richard Sandiford <richard.sandiford@arm.com> | |
34267 | ||
34268 | PR rtl-optimization/90275 | |
34269 | * cse.c (cse_insn): Delete no-op register moves too. | |
34270 | ||
34271 | 2020-03-12 Darius Galis <darius.galis@cyberthorstudios.com> | |
34272 | ||
34273 | * config/rx/rx.md (CTRLREG_CPEN): Remove. | |
34274 | * config/rx/rx.c (rx_print_operand): Remove CTRLREG_CPEN support. | |
34275 | ||
34276 | 2020-03-12 Richard Biener <rguenther@suse.de> | |
34277 | ||
34278 | PR tree-optimization/94103 | |
34279 | * tree-ssa-sccvn.c (visit_reference_op_load): Avoid type | |
34280 | punning when the mode precision is not sufficient. | |
34281 | ||
34282 | 2020-03-12 H.J. Lu <hongjiu.lu@intel.com> | |
34283 | ||
34284 | PR target/89229 | |
34285 | * config/i386/i386.c (ix86_output_ssemov): Handle MODE_DI, | |
34286 | MODE_V1DF and MODE_V2SF. | |
34287 | * config/i386/mmx.md (MMXMODE:*mov<mode>_internal): Call | |
34288 | ix86_output_ssemov for TYPE_SSEMOV. Remove ext_sse_reg_operand | |
34289 | check. | |
34290 | ||
34291 | 2020-03-12 Jakub Jelinek <jakub@redhat.com> | |
34292 | ||
34293 | * doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change | |
34294 | ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL | |
34295 | and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL. | |
34296 | * doc/tm.texi: Regenerated. | |
34297 | ||
34298 | PR tree-optimization/94130 | |
34299 | * tree-ssa-dse.c: Include gimplify.h. | |
34300 | (increment_start_addr): If stmt has lhs, drop the lhs from call and | |
34301 | set it after the call to the original value of the first argument. | |
34302 | Formatting fixes. | |
34303 | (decrement_count): Formatting fix. | |
34304 | ||
34305 | 2020-03-11 Delia Burduv <delia.burduv@arm.com> | |
34306 | ||
34307 | * config/arm/arm-builtins.c | |
34308 | (arm_init_simd_builtin_scalar_types): New. | |
34309 | * config/arm/arm_neon.h (vld2_bf16): Used new builtin type. | |
34310 | (vld2q_bf16): Used new builtin type. | |
34311 | (vld3_bf16): Used new builtin type. | |
34312 | (vld3q_bf16): Used new builtin type. | |
34313 | (vld4_bf16): Used new builtin type. | |
34314 | (vld4q_bf16): Used new builtin type. | |
34315 | (vld2_dup_bf16): Used new builtin type. | |
34316 | (vld2q_dup_bf16): Used new builtin type. | |
34317 | (vld3_dup_bf16): Used new builtin type. | |
34318 | (vld3q_dup_bf16): Used new builtin type. | |
34319 | (vld4_dup_bf16): Used new builtin type. | |
34320 | (vld4q_dup_bf16): Used new builtin type. | |
34321 | ||
34322 | 2020-03-11 Jakub Jelinek <jakub@redhat.com> | |
34323 | ||
34324 | PR target/94134 | |
34325 | * config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section | |
34326 | at the start to switch to data section. Don't print extra newline if | |
34327 | .globl directive has not been emitted. | |
34328 | ||
34329 | 2020-03-11 Richard Biener <rguenther@suse.de> | |
34330 | ||
34331 | * match.pd ((T *)(ptr - ptr-cst) -> &MEM[ptr + -ptr-cst]): | |
34332 | New pattern. | |
34333 | ||
34334 | 2020-03-11 Eric Botcazou <ebotcazou@adacore.com> | |
34335 | ||
34336 | PR middle-end/93961 | |
34337 | * tree.c (variably_modified_type_p) <RECORD_TYPE>: Recurse into fields | |
34338 | whose type is a qualified union. | |
34339 | ||
34340 | 2020-03-11 Jakub Jelinek <jakub@redhat.com> | |
34341 | ||
34342 | PR target/94121 | |
34343 | * config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi | |
34344 | instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT. | |
34345 | ||
34346 | PR bootstrap/93962 | |
34347 | * value-prof.c (dump_histogram_value): Use abs_hwi instead of | |
34348 | std::abs. | |
34349 | (get_nth_most_common_value): Use abs_hwi instead of abs. | |
34350 | ||
34351 | PR middle-end/94111 | |
34352 | * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl | |
34353 | is rvc_normal, otherwise use real_to_decimal to print the number to | |
34354 | string. | |
34355 | ||
34356 | PR tree-optimization/94114 | |
34357 | * tree-loop-distribution.c (generate_memset_builtin): Call | |
34358 | rewrite_to_non_trapping_overflow even on mem. | |
34359 | (generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even | |
34360 | on dest and src. | |
34361 | ||
34362 | 2020-03-10 Jeff Law <law@redhat.com> | |
34363 | ||
34364 | * config/bfin/bfin.md (movsi_insv): Add length attribute. | |
34365 | ||
34366 | 2020-03-10 Jiufu Guo <guojiufu@linux.ibm.com> | |
34367 | ||
34368 | PR target/93709 | |
34369 | * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): Check | |
34370 | NAN and SIGNED_ZEROR for smax/smin. | |
34371 | ||
34372 | 2020-03-10 Will Schmidt <will_schmidt@vnet.ibm.com> | |
34373 | ||
34374 | PR target/90763 | |
34375 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add | |
34376 | clause to handle P9V_BUILTIN_VEC_LXVL with const arguments. | |
34377 | ||
34378 | 2020-03-10 Roman Zhuykov <zhroma@ispras.ru> | |
34379 | ||
34380 | * loop-iv.c (find_simple_exit): Make it static. | |
34381 | * cfgloop.h: Remove the corresponding prototype. | |
34382 | ||
34383 | 2020-03-10 Roman Zhuykov <zhroma@ispras.ru> | |
34384 | ||
34385 | * ddg.c (create_ddg): Fix intendation. | |
34386 | (set_recurrence_length): Likewise. | |
34387 | (create_ddg_all_sccs): Likewise. | |
34388 | ||
34389 | 2020-03-10 Jakub Jelinek <jakub@redhat.com> | |
34390 | ||
34391 | PR target/94088 | |
34392 | * config/i386/i386.md (*testqi_ext_3): Call ix86_match_ccmode with | |
34393 | CCZmode instead of CCNOmode if operands[2] has DImode and pos + len | |
34394 | is 32. | |
34395 | ||
34396 | 2020-03-09 Jason Merrill <jason@redhat.com> | |
34397 | ||
34398 | * gdbinit.in (pgs): Fix typo in documentation. | |
34399 | ||
34400 | 2020-03-09 Vladimir Makarov <vmakarov@redhat.com> | |
34401 | ||
34402 | Revert: | |
34403 | ||
34404 | 2020-02-28 Vladimir Makarov <vmakarov@redhat.com> | |
34405 | ||
34406 | PR rtl-optimization/93564 | |
34407 | * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we | |
34408 | do not honor reg alloc order. | |
34409 | ||
34410 | 2020-03-09 Andrew Pinski <apinski@marvell.com> | |
34411 | ||
34412 | PR inline-asm/94095 | |
34413 | * doc/extend.texi (x86 Operand Modifiers): Fix column | |
34414 | for 'A' modifier. | |
34415 | ||
34416 | 2020-03-09 Martin Liska <mliska@suse.cz> | |
34417 | ||
34418 | PR target/93800 | |
34419 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
34420 | Remove set of str_align_loops and str_align_jumps as these | |
34421 | should be set in previous 2 conditions in the function. | |
34422 | ||
34423 | 2020-03-09 Jakub Jelinek <jakub@redhat.com> | |
34424 | ||
34425 | PR rtl-optimization/94045 | |
34426 | * params.opt (-param=max-find-base-term-values=): New option. | |
34427 | * alias.c (find_base_term): Add cut-off for number of visited VALUEs | |
34428 | in a single toplevel find_base_term call. | |
34429 | ||
34430 | 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com> | |
34431 | ||
34432 | PR target/91598 | |
34433 | * config/aarch64/aarch64-builtins.c (TYPES_TERNOPU_LANE): Add define. | |
34434 | * config/aarch64/aarch64-simd.md | |
34435 | (aarch64_vec_<su>mult_lane<Qlane>): Add new insn for widening lane mul. | |
34436 | (aarch64_vec_<su>mlal_lane<Qlane>): Likewise. | |
34437 | * config/aarch64/aarch64-simd-builtins.def: Add intrinsics. | |
34438 | * config/aarch64/arm_neon.h: | |
34439 | (vmlal_lane_s16): Expand using intrinsics rather than inline asm. | |
34440 | (vmlal_lane_u16): Likewise. | |
34441 | (vmlal_lane_s32): Likewise. | |
34442 | (vmlal_lane_u32): Likewise. | |
34443 | (vmlal_laneq_s16): Likewise. | |
34444 | (vmlal_laneq_u16): Likewise. | |
34445 | (vmlal_laneq_s32): Likewise. | |
34446 | (vmlal_laneq_u32): Likewise. | |
34447 | (vmull_lane_s16): Likewise. | |
34448 | (vmull_lane_u16): Likewise. | |
34449 | (vmull_lane_s32): Likewise. | |
34450 | (vmull_lane_u32): Likewise. | |
34451 | (vmull_laneq_s16): Likewise. | |
34452 | (vmull_laneq_u16): Likewise. | |
34453 | (vmull_laneq_s32): Likewise. | |
34454 | (vmull_laneq_u32): Likewise. | |
34455 | * config/aarch64/iterators.md (Vcondtype): New iterator for lane mul. | |
34456 | (Qlane): Likewise. | |
34457 | ||
34458 | 2020-03-06 Wilco Dijkstra <wdijkstr@arm.com> | |
34459 | ||
34460 | * aarch64/aarch64-simd.md (aarch64_mla_elt<mode>): Correct lane syntax. | |
34461 | (aarch64_mla_elt_<vswap_width_name><mode>): Likewise. | |
34462 | (aarch64_mls_elt<mode>): Likewise. | |
34463 | (aarch64_mls_elt_<vswap_width_name><mode>): Likewise. | |
34464 | (aarch64_fma4_elt<mode>): Likewise. | |
34465 | (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise. | |
34466 | (aarch64_fma4_elt_to_64v2df): Likewise. | |
34467 | (aarch64_fnma4_elt<mode>): Likewise. | |
34468 | (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise. | |
34469 | (aarch64_fnma4_elt_to_64v2df): Likewise. | |
34470 | ||
34471 | 2020-03-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34472 | ||
34473 | * config/aarch64/aarch64-sve2.md (@aarch64_sve_<sve_int_op><mode>: | |
34474 | Specify movprfx attribute. | |
34475 | (@aarch64_sve_<sve_int_op>_lane_<mode>): Likewise. | |
34476 | ||
34477 | 2020-03-06 David Edelsohn <dje.gcc@gmail.com> | |
34478 | ||
34479 | PR target/94065 | |
34480 | * config/rs6000/aix61.h (TARGET_NO_SUM_IN_TOC): Set to 1 for | |
34481 | cmodel=large. | |
34482 | (TARGET_NO_FP_IN_TOC): Same. | |
34483 | * config/rs6000/aix71.h: Same. | |
34484 | * config/rs6000/aix72.h: Same. | |
34485 | ||
34486 | 2020-03-06 Andrew Pinski <apinski@marvell.com> | |
34487 | Jeff Law <law@redhat.com> | |
34488 | ||
34489 | PR rtl-optimization/93996 | |
34490 | * haifa-sched.c (remove_notes): Be more careful when adding | |
34491 | REG_SAVE_NOTE. | |
34492 | ||
34493 | 2020-03-06 Delia Burduv <delia.burduv@arm.com> | |
34494 | ||
34495 | * config/arm/arm_neon.h (vld2_bf16): New. | |
34496 | (vld2q_bf16): New. | |
34497 | (vld3_bf16): New. | |
34498 | (vld3q_bf16): New. | |
34499 | (vld4_bf16): New. | |
34500 | (vld4q_bf16): New. | |
34501 | (vld2_dup_bf16): New. | |
34502 | (vld2q_dup_bf16): New. | |
34503 | (vld3_dup_bf16): New. | |
34504 | (vld3q_dup_bf16): New. | |
34505 | (vld4_dup_bf16): New. | |
34506 | (vld4q_dup_bf16): New. | |
34507 | * config/arm/arm_neon_builtins.def | |
34508 | (vld2): Changed to VAR13 and added v4bf, v8bf | |
34509 | (vld2_dup): Changed to VAR8 and added v4bf, v8bf | |
34510 | (vld3): Changed to VAR13 and added v4bf, v8bf | |
34511 | (vld3_dup): Changed to VAR8 and added v4bf, v8bf | |
34512 | (vld4): Changed to VAR13 and added v4bf, v8bf | |
34513 | (vld4_dup): Changed to VAR8 and added v4bf, v8bf | |
34514 | * config/arm/iterators.md (VDXBF2): New iterator. | |
34515 | *config/arm/neon.md (neon_vld2): Use new iterators. | |
34516 | (neon_vld2_dup<mode): Use new iterators. | |
34517 | (neon_vld3<mode>): Likewise. | |
34518 | (neon_vld3qa<mode>): Likewise. | |
34519 | (neon_vld3qb<mode>): Likewise. | |
34520 | (neon_vld3_dup<mode>): Likewise. | |
34521 | (neon_vld4<mode>): Likewise. | |
34522 | (neon_vld4qa<mode>): Likewise. | |
34523 | (neon_vld4qb<mode>): Likewise. | |
34524 | (neon_vld4_dup<mode>): Likewise. | |
34525 | (neon_vld2_dupv8bf): New. | |
34526 | (neon_vld3_dupv8bf): Likewise. | |
34527 | (neon_vld4_dupv8bf): Likewise. | |
34528 | ||
34529 | 2020-03-06 Delia Burduv <delia.burduv@arm.com> | |
34530 | ||
34531 | * config/arm/arm_neon.h (bfloat16x4x2_t): New typedef. | |
34532 | (bfloat16x8x2_t): New typedef. | |
34533 | (bfloat16x4x3_t): New typedef. | |
34534 | (bfloat16x8x3_t): New typedef. | |
34535 | (bfloat16x4x4_t): New typedef. | |
34536 | (bfloat16x8x4_t): New typedef. | |
34537 | (vst2_bf16): New. | |
34538 | (vst2q_bf16): New. | |
34539 | (vst3_bf16): New. | |
34540 | (vst3q_bf16): New. | |
34541 | (vst4_bf16): New. | |
34542 | (vst4q_bf16): New. | |
34543 | * config/arm/arm-builtins.c (v2bf_UP): Define. | |
34544 | (VAR13): New. | |
34545 | (arm_init_simd_builtin_types): Init Bfloat16x2_t eltype. | |
34546 | * config/arm/arm-modes.def (V2BF): New mode. | |
34547 | * config/arm/arm-simd-builtin-types.def | |
34548 | (Bfloat16x2_t): New entry. | |
34549 | * config/arm/arm_neon_builtins.def | |
34550 | (vst2): Changed to VAR13 and added v4bf, v8bf | |
34551 | (vst3): Changed to VAR13 and added v4bf, v8bf | |
34552 | (vst4): Changed to VAR13 and added v4bf, v8bf | |
34553 | * config/arm/iterators.md (VDXBF): New iterator. | |
34554 | (VQ2BF): New iterator. | |
34555 | *config/arm/neon.md (neon_vst2<mode>): Used new iterators. | |
34556 | (neon_vst2<mode>): Used new iterators. | |
34557 | (neon_vst3<mode>): Used new iterators. | |
34558 | (neon_vst3<mode>): Used new iterators. | |
34559 | (neon_vst3qa<mode>): Used new iterators. | |
34560 | (neon_vst3qb<mode>): Used new iterators. | |
34561 | (neon_vst4<mode>): Used new iterators. | |
34562 | (neon_vst4<mode>): Used new iterators. | |
34563 | (neon_vst4qa<mode>): Used new iterators. | |
34564 | (neon_vst4qb<mode>): Used new iterators. | |
34565 | ||
34566 | 2020-03-06 Delia Burduv <delia.burduv@arm.com> | |
34567 | ||
34568 | * config/aarch64/aarch64-simd-builtins.def | |
34569 | (bfcvtn): New built-in function. | |
34570 | (bfcvtn_q): New built-in function. | |
34571 | (bfcvtn2): New built-in function. | |
34572 | (bfcvt): New built-in function. | |
34573 | * config/aarch64/aarch64-simd.md | |
34574 | (aarch64_bfcvtn<q><mode>): New pattern. | |
34575 | (aarch64_bfcvtn2v8bf): New pattern. | |
34576 | (aarch64_bfcvtbf): New pattern. | |
34577 | * config/aarch64/arm_bf16.h (float32_t): New typedef. | |
34578 | (vcvth_bf16_f32): New intrinsic. | |
34579 | * config/aarch64/arm_bf16.h (vcvt_bf16_f32): New intrinsic. | |
34580 | (vcvtq_low_bf16_f32): New intrinsic. | |
34581 | (vcvtq_high_bf16_f32): New intrinsic. | |
34582 | * config/aarch64/iterators.md (V4SF_TO_BF): New mode iterator. | |
34583 | (UNSPEC_BFCVTN): New UNSPEC. | |
34584 | (UNSPEC_BFCVTN2): New UNSPEC. | |
34585 | (UNSPEC_BFCVT): New UNSPEC. | |
34586 | * config/arm/types.md (bf_cvt): New type. | |
34587 | ||
34588 | 2020-03-06 Andreas Krebbel <krebbel@linux.ibm.com> | |
34589 | ||
34590 | * config/s390/s390.md ("tabort"): Get rid of two consecutive | |
34591 | blanks in format string. | |
34592 | ||
34593 | 2020-03-05 H.J. Lu <hongjiu.lu@intel.com> | |
34594 | ||
34595 | PR target/89229 | |
34596 | PR target/89346 | |
34597 | * config/i386/i386-protos.h (ix86_output_ssemov): New prototype. | |
34598 | * config/i386/i386.c (ix86_get_ssemov): New function. | |
34599 | (ix86_output_ssemov): Likewise. | |
34600 | * config/i386/sse.md (VMOVE:mov<mode>_internal): Call | |
34601 | ix86_output_ssemov for TYPE_SSEMOV. Remove TARGET_AVX512VL | |
34602 | check. | |
34603 | (*movxi_internal_avx512f): Call ix86_output_ssemov for TYPE_SSEMOV. | |
34604 | (*movoi_internal_avx): Call ix86_output_ssemov for TYPE_SSEMOV. | |
34605 | Remove ext_sse_reg_operand and TARGET_AVX512VL check. | |
34606 | (*movti_internal): Likewise. | |
34607 | (*movtf_internal): Call ix86_output_ssemov for TYPE_SSEMOV. | |
34608 | ||
34609 | 2020-03-05 Jeff Law <law@redhat.com> | |
34610 | ||
34611 | PR tree-optimization/91890 | |
34612 | * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Remove LOC argument. | |
34613 | Use gimple_or_expr_nonartificial_location. | |
34614 | (check_bounds_overlap): Drop LOC argument to maybe_diag_access_bounds. | |
34615 | Use gimple_or_expr_nonartificial_location. | |
34616 | * gimple.c (gimple_or_expr_nonartificial_location): New function. | |
34617 | * gimple.h (gimple_or_expr_nonartificial_location): Declare it. | |
34618 | * tree-ssa-strlen.c (maybe_warn_overflow): Use | |
34619 | gimple_or_expr_nonartificial_location. | |
34620 | (maybe_diag_stxncpy_trunc, handle_builtin_stxncpy_strncat): Likewise. | |
34621 | (maybe_warn_pointless_strcmp): Likewise. | |
34622 | ||
34623 | 2020-03-05 Jakub Jelinek <jakub@redhat.com> | |
34624 | ||
34625 | PR target/94046 | |
34626 | * config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of | |
34627 | SRC and MASK arguments to __m128 from __m128d. | |
34628 | (_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256 | |
34629 | from __m256d. | |
34630 | (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128 | |
34631 | from __m128d. | |
34632 | * config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C | |
34633 | argument to __m128i from __m128d. | |
34634 | (_mm256_permute2_pd): Fix first cast of C argument to __m256i from | |
34635 | __m256d. | |
34636 | (_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128. | |
34637 | (_mm256_permute2_ps): Fix first cast of C argument to __m256i from | |
34638 | __m256. | |
34639 | ||
34640 | 2020-03-05 Delia Burduv <delia.burduv@arm.com> | |
34641 | ||
34642 | * config/arm/arm_neon.h (vbfmmlaq_f32): New. | |
34643 | (vbfmlalbq_f32): New. | |
34644 | (vbfmlaltq_f32): New. | |
34645 | (vbfmlalbq_lane_f32): New. | |
34646 | (vbfmlaltq_lane_f32): New. | |
34647 | (vbfmlalbq_laneq_f32): New. | |
34648 | (vbfmlaltq_laneq_f32): New. | |
34649 | * config/arm/arm_neon_builtins.def (vmmla): New. | |
34650 | (vfmab): New. | |
34651 | (vfmat): New. | |
34652 | (vfmab_lane): New. | |
34653 | (vfmat_lane): New. | |
34654 | (vfmab_laneq): New. | |
34655 | (vfmat_laneq): New. | |
34656 | * config/arm/iterators.md (BF_MA): New int iterator. | |
34657 | (bt): New int attribute. | |
34658 | (VQXBF): Copy of VQX with V8BF. | |
34659 | * config/arm/neon.md (neon_vmmlav8bf): New insn. | |
34660 | (neon_vfma<bt>v8bf): New insn. | |
34661 | (neon_vfma<bt>_lanev8bf): New insn. | |
34662 | (neon_vfma<bt>_laneqv8bf): New expand. | |
34663 | (neon_vget_high<mode>): Changed iterator to VQXBF. | |
34664 | * config/arm/unspecs.md (UNSPEC_BFMMLA): New UNSPEC. | |
34665 | (UNSPEC_BFMAB): New UNSPEC. | |
34666 | (UNSPEC_BFMAT): New UNSPEC. | |
34667 | ||
34668 | 2020-03-05 Jakub Jelinek <jakub@redhat.com> | |
34669 | ||
34670 | PR middle-end/93399 | |
34671 | * tree-pretty-print.h (pretty_print_string): Declare. | |
34672 | * tree-pretty-print.c (pretty_print_string): Remove forward | |
34673 | declaration, no longer static. Change nbytes parameter type | |
34674 | from unsigned to size_t. | |
34675 | * print-rtl.c (print_value) <case CONST_STRING>: Use | |
34676 | pretty_print_string and for shrink way too long strings. | |
34677 | ||
34678 | 2020-03-05 Richard Biener <rguenther@suse.de> | |
34679 | Jakub Jelinek <jakub@redhat.com> | |
34680 | ||
34681 | PR tree-optimization/93582 | |
34682 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Treat POINTER_PLUS_EXPR | |
34683 | last operand as signed when looking for memset offset. Formatting | |
34684 | fix. | |
34685 | ||
34686 | 2020-03-04 Andrew Pinski <apinski@marvell.com> | |
34687 | ||
34688 | PR bootstrap/93962 | |
34689 | * value-prof.c (dump_histogram_value): Use std::abs. | |
34690 | ||
34691 | 2020-03-04 Martin Sebor <msebor@redhat.com> | |
34692 | ||
34693 | PR tree-optimization/93986 | |
34694 | * tree-ssa-strlen.c (maybe_warn_overflow): Convert all wide_int | |
34695 | operands to the same precision widest_int to avoid ICEs. | |
34696 | ||
34697 | 2020-03-04 Bill Schmidt <wschmidt@linux.ibm.com> | |
34698 | ||
34699 | PR target/87560 | |
34700 | * rs6000-cpus.def (OTHER_ALTIVEC_MASKS): New #define. | |
34701 | * rs6000.c (rs6000_disable_incompatible_switches): Add table entry | |
34702 | for OPTION_MASK_ALTIVEC. | |
34703 | ||
34704 | 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com> | |
34705 | ||
34706 | * config.gcc: Include the glibc-stdint.h header for zTPF. | |
34707 | ||
34708 | 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com> | |
34709 | ||
34710 | * config/s390/s390.c (s390_secondary_memory_needed): Disallow | |
34711 | direct FPR-GPR copies. | |
34712 | (s390_register_info_gprtofpr): Disallow GPR content to be saved in | |
34713 | FPRs. | |
34714 | ||
34715 | 2020-03-04 Andreas Krebbel <krebbel@linux.ibm.com> | |
34716 | ||
34717 | * config/s390/s390.c (s390_emit_prologue): Specify the 2 new | |
34718 | operands to the prologue_tpf expander. | |
34719 | (s390_emit_epilogue): Likewise. | |
34720 | (s390_option_override_internal): Do error checking and setup for | |
34721 | the new options. | |
34722 | * config/s390/tpf.h (TPF_TRACE_PROLOGUE_CHECK) | |
34723 | (TPF_TRACE_EPILOGUE_CHECK, TPF_TRACE_PROLOGUE_TARGET) | |
34724 | (TPF_TRACE_EPILOGUE_TARGET, TPF_TRACE_PROLOGUE_SKIP_TARGET) | |
34725 | (TPF_TRACE_EPILOGUE_SKIP_TARGET): New macro definitions. | |
34726 | * config/s390/tpf.md ("prologue_tpf", "epilogue_tpf"): Add two new | |
34727 | operands for the check flag and the branch target. | |
34728 | * config/s390/tpf.opt ("mtpf-trace-hook-prologue-check") | |
34729 | ("mtpf-trace-hook-prologue-target") | |
34730 | ("mtpf-trace-hook-epilogue-check") | |
34731 | ("mtpf-trace-hook-epilogue-target", "mtpf-trace-skip"): New | |
34732 | options. | |
34733 | * doc/invoke.texi: Document -mtpf-trace-skip option. The other | |
34734 | options are for debugging purposes and will not be documented | |
34735 | here. | |
34736 | ||
34737 | 2020-03-04 Jakub Jelinek <jakub@redhat.com> | |
34738 | ||
34739 | PR debug/93888 | |
34740 | * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag. | |
34741 | ||
34742 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Add offseti | |
34743 | argument. Change pd argument so that it can be modified. Turn | |
34744 | constant non-CONSTRUCTOR store into non-constant if it is too large. | |
34745 | Adjust offset and size of CONSTRUCTOR or non-constant store to avoid | |
34746 | overflows. | |
34747 | (vn_walk_cb_data::vn_walk_cb_data, vn_reference_lookup_3): Adjust | |
34748 | callers. | |
34749 | ||
34750 | 2020-02-04 Richard Biener <rguenther@suse.de> | |
34751 | ||
34752 | PR tree-optimization/93964 | |
34753 | * graphite-isl-ast-to-gimple.c | |
34754 | (gcc_expression_from_isl_ast_expr_id): Add intermediate | |
34755 | conversion for pointer to integer converts. | |
34756 | * graphite-scop-detection.c (assign_parameter_index_in_region): | |
34757 | Relax assert. | |
34758 | ||
34759 | 2020-03-04 Martin Liska <mliska@suse.cz> | |
34760 | ||
34761 | PR c/93886 | |
34762 | PR c/93887 | |
34763 | * doc/invoke.texi: Clarify --help=language and --help=common | |
34764 | interaction. | |
34765 | ||
34766 | 2020-03-04 Jakub Jelinek <jakub@redhat.com> | |
34767 | ||
34768 | PR tree-optimization/94001 | |
34769 | * tree-tailcall.c (process_assignment): Before comparing op1 to | |
34770 | *ass_var, verify *ass_var is non-NULL. | |
34771 | ||
34772 | 2020-03-04 Kito Cheng <kito.cheng@sifive.com> | |
34773 | ||
34774 | PR target/93995 | |
34775 | * config/riscv/riscv.c (riscv_emit_float_compare): Using NE to compare | |
34776 | the result of IOR. | |
34777 | ||
34778 | 2020-03-03 Dennis Zhang <dennis.zhang@arm.com> | |
34779 | ||
34780 | * config/arm/arm_bf16.h (vcvtah_f32_bf16, vcvth_bf16_f32): New. | |
34781 | * config/arm/arm_neon.h (vcvt_f32_bf16, vcvtq_low_f32_bf16): New. | |
34782 | (vcvtq_high_f32_bf16, vcvt_bf16_f32): New. | |
34783 | (vcvtq_low_bf16_f32, vcvtq_high_bf16_f32): New. | |
34784 | * config/arm/arm_neon_builtins.def (vbfcvt, vbfcvt_high): New entries. | |
34785 | (vbfcvtv4sf, vbfcvtv4sf_high): Likewise. | |
34786 | * config/arm/iterators.md (VBFCVT, VBFCVTM): New mode iterators. | |
34787 | (V_bf_low, V_bf_cvt_m): New mode attributes. | |
34788 | * config/arm/neon.md (neon_vbfcvtv4sf<VBFCVT:mode>): New. | |
34789 | (neon_vbfcvtv4sf_highv8bf, neon_vbfcvtsf): New. | |
34790 | (neon_vbfcvt<VBFCVT:mode>, neon_vbfcvt_highv8bf): New. | |
34791 | (neon_vbfcvtbf_cvtmode<mode>, neon_vbfcvtbf): New | |
34792 | * config/arm/unspecs.md (UNSPEC_BFCVT, UNSPEC_BFCVT_HIG): New. | |
34793 | ||
34794 | 2020-03-03 Jakub Jelinek <jakub@redhat.com> | |
34795 | ||
34796 | PR tree-optimization/93582 | |
34797 | * tree-ssa-sccvn.h (vn_reference_lookup): Add mask argument. | |
34798 | * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add mask and masked_result | |
34799 | members, initialize them in the constructor and if mask is non-NULL, | |
34800 | artificially push_partial_def {} for the portions of the mask that | |
34801 | contain zeros. | |
34802 | (vn_walk_cb_data::finish): If mask is non-NULL, set masked_result to | |
34803 | val and return (void *)-1. Formatting fix. | |
34804 | (vn_reference_lookup_pieces): Adjust vn_walk_cb_data initialization. | |
34805 | Formatting fix. | |
34806 | (vn_reference_lookup): Add mask argument. If non-NULL, don't call | |
34807 | fully_constant_vn_reference_p nor vn_reference_lookup_1 and return | |
34808 | data.mask_result. | |
34809 | (visit_nary_op): Handle BIT_AND_EXPR of a memory load and INTEGER_CST | |
34810 | mask. | |
34811 | (visit_stmt): Formatting fix. | |
34812 | ||
34813 | 2020-03-03 Richard Biener <rguenther@suse.de> | |
34814 | ||
34815 | PR tree-optimization/93946 | |
34816 | * alias.h (refs_same_for_tbaa_p): Declare. | |
34817 | * alias.c (refs_same_for_tbaa_p): New function. | |
34818 | * tree-ssa-alias.c (ao_ref_alias_set): For a NULL ref return | |
34819 | zero. | |
34820 | * tree-ssa-scopedtables.h | |
34821 | (avail_exprs_stack::lookup_avail_expr): Add output argument | |
34822 | giving access to the hashtable entry. | |
34823 | * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): | |
34824 | Likewise. | |
34825 | * tree-ssa-dom.c: Include alias.h. | |
34826 | (dom_opt_dom_walker::optimize_stmt): Validate TBAA state before | |
34827 | removing redundant store. | |
34828 | * tree-ssa-sccvn.h (vn_reference_s::base_set): New member. | |
34829 | (ao_ref_init_from_vn_reference): Adjust prototype. | |
34830 | (vn_reference_lookup_pieces): Likewise. | |
34831 | (vn_reference_insert_pieces): Likewise. | |
34832 | * tree-ssa-sccvn.c: Track base alias set in addition to alias | |
34833 | set everywhere. | |
34834 | (eliminate_dom_walker::eliminate_stmt): Also check base alias | |
34835 | set when removing redundant stores. | |
34836 | (visit_reference_op_store): Likewise. | |
34837 | * dse.c (record_store): Adjust valdity check for redundant | |
34838 | store removal. | |
34839 | ||
34840 | 2020-03-03 Jakub Jelinek <jakub@redhat.com> | |
34841 | ||
34842 | PR target/26877 | |
34843 | * config/s390/s390.h (OPTION_DEFAULT_SPECS): Reorder. | |
34844 | ||
34845 | PR rtl-optimization/94002 | |
34846 | * explow.c (plus_constant): Punt if cst has VOIDmode and | |
34847 | get_pool_mode is different from mode. | |
34848 | ||
34849 | 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com> | |
34850 | ||
34851 | * config/arc/arc.c (leigitimate_small_data_address_p): Check if an | |
34852 | address has an offset which fits the scalling constraint for a | |
34853 | load/store operation. | |
34854 | (legitimate_scaled_address_p): Update use | |
34855 | leigitimate_small_data_address_p. | |
34856 | (arc_print_operand): Likewise. | |
34857 | (arc_legitimate_address_p): Likewise. | |
34858 | (legitimate_small_data_address_p): Likewise. | |
34859 | ||
34860 | 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com> | |
34861 | ||
34862 | * config/arc/arc.md (fmasf4_fpu): Use accl_operand predicate. | |
34863 | (fnmasf4_fpu): Likewise. | |
34864 | ||
34865 | 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com> | |
34866 | ||
34867 | * config/arc/arc.md (adddi3): Early expand the 64bit operation into | |
34868 | 32bit ops. | |
34869 | (subdi3): Likewise. | |
34870 | (adddi3_i): Remove pattern. | |
34871 | (subdi3_i): Likewise. | |
34872 | ||
34873 | 2020-03-03 Claudiu Zissulescu <claziss@synopsys.com> | |
34874 | ||
34875 | * config/arc/arc.md (eh_return): Add length info. | |
34876 | ||
34877 | 2020-03-02 David Malcolm <dmalcolm@redhat.com> | |
34878 | ||
34879 | * doc/invoke.texi (-fanalyzer-show-duplicate-count): New. | |
34880 | ||
34881 | 2020-03-02 David Malcolm <dmalcolm@redhat.com> | |
34882 | ||
34883 | * doc/invoke.texi (Static Analyzer Options): Add | |
34884 | -Wanalyzer-stale-setjmp-buffer to the list of options enabled | |
34885 | by -fanalyzer. | |
34886 | ||
34887 | 2020-03-02 Uroš Bizjak <ubizjak@gmail.com> | |
34888 | ||
34889 | PR target/93997 | |
34890 | * config/i386/i386.md (movstrict<mode>): Allow only | |
34891 | registers with VALID_INT_MODE_P modes. | |
34892 | ||
34893 | 2020-03-02 Andrew Stubbs <ams@codesourcery.com> | |
34894 | ||
34895 | * config/gcn/gcn-valu.md (dpp_move<mode>): New. | |
34896 | (reduc_insn): Use 'U' and 'B' operand codes. | |
34897 | (reduc_<reduc_op>_scal_<mode>): Allow all types. | |
34898 | (reduc_<reduc_op>_scal_v64di): Delete. | |
34899 | (*<reduc_op>_dpp_shr_<mode>): Allow all 1reg types. | |
34900 | (*plus_carry_dpp_shr_v64si): Change to ... | |
34901 | (*plus_carry_dpp_shr_<mode>): ... this and allow all 1reg int types. | |
34902 | (mov_from_lane63_v64di): Change to ... | |
34903 | (mov_from_lane63_<mode>): ... this, and allow all 64-bit modes. | |
34904 | * config/gcn/gcn.c (gcn_expand_dpp_shr_insn): Increase buffer size. | |
34905 | Support UNSPEC_MOV_DPP_SHR output formats. | |
34906 | (gcn_expand_reduc_scalar): Add "use_moves" reductions. | |
34907 | Add "use_extends" reductions. | |
34908 | (print_operand_address): Add 'I' and 'U' codes. | |
34909 | * config/gcn/gcn.md (unspec): Add UNSPEC_MOV_DPP_SHR. | |
34910 | ||
34911 | 2020-03-02 Martin Liska <mliska@suse.cz> | |
34912 | ||
34913 | * lto-wrapper.c: Fix typo in comment about | |
34914 | C++ standard version. | |
34915 | ||
34916 | 2020-03-01 Martin Sebor <msebor@redhat.com> | |
34917 | ||
34918 | PR c++/92721 | |
34919 | * calls.c (init_attr_rdwr_indices): Correctly handle attribute. | |
34920 | ||
34921 | 2020-03-01 Martin Sebor <msebor@redhat.com> | |
34922 | ||
34923 | PR middle-end/93829 | |
34924 | * tree-ssa-strlen.c (count_nonzero_bytes): Set the size to that | |
34925 | of a pointer in the outermost ADDR_EXPRs. | |
34926 | ||
34927 | 2020-02-28 Jeff Law <law@redhat.com> | |
34928 | ||
34929 | * config/v850/v850.h (STATIC_CHAIN_REGNUM): Change to r19. | |
34930 | * config/v850/v850.c (v850_asm_trampoline_template): Update | |
34931 | accordingly. | |
34932 | ||
34933 | 2020-02-28 Michael Meissner <meissner@linux.ibm.com> | |
34934 | ||
34935 | PR target/93937 | |
34936 | * config/rs6000/vsx.md (vsx_extract_<mode>_<VS_scalar>mode_var): | |
34937 | Delete insn. | |
34938 | ||
34939 | 2020-02-28 Martin Liska <mliska@suse.cz> | |
34940 | ||
34941 | PR other/93965 | |
34942 | * configure.ac: Improve detection of ld_date by requiring | |
34943 | either two dashes or none. | |
34944 | * configure: Regenerate. | |
34945 | ||
34946 | 2020-02-28 Vladimir Makarov <vmakarov@redhat.com> | |
34947 | ||
34948 | PR rtl-optimization/93564 | |
34949 | * ira-color.c (assign_hard_reg): Prefer smaller hard regno when we | |
34950 | do not honor reg alloc order. | |
34951 | ||
34952 | 2020-02-27 Joel Hutton <Joel.Hutton@arm.com> | |
34953 | ||
34954 | PR target/87612 | |
34955 | * config/aarch64/aarch64.c (aarch64_override_options): Fix | |
34956 | misleading warning string. | |
34957 | ||
34958 | 2020-02-27 Martin Sebor <msebor@redhat.com> | |
34959 | ||
34960 | * doc/invoke.texi (-Wbuiltin-declaration-mismatch): Fix a typo. | |
34961 | ||
34962 | 2020-02-27 Michael Meissner <meissner@linux.ibm.com> | |
34963 | ||
34964 | PR target/93932 | |
34965 | * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): | |
34966 | Split the insn into two parts. This insn only does variable | |
34967 | extract from a register. | |
34968 | (vsx_extract_<mode>_var_load, VSX_D iterator): New insn, do | |
34969 | variable extract from memory. | |
34970 | (vsx_extract_v4sf_var): Split the insn into two parts. This insn | |
34971 | only does variable extract from a register. | |
34972 | (vsx_extract_v4sf_var_load): New insn, do variable extract from | |
34973 | memory. | |
34974 | (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Split the insn | |
34975 | into two parts. This insn only does variable extract from a | |
34976 | register. | |
34977 | (vsx_extract_<mode>_var_load, VSX_EXTRACT_I iterator): New insn, | |
34978 | do variable extract from memory. | |
34979 | ||
34980 | 2020-02-27 Martin Jambor <mjambor@suse.cz> | |
34981 | Feng Xue <fxue@os.amperecomputing.com> | |
34982 | ||
34983 | PR ipa/93707 | |
34984 | * ipa-cp.c (same_node_or_its_all_contexts_clone_p): Replaced with | |
34985 | new function calls_same_node_or_its_all_contexts_clone_p. | |
34986 | (cgraph_edge_brings_value_p): Use it. | |
34987 | (cgraph_edge_brings_value_p): Likewise. | |
34988 | (self_recursive_pass_through_p): Return false if caller is a clone. | |
34989 | (self_recursive_agg_pass_through_p): Likewise. | |
34990 | ||
34991 | 2020-02-27 Jan Hubicka <hubicka@ucw.cz> | |
34992 | ||
34993 | PR middle-end/92152 | |
34994 | * alias.c (ends_tbaa_access_path_p): Break out from ... | |
34995 | (component_uses_parent_alias_set_from): ... here. | |
34996 | * alias.h (ends_tbaa_access_path_p): Declare. | |
34997 | * tree-ssa-alias.c (access_path_may_continue_p): Break out from ...; | |
34998 | handle trailing arrays past end of tbaa access path. | |
34999 | (aliasing_component_refs_p): ... here; likewise. | |
35000 | (nonoverlapping_refs_since_match_p): Track TBAA segment of the access | |
35001 | path; disambiguate also past end of it. | |
35002 | (nonoverlapping_component_refs_p): Use only TBAA segment of the access | |
35003 | path. | |
35004 | ||
35005 | 2020-02-27 Mihail Ionescu <mihail.ionescu@arm.com> | |
35006 | ||
35007 | * (__ARM_NUM_LANES, __arm_lane, __arm_lane_q): Move to the | |
35008 | beginning of the file. | |
35009 | (vcreate_bf16, vcombine_bf16): New. | |
35010 | (vdup_n_bf16, vdupq_n_bf16): New. | |
35011 | (vdup_lane_bf16, vdup_laneq_bf16): New. | |
35012 | (vdupq_lane_bf16, vdupq_laneq_bf16): New. | |
35013 | (vduph_lane_bf16, vduph_laneq_bf16): New. | |
35014 | (vset_lane_bf16, vsetq_lane_bf16): New. | |
35015 | (vget_lane_bf16, vgetq_lane_bf16): New. | |
35016 | (vget_high_bf16, vget_low_bf16): New. | |
35017 | (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New. | |
35018 | (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New. | |
35019 | (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New. | |
35020 | (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New. | |
35021 | (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New. | |
35022 | (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New. | |
35023 | (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New. | |
35024 | (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New. | |
35025 | (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New. | |
35026 | (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New. | |
35027 | (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New. | |
35028 | (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New. | |
35029 | (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New. | |
35030 | (vreinterpretq_bf16_p128): New. | |
35031 | (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New. | |
35032 | (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New. | |
35033 | (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New. | |
35034 | (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New. | |
35035 | (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New. | |
35036 | (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New. | |
35037 | (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New. | |
35038 | (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New. | |
35039 | (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New. | |
35040 | (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New. | |
35041 | (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New. | |
35042 | (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New. | |
35043 | (vreinterpretq_p128_bf16): New. | |
35044 | * config/arm/arm_neon_builtins.def (VDX): Add V4BF. | |
35045 | (V_elem): Likewise. | |
35046 | (V_elem_l): Likewise. | |
35047 | (VD_LANE): Likewise. | |
35048 | (VQX) Add V8BF. | |
35049 | (V_DOUBLE): Likewise. | |
35050 | (VDQX): Add V4BF and V8BF. | |
35051 | (V_two_elem, V_three_elem, V_four_elem): Likewise. | |
35052 | (V_reg): Likewise. | |
35053 | (V_HALF): Likewise. | |
35054 | (V_double_vector_mode): Likewise. | |
35055 | (V_cmp_result): Likewise. | |
35056 | (V_uf_sclr): Likewise. | |
35057 | (V_sz_elem): Likewise. | |
35058 | (Is_d_reg): Likewise. | |
35059 | (V_mode_nunits): Likewise. | |
35060 | * config/arm/neon.md (neon_vdup_lane): Enable for BFloat16. | |
35061 | ||
35062 | 2020-02-27 Andrew Stubbs <ams@codesourcery.com> | |
35063 | ||
35064 | * config/gcn/gcn-valu.md (VEC_SUBDWORD_MODE): New mode iterator. | |
35065 | (<expander><mode>2<exec>): Change modes to VEC_ALL1REG_INT_MODE. | |
35066 | (<expander><mode>3<exec>): Likewise. | |
35067 | (<expander><mode>3): New. | |
35068 | (v<expander><mode>3): New. | |
35069 | (<expander><mode>3): New. | |
35070 | (<expander><mode>3<exec>): Rename to ... | |
35071 | (<expander>v64si3<exec>): ... this, and change modes to V64SI. | |
35072 | * config/gcn/gcn.md (mnemonic): Use '%B' for not. | |
35073 | ||
35074 | 2020-02-27 Alexandre Oliva <oliva@adacore.com> | |
35075 | ||
35076 | * config/vx-common.h (NO_DOLLAR_IN_LABEL, NO_DOT_IN_LABEL): Leave | |
35077 | them alone on vx7. | |
35078 | ||
35079 | 2020-02-27 Richard Biener <rguenther@suse.de> | |
35080 | ||
35081 | PR tree-optimization/93508 | |
35082 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle _CHK like | |
35083 | non-_CHK variants. Valueize their length arguments. | |
35084 | ||
35085 | 2020-02-27 Richard Biener <rguenther@suse.de> | |
35086 | ||
35087 | PR tree-optimization/93953 | |
35088 | * tree-vect-slp.c (slp_copy_subtree): Avoid keeping a reference | |
35089 | to the hash-map entry. | |
35090 | ||
35091 | 2020-02-27 Andrew Stubbs <ams@codesourcery.com> | |
35092 | ||
35093 | * config/gcn/gcn.md (mov<mode>): Add transformations for BI subregs. | |
35094 | ||
35095 | 2020-02-27 Mark Williams <mwilliams@fb.com> | |
35096 | ||
35097 | * dwarf2out.c (file_name_acquire): Call remap_debug_filename. | |
35098 | * lto-opts.c (lto_write_options): Drop -fdebug-prefix-map, | |
35099 | -ffile-prefix-map and -fmacro-prefix-map. | |
35100 | * lto-streamer-out.c: Include file-prefix-map.h. | |
35101 | (lto_output_location): Remap the file part of locations. | |
35102 | ||
35103 | 2020-02-27 Jakub Jelinek <jakub@redhat.com> | |
35104 | ||
35105 | PR c/93949 | |
35106 | * gimplify.c (gimplify_init_constructor): Don't promote readonly | |
35107 | DECL_REGISTER variables to TREE_STATIC. | |
35108 | ||
35109 | PR tree-optimization/93582 | |
35110 | PR tree-optimization/93945 | |
35111 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle memset with | |
35112 | non-zero INTEGER_CST second argument and ref->offset or ref->size | |
35113 | not a multiple of BITS_PER_UNIT. | |
35114 | ||
35115 | 2020-02-27 Jonathan Wakely <jwakely@redhat.com> | |
35116 | ||
35117 | * doc/install.texi (Binaries): Update description of BullFreeware. | |
35118 | ||
35119 | 2020-02-26 Sandra Loosemore <sandra@codesourcery.com> | |
35120 | ||
35121 | PR c++/90467 | |
35122 | ||
35123 | * doc/invoke.texi (Option Summary): Re-alphabetize warnings in | |
35124 | C++ Language Options, Warning Options, and Static Analyzer | |
35125 | Options lists. Document negative form of options enabled by | |
35126 | default. Move some things around to more accurately sort | |
35127 | warnings by category. | |
35128 | (C++ Dialect Options, Warning Options, Static Analyzer | |
35129 | Options): Document negative form of options when enabled by | |
35130 | default. Move some things around to more accurately sort | |
35131 | warnings by category. Add some missing index entries. | |
35132 | Light copy-editing. | |
35133 | ||
35134 | 2020-02-26 Carl Love <cel@us.ibm.com> | |
35135 | ||
35136 | PR target/91276 | |
35137 | * doc/extend.texi (PowerPC AltiVec Built-in Functions available on | |
35138 | ISA 2.07): The builtin-function name __builtin_crypto_vpmsumb is only | |
35139 | for the vector unsigned short arguments. It is also listed as the | |
35140 | name of the built-in for arguments vector unsigned short, | |
35141 | vector unsigned int and vector unsigned long long built-ins. The | |
35142 | name of the builtins for these arguments should be: | |
35143 | __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and | |
35144 | __builtin_crypto_vpmsumd respectively. | |
35145 | ||
35146 | 2020-02-26 Richard Biener <rguenther@suse.de> | |
35147 | ||
35148 | * tree-vect-slp.c (vect_print_slp_tree): Also dump ref count | |
35149 | and load permutation. | |
35150 | ||
35151 | 2020-02-26 Richard Sandiford <richard.sandiford@arm.com> | |
35152 | ||
35153 | PR middle-end/93843 | |
35154 | * optabs-tree.c (supportable_convert_operation): Reject types with | |
35155 | scalar modes. | |
35156 | ||
35157 | 2020-02-26 David Malcolm <dmalcolm@redhat.com> | |
35158 | ||
35159 | * Makefile.in (ANALYZER_OBJS): Add analyzer/bar-chart.o. | |
35160 | ||
35161 | 2020-02-26 Jakub Jelinek <jakub@redhat.com> | |
35162 | ||
35163 | PR tree-optimization/93820 | |
35164 | * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE | |
35165 | argument to ALL_INTEGER_CST_P boolean. | |
35166 | (imm_store_chain_info::try_coalesce_bswap): Adjust caller. | |
35167 | (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle | |
35168 | adjacent INTEGER_CST store into merged_store->only_constants like | |
35169 | overlapping one. | |
35170 | ||
35171 | 2020-02-25 Jakub Jelinek <jakub@redhat.com> | |
35172 | ||
35173 | PR other/93912 | |
35174 | * config/sh/sh.c (expand_cbranchdi4): Fix comment typo, probablity | |
35175 | -> probability. | |
35176 | * cfghooks.c (verify_flow_info): Likewise. | |
35177 | * predict.c (combine_predictions_for_bb): Likewise. | |
35178 | * bb-reorder.c (connect_better_edge_p): Likewise. Fix comment typo, | |
35179 | sucessor -> successor. | |
35180 | (find_traces_1_round): Fix comment typo, destinarion -> destination. | |
35181 | * omp-expand.c (expand_oacc_for): Fix comment typo, sucessors -> | |
35182 | successors. | |
35183 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Fix dump | |
35184 | message typo, sucessors -> successors. | |
35185 | ||
35186 | 2020-02-25 Martin Sebor <msebor@redhat.com> | |
35187 | ||
35188 | * doc/extend.texi (attribute access): Correct an example. | |
35189 | ||
35190 | 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com> | |
35191 | ||
35192 | * config/aarch64/aarch64-builtins.c (aarch64_scalar_builtin_types): | |
35193 | Add simd_bf. | |
35194 | (aarch64_init_simd_builtin_scalar_types): Register simd_bf. | |
35195 | (VAR15, VAR16): New. | |
35196 | * config/aarch64/iterators.md (VALLDIF): Enable for V4BF and V8BF. | |
35197 | (VD): Enable for V4BF. | |
35198 | (VDC): Likewise. | |
35199 | (VQ): Enable for V8BF. | |
35200 | (VQ2): Likewise. | |
35201 | (VQ_NO2E): Likewise. | |
35202 | (VDBL, Vdbl): Add V4BF. | |
35203 | (V_INT_EQUIV, v_int_equiv): Add V4BF and V8BF. | |
35204 | * config/aarch64/arm_neon.h (bfloat16x4x2_t): New typedef. | |
35205 | (bfloat16x8x2_t): Likewise. | |
35206 | (bfloat16x4x3_t): Likewise. | |
35207 | (bfloat16x8x3_t): Likewise. | |
35208 | (bfloat16x4x4_t): Likewise. | |
35209 | (bfloat16x8x4_t): Likewise. | |
35210 | (vcombine_bf16): New. | |
35211 | (vld1_bf16, vld1_bf16_x2): New. | |
35212 | (vld1_bf16_x3, vld1_bf16_x4): New. | |
35213 | (vld1q_bf16, vld1q_bf16_x2): New. | |
35214 | (vld1q_bf16_x3, vld1q_bf16_x4): New. | |
35215 | (vld1_lane_bf16): New. | |
35216 | (vld1q_lane_bf16): New. | |
35217 | (vld1_dup_bf16): New. | |
35218 | (vld1q_dup_bf16): New. | |
35219 | (vld2_bf16): New. | |
35220 | (vld2q_bf16): New. | |
35221 | (vld2_dup_bf16): New. | |
35222 | (vld2q_dup_bf16): New. | |
35223 | (vld3_bf16): New. | |
35224 | (vld3q_bf16): New. | |
35225 | (vld3_dup_bf16): New. | |
35226 | (vld3q_dup_bf16): New. | |
35227 | (vld4_bf16): New. | |
35228 | (vld4q_bf16): New. | |
35229 | (vld4_dup_bf16): New. | |
35230 | (vld4q_dup_bf16): New. | |
35231 | (vst1_bf16, vst1_bf16_x2): New. | |
35232 | (vst1_bf16_x3, vst1_bf16_x4): New. | |
35233 | (vst1q_bf16, vst1q_bf16_x2): New. | |
35234 | (vst1q_bf16_x3, vst1q_bf16_x4): New. | |
35235 | (vst1_lane_bf16): New. | |
35236 | (vst1q_lane_bf16): New. | |
35237 | (vst2_bf16): New. | |
35238 | (vst2q_bf16): New. | |
35239 | (vst3_bf16): New. | |
35240 | (vst3q_bf16): New. | |
35241 | (vst4_bf16): New. | |
35242 | (vst4q_bf16): New. | |
35243 | ||
35244 | 2020-02-25 Mihail Ionescu <mihail.ionescu@arm.com> | |
35245 | ||
35246 | * config/aarch64/iterators.md (VDQF_F16) Add V4BF and V8BF. | |
35247 | (VALL_F16): Likewise. | |
35248 | (VALLDI_F16): Likewise. | |
35249 | (Vtype): Likewise. | |
35250 | (Vetype): Likewise. | |
35251 | (vswap_width_name): Likewise. | |
35252 | (VSWAP_WIDTH): Likewise. | |
35253 | (Vel): Likewise. | |
35254 | (VEL): Likewise. | |
35255 | (q): Likewise. | |
35256 | * config/aarch64/arm_neon.h (vset_lane_bf16, vsetq_lane_bf16): New. | |
35257 | (vget_lane_bf16, vgetq_lane_bf16): New. | |
35258 | (vcreate_bf16): New. | |
35259 | (vdup_n_bf16, vdupq_n_bf16): New. | |
35260 | (vdup_lane_bf16, vdup_laneq_bf16): New. | |
35261 | (vdupq_lane_bf16, vdupq_laneq_bf16): New. | |
35262 | (vduph_lane_bf16, vduph_laneq_bf16): New. | |
35263 | (vreinterpret_bf16_u8, vreinterpretq_bf16_u8): New. | |
35264 | (vreinterpret_bf16_u16, vreinterpretq_bf16_u16): New. | |
35265 | (vreinterpret_bf16_u32, vreinterpretq_bf16_u32): New. | |
35266 | (vreinterpret_bf16_u64, vreinterpretq_bf16_u64): New. | |
35267 | (vreinterpret_bf16_s8, vreinterpretq_bf16_s8): New. | |
35268 | (vreinterpret_bf16_s16, vreinterpretq_bf16_s16): New. | |
35269 | (vreinterpret_bf16_s32, vreinterpretq_bf16_s32): New. | |
35270 | (vreinterpret_bf16_s64, vreinterpretq_bf16_s64): New. | |
35271 | (vreinterpret_bf16_p8, vreinterpretq_bf16_p8): New. | |
35272 | (vreinterpret_bf16_p16, vreinterpretq_bf16_p16): New. | |
35273 | (vreinterpret_bf16_p64, vreinterpretq_bf16_p64): New | |
35274 | (vreinterpret_bf16_f16, vreinterpretq_bf16_f16): New | |
35275 | (vreinterpret_bf16_f32, vreinterpretq_bf16_f32): New. | |
35276 | (vreinterpret_bf16_f64, vreinterpretq_bf16_f64): New. | |
35277 | (vreinterpretq_bf16_p128): New. | |
35278 | (vreinterpret_s8_bf16, vreinterpretq_s8_bf16): New. | |
35279 | (vreinterpret_s16_bf16, vreinterpretq_s16_bf16): New. | |
35280 | (vreinterpret_s32_bf16, vreinterpretq_s32_bf16): New. | |
35281 | (vreinterpret_s64_bf16, vreinterpretq_s64_bf16): New. | |
35282 | (vreinterpret_u8_bf16, vreinterpretq_u8_bf16): New. | |
35283 | (vreinterpret_u16_bf16, vreinterpretq_u16_bf16): New. | |
35284 | (vreinterpret_u32_bf16, vreinterpretq_u32_bf16): New. | |
35285 | (vreinterpret_u64_bf16, vreinterpretq_u64_bf16): New. | |
35286 | (vreinterpret_p8_bf16, vreinterpretq_p8_bf16): New. | |
35287 | (vreinterpret_p16_bf16, vreinterpretq_p16_bf16): New. | |
35288 | (vreinterpret_p64_bf16, vreinterpretq_p64_bf16): New. | |
35289 | (vreinterpret_f32_bf16, vreinterpretq_f32_bf16): New. | |
35290 | (vreinterpret_f64_bf16,vreinterpretq_f64_bf16): New. | |
35291 | (vreinterpret_f16_bf16,vreinterpretq_f16_bf16): New. | |
35292 | (vreinterpretq_p128_bf16): New. | |
35293 | ||
35294 | 2020-02-25 Dennis Zhang <dennis.zhang@arm.com> | |
35295 | ||
35296 | * config/arm/arm_neon.h (vbfdot_f32, vbfdotq_f32): New | |
35297 | (vbfdot_lane_f32, vbfdotq_laneq_f32): New. | |
35298 | (vbfdot_laneq_f32, vbfdotq_lane_f32): New. | |
35299 | * config/arm/arm_neon_builtins.def (vbfdot): New entry. | |
35300 | (vbfdot_lanev4bf, vbfdot_lanev8bf): Likewise. | |
35301 | * config/arm/iterators.md (VSF2BF): New attribute. | |
35302 | * config/arm/neon.md (neon_vbfdot<VCVTF:mode>): New entry. | |
35303 | (neon_vbfdot_lanev4bf<VCVTF:mode>): Likewise. | |
35304 | (neon_vbfdot_lanev8bf<VCVTF:mode>): Likewise. | |
35305 | ||
35306 | 2020-02-25 Christophe Lyon <christophe.lyon@linaro.org> | |
35307 | ||
35308 | * config/arm/arm.md (required_for_purecode): New attribute. | |
35309 | (enabled): Handle required_for_purecode. | |
35310 | * config/arm/thumb1.md (thumb1_movsi_insn): Add alternative to | |
35311 | work with -mpure-code. | |
35312 | ||
35313 | 2020-02-25 Jakub Jelinek <jakub@redhat.com> | |
35314 | ||
35315 | PR rtl-optimization/93908 | |
35316 | * combine.c (find_split_point): For store into ZERO_EXTRACT, and src | |
35317 | with mask. | |
35318 | ||
35319 | 2019-02-25 Eric Botcazou <ebotcazou@adacore.com> | |
35320 | ||
35321 | * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode. | |
35322 | ||
35323 | 2020-02-25 Roman Zhuykov <zhroma@ispras.ru> | |
35324 | ||
35325 | * doc/install.texi (--enable-checking): Adjust wording. | |
35326 | ||
35327 | 2020-02-25 Richard Biener <rguenther@suse.de> | |
35328 | ||
35329 | PR tree-optimization/93868 | |
35330 | * tree-vect-slp.c (slp_copy_subtree): New function. | |
35331 | (vect_attempt_slp_rearrange_stmts): Copy the SLP tree before | |
35332 | re-arranging stmts in it. | |
35333 | ||
35334 | 2020-02-25 Jakub Jelinek <jakub@redhat.com> | |
35335 | ||
35336 | PR middle-end/93874 | |
35337 | * passes.c (pass_manager::dump_passes): Create a cgraph node for the | |
35338 | dummy function and remove it at the end. | |
35339 | ||
35340 | PR translation/93864 | |
35341 | * config/lm32/lm32.c (lm32_setup_incoming_varargs): Fix comment typo | |
35342 | paramter -> parameter. | |
35343 | * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Likewise. | |
35344 | * ipa-prop.h (struct ipa_agg_replacement_value): Likewise. | |
35345 | ||
35346 | 2020-02-24 Roman Zhuykov <zhroma@ispras.ru> | |
35347 | ||
35348 | * doc/install.texi (--enable-checking): Properly document current | |
35349 | behavior. | |
35350 | (--enable-stage1-checking): Minor clarification about bootstrap. | |
35351 | ||
35352 | 2020-02-24 David Malcolm <dmalcolm@redhat.com> | |
35353 | ||
35354 | PR analyzer/93032 | |
35355 | * doc/invoke.texi (-Wnanalyzer-tainted-array-index): Note that | |
35356 | -fanalyzer-checker=taint is also required. | |
35357 | (-fanalyzer-checker=): Note that providing this option enables the | |
35358 | given checker, and doing so may be required for checkers that are | |
35359 | disabled by default. | |
35360 | ||
35361 | 2020-02-24 David Malcolm <dmalcolm@redhat.com> | |
35362 | ||
35363 | * doc/invoke.texi (-fanalyzer-verbosity=): "2" only shows | |
35364 | significant control flow events; add a "3" which shows all | |
35365 | control flow events; the old "3" becomes "4". | |
35366 | ||
35367 | 2020-02-24 Jakub Jelinek <jakub@redhat.com> | |
35368 | ||
35369 | PR tree-optimization/93582 | |
35370 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Consider | |
35371 | pd.offset and pd.size to be counted in bits rather than bytes, add | |
35372 | support for maxsizei that is not a multiple of BITS_PER_UNIT and | |
35373 | handle bitfield stores and loads. | |
35374 | (vn_reference_lookup_3): Don't call ranges_known_overlap_p with | |
35375 | uncomparable quantities - bytes vs. bits. Allow push_partial_def | |
35376 | on offsets/sizes that aren't multiple of BITS_PER_UNIT and adjust | |
35377 | pd.offset/pd.size to be counted in bits rather than bytes. | |
35378 | Formatting fix. Rename shadowed len variable to buflen. | |
35379 | ||
35380 | 2020-02-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
35381 | Kugan Vivekandarajah <kugan.vivekanandarajah@linaro.org> | |
35382 | ||
35383 | PR driver/47785 | |
35384 | * gcc.c (putenv_COLLECT_AS_OPTIONS): New function. | |
35385 | (driver::main): Call putenv_COLLECT_AS_OPTIONS. | |
35386 | * opts-common.c (parse_options_from_collect_gcc_options): New function. | |
35387 | (prepend_xassembler_to_collect_as_options): Likewise. | |
35388 | * opts.h (parse_options_from_collect_gcc_options): Declare prototype. | |
35389 | (prepend_xassembler_to_collect_as_options): Likewise. | |
35390 | * lto-opts.c (lto_write_options): Stream assembler options | |
35391 | in COLLECT_AS_OPTIONS. | |
35392 | * lto-wrapper.c (xassembler_options_error): New static variable. | |
35393 | (get_options_from_collect_gcc_options): Move parsing options code to | |
35394 | parse_options_from_collect_gcc_options and call it. | |
35395 | (merge_and_complain): Validate -Xassembler options. | |
35396 | (append_compiler_options): Handle OPT_Xassembler. | |
35397 | (run_gcc): Append command line -Xassembler options to | |
35398 | collect_gcc_options. | |
35399 | * doc/invoke.texi: Add documentation about using Xassembler | |
35400 | options with LTO. | |
35401 | ||
35402 | 2020-02-24 Kito Cheng <kito.cheng@sifive.com> | |
35403 | ||
35404 | * config/riscv/riscv.c (riscv_emit_float_compare): Change the code gen | |
35405 | for LTGT. | |
35406 | (riscv_rtx_costs): Update cost model for LTGT. | |
35407 | ||
35408 | 2020-02-23 Vladimir Makarov <vmakarov@redhat.com> | |
35409 | ||
35410 | PR rtl-optimization/93564 | |
35411 | * ira-color.c (struct update_cost_queue_elem): New member start. | |
35412 | (queue_update_cost, get_next_update_cost): Add new arg start. | |
35413 | (allocnos_conflict_p): New function. | |
35414 | (update_costs_from_allocno): Add new arg conflict_cost_update_p. | |
35415 | Add checking conflicts with allocnos_conflict_p. | |
35416 | (update_costs_from_prefs, restore_costs_from_copies): Adjust | |
35417 | update_costs_from_allocno calls. | |
35418 | (update_conflict_hard_regno_costs): Add checking conflicts with | |
35419 | allocnos_conflict_p. Adjust calls of queue_update_cost and | |
35420 | get_next_update_cost. | |
35421 | (assign_hard_reg): Adjust calls of queue_update_cost. Add | |
35422 | debugging print. | |
35423 | (bucket_allocno_compare_func): Restore previous version. | |
35424 | ||
35425 | 2020-02-21 John David Anglin <danglin@gcc.gnu.org> | |
35426 | ||
35427 | * config/pa/pa.c (pa_function_value): Fix check for word and | |
35428 | double-word size when handling aggregate return values. | |
35429 | * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate | |
35430 | that homogeneous SFmode and DFmode aggregates are passed and returned | |
35431 | in general registers. | |
35432 | ||
35433 | 2020-02-21 Jakub Jelinek <jakub@redhat.com> | |
35434 | ||
35435 | PR translation/93759 | |
35436 | * opts.c (print_filtered_help): Translate help before appending | |
35437 | messages to it rather than after that. | |
35438 | ||
35439 | 2020-02-19 Richard Sandiford <richard.sandiford@arm.com> | |
35440 | ||
35441 | PR rtl-optimization/PR92989 | |
35442 | * lra-lives.c (process_bb_lives): Restore the original order | |
35443 | of the bb liveness update. Call make_hard_regno_dead for each | |
35444 | register clobbered at the start of an EH receiver. | |
35445 | ||
35446 | 2020-02-18 Feng Xue <fxue@os.amperecomputing.com> | |
35447 | ||
35448 | PR ipa/93763 | |
35449 | * ipa-cp.c (self_recursively_generated_p): Mark self-dependent value as | |
35450 | self-recursively generated. | |
35451 | ||
35452 | 2020-02-21 Iain Sandoe <iain@sandoe.co.uk> | |
35453 | ||
35454 | PR target/93860 | |
35455 | * config/darwin-c.c (pop_field_alignment): Adjust quoting of | |
35456 | error string. | |
35457 | ||
35458 | 2020-02-21 Mihail Ionescu <mihail.ionescu@arm.com> | |
35459 | ||
35460 | * doc/sourcebuild.texi (arm_v8_1m_mve_ok): | |
35461 | Document new target supports option. | |
35462 | ||
35463 | 2020-02-21 Dennis Zhang <dennis.zhang@arm.com> | |
35464 | ||
35465 | * config/arm/arm_neon.h (vmmlaq_s32, vmmlaq_u32, vusmmlaq_s32): New. | |
35466 | * config/arm/arm_neon_builtins.def (smmla, ummla, usmmla): New. | |
35467 | * config/arm/iterators.md (MATMUL): New iterator. | |
35468 | (sup): Add UNSPEC_MATMUL_S, UNSPEC_MATMUL_U, and UNSPEC_MATMUL_US. | |
35469 | (mmla_sfx): New attribute. | |
35470 | * config/arm/neon.md (neon_<sup>mmlav16qi): New. | |
35471 | * config/arm/unspecs.md (UNSPEC_MATMUL_S, UNSPEC_MATMUL_U): New. | |
35472 | (UNSPEC_MATMUL_US): New. | |
35473 | ||
35474 | 2020-02-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
35475 | ||
35476 | * config/arm/arm.md: Prevent scalar shifts from being used when big | |
35477 | endian is enabled. | |
35478 | ||
35479 | 2020-02-21 Jan Hubicka <hubicka@ucw.cz> | |
35480 | Richard Biener <rguenther@suse.de> | |
35481 | ||
35482 | PR tree-optimization/93586 | |
35483 | * tree-ssa-alias.c (nonoverlapping_array_refs_p): Finish array walk | |
35484 | after mismatched array refs; do not sure type size information to | |
35485 | recover from unmatched referneces with !flag_strict_aliasing_p. | |
35486 | ||
35487 | 2020-02-21 Andrew Stubbs <ams@codesourcery.com> | |
35488 | ||
35489 | * config/gcn/gcn-valu.md (gather_load<mode>): Rename to ... | |
35490 | (gather_load<mode>v64si): ... this and set operand 2 to V64SI. | |
35491 | (scatter_store<mode>): Rename to ... | |
35492 | (scatter_store<mode>v64si): ... this and set operand 1 to V64SI. | |
35493 | (scatter<mode>_exec): Delete. Move contents ... | |
35494 | (mask_scatter_store<mode>): ... here, and rename that to ... | |
35495 | (mask_gather_load<mode>v64si): ... this. Set operand 2 to V64SI. | |
35496 | Remove mode conversion. | |
35497 | (mask_gather_load<mode>): Rename to ... | |
35498 | (mask_scatter_store<mode>v64si): ... this. Set operand 1 to V64SI. | |
35499 | Remove mode conversion. | |
35500 | * config/gcn/gcn.c (gcn_expand_scaled_offsets): Remove mode conversion. | |
35501 | ||
35502 | 2020-02-21 Martin Jambor <mjambor@suse.cz> | |
35503 | ||
35504 | PR tree-optimization/93845 | |
35505 | * tree-sra.c (verify_sra_access_forest): Only test access size of | |
35506 | scalar types. | |
35507 | ||
35508 | 2020-02-21 Andrew Stubbs <ams@codesourcery.com> | |
35509 | ||
35510 | * config/gcn/gcn.c (gcn_hard_regno_mode_ok): Align VGPR pairs. | |
35511 | * config/gcn/gcn-valu.md (addv64di3): Remove early-clobber. | |
35512 | (addv64di3_exec): Likewise. | |
35513 | (subv64di3): Likewise. | |
35514 | (subv64di3_exec): Likewise. | |
35515 | (addv64di3_zext): Likewise. | |
35516 | (addv64di3_zext_exec): Likewise. | |
35517 | (addv64di3_zext_dup): Likewise. | |
35518 | (addv64di3_zext_dup_exec): Likewise. | |
35519 | (addv64di3_zext_dup2): Likewise. | |
35520 | (addv64di3_zext_dup2_exec): Likewise. | |
35521 | (addv64di3_sext_dup2): Likewise. | |
35522 | (addv64di3_sext_dup2_exec): Likewise. | |
35523 | (<expander>v64di3): Likewise. | |
35524 | (<expander>v64di3_exec): Likewise. | |
35525 | (*<reduc_op>_dpp_shr_v64di): Likewise. | |
35526 | (*plus_carry_dpp_shr_v64di): Likewise. | |
35527 | * config/gcn/gcn.md (adddi3): Likewise. | |
35528 | (addptrdi3): Likewise. | |
35529 | (<expander>di3): Likewise. | |
35530 | ||
35531 | 2020-02-21 Andrew Stubbs <ams@codesourcery.com> | |
35532 | ||
35533 | * config/gcn/gcn-valu.md (vec_seriesv64di): Use gen_vec_duplicatev64di. | |
35534 | ||
35535 | 2020-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
35536 | ||
35537 | * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Add SVE | |
35538 | support. Use aarch64_emit_mult instead of emitting multiplication | |
35539 | instructions directly. | |
35540 | * config/aarch64/aarch64-sve.md (sqrt<mode>2, rsqrt<mode>2) | |
35541 | (@aarch64_rsqrte<mode>, @aarch64_rsqrts<mode>): New expanders. | |
35542 | ||
35543 | 2020-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
35544 | ||
35545 | * config/aarch64/aarch64.c (aarch64_emit_mult): New function. | |
35546 | (aarch64_emit_approx_div): Add SVE support. Use aarch64_emit_mult | |
35547 | instead of emitting multiplication instructions directly. | |
35548 | * config/aarch64/iterators.md (SVE_COND_FP_BINARY_OPTAB): New iterator. | |
35549 | * config/aarch64/aarch64-sve.md (div<mode>3, @aarch64_frecpe<mode>) | |
35550 | (@aarch64_frecps<mode>): New expanders. | |
35551 | ||
35552 | 2020-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
35553 | ||
35554 | * config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): Operate | |
35555 | on and produce uint64_ts rather than ints. | |
35556 | (AARCH64_APPROX_NONE, AARCH64_APPROX_ALL): Change to uint64_ts. | |
35557 | (cpu_approx_modes): Change the fields from unsigned int to uint64_t. | |
35558 | ||
35559 | 2020-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
35560 | ||
35561 | * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Don't create | |
35562 | an unused xmsk register when handling approximate rsqrt. | |
35563 | ||
35564 | 2020-02-21 Richard Sandiford <richard.sandiford@arm.com> | |
35565 | ||
35566 | * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Fix inverted | |
35567 | flag_finite_math_only condition. | |
35568 | ||
35569 | 2020-02-20 Uroš Bizjak <ubizjak@gmail.com> | |
35570 | ||
35571 | PR target/93828 | |
35572 | * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand | |
35573 | to destination operand for shufps alternative. | |
35574 | (*vec_extractv2si_1): Ditto. | |
35575 | ||
35576 | 2020-02-20 Peter Bergner <bergner@linux.ibm.com> | |
35577 | ||
35578 | PR target/93658 | |
35579 | * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX | |
35580 | vector modes. | |
35581 | ||
35582 | 2020-02-20 Martin Liska <mliska@suse.cz> | |
35583 | ||
35584 | PR translation/93831 | |
35585 | * config/darwin.c (darwin_override_options): Change 64b to 64-bit mode. | |
35586 | ||
35587 | 2020-02-20 Martin Liska <mliska@suse.cz> | |
35588 | ||
35589 | PR translation/93830 | |
35590 | * common/config/avr/avr-common.c: Remote trailing "|". | |
35591 | ||
35592 | 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
35593 | ||
35594 | * collect2.c (maybe_run_lto_and_relink): Fix typo in | |
35595 | comment. | |
35596 | ||
35597 | 2020-02-19 Richard Sandiford <richard.sandiford@arm.com> | |
35598 | ||
35599 | PR tree-optimization/93767 | |
35600 | * tree-vect-data-refs.c (vect_compile_time_alias): Remove the | |
35601 | access-size bias from the offset calculations for negative strides. | |
35602 | ||
35603 | 2020-02-19 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
35604 | ||
35605 | * collect2.c (c_file, o_file): Make const again. | |
35606 | (ldout,lderrout, dump_ld_file): Remove. | |
35607 | (tool_cleanup): Avoid calling not signal-safe functions. | |
35608 | (maybe_run_lto_and_relink): Avoid possible signal handler | |
35609 | access to unintialzed memory (lto_o_files). | |
35610 | (main): Avoid leaking temp files in $TMPDIR. | |
35611 | Initialize c_file/o_file with concat, which avoids exposing | |
35612 | uninitialized memory to signal handler, which calls unlink(!). | |
35613 | Avoid calling maybe_unlink when the main function returns, | |
35614 | since the atexit handler is already doing this. | |
35615 | * collect2.h (dump_ld_file, ldout, lderrout): Remove. | |
35616 | ||
35617 | 2020-02-19 Martin Jambor <mjambor@suse.cz> | |
35618 | ||
35619 | PR tree-optimization/93776 | |
35620 | * tree-sra.c (create_access): Do not create zero size accesses. | |
35621 | (get_access_for_expr): Do not search for zero sized accesses. | |
35622 | ||
35623 | 2020-02-19 Martin Jambor <mjambor@suse.cz> | |
35624 | ||
35625 | PR tree-optimization/93667 | |
35626 | * tree-sra.c (scalarizable_type_p): Return false if record fields | |
35627 | do not follow wach other. | |
35628 | ||
35629 | 2020-01-21 Kito Cheng <kito.cheng@sifive.com> | |
35630 | ||
35631 | * config/riscv/riscv.c (riscv_output_move) Using fmv.x.w/fmv.w.x | |
35632 | rather than fmv.x.s/fmv.s.x. | |
35633 | ||
35634 | 2020-02-18 James Greenhalgh <james.greenhalgh@arm.com> | |
35635 | ||
35636 | * config/aarch64/aarch64-simd-builtins.def | |
35637 | (intrinsic_vec_smult_lo_): New. | |
35638 | (intrinsic_vec_umult_lo_): Likewise. | |
35639 | (vec_widen_smult_hi_): Likewise. | |
35640 | (vec_widen_umult_hi_): Likewise. | |
35641 | * config/aarch64/aarch64-simd.md | |
35642 | (aarch64_intrinsic_vec_<su>mult_lo_<mode>): New. | |
35643 | * config/aarch64/arm_neon.h (vmull_high_s8): Use intrinsics. | |
35644 | (vmull_high_s16): Likewise. | |
35645 | (vmull_high_s32): Likewise. | |
35646 | (vmull_high_u8): Likewise. | |
35647 | (vmull_high_u16): Likewise. | |
35648 | (vmull_high_u32): Likewise. | |
35649 | (vmull_s8): Likewise. | |
35650 | (vmull_s16): Likewise. | |
35651 | (vmull_s32): Likewise. | |
35652 | (vmull_u8): Likewise. | |
35653 | (vmull_u16): Likewise. | |
35654 | (vmull_u32): Likewise. | |
35655 | ||
35656 | 2020-02-18 Martin Liska <mliska@suse.cz> | |
35657 | ||
35658 | * value-prof.c (stream_out_histogram_value): Restore LTO PGO | |
35659 | bootstrap by missing removal of invalid sanity check. | |
35660 | ||
35661 | 2020-02-18 Martin Liska <mliska@suse.cz> | |
35662 | ||
35663 | PR ipa/92518 | |
35664 | * ipa-icf-gimple.c (func_checker::compare_gimple_assign): | |
35665 | Always compare LHS of gimple_assign. | |
35666 | ||
35667 | 2020-02-18 Martin Liska <mliska@suse.cz> | |
35668 | ||
35669 | PR ipa/93583 | |
35670 | * cgraph.c (cgraph_node::verify_node): Verify MALLOC attribute | |
35671 | and return type of functions. | |
35672 | * ipa-param-manipulation.c (ipa_param_adjustments::adjust_decl): | |
35673 | Drop MALLOC attribute for void functions. | |
35674 | * ipa-pure-const.c (funct_state_summary_t::duplicate): Drop | |
35675 | malloc_state for a new VOID clone. | |
35676 | ||
35677 | 2020-02-18 Martin Liska <mliska@suse.cz> | |
35678 | ||
35679 | PR ipa/92924 | |
35680 | * common.opt: Add -fprofile-reproducibility. | |
35681 | * doc/invoke.texi: Document it. | |
35682 | * value-prof.c (dump_histogram_value): | |
35683 | Document and support behavior for counters[0] | |
35684 | being a negative value. | |
35685 | (get_nth_most_common_value): Handle negative | |
35686 | counters[0] in respect to flag_profile_reproducible. | |
35687 | ||
35688 | 2020-02-18 Jakub Jelinek <jakub@redhat.com> | |
35689 | ||
35690 | PR ipa/93797 | |
35691 | * cgraph.c (verify_speculative_call): Use speculative_id instead of | |
35692 | speculative_uid in messages. Remove trailing whitespace from error | |
35693 | message. Use num_speculative_call_targets instead of | |
35694 | num_speculative_targets in a message. | |
35695 | (cgraph_node::verify_node): Use call_stmt instead of cal_stmt in | |
35696 | edge messages and stmt instead of cal_stmt in reference message. | |
35697 | ||
35698 | PR tree-optimization/93780 | |
35699 | * tree-ssa.c (non_rewritable_lvalue_p): Check valid_vector_subparts_p | |
35700 | before calling build_vector_type. | |
35701 | (execute_update_addresses_taken): Likewise. | |
35702 | ||
35703 | PR driver/93796 | |
35704 | * params.opt (-param=ipa-max-switch-predicate-bounds=): Fix help | |
35705 | typo, functoin -> function. | |
35706 | * tree.c (free_lang_data_in_decl): Fix comment typo, | |
35707 | functoin -> function. | |
35708 | * ipa-visibility.c (cgraph_externally_visible_p): Likewise. | |
35709 | ||
35710 | 2020-02-17 David Malcolm <dmalcolm@redhat.com> | |
35711 | ||
35712 | * diagnostic.c (print_any_cwe): Don't call get_cwe_url if URLs | |
35713 | won't be printed. | |
35714 | (print_option_information): Don't call get_option_url if URLs | |
35715 | won't be printed. | |
35716 | ||
35717 | 2020-02-17 Alexandre Oliva <oliva@adacore.com> | |
35718 | ||
35719 | * tree-emutls.c (new_emutls_decl, emutls_common_1): Complete | |
35720 | handling of register_common-less targets. | |
35721 | ||
35722 | 2020-02-17 Martin Liska <mliska@suse.cz> | |
35723 | ||
35724 | PR ipa/93760 | |
35725 | * ipa-devirt.c (odr_types_equivalent_p): Fix grammar. | |
35726 | ||
35727 | 2020-02-17 Martin Liska <mliska@suse.cz> | |
35728 | ||
35729 | PR translation/93755 | |
35730 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
35731 | Fix double quotes. | |
35732 | ||
35733 | 2020-02-17 Martin Liska <mliska@suse.cz> | |
35734 | ||
35735 | PR other/93756 | |
35736 | * config/rx/elf.opt: Fix typo. | |
35737 | ||
35738 | 2020-02-17 Richard Biener <rguenther@suse.de> | |
35739 | ||
35740 | PR c/86134 | |
35741 | * opts-global.c (print_ignored_options): Use inform and | |
35742 | amend message. | |
35743 | ||
35744 | 2020-02-17 Jiufu Guo <guojiufu@linux.ibm.com> | |
35745 | ||
35746 | PR target/93047 | |
35747 | * config/rs6000/rs6000.md (untyped_call): Add emit_clobber. | |
35748 | ||
35749 | 2020-02-16 Uroš Bizjak <ubizjak@gmail.com> | |
35750 | ||
35751 | PR target/93743 | |
35752 | * config/i386/i386.md (atan2xf3): Swap operands 1 and 2. | |
35753 | (atan2<mode>3): Update operand order in the call to gen_atan2xf3. | |
35754 | ||
35755 | 2020-02-15 Jason Merrill <jason@redhat.com> | |
35756 | ||
35757 | * doc/invoke.texi (C Dialect Options): Add -std=c++20. | |
35758 | ||
35759 | 2020-02-15 Jakub Jelinek <jakub@redhat.com> | |
35760 | ||
35761 | PR tree-optimization/93744 | |
35762 | * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0, | |
35763 | A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A, | |
35764 | A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): For GENERIC, make | |
35765 | sure @2 in the first and @1 in the other patterns has no side-effects. | |
35766 | ||
35767 | 2020-02-15 David Malcolm <dmalcolm@redhat.com> | |
35768 | Bernd Edlinger <bernd.edlinger@hotmail.de> | |
35769 | ||
35770 | PR 87488 | |
35771 | PR other/93168 | |
35772 | * config.in (DIAGNOSTICS_URLS_DEFAULT): New define. | |
35773 | * configure.ac (--with-diagnostics-urls): New configuration | |
35774 | option, based on --with-diagnostics-color. | |
35775 | (DIAGNOSTICS_URLS_DEFAULT): New define. | |
35776 | * config.h: Regenerate. | |
35777 | * configure: Regenerate. | |
35778 | * diagnostic.c (diagnostic_urls_init): Handle -1 for | |
35779 | DIAGNOSTICS_URLS_DEFAULT from configure-time | |
35780 | --with-diagnostics-urls=auto-if-env by querying for a GCC_URLS | |
35781 | and TERM_URLS environment variable. | |
35782 | * diagnostic-url.h (diagnostic_url_format): New enum type. | |
35783 | (diagnostic_urls_enabled_p): rename to... | |
35784 | (determine_url_format): ... this, and change return type. | |
35785 | * diagnostic-color.c (parse_env_vars_for_urls): New helper function. | |
35786 | (auto_enable_urls): Disable URLs on xfce4-terminal, gnome-terminal, | |
35787 | the linux console, and mingw. | |
35788 | (diagnostic_urls_enabled_p): rename to... | |
35789 | (determine_url_format): ... this, and adjust. | |
35790 | * pretty-print.h (pretty_printer::show_urls): rename to... | |
35791 | (pretty_printer::url_format): ... this, and change to enum. | |
35792 | * pretty-print.c (pretty_printer::pretty_printer, | |
35793 | pp_begin_url, pp_end_url, test_urls): Adjust. | |
35794 | * doc/install.texi (--with-diagnostics-urls): Document the new | |
35795 | configuration option. | |
35796 | (--with-diagnostics-color): Document the existing interaction | |
35797 | with GCC_COLORS better. | |
35798 | * doc/invoke.texi (-fdiagnostics-urls): Add GCC_URLS and TERM_URLS | |
35799 | vindex reference. Update description of defaults based on the above. | |
35800 | (-fdiagnostics-color): Update description of how -fdiagnostics-color | |
35801 | interacts with GCC_COLORS. | |
35802 | ||
35803 | 2020-02-14 Eric Botcazou <ebotcazou@adacore.com> | |
35804 | ||
35805 | PR target/93704 | |
35806 | * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in | |
35807 | conjunction with TARGET_GNU_TLS in early return. | |
35808 | ||
35809 | 2020-02-14 Alexander Monakov <amonakov@ispras.ru> | |
35810 | ||
35811 | * rtlanal.c (rtx_cost): Handle a SET up front. Avoid division if | |
35812 | the mode is not wider than UNITS_PER_WORD. | |
35813 | ||
35814 | 2020-02-14 Martin Jambor <mjambor@suse.cz> | |
35815 | ||
35816 | PR tree-optimization/93516 | |
35817 | * tree-sra.c (propagate_subaccesses_from_rhs): Do not create | |
35818 | access of the same type as the parent. | |
35819 | (propagate_subaccesses_from_lhs): Likewise. | |
35820 | ||
35821 | 2020-02-14 Hongtao Liu <hongtao.liu@intel.com> | |
35822 | ||
35823 | PR target/93724 | |
35824 | * config/i386/avx512vbmi2intrin.h | |
35825 | (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16, | |
35826 | _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32, | |
35827 | _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, | |
35828 | _m512_shrdi_epi64, _m512_mask_shrdi_epi64, | |
35829 | _m512_maskz_shrdi_epi64, _mm512_shldi_epi16, | |
35830 | _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, | |
35831 | _mm512_shldi_epi32, _mm512_mask_shldi_epi32, | |
35832 | _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, | |
35833 | _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo | |
35834 | of lacking a closing parenthesis. | |
35835 | * config/i386/avx512vbmi2vlintrin.h | |
35836 | (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16, | |
35837 | _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32, | |
35838 | _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, | |
35839 | _m256_shrdi_epi64, _m256_mask_shrdi_epi64, | |
35840 | _m256_maskz_shrdi_epi64, _mm256_shldi_epi16, | |
35841 | _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16, | |
35842 | _mm256_shldi_epi32, _mm256_mask_shldi_epi32, | |
35843 | _mm256_maskz_shldi_epi32, _mm256_shldi_epi64, | |
35844 | _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, | |
35845 | _mm_shrdi_epi16, _mm_mask_shrdi_epi16, | |
35846 | _mm_maskz_shrdi_epi16, _mm_shrdi_epi32, | |
35847 | _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, | |
35848 | _mm_shrdi_epi64, _mm_mask_shrdi_epi64, | |
35849 | _m_maskz_shrdi_epi64, _mm_shldi_epi16, | |
35850 | _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, | |
35851 | _mm_shldi_epi32, _mm_mask_shldi_epi32, | |
35852 | _mm_maskz_shldi_epi32, _mm_shldi_epi64, | |
35853 | _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto. | |
35854 | ||
35855 | 2020-02-13 H.J. Lu <hongjiu.lu@intel.com> | |
35856 | ||
35857 | PR target/93656 | |
35858 | * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at | |
35859 | the target function entry. | |
35860 | ||
35861 | 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com> | |
35862 | ||
35863 | * common/config/arc/arc-common.c (arc_option_optimization_table): | |
35864 | Disable if-conversion step when optimized for size. | |
35865 | ||
35866 | 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com> | |
35867 | ||
35868 | * config/arc/arc.c (arc_conditional_register_usage): R0-R3 and | |
35869 | R12-R15 are always in ARCOMPACT16_REGS register class. | |
35870 | * config/arc/arc.opt (mq-class): Deprecate. | |
35871 | * config/arc/constraint.md ("q"): Remove dependency on mq-class | |
35872 | option. | |
35873 | * doc/invoke.texi (mq-class): Update text. | |
35874 | * common/config/arc/arc-common.c (arc_option_optimization_table): | |
35875 | Update list. | |
35876 | ||
35877 | 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com> | |
35878 | ||
35879 | * config/arc/arc.c (arc_insn_cost): New function. | |
35880 | (TARGET_INSN_COST): Define. | |
35881 | * config/arc/arc.md (cost): New attribute. | |
35882 | (add_n): Use arc_nonmemory_operand. | |
35883 | (ashlsi3_insn): Likewise, also update constraints. | |
35884 | (ashrsi3_insn): Likewise. | |
35885 | (rotrsi3): Likewise. | |
35886 | (add_shift): Likewise. | |
35887 | * config/arc/predicates.md (arc_nonmemory_operand): New predicate. | |
35888 | ||
35889 | 2020-02-13 Claudiu Zissulescu <claziss@synopsys.com> | |
35890 | ||
35891 | * config/arc/arc.md (mulsidi_600): Correctly select mlo/mhi | |
35892 | registers. | |
35893 | (umulsidi_600): Likewise. | |
35894 | ||
35895 | 2020-02-13 Jakub Jelinek <jakub@redhat.com> | |
35896 | ||
35897 | PR target/93696 | |
35898 | * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8, | |
35899 | _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8, | |
35900 | _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8, | |
35901 | _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W, | |
35902 | pass __A to the builtin followed by __W instead of __A followed by | |
35903 | __B. | |
35904 | * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32, | |
35905 | _mm512_mask_popcnt_epi64): Likewise. | |
35906 | * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32, | |
35907 | _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64, | |
35908 | _mm256_mask_popcnt_epi64): Likewise. | |
35909 | ||
35910 | PR tree-optimization/93582 | |
35911 | * fold-const.h (shift_bytes_in_array_left, | |
35912 | shift_bytes_in_array_right): Declare. | |
35913 | * fold-const.c (shift_bytes_in_array_left, | |
35914 | shift_bytes_in_array_right): New function, moved from | |
35915 | gimple-ssa-store-merging.c, no longer static. | |
35916 | * gimple-ssa-store-merging.c (shift_bytes_in_array): Move | |
35917 | to gimple-ssa-store-merging.c and rename to shift_bytes_in_array_left. | |
35918 | (shift_bytes_in_array_right): Move to gimple-ssa-store-merging.c. | |
35919 | (encode_tree_to_bitpos): Use shift_bytes_in_array_left instead of | |
35920 | shift_bytes_in_array. | |
35921 | (verify_shift_bytes_in_array): Rename to ... | |
35922 | (verify_shift_bytes_in_array_left): ... this. Use | |
35923 | shift_bytes_in_array_left instead of shift_bytes_in_array. | |
35924 | (store_merging_c_tests): Call verify_shift_bytes_in_array_left | |
35925 | instead of verify_shift_bytes_in_array. | |
35926 | * tree-ssa-sccvn.c (vn_reference_lookup_3): For native_encode_expr | |
35927 | / native_interpret_expr where the store covers all needed bits, | |
35928 | punt on PDP-endian, otherwise allow all involved offsets and sizes | |
35929 | not to be byte-aligned. | |
35930 | ||
35931 | PR target/93673 | |
35932 | * config/i386/sse.md (k<code><mode>): Drop mode from last operand and | |
35933 | use const_0_to_255_operand predicate instead of immediate_operand. | |
35934 | (avx512dq_fpclass<mode><mask_scalar_merge_name>, | |
35935 | avx512dq_vmfpclass<mode><mask_scalar_merge_name>, | |
35936 | vgf2p8affineinvqb_<mode><mask_name>, | |
35937 | vgf2p8affineqb_<mode><mask_name>): Drop mode from | |
35938 | const_0_to_255_operand predicated operands. | |
35939 | ||
35940 | 2020-02-12 Jeff Law <law@redhat.com> | |
35941 | ||
35942 | * config/h8300/h8300.md (comparison shortening peepholes): Use | |
35943 | a mode iterator to merge the HImode and SImode peepholes. | |
35944 | ||
35945 | 2020-02-12 Jakub Jelinek <jakub@redhat.com> | |
35946 | ||
35947 | PR middle-end/93663 | |
35948 | * real.c (is_even): Make static. Function comment fix. | |
35949 | (is_halfway_below): Make static, don't assert R is not inf/nan, | |
35950 | instead return false for those. Small formatting fixes. | |
35951 | ||
35952 | 2020-02-12 Martin Sebor <msebor@redhat.com> | |
35953 | ||
35954 | PR middle-end/93646 | |
35955 | * tree-ssa-strlen.c (handle_builtin_stxncpy): Rename... | |
35956 | (handle_builtin_stxncpy_strncat): ...to this. Change first argument. | |
35957 | Issue only -Wstringop-overflow strncat, never -Wstringop-truncation. | |
35958 | (strlen_check_and_optimize_call): Adjust callee name. | |
35959 | ||
35960 | 2020-02-12 Jeff Law <law@redhat.com> | |
35961 | ||
35962 | * config/h8300/h8300.md (comparison shortening peepholes): Drop | |
35963 | (and (xor)) variant. Combine other two into single peephole. | |
35964 | ||
35965 | 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com> | |
35966 | ||
35967 | PR rtl-optimization/93565 | |
35968 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs. | |
35969 | ||
35970 | 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com> | |
35971 | ||
35972 | * config/aarch64/aarch64-simd.md | |
35973 | (aarch64_zero_extend<GPI:mode>_reduc_plus_<VDQV_E:mode>): New pattern. | |
35974 | * config/aarch64/aarch64.md (popcount<mode>2): Use it instead of | |
35975 | generating separate ADDV and zero_extend patterns. | |
35976 | * config/aarch64/iterators.md (VDQV_E): New iterator. | |
35977 | ||
35978 | 2020-02-12 Jeff Law <law@redhat.com> | |
35979 | ||
35980 | * config/h8300/h8300.md (cpymemsi, movmd): Remove dead patterns, | |
35981 | expanders, splits, etc. | |
35982 | (movmd_internal_<mode>, movmd splitter, movstr, movsd): Likewise. | |
35983 | (stpcpy_internal_<mode>, stpcpy splitter): Likewise. | |
35984 | (peepholes to convert QI/HI mode pushes to SI mode pushes): Likewise. | |
35985 | * config/h8300/h8300.c (h8300_swap_into_er6): Remove unused function. | |
35986 | (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise | |
35987 | * config/h8300/h8300-protos.h (h8300_swap_into_er6): Remove unused | |
35988 | function prototype. | |
35989 | (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise. | |
35990 | ||
35991 | 2020-02-12 Jakub Jelinek <jakub@redhat.com> | |
35992 | ||
35993 | PR target/93670 | |
35994 | * config/i386/sse.md (VI48F_256_DQ): New mode iterator. | |
35995 | (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove | |
35996 | TARGET_AVX512DQ from condition. | |
35997 | (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition> | |
35998 | instead of <mask_mode512bit_condition> in condition. If | |
35999 | TARGET_AVX512DQ is false, emit vextract*64x4 instead of | |
36000 | vextract*32x8. | |
36001 | (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition> | |
36002 | from condition. | |
36003 | ||
36004 | 2020-02-12 Kewen Lin <linkw@gcc.gnu.org> | |
36005 | ||
36006 | PR target/91052 | |
36007 | * ira.c (combine_and_move_insns): Skip multiple_sets def_insn. | |
36008 | ||
36009 | 2020-02-12 Segher Boessenkool <segher@kernel.crashing.org> | |
36010 | ||
36011 | * config/rs6000/rs6000.c (rs6000_debug_print_mode): Don't use sizeof | |
36012 | where strlen is more legible. | |
36013 | (rs6000_builtin_vectorized_libmass): Ditto. | |
36014 | (rs6000_print_options_internal): Ditto. | |
36015 | ||
36016 | 2020-02-11 Martin Sebor <msebor@redhat.com> | |
36017 | ||
36018 | PR tree-optimization/93683 | |
36019 | * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set. | |
36020 | ||
36021 | 2020-02-11 Michael Meissner <meissner@linux.ibm.com> | |
36022 | ||
36023 | * config/rs6000/predicates.md (cint34_operand): Rename the | |
36024 | -mprefixed-addr option to be -mprefixed. | |
36025 | * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Rename | |
36026 | the -mprefixed-addr option to be -mprefixed. | |
36027 | (OTHER_FUTURE_MASKS): Likewise. | |
36028 | (POWERPC_MASKS): Likewise. | |
36029 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename | |
36030 | the -mprefixed-addr option to be -mprefixed. Change error | |
36031 | messages to refer to -mprefixed. | |
36032 | (num_insns_constant_gpr): Rename the -mprefixed-addr option to be | |
36033 | -mprefixed. | |
36034 | (rs6000_legitimate_offset_address_p): Likewise. | |
36035 | (rs6000_mode_dependent_address): Likewise. | |
36036 | (rs6000_opt_masks): Change the spelling of "-mprefixed-addr" to be | |
36037 | "-mprefixed" for target attributes and pragmas. | |
36038 | (address_to_insn_form): Rename the -mprefixed-addr option to be | |
36039 | -mprefixed. | |
36040 | (rs6000_adjust_insn_length): Likewise. | |
36041 | * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Rename the | |
36042 | -mprefixed-addr option to be -mprefixed. | |
36043 | (ASM_OUTPUT_OPCODE): Likewise. | |
36044 | * config/rs6000/rs6000.md (prefixed insn attribute): Rename the | |
36045 | -mprefixed-addr option to be -mprefixed. | |
36046 | * config/rs6000/rs6000.opt (-mprefixed): Rename the | |
36047 | -mprefixed-addr option to be prefixed. Change the option from | |
36048 | being undocumented to being documented. | |
36049 | * doc/invoke.texi (RS/6000 and PowerPC Options): Document the | |
36050 | -mprefixed option. Update the -mpcrel documentation to mention | |
36051 | -mprefixed. | |
36052 | ||
36053 | 2020-02-11 Hans-Peter Nilsson <hp@axis.com> | |
36054 | ||
36055 | * ira-conflicts.c (print_hard_reg_set): Correct output for sets | |
36056 | including FIRST_PSEUDO_REGISTER - 1. | |
36057 | * ira-color.c (print_hard_reg_set): Ditto. | |
36058 | ||
36059 | 2020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
36060 | ||
36061 | * config/arm/arm-builtins.c (enum arm_type_qualifiers): | |
36062 | (USTERNOP_QUALIFIERS): New define. | |
36063 | (USMAC_LANE_QUADTUP_QUALIFIERS): New define. | |
36064 | (SUMAC_LANE_QUADTUP_QUALIFIERS): New define. | |
36065 | (arm_expand_builtin_args): Add case ARG_BUILTIN_LANE_QUADTUP_INDEX. | |
36066 | (arm_expand_builtin_1): Add qualifier_lane_quadtup_index. | |
36067 | * config/arm/arm_neon.h (vusdot_s32): New. | |
36068 | (vusdot_lane_s32): New. | |
36069 | (vusdotq_lane_s32): New. | |
36070 | (vsudot_lane_s32): New. | |
36071 | (vsudotq_lane_s32): New. | |
36072 | * config/arm/arm_neon_builtins.def (usdot, usdot_lane,sudot_lane): New. | |
36073 | * config/arm/iterators.md (DOTPROD_I8MM): New. | |
36074 | (sup, opsuffix): Add <us/su>. | |
36075 | * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New. | |
36076 | * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New. | |
36077 | ||
36078 | 2020-02-11 Richard Biener <rguenther@suse.de> | |
36079 | ||
36080 | PR tree-optimization/93661 | |
36081 | PR tree-optimization/93662 | |
36082 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard | |
36083 | tree_to_poly_int64. | |
36084 | * tree-sra.c (get_access_for_expr): Likewise. | |
36085 | ||
36086 | 2020-02-10 Jakub Jelinek <jakub@redhat.com> | |
36087 | ||
36088 | PR target/93637 | |
36089 | * config/i386/sse.md (VI_256_AVX2): New mode iterator. | |
36090 | (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256. | |
36091 | Change condition from TARGET_AVX2 to TARGET_AVX. | |
36092 | ||
36093 | 2020-02-10 Iain Sandoe <iain@sandoe.co.uk> | |
36094 | ||
36095 | PR other/93641 | |
36096 | * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last | |
36097 | argument of strncmp. | |
36098 | ||
36099 | 2020-02-10 Hans-Peter Nilsson <hp@axis.com> | |
36100 | ||
36101 | Try to generate zero-based comparisons. | |
36102 | * config/cris/cris.c (cris_reduce_compare): New function. | |
36103 | * config/cris/cris-protos.h (cris_reduce_compare): Add prototype. | |
36104 | * config/cris/cris.md ("cbranch<mode>4", "cbranchdi4", "cstoredi4") | |
36105 | (cstore<mode>4"): Apply cris_reduce_compare in expanders. | |
36106 | ||
36107 | 2020-02-10 Richard Earnshaw <rearnsha@arm.com> | |
36108 | ||
36109 | PR target/91913 | |
36110 | * config/arm/arm.md (movsi_compare0): Allow SP as a source register | |
36111 | in Thumb state and also as a destination in Arm state. Add T16 | |
36112 | variants. | |
36113 | ||
36114 | 2020-02-10 Hans-Peter Nilsson <hp@axis.com> | |
36115 | ||
36116 | * md.texi (Define Subst): Match closing paren in example. | |
36117 | ||
36118 | 2020-02-10 Jakub Jelinek <jakub@redhat.com> | |
36119 | ||
36120 | PR target/58218 | |
36121 | PR other/93641 | |
36122 | * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last | |
36123 | arguments of strncmp. | |
36124 | ||
36125 | 2020-02-10 Feng Xue <fxue@os.amperecomputing.com> | |
36126 | ||
36127 | PR ipa/93203 | |
36128 | * ipa-cp.c (ipcp_lattice::add_value): Add source with same call edge | |
36129 | but different source value. | |
36130 | (adjust_callers_for_value_intersection): New function. | |
36131 | (gather_edges_for_value): Adjust order of callers to let a | |
36132 | non-self-recursive caller be the first element. | |
36133 | (self_recursive_pass_through_p): Add a new parameter "simple", and | |
36134 | check generalized self-recursive pass-through jump function. | |
36135 | (self_recursive_agg_pass_through_p): Likewise. | |
36136 | (find_more_scalar_values_for_callers_subset): Compute value from | |
36137 | pass-through jump function for self-recursive. | |
36138 | (intersect_with_plats): Cleanup previous implementation code for value | |
36139 | itersection with self-recursive call edge. | |
36140 | (intersect_with_agg_replacements): Likewise. | |
36141 | (intersect_aggregates_with_edge): Deduce value from pass-through jump | |
36142 | function for self-recursive call edge. Cleanup previous implementation | |
36143 | code for value intersection with self-recursive call edge. | |
36144 | (decide_whether_version_node): Remove dead callers and adjust order | |
36145 | to let a non-self-recursive caller be the first element. | |
36146 | ||
36147 | 2020-02-09 Uroš Bizjak <ubizjak@gmail.com> | |
36148 | ||
36149 | * recog.c: Move pass_split_before_sched2 code in front of | |
36150 | pass_split_before_regstack. | |
36151 | (pass_data_split_before_sched2): Rename pass to split3 from split4. | |
36152 | (pass_data_split_before_regstack): Rename pass to split4 from split3. | |
36153 | (rest_of_handle_split_before_sched2): Remove. | |
36154 | (pass_split_before_sched2::execute): Unconditionally call | |
36155 | split_all_insns. | |
36156 | (enable_split_before_sched2): New function. | |
36157 | (pass_split_before_sched2::gate): Use enable_split_before_sched2. | |
36158 | (pass_split_before_regstack::gate): Ditto. | |
36159 | * config/nds32/nds32.c (nds32_split_double_word_load_store_p): | |
36160 | Update name check for renamed split4 pass. | |
36161 | * config/sh/sh.c (register_sh_passes): Update pass insertion | |
36162 | point for renamed split4 pass. | |
36163 | ||
36164 | 2020-02-09 Jakub Jelinek <jakub@redhat.com> | |
36165 | ||
36166 | * gimplify.c (gimplify_adjust_omp_clauses_1): Promote | |
36167 | DECL_IN_CONSTANT_POOL variables into "omp declare target" to avoid | |
36168 | copying them around between host and target. | |
36169 | ||
36170 | 2020-02-08 Andrew Pinski <apinski@marvell.com> | |
36171 | ||
36172 | PR target/91927 | |
36173 | * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check | |
36174 | STRICT_ALIGNMENT also. | |
36175 | ||
36176 | 2020-02-08 Jim Wilson <jimw@sifive.com> | |
36177 | ||
36178 | PR target/93532 | |
36179 | * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define. | |
36180 | ||
36181 | 2020-02-08 Uroš Bizjak <ubizjak@gmail.com> | |
36182 | Jakub Jelinek <jakub@redhat.com> | |
36183 | ||
36184 | PR target/65782 | |
36185 | * config/i386/i386.h (CALL_USED_REGISTERS): Make | |
36186 | xmm16-xmm31 call-used even in 64-bit ms-abi. | |
36187 | ||
36188 | 2020-02-07 Dennis Zhang <dennis.zhang@arm.com> | |
36189 | ||
36190 | * config/aarch64/aarch64-simd-builtins.def (simd_smmla): New entry. | |
36191 | (simd_ummla, simd_usmmla): Likewise. | |
36192 | * config/aarch64/aarch64-simd.md (aarch64_simd_<sur>mmlav16qi): New. | |
36193 | * config/aarch64/arm_neon.h (vmmlaq_s32, vmmlaq_u32): New. | |
36194 | (vusmmlaq_s32): New. | |
36195 | ||
36196 | 2020-02-07 Richard Biener <rguenther@suse.de> | |
36197 | ||
36198 | PR middle-end/93519 | |
36199 | * tree-inline.c (fold_marked_statements): Do a PRE walk, | |
36200 | skipping unreachable regions. | |
36201 | (optimize_inline_calls): Skip folding stmts when we didn't | |
36202 | inline. | |
36203 | ||
36204 | 2020-02-07 H.J. Lu <hongjiu.lu@intel.com> | |
36205 | ||
36206 | PR target/85667 | |
36207 | * config/i386/i386.c (function_arg_ms_64): Add a type argument. | |
36208 | Don't return aggregates with only SFmode and DFmode in SSE | |
36209 | register. | |
36210 | (ix86_function_arg): Pass arg.type to function_arg_ms_64. | |
36211 | ||
36212 | 2020-02-07 Jakub Jelinek <jakub@redhat.com> | |
36213 | ||
36214 | PR target/93122 | |
36215 | * config/rs6000/rs6000-logue.c | |
36216 | (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn, | |
36217 | if it fails, move rs into end_addr and retry. Add | |
36218 | REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or | |
36219 | the insn pattern doesn't describe well what exactly happens to | |
36220 | dwarf2cfi.c. | |
36221 | ||
36222 | PR target/93594 | |
36223 | * config/i386/predicates.md (avx_identity_operand): Remove. | |
36224 | * config/i386/sse.md (*avx_vec_concat<mode>_1): Remove. | |
36225 | (avx_<castmode><avxsizesuffix>_<castmode>, | |
36226 | avx512f_<castmode><avxsizesuffix>_256<castmode>): Change patterns to | |
36227 | a VEC_CONCAT of the operand and UNSPEC_CAST. | |
36228 | (avx512f_<castmode><avxsizesuffix>_<castmode>): Change pattern to | |
36229 | a VEC_CONCAT of VEC_CONCAT of the operand and UNSPEC_CAST with | |
36230 | UNSPEC_CAST. | |
36231 | ||
36232 | PR target/93611 | |
36233 | * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear | |
36234 | recog_data.insn if distance_non_agu_define changed it. | |
36235 | ||
36236 | 2020-02-06 Michael Meissner <meissner@linux.ibm.com> | |
36237 | ||
36238 | PR target/93569 | |
36239 | * config/rs6000/rs6000.c (reg_to_non_prefixed): Before ISA 3.0 | |
36240 | we only had X-FORM (reg+reg) addressing for vectors. Also before | |
36241 | ISA 3.0, we only had X-FORM addressing for scalars in the | |
36242 | traditional Altivec registers. | |
36243 | ||
36244 | 2020-02-06 <zhongyunde@huawei.com> | |
36245 | Vladimir Makarov <vmakarov@redhat.com> | |
36246 | ||
36247 | PR rtl-optimization/93561 | |
36248 | * lra-assigns.c (spill_for): Check that tested hard regno is not out of | |
36249 | hard register range. | |
36250 | ||
36251 | 2020-02-06 Richard Sandiford <richard.sandiford@arm.com> | |
36252 | ||
36253 | * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type | |
36254 | attribute. | |
36255 | ||
36256 | 2020-02-06 Segher Boessenkool <segher@kernel.crashing.org> | |
36257 | ||
36258 | * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Handle the case | |
36259 | where the low and the high 32 bits are equal to each other specially, | |
36260 | with an rldimi instruction. | |
36261 | ||
36262 | 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com> | |
36263 | ||
36264 | * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main. | |
36265 | ||
36266 | 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com> | |
36267 | ||
36268 | * config/arm/arm-tables.opt: Regenerate. | |
36269 | ||
36270 | 2020-02-06 Richard Sandiford <richard.sandiford@arm.com> | |
36271 | ||
36272 | PR target/87763 | |
36273 | * config/aarch64/aarch64-protos.h (aarch64_movk_shift): Declare. | |
36274 | * config/aarch64/aarch64.c (aarch64_movk_shift): New function. | |
36275 | * config/aarch64/aarch64.md (aarch64_movk<mode>): New pattern. | |
36276 | ||
36277 | 2020-02-06 Richard Sandiford <richard.sandiford@arm.com> | |
36278 | ||
36279 | PR rtl-optimization/87763 | |
36280 | * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern. | |
36281 | ||
36282 | 2020-02-06 Delia Burduv <delia.burduv@arm.com> | |
36283 | ||
36284 | * config/aarch64/aarch64-simd-builtins.def | |
36285 | (bfmlaq): New built-in function. | |
36286 | (bfmlalb): New built-in function. | |
36287 | (bfmlalt): New built-in function. | |
36288 | (bfmlalb_lane): New built-in function. | |
36289 | (bfmlalt_lane): New built-in function. | |
36290 | * config/aarch64/aarch64-simd.md | |
36291 | (aarch64_bfmmlaqv4sf): New pattern. | |
36292 | (aarch64_bfmlal<bt>v4sf): New pattern. | |
36293 | (aarch64_bfmlal<bt>_lane<q>v4sf): New pattern. | |
36294 | * config/aarch64/arm_neon.h (vbfmmlaq_f32): New intrinsic. | |
36295 | (vbfmlalbq_f32): New intrinsic. | |
36296 | (vbfmlaltq_f32): New intrinsic. | |
36297 | (vbfmlalbq_lane_f32): New intrinsic. | |
36298 | (vbfmlaltq_lane_f32): New intrinsic. | |
36299 | (vbfmlalbq_laneq_f32): New intrinsic. | |
36300 | (vbfmlaltq_laneq_f32): New intrinsic. | |
36301 | * config/aarch64/iterators.md (BF_MLA): New int iterator. | |
36302 | (bt): New int attribute. | |
36303 | ||
36304 | 2020-02-06 Uroš Bizjak <ubizjak@gmail.com> | |
36305 | ||
36306 | * config/i386/i386.md (*pushtf): Emit "#" instead of | |
36307 | calling gcc_unreachable in insn output. | |
36308 | (*pushxf): Ditto. | |
36309 | (*pushdf): Ditto. | |
36310 | (*pushsf_rex64): Ditto for alternatives other than 1. | |
36311 | (*pushsf): Ditto for alternatives other than 1. | |
36312 | ||
36313 | 2020-02-06 Martin Liska <mliska@suse.cz> | |
36314 | ||
36315 | PR gcov-profile/91971 | |
36316 | PR gcov-profile/93466 | |
36317 | * coverage.c (coverage_init): Revert mangling of | |
36318 | path into filename. It can lead to huge filename length. | |
36319 | Creation of subfolders seem more natural. | |
36320 | ||
36321 | 2020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
36322 | ||
36323 | PR target/93300 | |
36324 | * config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New. | |
36325 | (arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs. | |
36326 | Use arm_block_arith_comp_libfuncs_for_mode for HFmode. | |
36327 | ||
36328 | 2020-02-06 Jakub Jelinek <jakub@redhat.com> | |
36329 | ||
36330 | PR target/93594 | |
36331 | * config/i386/predicates.md (avx_identity_operand): New predicate. | |
36332 | * config/i386/sse.md (*avx_vec_concat<mode>_1): New | |
36333 | define_insn_and_split. | |
36334 | ||
36335 | PR libgomp/93515 | |
36336 | * omp-low.c (use_pointer_for_field): For nested constructs, also | |
36337 | look for map clauses on target construct. | |
36338 | (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily | |
36339 | taskreg_nesting_level. | |
36340 | ||
36341 | PR libgomp/93515 | |
36342 | * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding | |
36343 | shared clause, call omp_notice_variable on outer context if any. | |
36344 | ||
36345 | 2020-02-05 Jason Merrill <jason@redhat.com> | |
36346 | ||
36347 | PR c++/92003 | |
36348 | * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has | |
36349 | non-zero address even if weak and not yet defined. | |
36350 | ||
36351 | 2020-02-05 Martin Sebor <msebor@redhat.com> | |
36352 | ||
36353 | PR tree-optimization/92765 | |
36354 | * gimple-fold.c (get_range_strlen_tree): Handle MEM_REF and PARM_DECL. | |
36355 | * tree-ssa-strlen.c (compute_string_length): Remove. | |
36356 | (determine_min_objsize): Remove. | |
36357 | (get_len_or_size): Add an argument. Call get_range_strlen_dynamic. | |
36358 | Avoid using type size as the upper bound on string length. | |
36359 | (handle_builtin_string_cmp): Add an argument. Adjust. | |
36360 | (strlen_check_and_optimize_call): Pass additional argument to | |
36361 | handle_builtin_string_cmp. | |
36362 | ||
36363 | 2020-02-05 Uroš Bizjak <ubizjak@gmail.com> | |
36364 | ||
36365 | * config/i386/i386.md (*pushdi2_rex64 peephole2): Remove. | |
36366 | (*pushdi2_rex64 peephole2): Unconditionally split after | |
36367 | epilogue_completed. | |
36368 | (*ashl<mode>3_doubleword): Ditto. | |
36369 | (*<shift_insn><mode>3_doubleword): Ditto. | |
36370 | ||
36371 | 2020-02-05 Michael Meissner <meissner@linux.ibm.com> | |
36372 | ||
36373 | PR target/93568 | |
36374 | * config/rs6000/rs6000.c (get_vector_offset): Fix | |
36375 | ||
36376 | 2020-02-05 Andrew Stubbs <ams@codesourcery.com> | |
36377 | ||
36378 | * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space. | |
36379 | ||
36380 | 2020-02-05 David Malcolm <dmalcolm@redhat.com> | |
36381 | ||
36382 | * doc/analyzer.texi | |
36383 | (Special Functions for Debugging the Analyzer): Update description | |
36384 | of __analyzer_dump_exploded_nodes. | |
36385 | ||
36386 | 2020-02-05 Jakub Jelinek <jakub@redhat.com> | |
36387 | ||
36388 | PR target/92190 | |
36389 | * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Only | |
36390 | include sets and not clobbers in the vzeroupper pattern. | |
36391 | * config/i386/sse.md (*avx_vzeroupper): Require in insn condition that | |
36392 | the parallel has 17 (64-bit) or 9 (32-bit) elts. | |
36393 | (*avx_vzeroupper_1): New define_insn_and_split. | |
36394 | ||
36395 | PR target/92190 | |
36396 | * recog.c (pass_split_after_reload::gate): For STACK_REGS targets, | |
36397 | don't run when !optimize. | |
36398 | (pass_split_before_regstack::gate): For STACK_REGS targets, run even | |
36399 | when !optimize. | |
36400 | ||
36401 | 2020-02-05 Richard Biener <rguenther@suse.de> | |
36402 | ||
36403 | PR middle-end/90648 | |
36404 | * genmatch.c (dt_node::gen_kids_1): Emit number of argument | |
36405 | checks before matching calls. | |
36406 | ||
36407 | 2020-02-05 Jakub Jelinek <jakub@redhat.com> | |
36408 | ||
36409 | * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up | |
36410 | function comment typo. | |
36411 | ||
36412 | PR middle-end/93555 | |
36413 | * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or | |
36414 | simd_clone_create failed when i == 0, adjust clone->nargs by | |
36415 | clone->inbranch. | |
36416 | ||
36417 | 2020-02-05 Martin Liska <mliska@suse.cz> | |
36418 | ||
36419 | PR c++/92717 | |
36420 | * doc/invoke.texi: Document that one should | |
36421 | not combine ASLR and -fpch. | |
36422 | ||
36423 | 2020-02-04 Richard Biener <rguenther@suse.de> | |
36424 | ||
36425 | PR tree-optimization/93538 | |
36426 | * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr. | |
36427 | ||
36428 | 2020-02-04 Richard Biener <rguenther@suse.de> | |
36429 | ||
36430 | PR tree-optimization/91123 | |
36431 | * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method. | |
36432 | (vn_walk_cb_data::last_vuse): New member. | |
36433 | (vn_walk_cb_data::saved_operands): Likewsie. | |
36434 | (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands. | |
36435 | (vn_walk_cb_data::push_partial_def): Use finish. | |
36436 | (vn_reference_lookup_2): Update last_vuse and use finish if | |
36437 | we've saved operands. | |
36438 | (vn_reference_lookup_3): Use finish and update calls to | |
36439 | push_partial_defs everywhere. When translating through | |
36440 | memcpy or aggregate copies save off operands and alias-set. | |
36441 | (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE | |
36442 | operation for redundant store removal. | |
36443 | ||
36444 | 2020-02-04 Richard Biener <rguenther@suse.de> | |
36445 | ||
36446 | PR tree-optimization/92819 | |
36447 | * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid | |
36448 | generating more stmts than before. | |
36449 | ||
36450 | 2020-02-04 Martin Liska <mliska@suse.cz> | |
36451 | ||
36452 | * config/arm/arm.c (arm_gen_far_branch): Move the function | |
36453 | outside of selftests. | |
36454 | ||
36455 | 2020-02-03 Michael Meissner <meissner@linux.ibm.com> | |
36456 | ||
36457 | * config/rs6000/rs6000.c (adjust_vec_address_pcrel): New helper | |
36458 | function to adjust PC-relative vector addresses. | |
36459 | (rs6000_adjust_vec_address): Call adjust_vec_address_pcrel to | |
36460 | handle vectors with PC-relative addresses. | |
36461 | ||
36462 | 2020-02-03 Michael Meissner <meissner@linux.ibm.com> | |
36463 | ||
36464 | * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward | |
36465 | reference. | |
36466 | (hard_reg_and_mode_to_addr_mask): Delete. | |
36467 | (rs6000_adjust_vec_address): If the original vector address | |
36468 | was REG+REG or REG+OFFSET and the element is not zero, do the add | |
36469 | of the elements in the original address before adding the offset | |
36470 | for the vector element. Use address_to_insn_form to validate the | |
36471 | address using the register being loaded, rather than guessing | |
36472 | whether the address is a DS-FORM or DQ-FORM address. | |
36473 | ||
36474 | 2020-02-03 Michael Meissner <meissner@linux.ibm.com> | |
36475 | ||
36476 | * config/rs6000/rs6000.c (get_vector_offset): New helper function | |
36477 | to calculate the offset in memory from the start of a vector of a | |
36478 | particular element. Add code to keep the element number in | |
36479 | bounds if the element number is variable. | |
36480 | (rs6000_adjust_vec_address): Move calculation of offset of the | |
36481 | vector element to get_vector_offset. | |
36482 | (rs6000_split_vec_extract_var): Do not do the initial AND of | |
36483 | element here, move the code to get_vector_offset. | |
36484 | ||
36485 | 2020-02-03 Michael Meissner <meissner@linux.ibm.com> | |
36486 | ||
36487 | * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some | |
36488 | gcc_asserts. | |
36489 | ||
36490 | 2020-02-03 Segher Boessenkool <segher@kernel.crashing.org> | |
36491 | ||
36492 | * config/rs6000/constraints.md: Improve documentation. | |
36493 | ||
36494 | 2020-02-03 Richard Earnshaw <rearnsha@arm.com> | |
36495 | ||
36496 | PR target/93548 | |
36497 | * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md) | |
36498 | ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change. | |
36499 | ||
36500 | 2020-02-03 Andrew Stubbs <ams@codesourcery.com> | |
36501 | ||
36502 | * config.gcc: Remove "carrizo" support. | |
36503 | * config/gcn/gcn-opts.h (processor_type): Likewise. | |
36504 | * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Likewise. | |
36505 | * config/gcn/gcn.opt (gpu_type): Likewise. | |
36506 | * config/gcn/t-omp-device: Likewise. | |
36507 | ||
36508 | 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
36509 | ||
36510 | PR target/91816 | |
36511 | * config/arm/arm-protos.h: New function arm_gen_far_branch prototype. | |
36512 | * config/arm/arm.c (arm_gen_far_branch): New function | |
36513 | arm_gen_far_branch. | |
36514 | * config/arm/arm.md: Update b<cond> for Thumb2 range checks. | |
36515 | ||
36516 | 2020-02-03 Julian Brown <julian@codesourcery.com> | |
36517 | Tobias Burnus <tobias@codesourcery.com> | |
36518 | ||
36519 | * doc/invoke.texi: Update mention of OpenACC version to 2.6. | |
36520 | ||
36521 | 2020-02-03 Jakub Jelinek <jakub@redhat.com> | |
36522 | ||
36523 | PR target/93533 | |
36524 | * config/s390/s390.md (popcounthi2_z196): Fix up expander to emit | |
36525 | valid RTL to sum up the lowest and second lowest bytes of the popcnt | |
36526 | result. | |
36527 | ||
36528 | 2020-02-02 Vladimir Makarov <vmakarov@redhat.com> | |
36529 | ||
36530 | PR rtl-optimization/91333 | |
36531 | * ira-color.c (struct allocno_color_data): Add member | |
36532 | hard_reg_prefs. | |
36533 | (init_allocno_threads): Set the member up. | |
36534 | (bucket_allocno_compare_func): Add compare hard reg | |
36535 | prefs. | |
36536 | ||
36537 | 2020-01-31 Sandra Loosemore <sandra@codesourcery.com> | |
36538 | ||
36539 | nios2: Support for GOT-relative DW_EH_PE_datarel encoding. | |
36540 | ||
36541 | * configure.ac [nios2-*-*]: Check HAVE_AS_NIOS2_GOTOFF_RELOCATION. | |
36542 | * config.in: Regenerated. | |
36543 | * configure: Regenerated. | |
36544 | * config/nios2/nios2.h (ASM_PREFERRED_EH_DATA_FORMAT): Fix handling | |
36545 | for PIC when HAVE_AS_NIOS2_GOTOFF_RELOCATION. | |
36546 | (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New. | |
36547 | ||
36548 | 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com> | |
36549 | ||
36550 | * configure: Regenerate. | |
36551 | ||
36552 | 2020-01-31 Vladimir Makarov <vmakarov@redhat.com> | |
36553 | ||
36554 | PR rtl-optimization/91333 | |
36555 | * ira-color.c (bucket_allocno_compare_func): Move conflict hard | |
36556 | reg preferences comparison up. | |
36557 | ||
36558 | 2020-01-31 Richard Sandiford <richard.sandiford@arm.com> | |
36559 | ||
36560 | * config/aarch64/aarch64.h (TARGET_SVE_BF16): New macro. | |
36561 | * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtnt): Move to | |
36562 | aarch64-sve-builtins-base.h. | |
36563 | * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtnt): Move to | |
36564 | aarch64-sve-builtins-base.cc. | |
36565 | * config/aarch64/aarch64-sve-builtins-base.h (svbfdot, svbfdot_lane) | |
36566 | (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla) | |
36567 | (svcvtnt): Declare. | |
36568 | * config/aarch64/aarch64-sve-builtins-base.cc (svbfdot, svbfdot_lane) | |
36569 | (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla) | |
36570 | (svcvtnt): New functions. | |
36571 | * config/aarch64/aarch64-sve-builtins-base.def (svbfdot, svbfdot_lane) | |
36572 | (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla) | |
36573 | (svcvtnt): New functions. | |
36574 | (svcvt): Add a form that converts f32 to bf16. | |
36575 | * config/aarch64/aarch64-sve-builtins-shapes.h (ternary_bfloat) | |
36576 | (ternary_bfloat_lane, ternary_bfloat_lanex2, ternary_bfloat_opt_n): | |
36577 | Declare. | |
36578 | * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type): | |
36579 | Treat B as bfloat16_t. | |
36580 | (ternary_bfloat_lane_base): New class. | |
36581 | (ternary_bfloat_def): Likewise. | |
36582 | (ternary_bfloat): New shape. | |
36583 | (ternary_bfloat_lane_def): New class. | |
36584 | (ternary_bfloat_lane): New shape. | |
36585 | (ternary_bfloat_lanex2_def): New class. | |
36586 | (ternary_bfloat_lanex2): New shape. | |
36587 | (ternary_bfloat_opt_n_def): New class. | |
36588 | (ternary_bfloat_opt_n): New shape. | |
36589 | * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_bfloat): New macro. | |
36590 | * config/aarch64/aarch64-sve.md (@aarch64_sve_<sve_fp_op>vnx4sf) | |
36591 | (@aarch64_sve_<sve_fp_op>_lanevnx4sf): New patterns. | |
36592 | (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>) | |
36593 | (@cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise. | |
36594 | (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise. | |
36595 | (@aarch64_sve_cvtnt<VNx8BF_ONLY:mode>): Likewise. | |
36596 | * config/aarch64/aarch64-sve2.md (@aarch64_sve2_cvtnt<mode>): Key | |
36597 | the pattern off the narrow mode instead of the wider one. | |
36598 | * config/aarch64/iterators.md (VNx8BF_ONLY): New mode iterator. | |
36599 | (UNSPEC_BFMLALB, UNSPEC_BFMLALT, UNSPEC_BFMMLA): New unspecs. | |
36600 | (sve_fp_op): Handle them. | |
36601 | (SVE_BFLOAT_TERNARY_LONG): New int itertor. | |
36602 | (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise. | |
36603 | ||
36604 | 2020-01-31 Richard Sandiford <richard.sandiford@arm.com> | |
36605 | ||
36606 | * config/aarch64/arm_sve.h: Include arm_bf16.h. | |
36607 | * config/aarch64/aarch64-modes.def (BF): Move definition before | |
36608 | VECTOR_MODES. Remove separate VECTOR_MODES for V4BF and V8BF. | |
36609 | (SVE_MODES): Handle BF modes. | |
36610 | * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle | |
36611 | BF modes. | |
36612 | (aarch64_full_sve_mode): Likewise. | |
36613 | * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF | |
36614 | and VNx32BF. | |
36615 | (SVE_FULL, SVE_FULL_HSD, SVE_ALL): Add VNx8BF. | |
36616 | (Vetype, Vesize, Vctype, VEL, Vel, VEL_INT, V128, v128, vwcore) | |
36617 | (V_INT_EQUIV, v_int_equiv, V_FP_EQUIV, v_fp_equiv, vector_count) | |
36618 | (insn_length, VSINGLE, vsingle, VPRED, vpred, VDOUBLE): Handle the | |
36619 | new SVE BF modes. | |
36620 | * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New | |
36621 | type_class_index. | |
36622 | * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_arith): New macro. | |
36623 | (TYPES_all_data): Add bf16. | |
36624 | (TYPES_reinterpret1, TYPES_reinterpret): Likewise. | |
36625 | (register_tuple_type): Increase buffer size. | |
36626 | * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): New type. | |
36627 | (bf16): New type suffix. | |
36628 | * config/aarch64/aarch64-sve-builtins-base.def (svabd, svadd, svaddv) | |
36629 | (svcmpeq, svcmpge, svcmpgt, svcmple, svcmplt, svcmpne, svmad, svmax) | |
36630 | (svmaxv, svmin, svminv, svmla, svmls, svmsb, svmul, svsub, svsubr): | |
36631 | Change type from all_data to all_arith. | |
36632 | * config/aarch64/aarch64-sve-builtins-sve2.def (svaddp, svmaxp) | |
36633 | (svminp): Likewise. | |
36634 | ||
36635 | 2020-01-31 Dennis Zhang <dennis.zhang@arm.com> | |
36636 | Matthew Malcomson <matthew.malcomson@arm.com> | |
36637 | Richard Sandiford <richard.sandiford@arm.com> | |
36638 | ||
36639 | * doc/invoke.texi (f32mm): Document new AArch64 -march= extension. | |
36640 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
36641 | __ARM_FEATURE_SVE_MATMUL_INT8, __ARM_FEATURE_SVE_MATMUL_FP32 and | |
36642 | __ARM_FEATURE_SVE_MATMUL_FP64 as appropriate. Don't define | |
36643 | __ARM_FEATURE_MATMUL_FP64. | |
36644 | * config/aarch64/aarch64-option-extensions.def (fp, simd, fp16) | |
36645 | (sve): Add AARCH64_FL_F32MM to the list of extensions that should | |
36646 | be disabled at the same time. | |
36647 | (f32mm): New extension. | |
36648 | * config/aarch64/aarch64.h (AARCH64_FL_F32MM): New macro. | |
36649 | (AARCH64_FL_F64MM): Bump to the next bit up. | |
36650 | (AARCH64_ISA_F32MM, TARGET_SVE_I8MM, TARGET_F32MM, TARGET_SVE_F32MM) | |
36651 | (TARGET_SVE_F64MM): New macros. | |
36652 | * config/aarch64/iterators.md (SVE_MATMULF): New mode iterator. | |
36653 | (UNSPEC_FMMLA, UNSPEC_SMATMUL, UNSPEC_UMATMUL, UNSPEC_USMATMUL) | |
36654 | (UNSPEC_TRN1Q, UNSPEC_TRN2Q, UNSPEC_UZP1Q, UNSPEC_UZP2Q, UNSPEC_ZIP1Q) | |
36655 | (UNSPEC_ZIP2Q): New unspeccs. | |
36656 | (DOTPROD_US_ONLY, PERMUTEQ, MATMUL, FMMLA): New int iterators. | |
36657 | (optab, sur, perm_insn): Handle the new unspecs. | |
36658 | (sve_fp_op): Handle UNSPEC_FMMLA. Resort. | |
36659 | * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use | |
36660 | TARGET_SVE_F64MM instead of separate tests. | |
36661 | (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod<vsi2qi>): New pattern. | |
36662 | (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod_lane<vsi2qi>): Likewise. | |
36663 | (@aarch64_sve_add_<MATMUL:optab><vsi2qi>): Likewise. | |
36664 | (@aarch64_sve_<FMMLA:sve_fp_op><mode>): Likewise. | |
36665 | (@aarch64_sve_<PERMUTEQ:optab><mode>): Likewise. | |
36666 | * config/aarch64/aarch64-sve-builtins.cc (TYPES_s_float): New macro. | |
36667 | (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): Use it. | |
36668 | (TYPES_s_signed): New macro. | |
36669 | (TYPES_s_integer): Use it. | |
36670 | (TYPES_d_float): New macro. | |
36671 | (TYPES_d_data): Use it. | |
36672 | * config/aarch64/aarch64-sve-builtins-shapes.h (mmla): Declare. | |
36673 | (ternary_intq_uintq_lane, ternary_intq_uintq_opt_n, ternary_uintq_intq) | |
36674 | (ternary_uintq_intq_lane, ternary_uintq_intq_opt_n): Likewise. | |
36675 | * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): New class. | |
36676 | (svmmla): New shape. | |
36677 | (ternary_resize2_opt_n_base): Add TYPE_CLASS2 and TYPE_CLASS3 | |
36678 | template parameters. | |
36679 | (ternary_resize2_lane_base): Likewise. | |
36680 | (ternary_resize2_base): New class. | |
36681 | (ternary_qq_lane_base): Likewise. | |
36682 | (ternary_intq_uintq_lane_def): Likewise. | |
36683 | (ternary_intq_uintq_lane): New shape. | |
36684 | (ternary_intq_uintq_opt_n_def): New class | |
36685 | (ternary_intq_uintq_opt_n): New shape. | |
36686 | (ternary_qq_lane_def): Inherit from ternary_qq_lane_base. | |
36687 | (ternary_uintq_intq_def): New class. | |
36688 | (ternary_uintq_intq): New shape. | |
36689 | (ternary_uintq_intq_lane_def): New class. | |
36690 | (ternary_uintq_intq_lane): New shape. | |
36691 | (ternary_uintq_intq_opt_n_def): New class. | |
36692 | (ternary_uintq_intq_opt_n): New shape. | |
36693 | * config/aarch64/aarch64-sve-builtins-base.h (svmmla, svsudot) | |
36694 | (svsudot_lane, svtrn1q, svtrn2q, svusdot, svusdot_lane, svusmmla) | |
36695 | (svuzp1q, svuzp2q, svzip1q, svzip2q): Declare. | |
36696 | * config/aarch64/aarch64-sve-builtins-base.cc (svdot_lane_impl): | |
36697 | Generalize to... | |
36698 | (svdotprod_lane_impl): ...this new class. | |
36699 | (svmmla_impl, svusdot_impl): New classes. | |
36700 | (svdot_lane): Update to use svdotprod_lane_impl. | |
36701 | (svmmla, svsudot, svsudot_lane, svtrn1q, svtrn2q, svusdot) | |
36702 | (svusdot_lane, svusmmla, svuzp1q, svuzp2q, svzip1q, svzip2q): New | |
36703 | functions. | |
36704 | * config/aarch64/aarch64-sve-builtins-base.def (svmmla): New base | |
36705 | function, with no types defined. | |
36706 | (svmmla, svusmmla, svsudot, svsudot_lane, svusdot, svusdot_lane): New | |
36707 | AARCH64_FL_I8MM functions. | |
36708 | (svmmla): New AARCH64_FL_F32MM function. | |
36709 | (svld1ro): Depend only on AARCH64_FL_F64MM, not on AARCH64_FL_V8_6. | |
36710 | (svmmla, svtrn1q, svtrn2q, svuz1q, svuz2q, svzip1q, svzip2q): New | |
36711 | AARCH64_FL_F64MM function. | |
36712 | (REQUIRED_EXTENSIONS): | |
36713 | ||
36714 | 2020-01-31 Andrew Stubbs <ams@codesourcery.com> | |
36715 | ||
36716 | * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each | |
36717 | alternative only. | |
36718 | ||
36719 | 2020-01-31 Uroš Bizjak <ubizjak@gmail.com> | |
36720 | ||
36721 | * config/i386/i386.md (*movoi_internal_avx): Do not check for | |
36722 | TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. Remove MODE_V8SF handling. | |
36723 | (*movti_internal): Do not check for | |
36724 | TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. | |
36725 | (*movtf_internal): Move check for TARGET_SSE2 and size optimization | |
36726 | just after check for TARGET_AVX. | |
36727 | (*movdf_internal): Ditto. | |
36728 | * config/i386/mmx.md (*mov<mode>_internal): Do not check for | |
36729 | TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. | |
36730 | * config/i386/sse.md (mov<mode>_internal): Only check | |
36731 | TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL with V2DFmode. Move check | |
36732 | for TARGET_SSE2 and size optimization just after check for TARGET_AVX. | |
36733 | (<sse>_andnot<mode>3<mask_name>): Move check for | |
36734 | TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL after check for TARGET_AVX. | |
36735 | (<code><mode>3<mask_name>): Ditto. | |
36736 | (*andnot<mode>3): Ditto. | |
36737 | (*andnottf3): Ditto. | |
36738 | (*<code><mode>3): Ditto. | |
36739 | (*<code>tf3): Ditto. | |
36740 | (*andnot<VI:mode>3): Remove | |
36741 | TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling. | |
36742 | (<mask_codefor><code><VI48_AVX_AVX512F:mode>3<mask_name>): Ditto. | |
36743 | (*<code><VI12_AVX_AVX512F:mode>3): Ditto. | |
36744 | (sse4_1_blendv<ssemodesuffix>): Ditto. | |
36745 | * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): | |
36746 | Explain that tune applies to 128bit instructions only. | |
36747 | ||
36748 | 2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com> | |
36749 | ||
36750 | * config/gcn/mkoffload.c (process_asm): Add sgpr_count and vgpr_count | |
36751 | to definition of hsa_kernel_description. Parse assembly to find SGPR | |
36752 | and VGPR count of kernel and store in hsa_kernel_description. | |
36753 | ||
36754 | 2020-01-31 Tamar Christina <tamar.christina@arm.com> | |
36755 | ||
36756 | PR rtl-optimization/91838 | |
36757 | * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case | |
36758 | to truncate if allowed or reject combination. | |
36759 | ||
36760 | 2020-01-31 Andrew Stubbs <ams@codesourcery.com> | |
36761 | ||
36762 | * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step. | |
36763 | (find_inv_vars_cb): Likewise. | |
36764 | ||
36765 | 2020-01-31 David Malcolm <dmalcolm@redhat.com> | |
36766 | ||
36767 | * calls.c (special_function_p): Split out the check for DECL_NAME | |
36768 | being non-NULL and fndecl being extern at file scope into a | |
36769 | new maybe_special_function_p and call it. Drop check for fndecl | |
36770 | being non-NULL that was after a usage of DECL_NAME (fndecl). | |
36771 | * tree.h (maybe_special_function_p): New inline function. | |
36772 | ||
36773 | 2020-01-30 Andrew Stubbs <ams@codesourcery.com> | |
36774 | ||
36775 | * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ... | |
36776 | (mask_gather_load<mode>): ... here, and zero-initialize the | |
36777 | destination. | |
36778 | (maskload<mode>di): Zero-initialize the destination. | |
36779 | * config/gcn/gcn.c: | |
36780 | ||
36781 | 2020-01-30 David Malcolm <dmalcolm@redhat.com> | |
36782 | ||
36783 | PR analyzer/93356 | |
36784 | * doc/analyzer.texi (Limitations): Note that constraints on | |
36785 | floating-point values are currently ignored. | |
36786 | ||
36787 | 2020-01-30 Jakub Jelinek <jakub@redhat.com> | |
36788 | ||
36789 | PR lto/93384 | |
36790 | * symtab.c (symtab_node::noninterposable_alias): If localalias | |
36791 | already exists, but is not usable, append numbers after it until | |
36792 | a unique name is found. Formatting fix. | |
36793 | ||
36794 | PR middle-end/93505 | |
36795 | * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range | |
36796 | rotate counts. | |
36797 | ||
36798 | 2020-01-30 Andrew Stubbs <ams@codesourcery.com> | |
36799 | ||
36800 | * config/gcn/gcn.c (print_operand): Handle LTGT. | |
36801 | * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt. | |
36802 | ||
36803 | 2020-01-30 Richard Biener <rguenther@suse.de> | |
36804 | ||
36805 | * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST | |
36806 | and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE. | |
36807 | ||
36808 | 2020-01-30 John David Anglin <danglin@gcc.gnu.org> | |
36809 | ||
36810 | * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers | |
36811 | without a DECL in .data.rel.ro.local. | |
36812 | ||
36813 | 2020-01-30 Jakub Jelinek <jakub@redhat.com> | |
36814 | ||
36815 | PR target/93494 | |
36816 | * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4 | |
36817 | returned. | |
36818 | ||
36819 | PR target/91824 | |
36820 | * config/i386/sse.md | |
36821 | (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext): Renamed to ... | |
36822 | (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): ... this. Use | |
36823 | any_extend code iterator instead of always zero_extend. | |
36824 | (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt): Renamed to ... | |
36825 | (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): ... this. | |
36826 | Use any_extend code iterator instead of always zero_extend. | |
36827 | (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift): Renamed to ... | |
36828 | (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): ... this. | |
36829 | Use any_extend code iterator instead of always zero_extend. | |
36830 | (*sse2_pmovmskb_ext): New define_insn. | |
36831 | (*sse2_pmovmskb_ext_lt): New define_insn_and_split. | |
36832 | ||
36833 | PR target/91824 | |
36834 | * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split. | |
36835 | (*popcountsi2_zext_falsedep): New define_insn. | |
36836 | ||
36837 | 2020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
36838 | ||
36839 | * config.in: Regenerated. | |
36840 | * configure: Regenerated. | |
36841 | ||
36842 | 2020-01-29 Tobias Burnus <tobias@codesourcery.com> | |
36843 | ||
36844 | PR bootstrap/93409 | |
36845 | * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as | |
36846 | LLVM's assembler changed the default in version 9. | |
36847 | ||
36848 | 2020-01-24 Jeff Law <law@redhat.com> | |
36849 | ||
36850 | PR tree-optimization/89689 | |
36851 | * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure. | |
36852 | ||
36853 | 2020-01-29 Richard Sandiford <richard.sandiford@arm.com> | |
36854 | ||
36855 | Revert: | |
36856 | ||
36857 | 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
36858 | ||
36859 | PR rtl-optimization/87763 | |
36860 | * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract | |
36861 | simplification to handle subregs as well as bare regs. | |
36862 | * config/i386/i386.md (*testqi_ext_3): Match QI extracts too. | |
36863 | ||
36864 | 2020-01-29 Joel Hutton <Joel.Hutton@arm.com> | |
36865 | ||
36866 | PR target/93221 | |
36867 | * ira.c (ira): Revert use of simplified LRA algorithm. | |
36868 | ||
36869 | 2020-01-29 Martin Jambor <mjambor@suse.cz> | |
36870 | ||
36871 | PR tree-optimization/92706 | |
36872 | * tree-sra.c (struct access): Fields first_link, last_link, | |
36873 | next_queued and grp_queued renamed to first_rhs_link, last_rhs_link, | |
36874 | next_rhs_queued and grp_rhs_queued respectively, new fields | |
36875 | first_lhs_link, last_lhs_link, next_lhs_queued and grp_lhs_queued. | |
36876 | (struct assign_link): Field next renamed to next_rhs, new field | |
36877 | next_lhs. Updated comment. | |
36878 | (work_queue_head): Renamed to rhs_work_queue_head. | |
36879 | (lhs_work_queue_head): New variable. | |
36880 | (add_link_to_lhs): New function. | |
36881 | (relink_to_new_repr): Also relink LHS lists. | |
36882 | (add_access_to_work_queue): Renamed to add_access_to_rhs_work_queue. | |
36883 | (add_access_to_lhs_work_queue): New function. | |
36884 | (pop_access_from_work_queue): Renamed to | |
36885 | pop_access_from_rhs_work_queue. | |
36886 | (pop_access_from_lhs_work_queue): New function. | |
36887 | (build_accesses_from_assign): Also add links to LHS lists and to LHS | |
36888 | work_queue. | |
36889 | (child_would_conflict_in_lacc): Renamed to | |
36890 | child_would_conflict_in_acc. Adjusted parameter names. | |
36891 | (create_artificial_child_access): New parameter set_grp_read, use it. | |
36892 | (subtree_mark_written_and_enqueue): Renamed to | |
36893 | subtree_mark_written_and_rhs_enqueue. | |
36894 | (propagate_subaccesses_across_link): Renamed to | |
36895 | propagate_subaccesses_from_rhs. | |
36896 | (propagate_subaccesses_from_lhs): New function. | |
36897 | (propagate_all_subaccesses): Also propagate subaccesses from LHSs to | |
36898 | RHSs. | |
36899 | ||
36900 | 2020-01-29 Martin Jambor <mjambor@suse.cz> | |
36901 | ||
36902 | PR tree-optimization/92706 | |
36903 | * tree-sra.c (struct access): Adjust comment of | |
36904 | grp_total_scalarization. | |
36905 | (find_access_in_subtree): Look for single children spanning an entire | |
36906 | access. | |
36907 | (scalarizable_type_p): Allow register accesses, adjust callers. | |
36908 | (completely_scalarize): Remove function. | |
36909 | (scalarize_elem): Likewise. | |
36910 | (create_total_scalarization_access): Likewise. | |
36911 | (sort_and_splice_var_accesses): Do not track total scalarization | |
36912 | flags. | |
36913 | (analyze_access_subtree): New parameter totally, adjust to new meaning | |
36914 | of grp_total_scalarization. | |
36915 | (analyze_access_trees): Pass new parameter to analyze_access_subtree. | |
36916 | (can_totally_scalarize_forest_p): New function. | |
36917 | (create_total_scalarization_access): Likewise. | |
36918 | (create_total_access_and_reshape): Likewise. | |
36919 | (total_should_skip_creating_access): Likewise. | |
36920 | (totally_scalarize_subtree): Likewise. | |
36921 | (analyze_all_variable_accesses): Perform total scalarization after | |
36922 | subaccess propagation using the new functions above. | |
36923 | (initialize_constant_pool_replacements): Output initializers by | |
36924 | traversing the access tree. | |
36925 | ||
36926 | 2020-01-29 Martin Jambor <mjambor@suse.cz> | |
36927 | ||
36928 | * tree-sra.c (verify_sra_access_forest): New function. | |
36929 | (verify_all_sra_access_forests): Likewise. | |
36930 | (create_artificial_child_access): Set parent. | |
36931 | (analyze_all_variable_accesses): Call the verifier. | |
36932 | ||
36933 | 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
36934 | ||
36935 | * cgraph.c (cgraph_edge::resolve_speculation): Only lookup direct edge | |
36936 | if called on indirect edge. | |
36937 | (cgraph_edge::redirect_call_stmt_to_callee): Lookup indirect edge of | |
36938 | speculative call if needed. | |
36939 | ||
36940 | 2020-01-29 Richard Biener <rguenther@suse.de> | |
36941 | ||
36942 | PR tree-optimization/93428 | |
36943 | * tree-vect-slp.c (vect_build_slp_tree_2): Compute the load | |
36944 | permutation when the load node is created. | |
36945 | (vect_analyze_slp_instance): Re-use it here. | |
36946 | ||
36947 | 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
36948 | ||
36949 | * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning. | |
36950 | ||
36951 | 2020-01-28 Vladimir Makarov <vmakarov@redhat.com> | |
36952 | ||
36953 | PR rtl-optimization/93272 | |
36954 | * ira-lives.c (process_out_of_region_eh_regs): New function. | |
36955 | (process_bb_node_lives): Call it. | |
36956 | ||
36957 | 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
36958 | ||
36959 | * coverage.c (read_counts_file): Make error message lowercase. | |
36960 | ||
36961 | 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
36962 | ||
36963 | * profile-count.c (profile_quality_display_names): Fix ordering. | |
36964 | ||
36965 | 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
36966 | ||
36967 | PR lto/93318 | |
36968 | * cgraph.c (cgraph_add_edge_to_call_site_hash): Update call site | |
36969 | hash only when edge is first within the sequence. | |
36970 | (cgraph_edge::set_call_stmt): Update handling of speculative calls. | |
36971 | (symbol_table::create_edge): Do not set target_prob. | |
36972 | (cgraph_edge::remove_caller): Watch for speculative calls when updating | |
36973 | the call site hash. | |
36974 | (cgraph_edge::make_speculative): Drop target_prob parameter. | |
36975 | (cgraph_edge::speculative_call_info): Remove. | |
36976 | (cgraph_edge::first_speculative_call_target): New member function. | |
36977 | (update_call_stmt_hash_for_removing_direct_edge): New function. | |
36978 | (cgraph_edge::resolve_speculation): Rewrite to new API. | |
36979 | (cgraph_edge::speculative_call_for_target): New member function. | |
36980 | (cgraph_edge::make_direct): Rewrite to new API; fix handling of | |
36981 | multiple speculation targets. | |
36982 | (cgraph_edge::redirect_call_stmt_to_callee): Likewise; fix updating | |
36983 | of profile. | |
36984 | (verify_speculative_call): Verify that targets form an interval. | |
36985 | * cgraph.h (cgraph_edge::speculative_call_info): Remove. | |
36986 | (cgraph_edge::first_speculative_call_target): New member function. | |
36987 | (cgraph_edge::next_speculative_call_target): New member function. | |
36988 | (cgraph_edge::speculative_call_target_ref): New member function. | |
36989 | (cgraph_edge;:speculative_call_indirect_edge): New member funtion. | |
36990 | (cgraph_edge): Remove target_prob. | |
36991 | * cgraphclones.c (cgraph_node::set_call_stmt_including_clones): | |
36992 | Fix handling of speculative calls. | |
36993 | * ipa-devirt.c (ipa_devirt): Fix handling of speculative cals. | |
36994 | * ipa-fnsummary.c (analyze_function_body): Likewise. | |
36995 | * ipa-inline.c (speculation_useful_p): Use new speculative call API. | |
36996 | * ipa-profile.c (dump_histogram): Fix formating. | |
36997 | (ipa_profile_generate_summary): Watch for overflows. | |
36998 | (ipa_profile): Do not require probablity to be 1/2; update to new API. | |
36999 | * ipa-prop.c (ipa_make_edge_direct_to_target): Update to new API. | |
37000 | (update_indirect_edges_after_inlining): Update to new API. | |
37001 | * ipa-utils.c (ipa_merge_profiles): Rewrite merging of speculative call | |
37002 | profiles. | |
37003 | * profile-count.h: (profile_probability::adjusted): New. | |
37004 | * tree-inline.c (copy_bb): Update to new speculative call API; fix | |
37005 | updating of profile. | |
37006 | * value-prof.c (gimple_ic_transform): Rename to ... | |
37007 | (dump_ic_profile): ... this one; update dumping. | |
37008 | (stream_in_histogram_value): Fix formating. | |
37009 | (gimple_value_profile_transformations): Update. | |
37010 | ||
37011 | 2020-01-28 H.J. Lu <hongjiu.lu@intel.com> | |
37012 | ||
37013 | PR target/91461 | |
37014 | * config/i386/i386.md (*movoi_internal_avx): Remove | |
37015 | TARGET_SSE_TYPELESS_STORES check. | |
37016 | (*movti_internal): Prefer TARGET_AVX over | |
37017 | TARGET_SSE_TYPELESS_STORES. | |
37018 | (*movtf_internal): Likewise. | |
37019 | * config/i386/sse.md (mov<mode>_internal): Prefer TARGET_AVX over | |
37020 | TARGET_SSE_TYPELESS_STORES. Remove "<MODE_SIZE> == 16" check | |
37021 | from TARGET_SSE_TYPELESS_STORES. | |
37022 | ||
37023 | 2020-01-28 David Malcolm <dmalcolm@redhat.com> | |
37024 | ||
37025 | * diagnostic-core.h (warning_at): Rename overload to... | |
37026 | (warning_meta): ...this. | |
37027 | (emit_diagnostic_valist): Delete decl of overload taking | |
37028 | diagnostic_metadata. | |
37029 | * diagnostic.c (emit_diagnostic_valist): Likewise for defn. | |
37030 | (warning_at): Rename overload taking diagnostic_metadata to... | |
37031 | (warning_meta): ...this. | |
37032 | ||
37033 | 2020-01-28 Richard Biener <rguenther@suse.de> | |
37034 | ||
37035 | PR tree-optimization/93439 | |
37036 | * tree-parloops.c (create_loop_fn): Move clique bookkeeping... | |
37037 | * tree-cfg.c (move_sese_region_to_fn): ... here. | |
37038 | (verify_types_in_gimple_reference): Verify used cliques are | |
37039 | tracked. | |
37040 | ||
37041 | 2020-01-28 H.J. Lu <hongjiu.lu@intel.com> | |
37042 | ||
37043 | PR target/91399 | |
37044 | * config/i386/i386-options.c (set_ix86_tune_features): Add an | |
37045 | argument of a pointer to struct gcc_options and pass it to | |
37046 | parse_mtune_ctrl_str. | |
37047 | (ix86_function_specific_restore): Pass opts to | |
37048 | set_ix86_tune_features. | |
37049 | (ix86_option_override_internal): Likewise. | |
37050 | (parse_mtune_ctrl_str): Add an argument of a pointer to struct | |
37051 | gcc_options and use it for x_ix86_tune_ctrl_string. | |
37052 | ||
37053 | 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
37054 | ||
37055 | PR rtl-optimization/87763 | |
37056 | * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract | |
37057 | simplification to handle subregs as well as bare regs. | |
37058 | * config/i386/i386.md (*testqi_ext_3): Match QI extracts too. | |
37059 | ||
37060 | 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
37061 | ||
37062 | * tree-vect-loop.c (vectorizable_reduction): Fail gracefully | |
37063 | for reduction chains that (now) include a call. | |
37064 | ||
37065 | 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
37066 | ||
37067 | PR tree-optimization/92822 | |
37068 | * tree-ssa-forwprop.c (simplify_vector_constructor): When filling | |
37069 | out the don't-care elements of a vector whose significant elements | |
37070 | are duplicates, make the don't-care elements duplicates too. | |
37071 | ||
37072 | 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
37073 | ||
37074 | PR tree-optimization/93434 | |
37075 | * tree-predcom.c (split_data_refs_to_components): Record which | |
37076 | components have had aliasing loads removed. Prevent store-store | |
37077 | commoning for all such components. | |
37078 | ||
37079 | 2020-01-28 Jakub Jelinek <jakub@redhat.com> | |
37080 | ||
37081 | PR target/93418 | |
37082 | * config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not | |
37083 | -1 or is_vshift is true, use new_vector with number of elts npatterns | |
37084 | rather than new_unary_operation. | |
37085 | ||
37086 | PR tree-optimization/93454 | |
37087 | * gimple-fold.c (fold_array_ctor_reference): Perform | |
37088 | elt_size.to_uhwi () just once, instead of calling it in every | |
37089 | iteration. Punt if that value is above size of the temporary | |
37090 | buffer. Decrease third native_encode_expr argument when | |
37091 | bufoff + elt_sz is above size of buf. | |
37092 | ||
37093 | 2020-01-27 Joseph Myers <joseph@codesourcery.com> | |
37094 | ||
37095 | * config/mips/mips.c (mips_declare_object_name) | |
37096 | [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object. | |
37097 | ||
37098 | 2020-01-27 Martin Liska <mliska@suse.cz> | |
37099 | ||
37100 | PR gcov-profile/93403 | |
37101 | * tree-profile.c (gimple_init_gcov_profiler): Generate | |
37102 | both __gcov_indirect_call_profiler_v4 and | |
37103 | __gcov_indirect_call_profiler_v4_atomic. | |
37104 | ||
37105 | 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
37106 | ||
37107 | PR target/92822 | |
37108 | * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New | |
37109 | expander. | |
37110 | (@aarch64_split_simd_mov<mode>): Use it. | |
37111 | (aarch64_simd_mov_from_<mode>low): Add a GPR alternative. | |
37112 | Leave the vec_extract patterns to handle 2-element vectors. | |
37113 | (aarch64_simd_mov_from_<mode>high): Likewise. | |
37114 | (vec_extract<VQMOV_NO2E:mode><Vhalf>): New expander. | |
37115 | (vec_extractv2dfv1df): Likewise. | |
37116 | ||
37117 | 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
37118 | ||
37119 | * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match | |
37120 | jump conditions for *compare_condjump<GPI:mode>. | |
37121 | ||
37122 | 2020-01-27 David Malcolm <dmalcolm@redhat.com> | |
37123 | ||
37124 | PR analyzer/93276 | |
37125 | * digraph.cc (test_edge::test_edge): Specify template for base | |
37126 | class initializer. | |
37127 | ||
37128 | 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com> | |
37129 | ||
37130 | * config/arc/arc.c (arc_rtx_costs): Update mul64 cost. | |
37131 | ||
37132 | 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com> | |
37133 | ||
37134 | * config/arc/arc-protos.h (gen_mlo): Remove. | |
37135 | (gen_mhi): Likewise. | |
37136 | * config/arc/arc.c (AUX_MULHI): Define. | |
37137 | (arc_must_save_reister): Special handling for r58/59. | |
37138 | (arc_compute_frame_size): Consider mlo/mhi registers. | |
37139 | (arc_save_callee_saves): Emit fp/sp move only when emit_move | |
37140 | paramter is true. | |
37141 | (arc_conditional_register_usage): Remove TARGET_BIG_ENDIAN from | |
37142 | mlo/mhi name selection. | |
37143 | (arc_restore_callee_saves): Don't early restore blink when ISR. | |
37144 | (arc_expand_prologue): Add mlo/mhi saving. | |
37145 | (arc_expand_epilogue): Add mlo/mhi restoring. | |
37146 | (gen_mlo): Remove. | |
37147 | (gen_mhi): Remove. | |
37148 | * config/arc/arc.h (DBX_REGISTER_NUMBER): Correct register | |
37149 | numbering when MUL64 option is used. | |
37150 | (DWARF2_FRAME_REG_OUT): Define. | |
37151 | * config/arc/arc.md (arc600_stall): New pattern. | |
37152 | (VUNSPEC_ARC_ARC600_STALL): Define. | |
37153 | (mulsi64): Use correct mlo/mhi registers. | |
37154 | (mulsi_600): Clean it up. | |
37155 | * config/arc/predicates.md (mlo_operand): Remove any dependency on | |
37156 | TARGET_BIG_ENDIAN. | |
37157 | (mhi_operand): Likewise. | |
37158 | ||
37159 | 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com> | |
37160 | Petro Karashchenko <petro.karashchenko@ring.com> | |
37161 | ||
37162 | * config/arc/arc.c (arc_is_uncached_mem_p): Check struct | |
37163 | attributes if needed. | |
37164 | (prepare_move_operands): Generate special unspec instruction for | |
37165 | direct access. | |
37166 | (arc_isuncached_mem_p): Propagate uncached attribute to each | |
37167 | structure member. | |
37168 | * config/arc/arc.md (VUNSPEC_ARC_LDDI): Define. | |
37169 | (VUNSPEC_ARC_STDI): Likewise. | |
37170 | (ALLI): New mode iterator. | |
37171 | (mALLI): New mode attribute. | |
37172 | (lddi): New instruction pattern. | |
37173 | (stdi): Likewise. | |
37174 | (stdidi_split): Split instruction for architectures which are not | |
37175 | supporting ll64 option. | |
37176 | (lddidi_split): Likewise. | |
37177 | ||
37178 | 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
37179 | ||
37180 | PR rtl-optimization/92989 | |
37181 | * lra-lives.c (process_bb_lives): Update the live-in set before | |
37182 | processing additional clobbers. | |
37183 | ||
37184 | 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
37185 | ||
37186 | PR rtl-optimization/93170 | |
37187 | * cselib.c (cselib_invalidate_regno_val): New function, split out | |
37188 | from... | |
37189 | (cselib_invalidate_regno): ...here. | |
37190 | (cselib_invalidated_by_call_p): New function. | |
37191 | (cselib_process_insn): Iterate over all the hard-register entries in | |
37192 | REG_VALUES and invalidate any that cross call-clobbered registers. | |
37193 | ||
37194 | 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
37195 | ||
37196 | * dojump.c (split_comparison): Use HONOR_NANS rather than | |
37197 | HONOR_SNANS when splitting LTGT. | |
37198 | ||
37199 | 2020-01-27 Martin Liska <mliska@suse.cz> | |
37200 | ||
37201 | PR driver/91220 | |
37202 | * opts.c (print_filtered_help): Exclude language-specific | |
37203 | options from --help=common unless enabled in all FEs. | |
37204 | ||
37205 | 2020-01-27 Martin Liska <mliska@suse.cz> | |
37206 | ||
37207 | * opts.c (print_help): Exclude params from | |
37208 | all except --help=param. | |
37209 | ||
37210 | 2020-01-27 Martin Liska <mliska@suse.cz> | |
37211 | ||
37212 | PR target/93274 | |
37213 | * config/i386/i386-features.c (make_resolver_func): | |
37214 | Align the code with ppc64 target implementation. | |
37215 | Do not generate a unique name for resolver function. | |
37216 | ||
37217 | 2020-01-27 Richard Biener <rguenther@suse.de> | |
37218 | ||
37219 | PR tree-optimization/93397 | |
37220 | * tree-vect-slp.c (vect_analyze_slp_instance): Delay | |
37221 | converted reduction chain SLP graph adjustment. | |
37222 | ||
37223 | 2020-01-26 Marek Polacek <polacek@redhat.com> | |
37224 | ||
37225 | PR sanitizer/93436 | |
37226 | * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on | |
37227 | null DECL_NAME. | |
37228 | ||
37229 | 2020-01-26 Jason Merrill <jason@redhat.com> | |
37230 | ||
37231 | PR c++/92601 | |
37232 | * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING | |
37233 | of complete types. | |
37234 | ||
37235 | 2020-01-26 Darius Galis <darius.galis@cyberthorstudios.com> | |
37236 | ||
37237 | * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint | |
37238 | (rx_setmem): Likewise. | |
37239 | ||
37240 | 2020-01-26 Jakub Jelinek <jakub@redhat.com> | |
37241 | ||
37242 | PR target/93412 | |
37243 | * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword): | |
37244 | Use nonimmediate_operand instead of x86_64_hilo_general_operand and | |
37245 | drop <di> from constraint of last operand. | |
37246 | ||
37247 | PR target/93430 | |
37248 | * config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for | |
37249 | TARGET_AVX2 and V4DFmode not in the split condition, but in the | |
37250 | pattern condition, though allow { 0, 0, 0, 0 } broadcast always. | |
37251 | ||
37252 | 2020-01-25 Feng Xue <fxue@os.amperecomputing.com> | |
37253 | ||
37254 | PR ipa/93166 | |
37255 | * ipa-cp.c (get_info_about_necessary_edges): Remove value | |
37256 | check assertion. | |
37257 | ||
37258 | 2020-01-24 Jeff Law <law@redhat.com> | |
37259 | ||
37260 | PR tree-optimization/92788 | |
37261 | * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX | |
37262 | not EDGE_ABNORMAL. | |
37263 | ||
37264 | 2020-01-24 Jakub Jelinek <jakub@redhat.com> | |
37265 | ||
37266 | PR target/93395 | |
37267 | * config/i386/sse.md (*avx_vperm_broadcast_v4sf, | |
37268 | *avx_vperm_broadcast_<mode>, | |
37269 | <sse2_avx_avx512f>_vpermil<mode><mask_name>, | |
37270 | *<sse2_avx_avx512f>_vpermilp<mode><mask_name>): | |
37271 | Move before avx2_perm<mode>/avx512f_perm<mode>. | |
37272 | ||
37273 | PR target/93376 | |
37274 | * simplify-rtx.c (simplify_const_unary_operation, | |
37275 | simplify_const_binary_operation): Punt for mode precision above | |
37276 | MAX_BITSIZE_MODE_ANY_INT. | |
37277 | ||
37278 | 2020-01-24 Andrew Pinski <apinski@marvell.com> | |
37279 | ||
37280 | * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change | |
37281 | alu.shift_reg to 0. | |
37282 | ||
37283 | 2020-01-24 Jeff Law <law@redhat.com> | |
37284 | ||
37285 | PR target/13721 | |
37286 | * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg | |
37287 | for REGs. Call output_operand_lossage to get more reasonable | |
37288 | diagnostics. | |
37289 | ||
37290 | 2020-01-24 Andrew Stubbs <ams@codesourcery.com> | |
37291 | ||
37292 | * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use | |
37293 | gcn_fp_compare_operator. | |
37294 | (vec_cmpu<mode>di): Use gcn_compare_operator. | |
37295 | (vec_cmp<u>v64qidi): Use gcn_compare_operator. | |
37296 | (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator. | |
37297 | (vec_cmpu<mode>di_exec): Use gcn_compare_operator. | |
37298 | (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator. | |
37299 | (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator. | |
37300 | (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator. | |
37301 | (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use | |
37302 | gcn_fp_compare_operator. | |
37303 | (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use | |
37304 | gcn_fp_compare_operator. | |
37305 | (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use | |
37306 | gcn_fp_compare_operator. | |
37307 | (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use | |
37308 | gcn_fp_compare_operator. | |
37309 | ||
37310 | 2020-01-24 Maciej W. Rozycki <macro@wdc.com> | |
37311 | ||
37312 | * doc/install.texi (Cross-Compiler-Specific Options): Document | |
37313 | `--with-toolexeclibdir' option. | |
37314 | ||
37315 | 2020-01-24 Hans-Peter Nilsson <hp@axis.com> | |
37316 | ||
37317 | * target.def (flags_regnum): Also mention effect on delay slot filling. | |
37318 | * doc/tm.texi: Regenerate. | |
37319 | ||
37320 | 2020-01-23 Jeff Law <law@redhat.com> | |
37321 | ||
37322 | PR translation/90162 | |
37323 | * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text. | |
37324 | ||
37325 | 2020-01-23 Mikael Tillenius <mti-1@tillenius.com> | |
37326 | ||
37327 | PR target/92269 | |
37328 | * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of | |
37329 | profiling label | |
37330 | ||
37331 | 2020-01-23 Jakub Jelinek <jakub@redhat.com> | |
37332 | ||
37333 | PR rtl-optimization/93402 | |
37334 | * postreload.c (reload_combine_recognize_pattern): Don't try to adjust | |
37335 | USE insns. | |
37336 | ||
37337 | 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
37338 | ||
37339 | * config.in: Regenerated. | |
37340 | * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1 | |
37341 | for TARGET_LIBC_GNUSTACK. | |
37342 | * configure: Regenerated. | |
37343 | * configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is | |
37344 | found to be 2.31 or greater. | |
37345 | ||
37346 | 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
37347 | ||
37348 | * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to | |
37349 | TARGET_SOFT_FLOAT. | |
37350 | * config/mips/mips.c (TARGET_ASM_FILE_END): Define to ... | |
37351 | (mips_asm_file_end): New function. Delegate to | |
37352 | file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true. | |
37353 | * config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0. | |
37354 | ||
37355 | 2020-01-23 Jakub Jelinek <jakub@redhat.com> | |
37356 | ||
37357 | PR target/93376 | |
37358 | * config/i386/i386-modes.def (POImode): New mode. | |
37359 | (MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160. | |
37360 | * config/i386/i386.md (DPWI): New mode attribute. | |
37361 | (addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>. | |
37362 | (QWI): Rename to... | |
37363 | (QPWI): ... this. Use POI instead of OI for TImode. | |
37364 | (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1, | |
37365 | *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI> | |
37366 | instead of <QWI>. | |
37367 | ||
37368 | 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> | |
37369 | ||
37370 | PR target/93341 | |
37371 | * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New | |
37372 | unspec. | |
37373 | (speculation_tracker_rev): New pattern. | |
37374 | * config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation): | |
37375 | Use speculation_tracker_rev to track the inverse condition. | |
37376 | ||
37377 | 2020-01-23 Richard Biener <rguenther@suse.de> | |
37378 | ||
37379 | PR tree-optimization/93381 | |
37380 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take | |
37381 | alias-set of the def as argument and record the first one. | |
37382 | (vn_walk_cb_data::first_set): New member. | |
37383 | (vn_reference_lookup_3): Pass the alias-set of the current def | |
37384 | to push_partial_def. Fix alias-set used in the aggregate copy | |
37385 | case. | |
37386 | (vn_reference_lookup): Consistently set *last_vuse_ptr. | |
37387 | * real.c (clear_significand_below): Fix out-of-bound access. | |
37388 | ||
37389 | 2020-01-23 Jakub Jelinek <jakub@redhat.com> | |
37390 | ||
37391 | PR target/93346 | |
37392 | * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3): | |
37393 | New define_insn patterns. | |
37394 | ||
37395 | 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> | |
37396 | ||
37397 | * doc/sourcebuild.texi (check-function-bodies): Add an | |
37398 | optional target/xfail selector. | |
37399 | ||
37400 | 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> | |
37401 | ||
37402 | PR rtl-optimization/93124 | |
37403 | * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to | |
37404 | bare USE and CLOBBER insns. | |
37405 | ||
37406 | 2020-01-22 Andrew Pinski <apinski@marvell.com> | |
37407 | ||
37408 | * config/arc/arc.c (output_short_suffix): Check insn for nullness. | |
37409 | ||
37410 | 2020-01-22 David Malcolm <dmalcolm@redhat.com> | |
37411 | ||
37412 | PR analyzer/93307 | |
37413 | * gdbinit.in (break-on-saved-diagnostic): Update for move of | |
37414 | diagnostic_manager into "ana" namespace. | |
37415 | * selftest-run-tests.c (selftest::run_tests): Update for move of | |
37416 | selftest::run_analyzer_selftests to | |
37417 | ana::selftest::run_analyzer_selftests. | |
37418 | ||
37419 | 2020-01-22 Richard Sandiford <richard.sandiford@arm.com> | |
37420 | ||
37421 | * cfgexpand.c (union_stack_vars): Update the size. | |
37422 | ||
37423 | 2020-01-22 Richard Biener <rguenther@suse.de> | |
37424 | ||
37425 | PR tree-optimization/93381 | |
37426 | * tree-ssa-structalias.c (find_func_aliases): Assume offsetting | |
37427 | throughout, handle all conversions the same. | |
37428 | ||
37429 | 2020-01-22 Jakub Jelinek <jakub@redhat.com> | |
37430 | ||
37431 | PR target/93335 | |
37432 | * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use | |
37433 | gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate | |
37434 | predicate, not whenever it is CONST_INT. Otherwise, force_reg it. | |
37435 | Call force_reg on high_in2 unconditionally. | |
37436 | ||
37437 | 2020-01-22 Martin Liska <mliska@suse.cz> | |
37438 | ||
37439 | PR tree-optimization/92924 | |
37440 | * profile.c (compute_value_histograms): Divide | |
37441 | all counter values. | |
37442 | ||
37443 | 2020-01-22 Jakub Jelinek <jakub@redhat.com> | |
37444 | ||
37445 | PR target/91298 | |
37446 | * output.h (assemble_name_resolve): Declare. | |
37447 | * varasm.c (assemble_name_resolve): New function. | |
37448 | (assemble_name): Use it. | |
37449 | * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define. | |
37450 | ||
37451 | 2020-01-22 Joseph Myers <joseph@codesourcery.com> | |
37452 | ||
37453 | * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to | |
37454 | update_web_docs_git instead of update_web_docs_svn. | |
37455 | ||
37456 | 2020-01-21 Andrew Pinski <apinski@marvell.com> | |
37457 | ||
37458 | PR target/9311 | |
37459 | * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0 | |
37460 | as PTR mode. Have operand 1 as being modeless, it can be P mode. | |
37461 | (*tlsgd_small_<mode>): Likewise. | |
37462 | * config/aarch64/aarch64.c (aarch64_load_symref_appropriately) | |
37463 | <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode | |
37464 | register. Convert that register back to dest using convert_mode. | |
37465 | ||
37466 | 2020-01-21 Jim Wilson <jimw@sifive.com> | |
37467 | ||
37468 | * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL | |
37469 | instead of XINT. | |
37470 | ||
37471 | 2020-01-21 H.J. Lu <hongjiu.lu@intel.com> | |
37472 | Uros Bizjak <ubizjak@gmail.com> | |
37473 | ||
37474 | PR target/93319 | |
37475 | * config/i386/i386.c (ix86_tls_module_base): Replace Pmode | |
37476 | with ptr_mode. | |
37477 | (legitimize_tls_address): Do GNU2 TLS address computation in | |
37478 | ptr_mode and zero-extend result to Pmode. | |
37479 | * config/i386/i386.md (@tls_dynamic_gnu2_64_<mode>): Replace | |
37480 | :P with :PTR and Pmode with ptr_mode. | |
37481 | (*tls_dynamic_gnu2_lea_64_<mode>): Likewise. | |
37482 | (*tls_dynamic_gnu2_call_64_<mode>): Likewise. | |
37483 | (*tls_dynamic_gnu2_combine_64_<mode>): Likewise. | |
37484 | ||
37485 | 2020-01-21 Jakub Jelinek <jakub@redhat.com> | |
37486 | ||
37487 | PR target/93333 | |
37488 | * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify | |
37489 | the last two operands are CONST_INT_P before using them as such. | |
37490 | ||
37491 | 2020-01-21 Richard Sandiford <richard.sandiford@arm.com> | |
37492 | ||
37493 | * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name | |
37494 | to get the integer element types. | |
37495 | ||
37496 | 2020-01-21 Richard Sandiford <richard.sandiford@arm.com> | |
37497 | ||
37498 | * config/aarch64/aarch64-sve-builtins.h | |
37499 | (function_expander::convert_to_pmode): Declare. | |
37500 | * config/aarch64/aarch64-sve-builtins.cc | |
37501 | (function_expander::convert_to_pmode): New function. | |
37502 | (function_expander::get_contiguous_base): Use it. | |
37503 | (function_expander::prepare_gather_address_operands): Likewise. | |
37504 | * config/aarch64/aarch64-sve-builtins-sve2.cc | |
37505 | (svwhilerw_svwhilewr_impl::expand): Likewise. | |
37506 | ||
37507 | 2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
37508 | ||
37509 | PR target/92424 | |
37510 | * config/aarch64/aarch64.c (aarch64_declare_function_name): Set | |
37511 | cfun->machine->label_is_assembled. | |
37512 | (aarch64_print_patchable_function_entry): New. | |
37513 | (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define. | |
37514 | * config/aarch64/aarch64.h (struct machine_function): New field, | |
37515 | label_is_assembled. | |
37516 | ||
37517 | 2020-01-21 David Malcolm <dmalcolm@redhat.com> | |
37518 | ||
37519 | PR ipa/93315 | |
37520 | * ipa-profile.c (ipa_profile): Delete call_sums and set it to | |
37521 | NULL on exit. | |
37522 | ||
37523 | 2020-01-18 Jan Hubicka <hubicka@ucw.cz> | |
37524 | ||
37525 | PR lto/93318 | |
37526 | * cgraph.c (cgraph_edge::resolve_speculation, | |
37527 | cgraph_edge::redirect_call_stmt_to_callee): Fix update of | |
37528 | call_stmt_site_hash. | |
37529 | ||
37530 | 2020-01-21 Martin Liska <mliska@suse.cz> | |
37531 | ||
37532 | * config/rs6000/rs6000.c (common_mode_defined): Remove | |
37533 | unused variable. | |
37534 | ||
37535 | 2020-01-21 Richard Biener <rguenther@suse.de> | |
37536 | ||
37537 | PR tree-optimization/92328 | |
37538 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Preserve | |
37539 | type when value-numbering same-sized store by inserting a | |
37540 | VIEW_CONVERT_EXPR. | |
37541 | (eliminate_dom_walker::eliminate_stmt): When eliminating | |
37542 | a redundant store handle bit-reinterpretation of the same value. | |
37543 | ||
37544 | 2020-01-21 Andrew Pinski <apinski@marvel.com> | |
37545 | ||
37546 | PR tree-opt/93321 | |
37547 | * tree-into-ssa.c (prepare_block_for_update_1): Split out | |
37548 | from ... | |
37549 | (prepare_block_for_update): This. Use a worklist instead of | |
37550 | recursing. | |
37551 | ||
37552 | 2020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37553 | ||
37554 | * config/arm/arm.c (clear_operation_p): | |
37555 | Initialise last_regno, skip first iteration | |
37556 | based on the first_set value and use ints instead | |
37557 | of the unnecessary HOST_WIDE_INTs. | |
37558 | ||
37559 | 2020-01-21 Jakub Jelinek <jakub@redhat.com> | |
37560 | ||
37561 | PR target/93073 | |
37562 | * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for | |
37563 | compare_mode other than SFmode or DFmode. | |
37564 | ||
37565 | 2020-01-21 Kito Cheng <kito.cheng@sifive.com> | |
37566 | ||
37567 | PR target/93304 | |
37568 | * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New. | |
37569 | * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New. | |
37570 | * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined. | |
37571 | ||
37572 | 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com> | |
37573 | ||
37574 | * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4. | |
37575 | ||
37576 | 2020-01-20 Andrew Pinski <apinski@marvell.com> | |
37577 | ||
37578 | PR middle-end/93242 | |
37579 | * targhooks.c (default_print_patchable_function_entry): Use | |
37580 | output_asm_insn to emit the nop instruction. | |
37581 | ||
37582 | 2020-01-20 Fangrui Song <maskray@google.com> | |
37583 | ||
37584 | PR middle-end/93194 | |
37585 | * targhooks.c (default_print_patchable_function_entry): Align to | |
37586 | POINTER_SIZE. | |
37587 | ||
37588 | 2020-01-20 H.J. Lu <hongjiu.lu@intel.com> | |
37589 | ||
37590 | PR target/93319 | |
37591 | * config/i386/i386.c (legitimize_tls_address): Pass Pmode to | |
37592 | gen_tls_dynamic_gnu2_64. Compute GNU2 TLS address in ptr_mode. | |
37593 | * config/i386/i386.md (tls_dynamic_gnu2_64): Renamed to ... | |
37594 | (@tls_dynamic_gnu2_64_<mode>): This. Replace DI with P. | |
37595 | (*tls_dynamic_gnu2_lea_64): Renamed to ... | |
37596 | (*tls_dynamic_gnu2_lea_64_<mode>): This. Replace DI with P. | |
37597 | Remove the {q} suffix from lea. | |
37598 | (*tls_dynamic_gnu2_call_64): Renamed to ... | |
37599 | (*tls_dynamic_gnu2_call_64_<mode>): This. Replace DI with P. | |
37600 | (*tls_dynamic_gnu2_combine_64): Renamed to ... | |
37601 | (*tls_dynamic_gnu2_combine_64_<mode>): This. Replace DI with P. | |
37602 | Pass Pmode to gen_tls_dynamic_gnu2_64. | |
37603 | ||
37604 | 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com> | |
37605 | ||
37606 | * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1. | |
37607 | ||
37608 | 2020-01-20 Richard Sandiford <richard.sandiford@arm.com> | |
37609 | ||
37610 | * config/aarch64/aarch64-sve-builtins-base.cc | |
37611 | (svld1ro_impl::memory_vector_mode): Remove parameter name. | |
37612 | ||
37613 | 2020-01-20 Richard Biener <rguenther@suse.de> | |
37614 | ||
37615 | PR debug/92763 | |
37616 | * dwarf2out.c (prune_unused_types): Unconditionally mark | |
37617 | called function DIEs. | |
37618 | ||
37619 | 2020-01-20 Martin Liska <mliska@suse.cz> | |
37620 | ||
37621 | PR tree-optimization/93199 | |
37622 | * tree-eh.c (struct leh_state): Add | |
37623 | new field outer_non_cleanup. | |
37624 | (cleanup_is_dead_in): Pass leh_state instead | |
37625 | of eh_region. Add a checking that state->outer_non_cleanup | |
37626 | points to outer non-clean up region. | |
37627 | (lower_try_finally): Record outer_non_cleanup | |
37628 | for this_state. | |
37629 | (lower_catch): Likewise. | |
37630 | (lower_eh_filter): Likewise. | |
37631 | (lower_eh_must_not_throw): Likewise. | |
37632 | (lower_cleanup): Likewise. | |
37633 | ||
37634 | 2020-01-20 Richard Biener <rguenther@suse.de> | |
37635 | ||
37636 | PR tree-optimization/93094 | |
37637 | * tree-vectorizer.h (vect_loop_versioning): Adjust. | |
37638 | (vect_transform_loop): Likewise. | |
37639 | * tree-vectorizer.c (try_vectorize_loop_1): Pass down | |
37640 | loop_vectorized_call to vect_transform_loop. | |
37641 | * tree-vect-loop.c (vect_transform_loop): Pass down | |
37642 | loop_vectorized_call to vect_loop_versioning. | |
37643 | * tree-vect-loop-manip.c (vect_loop_versioning): Use | |
37644 | the earlier discovered loop_vectorized_call. | |
37645 | ||
37646 | 2020-01-19 Eric S. Raymond <esr@thyrsus.com> | |
37647 | ||
37648 | * doc/contribute.texi: Update for SVN -> Git transition. | |
37649 | * doc/install.texi: Likewise. | |
37650 | ||
37651 | 2020-01-18 Jan Hubicka <hubicka@ucw.cz> | |
37652 | ||
37653 | PR lto/93318 | |
37654 | * cgraph.c (cgraph_edge::make_speculative): Increase number of | |
37655 | speculative targets. | |
37656 | (verify_speculative_call): New function | |
37657 | (cgraph_node::verify_node): Use it. | |
37658 | * ipa-profile.c (ipa_profile): Fix formating; do not set number of | |
37659 | speculations. | |
37660 | ||
37661 | 2020-01-18 Jan Hubicka <hubicka@ucw.cz> | |
37662 | ||
37663 | PR lto/93318 | |
37664 | * cgraph.c (cgraph_edge::resolve_speculation): Fix foramting. | |
37665 | (cgraph_edge::make_direct): Remove all indirect targets. | |
37666 | (cgraph_edge::redirect_call_stmt_to_callee): Use make_direct.. | |
37667 | (cgraph_node::verify_node): Verify that only one call_stmt or | |
37668 | lto_stmt_uid is set. | |
37669 | * cgraphclones.c (cgraph_edge::clone): Set only one call_stmt or | |
37670 | lto_stmt_uid. | |
37671 | * lto-cgraph.c (lto_output_edge): Simplify streaming of stmt. | |
37672 | (lto_output_ref): Simplify streaming of stmt. | |
37673 | * lto-streamer-in.c (fixup_call_stmt_edges_1): Clear lto_stmt_uid. | |
37674 | ||
37675 | 2020-01-18 Tamar Christina <tamar.christina@arm.com> | |
37676 | ||
37677 | * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode): | |
37678 | Mark parameter unused. | |
37679 | ||
37680 | 2020-01-18 Hans-Peter Nilsson <hp@axis.com> | |
37681 | ||
37682 | * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux* | |
37683 | ||
37684 | 2019-01-18 Gerald Pfeifer <gerald@pfeifer.com> | |
37685 | ||
37686 | * varpool.c (ctor_useable_for_folding_p): Fix grammar. | |
37687 | ||
37688 | 2020-01-18 Iain Sandoe <iain@sandoe.co.uk> | |
37689 | ||
37690 | * Makefile.in: Add coroutine-passes.o. | |
37691 | * builtin-types.def (BT_CONST_SIZE): New. | |
37692 | (BT_FN_BOOL_PTR): New. | |
37693 | (BT_FN_PTR_PTR_CONST_SIZE_BOOL): New. | |
37694 | * builtins.def (DEF_COROUTINE_BUILTIN): New. | |
37695 | * coroutine-builtins.def: New file. | |
37696 | * coroutine-passes.cc: New file. | |
37697 | * function.h (struct GTY function): Add a bit to indicate that the | |
37698 | function is a coroutine component. | |
37699 | * internal-fn.c (expand_CO_FRAME): New. | |
37700 | (expand_CO_YIELD): New. | |
37701 | (expand_CO_SUSPN): New. | |
37702 | (expand_CO_ACTOR): New. | |
37703 | * internal-fn.def (CO_ACTOR): New. | |
37704 | (CO_YIELD): New. | |
37705 | (CO_SUSPN): New. | |
37706 | (CO_FRAME): New. | |
37707 | * passes.def: Add pass_coroutine_lower_builtins, | |
37708 | pass_coroutine_early_expand_ifns. | |
37709 | * tree-pass.h (make_pass_coroutine_lower_builtins): New. | |
37710 | (make_pass_coroutine_early_expand_ifns): New. | |
37711 | * doc/invoke.texi: Document the fcoroutines command line | |
37712 | switch. | |
37713 | ||
37714 | 2020-01-18 Jakub Jelinek <jakub@redhat.com> | |
37715 | ||
37716 | * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable. | |
37717 | ||
37718 | PR target/93312 | |
37719 | * config/arm/arm.c (clear_operation_p): Don't use REGNO until | |
37720 | after checking the argument is a REG. Don't use REGNO (reg) | |
37721 | again to set last_regno, reuse regno variable instead. | |
37722 | ||
37723 | 2020-01-17 David Malcolm <dmalcolm@redhat.com> | |
37724 | ||
37725 | * doc/analyzer.texi (Limitations): Add note about NaN. | |
37726 | ||
37727 | 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37728 | Sudakshina Das <sudi.das@arm.com> | |
37729 | ||
37730 | * config/arm/arm.md (ashldi3): Generate thumb2_lsll for both reg | |
37731 | and valid immediate. | |
37732 | (ashrdi3): Generate thumb2_asrl for both reg and valid immediate. | |
37733 | (lshrdi3): Generate thumb2_lsrl for valid immediates. | |
37734 | * config/arm/constraints.md (Pg): New. | |
37735 | * config/arm/predicates.md (long_shift_imm): New. | |
37736 | (arm_reg_or_long_shift_imm): Likewise. | |
37737 | * config/arm/thumb2.md (thumb2_asrl): New immediate alternative. | |
37738 | (thumb2_lsll): Likewise. | |
37739 | (thumb2_lsrl): New. | |
37740 | ||
37741 | 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37742 | Sudakshina Das <sudi.das@arm.com> | |
37743 | ||
37744 | * config/arm/arm.md (ashldi3): Generate thumb2_lsll for TARGET_HAVE_MVE. | |
37745 | (ashrdi3): Generate thumb2_asrl for TARGET_HAVE_MVE. | |
37746 | * config/arm/arm.c (arm_hard_regno_mode_ok): Allocate even odd | |
37747 | register pairs for doubleword quantities for ARMv8.1M-Mainline. | |
37748 | * config/arm/thumb2.md (thumb2_asrl): New. | |
37749 | (thumb2_lsll): Likewise. | |
37750 | ||
37751 | 2020-01-17 Jakub Jelinek <jakub@redhat.com> | |
37752 | ||
37753 | * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove | |
37754 | unused variable. | |
37755 | ||
37756 | 2020-01-17 Alexander Monakov <amonakov@ispras.ru> | |
37757 | ||
37758 | * gdbinit.in (help-gcc-hooks): New command. | |
37759 | (pp, pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, ptc, pdn, ptn, pdd, prc, | |
37760 | pi, pbm, pel, trt): Take $arg0 instead of $ if supplied. Update | |
37761 | documentation. | |
37762 | ||
37763 | 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com> | |
37764 | ||
37765 | * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the | |
37766 | correct target macro. | |
37767 | ||
37768 | 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com> | |
37769 | ||
37770 | * config/aarch64/aarch64-protos.h | |
37771 | (aarch64_sve_ld1ro_operand_p): New. | |
37772 | * config/aarch64/aarch64-sve-builtins-base.cc | |
37773 | (class load_replicate): New. | |
37774 | (class svld1ro_impl): New. | |
37775 | (class svld1rq_impl): Change to inherit from load_replicate. | |
37776 | (svld1ro): New sve intrinsic function base. | |
37777 | * config/aarch64/aarch64-sve-builtins-base.def (svld1ro): | |
37778 | New DEF_SVE_FUNCTION. | |
37779 | * config/aarch64/aarch64-sve-builtins-base.h | |
37780 | (svld1ro): New decl. | |
37781 | * config/aarch64/aarch64-sve-builtins.cc | |
37782 | (function_expander::add_mem_operand): Modify assert to allow | |
37783 | OImode. | |
37784 | * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New | |
37785 | pattern. | |
37786 | * config/aarch64/aarch64.c | |
37787 | (aarch64_sve_ld1rq_operand_p): Implement in terms of ... | |
37788 | (aarch64_sve_ld1rq_ld1ro_operand_p): This. | |
37789 | (aarch64_sve_ld1ro_operand_p): New. | |
37790 | * config/aarch64/aarch64.md (UNSPEC_LD1RO): New unspec. | |
37791 | * config/aarch64/constraints.md (UOb,UOh,UOw,UOd): New. | |
37792 | * config/aarch64/predicates.md | |
37793 | (aarch64_sve_ld1ro_operand_{b,h,w,d}): New. | |
37794 | ||
37795 | 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com> | |
37796 | ||
37797 | * config/aarch64/aarch64-c.c (_ARM_FEATURE_MATMUL_FLOAT64): | |
37798 | Introduce this ACLE specified predefined macro. | |
37799 | * config/aarch64/aarch64-option-extensions.def (f64mm): New. | |
37800 | (fp): Disabling this disables f64mm. | |
37801 | (simd): Disabling this disables f64mm. | |
37802 | (fp16): Disabling this disables f64mm. | |
37803 | (sve): Disabling this disables f64mm. | |
37804 | * config/aarch64/aarch64.h (AARCH64_FL_F64MM): New. | |
37805 | (AARCH64_ISA_F64MM): New. | |
37806 | (TARGET_F64MM): New. | |
37807 | * doc/invoke.texi (f64mm): Document new option. | |
37808 | ||
37809 | 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com> | |
37810 | ||
37811 | * config/aarch64/aarch64.c (generic_tunings): Add branch fusion. | |
37812 | (neoversen1_tunings): Likewise. | |
37813 | ||
37814 | 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com> | |
37815 | ||
37816 | PR target/92692 | |
37817 | * config/aarch64/aarch64.c (aarch64_split_compare_and_swap) | |
37818 | Add assert to ensure prolog has been emitted. | |
37819 | (aarch64_split_atomic_op): Likewise. | |
37820 | * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>) | |
37821 | Use epilogue_completed rather than reload_completed. | |
37822 | (aarch64_atomic_exchange<mode>): Likewise. | |
37823 | (aarch64_atomic_<atomic_optab><mode>): Likewise. | |
37824 | (atomic_nand<mode>): Likewise. | |
37825 | (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise. | |
37826 | (atomic_fetch_nand<mode>): Likewise. | |
37827 | (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise. | |
37828 | (atomic_nand_fetch<mode>): Likewise. | |
37829 | ||
37830 | 2020-01-17 Richard Sandiford <richard.sandiford@arm.com> | |
37831 | ||
37832 | PR target/93133 | |
37833 | * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false | |
37834 | for FP modes. | |
37835 | (REVERSE_CONDITION): Delete. | |
37836 | * config/aarch64/iterators.md (CC_ONLY): New mode iterator. | |
37837 | (CCFP_CCFPE): Likewise. | |
37838 | (e): New mode attribute. | |
37839 | * config/aarch64/aarch64.md (ccmp<GPI:mode>): Rename to... | |
37840 | (@ccmp<CC_ONLY:mode><GPI:mode>): ...this, using CC_ONLY instead of CC. | |
37841 | (fccmp<GPF:mode>, fccmpe<GPF:mode>): Merge into... | |
37842 | (@ccmp<CCFP_CCFPE:mode><GPF:mode>): ...this combined pattern. | |
37843 | (@ccmp<CC_ONLY:mode><GPI:mode>_rev): New pattern. | |
37844 | (@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev): Likewise. | |
37845 | * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Update | |
37846 | name of generator from gen_ccmpdi to gen_ccmpccdi. | |
37847 | (aarch64_gen_ccmp_next): Use code_for_ccmp. If we want to reverse | |
37848 | the previous comparison but aren't able to, use the new ccmp_rev | |
37849 | patterns instead. | |
37850 | ||
37851 | 2020-01-17 Richard Sandiford <richard.sandiford@arm.com> | |
37852 | ||
37853 | * gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather | |
37854 | than testing directly for INTEGER_CST. | |
37855 | (gimplify_target_expr, gimplify_omp_depend): Likewise. | |
37856 | ||
37857 | 2020-01-17 Jakub Jelinek <jakub@redhat.com> | |
37858 | ||
37859 | PR tree-optimization/93292 | |
37860 | * tree-vect-stmts.c (vectorizable_comparison): Punt also if | |
37861 | get_vectype_for_scalar_type returns NULL. | |
37862 | ||
37863 | 2020-01-16 Jan Hubicka <hubicka@ucw.cz> | |
37864 | ||
37865 | * params.opt (-param=max-predicted-iterations): Increase range from 0. | |
37866 | * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations. | |
37867 | ||
37868 | 2020-01-16 Jan Hubicka <hubicka@ucw.cz> | |
37869 | ||
37870 | * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of | |
37871 | dump. | |
37872 | * params.opt: (max-predicted-iterations): Set bounds. | |
37873 | * predict.c (real_almost_one, real_br_prob_base, | |
37874 | real_inv_br_prob_base, real_one_half, real_bb_freq_max): Remove. | |
37875 | (propagate_freq): Add max_cyclic_prob parameter; cap cyclic | |
37876 | probabilities; do not truncate to reg_br_prob_bases. | |
37877 | (estimate_loops_at_level): Pass max_cyclic_prob. | |
37878 | (estimate_loops): Compute max_cyclic_prob. | |
37879 | (estimate_bb_frequencies): Do not initialize real_*; update calculation | |
37880 | of back edge prob. | |
37881 | * profile-count.c (profile_probability::to_sreal): New. | |
37882 | * profile-count.h (class sreal): Move up in file. | |
37883 | (profile_probability::to_sreal): Declare. | |
37884 | ||
37885 | 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
37886 | ||
37887 | * config/arm/arm.c | |
37888 | (arm_invalid_conversion): New function for target hook. | |
37889 | (arm_invalid_unary_op): New function for target hook. | |
37890 | (arm_invalid_binary_op): New function for target hook. | |
37891 | ||
37892 | 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
37893 | ||
37894 | * config.gcc: Add arm_bf16.h. | |
37895 | * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment. | |
37896 | (arm_simd_builtin_std_type): Add BFmode. | |
37897 | (arm_init_simd_builtin_types): Define element types for vector types. | |
37898 | (arm_init_bf16_types): New function. | |
37899 | (arm_init_builtins): Add arm_init_bf16_types function call. | |
37900 | * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes. | |
37901 | * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF. | |
37902 | * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode. | |
37903 | (arm_hard_regno_mode_ok): Add BFmode and tidy up statements. | |
37904 | (arm_vector_mode_supported_p): Add V4BF, V8BF. | |
37905 | (arm_mangle_type): Add __bf16. | |
37906 | * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE, | |
37907 | VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node, | |
37908 | arm_bf16_ptr_type_node. | |
37909 | * config/arm/arm.md: Add BFmode to movhf expand, mov pattern and | |
37910 | define_split between ARM registers. | |
37911 | * config/arm/arm_bf16.h: New file. | |
37912 | * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types. | |
37913 | * config/arm/iterators.md: (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): New. | |
37914 | (VQXMOV): Add V8BF. | |
37915 | * config/arm/neon.md: Add BF vector types to movhf NEON move patterns. | |
37916 | * config/arm/vfp.md: Add BFmode to movhf patterns. | |
37917 | ||
37918 | 2020-01-16 Mihail Ionescu <mihail.ionescu@arm.com> | |
37919 | Andre Vieira <andre.simoesdiasvieira@arm.com> | |
37920 | ||
37921 | * config/arm/arm-cpus.in (mve, mve_float): New features. | |
37922 | (dsp, mve, mve.fp): New options. | |
37923 | * config/arm/arm.h (TARGET_HAVE_MVE, TARGET_HAVE_MVE_FLOAT): Define. | |
37924 | * config/arm/t-rmprofile: Map v8.1-M multilibs to v8-M. | |
37925 | * doc/invoke.texi: Document the armv8.1-m mve and dps options. | |
37926 | ||
37927 | 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37928 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
37929 | ||
37930 | * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to | |
37931 | Armv8-M Mainline. | |
37932 | * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove | |
37933 | error for using -mcmse when targeting Armv8.1-M Mainline. | |
37934 | ||
37935 | 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37936 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
37937 | ||
37938 | * config/arm/arm.md (nonsecure_call_internal): Do not force memory | |
37939 | address in r4 when targeting Armv8.1-M Mainline. | |
37940 | (nonsecure_call_value_internal): Likewise. | |
37941 | * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Make memory address | |
37942 | a register match_operand again. Emit BLXNS when targeting | |
37943 | Armv8.1-M Mainline. | |
37944 | (nonsecure_call_value_reg_thumb2): Likewise. | |
37945 | ||
37946 | 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37947 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
37948 | ||
37949 | * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): Declare early. | |
37950 | (cmse_nonsecure_call_inline_register_clear): Define new lazy_fpclear | |
37951 | variable as true when floating-point ABI is not hard. Replace | |
37952 | check against TARGET_HARD_FLOAT_ABI by checks against lazy_fpclear. | |
37953 | Generate VLSTM and VLLDM instruction respectively before and | |
37954 | after a function call to cmse_nonsecure_call function. | |
37955 | * config/arm/unspecs.md (VUNSPEC_VLSTM): Define unspec. | |
37956 | (VUNSPEC_VLLDM): Likewise. | |
37957 | * config/arm/vfp.md (lazy_store_multiple_insn): New define_insn. | |
37958 | (lazy_load_multiple_insn): Likewise. | |
37959 | ||
37960 | 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37961 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
37962 | ||
37963 | * config/arm/arm.c (vfp_emit_fstmd): Declare early. | |
37964 | (arm_emit_vfp_multi_reg_pop): Likewise. | |
37965 | (cmse_nonsecure_call_inline_register_clear): Abstract number of VFP | |
37966 | registers to clear in max_fp_regno. Emit VPUSH and VPOP to save and | |
37967 | restore callee-saved VFP registers. | |
37968 | ||
37969 | 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37970 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
37971 | ||
37972 | * config/arm/arm.c (arm_emit_multi_reg_pop): Declare early. | |
37973 | (cmse_nonsecure_call_clear_caller_saved): Rename into ... | |
37974 | (cmse_nonsecure_call_inline_register_clear): This. Save and clear | |
37975 | callee-saved GPRs as well as clear ip register before doing a nonsecure | |
37976 | call then restore callee-saved GPRs after it when targeting | |
37977 | Armv8.1-M Mainline. | |
37978 | (arm_reorg): Adapt to function rename. | |
37979 | ||
37980 | 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37981 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
37982 | ||
37983 | * config/arm/arm-protos.h (clear_operation_p): Adapt prototype. | |
37984 | * config/arm/arm.c (clear_operation_p): Extend to be able to check a | |
37985 | clear_vfp_multiple pattern based on a new vfp parameter. | |
37986 | (cmse_clear_registers): Generate VSCCLRM to clear VFP registers when | |
37987 | targeting Armv8.1-M Mainline. | |
37988 | (cmse_nonsecure_entry_clear_before_return): Clear VFP registers | |
37989 | unconditionally when targeting Armv8.1-M Mainline architecture. Check | |
37990 | whether VFP registers are available before looking call_used_regs for a | |
37991 | VFP register. | |
37992 | * config/arm/predicates.md (clear_multiple_operation): Adapt to change | |
37993 | of prototype of clear_operation_p. | |
37994 | (clear_vfp_multiple_operation): New predicate. | |
37995 | * config/arm/unspecs.md (VUNSPEC_VSCCLRM_VPR): New volatile unspec. | |
37996 | * config/arm/vfp.md (clear_vfp_multiple): New define_insn. | |
37997 | ||
37998 | 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
37999 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
38000 | ||
38001 | * config/arm/arm-protos.h (clear_operation_p): Declare. | |
38002 | * config/arm/arm.c (clear_operation_p): New function. | |
38003 | (cmse_clear_registers): Generate clear_multiple instruction pattern if | |
38004 | targeting Armv8.1-M Mainline or successor. | |
38005 | (output_return_instruction): Only output APSR register clearing if | |
38006 | Armv8.1-M Mainline instructions not available. | |
38007 | (thumb_exit): Likewise. | |
38008 | * config/arm/predicates.md (clear_multiple_operation): New predicate. | |
38009 | * config/arm/thumb2.md (clear_apsr): New define_insn. | |
38010 | (clear_multiple): Likewise. | |
38011 | * config/arm/unspecs.md (VUNSPEC_CLRM_APSR): New volatile unspec. | |
38012 | ||
38013 | 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
38014 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
38015 | ||
38016 | * config/arm/arm.c (fp_sysreg_names): Declare and define. | |
38017 | (use_return_insn): Also return false for Armv8.1-M Mainline. | |
38018 | (output_return_instruction): Skip FPSCR clearing if Armv8.1-M | |
38019 | Mainline instructions are available. | |
38020 | (arm_compute_frame_layout): Allocate space in frame for FPCXTNS | |
38021 | when targeting Armv8.1-M Mainline Security Extensions. | |
38022 | (arm_expand_prologue): Save FPCXTNS if this is an Armv8.1-M | |
38023 | Mainline entry function. | |
38024 | (cmse_nonsecure_entry_clear_before_return): Clear IP and r4 if | |
38025 | targeting Armv8.1-M Mainline or successor. | |
38026 | (arm_expand_epilogue): Fix indentation of caller-saved register | |
38027 | clearing. Restore FPCXTNS if this is an Armv8.1-M Mainline | |
38028 | entry function. | |
38029 | * config/arm/arm.h (TARGET_HAVE_FP_CMSE): New macro. | |
38030 | (FP_SYSREGS): Likewise. | |
38031 | (enum vfp_sysregs_encoding): Define enum. | |
38032 | (fp_sysreg_names): Declare. | |
38033 | * config/arm/unspecs.md (VUNSPEC_VSTR_VLDR): New volatile unspec. | |
38034 | * config/arm/vfp.md (push_fpsysreg_insn): New define_insn. | |
38035 | (pop_fpsysreg_insn): Likewise. | |
38036 | ||
38037 | 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
38038 | Thomas Preud'homme <thomas.preudhomme@arm.com> | |
38039 | ||
38040 | * config/arm/arm-cpus.in (armv8_1m_main): New feature. | |
38041 | (ARMv4, ARMv4t, ARMv5t, ARMv5te, ARMv5tej, ARMv6, ARMv6j, ARMv6k, | |
38042 | ARMv6z, ARMv6kz, ARMv6zk, ARMv6t2, ARMv6m, ARMv7, ARMv7a, ARMv7ve, | |
38043 | ARMv7r, ARMv7m, ARMv7em, ARMv8a, ARMv8_1a, ARMv8_2a, ARMv8_3a, | |
38044 | ARMv8_4a, ARMv8_5a, ARMv8m_base, ARMv8m_main, ARMv8r): Reindent. | |
38045 | (ARMv8_1m_main): New feature group. | |
38046 | (armv8.1-m.main): New architecture. | |
38047 | * config/arm/arm-tables.opt: Regenerate. | |
38048 | * config/arm/arm.c (arm_arch8_1m_main): Define and default initialize. | |
38049 | (arm_option_reconfigure_globals): Initialize arm_arch8_1m_main. | |
38050 | (arm_options_perform_arch_sanity_checks): Error out when targeting | |
38051 | Armv8.1-M Mainline Security Extensions. | |
38052 | * config/arm/arm.h (arm_arch8_1m_main): Declare. | |
38053 | ||
38054 | 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
38055 | ||
38056 | * config/aarch64/aarch64-simd-builtins.def (aarch64_bfdot, | |
38057 | aarch64_bfdot_lane, aarch64_bfdot_laneq): New. | |
38058 | * config/aarch64/aarch64-simd.md (aarch64_bfdot, aarch64_bfdot_lane, | |
38059 | aarch64_bfdot_laneq): New. | |
38060 | * config/aarch64/arm_bf16.h (vbfdot_f32, vbfdotq_f32, | |
38061 | vbfdot_lane_f32, vbfdotq_lane_f32, vbfdot_laneq_f32, | |
38062 | vbfdotq_laneq_f32): New. | |
38063 | * config/aarch64/iterators.md (UNSPEC_BFDOT, Vbfdottype, | |
38064 | VBFMLA_W, VBF): New. | |
38065 | (isquadop): Add V4BF, V8BF. | |
38066 | ||
38067 | 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
38068 | ||
38069 | * config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers): | |
38070 | New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS, | |
38071 | TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP. | |
38072 | (aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX. | |
38073 | (aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index. | |
38074 | * config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane, | |
38075 | usdot_laneq, sudot_lane,sudot_laneq): New. | |
38076 | * config/aarch64/aarch64-simd.md (aarch64_usdot): New. | |
38077 | (aarch64_<sur>dot_lane): New. | |
38078 | * config/aarch64/arm_neon.h (vusdot_s32): New. | |
38079 | (vusdotq_s32): New. | |
38080 | (vusdot_lane_s32): New. | |
38081 | (vsudot_lane_s32): New. | |
38082 | * config/aarch64/iterators.md (DOTPROD_I8MM): New iterator. | |
38083 | (UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs. | |
38084 | ||
38085 | 2020-01-16 Martin Liska <mliska@suse.cz> | |
38086 | ||
38087 | * value-prof.c (dump_histogram_value): Fix | |
38088 | obvious spacing issue. | |
38089 | ||
38090 | 2020-01-16 Andrew Pinski <apinski@marvell.com> | |
38091 | ||
38092 | * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for | |
38093 | !storage_order_barrier_p. | |
38094 | ||
38095 | 2020-01-16 Andrew Pinski <apinski@marvell.com> | |
38096 | ||
38097 | * sched-int.h (_dep): Add unused bit-field field for the padding. | |
38098 | * sched-deps.c (init_dep_1): Init unused field. | |
38099 | ||
38100 | 2020-01-16 Andrew Pinski <apinski@marvell.com> | |
38101 | ||
38102 | * optabs.h (create_expand_operand): Initialize target field also. | |
38103 | ||
38104 | 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
38105 | ||
38106 | PR tree-optimization/92429 | |
38107 | * tree-ssa-loop-niter.h (simplify_replace_tree): Add parameter. | |
38108 | * tree-ssa-loop-niter.c (simplify_replace_tree): Add parameter to | |
38109 | control folding. | |
38110 | * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing | |
38111 | tree. | |
38112 | ||
38113 | 2020-01-16 Richard Sandiford <richard.sandiford@arm.com> | |
38114 | ||
38115 | * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply | |
38116 | aarch64_sve_int_mode to each mode. | |
38117 | ||
38118 | 2020-01-15 David Malcolm <dmalcolm@redhat.com> | |
38119 | ||
38120 | * doc/analyzer.texi (Overview): Add note about | |
38121 | -fdump-ipa-analyzer. | |
38122 | ||
38123 | 2020-01-15 Wilco Dijkstra <wdijkstr@arm.com> | |
38124 | ||
38125 | PR tree-optimization/93231 | |
38126 | * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check | |
38127 | input_type is unsigned. Use tree_to_shwi for shift constant. | |
38128 | Check CST_STRING element size is CHAR_TYPE_SIZE bits. | |
38129 | (simplify_count_trailing_zeroes): Add test to handle known non-zero | |
38130 | inputs more efficiently. | |
38131 | ||
38132 | 2020-01-15 Uroš Bizjak <ubizjak@gmail.com> | |
38133 | ||
38134 | * config/i386/i386.md (*movsf_internal): Do not require | |
38135 | SSE2 ISA for alternatives 14 and 15. | |
38136 | ||
38137 | 2020-01-15 Richard Biener <rguenther@suse.de> | |
38138 | ||
38139 | PR middle-end/93273 | |
38140 | * tree-eh.c (sink_clobbers): If we already visited the destination | |
38141 | block do not defer insertion. | |
38142 | (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for | |
38143 | the purpose of defered insertion. | |
38144 | ||
38145 | 2020-01-15 Jakub Jelinek <jakub@redhat.com> | |
38146 | ||
38147 | * BASE-VER: Bump to 10.0.1. | |
38148 | ||
38149 | 2020-01-15 Richard Sandiford <richard.sandiford@arm.com> | |
38150 | ||
38151 | PR tree-optimization/93247 | |
38152 | * tree-vect-loop.c (update_epilogue_loop_vinfo): Check the access | |
38153 | type of the stmt that we're going to vectorize. | |
38154 | ||
38155 | 2020-01-15 Richard Sandiford <richard.sandiford@arm.com> | |
38156 | ||
38157 | * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a | |
38158 | VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent | |
38159 | type from the lhs. | |
38160 | ||
38161 | 2020-01-15 Martin Liska <mliska@suse.cz> | |
38162 | ||
38163 | * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow | |
38164 | 2 calls of streamer_read_hwi in a function call. | |
38165 | ||
38166 | 2020-01-15 Richard Biener <rguenther@suse.de> | |
38167 | ||
38168 | * alias.c (record_alias_subset): Avoid redundant work when | |
38169 | subset is already recorded. | |
38170 | ||
38171 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
38172 | ||
38173 | * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of | |
38174 | the analyzer options provide CWE identifiers. | |
38175 | ||
38176 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
38177 | ||
38178 | * tree-diagnostic-path.cc (path_summary::event_range::print): | |
38179 | When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers | |
38180 | using get_pure_location. | |
38181 | ||
38182 | 2020-01-15 Jakub Jelinek <jakub@redhat.com> | |
38183 | ||
38184 | PR tree-optimization/93262 | |
38185 | * tree-ssa-dse.c (maybe_trim_memstar_call): For *_chk builtins, | |
38186 | perform head trimming only if the last argument is constant, | |
38187 | either all ones, or larger or equal to head trim, in the latter | |
38188 | case decrease the last argument by head_trim. | |
38189 | ||
38190 | PR tree-optimization/93249 | |
38191 | * tree-ssa-dse.c: Include builtins.h and gimple-fold.h. | |
38192 | (maybe_trim_memstar_call): Move head_trim and tail_trim vars to | |
38193 | function body scope, reindent. For BUILTIN_IN_STRNCPY*, don't | |
38194 | perform head trim unless we can prove there are no '\0' chars | |
38195 | from the source among the first head_trim chars. | |
38196 | ||
38197 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
38198 | ||
38199 | * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o. | |
38200 | ||
38201 | 2020-01-15 Jakub Jelinek <jakub@redhat.com> | |
38202 | ||
38203 | PR target/93009 | |
38204 | * config/i386/sse.md | |
38205 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1, | |
38206 | *<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1, | |
38207 | *<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1, | |
38208 | *<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use | |
38209 | just a single alternative instead of two, make operands 1 and 2 | |
38210 | commutative. | |
38211 | ||
38212 | 2020-01-14 Jan Hubicka <hubicka@ucw.cz> | |
38213 | ||
38214 | PR lto/91576 | |
38215 | * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and | |
38216 | TYPE_MODE. | |
38217 | ||
38218 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
38219 | ||
38220 | * Makefile.in (lang_opt_files): Add analyzer.opt. | |
38221 | (ANALYZER_OBJS): New. | |
38222 | (OBJS): Add digraph.o, graphviz.o, ordered-hash-map-tests.o, | |
38223 | tristate.o and ANALYZER_OBJS. | |
38224 | (TEXI_GCCINT_FILES): Add analyzer.texi. | |
38225 | * common.opt (-fanalyzer): New driver option. | |
38226 | * config.in: Regenerate. | |
38227 | * configure: Regenerate. | |
38228 | * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option. | |
38229 | (gccdepdir): Also create depdir for "analyzer" subdir. | |
38230 | * digraph.cc: New file. | |
38231 | * digraph.h: New file. | |
38232 | * doc/analyzer.texi: New file. | |
38233 | * doc/gccint.texi ("Static Analyzer") New menu item. | |
38234 | (analyzer.texi): Include it. | |
38235 | * doc/invoke.texi ("Static Analyzer Options"): New list and new section. | |
38236 | ("Warning Options"): Add static analysis warnings to the list. | |
38237 | (-Wno-analyzer-double-fclose): New option. | |
38238 | (-Wno-analyzer-double-free): New option. | |
38239 | (-Wno-analyzer-exposure-through-output-file): New option. | |
38240 | (-Wno-analyzer-file-leak): New option. | |
38241 | (-Wno-analyzer-free-of-non-heap): New option. | |
38242 | (-Wno-analyzer-malloc-leak): New option. | |
38243 | (-Wno-analyzer-possible-null-argument): New option. | |
38244 | (-Wno-analyzer-possible-null-dereference): New option. | |
38245 | (-Wno-analyzer-null-argument): New option. | |
38246 | (-Wno-analyzer-null-dereference): New option. | |
38247 | (-Wno-analyzer-stale-setjmp-buffer): New option. | |
38248 | (-Wno-analyzer-tainted-array-index): New option. | |
38249 | (-Wno-analyzer-use-after-free): New option. | |
38250 | (-Wno-analyzer-use-of-pointer-in-stale-stack-frame): New option. | |
38251 | (-Wno-analyzer-use-of-uninitialized-value): New option. | |
38252 | (-Wanalyzer-too-complex): New option. | |
38253 | (-fanalyzer-call-summaries): New warning. | |
38254 | (-fanalyzer-checker=): New warning. | |
38255 | (-fanalyzer-fine-grained): New warning. | |
38256 | (-fno-analyzer-state-merge): New warning. | |
38257 | (-fno-analyzer-state-purge): New warning. | |
38258 | (-fanalyzer-transitivity): New warning. | |
38259 | (-fanalyzer-verbose-edges): New warning. | |
38260 | (-fanalyzer-verbose-state-changes): New warning. | |
38261 | (-fanalyzer-verbosity=): New warning. | |
38262 | (-fdump-analyzer): New warning. | |
38263 | (-fdump-analyzer-callgraph): New warning. | |
38264 | (-fdump-analyzer-exploded-graph): New warning. | |
38265 | (-fdump-analyzer-exploded-nodes): New warning. | |
38266 | (-fdump-analyzer-exploded-nodes-2): New warning. | |
38267 | (-fdump-analyzer-exploded-nodes-3): New warning. | |
38268 | (-fdump-analyzer-supergraph): New warning. | |
38269 | * doc/sourcebuild.texi (dg-require-dot): New. | |
38270 | (dg-check-dot): New. | |
38271 | * gdbinit.in (break-on-saved-diagnostic): New command. | |
38272 | * graphviz.cc: New file. | |
38273 | * graphviz.h: New file. | |
38274 | * ordered-hash-map-tests.cc: New file. | |
38275 | * ordered-hash-map.h: New file. | |
38276 | * passes.def (pass_analyzer): Add before | |
38277 | pass_ipa_whole_program_visibility. | |
38278 | * selftest-run-tests.c (selftest::run_tests): Call | |
38279 | selftest::ordered_hash_map_tests_cc_tests. | |
38280 | * selftest.h (selftest::ordered_hash_map_tests_cc_tests): New | |
38281 | decl. | |
38282 | * shortest-paths.h: New file. | |
38283 | * timevar.def (TV_ANALYZER): New timevar. | |
38284 | (TV_ANALYZER_SUPERGRAPH): Likewise. | |
38285 | (TV_ANALYZER_STATE_PURGE): Likewise. | |
38286 | (TV_ANALYZER_PLAN): Likewise. | |
38287 | (TV_ANALYZER_SCC): Likewise. | |
38288 | (TV_ANALYZER_WORKLIST): Likewise. | |
38289 | (TV_ANALYZER_DUMP): Likewise. | |
38290 | (TV_ANALYZER_DIAGNOSTICS): Likewise. | |
38291 | (TV_ANALYZER_SHORTEST_PATHS): Likewise. | |
38292 | * tree-pass.h (make_pass_analyzer): New decl. | |
38293 | * tristate.cc: New file. | |
38294 | * tristate.h: New file. | |
38295 | ||
38296 | 2020-01-14 Uroš Bizjak <ubizjak@gmail.com> | |
38297 | ||
38298 | PR target/93254 | |
38299 | * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for | |
38300 | alternatives 9 and 10. | |
38301 | ||
38302 | 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
38303 | ||
38304 | * attribs.c (excl_hash_traits::empty_zero_p): New static constant. | |
38305 | * gcov.c (function_start_pair_hash::empty_zero_p): Likewise. | |
38306 | * graphite.c (struct sese_scev_hash::empty_zero_p): Likewise. | |
38307 | * hash-map-tests.c (selftest::test_nonzero_empty_key): New selftest. | |
38308 | (selftest::hash_map_tests_c_tests): Call it. | |
38309 | * hash-map-traits.h (simple_hashmap_traits::empty_zero_p): | |
38310 | New static constant, using the value of = H::empty_zero_p. | |
38311 | (unbounded_hashmap_traits::empty_zero_p): Likewise, using the value | |
38312 | from default_hash_traits <Value>. | |
38313 | * hash-map.h (hash_map::empty_zero_p): Likewise, using the value | |
38314 | from Traits. | |
38315 | * hash-set-tests.c (value_hash_traits::empty_zero_p): Likewise. | |
38316 | * hash-table.h (hash_table::alloc_entries): Guard the loop of | |
38317 | calls to mark_empty with !Descriptor::empty_zero_p. | |
38318 | (hash_table::empty_slow): Conditionalize the memset call with a | |
38319 | check that Descriptor::empty_zero_p; otherwise, loop through the | |
38320 | entries calling mark_empty on them. | |
38321 | * hash-traits.h (int_hash::empty_zero_p): New static constant. | |
38322 | (pointer_hash::empty_zero_p): Likewise. | |
38323 | (pair_hash::empty_zero_p): Likewise. | |
38324 | * ipa-devirt.c (default_hash_traits <type_pair>::empty_zero_p): | |
38325 | Likewise. | |
38326 | * ipa-prop.c (ipa_bit_ggc_hash_traits::empty_zero_p): Likewise. | |
38327 | (ipa_vr_ggc_hash_traits::empty_zero_p): Likewise. | |
38328 | * profile.c (location_triplet_hash::empty_zero_p): Likewise. | |
38329 | * sanopt.c (sanopt_tree_triplet_hash::empty_zero_p): Likewise. | |
38330 | (sanopt_tree_couple_hash::empty_zero_p): Likewise. | |
38331 | * tree-hasher.h (int_tree_hasher::empty_zero_p): Likewise. | |
38332 | * tree-ssa-sccvn.c (vn_ssa_aux_hasher::empty_zero_p): Likewise. | |
38333 | * tree-vect-slp.c (bst_traits::empty_zero_p): Likewise. | |
38334 | * tree-vectorizer.h | |
38335 | (default_hash_traits<scalar_cond_masked_key>::empty_zero_p): | |
38336 | Likewise. | |
38337 | ||
38338 | 2020-01-14 Kewen Lin <linkw@gcc.gnu.org> | |
38339 | ||
38340 | * cfgloopanal.c (average_num_loop_insns): Free bbs when early return, | |
38341 | fix typo on return value. | |
38342 | ||
38343 | 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
38344 | ||
38345 | PR ipa/69678 | |
38346 | * cgraph.c (symbol_table::create_edge): Init speculative_id and | |
38347 | target_prob. | |
38348 | (cgraph_edge::make_speculative): Add param for setting speculative_id | |
38349 | and target_prob. | |
38350 | (cgraph_edge::speculative_call_info): Update comments and find reference | |
38351 | by speculative_id for multiple indirect targets. | |
38352 | (cgraph_edge::resolve_speculation): Decrease the speculations | |
38353 | for indirect edge, drop it's speculative if not direct target | |
38354 | left. Update comments. | |
38355 | (cgraph_edge::redirect_call_stmt_to_callee): Likewise. | |
38356 | (cgraph_node::dump): Print num_speculative_call_targets. | |
38357 | (cgraph_node::verify_node): Don't report error if speculative | |
38358 | edge not include statement. | |
38359 | (cgraph_edge::num_speculative_call_targets_p): New function. | |
38360 | * cgraph.h (int common_target_id): Remove. | |
38361 | (int common_target_probability): Remove. | |
38362 | (num_speculative_call_targets): New variable. | |
38363 | (make_speculative): Add param for setting speculative_id. | |
38364 | (cgraph_edge::num_speculative_call_targets_p): New declare. | |
38365 | (target_prob): New variable. | |
38366 | (speculative_id): New variable. | |
38367 | * ipa-fnsummary.c (analyze_function_body): Create and duplicate | |
38368 | call summaries for multiple speculative call targets. | |
38369 | * cgraphclones.c (cgraph_node::create_clone): Clone speculative_id. | |
38370 | * ipa-profile.c (struct speculative_call_target): New struct. | |
38371 | (class speculative_call_summary): New class. | |
38372 | (class speculative_call_summaries): New class. | |
38373 | (call_sums): New variable. | |
38374 | (ipa_profile_generate_summary): Generate indirect multiple targets summaries. | |
38375 | (ipa_profile_write_edge_summary): New function. | |
38376 | (ipa_profile_write_summary): Stream out indirect multiple targets summaries. | |
38377 | (ipa_profile_dump_all_summaries): New function. | |
38378 | (ipa_profile_read_edge_summary): New function. | |
38379 | (ipa_profile_read_summary_section): New function. | |
38380 | (ipa_profile_read_summary): Stream in indirect multiple targets summaries. | |
38381 | (ipa_profile): Generate num_speculative_call_targets from | |
38382 | profile summaries. | |
38383 | * ipa-ref.h (speculative_id): New variable. | |
38384 | * ipa-utils.c (ipa_merge_profiles): Update with target_prob. | |
38385 | * lto-cgraph.c (lto_output_edge): Remove indirect common_target_id and | |
38386 | common_target_probability. Stream out speculative_id and | |
38387 | num_speculative_call_targets. | |
38388 | (input_edge): Likewise. | |
38389 | * predict.c (dump_prediction): Remove edges count assert to be | |
38390 | precise. | |
38391 | * symtab.c (symtab_node::create_reference): Init speculative_id. | |
38392 | (symtab_node::clone_references): Clone speculative_id. | |
38393 | (symtab_node::clone_referring): Clone speculative_id. | |
38394 | (symtab_node::clone_reference): Clone speculative_id. | |
38395 | (symtab_node::clear_stmts_in_references): Clear speculative_id. | |
38396 | * tree-inline.c (copy_bb): Duplicate all the speculative edges | |
38397 | if indirect call contains multiple speculative targets. | |
38398 | * value-prof.h (check_ic_target): Remove. | |
38399 | * value-prof.c (gimple_value_profile_transformations): | |
38400 | Use void function gimple_ic_transform. | |
38401 | * value-prof.c (gimple_ic_transform): Handle topn case. | |
38402 | Fix comment typos. Change it to a void function. | |
38403 | ||
38404 | 2020-01-13 Andrew Pinski <apinski@marvell.com> | |
38405 | ||
38406 | * config/aarch64/aarch64-cores.def (octeontx2): New define. | |
38407 | (octeontx2t98): New define. | |
38408 | (octeontx2t96): New define. | |
38409 | (octeontx2t93): New define. | |
38410 | (octeontx2f95): New define. | |
38411 | (octeontx2f95n): New define. | |
38412 | (octeontx2f95mm): New define. | |
38413 | * config/aarch64/aarch64-tune.md: Regenerate. | |
38414 | * doc/invoke.texi (-mcpu=): Document the new cpu types. | |
38415 | ||
38416 | 2020-01-13 Jason Merrill <jason@redhat.com> | |
38417 | ||
38418 | PR c++/33799 - destroy return value if local cleanup throws. | |
38419 | * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR. | |
38420 | ||
38421 | 2020-01-13 Martin Liska <mliska@suse.cz> | |
38422 | ||
38423 | * ipa-cp.c (get_max_overall_size): Use newly | |
38424 | renamed param param_ipa_cp_unit_growth. | |
38425 | * params.opt: Remove legacy param name. | |
38426 | ||
38427 | 2020-01-13 Martin Sebor <msebor@redhat.com> | |
38428 | ||
38429 | PR tree-optimization/93213 | |
38430 | * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul | |
38431 | stores to be eliminated. | |
38432 | ||
38433 | 2020-01-13 Martin Liska <mliska@suse.cz> | |
38434 | ||
38435 | * opts.c (print_help): Do not print CL_PARAM | |
38436 | and CL_WARNING for CL_OPTIMIZATION. | |
38437 | ||
38438 | 2020-01-13 Jonathan Wakely <jwakely@redhat.com> | |
38439 | ||
38440 | PR driver/92757 | |
38441 | * doc/invoke.texi (Warning Options): Add caveat about some warnings | |
38442 | depending on optimization settings. | |
38443 | ||
38444 | 2020-01-13 Jakub Jelinek <jakub@redhat.com> | |
38445 | ||
38446 | PR tree-optimization/90838 | |
38447 | * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use | |
38448 | SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro | |
38449 | argument rather than to initialize temporary for targets that | |
38450 | don't use the mode argument at all. Initialize ctzval to avoid | |
38451 | warning at -O0. | |
38452 | ||
38453 | 2020-01-10 Thomas Schwinge <thomas@codesourcery.com> | |
38454 | ||
38455 | * tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition. | |
38456 | * tree-core.h: Document it. | |
38457 | * gimplify.c (gimplify_omp_workshare): Set it. | |
38458 | * omp-low.c (lower_omp_target): Use it. | |
38459 | * tree-pretty-print.c (dump_omp_clause): Print it. | |
38460 | ||
38461 | * omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>: | |
38462 | Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'. | |
38463 | ||
38464 | 2020-01-10 David Malcolm <dmalcolm@redhat.com> | |
38465 | ||
38466 | * Makefile.in (OBJS): Add tree-diagnostic-path.o. | |
38467 | * common.opt (fdiagnostics-path-format=): New option. | |
38468 | (diagnostic_path_format): New enum. | |
38469 | (fdiagnostics-show-path-depths): New option. | |
38470 | * coretypes.h (diagnostic_event_id_t): New forward decl. | |
38471 | * diagnostic-color.c (color_dict): Add "path". | |
38472 | * diagnostic-event-id.h: New file. | |
38473 | * diagnostic-format-json.cc (json_from_expanded_location): Make | |
38474 | non-static. | |
38475 | (json_end_diagnostic): Call context->make_json_for_path if it | |
38476 | exists and the diagnostic has a path. | |
38477 | (diagnostic_output_format_init): Clear context->print_path. | |
38478 | * diagnostic-path.h: New file. | |
38479 | * diagnostic-show-locus.c (colorizer::set_range): Special-case | |
38480 | when printing a run of events in a diagnostic_path so that they | |
38481 | all get the same color. | |
38482 | (layout::m_diagnostic_path_p): New field. | |
38483 | (layout::layout): Initialize it. | |
38484 | (layout::print_any_labels): Don't colorize the label text for an | |
38485 | event in a diagnostic_path. | |
38486 | (gcc_rich_location::add_location_if_nearby): Add | |
38487 | "restrict_to_current_line_spans" and "label" params. Pass the | |
38488 | former to layout.maybe_add_location_range; pass the latter | |
38489 | when calling add_range. | |
38490 | * diagnostic.c: Include "diagnostic-path.h". | |
38491 | (diagnostic_initialize): Initialize context->path_format and | |
38492 | context->show_path_depths. | |
38493 | (diagnostic_show_any_path): New function. | |
38494 | (diagnostic_path::interprocedural_p): New function. | |
38495 | (diagnostic_report_diagnostic): Call diagnostic_show_any_path. | |
38496 | (simple_diagnostic_path::num_events): New function. | |
38497 | (simple_diagnostic_path::get_event): New function. | |
38498 | (simple_diagnostic_path::add_event): New function. | |
38499 | (simple_diagnostic_event::simple_diagnostic_event): New ctor. | |
38500 | (simple_diagnostic_event::~simple_diagnostic_event): New dtor. | |
38501 | (debug): New overload taking a diagnostic_path *. | |
38502 | * diagnostic.def (DK_DIAGNOSTIC_PATH): New. | |
38503 | * diagnostic.h (enum diagnostic_path_format): New enum. | |
38504 | (json::value): New forward decl. | |
38505 | (diagnostic_context::path_format): New field. | |
38506 | (diagnostic_context::show_path_depths): New field. | |
38507 | (diagnostic_context::print_path): New callback field. | |
38508 | (diagnostic_context::make_json_for_path): New callback field. | |
38509 | (diagnostic_show_any_path): New decl. | |
38510 | (json_from_expanded_location): New decl. | |
38511 | * doc/invoke.texi (-fdiagnostics-path-format=): New option. | |
38512 | (-fdiagnostics-show-path-depths): New option. | |
38513 | (-fdiagnostics-color): Add "path" to description of default | |
38514 | GCC_COLORS; describe it. | |
38515 | (-fdiagnostics-format=json): Document how diagnostic paths are | |
38516 | represented in the JSON output format. | |
38517 | * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): | |
38518 | Add optional params "restrict_to_current_line_spans" and "label". | |
38519 | * opts.c (common_handle_option): Handle | |
38520 | OPT_fdiagnostics_path_format_ and | |
38521 | OPT_fdiagnostics_show_path_depths. | |
38522 | * pretty-print.c: Include "diagnostic-event-id.h". | |
38523 | (pp_format): Implement "%@" format code for printing | |
38524 | diagnostic_event_id_t *. | |
38525 | (selftest::test_pp_format): Add tests for "%@". | |
38526 | * selftest-run-tests.c (selftest::run_tests): Call | |
38527 | selftest::tree_diagnostic_path_cc_tests. | |
38528 | * selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl. | |
38529 | * toplev.c (general_init): Initialize global_dc->path_format and | |
38530 | global_dc->show_path_depths. | |
38531 | * tree-diagnostic-path.cc: New file. | |
38532 | * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make | |
38533 | non-static. Drop "diagnostic" param in favor of storing the | |
38534 | original value of "where" and re-using it. | |
38535 | (virt_loc_aware_diagnostic_finalizer): Update for dropped param of | |
38536 | maybe_unwind_expanded_macro_loc. | |
38537 | (tree_diagnostics_defaults): Initialize context->print_path and | |
38538 | context->make_json_for_path. | |
38539 | * tree-diagnostic.h (default_tree_diagnostic_path_printer): New | |
38540 | decl. | |
38541 | (default_tree_make_json_for_path): New decl. | |
38542 | (maybe_unwind_expanded_macro_loc): New decl. | |
38543 | ||
38544 | 2020-01-10 Jakub Jelinek <jakub@redhat.com> | |
38545 | ||
38546 | PR tree-optimization/93210 | |
38547 | * fold-const.h (native_encode_initializer, | |
38548 | can_native_interpret_type_p): Declare. | |
38549 | * fold-const.c (native_encode_string): Fix up handling with off != -1, | |
38550 | simplify. | |
38551 | (native_encode_initializer): New function, moved from dwarf2out.c. | |
38552 | Adjust to native_encode_expr compatible arguments, including dry-run | |
38553 | and partial extraction modes. Don't handle STRING_CST. | |
38554 | (can_native_interpret_type_p): No longer static. | |
38555 | * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify | |
38556 | offset / BITS_PER_UNIT fits into int and don't call it if | |
38557 | can_native_interpret_type_p fails. If suboff is NULL and for | |
38558 | CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with | |
38559 | native_encode_initializer. | |
38560 | (fold_const_aggregate_ref_1): Formatting fix. | |
38561 | * dwarf2out.c (native_encode_initializer): Moved to fold-const.c. | |
38562 | (tree_add_const_value_attribute): Adjust caller. | |
38563 | ||
38564 | PR tree-optimization/90838 | |
38565 | * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use | |
38566 | SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of | |
38567 | CTZ_DEFINED_VALUE_AT_ZERO. | |
38568 | ||
38569 | 2020-01-10 Vladimir Makarov <vmakarov@redhat.com> | |
38570 | ||
38571 | PR inline-asm/93027 | |
38572 | * lra-constraints.c (match_reload): Permit input operands have the | |
38573 | same mode as output while other input operands have a different | |
38574 | mode. | |
38575 | ||
38576 | 2020-01-10 Wilco Dijkstra <wdijkstr@arm.com> | |
38577 | ||
38578 | PR tree-optimization/90838 | |
38579 | * tree-ssa-forwprop.c (check_ctz_array): Add new function. | |
38580 | (check_ctz_string): Likewise. | |
38581 | (optimize_count_trailing_zeroes): Likewise. | |
38582 | (simplify_count_trailing_zeroes): Likewise. | |
38583 | (pass_forwprop::execute): Try ctz simplification. | |
38584 | * match.pd: Add matching for ctz idioms. | |
38585 | ||
38586 | 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
38587 | ||
38588 | * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function | |
38589 | for target hook. | |
38590 | (aarch64_invalid_unary_op): New function for target hook. | |
38591 | (aarch64_invalid_binary_op): New function for target hook. | |
38592 | ||
38593 | 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
38594 | ||
38595 | * config.gcc: Add arm_bf16.h. | |
38596 | * config/aarch64/aarch64-builtins.c | |
38597 | (aarch64_simd_builtin_std_type): Add BFmode. | |
38598 | (aarch64_init_simd_builtin_types): Define element types for vector | |
38599 | types. | |
38600 | (aarch64_init_bf16_types): New function. | |
38601 | (aarch64_general_init_builtins): Add arm_init_bf16_types function call. | |
38602 | * config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector | |
38603 | modes. | |
38604 | * config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types. | |
38605 | * config/aarch64/aarch64-simd.md: Add BF vector types to NEON move | |
38606 | patterns. | |
38607 | * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF. | |
38608 | (AARCH64_VALID_SIMD_QREG_MODE): Add V8BF. | |
38609 | * config/aarch64/aarch64.c | |
38610 | (aarch64_classify_vector_mode): Add support for BF types. | |
38611 | (aarch64_gimplify_va_arg_expr): Add support for BF types. | |
38612 | (aarch64_vq_mode): Add support for BF types. | |
38613 | (aarch64_simd_container_mode): Add support for BF types. | |
38614 | (aarch64_mangle_type): Add support for BF scalar type. | |
38615 | * config/aarch64/aarch64.md: Add BFmode to movhf pattern. | |
38616 | * config/aarch64/arm_bf16.h: New file. | |
38617 | * config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types. | |
38618 | * config/aarch64/iterators.md: Add BF types to mode attributes. | |
38619 | (HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New. | |
38620 | ||
38621 | 2020-01-10 Jason Merrill <jason@redhat.com> | |
38622 | ||
38623 | PR c++/93173 - incorrect tree sharing. | |
38624 | * gimplify.c (copy_if_shared): No longer static. | |
38625 | * gimplify.h: Declare it. | |
38626 | ||
38627 | 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
38628 | ||
38629 | * doc/invoke.texi (-msve-vector-bits=): Document that | |
38630 | -msve-vector-bits=128 now generates VL-specific code for | |
38631 | little-endian targets. | |
38632 | * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use | |
38633 | build_vector_type_for_mode to construct the data vector types. | |
38634 | * config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate | |
38635 | VL-specific code for -msve-vector-bits=128 on little-endian targets. | |
38636 | (aarch64_simd_container_mode): Always prefer Advanced SIMD modes | |
38637 | for 128-bit vectors. | |
38638 | ||
38639 | 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
38640 | ||
38641 | * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask | |
38642 | invocation. | |
38643 | ||
38644 | 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
38645 | ||
38646 | * config/aarch64/aarch64-builtins.c | |
38647 | (aarch64_builtin_vectorized_function): Check for specific vector modes, | |
38648 | rather than checking the number of elements and the element mode. | |
38649 | ||
38650 | 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
38651 | ||
38652 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Use | |
38653 | get_related_vectype_for_scalar_type rather than build_vector_type | |
38654 | to create the index type for a conditional reduction. | |
38655 | ||
38656 | 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
38657 | ||
38658 | * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF | |
38659 | for any type of gather or scatter, including strided accesses. | |
38660 | ||
38661 | 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
38662 | ||
38663 | * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function | |
38664 | comment. | |
38665 | ||
38666 | 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
38667 | ||
38668 | * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use | |
38669 | get_dr_vinfo_offset | |
38670 | * tree-vect-loop.c (update_epilogue_loop_vinfo): Remove orig_drs_init | |
38671 | parameter and its use to reset DR_OFFSET's. | |
38672 | (vect_transform_loop): Remove orig_drs_init argument. | |
38673 | * tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset | |
38674 | member of dr_vec_info rather than the offset of the associated | |
38675 | data_reference's innermost_loop_behavior. | |
38676 | (vect_update_init_of_dr): Pass dr_vec_info instead of data_reference. | |
38677 | (vect_do_peeling): Remove orig_drs_init parameter and its construction. | |
38678 | * tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with | |
38679 | get_dr_vinfo_offset. | |
38680 | (vectorizable_store): Likewise. | |
38681 | (vectorizable_load): Likewise. | |
38682 | ||
38683 | 2020-01-10 Richard Biener <rguenther@suse.de> | |
38684 | ||
38685 | * gimple-ssa-store-merging | |
38686 | (pass_store_merging::terminate_all_aliasing_chains): Cache alias info. | |
38687 | ||
38688 | 2020-01-10 Martin Liska <mliska@suse.cz> | |
38689 | ||
38690 | PR ipa/93217 | |
38691 | * ipa-inline-analysis.c (offline_size): Make proper parenthesis | |
38692 | encapsulation that was there before r280040. | |
38693 | ||
38694 | 2020-01-10 Richard Biener <rguenther@suse.de> | |
38695 | ||
38696 | PR middle-end/93199 | |
38697 | * tree-eh.c (sink_clobbers): Move clobbers to out-of-IL | |
38698 | sequences to avoid walking them again for secondary opportunities. | |
38699 | (pass_lower_eh_dispatch::execute): Instead actually insert | |
38700 | them here. | |
38701 | ||
38702 | 2020-01-10 Richard Biener <rguenther@suse.de> | |
38703 | ||
38704 | PR middle-end/93199 | |
38705 | * tree-eh.c (redirect_eh_edge_1): Avoid some work if possible. | |
38706 | (cleanup_all_empty_eh): Walk landing pads in reverse order to | |
38707 | avoid quadraticness. | |
38708 | ||
38709 | 2020-01-10 Martin Jambor <mjambor@suse.cz> | |
38710 | ||
38711 | * params.opt (param_ipa_sra_max_replacements): Mark as Optimization. | |
38712 | * ipa-sra.c (pull_accesses_from_callee): New parameter caller, use it | |
38713 | to get param_ipa_sra_max_replacements. | |
38714 | (param_splitting_across_edge): Pass the caller to | |
38715 | pull_accesses_from_callee. | |
38716 | ||
38717 | 2020-01-10 Martin Jambor <mjambor@suse.cz> | |
38718 | ||
38719 | * params.opt (param_ipcp_unit_growth): Mark as Optimization. | |
38720 | * ipa-cp.c (max_new_size): Removed. | |
38721 | (orig_overall_size): New variable. | |
38722 | (get_max_overall_size): New function. | |
38723 | (estimate_local_effects): Use it. Adjust dump. | |
38724 | (decide_about_value): Likewise. | |
38725 | (ipcp_propagate_stage): Do not calculate max_new_size, just store | |
38726 | orig_overall_size. Adjust dump. | |
38727 | (ipa_cp_c_finalize): Clear orig_overall_size instead of max_new_size. | |
38728 | ||
38729 | 2020-01-10 Martin Jambor <mjambor@suse.cz> | |
38730 | ||
38731 | * params.opt (param_ipa_max_agg_items): Mark as Optimization | |
38732 | * ipa-cp.c (merge_agg_lats_step): New parameter max_agg_items, use | |
38733 | instead of param_ipa_max_agg_items. | |
38734 | (merge_aggregate_lattices): Extract param_ipa_max_agg_items from | |
38735 | optimization info for the callee. | |
38736 | ||
38737 | 2020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com> | |
38738 | ||
38739 | * lto-streamer-in.c (input_function): Remove streamed-in inline debug | |
38740 | markers if debug_inline_points is false. | |
38741 | ||
38742 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
38743 | ||
38744 | * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to | |
38745 | extra_objs. | |
38746 | * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on | |
38747 | aarch64-sve-builtins-base.def, aarch64-sve-builtins-sve2.def and | |
38748 | aarch64-sve-builtins-sve2.h. | |
38749 | (aarch64-sve-builtins-sve2.o): New rule. | |
38750 | * config/aarch64/aarch64.h (AARCH64_ISA_SVE2_AES): New macro. | |
38751 | (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3): Likewise. | |
38752 | (AARCH64_ISA_SVE2_SM4, TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Likewise. | |
38753 | (TARGET_SVE2_SHA, TARGET_SVE2_SM4): Likewise. | |
38754 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle | |
38755 | TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3 and | |
38756 | TARGET_SVE2_SM4. | |
38757 | * config/aarch64/aarch64-sve.md: Update comments with SVE2 | |
38758 | instructions that are handled here. | |
38759 | (@cond_asrd<mode>): Generalize to... | |
38760 | (@cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>): ...this. | |
38761 | (*cond_asrd<mode>_2): Generalize to... | |
38762 | (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_2): ...this. | |
38763 | (*cond_asrd<mode>_z): Generalize to... | |
38764 | (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_z): ...this. | |
38765 | * config/aarch64/aarch64.md (UNSPEC_LDNT1_GATHER): New unspec. | |
38766 | (UNSPEC_STNT1_SCATTER, UNSPEC_WHILEGE, UNSPEC_WHILEGT): Likewise. | |
38767 | (UNSPEC_WHILEHI, UNSPEC_WHILEHS): Likewise. | |
38768 | * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): New | |
38769 | pattern. | |
38770 | (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>) | |
38771 | (@aarch64_scatter_stnt<mode>): Likewise. | |
38772 | (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>) | |
38773 | (@aarch64_mul_lane_<mode>): Likewise. | |
38774 | (@aarch64_sve_suqadd<mode>_const): Likewise. | |
38775 | (*<sur>h<addsub><mode>): Generalize to... | |
38776 | (@aarch64_pred_<SVE2_COND_INT_BINARY_REV:sve_int_op><mode>): ...this | |
38777 | new pattern. | |
38778 | (@cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>): New expander. | |
38779 | (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_2): New pattern. | |
38780 | (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_3): Likewise. | |
38781 | (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_any): Likewise. | |
38782 | (*cond_<SVE2_COND_INT_BINARY_NOREV:sve_int_op><mode>_z): Likewise. | |
38783 | (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op><mode>):: Likewise. | |
38784 | (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op>_lane_<mode>): Likewise. | |
38785 | (@aarch64_pred_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): Likewise. | |
38786 | (@cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): New expander. | |
38787 | (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_2): New pattern. | |
38788 | (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_3): Likewise. | |
38789 | (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_any): Likewise. | |
38790 | (@aarch64_sve_<SVE2_INT_TERNARY:sve_int_op><mode>): Likewise. | |
38791 | (@aarch64_sve_<SVE2_INT_TERNARY_LANE:sve_int_op>_lane_<mode>) | |
38792 | (@aarch64_sve_add_mul_lane_<mode>): Likewise. | |
38793 | (@aarch64_sve_sub_mul_lane_<mode>): Likewise. | |
38794 | (@aarch64_sve2_xar<mode>): Likewise. | |
38795 | (@aarch64_sve2_bcax<mode>): Likewise. | |
38796 | (*aarch64_sve2_eor3<mode>): Rename to... | |
38797 | (@aarch64_sve2_eor3<mode>): ...this. | |
38798 | (@aarch64_sve2_bsl<mode>): New expander. | |
38799 | (@aarch64_sve2_nbsl<mode>): Likewise. | |
38800 | (@aarch64_sve2_bsl1n<mode>): Likewise. | |
38801 | (@aarch64_sve2_bsl2n<mode>): Likewise. | |
38802 | (@aarch64_sve_add_<SHIFTRT:sve_int_op><mode>): Likewise. | |
38803 | (*aarch64_sve2_sra<mode>): Add MOVPRFX support. | |
38804 | (@aarch64_sve_add_<VRSHR_N:sve_int_op><mode>): New pattern. | |
38805 | (@aarch64_sve_<SVE2_INT_SHIFT_INSERT:sve_int_op><mode>): Likewise. | |
38806 | (@aarch64_sve2_<USMAX:su>aba<mode>): New expander. | |
38807 | (*aarch64_sve2_<USMAX:su>aba<mode>): New pattern. | |
38808 | (@aarch64_sve_<SVE2_INT_BINARY_WIDE:sve_int_op><mode>): Likewise. | |
38809 | (<su>mull<bt><Vwide>): Generalize to... | |
38810 | (@aarch64_sve_<SVE2_INT_BINARY_LONG:sve_int_op><mode>): ...this new | |
38811 | pattern. | |
38812 | (@aarch64_sve_<SVE2_INT_BINARY_LONG_lANE:sve_int_op>_lane_<mode>) | |
38813 | (@aarch64_sve_<SVE2_INT_SHIFT_IMM_LONG:sve_int_op><mode>) | |
38814 | (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG:sve_int_op><mode>) | |
38815 | (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) | |
38816 | (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG:sve_int_op><mode>) | |
38817 | (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) | |
38818 | (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG:sve_int_op><mode>) | |
38819 | (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) | |
38820 | (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG:sve_int_op><mode>) | |
38821 | (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) | |
38822 | (@aarch64_sve_<SVE2_FP_TERNARY_LONG:sve_fp_op><mode>): New patterns. | |
38823 | (@aarch64_<SVE2_FP_TERNARY_LONG_LANE:sve_fp_op>_lane_<mode>) | |
38824 | (@aarch64_sve_<SVE2_INT_UNARY_NARROWB:sve_int_op><mode>): Likewise. | |
38825 | (@aarch64_sve_<SVE2_INT_UNARY_NARROWT:sve_int_op><mode>): Likewise. | |
38826 | (@aarch64_sve_<SVE2_INT_BINARY_NARROWB:sve_int_op><mode>): Likewise. | |
38827 | (@aarch64_sve_<SVE2_INT_BINARY_NARROWT:sve_int_op><mode>): Likewise. | |
38828 | (<SHRNB:r>shrnb<mode>): Generalize to... | |
38829 | (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWB:sve_int_op><mode>): ...this | |
38830 | new pattern. | |
38831 | (<SHRNT:r>shrnt<mode>): Generalize to... | |
38832 | (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this | |
38833 | new pattern. | |
38834 | (@aarch64_pred_<SVE2_INT_BINARY_PAIR:sve_int_op><mode>): New pattern. | |
38835 | (@aarch64_pred_<SVE2_FP_BINARY_PAIR:sve_fp_op><mode>): Likewise. | |
38836 | (@cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>): New expander. | |
38837 | (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_2): New pattern. | |
38838 | (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_z): Likewise. | |
38839 | (@aarch64_sve_<SVE2_INT_CADD:optab><mode>): Likewise. | |
38840 | (@aarch64_sve_<SVE2_INT_CMLA:optab><mode>): Likewise. | |
38841 | (@aarch64_<SVE2_INT_CMLA:optab>_lane_<mode>): Likewise. | |
38842 | (@aarch64_sve_<SVE2_INT_CDOT:optab><mode>): Likewise. | |
38843 | (@aarch64_<SVE2_INT_CDOT:optab>_lane_<mode>): Likewise. | |
38844 | (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise. | |
38845 | (@cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New expander. | |
38846 | (*cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New pattern. | |
38847 | (@aarch64_sve2_cvtnt<mode>): Likewise. | |
38848 | (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise. | |
38849 | (@cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): New expander. | |
38850 | (*cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>_any): New pattern. | |
38851 | (@aarch64_sve2_cvtxnt<mode>): Likewise. | |
38852 | (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise. | |
38853 | (@cond_<SVE2_U32_UNARY:sve_int_op><mode>): New expander. | |
38854 | (*cond_<SVE2_U32_UNARY:sve_int_op><mode>): New pattern. | |
38855 | (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise. | |
38856 | (@cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New expander. | |
38857 | (*cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New pattern. | |
38858 | (@aarch64_sve2_pmul<mode>): Likewise. | |
38859 | (@aarch64_sve_<SVE2_PMULL:optab><mode>): Likewise. | |
38860 | (@aarch64_sve_<SVE2_PMULL_PAIR:optab><mode>): Likewise. | |
38861 | (@aarch64_sve2_tbl2<mode>): Likewise. | |
38862 | (@aarch64_sve2_tbx<mode>): Likewise. | |
38863 | (@aarch64_sve_<SVE2_INT_BITPERM:sve_int_op><mode>): Likewise. | |
38864 | (@aarch64_sve2_histcnt<mode>): Likewise. | |
38865 | (@aarch64_sve2_histseg<mode>): Likewise. | |
38866 | (@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise. | |
38867 | (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise. | |
38868 | (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise. | |
38869 | (aarch64_sve2_aes<CRYPTO_AES:aes_op>): Likewise. | |
38870 | (aarch64_sve2_aes<CRYPTO_AESMC:aesmc_op>): Likewise. | |
38871 | (*aarch64_sve2_aese_fused, *aarch64_sve2_aesd_fused): Likewise. | |
38872 | (aarch64_sve2_rax1, aarch64_sve2_sm4e, aarch64_sve2_sm4ekey): Likewise. | |
38873 | (<su>mulh<r>s<mode>3): Update after above pattern name changes. | |
38874 | * config/aarch64/iterators.md (VNx16QI_ONLY, VNx4SF_ONLY) | |
38875 | (SVE_STRUCT2, SVE_FULL_BHI, SVE_FULL_HSI, SVE_FULL_HDI) | |
38876 | (SVE2_PMULL_PAIR_I): New mode iterators. | |
38877 | (UNSPEC_ADCLB, UNSPEC_ADCLT, UNSPEC_ADDHNB, UNSPEC_ADDHNT, UNSPEC_BDEP) | |
38878 | (UNSPEC_BEXT, UNSPEC_BGRP, UNSPEC_CADD90, UNSPEC_CADD270, UNSPEC_CDOT) | |
38879 | (UNSPEC_CDOT90, UNSPEC_CDOT180, UNSPEC_CDOT270, UNSPEC_CMLA) | |
38880 | (UNSPEC_CMLA90, UNSPEC_CMLA180, UNSPEC_CMLA270, UNSPEC_COND_FCVTLT) | |
38881 | (UNSPEC_COND_FCVTNT, UNSPEC_COND_FCVTX, UNSPEC_COND_FCVTXNT) | |
38882 | (UNSPEC_COND_FLOGB, UNSPEC_EORBT, UNSPEC_EORTB, UNSPEC_FADDP) | |
38883 | (UNSPEC_FMAXP, UNSPEC_FMAXNMP, UNSPEC_FMLALB, UNSPEC_FMLALT) | |
38884 | (UNSPEC_FMLSLB, UNSPEC_FMLSLT, UNSPEC_FMINP, UNSPEC_FMINNMP) | |
38885 | (UNSPEC_HISTCNT, UNSPEC_HISTSEG, UNSPEC_MATCH, UNSPEC_NMATCH) | |
38886 | (UNSPEC_PMULLB, UNSPEC_PMULLB_PAIR, UNSPEC_PMULLT, UNSPEC_PMULLT_PAIR) | |
38887 | (UNSPEC_RADDHNB, UNSPEC_RADDHNT, UNSPEC_RSUBHNB, UNSPEC_RSUBHNT) | |
38888 | (UNSPEC_SLI, UNSPEC_SRI, UNSPEC_SABDLB, UNSPEC_SABDLT, UNSPEC_SADDLB) | |
38889 | (UNSPEC_SADDLBT, UNSPEC_SADDLT, UNSPEC_SADDWB, UNSPEC_SADDWT) | |
38890 | (UNSPEC_SBCLB, UNSPEC_SBCLT, UNSPEC_SMAXP, UNSPEC_SMINP) | |
38891 | (UNSPEC_SQCADD90, UNSPEC_SQCADD270, UNSPEC_SQDMULLB, UNSPEC_SQDMULLBT) | |
38892 | (UNSPEC_SQDMULLT, UNSPEC_SQRDCMLAH, UNSPEC_SQRDCMLAH90) | |
38893 | (UNSPEC_SQRDCMLAH180, UNSPEC_SQRDCMLAH270, UNSPEC_SQRSHRNB) | |
38894 | (UNSPEC_SQRSHRNT, UNSPEC_SQRSHRUNB, UNSPEC_SQRSHRUNT, UNSPEC_SQSHRNB) | |
38895 | (UNSPEC_SQSHRNT, UNSPEC_SQSHRUNB, UNSPEC_SQSHRUNT, UNSPEC_SQXTNB) | |
38896 | (UNSPEC_SQXTNT, UNSPEC_SQXTUNB, UNSPEC_SQXTUNT, UNSPEC_SSHLLB) | |
38897 | (UNSPEC_SSHLLT, UNSPEC_SSUBLB, UNSPEC_SSUBLBT, UNSPEC_SSUBLT) | |
38898 | (UNSPEC_SSUBLTB, UNSPEC_SSUBWB, UNSPEC_SSUBWT, UNSPEC_SUBHNB) | |
38899 | (UNSPEC_SUBHNT, UNSPEC_TBL2, UNSPEC_UABDLB, UNSPEC_UABDLT) | |
38900 | (UNSPEC_UADDLB, UNSPEC_UADDLT, UNSPEC_UADDWB, UNSPEC_UADDWT) | |
38901 | (UNSPEC_UMAXP, UNSPEC_UMINP, UNSPEC_UQRSHRNB, UNSPEC_UQRSHRNT) | |
38902 | (UNSPEC_UQSHRNB, UNSPEC_UQSHRNT, UNSPEC_UQXTNB, UNSPEC_UQXTNT) | |
38903 | (UNSPEC_USHLLB, UNSPEC_USHLLT, UNSPEC_USUBLB, UNSPEC_USUBLT) | |
38904 | (UNSPEC_USUBWB, UNSPEC_USUBWT): New unspecs. | |
38905 | (UNSPEC_SMULLB, UNSPEC_SMULLT, UNSPEC_UMULLB, UNSPEC_UMULLT) | |
38906 | (UNSPEC_SMULHS, UNSPEC_SMULHRS, UNSPEC_UMULHS, UNSPEC_UMULHRS) | |
38907 | (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SHRNB, UNSPEC_SHRNT): Move | |
38908 | further down file. | |
38909 | (VNARROW, Ventype): New mode attributes. | |
38910 | (Vewtype): Handle VNx2DI. Fix typo in comment. | |
38911 | (VDOUBLE): New mode attribute. | |
38912 | (sve_lane_con): Handle VNx8HI. | |
38913 | (SVE_INT_UNARY): Include ss_abs and ss_neg for TARGET_SVE2. | |
38914 | (SVE_INT_BINARY): Likewise ss_plus, us_plus, ss_minus and us_minus. | |
38915 | (sve_int_op, sve_int_op_rev): Handle the above codes. | |
38916 | (sve_pred_int_rhs2_operand): Likewise. | |
38917 | (MULLBT, SHRNB, SHRNT): Delete. | |
38918 | (SVE_INT_SHIFT_IMM): New int iterator. | |
38919 | (SVE_WHILE): Add UNSPEC_WHILEGE, UNSPEC_WHILEGT, UNSPEC_WHILEHI | |
38920 | and UNSPEC_WHILEHS for TARGET_SVE2. | |
38921 | (SVE2_U32_UNARY, SVE2_INT_UNARY_NARROWB, SVE2_INT_UNARY_NARROWT) | |
38922 | (SVE2_INT_BINARY, SVE2_INT_BINARY_LANE, SVE2_INT_BINARY_LONG) | |
38923 | (SVE2_INT_BINARY_LONG_LANE, SVE2_INT_BINARY_NARROWB) | |
38924 | (SVE2_INT_BINARY_NARROWT, SVE2_INT_BINARY_PAIR, SVE2_FP_BINARY_PAIR) | |
38925 | (SVE2_INT_BINARY_PAIR_LONG, SVE2_INT_BINARY_WIDE): New int iterators. | |
38926 | (SVE2_INT_SHIFT_IMM_LONG, SVE2_INT_SHIFT_IMM_NARROWB): Likewise. | |
38927 | (SVE2_INT_SHIFT_IMM_NARROWT, SVE2_INT_SHIFT_INSERT, SVE2_INT_CADD) | |
38928 | (SVE2_INT_BITPERM, SVE2_INT_TERNARY, SVE2_INT_TERNARY_LANE): Likewise. | |
38929 | (SVE2_FP_TERNARY_LONG, SVE2_FP_TERNARY_LONG_LANE, SVE2_INT_CMLA) | |
38930 | (SVE2_INT_CDOT, SVE2_INT_ADD_BINARY_LONG, SVE2_INT_QADD_BINARY_LONG) | |
38931 | (SVE2_INT_SUB_BINARY_LONG, SVE2_INT_QSUB_BINARY_LONG): Likewise. | |
38932 | (SVE2_INT_ADD_BINARY_LONG_LANE, SVE2_INT_QADD_BINARY_LONG_LANE) | |
38933 | (SVE2_INT_SUB_BINARY_LONG_LANE, SVE2_INT_QSUB_BINARY_LONG_LANE) | |
38934 | (SVE2_COND_INT_UNARY_FP, SVE2_COND_FP_UNARY_LONG): Likewise. | |
38935 | (SVE2_COND_FP_UNARY_NARROWB, SVE2_COND_INT_BINARY): Likewise. | |
38936 | (SVE2_COND_INT_BINARY_NOREV, SVE2_COND_INT_BINARY_REV): Likewise. | |
38937 | (SVE2_COND_INT_SHIFT, SVE2_MATCH, SVE2_PMULL): Likewise. | |
38938 | (optab): Handle the new unspecs. | |
38939 | (su, r): Remove entries for UNSPEC_SHRNB, UNSPEC_SHRNT, UNSPEC_RSHRNB | |
38940 | and UNSPEC_RSHRNT. | |
38941 | (lr): Handle the new unspecs. | |
38942 | (bt): Delete. | |
38943 | (cmp_op, while_optab_cmp, sve_int_op): Handle the new unspecs. | |
38944 | (sve_int_op_rev, sve_int_add_op, sve_int_qadd_op, sve_int_sub_op) | |
38945 | (sve_int_qsub_op): New int attributes. | |
38946 | (sve_fp_op, rot): Handle the new unspecs. | |
38947 | * config/aarch64/aarch64-sve-builtins.h | |
38948 | (function_resolver::require_matching_pointer_type): Declare. | |
38949 | (function_resolver::resolve_unary): Add an optional boolean argument. | |
38950 | (function_resolver::finish_opt_n_resolution): Add an optional | |
38951 | type_suffix_index argument. | |
38952 | (gimple_folder::redirect_call): Declare. | |
38953 | (gimple_expander::prepare_gather_address_operands): Add an optional | |
38954 | bool parameter. | |
38955 | * config/aarch64/aarch64-sve-builtins.cc: Include | |
38956 | aarch64-sve-builtins-sve2.h. | |
38957 | (TYPES_b_unsigned, TYPES_b_integer, TYPES_bh_integer): New macros. | |
38958 | (TYPES_bs_unsigned, TYPES_hs_signed, TYPES_hs_integer): Likewise. | |
38959 | (TYPES_hd_unsigned, TYPES_hsd_signed): Likewise. | |
38960 | (TYPES_hsd_integer): Use TYPES_hsd_signed. | |
38961 | (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): New macros. | |
38962 | (TYPES_s_unsigned): Likewise. | |
38963 | (TYPES_s_integer): Use TYPES_s_unsigned. | |
38964 | (TYPES_sd_signed, TYPES_sd_unsigned): New macros. | |
38965 | (TYPES_sd_integer): Use them. | |
38966 | (TYPES_d_unsigned): New macro. | |
38967 | (TYPES_d_integer): Use it. | |
38968 | (TYPES_d_data, TYPES_cvt_long, TYPES_cvt_narrow_s): New macros. | |
38969 | (TYPES_cvt_narrow): Likewise. | |
38970 | (DEF_SVE_TYPES_ARRAY): Include the new types macros above. | |
38971 | (preds_mx): New variable. | |
38972 | (function_builder::add_overloaded_function): Allow the new feature | |
38973 | set to be more restrictive than the original one. | |
38974 | (function_resolver::infer_pointer_type): Remove qualifiers from | |
38975 | the pointer type before printing it. | |
38976 | (function_resolver::require_matching_pointer_type): New function. | |
38977 | (function_resolver::resolve_sv_displacement): Handle functions | |
38978 | that don't support 32-bit vector indices or svint32_t vector offsets. | |
38979 | (function_resolver::finish_opt_n_resolution): Take the inferred type | |
38980 | as a separate argument. | |
38981 | (function_resolver::resolve_unary): Optionally treat all forms in | |
38982 | the same way as normal merging functions. | |
38983 | (gimple_folder::redirect_call): New function. | |
38984 | (function_expander::prepare_gather_address_operands): Add an argument | |
38985 | that says whether scaled forms are available. If they aren't, | |
38986 | handle scaling of vector indices and don't add the extension and | |
38987 | scaling operands. | |
38988 | (function_expander::map_to_unspecs): If aarch64_sve isn't available, | |
38989 | fall back to using cond_* instead. | |
38990 | * config/aarch64/aarch64-sve-builtins-functions.h (rtx_code_function): | |
38991 | Split out the member variables into... | |
38992 | (rtx_code_function_base): ...this new base class. | |
38993 | (rtx_code_function_rotated): Inherit rtx_code_function_base. | |
38994 | (unspec_based_function): Split out the member variables into... | |
38995 | (unspec_based_function_base): ...this new base class. | |
38996 | (unspec_based_function_rotated): Inherit unspec_based_function_base. | |
38997 | (unspec_based_function_exact_insn): New class. | |
38998 | (unspec_based_add_function, unspec_based_add_lane_function) | |
38999 | (unspec_based_lane_function, unspec_based_pred_function) | |
39000 | (unspec_based_qadd_function, unspec_based_qadd_lane_function) | |
39001 | (unspec_based_qsub_function, unspec_based_qsub_lane_function) | |
39002 | (unspec_based_sub_function, unspec_based_sub_lane_function): New | |
39003 | typedefs. | |
39004 | (unspec_based_fused_function): New class. | |
39005 | (unspec_based_mla_function, unspec_based_mls_function): New typedefs. | |
39006 | (unspec_based_fused_lane_function): New class. | |
39007 | (unspec_based_mla_lane_function, unspec_based_mls_lane_function): New | |
39008 | typedefs. | |
39009 | (CODE_FOR_MODE1): New macro. | |
39010 | (fixed_insn_function): New class. | |
39011 | (while_comparison): Likewise. | |
39012 | * config/aarch64/aarch64-sve-builtins-shapes.h (binary_long_lane) | |
39013 | (binary_long_opt_n, binary_narrowb_opt_n, binary_narrowt_opt_n) | |
39014 | (binary_to_uint, binary_wide, binary_wide_opt_n, compare, compare_ptr) | |
39015 | (load_ext_gather_index_restricted, load_ext_gather_offset_restricted) | |
39016 | (load_gather_sv_restricted, shift_left_imm_long): Declare. | |
39017 | (shift_left_imm_to_uint, shift_right_imm_narrowb): Likewise. | |
39018 | (shift_right_imm_narrowt, shift_right_imm_narrowb_to_uint): Likewise. | |
39019 | (shift_right_imm_narrowt_to_uint, store_scatter_index_restricted) | |
39020 | (store_scatter_offset_restricted, tbl_tuple, ternary_long_lane) | |
39021 | (ternary_long_opt_n, ternary_qq_lane_rotate, ternary_qq_rotate) | |
39022 | (ternary_shift_left_imm, ternary_shift_right_imm, ternary_uint) | |
39023 | (unary_convert_narrowt, unary_long, unary_narrowb, unary_narrowt) | |
39024 | (unary_narrowb_to_uint, unary_narrowt_to_uint, unary_to_int): Likewise. | |
39025 | * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication): | |
39026 | Also add an initial argument for unary_convert_narrowt, regardless | |
39027 | of the predication type. | |
39028 | (build_32_64): Allow loads and stores to specify MODE_none. | |
39029 | (build_sv_index64, build_sv_uint_offset): New functions. | |
39030 | (long_type_suffix): New function. | |
39031 | (binary_imm_narrowb_base, binary_imm_narrowt_base): New classes. | |
39032 | (binary_imm_long_base, load_gather_sv_base): Likewise. | |
39033 | (shift_right_imm_narrow_wrapper, ternary_shift_imm_base): Likewise. | |
39034 | (ternary_resize2_opt_n_base, ternary_resize2_lane_base): Likewise. | |
39035 | (unary_narrowb_base, unary_narrowt_base): Likewise. | |
39036 | (binary_long_lane_def, binary_long_lane): New shape. | |
39037 | (binary_long_opt_n_def, binary_long_opt_n): Likewise. | |
39038 | (binary_narrowb_opt_n_def, binary_narrowb_opt_n): Likewise. | |
39039 | (binary_narrowt_opt_n_def, binary_narrowt_opt_n): Likewise. | |
39040 | (binary_to_uint_def, binary_to_uint): Likewise. | |
39041 | (binary_wide_def, binary_wide): Likewise. | |
39042 | (binary_wide_opt_n_def, binary_wide_opt_n): Likewise. | |
39043 | (compare_def, compare): Likewise. | |
39044 | (compare_ptr_def, compare_ptr): Likewise. | |
39045 | (load_ext_gather_index_restricted_def, | |
39046 | load_ext_gather_index_restricted): Likewise. | |
39047 | (load_ext_gather_offset_restricted_def, | |
39048 | load_ext_gather_offset_restricted): Likewise. | |
39049 | (load_gather_sv_def): Inherit from load_gather_sv_base. | |
39050 | (load_gather_sv_restricted_def, load_gather_sv_restricted): New shape. | |
39051 | (shift_left_imm_def, shift_left_imm): Likewise. | |
39052 | (shift_left_imm_long_def, shift_left_imm_long): Likewise. | |
39053 | (shift_left_imm_to_uint_def, shift_left_imm_to_uint): Likewise. | |
39054 | (store_scatter_index_restricted_def, | |
39055 | store_scatter_index_restricted): Likewise. | |
39056 | (store_scatter_offset_restricted_def, | |
39057 | store_scatter_offset_restricted): Likewise. | |
39058 | (tbl_tuple_def, tbl_tuple): Likewise. | |
39059 | (ternary_long_lane_def, ternary_long_lane): Likewise. | |
39060 | (ternary_long_opt_n_def, ternary_long_opt_n): Likewise. | |
39061 | (ternary_qq_lane_def): Inherit from ternary_resize2_lane_base. | |
39062 | (ternary_qq_lane_rotate_def, ternary_qq_lane_rotate): New shape | |
39063 | (ternary_qq_opt_n_def): Inherit from ternary_resize2_opt_n_base. | |
39064 | (ternary_qq_rotate_def, ternary_qq_rotate): New shape. | |
39065 | (ternary_shift_left_imm_def, ternary_shift_left_imm): Likewise. | |
39066 | (ternary_shift_right_imm_def, ternary_shift_right_imm): Likewise. | |
39067 | (ternary_uint_def, ternary_uint): Likewise. | |
39068 | (unary_convert): Fix typo in comment. | |
39069 | (unary_convert_narrowt_def, unary_convert_narrowt): New shape. | |
39070 | (unary_long_def, unary_long): Likewise. | |
39071 | (unary_narrowb_def, unary_narrowb): Likewise. | |
39072 | (unary_narrowt_def, unary_narrowt): Likewise. | |
39073 | (unary_narrowb_to_uint_def, unary_narrowb_to_uint): Likewise. | |
39074 | (unary_narrowt_to_uint_def, unary_narrowt_to_uint): Likewise. | |
39075 | (unary_to_int_def, unary_to_int): Likewise. | |
39076 | * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla) | |
39077 | (unspec_fcmla, unspec_cond_fcmla, expand_mla_mls_lane): New functions. | |
39078 | (svasrd_impl): Delete. | |
39079 | (svcadd_impl::expand): Handle integer operations too. | |
39080 | (svcmla_impl::expand, svcmla_lane::expand): Likewise, using the | |
39081 | new functions to derive the unspec numbers. | |
39082 | (svmla_svmls_lane_impl): Replace with... | |
39083 | (svmla_lane_impl, svmls_lane_impl): ...these new classes. Handle | |
39084 | integer operations too. | |
39085 | (svwhile_impl): Rename to... | |
39086 | (svwhilelx_impl): ...this and inherit from while_comparison. | |
39087 | (svasrd): Use unspec_based_function. | |
39088 | (svmla_lane): Use svmla_lane_impl. | |
39089 | (svmls_lane): Use svmls_lane_impl. | |
39090 | (svrecpe, svrsqrte): Handle unsigned integer operations too. | |
39091 | (svwhilele, svwhilelt): Use svwhilelx_impl. | |
39092 | * config/aarch64/aarch64-sve-builtins-sve2.h: New file. | |
39093 | * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise. | |
39094 | * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise. | |
39095 | * config/aarch64/aarch64-sve-builtins.def: Include | |
39096 | aarch64-sve-builtins-sve2.def. | |
39097 | ||
39098 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39099 | ||
39100 | * config/aarch64/aarch64-protos.h (aarch64_sve_arith_immediate_p) | |
39101 | (aarch64_sve_sqadd_sqsub_immediate_p): Add a machine_mode argument. | |
39102 | * config/aarch64/aarch64.c (aarch64_sve_arith_immediate_p) | |
39103 | (aarch64_sve_sqadd_sqsub_immediate_p): Likewise. Handle scalar | |
39104 | immediates as well as vector ones. | |
39105 | * config/aarch64/predicates.md (aarch64_sve_arith_immediate) | |
39106 | (aarch64_sve_sub_arith_immediate, aarch64_sve_qadd_immediate) | |
39107 | (aarch64_sve_qsub_immediate): Update calls accordingly. | |
39108 | ||
39109 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39110 | ||
39111 | * config/aarch64/aarch64-sve2.md: Add banner comments. | |
39112 | (<su>mulh<r>s<mode>3): Move further up file. | |
39113 | (<su>mull<bt><Vwide>, <r>shrnb<mode>, <r>shrnt<mode>) | |
39114 | (*aarch64_sve2_sra<mode>): Move further down file. | |
39115 | * config/aarch64/t-aarch64 (s-check-sve-md): Check aarch64-sve2.md too. | |
39116 | ||
39117 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39118 | ||
39119 | * config/aarch64/iterators.md (SVE_WHILE): Add UNSPEC_WHILERW | |
39120 | and UNSPEC_WHILEWR. | |
39121 | (while_optab_cmp): Handle them. | |
39122 | * config/aarch64/aarch64-sve.md | |
39123 | (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): Make public | |
39124 | and add a "@" marker. | |
39125 | * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): Use it | |
39126 | instead of gen_aarch64_sve2_while_ptest. | |
39127 | (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): Delete. | |
39128 | ||
39129 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39130 | ||
39131 | * config/aarch64/aarch64.md (UNSPEC_WHILE_LE): Rename to... | |
39132 | (UNSPEC_WHILELE): ...this. | |
39133 | (UNSPEC_WHILE_LO): Rename to... | |
39134 | (UNSPEC_WHILELO): ...this. | |
39135 | (UNSPEC_WHILE_LS): Rename to... | |
39136 | (UNSPEC_WHILELS): ...this. | |
39137 | (UNSPEC_WHILE_LT): Rename to... | |
39138 | (UNSPEC_WHILELT): ...this. | |
39139 | * config/aarch64/iterators.md (SVE_WHILE): Update accordingly. | |
39140 | (cmp_op, while_optab_cmp): Likewise. | |
39141 | * config/aarch64/aarch64.c (aarch64_sve_move_pred_via_while): Likewise. | |
39142 | * config/aarch64/aarch64-sve-builtins-base.cc (svwhilele): Likewise. | |
39143 | (svwhilelt): Likewise. | |
39144 | ||
39145 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39146 | ||
39147 | * config/aarch64/aarch64-sve-builtins-shapes.h (unary_count): Delete. | |
39148 | (unary_to_uint): Define. | |
39149 | * config/aarch64/aarch64-sve-builtins-shapes.cc (unary_count_def) | |
39150 | (unary_count): Rename to... | |
39151 | (unary_to_uint_def, unary_to_uint): ...this. | |
39152 | * config/aarch64/aarch64-sve-builtins-base.def: Update accordingly. | |
39153 | ||
39154 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39155 | ||
39156 | * config/aarch64/aarch64-sve-builtins-functions.h | |
39157 | (code_for_mode_function): New class. | |
39158 | (CODE_FOR_MODE0, QUIET_CODE_FOR_MODE0): New macros. | |
39159 | * config/aarch64/aarch64-sve-builtins-base.cc (svcompact_impl) | |
39160 | (svext_impl, svmul_lane_impl, svsplice_impl, svtmad_impl): Delete. | |
39161 | (svcompact, svext, svsplice): Use QUIET_CODE_FOR_MODE0. | |
39162 | (svmul_lane, svtmad): Use CODE_FOR_MODE0. | |
39163 | ||
39164 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39165 | ||
39166 | * config/aarch64/iterators.md (addsub): New code attribute. | |
39167 | * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>): | |
39168 | Re-express as... | |
39169 | (aarch64_<su_optab>q<addsub><mode>): ...this, making the same change | |
39170 | in the asm string and attributes. Fix indentation. | |
39171 | * config/aarch64/aarch64-sve.md (@aarch64_<su_optab><optab><mode>): | |
39172 | Re-express as... | |
39173 | (@aarch64_sve_<optab><mode>): ...this. | |
39174 | * config/aarch64/aarch64-sve-builtins.h | |
39175 | (function_expander::expand_signed_unpred_op): Delete. | |
39176 | * config/aarch64/aarch64-sve-builtins.cc | |
39177 | (function_expander::expand_signed_unpred_op): Likewise. | |
39178 | (function_expander::map_to_rtx_codes): If the optab isn't defined, | |
39179 | try using code_for_aarch64_sve instead. | |
39180 | * config/aarch64/aarch64-sve-builtins-base.cc (svqadd_impl): Delete. | |
39181 | (svqsub_impl): Likewise. | |
39182 | (svqadd, svqsub): Use rtx_code_function instead. | |
39183 | ||
39184 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39185 | ||
39186 | * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete. | |
39187 | (HADDSUB, sur, addsub): Remove them. | |
39188 | ||
39189 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39190 | ||
39191 | * tree-nrv.c (pass_return_slot::execute): Handle all internal | |
39192 | functions the same way, rather than singling out those that | |
39193 | aren't mapped directly to optabs. | |
39194 | ||
39195 | 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
39196 | ||
39197 | * target.def (compatible_vector_types_p): New target hook. | |
39198 | * hooks.h (hook_bool_const_tree_const_tree_true): Declare. | |
39199 | * hooks.c (hook_bool_const_tree_const_tree_true): New function. | |
39200 | * doc/tm.texi.in (TARGET_COMPATIBLE_VECTOR_TYPES_P): New hook. | |
39201 | * doc/tm.texi: Regenerate. | |
39202 | * gimple-expr.c: Include target.h. | |
39203 | (useless_type_conversion_p): Use targetm.compatible_vector_types_p. | |
39204 | * config/aarch64/aarch64.c (aarch64_compatible_vector_types_p): New | |
39205 | function. | |
39206 | (TARGET_COMPATIBLE_VECTOR_TYPES_P): Define. | |
39207 | * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred): | |
39208 | Use the original predicate if it already has a suitable type. | |
39209 | ||
39210 | 2020-01-09 Martin Jambor <mjambor@suse.cz> | |
39211 | ||
39212 | * cgraph.h (cgraph_edge): Make remove, set_call_stmt, make_direct, | |
39213 | resolve_speculation and redirect_call_stmt_to_callee static. Change | |
39214 | return type of set_call_stmt to cgraph_edge *. | |
39215 | * auto-profile.c (afdo_indirect_call): Adjust call to | |
39216 | redirect_call_stmt_to_callee. | |
39217 | * cgraph.c (cgraph_edge::set_call_stmt): Make return cgraph-edge *, | |
39218 | make the this pointer explicit, adjust self-recursive calls and the | |
39219 | call top make_direct. Return the resulting edge. | |
39220 | (cgraph_edge::remove): Make this pointer explicit. | |
39221 | (cgraph_edge::resolve_speculation): Likewise, adjust call to remove. | |
39222 | (cgraph_edge::make_direct): Likewise, adjust call to | |
39223 | resolve_speculation. | |
39224 | (cgraph_edge::redirect_call_stmt_to_callee): Likewise, also adjust | |
39225 | call to set_call_stmt. | |
39226 | (cgraph_update_edges_for_call_stmt_node): Update call to | |
39227 | set_call_stmt and remove. | |
39228 | * cgraphclones.c (cgraph_node::set_call_stmt_including_clones): | |
39229 | Renamed edge to master_edge. Adjusted calls to set_call_stmt. | |
39230 | (cgraph_node::create_edge_including_clones): Moved "first" definition | |
39231 | of edge to the block where it was used. Adjusted calls to | |
39232 | set_call_stmt. | |
39233 | (cgraph_node::remove_symbol_and_inline_clones): Adjust call to | |
39234 | cgraph_edge::remove. | |
39235 | * cgraphunit.c (walk_polymorphic_call_targets): Adjusted calls to | |
39236 | make_direct and redirect_call_stmt_to_callee. | |
39237 | * ipa-fnsummary.c (redirect_to_unreachable): Adjust calls to | |
39238 | resolve_speculation and make_direct. | |
39239 | * ipa-inline-transform.c (inline_transform): Adjust call to | |
39240 | redirect_call_stmt_to_callee. | |
39241 | (check_speculations_1):: Adjust call to resolve_speculation. | |
39242 | * ipa-inline.c (resolve_noninline_speculation): Adjust call to | |
39243 | resolve-speculation. | |
39244 | (inline_small_functions): Adjust call to resolve_speculation. | |
39245 | (ipa_inline): Likewise. | |
39246 | * ipa-prop.c (ipa_make_edge_direct_to_target): Adjust call to | |
39247 | make_direct. | |
39248 | * ipa-visibility.c (function_and_variable_visibility): Make iteration | |
39249 | safe with regards to edge removal, adjust calls to | |
39250 | redirect_call_stmt_to_callee. | |
39251 | * ipa.c (walk_polymorphic_call_targets): Adjust calls to make_direct | |
39252 | and redirect_call_stmt_to_callee. | |
39253 | * multiple_target.c (create_dispatcher_calls): Adjust call to | |
39254 | redirect_call_stmt_to_callee | |
39255 | (redirect_to_specific_clone): Likewise. | |
39256 | * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph): | |
39257 | Adjust calls to cgraph_edge::remove. | |
39258 | * tree-inline.c (copy_bb): Adjust call to set_call_stmt. | |
39259 | (redirect_all_calls): Adjust call to redirect_call_stmt_to_callee. | |
39260 | (expand_call_inline): Adjust call to cgraph_edge::remove. | |
39261 | ||
39262 | 2020-01-09 Martin Liska <mliska@suse.cz> | |
39263 | ||
39264 | * params.opt: Set Optimization for | |
39265 | param_max_speculative_devirt_maydefs. | |
39266 | ||
39267 | 2020-01-09 Martin Sebor <msebor@redhat.com> | |
39268 | ||
39269 | PR middle-end/93200 | |
39270 | PR fortran/92956 | |
39271 | * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type. | |
39272 | ||
39273 | 2020-01-09 Martin Liska <mliska@suse.cz> | |
39274 | ||
39275 | * auto-profile.c (auto_profile): Use opt_for_fn | |
39276 | for a parameter. | |
39277 | * ipa-cp.c (ipcp_lattice::add_value): Likewise. | |
39278 | (propagate_vals_across_arith_jfunc): Likewise. | |
39279 | (hint_time_bonus): Likewise. | |
39280 | (incorporate_penalties): Likewise. | |
39281 | (good_cloning_opportunity_p): Likewise. | |
39282 | (perform_estimation_of_a_value): Likewise. | |
39283 | (estimate_local_effects): Likewise. | |
39284 | (ipcp_propagate_stage): Likewise. | |
39285 | * ipa-fnsummary.c (decompose_param_expr): Likewise. | |
39286 | (set_switch_stmt_execution_predicate): Likewise. | |
39287 | (analyze_function_body): Likewise. | |
39288 | * ipa-inline-analysis.c (offline_size): Likewise. | |
39289 | * ipa-inline.c (early_inliner): Likewise. | |
39290 | * ipa-prop.c (ipa_analyze_node): Likewise. | |
39291 | (ipcp_transform_function): Likewise. | |
39292 | * ipa-sra.c (process_scan_results): Likewise. | |
39293 | (ipa_sra_summarize_function): Likewise. | |
39294 | * params.opt: Rename ipcp-unit-growth to | |
39295 | ipa-cp-unit-growth. Add Optimization for various | |
39296 | IPA-related parameters. | |
39297 | ||
39298 | 2020-01-09 Richard Biener <rguenther@suse.de> | |
39299 | ||
39300 | PR middle-end/93054 | |
39301 | * gimplify.c (gimplify_expr): Deal with NOP definitions. | |
39302 | ||
39303 | 2020-01-09 Richard Biener <rguenther@suse.de> | |
39304 | ||
39305 | PR tree-optimization/93040 | |
39306 | * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit. | |
39307 | ||
39308 | 2020-01-09 Georg-Johann Lay <avr@gjlay.de> | |
39309 | ||
39310 | * common/config/avr/avr-common.c (avr_option_optimization_table) | |
39311 | [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early. | |
39312 | ||
39313 | 2020-01-09 Martin Liska <mliska@suse.cz> | |
39314 | ||
39315 | * cgraphclones.c (symbol_table::materialize_all_clones): | |
39316 | Use cgraph_node::dump_name. | |
39317 | ||
39318 | 2020-01-09 Jakub Jelinek <jakub@redhat.com> | |
39319 | ||
39320 | PR inline-asm/93202 | |
39321 | * config/riscv/riscv.c (riscv_print_operand_reloc): Use | |
39322 | output_operand_lossage instead of gcc_unreachable. | |
39323 | * doc/md.texi (riscv f constraint): Fix typo. | |
39324 | ||
39325 | PR target/93141 | |
39326 | * config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of | |
39327 | SWI. Use <general_hilo_operand> instead of <general_operand>. Use | |
39328 | CONST_SCALAR_INT_P instead of CONST_INT_P. | |
39329 | (*subv<mode>4_1): Rename to ... | |
39330 | (subv<mode>4_1): ... this. | |
39331 | (*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New | |
39332 | define_insn_and_split patterns. | |
39333 | (*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn | |
39334 | patterns. | |
39335 | ||
39336 | 2020-01-08 David Malcolm <dmalcolm@redhat.com> | |
39337 | ||
39338 | * vec.c (class selftest::count_dtor): New class. | |
39339 | (selftest::test_auto_delete_vec): New test. | |
39340 | (selftest::vec_c_tests): Call it. | |
39341 | * vec.h (class auto_delete_vec): New class template. | |
39342 | (auto_delete_vec<T>::~auto_delete_vec): New dtor. | |
39343 | ||
39344 | 2020-01-08 David Malcolm <dmalcolm@redhat.com> | |
39345 | ||
39346 | * sbitmap.h (auto_sbitmap): Add operator const_sbitmap. | |
39347 | ||
39348 | 2020-01-08 Jim Wilson <jimw@sifive.com> | |
39349 | ||
39350 | * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out | |
39351 | use of TLS_MODEL_LOCAL_EXEC when not pic. | |
39352 | ||
39353 | 2020-01-08 David Malcolm <dmalcolm@redhat.com> | |
39354 | ||
39355 | * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix | |
39356 | memory leak. | |
39357 | ||
39358 | 2020-01-08 Jakub Jelinek <jakub@redhat.com> | |
39359 | ||
39360 | PR target/93187 | |
39361 | * config/i386/i386.md (*stack_protect_set_2_<mode> peephole2, | |
39362 | *stack_protect_set_3 peephole2): Also check that the second | |
39363 | insns source is general_operand. | |
39364 | ||
39365 | PR target/93174 | |
39366 | * config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand | |
39367 | predicate for output operand instead of register_operand. | |
39368 | (addcarry<mode>, addcarry<mode>_1): Likewise. Add alternative with | |
39369 | memory destination and non-memory operands[2]. | |
39370 | ||
39371 | 2020-01-08 Martin Liska <mliska@suse.cz> | |
39372 | ||
39373 | * cgraph.c (cgraph_node::dump): Use ::dump_name or | |
39374 | ::dump_asm_name instead of (::name or ::asm_name). | |
39375 | * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. | |
39376 | * cgraphunit.c (walk_polymorphic_call_targets): Likewise. | |
39377 | (analyze_functions): Likewise. | |
39378 | (expand_all_functions): Likewise. | |
39379 | * ipa-cp.c (ipcp_cloning_candidate_p): Likewise. | |
39380 | (propagate_bits_across_jump_function): Likewise. | |
39381 | (dump_profile_updates): Likewise. | |
39382 | (ipcp_store_bits_results): Likewise. | |
39383 | (ipcp_store_vr_results): Likewise. | |
39384 | * ipa-devirt.c (dump_targets): Likewise. | |
39385 | * ipa-fnsummary.c (analyze_function_body): Likewise. | |
39386 | * ipa-hsa.c (check_warn_node_versionable): Likewise. | |
39387 | (process_hsa_functions): Likewise. | |
39388 | * ipa-icf.c (sem_item_optimizer::merge_classes): Likewise. | |
39389 | (set_alias_uids): Likewise. | |
39390 | * ipa-inline-transform.c (save_inline_function_body): Likewise. | |
39391 | * ipa-inline.c (recursive_inlining): Likewise. | |
39392 | (inline_to_all_callers_1): Likewise. | |
39393 | (ipa_inline): Likewise. | |
39394 | * ipa-profile.c (ipa_propagate_frequency_1): Likewise. | |
39395 | (ipa_propagate_frequency): Likewise. | |
39396 | * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. | |
39397 | (remove_described_reference): Likewise. | |
39398 | * ipa-pure-const.c (worse_state): Likewise. | |
39399 | (check_retval_uses): Likewise. | |
39400 | (analyze_function): Likewise. | |
39401 | (propagate_pure_const): Likewise. | |
39402 | (propagate_nothrow): Likewise. | |
39403 | (dump_malloc_lattice): Likewise. | |
39404 | (propagate_malloc): Likewise. | |
39405 | (pass_local_pure_const::execute): Likewise. | |
39406 | * ipa-visibility.c (optimize_weakref): Likewise. | |
39407 | (function_and_variable_visibility): Likewise. | |
39408 | * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. | |
39409 | (ipa_discover_variable_flags): Likewise. | |
39410 | * lto-streamer-out.c (output_function): Likewise. | |
39411 | (output_constructor): Likewise. | |
39412 | * tree-inline.c (copy_bb): Likewise. | |
39413 | * tree-ssa-structalias.c (ipa_pta_execute): Likewise. | |
39414 | * varpool.c (symbol_table::remove_unreferenced_decls): Likewise. | |
39415 | ||
39416 | 2020-01-08 Richard Biener <rguenther@suse.de> | |
39417 | ||
39418 | PR middle-end/93199 | |
39419 | * tree-eh.c (sink_clobbers): Update virtual operands for | |
39420 | the first and last stmt only. Add a dry-run capability. | |
39421 | (pass_lower_eh_dispatch::execute): Perform clobber sinking | |
39422 | after CFG manipulations and in RPO order to catch all | |
39423 | secondary opportunities reliably. | |
39424 | ||
39425 | 2020-01-08 Georg-Johann Lay <avr@gjlay.de> | |
39426 | ||
39427 | PR target/93182 | |
39428 | * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. | |
39429 | ||
39430 | 2019-01-08 Richard Biener <rguenther@suse.de> | |
39431 | ||
39432 | PR middle-end/93199 | |
39433 | * gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified. | |
39434 | * tree-ssa-loop-im.c (move_computations_worker): Properly adjust | |
39435 | virtual operand, also updating SSA use. | |
39436 | * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction): | |
39437 | Update stmt after resetting virtual operand. | |
39438 | (tree_loop_interchange::move_code_to_inner_loop): Likewise. | |
39439 | * gimple-iterator.c (gsi_remove): When not removing the stmt | |
39440 | permanently do not delink immediate uses or mark the stmt modified. | |
39441 | ||
39442 | 2020-01-08 Martin Liska <mliska@suse.cz> | |
39443 | ||
39444 | * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name. | |
39445 | (ipa_call_context::estimate_size_and_time): Likewise. | |
39446 | (inline_analyze_function): Likewise. | |
39447 | ||
39448 | 2020-01-08 Martin Liska <mliska@suse.cz> | |
39449 | ||
39450 | * cgraph.c (cgraph_node::dump): Use systematically | |
39451 | dump_asm_name. | |
39452 | ||
39453 | 2020-01-08 Georg-Johann Lay <avr@gjlay.de> | |
39454 | ||
39455 | Add -nodevicespecs option for avr. | |
39456 | ||
39457 | PR target/93182 | |
39458 | * config/avr/avr.opt (-nodevicespecs): New driver option. | |
39459 | * config/avr/driver-avr.c (avr_devicespecs_file): Only issue | |
39460 | "-specs=device-specs/..." if that option is not set. | |
39461 | * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. | |
39462 | ||
39463 | 2020-01-08 Georg-Johann Lay <avr@gjlay.de> | |
39464 | ||
39465 | Implement 64-bit double functions for avr. | |
39466 | ||
39467 | PR target/92055 | |
39468 | * config.gcc (tm_defines) [target=avr]: Support --with-libf7, | |
39469 | --with-double-comparison. | |
39470 | * doc/install.texi: Document them. | |
39471 | * config/avr/avr-c.c (avr_cpu_cpp_builtins) | |
39472 | <WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS> | |
39473 | <WITH_DOUBLE_COMPARISON>: New built-in defines. | |
39474 | * doc/invoke.texi (AVR Built-in Macros): Document them. | |
39475 | * config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New. | |
39476 | * config/avr/avr.c (avr_float_lib_compare_returns_bool): New function. | |
39477 | * config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro. | |
39478 | ||
39479 | 2020-01-08 Richard Earnshaw <rearnsha@arm.com> | |
39480 | ||
39481 | PR target/93188 | |
39482 | * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match | |
39483 | armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants | |
39484 | when only building rm-profile multilibs. | |
39485 | ||
39486 | 2020-01-08 Feng Xue <fxue@os.amperecomputing.com> | |
39487 | ||
39488 | PR ipa/93084 | |
39489 | * ipa-cp.c (self_recursively_generated_p): Find matched aggregate | |
39490 | lattice for a value to check. | |
39491 | (propagate_vals_across_arith_jfunc): Add an assertion to ensure | |
39492 | finite propagation in self-recursive scc. | |
39493 | ||
39494 | 2020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com> | |
39495 | ||
39496 | * ipa-inline.c (caller_growth_limits): Restore the AND. | |
39497 | ||
39498 | 2020-01-07 Andrew Stubbs <ams@codesourcery.com> | |
39499 | ||
39500 | * config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator. | |
39501 | (VEC_ALLREG_ALT): New iterator. | |
39502 | (VEC_ALLREG_INT_MODE): New iterator. | |
39503 | (VCMP_MODE): New iterator. | |
39504 | (VCMP_MODE_INT): New iterator. | |
39505 | (vec_cmpu<mode>di): Use VCMP_MODE_INT. | |
39506 | (vec_cmp<u>v64qidi): New define_expand. | |
39507 | (vec_cmp<mode>di_exec): Use VCMP_MODE. | |
39508 | (vec_cmpu<mode>di_exec): New define_expand. | |
39509 | (vec_cmp<u>v64qidi_exec): New define_expand. | |
39510 | (vec_cmp<mode>di_dup): Use VCMP_MODE. | |
39511 | (vec_cmp<mode>di_dup_exec): Use VCMP_MODE. | |
39512 | (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ... | |
39513 | (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this. | |
39514 | (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ... | |
39515 | (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this. | |
39516 | (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ... | |
39517 | (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this. | |
39518 | (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ... | |
39519 | (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to | |
39520 | this. | |
39521 | * config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes. | |
39522 | * config/gcn/gcn.md (expander): Add sign_extend and zero_extend. | |
39523 | ||
39524 | 2020-01-07 Andrew Stubbs <ams@codesourcery.com> | |
39525 | ||
39526 | * config/gcn/constraints.md (DA): Update description and match. | |
39527 | (DB): Likewise. | |
39528 | (Db): New constraint. | |
39529 | * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second | |
39530 | parameter. | |
39531 | * config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter. | |
39532 | Implement 'Db' mixed immediate type. | |
39533 | * config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints. | |
39534 | (addcv64si3_dup<exec_vcc>): Delete. | |
39535 | (subcv64si3<exec_vcc>): Rework constraints. | |
39536 | (addv64di3): Rework constraints. | |
39537 | (addv64di3_exec): Rework constraints. | |
39538 | (subv64di3): Rework constraints. | |
39539 | (addv64di3_dup): Delete. | |
39540 | (addv64di3_dup_exec): Delete. | |
39541 | (addv64di3_zext): Rework constraints. | |
39542 | (addv64di3_zext_exec): Rework constraints. | |
39543 | (addv64di3_zext_dup): Rework constraints. | |
39544 | (addv64di3_zext_dup_exec): Rework constraints. | |
39545 | (addv64di3_zext_dup2): Rework constraints. | |
39546 | (addv64di3_zext_dup2_exec): Rework constraints. | |
39547 | (addv64di3_sext_dup2): Rework constraints. | |
39548 | (addv64di3_sext_dup2_exec): Rework constraints. | |
39549 | ||
39550 | 2020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
39551 | ||
39552 | * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented | |
39553 | existing target checks. | |
39554 | ||
39555 | 2020-01-07 Richard Biener <rguenther@suse.de> | |
39556 | ||
39557 | * doc/install.texi: Bump minimal supported MPC version. | |
39558 | ||
39559 | 2020-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
39560 | ||
39561 | * langhooks-def.h (lhd_simulate_enum_decl): Declare. | |
39562 | (LANG_HOOKS_SIMULATE_ENUM_DECL): Use it. | |
39563 | * langhooks.c: Include stor-layout.h. | |
39564 | (lhd_simulate_enum_decl): New function. | |
39565 | * config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call | |
39566 | handle_arm_sve_h for the LTO frontend. | |
39567 | (register_vector_type): Cope with null returns from pushdecl. | |
39568 | ||
39569 | 2020-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
39570 | ||
39571 | * config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p) | |
39572 | (aarch64_sve::nvectors_if_data_type): Replace with... | |
39573 | (aarch64_sve::builtin_type_p): ...this. | |
39574 | * config/aarch64/aarch64-sve-builtins.cc: Include attribs.h. | |
39575 | (find_vector_type): Delete. | |
39576 | (add_sve_type_attribute): New function. | |
39577 | (lookup_sve_type_attribute): Likewise. | |
39578 | (register_builtin_types): Add an "SVE type" attribute to each type. | |
39579 | (register_tuple_type): Likewise. | |
39580 | (svbool_type_p, nvectors_if_data_type): Delete. | |
39581 | (mangle_builtin_type): Use lookup_sve_type_attribute. | |
39582 | (builtin_type_p): Likewise. Add an overload that returns the | |
39583 | number of constituent vector and predicate registers. | |
39584 | * config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete. | |
39585 | (aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p | |
39586 | instead of aarch64_sve_argument_p. | |
39587 | (aarch64_takes_arguments_in_sve_regs_p): Likewise. | |
39588 | (aarch64_pass_by_reference): Likewise. | |
39589 | (aarch64_function_value_1): Likewise. | |
39590 | (aarch64_return_in_memory): Likewise. | |
39591 | (aarch64_layout_arg): Likewise. | |
39592 | ||
39593 | 2020-01-07 Jakub Jelinek <jakub@redhat.com> | |
39594 | ||
39595 | PR tree-optimization/93156 | |
39596 | * tree-ssa-ccp.c (bit_value_binop): For x * x note that the second | |
39597 | least significant bit is always clear. | |
39598 | ||
39599 | PR tree-optimization/93118 | |
39600 | * match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?. Add new | |
39601 | simplifier with two intermediate conversions. | |
39602 | ||
39603 | 2020-01-07 Martin Liska <mliska@suse.cz> | |
39604 | ||
39605 | * params.opt: Add Optimization for various parameters. | |
39606 | ||
39607 | 2020-01-07 Martin Liska <mliska@suse.cz> | |
39608 | ||
39609 | PR ipa/83411 | |
39610 | * doc/extend.texi: Explain cloning for target_clone | |
39611 | attribute. | |
39612 | ||
39613 | 2020-01-07 Martin Liska <mliska@suse.cz> | |
39614 | ||
39615 | PR tree-optimization/92860 | |
39616 | * common.opt: Make in Optimization option | |
39617 | as it is affected by -O0, which is an Optimization | |
39618 | option. | |
39619 | * tree-inline.c (tree_inlinable_function_p): | |
39620 | Use opt_for_fn for warn_inline. | |
39621 | (expand_call_inline): Likewise. | |
39622 | ||
39623 | 2020-01-07 Martin Liska <mliska@suse.cz> | |
39624 | ||
39625 | PR tree-optimization/92860 | |
39626 | * common.opt: Make flag_ree as optimization | |
39627 | attribute. | |
39628 | ||
39629 | 2020-01-07 Martin Liska <mliska@suse.cz> | |
39630 | ||
39631 | PR optimization/92860 | |
39632 | * params.opt: Mark param_min_crossjump_insns with Optimization | |
39633 | keyword. | |
39634 | ||
39635 | 2020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com> | |
39636 | ||
39637 | * ipa-inline-analysis.c (estimate_growth): Fix typo. | |
39638 | * ipa-inline.c (caller_growth_limits): Use OR instead of AND. | |
39639 | ||
39640 | 2020-01-06 Michael Meissner <meissner@linux.ibm.com> | |
39641 | ||
39642 | * config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New | |
39643 | helper function to return the valid addressing formats for a given | |
39644 | hard register and mode. | |
39645 | (rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask. | |
39646 | ||
39647 | * config/rs6000/constraints.md (Q constraint): Update | |
39648 | documentation. | |
39649 | * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint | |
39650 | documentation. | |
39651 | ||
39652 | * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): | |
39653 | Use 'Q' for doing vector extract from memory. | |
39654 | (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from | |
39655 | memory. | |
39656 | (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for | |
39657 | doing vector extract from memory. | |
39658 | (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector | |
39659 | extract from memory. | |
39660 | ||
39661 | * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support | |
39662 | for the offset being 34-bits when -mcpu=future is used. | |
39663 | ||
39664 | 2020-01-06 John David Anglin <danglin@gcc.gnu.org> | |
39665 | ||
39666 | * config/pa/pa.md: Revert change to use ordered_comparison_operator | |
39667 | instead of cmpib_comparison_operator in cmpib patterns. | |
39668 | * config/pa/predicates.md (cmpib_comparison_operator): Revert removal | |
39669 | of cmpib_comparison_operator. Revise comment. | |
39670 | ||
39671 | 2020-01-06 Richard Sandiford <richard.sandiford@arm.com> | |
39672 | ||
39673 | * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts | |
39674 | in an IFN_DIV_POW2 node to be equal. | |
39675 | ||
39676 | 2020-01-06 Richard Sandiford <richard.sandiford@arm.com> | |
39677 | ||
39678 | * tree-vect-stmts.c (vect_check_load_store_mask): Rename to... | |
39679 | (vect_check_scalar_mask): ...this. | |
39680 | (vectorizable_store, vectorizable_load): Update call accordingly. | |
39681 | (vectorizable_call): Use vect_check_scalar_mask to check the mask | |
39682 | argument in calls to conditional internal functions. | |
39683 | ||
39684 | 2020-01-06 Andrew Stubbs <ams@codesourcery.com> | |
39685 | ||
39686 | * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for | |
39687 | '0' matching inputs. | |
39688 | (subv64di3_exec): Likewise. | |
39689 | ||
39690 | 2020-01-06 Bryan Stenson <bryan@siliconvortex.com> | |
39691 | ||
39692 | * config/mips/mips.c (vr4130_align_insns): Fix typo. | |
39693 | * doc/md.texi (movstr): Likewise. | |
39694 | ||
39695 | 2020-01-06 Andrew Stubbs <ams@codesourcery.com> | |
39696 | ||
39697 | * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early | |
39698 | clobber. | |
39699 | ||
39700 | 2020-01-06 Richard Sandiford <richard.sandiford@arm.com> | |
39701 | ||
39702 | * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md): | |
39703 | Depend on... | |
39704 | (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents | |
39705 | to a temporary file and use move-if-change to update the real | |
39706 | file where necessary. | |
39707 | ||
39708 | 2020-01-06 Richard Sandiford <richard.sandiford@arm.com> | |
39709 | ||
39710 | * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl | |
39711 | rather than Upa for CPY /M. | |
39712 | ||
39713 | 2020-01-06 Andrew Stubbs <ams@codesourcery.com> | |
39714 | ||
39715 | * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline | |
39716 | immediate. | |
39717 | ||
39718 | 2020-01-06 Martin Liska <mliska@suse.cz> | |
39719 | ||
39720 | PR tree-optimization/92860 | |
39721 | * params.opt: Mark param_max_combine_insns with Optimization | |
39722 | keyword. | |
39723 | ||
39724 | 2020-01-05 Jakub Jelinek <jakub@redhat.com> | |
39725 | ||
39726 | PR target/93141 | |
39727 | * config/i386/i386.md (SWIDWI): New mode iterator. | |
39728 | (DWI, dwi): Add TImode variants. | |
39729 | (addv<mode>4): Use SWIDWI iterator instead of SWI. Use | |
39730 | <general_hilo_operand> instead of <general_operand>. Use | |
39731 | CONST_SCALAR_INT_P instead of CONST_INT_P. | |
39732 | (*addv<mode>4_1): Rename to ... | |
39733 | (addv<mode>4_1): ... this. | |
39734 | (QWI): New mode attribute. | |
39735 | (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New | |
39736 | define_insn_and_split patterns. | |
39737 | (*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn | |
39738 | patterns. | |
39739 | (uaddv<mode>4): Use SWIDWI iterator instead of SWI. Use | |
39740 | <general_hilo_operand> instead of <general_operand>. | |
39741 | (*addcarry<mode>_1): New define_insn. | |
39742 | (*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split. | |
39743 | ||
39744 | 2020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru> | |
39745 | ||
39746 | * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm): | |
39747 | Use "call" instead of "set". | |
39748 | ||
39749 | 2020-01-03 Martin Jambor <mjambor@suse.cz> | |
39750 | ||
39751 | PR ipa/92917 | |
39752 | * ipa-cp.c (print_all_lattices): Skip functions without info. | |
39753 | ||
39754 | 2020-01-03 Jakub Jelinek <jakub@redhat.com> | |
39755 | ||
39756 | PR target/93089 | |
39757 | * config/i386/i386-options.c (ix86_simd_clone_adjust): If | |
39758 | TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd' | |
39759 | simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512 | |
39760 | for 'e' simd clones. | |
39761 | ||
39762 | PR target/93089 | |
39763 | * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave | |
39764 | entry. | |
39765 | (mprefer-vector-width=): Add Save. | |
39766 | * config/i386/i386-options.c (ix86_target_string): Add PVW argument, print | |
39767 | -mprefer-vector-width= if non-zero. Fix up -mfpmath= comment. | |
39768 | (ix86_debug_options, ix86_function_specific_print): Adjust | |
39769 | ix86_target_string callers. | |
39770 | (ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=. | |
39771 | (ix86_valid_target_attribute_tree): Likewise. | |
39772 | * config/i386/i386-options.h (ix86_target_string): Add PVW argument. | |
39773 | * config/i386/i386-expand.c (ix86_expand_builtin): Adjust | |
39774 | ix86_target_string caller. | |
39775 | ||
39776 | PR target/93110 | |
39777 | * config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of | |
39778 | emitting ASHIFTRT, XOR and MINUS by hand. Use gen_int_mode with QImode | |
39779 | instead of gen_int_shift_amount + convert_modes. | |
39780 | ||
39781 | PR rtl-optimization/93088 | |
39782 | * loop-iv.c (find_single_def_src): Punt after looking through | |
39783 | 128 reg copies for regs with single definitions. Move definitions | |
39784 | to first uses. | |
39785 | ||
39786 | 2020-01-02 Dennis Zhang <dennis.zhang@arm.com> | |
39787 | ||
39788 | * config/arm/arm-c.c (arm_cpu_builtins): Define | |
39789 | __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC, | |
39790 | __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and | |
39791 | __ARM_BF16_FORMAT_ALTERNATIVE when enabled. | |
39792 | * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features. | |
39793 | * config/arm/arm-tables.opt: Regenerated. | |
39794 | * config/arm/arm.c (arm_option_reconfigure_globals): Initialize | |
39795 | arm_arch_i8mm and arm_arch_bf16 when enabled. | |
39796 | * config/arm/arm.h (TARGET_I8MM): New macro. | |
39797 | (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise. | |
39798 | * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a. | |
39799 | * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a. | |
39800 | * config/arm/t-multilib: Add matching rules for -march=armv8.6-a. | |
39801 | (v8_6_a_simd_variants): New. | |
39802 | (v8_*_a_simd_variants): Add i8mm and bf16. | |
39803 | * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options. | |
39804 | ||
39805 | 2020-01-02 Jakub Jelinek <jakub@redhat.com> | |
39806 | ||
39807 | PR ipa/93087 | |
39808 | * predict.c (compute_function_frequency): Don't call | |
39809 | warn_function_cold on functions that already have cold attribute. | |
39810 | ||
39811 | 2020-01-01 John David Anglin <danglin@gcc.gnu.org> | |
39812 | ||
39813 | PR target/67834 | |
39814 | * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to | |
39815 | COMDAT group function labels in .data.rel.ro.local section. | |
39816 | * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define. | |
39817 | ||
39818 | PR target/93111 | |
39819 | * config/pa/pa.md (scc): Use ordered_comparison_operator instead of | |
39820 | comparison_operator in B and S integer comparisons. Likewise, use | |
39821 | ordered_comparison_operator instead of cmpib_comparison_operator in | |
39822 | cmpib patterns. | |
39823 | * config/pa/predicates.md (cmpib_comparison_operator): Remove. | |
39824 | ||
39825 | 2020-01-01 Jakub Jelinek <jakub@redhat.com> | |
39826 | ||
39827 | Update copyright years. | |
39828 | ||
39829 | * gcc.c (process_command): Update copyright notice dates. | |
39830 | * gcov-dump.c (print_version): Ditto. | |
39831 | * gcov.c (print_version): Ditto. | |
39832 | * gcov-tool.c (print_version): Ditto. | |
39833 | * gengtype.c (create_file): Ditto. | |
39834 | * doc/cpp.texi: Bump @copying's copyright year. | |
39835 | * doc/cppinternals.texi: Ditto. | |
39836 | * doc/gcc.texi: Ditto. | |
39837 | * doc/gccint.texi: Ditto. | |
39838 | * doc/gcov.texi: Ditto. | |
39839 | * doc/install.texi: Ditto. | |
39840 | * doc/invoke.texi: Ditto. | |
39841 | ||
39842 | 2020-01-01 Jan Hubicka <hubicka@ucw.cz> | |
39843 | ||
39844 | * ipa.c (walk_polymorphic_call_targets): Fix updating of overall | |
39845 | summary. | |
39846 | ||
39847 | 2020-01-01 Jakub Jelinek <jakub@redhat.com> | |
39848 | ||
39849 | PR tree-optimization/93098 | |
39850 | * match.pd (popcount): For shift amounts, use integer_onep | |
39851 | or wi::to_widest () == cst instead of tree_to_uhwi () == cst | |
39852 | tests. Make sure that precision is power of two larger than or equal | |
39853 | to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro | |
39854 | instead of ULL suffixed constants. Formatting fixes. | |
39855 | \f | |
39856 | Copyright (C) 2020 Free Software Foundation, Inc. | |
39857 | ||
39858 | Copying and distribution of this file, with or without modification, | |
39859 | are permitted in any medium without royalty provided the copyright | |
39860 | notice and this notice are preserved. |